1 #ifndef OPENMW_COMPONENTS_NIFOSG_PARTICLE_H
2 #define OPENMW_COMPONENTS_NIFOSG_PARTICLE_H
4 #include <osgParticle/Particle>
5 #include <osgParticle/Shooter>
6 #include <osgParticle/Operator>
7 #include <osgParticle/Emitter>
8 #include <osgParticle/Placer>
9 #include <osgParticle/Counter>
11 #include <osg/NodeCallback>
18 class NiPlanarCollider;
19 class NiSphericalCollider;
35 virtual osgParticle::Particle* createParticle(
const osgParticle::Particle *ptemplate);
64 : osg::Object(), osg::NodeCallback()
70 void operator()(osg::Node* node, osg::NodeVisitor* nv);
76 ParticleShooter(
float minSpeed,
float maxSpeed,
float horizontalDir,
float horizontalAngle,
float verticalDir,
float verticalAngle,
77 float lifetime,
float lifetimeRandom);
83 virtual
void shoot(osgParticle::Particle* particle) const;
89 float mHorizontalAngle;
93 float mLifetimeRandom;
105 virtual void beginOperate(osgParticle::Program* program);
106 virtual void operate(osgParticle::Particle* particle,
double dt);
123 virtual void beginOperate(osgParticle::Program* program);
124 virtual void operate(osgParticle::Particle* particle,
double dt);
140 virtual void beginOperate(osgParticle::Program* program);
141 virtual void operate(osgParticle::Particle* particle,
double dt);
160 virtual
void operate(osgParticle::Particle* particle,
double dt);
163 Vec4Interpolator mData;
175 virtual void operate(osgParticle::Particle* particle,
double dt);
176 virtual void beginOperate(osgParticle::Program *);
199 virtual void apply(osg::Node &searchNode);
211 Emitter(
const std::vector<int>& targets);
217 virtual void emitParticles(
double dt);
219 void setShooter(osgParticle::Shooter* shooter);
220 void setPlacer(osgParticle::Placer* placer);
221 void setCounter(osgParticle::Counter* counter);
osg::Vec3f mPosition
Definition: particle.hpp:185
std::vector< int > mTargets
Definition: particle.hpp:225
int mRecIndex
Definition: particle.hpp:204
osg::BoundingSphere mSphere
Definition: particle.hpp:127
Definition: particle.hpp:57
ForceType
Definition: particle.hpp:180
float mDecay
Definition: particle.hpp:187
osg::ref_ptr< osgParticle::Counter > mCounter
Definition: particle.hpp:229
Definition: particle.hpp:181
osg::Plane mPlaneInParticleSpace
Definition: particle.hpp:111
Definition: particle.hpp:194
Definition: particle.hpp:73
float mGrowTime
Definition: particle.hpp:144
float mCachedDefaultSize
Definition: particle.hpp:147
Definition: controlled.hpp:103
InverseWorldMatrix(const InverseWorldMatrix ©, const osg::CopyOp &op)
Definition: particle.hpp:63
osg::Vec3f mDirection
Definition: particle.hpp:186
Definition: particle.hpp:114
osg::NodePath mFoundPath
Definition: particle.hpp:202
Definition: particle.hpp:151
int mQuota
Definition: particle.hpp:40
float mFadeTime
Definition: particle.hpp:145
ForceType mType
Definition: particle.hpp:184
osg::BoundingSphere mSphereInParticleSpace
Definition: particle.hpp:128
Definition: particle.hpp:44
float mBounceFactor
Definition: particle.hpp:126
osg::Plane mPlane
Definition: particle.hpp:110
osg::ref_ptr< osgParticle::Shooter > mShooter
Definition: particle.hpp:228
ParticleSystem()
Definition: particle.cpp:16
osg::Vec3f mCachedWorldDirection
Definition: particle.hpp:189
float mBounceFactor
Definition: particle.hpp:109
Definition: particle.hpp:96
ParticleAgeSetter(float age)
Definition: particle.hpp:47
META_Object(NifOsg, ParticleSystem) virtual osgParticle void setQuota(int quota)
Definition: particle.cpp:31
InverseWorldMatrix()
Definition: particle.hpp:60
osg::Vec3f mCachedWorldPosition
Definition: particle.hpp:188
float mForce
Definition: particle.hpp:179
Definition: controlled.hpp:114
osg::Group * mFound
Definition: particle.hpp:201
Definition: particle.hpp:166
Definition: particle.hpp:27
Definition: controlled.hpp:87
Definition: particle.hpp:131
ValueInterpolator< Nif::Vector4KeyMap, LerpFunc > Vec4Interpolator
Definition: particle.hpp:150
Definition: particle.hpp:208
osg::ref_ptr< osgParticle::Placer > mPlacer
Definition: particle.hpp:227