bool ParticleSystem_writeLocalData(const osg::Object &obj, osgDB::Output &fw) { const osgParticle::ParticleSystem &myobj = static_cast<const osgParticle::ParticleSystem &>(obj); fw.indent() << "particleAlignment "; switch (myobj.getParticleAlignment()) { default: case osgParticle::ParticleSystem::BILLBOARD: fw << "BILLBOARD" << std::endl; break; case osgParticle::ParticleSystem::FIXED: fw << "FIXED" << std::endl; break; } fw.indent() << "particleScaleReferenceFrame "; switch (myobj.getParticleScaleReferenceFrame()) { default: case osgParticle::ParticleSystem::LOCAL_COORDINATES: fw << "LOCAL_COORDINATES" << std::endl; break; case osgParticle::ParticleSystem::WORLD_COORDINATES: fw << "WORLD_COORDINATES" << std::endl; break; } osg::Vec3 v = myobj.getAlignVectorX(); fw.indent() << "alignVectorX " << v.x() << " " << v.y() << " " << v.z() << std::endl; v = myobj.getAlignVectorY(); fw.indent() << "alignVectorY " << v.x() << " " << v.y() << " " << v.z() << std::endl; fw.indent() << "doublePassRendering "; if (myobj.getDoublePassRendering()) fw << "TRUE" << std::endl; else fw << "FALSE" << std::endl; fw.indent() << "frozen "; if (myobj.isFrozen()) fw << "TRUE" << std::endl; else fw << "FALSE" << std::endl; fw.indent() << "freezeOnCull "; if (myobj.getFreezeOnCull()) fw << "TRUE" << std::endl; else fw << "FALSE" << std::endl; osg::BoundingBox bbox = myobj.getDefaultBoundingBox(); fw.indent() << "defaultBoundingBox "; fw << bbox.xMin() << " " << bbox.yMin() << " " << bbox.zMin() << " "; fw << bbox.xMax() << " " << bbox.yMax() << " " << bbox.zMax() << std::endl; fw.indent() << "particleTemplate "; write_particle(myobj.getDefaultParticleTemplate(), fw); return true; }
bool Emitter_writeLocalData(const osg::Object &obj, osgDB::Output &fw) { const osgParticle::Emitter &myobj = static_cast<const osgParticle::Emitter &>(obj); fw.indent() << "useDefaultTemplate "; if (!myobj.getUseDefaultTemplate()) { fw << "FALSE" << std::endl; fw.indent() << "particleTemplate "; write_particle(myobj.getParticleTemplate(), fw); fw << std::endl; } else { fw << "TRUE" << std::endl; } return true; }