#include <AbstractPropertyContainer.h>
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 PropertyList & | getProperties (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) |
Definition at line 15 of file AbstractPropertyContainer.h.
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.
const PropertyPtr RenderTools::AbstractPropertyContainer::addProperty | ( | const PropertyPtr & | p, | |
bool | send | |||
) | [virtual] |
Reimplemented in RenderTools::PropertyContainer< T >, RenderTools::PropertyProxyContainer< T >, and RenderTools::PropertyContainer< PropertyProxy< T > >.
Definition at line 297 of file AbstractPropertyContainer.cpp.
const PropertyPtr RenderTools::AbstractPropertyContainer::addProperty | ( | const string | name, | |
bool | send | |||
) | [virtual] |
Reimplemented in RenderTools::PropertyContainer< T >, RenderTools::PropertyProxyContainer< T >, and RenderTools::PropertyContainer< PropertyProxy< T > >.
Definition at line 63 of file AbstractPropertyContainer.cpp.
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] |
Reimplemented from RenderTools::AbstractProperty.
Reimplemented in RenderTools::AbstractApplication, RenderTools::Camera, RenderTools::Framebuffer, RenderTools::Image, RenderTools::Program, RenderTools::RelationalNode, RenderTools::Renderbuffer, RenderTools::Rendergroup, RenderTools::AbstractCurve, RenderTools::Circle, RenderTools::Curve< T >, RenderTools::Ellipsoid, RenderTools::Plane, RenderTools::Rendernode, RenderTools::TextNode, RenderTools::Renderpass, RenderTools::Sampler, RenderTools::Stateset, RenderTools::TransformNode, RenderTools::Vertexbuffer, and RenderTools::ViewController.
Definition at line 17 of file AbstractPropertyContainer.cpp.
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 |
Reimplemented in RenderTools::PropertyContainer< T >, RenderTools::PropertyProxyContainer< T >, and RenderTools::PropertyContainer< PropertyProxy< T > >.
Definition at line 128 of file AbstractPropertyContainer.cpp.
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] |
reimplements InitializeInterface::initialize( bool force )
Reimplemented from RenderTools::InitializeInterface.
Definition at line 21 of file AbstractPropertyContainer.cpp.
const string RenderTools::AbstractPropertyContainer::interpret | ( | const string | value | ) | [static] |
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] |
Reimplemented from RenderTools::AbstractProperty.
Reimplemented in RenderTools::AbstractApplication, RenderTools::Camera, RenderTools::Framebuffer, RenderTools::Image, RenderTools::Program, RenderTools::RelationalNode, RenderTools::Renderbuffer, RenderTools::Rendergroup, RenderTools::AbstractCurve, RenderTools::Circle, RenderTools::Ellipsoid, RenderTools::Plane, RenderTools::Rendernode, RenderTools::TextNode, RenderTools::Renderpass, RenderTools::Sampler, RenderTools::Stateset, RenderTools::Vertexbuffer, RenderTools::ViewController, RenderTools::PropertyContainer< T >, RenderTools::PropertyProxyContainer< T >, and RenderTools::PropertyContainer< PropertyProxy< T > >.
Definition at line 31 of file AbstractPropertyContainer.cpp.
void RenderTools::AbstractPropertyContainer::onPropertyContainerEvent | ( | const PropertyContainerEvent & | p | ) | [virtual] |
Definition at line 76 of file AbstractPropertyContainer.cpp.
void RenderTools::AbstractPropertyContainer::onPropertyEvent | ( | const PropertyEvent & | p | ) | [virtual] |
Reimplemented from RenderTools::AbstractProperty.
Reimplemented in RenderTools::Camera, RenderTools::Image, RenderTools::RelationalNode, RenderTools::Renderbuffer, and RenderTools::Rendergroup.
Definition at line 70 of file AbstractPropertyContainer.cpp.
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.
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.
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.