00001 // rdLinearSetPoint.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 __rdLinearSetPoint_h__ 00010 #define __rdLinearSetPoint_h__ 00011 00012 #include <rdModel.h> 00013 #include <rdSetPoint.h> 00014 #include "rdActuators.h" 00015 00016 00017 //============================================================================= 00018 //============================================================================= 00026 class RDACTUATORS_API rdLinearSetPoint : 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 00036 protected: 00037 00038 //============================================================================= 00039 // METHODS 00040 //============================================================================= 00041 //-------------------------------------------------------------------------- 00042 // CONSTRUCTION 00043 //-------------------------------------------------------------------------- 00044 public: 00045 rdLinearSetPoint(int aBodyA=0,int aBodyB=0); 00046 rdLinearSetPoint(IDOM_Element *aElement); 00047 rdLinearSetPoint(const rdLinearSetPoint &aContact); 00048 virtual ~rdLinearSetPoint(); 00049 virtual rdActuator* copy() const; 00050 virtual rdActuator* copy(IDOM_Element *aElement) const; 00051 private: 00052 void setNull(); 00053 00054 //-------------------------------------------------------------------------- 00055 // OPERATORS 00056 //-------------------------------------------------------------------------- 00057 public: 00058 rdLinearSetPoint& operator=(const rdLinearSetPoint &aActuator); 00059 00060 //-------------------------------------------------------------------------- 00061 // GET AND SET 00062 //-------------------------------------------------------------------------- 00063 // NORMAL STIFFNESS 00064 void setNormalStiffness(double aKNP); 00065 double getNormalStiffness() const; 00066 // NORMAL VISCOSITY 00067 void setNormalViscosity(double aKNV); 00068 double getNormalViscosity() const; 00069 00070 //-------------------------------------------------------------------------- 00071 // COMPUTATIONS 00072 //-------------------------------------------------------------------------- 00073 virtual void computeActuation(); 00074 00075 //-------------------------------------------------------------------------- 00076 // APPLICATION 00077 //-------------------------------------------------------------------------- 00078 00079 00080 //-------------------------------------------------------------------------- 00081 // CHECK 00082 //-------------------------------------------------------------------------- 00083 virtual bool check() const; 00084 00085 //-------------------------------------------------------------------------- 00086 // XML 00087 //-------------------------------------------------------------------------- 00088 virtual void updateObject(bool aDeep=true); 00089 virtual void updateNode(bool aDeep=true); 00090 virtual void generateNode(IDOM_Element *aParent); 00091 void updateData(); 00092 00093 //============================================================================= 00094 }; // END of class rdLinearSetPoint 00095 //============================================================================= 00096 //============================================================================= 00097 00098 #endif // __rdLinearSetPoint_h__ 00099 00100
1.3