Added initial support for wrapping osg::Array in a way that can be used via scripting.

This commit is contained in:
Robert Osfield
2014-02-12 18:03:53 +00:00
parent 8bbbea1274
commit 743a6b049c
3 changed files with 183 additions and 17 deletions

View File

@@ -537,7 +537,7 @@ public:
int LuaScriptEngine::pushPropertyToStack(osg::Object* object, const std::string& propertyName) const
{
OSG_NOTICE<<"LuaScriptEngine::pushPropertyToStack("<<object<<", "<<propertyName<<")"<<std::endl;
// OSG_NOTICE<<"LuaScriptEngine::pushPropertyToStack("<<object<<", "<<propertyName<<")"<<std::endl;
osgDB::BaseSerializer::Type type;
if (!_pi.getPropertyType(object, propertyName, type))
@@ -590,6 +590,18 @@ int LuaScriptEngine::pushPropertyToStack(osg::Object* object, const std::string&
}
break;
}
case(osgDB::BaseSerializer::RW_GLENUM):
{
GLenum value;
if (_pi.getProperty(object, propertyName, value))
{
osgDB::ObjectWrapperManager* ow = osgDB::Registry::instance()->getObjectWrapperManager();
std::string enumString = ow->getString("GL",value);
lua_pushstring(_lua, enumString.c_str());
return 1;
}
break;
}
case(osgDB::BaseSerializer::RW_ENUM):
{
int value;
@@ -842,6 +854,23 @@ int LuaScriptEngine::setPropertyFromStack(osg::Object* object, const std::string
}
break;
}
case(osgDB::BaseSerializer::RW_GLENUM):
{
if (lua_isnumber(_lua, -1))
{
_pi.setProperty(object, propertyName, static_cast<int>(lua_tonumber(_lua, -1)));
return 0;
}
else if (lua_isstring(_lua, -1))
{
const char* enumString = lua_tostring(_lua, -1);
osgDB::ObjectWrapperManager* ow = osgDB::Registry::instance()->getObjectWrapperManager();
int value = ow->getValue("GL",enumString);
_pi.setProperty(object, propertyName, value);
}
break;
}
case(osgDB::BaseSerializer::RW_ENUM):
{
if (lua_isnumber(_lua, -1))
@@ -1640,6 +1669,7 @@ osg::Object* LuaScriptEngine::popParameterObject() const
if (lua_isstring(_lua, -1)) object = new osg::StringValueObject("", lua_tostring(_lua, -1));
break;
}
case(osgDB::BaseSerializer::RW_GLENUM):
case(osgDB::BaseSerializer::RW_ENUM):
if (lua_isstring(_lua, -1))
{