Exemplo n.º 1
0
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;
}
Exemplo n.º 2
0
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;
}