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_RANDOM_FORCE_H 00021 #define VEE_RANDOM_FORCE_H 00022 00023 #include <vee_clonable_pointer.h> 00024 #include <vee_scene.h> 00025 #include <vee_object.h> 00026 #include <vee_volume.h> 00027 00028 class VEE_RandomForce : public VEE_ForceObject 00029 { 00030 public: 00031 VEE_RandomForce(); 00032 virtual ~VEE_RandomForce(); 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 void getForce(VEE_Vector3 *force, 00039 const VEE_Vector3 &, 00040 const VEE_Vector3 &); 00041 void boundingBoxOfForce(VEE_BoundingBox *box); 00042 00043 00044 void setScale(const VEE_Vector3 & s) { m_locScale = s; } 00045 00046 static VEE_Object * factory(); 00047 00048 protected: 00049 00050 VEE_Vector3 m_magnitude; 00051 float m_octaveAttenuation; 00052 int m_octaves; 00053 VEE_Vector3 m_locScale; 00054 00055 VEE_ClonablePointer<VEE_Volume> m_volume; 00056 }; 00057 00058 00059 00060 #endif