00001 /**************************************************************************** 00002 * Copyright 2005 Evan Drumwright 00003 * This library is distributed under the terms of the GNU General Public 00004 * License (found in COPYING). 00005 ****************************************************************************/ 00006 00007 #ifndef _DYNAMIC_BODY_H 00008 #define _DYNAMIC_BODY_H 00009 00010 #include <Physsim/Base.h> 00011 #include <Physsim/Visualizable.h> 00012 #include <Physsim/Vector3.h> 00013 #include <Physsim/Matrix3.h> 00014 #include <Physsim/Matrix4.h> 00015 00016 namespace Physsim { 00017 00019 00025 class DynamicBody : public Visualizable 00026 { 00027 public: 00028 DynamicBody() {} 00029 DynamicBody(const DynamicBody* d) : Visualizable(d) {} 00030 virtual ~DynamicBody() {} 00031 00033 virtual void calc_fwd_dyn() = 0; 00034 00036 virtual VectorN get_state() = 0; 00037 00039 virtual VectorN get_state_deriv() = 0; 00040 00042 virtual void set_state(const VectorN& state) = 0; 00043 00045 virtual void reset_accumulators() = 0; 00046 00048 virtual void transform(const Matrix4& T) = 0; 00049 }; // end class 00050 00051 } // end namespace 00052 00053 #endif
1.5.1