00001 // suShank.h 00002 //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 00003 // AUTHORS: Frank C. Anderson, Darryl G. Thelen 00004 //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 00005 #ifndef __suShank_h__ 00006 #define __suShank_h__ 00007 00008 00009 //============================================================================ 00010 // INCLUDE 00011 //============================================================================ 00012 #include "rdSDFastDLL.h" 00013 #include <rdModel.h> 00014 #include <rdSDFast.h> 00015 00016 00017 //============================================================================= 00018 //============================================================================= 00031 class RDSDFAST_API suShank : public rdSDFast 00032 { 00033 00034 //============================================================================= 00035 // DATA 00036 //============================================================================= 00037 protected: 00038 00039 //============================================================================= 00040 // METHODS 00041 //============================================================================= 00042 //-------------------------------------------------------------------------- 00043 // CONSTRUCTION 00044 //-------------------------------------------------------------------------- 00045 public: 00046 suShank(); 00047 virtual ~suShank(); 00048 void constructInitialStates(); 00049 void constructNames(); 00050 00051 //-------------------------------------------------------------------------- 00052 // CONTACT 00053 //-------------------------------------------------------------------------- 00054 virtual void computeContact(); 00055 virtual void applyContactForces(); 00056 00057 //-------------------------------------------------------------------------- 00058 // ACTUATION 00059 //-------------------------------------------------------------------------- 00060 virtual void computeActuation(); 00061 virtual void applyActuatorForce(int aID); 00062 virtual void applyActuatorForces(); 00063 00064 //-------------------------------------------------------------------------- 00065 // DERIVATIVES 00066 //-------------------------------------------------------------------------- 00067 virtual int 00068 deriv(double t,double *xt,double *y,double *dy); 00069 virtual int 00070 deriv(double t,double *xt,double *y,double *dqdt,double *dudt); 00071 00072 //-------------------------------------------------------------------------- 00073 // CALLBACKS 00074 //-------------------------------------------------------------------------- 00075 virtual void 00076 integBeginCallback(int aStep,double aDT,double aT,double *aX,double *aY, 00077 void *aClientData=NULL); 00078 virtual void 00079 integStepCallback(double *aXPrev,double *aYPrev,int aStep,double aDT, 00080 double aT,double *aX,double *aY, 00081 void *aClientData=NULL); 00082 virtual void 00083 integEndCallback(int aStep,double aDT,double aT,double *aX,double *aY, 00084 void *aClientData=NULL); 00085 00086 //============================================================================= 00087 }; // END of class suShank 00088 //============================================================================= 00089 //============================================================================= 00090 00091 #endif // __suShank_h__ 00092 00093
1.3