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_CURVE_PARTICLE_H 00021 #define VEE_CURVE_PARTICLE_H 00022 00023 #include <vee_particle.h> 00024 #include <vee_math.h> 00025 00026 #include <vector> 00027 00028 class VEE_CurveParticle : public VEE_Particle 00029 { 00030 public: 00031 /* class Point 00032 { 00033 public: 00034 VEE_Vector3 m_location; 00035 VEE_Vector3 m_location; 00036 00037 };*/ 00038 00039 00040 VEE_CurveParticle(); 00041 virtual ~VEE_CurveParticle(); 00042 00043 virtual bool setValue(const char *, VEE_Value *); 00044 virtual VEE_Variable getVariable(const char *) const; 00045 00046 virtual void updateVelocity(float); 00047 virtual void update(float); 00048 00049 virtual VEE_Object *clone() const; 00050 static VEE_Object * factory(); 00051 00052 void resizeCurve(uint); 00053 00054 uint pointsToRender() const { return m_activeKnots; } 00055 00056 const VEE_Vector3 & location(uint i) { return m_locations[i]; } 00057 00058 protected: 00059 std::vector<VEE_Vector3> m_locations; 00060 std::vector<VEE_Vector3> m_velocities; 00061 std::vector<VEE_Vector3> m_forces; 00062 00063 float m_knotInerval; 00064 uint m_activeKnots; 00065 }; 00066 00067 #endif