X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=simgear%2Fscene%2Fmodel%2Fparticles.cxx;h=a7fee2ded106e3dbb4c69bd8570bd6f930ddd6f6;hb=32a6bd78d8bf143f40922f1a0bc7a88ea7706a7d;hp=5401e8ec4216c66c6395607a3d22de6de79c1993;hpb=c84e1d0f0e8a945160264547e9613d61ea945b5f;p=simgear.git diff --git a/simgear/scene/model/particles.cxx b/simgear/scene/model/particles.cxx index 5401e8ec..a7fee2de 100644 --- a/simgear/scene/model/particles.cxx +++ b/simgear/scene/model/particles.cxx @@ -1,6 +1,6 @@ // particles.cxx - classes to manage particles -// started in 2008 by Tiago Gusmão, using animation.hxx as reference -// Copyright (C) 2008 Tiago Gusmão +// started in 2008 by Tiago Gusm�o, using animation.hxx as reference +// Copyright (C) 2008 Tiago Gusm�o // // This program is free software; you can redistribute it and/or // modify it under the terms of the GNU General Public License as @@ -44,10 +44,6 @@ #include "particles.hxx" -#if SG_OSG_VERSION >= 27004 -#define OSG_PARTICLE_FIX 1 -#endif - namespace simgear { void GlobalParticleCallback::operator()(osg::Node* node, osg::NodeVisitor* nv) @@ -79,7 +75,7 @@ SGConstPropertyNode_ptr GlobalParticleCallback::enabledNode = 0; osg::ref_ptr Particles::commonRoot; osg::ref_ptr Particles::psu = new osgParticle::ParticleSystemUpdater; -osg::ref_ptr Particles::commonGeode = new osg::Geode;; +osg::ref_ptr Particles::commonGeode = new osg::Geode; osg::Vec3 Particles::_wind; bool Particles::_frozen = false; @@ -192,19 +188,12 @@ osg::Group * Particles::appendParticles(const SGPropertyNode* configNode, osg::Geode* g = new osg::Geode; align->addChild(g); g->addDrawable(particleSys); -#ifndef OSG_PARTICLE_FIX - emitter->setReferenceFrame(osgParticle::Emitter::ABSOLUTE_RF); -#endif } else { -#ifdef OSG_PARTICLE_FIX callback()->particleFrame = new osg::MatrixTransform(); osg::Geode* g = new osg::Geode; g->addDrawable(particleSys); callback()->particleFrame->addChild(g); getCommonRoot()->addChild(callback()->particleFrame.get()); -#else - getCommonGeode()->addDrawable(particleSys); -#endif } std::string textureFile; if (configNode->hasValue("texture")) { @@ -477,14 +466,7 @@ osg::Group * Particles::appendParticles(const SGPropertyNode* configNode, program->setFluidToWater(); if (programnode->getBoolValue("gravity", true)) { -#ifdef OSG_PARTICLE_FIX program->setToGravity(); -#else - if (attach == "world") - callback()->setupProgramGravity(true); - else - program->setToGravity(); -#endif } else program->setAcceleration(osg::Vec3(0,0,0)); @@ -545,7 +527,7 @@ void Particles::operator()(osg::Node* node, osg::NodeVisitor* nv) particleSys->getDefaultParticleTemplate().setSizeRange(osgParticle::rangef(startSize, endSize)); if (lifeValue) particleSys->getDefaultParticleTemplate().setLifeTime(lifeValue->getValue()); -#ifdef OSG_PARTICLE_FIX + if (particleFrame.valid()) { MatrixList mlist = node->getWorldMatrices(); if (!mlist.empty()) { @@ -568,13 +550,5 @@ void Particles::operator()(osg::Node* node, osg::NodeVisitor* nv) } if (program.valid() && useWind) program->setWind(_wind); -#else - if (program.valid()) { - if (useGravity) - program->setAcceleration(GlobalParticleCallback::getGravityVector()); - if (useWind) - program->setWind(GlobalParticleCallback::getWindVector()); - } -#endif } } // namespace simgear