00001 /**************************************************************************** 00002 * Copyright 2006 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_INV_DYN_ALGO_H 00008 #define _RC_ARTICULATED_BODY_INV_DYN_ALGO_H 00009 00010 #include <map> 00011 #include <Physsim/Base.h> 00012 #include <Physsim/MatrixNN.h> 00013 #include <Physsim/Vector3.h> 00014 00015 namespace Physsim { 00016 00017 class RCArticulatedBody; 00018 00020 class RCArticulatedBodyInvDynData 00021 { 00022 public: 00023 00025 Vector3 _fext; 00026 00028 Vector3 _text; 00029 00031 VectorN _qdd; 00032 }; 00033 00035 class RCArticulatedBodyInvDynAlgo : public Base 00036 { 00037 public: 00038 RCArticulatedBodyInvDynAlgo() { } 00039 virtual ~RCArticulatedBodyInvDynAlgo() {} 00040 00042 00050 virtual std::map<boost::shared_ptr<Joint>, VectorN> calc_inv_dyn(boost::shared_ptr<RCArticulatedBody> body, const std::map<boost::shared_ptr<RigidBody>, RCArticulatedBodyInvDynData>& inv_dyn_data) = 0; 00051 }; // end class 00052 } // end namespace 00053 00054 #endif
1.5.1