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

Generic serializable object, which supports construction from a Properties instance. More...

#include <mitsuba/core/cobject.h>

+ Inheritance diagram for mitsuba::ConfigurableObject:

Public Member Functions

virtual void setParent (ConfigurableObject *parent)
 Notify the ConfigurableObject instance about its parent object. More...
 
virtual void addChild (const std::string &name, ConfigurableObject *child)
 Add a child (default implementation throws an error) More...
 
void addChild (ConfigurableObject *child)
 Add an unnamed child. More...
 
virtual void configure ()
 Configure the object (called once after construction and addition of all child ConfigurableObject instances)) More...
 
virtual void serialize (Stream *stream, InstanceManager *manager) const
 Serialize this object to a binary data stream. More...
 
const std::string & getID () const
 Return the identifier associated with this instance (or "unnamed") More...
 
void setID (const std::string &name)
 Set the identifier associated with this instance. More...
 
const PropertiesgetProperties () const
 Return the properties object that was originally used to create this instance. More...
 
virtual const ClassgetClass () const
 Retrieve this object's class. More...
 
- Public Member Functions inherited from mitsuba::SerializableObject
 SerializableObject (Stream *stream, InstanceManager *manager)
 Unserialize a serializable object. 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::SerializableObject
static Classm_theClass
 
- Static Public Attributes inherited from Object
static Classm_theClass
 Pointer to the object's class descriptor. More...
 

Protected Member Functions

virtual ~ConfigurableObject ()
 Virtual destructor. More...
 
 ConfigurableObject (const Properties &props)
 Construct a configurable object. More...
 
 ConfigurableObject (Stream *stream, InstanceManager *manager)
 Unserialize a configurable object. More...
 
- Protected Member Functions inherited from mitsuba::SerializableObject
 SerializableObject ()
 Construct a serializable object. More...
 
virtual ~SerializableObject ()
 Virtual deconstructor. More...
 
- Protected Member Functions inherited from Object
virtual ~Object ()
 Virtual private deconstructor. (Will only be called by ref) More...
 

Protected Attributes

Properties m_properties
 

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

Generic serializable object, which supports construction from a Properties instance.

All plugins in Mitsuba derive from ConfigurableObject. This mechanism lets them accept parameters specified in an external XML file. Additionally, they can have child objects, which correspond to nested instantiation requests in the XML file.

Constructor & Destructor Documentation

virtual mitsuba::ConfigurableObject::~ConfigurableObject ( )
inlineprotectedvirtual

Virtual destructor.

mitsuba::ConfigurableObject::ConfigurableObject ( const Properties props)
inlineprotected

Construct a configurable object.

mitsuba::ConfigurableObject::ConfigurableObject ( Stream stream,
InstanceManager manager 
)
protected

Unserialize a configurable object.

Member Function Documentation

virtual void mitsuba::ConfigurableObject::addChild ( const std::string &  name,
ConfigurableObject child 
)
virtual

Add a child (default implementation throws an error)

Reimplemented in mitsuba::Shape, mitsuba::BSDF, mitsuba::AbstractEmitter, mitsuba::Sensor, mitsuba::Medium, mitsuba::Scene, and mitsuba::Film.

void mitsuba::ConfigurableObject::addChild ( ConfigurableObject child)
inline

Add an unnamed child.

virtual void mitsuba::ConfigurableObject::configure ( )
virtual

Configure the object (called once after construction and addition of all child ConfigurableObject instances))

Reimplemented in mitsuba::PerspectiveCamera, mitsuba::Shape, mitsuba::BSDF, mitsuba::Sensor, mitsuba::TriMesh, mitsuba::Medium, mitsuba::Scene, mitsuba::PhaseFunction, mitsuba::Film, and mitsuba::ReconstructionFilter.

const std::string& mitsuba::ConfigurableObject::getID ( ) const
inline

Return the identifier associated with this instance (or "unnamed")

const Properties& mitsuba::ConfigurableObject::getProperties ( ) const
inline

Return the properties object that was originally used to create this instance.

This feature mainly of use for editors and other graphical user interfaces, which present the properties of an object in some form.

void mitsuba::ConfigurableObject::setID ( const std::string &  name)
inline

Set the identifier associated with this instance.

virtual void mitsuba::ConfigurableObject::setParent ( ConfigurableObject parent)
virtual

Notify the ConfigurableObject instance about its parent object.

The default implementation does nothing.

Reimplemented in mitsuba::BSDF, and mitsuba::Subsurface.

Member Data Documentation

Properties mitsuba::ConfigurableObject::m_properties
protected
Class* mitsuba::ConfigurableObject::m_theClass
static

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