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, PropertyMapObjectPropertyMap
 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::ObjectcreateObject (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
 
ObjectPropertyMapgetWhiteList ()
 Get the list of properties that are explicitly defined as supported.
 
const ObjectPropertyMapgetWhiteList () const
 Get the const list of properties that are explicitly defined as supported.
 
ObjectPropertyMapgetBlackList ()
 Get the list of properties that are explicitly defined as not supported.
 
const ObjectPropertyMapgetBlackList () const
 Get the const list of properties that are explicitly defined as not supported.
 
osgDB::ObjectWrappergetObjectWrapper (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: