#pragma once
#include <render/integrator.h>

struct BDPT2 : Integrator
{
    BDPT2(): mApplyAntithetic(true) {}
    BDPT2(bool applyAntithetic): mApplyAntithetic(applyAntithetic) {}
    // forward rendering
    ArrayXd renderC(const Scene &scene, const RenderOptions &options) const;
    // rendering gradient image
    ArrayXd renderD(SceneAD &sceneAD,
                    const RenderOptions &options, const ArrayXd &d_image) const;

    bool mApplyAntithetic;
};