00001 // suForceApplier.h 00002 //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 00003 // AUTHOR: Frank C. Anderson, May Q. Liu 00004 //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 00005 #ifndef __suForceApplier_h__ 00006 #define __suForceApplier_h__ 00007 00008 00009 //============================================================================= 00010 // INCLUDES 00011 //============================================================================= 00012 #include <rdMath.h> 00013 #include <rdTools.h> 00014 #include <rdModel.h> 00015 #include <rdDerivCallback.h> 00016 #include <rdManager.h> 00017 #include "suAnalysesDLL.h" 00018 #include "suContact.h" 00019 #include "suDecomp.h" 00020 00021 00022 //============================================================================= 00023 //============================================================================= 00031 class SUANALYSES_API suForceApplier : public rdDerivCallback 00032 { 00033 //============================================================================= 00034 // DATA 00035 //============================================================================= 00036 protected: 00038 int _body; 00040 double _point[3]; 00042 double _force[3]; 00043 00044 00045 //============================================================================= 00046 // METHODS 00047 //============================================================================= 00048 public: 00049 suForceApplier(rdModel *aModel); 00050 suForceApplier(rdModel *aModel,int aBody,double aPoint[3]); 00051 suForceApplier(rdModel *aModel,int aBody,double aPoint[3],double aForce[3]); 00052 virtual ~suForceApplier(); 00053 private: 00054 void setNull(); 00055 00056 public: 00057 //-------------------------------------------------------------------------- 00058 // GET AND SET 00059 //-------------------------------------------------------------------------- 00060 void setBody(int aBody); 00061 int getBody() const; 00062 void setPoint(double aPoint[3]); 00063 void getPoint(double rPoint[3]) const; 00064 void setForce(double aForce[3]); 00065 void getForce(double rPoint[3]) const; 00066 00067 //-------------------------------------------------------------------------- 00068 // CALLBACKS 00069 //-------------------------------------------------------------------------- 00070 virtual void 00071 applyActuation(double aT,double *aX,double *aY); 00072 00073 //============================================================================= 00074 }; // END of class suForceApplier 00075 //============================================================================= 00076 //============================================================================= 00077 00078 00079 #endif // #ifndef __suForceApplier_h__
1.3