Mitsuba Renderer  0.5.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
mitsuba::MutatorBase Class Reference

Medium-aware mutator base class. More...

#include <mitsuba/bidir/mutator.h>

+ Inheritance diagram for mitsuba::MutatorBase:

Public Member Functions

virtual const ClassgetClass () const
 Retrieve this object's class. More...
 
- Public Member Functions inherited from mitsuba::Mutator
virtual EMutationType getType () const =0
 What kind of mutations does this mutator perform? More...
 
virtual Float suitability (const Path &path) const =0
 Determine the general "suitability" of this mutator for a given kind of path. More...
 
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 strategy. More...
 
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 in [Veach 97]) More...
 
virtual void accept (const MutationRecord &muRec)=0
 Record an accepted mutation. More...
 
- Public Member Functions inherited from Object
 Object ()
 Construct a new object. More...
 
int getRefCount () const
 Return the current reference count. More...
 
void incRef () const
 Increase the reference count of the object by one. More...
 
void decRef (bool autoDeallocate=true) const
 Decrease the reference count of the object and possibly deallocate it. More...
 
virtual std::string toString () const
 Return a human-readable string representation of the object's contents. More...
 

Static Public Attributes

static Classm_theClass
 
- Static Public Attributes inherited from mitsuba::Mutator
static Classm_theClass
 
- Static Public Attributes inherited from Object
static Classm_theClass
 Pointer to the object's class descriptor. More...
 

Protected Member Functions

 MutatorBase ()
 Protected constructor. More...
 
virtual ~MutatorBase ()
 Virtual destructor. More...
 
Float perturbMediumDistance (Sampler *sampler, const PathVertex *vertex)
 Perturb a distance within a medium. More...
 
Float pdfMediumPerturbation (const PathVertex *oldVertex, const PathEdge *oldEdge, const PathEdge *newEdge) const
 Density function of perturbMediumDistance. More...
 
- Protected Member Functions inherited from mitsuba::Mutator
virtual ~Mutator ()
 Virtual destructor. More...
 
- Protected Member Functions inherited from Object
virtual ~Object ()
 Virtual private deconstructor. (Will only be called by ref) More...
 

Protected Attributes

Float m_mediumDensityMultiplier
 

Additional Inherited Members

- Public Types inherited from mitsuba::Mutator
enum  EMutationType {
  EBidirectionalMutation = 0, ELensPerturbation, ELensSubpathMutation, EIndependentMutation,
  ECausticPerturbation, EMultiChainPerturbation, EManifoldPerturbation, EMutationTypeCount
}
 Specifies the type of mutation implemented by the mutator. More...
 
- Static Public Member Functions inherited from Object
static void staticInitialization ()
 Initializes the built-in reference count debugger (if enabled) More...
 
static void staticShutdown ()
 Free the memory taken by staticInitialization() More...
 

Detailed Description

Medium-aware mutator base class.

Constructor & Destructor Documentation

mitsuba::MutatorBase::MutatorBase ( )
protected

Protected constructor.

virtual mitsuba::MutatorBase::~MutatorBase ( )
inlineprotectedvirtual

Virtual destructor.

Member Function Documentation

virtual const Class* mitsuba::MutatorBase::getClass ( ) const
virtual
Float mitsuba::MutatorBase::pdfMediumPerturbation ( const PathVertex oldVertex,
const PathEdge oldEdge,
const PathEdge newEdge 
) const
protected

Density function of perturbMediumDistance.

Float mitsuba::MutatorBase::perturbMediumDistance ( Sampler sampler,
const PathVertex vertex 
)
protected

Perturb a distance within a medium.

Member Data Documentation

Float mitsuba::MutatorBase::m_mediumDensityMultiplier
protected
Class* mitsuba::MutatorBase::m_theClass
static

The documentation for this class was generated from the following file: