Added createObject() interface
This commit is contained in:
@@ -126,6 +126,10 @@ public:
|
||||
bool areTypesCompatible(osgDB::BaseSerializer::Type lhs, osgDB::BaseSerializer::Type rhs) const;
|
||||
|
||||
|
||||
/** create an object of specified type for provided compound class name in the form libraryName::className. */
|
||||
osg::Object* createObject(const std::string& compounClassdName) const;
|
||||
|
||||
|
||||
/// template method for getting property data, return true if property available and the type is compatible, otherwise returns false.
|
||||
template<typename T>
|
||||
bool getProperty(const osg::Object* object, const std::string& propertyName, T& value);
|
||||
@@ -212,4 +216,4 @@ bool PropertyInterface::setProperty(osg::Object* object, const std::string& prop
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -282,6 +282,12 @@ osgDB::BaseSerializer* PropertyInterface::getSerializer(const osg::Object* objec
|
||||
return ow ? ow->getSerializer(propertyName, type) : 0;
|
||||
}
|
||||
|
||||
osg::Object* PropertyInterface::createObject(const std::string& compoundClassName) const
|
||||
{
|
||||
osgDB::ObjectWrapper* ow = osgDB::Registry::instance()->getObjectWrapperManager()->findWrapper(compoundClassName);
|
||||
return (ow!=0) ? ow->createInstance() : 0;
|
||||
}
|
||||
|
||||
bool PropertyInterface::copyPropertyDataFromObject(const osg::Object* object, const std::string& propertyName, void* valuePtr, unsigned int valueSize, osgDB::BaseSerializer::Type valueType)
|
||||
{
|
||||
_poi->flush();
|
||||
|
||||
Reference in New Issue
Block a user