2003-01-22 00:45:36 +08:00
|
|
|
/* -*-c++-*- OpenSceneGraph - Copyright (C) 1998-2003 Robert Osfield
|
|
|
|
*
|
|
|
|
* This library is open source and may be redistributed and/or modified under
|
|
|
|
* the terms of the OpenSceneGraph Public License (OSGPL) version 0.0 or
|
|
|
|
* (at your option) any later version. The full license is in LICENSE file
|
|
|
|
* included with this distribution, and on the openscenegraph.org website.
|
|
|
|
*
|
|
|
|
* This library is distributed in the hope that it will be useful,
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
* OpenSceneGraph Public License for more details.
|
|
|
|
*/
|
2001-09-20 05:08:56 +08:00
|
|
|
#include <osgDB/DotOsgWrapper>
|
|
|
|
|
|
|
|
using namespace osgDB;
|
|
|
|
|
|
|
|
DotOsgWrapper::DotOsgWrapper(osg::Object* proto,
|
|
|
|
const std::string& name,
|
|
|
|
const std::string& associates,
|
|
|
|
ReadFunc readFunc,
|
|
|
|
WriteFunc writeFunc,
|
|
|
|
ReadWriteMode readWriteMode)
|
|
|
|
{
|
2002-06-12 02:41:57 +08:00
|
|
|
|
|
|
|
|
2001-09-20 05:08:56 +08:00
|
|
|
_prototype = proto;
|
|
|
|
_name = name;
|
|
|
|
|
|
|
|
|
|
|
|
// copy the names in the space deliminated associates input into
|
2002-08-29 11:22:27 +08:00
|
|
|
// a vector of separated names.
|
2001-09-20 05:08:56 +08:00
|
|
|
std::string::size_type start_of_name = associates.find_first_not_of(' ');
|
|
|
|
while (start_of_name!=std::string::npos)
|
|
|
|
{
|
|
|
|
std::string::size_type end_of_name = associates.find_first_of(' ',start_of_name);
|
|
|
|
if (end_of_name!=std::string::npos)
|
|
|
|
{
|
|
|
|
_associates.push_back(std::string(associates,start_of_name,end_of_name-start_of_name));
|
|
|
|
start_of_name = associates.find_first_not_of(' ',end_of_name);
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
_associates.push_back(std::string(associates,start_of_name,associates.size()-start_of_name));
|
|
|
|
start_of_name = end_of_name;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
_readFunc = readFunc;
|
|
|
|
_writeFunc = writeFunc;
|
|
|
|
|
|
|
|
_readWriteMode = readWriteMode;
|
|
|
|
}
|