/** Default constructor. */ GravityAffector(Ogre::ParticleSystem *psys) : ParticleAffector(psys) , mForce(0.0f) , mForceType(Type_Wind) , mPosition(0.0f) , mDirection(0.0f) { std::vector<Ogre::Bone*> bones = Ogre::any_cast<NiNodeHolder>(psys->getUserObjectBindings().getUserAny()).mBones; assert (!bones.empty()); mEmitterBone = bones[0]; Ogre::TagPoint* tag = static_cast<Ogre::TagPoint*>(mParent->getParentNode()); mParticleBone = static_cast<Ogre::Bone*>(tag->getParent()); mType = "Gravity"; // Init parameters if(createParamDictionary("GravityAffector")) { Ogre::ParamDictionary *dict = getParamDictionary(); Ogre::String force_title("force"); Ogre::String force_descr("Amount of force applied to particles."); Ogre::String force_type_title("force_type"); Ogre::String force_type_descr("Type of force applied to particles (point or wind)."); Ogre::String direction_title("direction"); Ogre::String direction_descr("Direction of wind forces."); Ogre::String position_title("position"); Ogre::String position_descr("Position of point forces."); dict->addParameter(Ogre::ParameterDef(force_title, force_descr, Ogre::PT_REAL), &msForceCmd); dict->addParameter(Ogre::ParameterDef(force_type_title, force_type_descr, Ogre::PT_STRING), &msForceTypeCmd); dict->addParameter(Ogre::ParameterDef(direction_title, direction_descr, Ogre::PT_VECTOR3), &msDirectionCmd); dict->addParameter(Ogre::ParameterDef(position_title, position_descr, Ogre::PT_VECTOR3), &msPositionCmd); } }
NifEmitter(Ogre::ParticleSystem *psys) : Ogre::ParticleEmitter(psys) { mEmitterBone = Ogre::any_cast<Ogre::Bone*>(psys->getUserObjectBindings().getUserAny()); Ogre::TagPoint* tag = static_cast<Ogre::TagPoint*>(mParent->getParentNode()); mParticleBone = static_cast<Ogre::Bone*>(tag->getParent()); initDefaults("Nif"); }
NifEmitter(Ogre::ParticleSystem *psys) : Ogre::ParticleEmitter(psys) , mEmitterBones(Ogre::any_cast<NiNodeHolder>(psys->getUserObjectBindings().getUserAny()).mBones) { assert (!mEmitterBones.empty()); Ogre::TagPoint* tag = static_cast<Ogre::TagPoint*>(mParent->getParentNode()); mParticleBone = static_cast<Ogre::Bone*>(tag->getParent()); initDefaults("Nif"); }