00001 /* COPYRIGHT 00002 * 00003 * This file is part of the Visual Effects Engine - VEE 00004 * 00005 * Read the "VEE-LICENSE" file for the license. 00006 * 00007 * Authors & Copyright: 00008 * 00009 * Tommi Ilmonen, Tuukka Heikura, Marko Myllymaa and 00010 * Janne Kontkanen 2001-2004 00011 * 00012 * Additional copyrights: Tekes 2003-2004 00013 * 00014 * firstname.lastname@hut.fi 00015 * 00016 */ 00017 00018 #ifndef VEE_EXPLOSION_H 00019 #define VEE_EXPLOSION_H 00020 00021 #include <vee_force_object.h> 00022 00023 class VEE_Explosion : public VEE_ForceObject 00024 { 00025 public: 00026 VEE_Explosion(); 00027 VEE_Explosion(const VEE_Vector3 & location, 00028 float range, 00029 float magnitude, 00030 float ageLimit); 00031 00032 virtual ~VEE_Explosion(); 00033 00034 virtual bool setValue(const char *, VEE_Value *); 00035 virtual VEE_Variable getVariable(const char *) const; 00036 virtual VEE_Object * clone() const; 00037 00038 virtual void update(float dt); 00039 00040 virtual void getForce(VEE_Vector3 *force, 00041 const VEE_Vector3 &velocity, 00042 const VEE_Vector3 &location); 00043 00044 virtual void boundingBoxOfForce(VEE_BoundingBox *box); 00045 00046 static VEE_Object * factory(); 00047 00048 float currentShockRange() { return m_currentShockRange; } 00049 void setCurrentShockRange(float r) { m_currentShockRange = r; } 00050 00051 protected: 00052 00053 float m_range; 00054 float m_magnitude; 00055 00056 float m_currentShockRange; 00057 }; 00058 00059 #endif