// Copyright (C) 2002-2005 Gideon May (gideon@computer.org) // // Permission to copy, use, sell and distribute this software is granted // provided this copyright notice appears in all copies. // Permission to modify the code and to distribute modified code is granted // provided this copyright notice appears in all copies, and a notice // that the code was modified is included with the copyright notice. // // This software is provided "as is" without express or implied warranty, // and with no claim as to its suitability for any purpose. // #include #include #include #include #include #include #include #include #include "held_ptr.hpp" using namespace boost::python; namespace PyOSGParticle { void init_ParticleEffect() { class_, bases, boost::noncopyable > particleEffect("ParticleEffect", no_init); particleEffect.def("setUseLocalParticleSystem", &osgParticle::ParticleEffect::setUseLocalParticleSystem); particleEffect.def("getUseLocalParticleSystem", &osgParticle::ParticleEffect::getUseLocalParticleSystem); particleEffect.def("setTextureFileName", &osgParticle::ParticleEffect::setTextureFileName); // particleEffect.def("getTextureFileName", // &osgParticle::ParticleEffect::getTextureFileName); particleEffect.def("setDefaultParticleTemplate", &osgParticle::ParticleEffect::setDefaultParticleTemplate); // particleEffect.def("getDefaultParticleTemplate", // &osgParticle::ParticleEffect::getDefaultParticleTemplate, // return_value_policy()); particleEffect.def("setPosition", &osgParticle::ParticleEffect::setPosition); particleEffect.def("getPosition", &osgParticle::ParticleEffect::getPosition, return_value_policy()); particleEffect.def("setScale", &osgParticle::ParticleEffect::setScale); particleEffect.def("getScale", &osgParticle::ParticleEffect::getScale); particleEffect.def("setIntensity", &osgParticle::ParticleEffect::setIntensity); particleEffect.def("getIntensity", &osgParticle::ParticleEffect::getIntensity); particleEffect.def("setStartTime", &osgParticle::ParticleEffect::setStartTime); particleEffect.def("getStartTime", &osgParticle::ParticleEffect::getStartTime); particleEffect.def("setEmitterDuration", &osgParticle::ParticleEffect::setEmitterDuration); particleEffect.def("getEmitterDuration", &osgParticle::ParticleEffect::getEmitterDuration); particleEffect.def("setParticleDuration", &osgParticle::ParticleEffect::setParticleDuration); particleEffect.def("getParticleDuration", &osgParticle::ParticleEffect::getParticleDuration); particleEffect.def("setWind", &osgParticle::ParticleEffect::setWind); particleEffect.def("getWind", &osgParticle::ParticleEffect::getWind, return_value_policy()); /// Get whether all particles are dead particleEffect.def("areAllParticlesDead", &osgParticle::ParticleEffect::areAllParticlesDead); // virtual Emitter* getEmitter() = 0; // virtual const Emitter* getEmitter() const = 0; // virtual Program* getProgram() = 0; // virtual const Program* getProgram() const = 0; // void setParticleSystem(ParticleSystem* ps); // inline ParticleSystem* getParticleSystem() { return _particleSystem.get(); } // particleEffect.def("getParticleSystem", (osgParticle::ParticleSystem *(osgParticle::ParticleEffect::*)()) &osgParticle::ParticleEffect::getParticleSystem, return_value_policy()) ; particleEffect.def("setDefaults", &osgParticle::ParticleEffect::setDefaults); // void setUpEmitterAndProgram() = 0; particleEffect.def("buildEffect", &osgParticle::ParticleEffect::buildEffect); } }