00001 // ArticulatedAgentQuasistatic.h: interface for the ArticulatedAgentQuasistatic class. 00002 // 00004 00005 #ifndef ARTICULATEDAGENTQUASISTATIC_H 00006 #define ARTICULATEDAGENTQUASISTATIC_H 00007 00008 #include "ArticulatedAgentBase.h" 00009 00010 00014 class ArticulatedAgentQuasistatic : public ArticulatedAgentBase { 00015 00016 public: 00017 00019 ArticulatedAgentQuasistatic(std::string label=""); 00021 virtual ~ArticulatedAgentQuasistatic(); 00022 00023 protected: 00026 void forwardKinematics(); 00028 void backwardDynamics(); 00030 void forwardAccelerations(ContactSolver* contactSolver); 00031 00033 virtual void computeDerivativesWithoutContacts(ContactSolver* contactSolver){ 00034 backwardDynamics(); 00035 forwardAccelerations(contactSolver); 00036 } 00037 00040 virtual void computeBodyDerivativesWithoutContacts(real determinant); 00041 00042 virtual void computeDerivatives(GlobalContactInfoVector* globalContacts); 00043 00046 virtual void computeBodyDerivatives(GlobalContactInfoVector* globalContacts); 00047 00048 void computeForces(GlobalContactInfoVector* globalContacts); 00049 00051 void computeTotalForces(GlobalContactInfoVector* globalContacts); 00052 00053 00054 00056 virtual void integrate(const Integrator &integrator); 00057 00058 virtual void rollback(); 00059 }; 00060 00061 #endif //ARTICULATEDAGENTCLASSICAL_H
Thyrix homepage Users' guide
(C) Arxia 2004-2005