RCArticulatedBodyFwdDynAlgo.h

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 _RC_ARTICULATED_BODY_FWD_DYN_ALGO_H
00008 #define _RC_ARTICULATED_BODY_FWD_DYN_ALGO_H
00009 
00010 #include <Physsim/Base.h>
00011 #include <Physsim/Constants.h>
00012 #include <Physsim/MatrixNN.h>
00013 
00014 namespace Physsim {
00015 
00016 class RCArticulatedBody;
00017         
00019 class RCArticulatedBodyFwdDynAlgo : public Base
00020 {
00021         public:
00022                 RCArticulatedBodyFwdDynAlgo() { }
00023                 virtual ~RCArticulatedBodyFwdDynAlgo() {}
00024                 virtual void clone(BasePtr& cloned, bimap<BasePtr, BasePtr>* obj_map = NULL) const;
00025                 virtual void load_state(BaseConstPtr object, bimap<BasePtr, BasePtr>* correspondence = NULL);
00026                 virtual void save_state(BasePtr object, bimap<BasePtr, BasePtr>* correspondence = NULL) const;
00027 
00029 
00036                 virtual void calc_fwd_dyn(RCArticulatedBodyPtr body, ReferenceFrameType rftype) = 0;
00037 
00039                 virtual void apply_impulse(RCArticulatedBodyPtr body, const Vector3& j, const Vector3& k, const Vector3& contact_point, RigidBodyPtr link) = 0;
00040 
00042                 ReferenceFrameType get_last_ref_frame() const { return _last_ref_frame; }
00043 
00044         protected:
00045 
00047 
00051                 ReferenceFrameType _last_ref_frame;
00052                 
00053 }; // end class
00054 } // end namespace
00055 
00056 #endif
00057 

Generated on Wed Oct 24 14:54:22 2007 for Physsim by  doxygen 1.5.1