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

Utility class for perturbing paths located on a specular manifold. More...

#include <mitsuba/bidir/manifold.h>

+ Inheritance diagram for mitsuba::SpecularManifold:

Public Member Functions

 SpecularManifold (const Scene *scene, int maxIterations=-1)
 Construct an unitialized specular manifold data structure. More...
 
bool init (const Path &path, int start, int end)
 Initialize the specular manifold with the specified path segment. More...
 
bool update (Path &path, int start, int end)
 Update the provided path segment based on the stored specular manifold configuration. More...
 
bool move (const Point &target, const Normal &normal)
 Attempt to move the movable endpoint vertex to position target. More...
 
Float G (const Path &path, int a, int b)
 Compute the generalized geometric term between 'a' and 'b'. More...
 
Float multiG (const Path &path, int a, int b)
 Compute a product of standard and generalized geometric terms between 'a' and 'b' depending on whether vertices are specular or non-specular. More...
 
Float det (const Path &path, int a, int b, int c)
 
int getIterationCount () const
 Return the number of iterations used by move() More...
 
const PointgetPosition (int i)
 Return the position of a vertex. More...
 
std::string toString () const
 Return a string representation. More...
 
virtual const ClassgetClass () const
 Retrieve this object's class. 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...
 

Static Public Attributes

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

Protected Member Functions

virtual ~SpecularManifold ()
 Virtual destructor. More...
 
- Protected Member Functions inherited from Object
virtual ~Object ()
 Virtual private deconstructor. (Will only be called by ref) More...
 

Protected Attributes

const Scenem_scene
 
Float m_time
 
int m_iterations
 
int m_maxIterations
 
std::vector< SimpleVertex > m_vertices
 
std::vector< SimpleVertex > m_proposal
 

Additional Inherited Members

- 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

Utility class for perturbing paths located on a specular manifold.

Author
Wenzel Jakob

Constructor & Destructor Documentation

mitsuba::SpecularManifold::SpecularManifold ( const Scene scene,
int  maxIterations = -1 
)

Construct an unitialized specular manifold data structure.

virtual mitsuba::SpecularManifold::~SpecularManifold ( )
inlineprotectedvirtual

Virtual destructor.

Member Function Documentation

Float mitsuba::SpecularManifold::det ( const Path path,
int  a,
int  b,
int  c 
)
Float mitsuba::SpecularManifold::G ( const Path path,
int  a,
int  b 
)

Compute the generalized geometric term between 'a' and 'b'.

virtual const Class* mitsuba::SpecularManifold::getClass ( ) const
virtual

Retrieve this object's class.

Reimplemented from Object.

int mitsuba::SpecularManifold::getIterationCount ( ) const
inline

Return the number of iterations used by move()

const Point& mitsuba::SpecularManifold::getPosition ( int  i)
inline

Return the position of a vertex.

bool mitsuba::SpecularManifold::init ( const Path path,
int  start,
int  end 
)

Initialize the specular manifold with the specified path segment.

bool mitsuba::SpecularManifold::move ( const Point target,
const Normal normal 
)

Attempt to move the movable endpoint vertex to position target.

Float mitsuba::SpecularManifold::multiG ( const Path path,
int  a,
int  b 
)

Compute a product of standard and generalized geometric terms between 'a' and 'b' depending on whether vertices are specular or non-specular.

std::string mitsuba::SpecularManifold::toString ( ) const
virtual

Return a string representation.

Reimplemented from Object.

bool mitsuba::SpecularManifold::update ( Path path,
int  start,
int  end 
)

Update the provided path segment based on the stored specular manifold configuration.

Member Data Documentation

int mitsuba::SpecularManifold::m_iterations
protected
int mitsuba::SpecularManifold::m_maxIterations
protected
std::vector<SimpleVertex> mitsuba::SpecularManifold::m_proposal
protected
const Scene* mitsuba::SpecularManifold::m_scene
protected
Class* mitsuba::SpecularManifold::m_theClass
static
Float mitsuba::SpecularManifold::m_time
protected
std::vector<SimpleVertex> mitsuba::SpecularManifold::m_vertices
protected

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