OGRE's property system allows you to associate values of arbitrary type with names, and have those values exposed via a self-describing interface. More...
#include "OgrePropertyPrerequisites.h"
#include "OgreAny.h"
#include "OgreIteratorWrappers.h"
#include "OgreString.h"
#include "OgreException.h"
#include "OgreVector2.h"
#include "OgreVector3.h"
#include "OgreVector4.h"
#include "OgreColourValue.h"
#include "OgreQuaternion.h"
#include "OgreMatrix3.h"
#include "OgreMatrix4.h"
#include <boost/bind.hpp>
#include <boost/function.hpp>
Go to the source code of this file.
Classes | |
class | Ogre::PropertyDef |
Definition of a property of an object. More... | |
class | Ogre::PropertyBase |
Base interface for an instance of a property. More... | |
class | Ogre::Property< T > |
Property instance with passthrough calls to a given object. More... | |
struct | Ogre::PropertyValue |
A simple structure designed just as a holder of property values between the instances of objects they might target. More... | |
class | Ogre::PropertySet |
Defines a complete set of properties for a single object instance. More... | |
Namespaces | |
namespace | Ogre |
Typedefs | |
typedef map< String, PropertyDef >::type | Ogre::PropertyDefMap |
Map from property name to shared definition. | |
typedef map< String, PropertyValue >::type | Ogre::PropertyValueMap |
Defines a transferable map of properties using wrapped value types (Ogre::Any). | |
Enumerations | |
enum | Ogre::PropertyType { Ogre::PROP_SHORT = 0, Ogre::PROP_UNSIGNED_SHORT = 1, Ogre::PROP_INT = 2, Ogre::PROP_UNSIGNED_INT = 3, Ogre::PROP_LONG = 4, Ogre::PROP_UNSIGNED_LONG = 5, Ogre::PROP_REAL = 6, Ogre::PROP_STRING = 7, Ogre::PROP_VECTOR2 = 8, Ogre::PROP_VECTOR3 = 9, Ogre::PROP_VECTOR4 = 10, Ogre::PROP_COLOUR = 11, Ogre::PROP_BOOL = 12, Ogre::PROP_QUATERNION = 13, Ogre::PROP_MATRIX3 = 14, Ogre::PROP_MATRIX4 = 15, Ogre::PROP_UNKNOWN = 999 } |
The type of a property. More... |
OGRE's property system allows you to associate values of arbitrary type with names, and have those values exposed via a self-describing interface.
Unlike Ogre::StringInterface, the values are passed as their native types without needing conversion to or from strings; they are simply wrapped in an Ogre::Any and casts are performed to access them.
// Make sure the property definition is created // propertyDefs is a variable of type PropertyDefMap, shared between instances PropertyDefMap::iterator defi = propertyDefs.find("name"); if (defi == propertyDefs.end()) { defi = propertyDefs.insert(PropertyDefMap::value_type("name", PropertyDef("name", "The name of the object.", PROP_STRING))).first; } // This has established the property definition, and its description. // Now, we need to 'wire' a property instance for this object instance // We assume the class is called 'Foo' and the instance is pointed to by a variable called 'inst' // 'props' is a PropertySet, specific to the instance props.addProperty( OGRE_NEW Property<String>(&(defi->second), boost::bind(&Foo::getName, inst), boost::bind(&Foo::setName, inst, _1)));
Definition in file OgreProperty.h.
Copyright © 2012 Torus Knot Software Ltd
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.
Last modified Fri May 25 23:36:29 2012