20 #if !defined(__MITSUBA_BIDIR_MUT_MCHAIN_H_)
21 #define __MITSUBA_BIDIR_MUT_MCHAIN_H_
85 Float m_logRatio, m_thetaLogRatio;
Medium-aware mutator base class.
Definition: mutator.h:143
Stores supplemental information about an executed mutation strategy.
Definition: mutator.h:115
virtual void accept(const MutationRecord &muRec)=0
Record an accepted mutation.
Principal scene data structure.
Definition: scene.h:49
Base class of all sample generators.
Definition: sampler.h:66
Bidirectional path data structure.
Definition: path.h:46
virtual Float Q(const Path &source, const Path &proposal, const MutationRecord &muRec) const =0
For a pair of paths, this function computes the inverse transition probability (matching the Q term i...
virtual bool sampleMutation(Path &source, Path &proposal, MutationRecord &muRec, const MutationRecord &sourceMuRec)=0
Given a path, this function produces a new proposal according to the internally implemented mutation ...
virtual EMutationType getType() const =0
What kind of mutations does this mutator perform?
EMutationType
Specifies the type of mutation implemented by the mutator.
Definition: mutator.h:36
Veach-style multi-chain perturbation strategy.
Definition: mut_mchain.h:36
#define MTS_DECLARE_CLASS()
This macro must be used in the initial definition in classes that derive from Object.
Definition: class.h:158
Reference counting helper.
Definition: ref.h:40
virtual Float suitability(const Path &path) const =0
Determine the general "suitability" of this mutator for a given kind of path.