RenderTools::AbstractPropertyContainer Class Reference

#include <AbstractPropertyContainer.h>

Inheritance diagram for RenderTools::AbstractPropertyContainer:

RenderTools::ContainerProperty RenderTools::AbstractProperty RenderTools::InitializeInterface RenderTools::PropertyContainer< PropertyProxy< T > > RenderTools::AbstractApplication RenderTools::Framebuffer RenderTools::Image RenderTools::Program RenderTools::PropertyContainer< T > RenderTools::Renderbuffer RenderTools::Rendergroup RenderTools::Renderpass RenderTools::Stateset RenderTools::TransformNode RenderTools::Vertexbuffer RenderTools::ViewController

List of all members.

Public Member Functions

 AbstractPropertyContainer (void)
virtual ~AbstractPropertyContainer (void)
virtual void onPropertyEvent (const PropertyEvent &p)
virtual void onPropertyContainerEvent (const PropertyContainerEvent &p)
virtual void createProperties (void)
virtual void setOwner (const PropertyContainerPtr &owner)
virtual const XMLNodePtr toXML (const XMLNodePtr &parent=XMLNodePtr()) const
virtual void onInitialize (void)
virtual void initialize (bool force=false)
 reimplements InitializeInterface::initialize( bool force )
void sendPropertyContainerEvent (const PropertyContainerEvent &p)
const PropertyListgetProperties (void) const
void findPointers (const string name, PropertyList &results)
const PropertyPtr findProperty (const void *) const
const PropertyPtr findProperty (const string name) const
int findIndex (const string name) const
const PropertyPtr getProperty (const string name) const
const PropertyPtr getItem (unsigned int i) const
const PropertyPtr getProperty (unsigned int i) const
void setProperty (const string name, const string value, bool send)
void setProperty (const XMLNodePtr &xml, bool send)
void setProperties (const XMLNodePtr &xml, bool send)
bool isProperty (const PropertyPtr &p) const
bool isProperty (const string name) const
bool isProperty (const string name, const string value) const
bool removeProperty (const PropertyPtr &p, bool send)
bool removeProperty (unsigned int index, bool send)
bool removeProperties (unsigned int first, unsigned int last, bool send)
bool removeProperties (bool send=false)
virtual const PropertyPtr addProperty (const string name, bool send)
virtual const PropertyPtr addProperty (const PropertyPtr &p, bool send)
virtual void setName (const XMLNodePtr &xml=XMLNodePtr())
virtual void setName (const string name)
virtual void recalculatePath (void)
void propertyChanged (const PropertyPtr &p)
void propertyAdded (const PropertyPtr &p)
void propertyRemoved (const PropertyPtr &p)
unsigned int size (void) const
const PropertyPtr operator[] (int) const
PropertyPtr operator[] (int)

Static Public Member Functions

static void extractVariables (const XMLNodePtr &xml)
 recursively scans the xml and adds all "variable" tags met
static void addVariable (const string key, const string value)
static const string interpret (const string value)
static void addPropertyToOwner (AbstractPropertyContainer *owner, const PropertyPtr p)
 must be external to avoid having to include AbstractPropertyContainer in Property.h
static void removePropertyFromOwner (AbstractPropertyContainer *owner, const PropertyPtr p)

Protected Attributes

PropertyList m_properties

Static Protected Attributes

static map< string, string > s_variables

Friends

ostream & operator<< (ostream &os, const AbstractPropertyContainer &rhs)
const istream & operator>> (const istream &is, AbstractPropertyContainer &rhs)


Detailed Description

Definition at line 15 of file AbstractPropertyContainer.h.


Constructor & Destructor Documentation

RenderTools::AbstractPropertyContainer::AbstractPropertyContainer ( void   ) 

Definition at line 10 of file AbstractPropertyContainer.cpp.

RenderTools::AbstractPropertyContainer::~AbstractPropertyContainer ( void   )  [virtual]

Definition at line 14 of file AbstractPropertyContainer.cpp.


Member Function Documentation

const PropertyPtr RenderTools::AbstractPropertyContainer::addProperty ( const PropertyPtr p,
bool  send 
) [virtual]

