Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   Related Pages  

rdSetPoint.h

00001 // rdSetPoint.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 __rdSetPoint_h__
00010 #define __rdSetPoint_h__
00011 
00012 #include <rdModel.h>
00013 #include <rdContactForce.h>
00014 #include "rdActuators.h"
00015 
00016 
00017 //=============================================================================
00018 //=============================================================================
00027 class RDACTUATORS_API rdSetPoint : public rdContactForce
00028 {
00029 
00030 //=============================================================================
00031 // DATA
00032 //=============================================================================
00033 public:
00034    static const char PROP_TANGENTIAL_STIFFNESS[];
00035    static const char PROP_TANGENTIAL_VISCOSITY[];
00036    static const char PROP_FRICTION[];
00037 
00038 protected:
00040    double _mu;
00041 
00042 //=============================================================================
00043 // METHODS
00044 //=============================================================================
00045    //--------------------------------------------------------------------------
00046    // CONSTRUCTION
00047    //--------------------------------------------------------------------------
00048 public:
00049    rdSetPoint(int aBodyA=0,int aBodyB=0,int aNYP=3);
00050    rdSetPoint(IDOM_Element *aElement,int aNYP=3);
00051    rdSetPoint(const rdSetPoint &aContact);
00052    virtual ~rdSetPoint();
00053 private:
00054    void setNull();
00055 
00056    //--------------------------------------------------------------------------
00057    // OPERATORS
00058    //--------------------------------------------------------------------------
00059 public:
00060    rdSetPoint& operator=(const rdSetPoint &aSetPoint);
00061 
00062    //--------------------------------------------------------------------------
00063    // GET AND SET
00064    //--------------------------------------------------------------------------
00065    // PSEUDOSTATES
00066    virtual void setPseudoStates(const double aYP[]);
00067    virtual void getPseudoStates(double rYP[]) const;
00068    // TANGENTIAL STIFFNESS
00069    void setTangentialStiffness(double aKTP);
00070    double getTangentialStiffness() const;
00071    // TANGENTIAL VISCOSITY
00072    void setTangentialViscosity(double aKTV);
00073    double getTangentialViscosity() const;
00074    // COEFFICIENT OF FRICTION
00075    void setFriction(double aMU);
00076    double getFriction() const;
00077 
00078    //--------------------------------------------------------------------------
00079    // COMPUTATIONS
00080    //--------------------------------------------------------------------------
00081    virtual void updatePseudoStates();
00082 
00083    //--------------------------------------------------------------------------
00084    // APPLICATION
00085    //--------------------------------------------------------------------------
00086 
00087 
00088    //--------------------------------------------------------------------------
00089    // CHECK
00090    //--------------------------------------------------------------------------
00091    virtual bool check() const;
00092 
00093    //--------------------------------------------------------------------------
00094    // UTILITY
00095    //--------------------------------------------------------------------------
00096    double
00097       computeTangentialForce(double aNormalForce,double rTangentForce[3],
00098       double rDFFric[3]);
00099    bool
00100       computeNewSetPoint(double aTangentForce,double rSetPoint[3]) const;
00101 
00102    //--------------------------------------------------------------------------
00103    // XML
00104    //--------------------------------------------------------------------------
00105    virtual void updateObject(bool aDeep=true);
00106    virtual void updateNode(bool aDeep=true);
00107    virtual void generateNode(IDOM_Element *aParent);
00108    void updateData();   
00109 
00110 //=============================================================================
00111 }; // END of class rdSetPoint
00112 //=============================================================================
00113 //=============================================================================
00114 
00115 #endif // __rdSetPoint_h__
00116 
00117 

Generated on Wed Aug 20 02:17:06 2003 for Simulation Software by doxygen1.3