20 #if !defined(__MITSUBA_BIDIR_MUTATOR_H_)
21 #define __MITSUBA_BIDIR_MUTATOR_H_
37 EBidirectionalMutation = 0,
48 virtual EMutationType getType()
const = 0;
51 virtual Float suitability(
const Path &path)
const = 0;
76 virtual bool sampleMutation(
Path &source,
Path &proposal,
125 int m,
int ka,
const Spectrum &weight)
126 : type(type), l(l), m(m), ka(ka), weight(weight) { }
130 memcpy(result.
extra, extra,
sizeof(extra));
134 std::string toString()
const;
138 std::ostream &os,
const Mutator::EMutationType &type);
151 virtual ~MutatorBase() { }
std::ostream & operator<<(std::ostream &os, const Mutator::EMutationType &type)
int ka
Size of the insertion.
Definition: mutator.h:119
int extra[5]
Definition: mutator.h:121
Medium-aware mutator base class.
Definition: mutator.h:143
Bidirectional path vertex data structure.
Definition: vertex.h:48
int m
Right vertex of the affected range.
Definition: mutator.h:118
Stores supplemental information about an executed mutation strategy.
Definition: mutator.h:115
Float m_mediumDensityMultiplier
Definition: mutator.h:162
Generic interface to path-space mutators.
Definition: mutator.h:33
MutationRecord(Mutator::EMutationType type, int l, int m, int ka, const Spectrum &weight)
Definition: mutator.h:124
Mutator::EMutationType type
Type of executed mutation.
Definition: mutator.h:116
Base class of all sample generators.
Definition: sampler.h:66
Bidirectional path data structure.
Definition: path.h:46
MutationRecord reverse() const
Definition: mutator.h:128
Spectrum weight
Spectral weight of the unchanged portion.
Definition: mutator.h:120
EMutationType
Specifies the type of mutation implemented by the mutator.
Definition: mutator.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
Bidirectional path edge data structure.
Definition: edge.h:46
MutationRecord()
Definition: mutator.h:123
Parent of all Mitsuba classes.
Definition: object.h:38
int l
Left vertex of the affected range.
Definition: mutator.h:117
Discrete spectral power distribution based on a number of wavelength bins over the 360-830 nm range...
Definition: spectrum.h:663