const PropertyPtr RenderTools::AbstractPropertyContainer::addProperty ( const string  name,
bool  send 
) [virtual]

void RenderTools::AbstractPropertyContainer::addPropertyToOwner ( AbstractPropertyContainer owner,
const PropertyPtr  p 
) [static]

must be external to avoid having to include AbstractPropertyContainer in Property.h

Definition at line 392 of file AbstractPropertyContainer.cpp.

void RenderTools::AbstractPropertyContainer::addVariable ( const string  key,
const string  value 
) [static]

Definition at line 110 of file AbstractPropertyContainer.cpp.

void RenderTools::AbstractPropertyContainer::createProperties ( void   )  [virtual]

void RenderTools::AbstractPropertyContainer::extractVariables ( const XMLNodePtr xml  )  [static]

recursively scans the xml and adds all "variable" tags met

Definition at line 98 of file AbstractPropertyContainer.cpp.

int RenderTools::AbstractPropertyContainer::findIndex ( const string  name  )  const

breadth-first search properties for the name

Definition at line 352 of file AbstractPropertyContainer.cpp.

void RenderTools::AbstractPropertyContainer::findPointers ( const string  name,
PropertyList results 
)

Definition at line 314 of file AbstractPropertyContainer.cpp.

const PropertyPtr RenderTools::AbstractPropertyContainer::findProperty ( const string  name  )  const

breadth-first search properties for the name

Definition at line 332 of file AbstractPropertyContainer.cpp.

const PropertyPtr RenderTools::AbstractPropertyContainer::findProperty ( const void *  pointer  )  const

Definition at line 322 of file AbstractPropertyContainer.cpp.

const PropertyPtr RenderTools::AbstractPropertyContainer::getItem ( unsigned int  i  )  const

const PropertyList & RenderTools::AbstractPropertyContainer::getProperties ( void   )  const

Definition at line 114 of file AbstractPropertyContainer.cpp.

const PropertyPtr RenderTools::AbstractPropertyContainer::getProperty ( unsigned int  i  )  const

Definition at line 132 of file AbstractPropertyContainer.cpp.

const PropertyPtr RenderTools::AbstractPropertyContainer::getProperty ( const string  name  )  const

Definition at line 118 of file AbstractPropertyContainer.cpp.

void RenderTools::AbstractPropertyContainer::initialize ( bool  force = false  )  [virtual]

const string RenderTools::AbstractPropertyContainer::interpret ( const string  value  )  [static]

TODO look in parents

Definition at line 84 of file AbstractPropertyContainer.cpp.

bool RenderTools::AbstractPropertyContainer::isProperty ( const string  name,
const string  value 
) const

Definition at line 238 of file AbstractPropertyContainer.cpp.

bool RenderTools::AbstractPropertyContainer::isProperty ( const string  name  )  const

Definition at line 228 of file AbstractPropertyContainer.cpp.

bool RenderTools::AbstractPropertyContainer::isProperty ( const PropertyPtr p  )  const

Definition at line 216 of file AbstractPropertyContainer.cpp.

void RenderTools::AbstractPropertyContainer::onInitialize ( void   )  [virtual]

void RenderTools::AbstractPropertyContainer::onPropertyContainerEvent ( const PropertyContainerEvent p  )  [virtual]

Definition at line 76 of file AbstractPropertyContainer.cpp.

void RenderTools::AbstractPropertyContainer::onPropertyEvent ( const PropertyEvent p  )  [virtual]

PropertyPtr RenderTools::AbstractPropertyContainer::operator[] ( int  index  ) 

Definition at line 415 of file AbstractPropertyContainer.cpp.

const PropertyPtr RenderTools::AbstractPropertyContainer::operator[] ( int  index  )  const

Definition at line 408 of file AbstractPropertyContainer.cpp.

void RenderTools::AbstractPropertyContainer::propertyAdded ( const PropertyPtr p  ) 

void RenderTools::AbstractPropertyContainer::propertyChanged ( const PropertyPtr p  ) 

void RenderTools::AbstractPropertyContainer::propertyRemoved ( const PropertyPtr p  ) 

void RenderTools::AbstractPropertyContainer::recalculatePath ( void   )  [virtual]

