00001 // rdGeneralizedForce.h 00002 //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 00003 // Copyright 2002, 2003 Realistic Dynamics, Inc. 00004 // All rights reserved. 00005 // 00006 // Please do not read, copy, distribute, or use without permission. 00007 // Contact: Frank C. Anderson, fca@RealisticDynamics.com 00008 //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 00009 #ifndef __rdGeneralizedForce_h__ 00010 #define __rdGeneralizedForce_h__ 00011 //============================================================================ 00012 #include "rdModel.h" 00013 #include "rdActuator.h" 00014 00015 00016 //============================================================================= 00017 //============================================================================= 00026 class RDSIMULATION_API rdGeneralizedForce : public rdActuator 00027 { 00028 00029 //============================================================================= 00030 // DATA 00031 //============================================================================= 00032 public: 00033 static const char PROP_QID[]; 00034 00035 protected: 00037 int _qID; 00039 double *_utmp; 00040 00041 //============================================================================= 00042 // METHODS 00043 //============================================================================= 00044 //-------------------------------------------------------------------------- 00045 // CONSTRUCTION 00046 //-------------------------------------------------------------------------- 00047 public: 00048 rdGeneralizedForce(int aQID=-1,int aNX=1,int aNY=0,int aNYP=0); 00049 rdGeneralizedForce(IDOM_Element *aElement,int aNX=1,int aNY=0,int aNYP=0); 00050 rdGeneralizedForce(const rdGeneralizedForce &aGenForce); 00051 virtual ~rdGeneralizedForce(); 00052 virtual rdActuator* copy() const; 00053 virtual rdActuator* copy(IDOM_Element *aElement) const; 00054 private: 00055 void setNull(); 00056 00057 //-------------------------------------------------------------------------- 00058 // OPERATORS 00059 //-------------------------------------------------------------------------- 00060 public: 00061 rdGeneralizedForce& operator=(const rdGeneralizedForce &aGenForce); 00062 00063 //-------------------------------------------------------------------------- 00064 // GET AND SET 00065 //-------------------------------------------------------------------------- 00066 // CONTROLS 00067 virtual void setControls(const double aX[]); 00068 virtual void getControls(double rX[]) const; 00069 // GENERALIZED COORDINATE 00070 void setQID(int aQID); 00071 int getQID() const; 00072 00073 //-------------------------------------------------------------------------- 00074 // APPLICATION 00075 //-------------------------------------------------------------------------- 00076 virtual void apply(); 00077 00078 //-------------------------------------------------------------------------- 00079 // COMPUTATIONS 00080 //-------------------------------------------------------------------------- 00081 virtual void computeActuation(); 00082 00083 //-------------------------------------------------------------------------- 00084 // CHECK 00085 //-------------------------------------------------------------------------- 00086 virtual bool check() const; 00087 virtual bool isQIDValid() const; 00088 00089 //-------------------------------------------------------------------------- 00090 // XML 00091 //-------------------------------------------------------------------------- 00092 virtual void updateObject(bool aDeep=true); 00093 virtual void updateNode(bool aDeep=true); 00094 virtual void generateNode(IDOM_Element *aParent); 00095 void updateData(); 00096 00097 //============================================================================= 00098 }; // END of class rdGeneralizedForce 00099 //============================================================================= 00100 //============================================================================= 00101 00102 #endif // __rdGeneralizedForce_h__ 00103 00104
1.3