00001
00002
00003
00004
00005 #ifndef __suActuation_h__
00006 #define __suActuation_h__
00007
00008
00009
00010
00011
00012 #include <rdTools.h>
00013 #include <rdStorage.h>
00014 #include <rdModel.h>
00015 #include <rdAnalysis.h>
00016 #include "suAnalysesDLL.h"
00017
00018
00019
00020
00028 class SUANALYSES_API suActuation : public rdAnalysis
00029 {
00030
00031
00032
00033 private:
00034
00035 protected:
00037 int _na;
00039 double *_fsp;
00041 rdStorage *_forceStore;
00043 rdStorage *_speedStore;
00045 rdStorage *_powerStore;
00046
00047
00048
00049
00050 public:
00051 suActuation(rdModel *aModel);
00052 virtual ~suActuation();
00053 private:
00054 void setNull();
00055 void constructDescription();
00056 void constructColumnLabels();
00057 void allocateStorage();
00058 void deleteStorage();
00059
00060 public:
00061
00062
00063
00064
00065 void setStorageCapacityIncrements(int aIncrement);
00066 rdStorage* getForceStorage() const;
00067 rdStorage* getSpeedStorage() const;
00068 rdStorage* getPowerStorage() const;
00069
00070
00071
00072
00073 virtual int
00074 begin(int aStep,double aDT,double aT,double *aX,double *aY,
00075 void *aClientData=NULL);
00076 virtual int
00077 analyze(double *aXPrev,double *aYPrev,
00078 int aStep,double aDT,double aT,double *aX,double *aY,
00079 void *aClientData=NULL);
00080 virtual int
00081 end(int aStep,double aDT,double aT,double *aX,double *aY,
00082 void *aClientData=NULL);
00083 protected:
00084 virtual int
00085 record(double aT,double *aX,double *aY);
00086
00087
00088
00089
00090 public:
00091 virtual int
00092 printResults(char *aBaseName,char *aDir=NULL,double aDT=-1.0,
00093 char *aExtension=".sto");
00094
00095
00096 };
00097
00098
00099
00100
00101 #endif // #ifndef __suActuation_h__