00001 // rdPolynomialSetPoint.h 00002 //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 00003 // Copyright 2002 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 __rdPolynomialSetPoint_h__ 00010 #define __rdPolynomialSetPoint_h__ 00011 00012 #include <rdModel.h> 00013 #include <rdSetPoint.h> 00014 #include "rdActuators.h" 00015 00016 00017 //============================================================================= 00018 //============================================================================= 00026 class RDACTUATORS_API rdPolynomialSetPoint : public rdSetPoint 00027 { 00028 00029 //============================================================================= 00030 // DATA 00031 //============================================================================= 00032 public: 00033 static const char PROP_NORMAL_STIFFNESS[]; 00034 static const char PROP_NORMAL_VISCOSITY[]; 00035 static const char PROP_STIFFNESS_POWER[]; 00036 static const char PROP_VISCOSITY_POWER[]; 00037 00038 protected: 00042 double _kNP; 00046 double _kNV; 00049 double _powNP; 00052 double _powNV; 00053 00054 //============================================================================= 00055 // METHODS 00056 //============================================================================= 00057 //-------------------------------------------------------------------------- 00058 // CONSTRUCTION 00059 //-------------------------------------------------------------------------- 00060 public: 00061 rdPolynomialSetPoint(int aBodyA=0,int aBodyB=0); 00062 rdPolynomialSetPoint(IDOM_Element *aElement); 00063 rdPolynomialSetPoint(const rdPolynomialSetPoint &aContact); 00064 virtual ~rdPolynomialSetPoint(); 00065 virtual rdActuator* copy() const; 00066 virtual rdActuator* copy(IDOM_Element *aElement) const; 00067 private: 00068 void setNull(); 00069 00070 //-------------------------------------------------------------------------- 00071 // OPERATORS 00072 //-------------------------------------------------------------------------- 00073 public: 00074 rdPolynomialSetPoint& operator=(const rdPolynomialSetPoint &aActuator); 00075 00076 //-------------------------------------------------------------------------- 00077 // GET AND SET 00078 //-------------------------------------------------------------------------- 00079 // NORMAL STIFFNESS 00080 void setNormalStiffnessConstant(double aKNP); 00081 double getNormalStiffnessConstant() const; 00082 // NORMAL VISCOSITY 00083 void setNormalViscosityConstant(double aKNV); 00084 double getNormalViscosityConstant() const; 00085 // STIFFNESS POWER 00086 void setStiffnessPower(double aPower); 00087 double getStiffnessPower() const; 00088 // VISCOSITY POWER 00089 void setViscosityPower(double aPower); 00090 double getViscosityPower() const; 00091 00092 //-------------------------------------------------------------------------- 00093 // COMPUTATIONS 00094 //-------------------------------------------------------------------------- 00095 virtual void computeActuation(); 00096 00097 //-------------------------------------------------------------------------- 00098 // APPLICATION 00099 //-------------------------------------------------------------------------- 00100 00101 00102 //-------------------------------------------------------------------------- 00103 // CHECK 00104 //-------------------------------------------------------------------------- 00105 virtual bool check() const; 00106 00107 //-------------------------------------------------------------------------- 00108 // XML 00109 //-------------------------------------------------------------------------- 00110 virtual void updateObject(bool aDeep=true); 00111 virtual void updateNode(bool aDeep=true); 00112 virtual void generateNode(IDOM_Element *aParent); 00113 void updateData(); 00114 00115 //============================================================================= 00116 }; // END of class rdPolynomialSetPoint 00117 //============================================================================= 00118 //============================================================================= 00119 00120 #endif // __rdPolynomialSetPoint_h__ 00121 00122
1.3