Reimplemented from RenderTools::AbstractProperty.

Definition at line 49 of file AbstractPropertyContainer.cpp.

bool RenderTools::AbstractPropertyContainer::removeProperties ( bool  send = false  ) 

Definition at line 273 of file AbstractPropertyContainer.cpp.

bool RenderTools::AbstractPropertyContainer::removeProperties ( unsigned int  first,
unsigned int  last,
bool  send 
)

collect the pointers that need to be removed

remove the selected pointers

Definition at line 277 of file AbstractPropertyContainer.cpp.

bool RenderTools::AbstractPropertyContainer::removeProperty ( unsigned int  index,
bool  send 
)

Definition at line 247 of file AbstractPropertyContainer.cpp.

bool RenderTools::AbstractPropertyContainer::removeProperty ( const PropertyPtr p,
bool  send 
)

Definition at line 261 of file AbstractPropertyContainer.cpp.

void RenderTools::AbstractPropertyContainer::removePropertyFromOwner ( AbstractPropertyContainer owner,
const PropertyPtr  p 
) [static]

Definition at line 398 of file AbstractPropertyContainer.cpp.

void RenderTools::AbstractPropertyContainer::sendPropertyContainerEvent ( const PropertyContainerEvent p  ) 

Definition at line 80 of file AbstractPropertyContainer.cpp.

void RenderTools::AbstractPropertyContainer::setName ( const string  name  )  [virtual]

Reimplemented from RenderTools::AbstractProperty.

Definition at line 35 of file AbstractPropertyContainer.cpp.

void RenderTools::AbstractPropertyContainer::setName ( const XMLNodePtr xml = XMLNodePtr()  )  [virtual]

Reimplemented from RenderTools::AbstractProperty.

Definition at line 42 of file AbstractPropertyContainer.cpp.

void RenderTools::AbstractPropertyContainer::setOwner ( const PropertyContainerPtr owner  )  [virtual]

Reimplemented from RenderTools::AbstractProperty.

Definition at line 56 of file AbstractPropertyContainer.cpp.

void RenderTools::AbstractPropertyContainer::setProperties ( const XMLNodePtr xml,
bool  send 
)

Definition at line 206 of file AbstractPropertyContainer.cpp.

void RenderTools::AbstractPropertyContainer::setProperty ( const XMLNodePtr xml,
bool  send 
)

first filter out if it's a (global) variable

TODO intoduce variable types

try find a property with that name in this container

we don't have the property yet, so we create it (!)

xml describes a factory class, see if it's expanded

if this is a 'flat' (proxy)tag, create a property through the polymorphic addProperty function

it's a registered factory class, and xml has children, so we need to make a new instance

for a container, recurse into setting the properties

for a 'flat' property, set the value and notify if requested

Definition at line 149 of file AbstractPropertyContainer.cpp.

void RenderTools::AbstractPropertyContainer::setProperty ( const string  name,
const string  value,
bool  send 
)

Definition at line 140 of file AbstractPropertyContainer.cpp.

unsigned int RenderTools::AbstractPropertyContainer::size ( void   )  const

Definition at line 404 of file AbstractPropertyContainer.cpp.

const XMLNodePtr RenderTools::AbstractPropertyContainer::toXML ( const XMLNodePtr parent = XMLNodePtr()  )  const [virtual]

expand if either no parent, or it's described in full before

recurse only if required

Reimplemented from RenderTools::AbstractProperty.

Definition at line 372 of file AbstractPropertyContainer.cpp.


Friends And Related Function Documentation

ostream& operator<< ( ostream &  os,
const AbstractPropertyContainer rhs 
) [friend]

Definition at line 422 of file AbstractPropertyContainer.cpp.

const istream& operator>> ( const istream &  is,
AbstractPropertyContainer rhs 
) [friend]

Definition at line 430 of file AbstractPropertyContainer.cpp.


Member Data Documentation

Definition at line 68 of file AbstractPropertyContainer.h.

map< string, string > RenderTools::AbstractPropertyContainer::s_variables [static, protected]

Definition at line 69 of file AbstractPropertyContainer.h.


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

Generated on Wed Jan 26 00:15:37 2011 for RenderTools by  doxygen 1.5.8