flockanimatortornado.h

00001 #ifndef FLOCKANIMATORTORNADO_H
00002 #define FLOCKANIMATORTORNADO_H
00003 
00004 #include "irrlicht.h"
00005 
00006 class Boid;
00007 
00009 
00014 class FlockAnimatorTornado : public irr::scene::ISceneNodeAnimator
00015 {
00016     public:
00017 
00021         FlockAnimatorTornado(irr::IrrlichtDevice* d);
00022 
00024         ~FlockAnimatorTornado();
00025 
00035         void animateNode(irr::scene::ISceneNode* node, irr::u32 timeMs);
00036 
00037     protected:
00038 
00039     private:
00040 
00041         irr::f32 getWindStrength(irr::f32 altitude);
00042         irr::core::vector3df getWindVelocity(irr::core::vector3df location, irr::u32 timeMs);
00043         irr::core::vector3df getForce(Boid* b, irr::u32 timeMs);
00044 
00045         irr::IrrlichtDevice*    device;
00046         irr::f32                mass;                       // mass of particle, kilograms
00047         irr::f32                halfRhoSref;                // 0.5 * fluid density (rho) * reference area (Sref)
00048         irr::f32                pi;                                             // PI
00049         irr::f32                oneOverTwoPi;                   // inverse of 2*pi.
00050         irr::f32                fluidDensity;                           // Air density around sea level, kg/meters cubed
00051         irr::f32                gravitationalAccel;             // rate of gravitational acceleration, in Y direction, meters/second-squared
00052         irr::f32                strength_0;                                     // particle strength at altitude = 0 meters
00053         irr::f32                strength_500;                           // particle strength at altitude = 500 meters
00054         irr::core::vector3df    stormCenter;                            // 3D center of storm.
00055 };
00056 
00057 #endif // FLOCKANIMATORTORNADO_H

Generated on Sun Dec 2 17:09:58 2007 for Swarm by  doxygen 1.4.6-NO