root/OpenSceneGraph/trunk/src/osgWrappers/serializers/osgSim/MultiSwitch.cpp @ 13041

Revision 13041, 2.0 kB (checked in by robert, 3 years ago)

Ran script to remove trailing spaces and tabs

  • Property svn:eol-style set to native
Line 
1#include <osgSim/MultiSwitch>
2#include <osgDB/ObjectWrapper>
3#include <osgDB/InputStream>
4#include <osgDB/OutputStream>
5
6static bool checkValues( const osgSim::MultiSwitch& node )
7{
8    return node.getSwitchSetList().size()>0;
9}
10
11static bool readValues( osgDB::InputStream& is, osgSim::MultiSwitch& node )
12{
13    unsigned int size = is.readSize(); is >> osgDB::BEGIN_BRACKET;
14    for ( unsigned int i=0; i<size; ++i )
15    {
16        is >> osgDB::PROPERTY("SwitchSet");
17        unsigned int valueSize = is.readSize(); is >> osgDB::BEGIN_BRACKET;
18
19        osgSim::MultiSwitch::ValueList values;
20        for ( unsigned int j=0; j<valueSize; ++j )
21        {
22            bool value; is >> value;
23            values.push_back( value );
24        }
25        node.setValueList( i, values );
26        is >> osgDB::END_BRACKET;
27    }
28    is >> osgDB::END_BRACKET;
29    return true;
30}
31
32static bool writeValues( osgDB::OutputStream& os, const osgSim::MultiSwitch& node )
33{
34    const osgSim::MultiSwitch::SwitchSetList& switches = node.getSwitchSetList();
35    os.writeSize( switches.size() ); os << osgDB::BEGIN_BRACKET << std::endl;
36    for ( unsigned int i=0; i<switches.size(); ++i )
37    {
38        const osgSim::MultiSwitch::ValueList& values = node.getValueList(i);
39        os << osgDB::PROPERTY("SwitchSet"); os.writeSize( values.size() );
40        os << osgDB::BEGIN_BRACKET << std::endl;
41        for ( osgSim::MultiSwitch::ValueList::const_iterator itr=values.begin();
42              itr!=values.end(); ++itr )
43        {
44            os << *itr << std::endl;
45        }
46        os << osgDB::END_BRACKET << std::endl;
47    }
48    os << osgDB::END_BRACKET << std::endl;
49    return true;
50}
51
52REGISTER_OBJECT_WRAPPER( osgSim_MultiSwitch,
53                         new osgSim::MultiSwitch,
54                         osgSim::MultiSwitch,
55                         "osg::Object osg::Node osg::Group osgSim::MultiSwitch" )
56{
57    ADD_BOOL_SERIALIZER( NewChildDefaultValue, true );  // _newChildDefaultValue
58    ADD_UINT_SERIALIZER( ActiveSwitchSet, 0 );  // _activeSwitchSet
59    ADD_USER_SERIALIZER( Values );  // _values
60}
Note: See TracBrowser for help on using the browser.