Closed
Description
Lets implement the Rust counterpart to the C++ class MLTIntegrator
:
class MLTIntegrator : public Integrator {
public:
// MLTIntegrator Public Methods
MLTIntegrator(std::shared_ptr<const Camera> camera, int maxDepth,
int nBootstrap, int nChains, int mutationsPerPixel,
Float sigma, Float largeStepProbability)
: camera(camera),
maxDepth(maxDepth),
nBootstrap(nBootstrap),
nChains(nChains),
mutationsPerPixel(mutationsPerPixel),
sigma(sigma),
largeStepProbability(largeStepProbability) {}
void Render(const Scene &scene);
Spectrum L(const Scene &scene, MemoryArena &arena,
const std::unique_ptr<Distribution1D> &lightDistr,
const std::unordered_map<const Light *, size_t> &lightToIndex,
MLTSampler &sampler, int k, Point2f *pRaster);
private:
// MLTIntegrator Private Data
std::shared_ptr<const Camera> camera;
const int maxDepth;
const int nBootstrap;
const int nChains;
const int mutationsPerPixel;
const Float sigma, largeStepProbability;
};