vee_vortex.h

Go to the documentation of this file.
00001 /* -*- C++ -*- */
00002 
00003 /* COPYRIGHT
00004  *
00005  * This file is part of the Visual Effects Engine - VEE
00006  *
00007  * Read the "VEE-LICENSE" file for the license.
00008  *
00009  * Authors & Copyright:   
00010  *
00011  * Tommi Ilmonen, Tuukka Heikura, Marko Myllymaa and 
00012  * Janne Kontkanen 2001-2004
00013  *
00014  * Additional copyrights: Tekes 2003-2004
00015  *
00016  * firstname.lastname@hut.fi
00017  *
00018  */
00019 
00020 #ifndef VEE_VORTEX_H
00021 #define VEE_VORTEX_H
00022 
00023 #include <vee_object.h>
00024 #include <vee_scene.h>
00025 
00029 class VEE_Vortex : public VEE_ForceObject
00030 {
00031 public:
00032   VEE_Vortex();
00033 
00034   virtual ~VEE_Vortex();
00035 
00036   virtual bool setValue(const char *, VEE_Value *);
00037   virtual VEE_Variable getVariable(const char *) const;
00038 
00039   virtual VEE_Object * clone() const;
00040 
00041   float epsilon() const { return m_epsilon; }
00042   float magnitude() const { return m_magnitude; }
00043 
00044   void setEpsilon(float e) { m_epsilon = e; }
00045   void setMagnitude(float m) { m_magnitude = m; }
00046   void setRange(float r) { m_range = r; }
00047   void setHeight(float h) { m_height = h; m_useHeight = true; }
00048   float getRange() const { return m_range; }
00049   float height() const { return m_height; }
00050   double vortexed() const { return m_vortexed; }
00051 
00052   void setAxes(float a1, float a2, float a3);
00053   void setAxes(const VEE_Vector3 &axes)
00054   { m_axes = axes; m_axes.normalize(); }
00055   VEE_Vector3 & getAxes() { return m_axes; }
00056 
00057   virtual void update(float dt);
00058 
00059   void getForce(VEE_Vector3 *force,
00060     const VEE_Vector3 &velocity,
00061                 const VEE_Vector3 &location);
00062   void boundingBoxOfForce(VEE_BoundingBox *box);
00063 
00064   static VEE_Object * factory();
00065 
00066 protected:
00067 
00068   VEE_Vector3 m_axes;
00069 
00070   float m_magnitude;
00071   float m_epsilon;
00072   float m_range;
00073   float m_height;
00074   float m_fadeRange;
00075   float m_maxForce;
00076   float m_strength;
00077   float m_radialForce;
00078   float m_minRadius;
00079 
00080   double m_vortexed;
00084   bool  m_useHeight;
00085 };
00086 
00087 #endif

Generated on Mon Mar 12 21:09:01 2007 for VEE - The Visual Effects Engine by  doxygen 1.4.6