00001
00002
00003
00004
00005 #ifndef __suActuatorPerturbationIndependent_h__
00006 #define __suActuatorPerturbationIndependent_h__
00007
00008
00009
00010
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 #include "suActuatorPerturbation.h"
00021
00022
00023
00024
00060 class SUANALYSES_API suActuatorPerturbationIndependent :
00061 public suActuatorPerturbation
00062 {
00063
00064
00065
00066 public:
00067
00068
00069 protected:
00071 rdStorage *_unperturbedForceStorage;
00073 rdStorage *_perturbedForceStorage;
00075 bool _recordUnperturbedForces;
00077 double *_forces;
00079 int _step;
00080
00081
00082
00083 public:
00084 suActuatorPerturbationIndependent(rdModel *aModel);
00085 virtual ~suActuatorPerturbationIndependent();
00086
00087 private:
00088 void setNull();
00089 void constructColumnLabels();
00090 void constructDescription();
00091
00092 public:
00093
00094
00095
00096 void setRecordUnperturbedForces(bool aTrueFalse);
00097 bool getRecordUnperturbedForces();
00098 rdStorage* getUnperturbedForceStorage();
00099 rdStorage* getPerturbedForceStorage();
00100 void reset();
00101 int getStep();
00102
00103
00104
00105
00106 virtual void
00107 computeActuation(double aT,double *aX,double *aY);
00108 virtual void
00109 applyActuation(double aT,double *aX,double *aY);
00110
00111
00112 };
00113
00114
00115
00116
00117 #endif // #ifndef __suActuatorPerturbationIndependent_h__