static bool writeInfluenceMap( osgDB::OutputStream& os, const osgAnimation::RigGeometry& geom ) { const osgAnimation::VertexInfluenceMap* map = geom.getInfluenceMap(); os.writeSize(map->size()); os << os.BEGIN_BRACKET << std::endl; for ( osgAnimation::VertexInfluenceMap::const_iterator itr=map->begin(); itr!=map->end(); ++itr ) { std::string name = itr->first; const osgAnimation::VertexInfluence& vi = itr->second; if ( name.empty() ) name = "Empty"; os << os.PROPERTY("VertexInfluence"); os.writeWrappedString(name); os.writeSize(vi.size()) ; os << os.BEGIN_BRACKET << std::endl; for ( osgAnimation::VertexInfluence::const_iterator vitr=vi.begin(); vitr != vi.end(); ++vitr ) { os << vitr->first << vitr->second << std::endl; } os << os.END_BRACKET << std::endl; } os << os.END_BRACKET << std::endl; return true; }
static bool writeValues( osgDB::OutputStream& os, const osgSim::MultiSwitch& node ) { const osgSim::MultiSwitch::SwitchSetList& switches = node.getSwitchSetList(); os.writeSize( switches.size() ); os << os.BEGIN_BRACKET << std::endl; for ( unsigned int i=0; i<switches.size(); ++i ) { const osgSim::MultiSwitch::ValueList& values = node.getValueList(i); os << os.PROPERTY("SwitchSet"); os.writeSize( values.size() ); os << os.BEGIN_BRACKET << std::endl; for ( osgSim::MultiSwitch::ValueList::const_iterator itr=values.begin(); itr!=values.end(); ++itr ) { os << *itr << std::endl; } os << os.END_BRACKET << std::endl; } os << os.END_BRACKET << std::endl; return true; }