OpenSceneGraph
Public Types | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | List of all members
osgDB::ClassInterface Class Reference

ClassInterface provides a general means of checking for supported properties of classes, and getting/setting thoses properties. More...

Collaboration diagram for osgDB::ClassInterface:
Collaboration graph
[legend]

Public Types

typedef std::map< std::string, osgDB::BaseSerializer::Type > PropertyMap
 Properties supported for a single class.
 
typedef std::map< std::string, PropertyMap > ObjectPropertyMap
 Properties supported for a range of classes, used for white and black lists.
 

Public Member Functions

bool getPropertyType (const osg::Object *object, const std::string &propertyName, osgDB::BaseSerializer::Type &type) const
 get the Type of the specified property, return true if property is supported, otherwise false.
 
bool areTypesCompatible (osgDB::BaseSerializer::Type lhs, osgDB::BaseSerializer::Type rhs) const
 return type of two types are compatible
 
osg::Object * createObject (const std::string &compoundClassdName) const
 create an object of specified type for provided compound class name in the form libraryName::className. More...
 
template<typename T >
bool getProperty (const osg::Object *object, const std::string &propertyName, T &value)
 template method for getting property data, return true if property available and the type is compatible, otherwise returns false.
 
template<typename T >
bool setProperty (osg::Object *object, const std::string &propertyName, const T &value)
 template method for setting property data, return true if property available and the type is compatible, otherwise returns false.
 
std::string getTypeName (osgDB::BaseSerializer::Type type) const
 get the human readable name of type.
 
osgDB::BaseSerializer::Type getType (const std::string &typeName) const
 get the enum value of type given the human readable name.
 
bool getSupportedProperties (const osg::Object *object, PropertyMap &properties, bool searchAssociates=true) const
 Get the list of of properties supported by object.
 
bool isObjectOfType (const osg::Object *object, const std::string &compoundClassName) const
 return true if the object can be cast to the specified class specified by compoundClassName
 
bool run (void *objectPtr, const std::string &compoundClassName, const std::string &methodName, osg::Parameters &inputParameters, osg::Parameters &outputParameters) const
 run method of object
 
bool run (osg::Object *object, const std::string &methodName, osg::Parameters &inputParameters, osg::Parameters &outputParameters) const
 run method of object
 
bool hasMethod (const std::string &compoundClassName, const std::string &methodName) const
 checked for support of specificed method
 
bool hasMethod (const osg::Object *object, const std::string &methodName) const
 checked for support of specificed method
 
ObjectPropertyMap & getWhiteList ()
 Get the list of properties that are explicitly defined as supported.
 
const ObjectPropertyMap & getWhiteList () const
 Get the const list of properties that are explicitly defined as supported.
 
ObjectPropertyMap & getBlackList ()
 Get the list of properties that are explicitly defined as not supported.
 
const ObjectPropertyMap & getBlackList () const
 Get the const list of properties that are explicitly defined as not supported.
 
osgDB::ObjectWrapper * getObjectWrapper (const osg::Object *object) const
 
osgDB::BaseSerializer * getSerializer (const osg::Object *object, const std::string &propertyName, osgDB::BaseSerializer::Type &type) const
 
template<>
bool getProperty (const osg::Object *object, const std::string &propertyName, ObjectPtr &value)
 
template<>
bool setProperty (osg::Object *object, const std::string &propertyName, const ObjectPtr &value)
 

Protected Types

typedef std::map< std::string, osgDB::BaseSerializer::Type > TypeNameToTypeMap
 
typedef std::map< osgDB::BaseSerializer::Type, std::string > TypeToTypeNameMap
 

Protected Member Functions

bool copyPropertyDataFromObject (const osg::Object *object, const std::string &propertyName, void *valuePtr, unsigned int valueSize, osgDB::BaseSerializer::Type valueType)
 
bool copyPropertyDataToObject (osg::Object *object, const std::string &propertyName, const void *valuePtr, unsigned int valueSize, osgDB::BaseSerializer::Type valueType)
 
bool copyPropertyObjectFromObject (const osg::Object *object, const std::string &propertyName, void *valuePtr, unsigned int valueSize, osgDB::BaseSerializer::Type valueType)
 
bool copyPropertyObjectToObject (osg::Object *object, const std::string &propertyName, const void *valuePtr, unsigned int valueSize, osgDB::BaseSerializer::Type valueType)
 

Protected Attributes

osgDB::OutputStream _outputStream
 
PropertyOutputIterator * _poi
 
osgDB::InputStream _inputStream
 
PropertyInputIterator * _pii
 
TypeNameToTypeMap _typeNameToTypeMap
 
TypeToTypeNameMap _typeToTypeNameMap
 
ObjectPropertyMap _whiteList
 
ObjectPropertyMap _blackList
 

Detailed Description

ClassInterface provides a general means of checking for supported properties of classes, and getting/setting thoses properties.

Uses the osgDB serializers to do the actual object query/get/set.

Member Function Documentation

◆ createObject()

osg::Object* osgDB::ClassInterface::createObject ( const std::string &  compoundClassdName) const

create an object of specified type for provided compound class name in the form libraryName::className.


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