Marine systems simulation
Loading...
Searching...
No Matches
VirtualTime.h
1
10#ifndef VirtualTime_H
11#define VirtualTime_H
12
13#include <SimObject.h>
14#include "CEnvironment.h"
15#include <ctime>
16#include <fstream>
17
18class VirtualTime : public SimObject
19{
20public:
22 VirtualTime(std::string sSimObjectName, ISimObjectCreator* pCreator);
23 virtual ~VirtualTime();
24
26 void OdeFcn(const double T, const double* const X, double* const XDot, const bool bIsMajorTimeStep);
27 void FinalSetup(const double T, const double* const X, ISimObjectCreator* const pCreator);
28
29 const double* OutYear(const double T, const double * const X);
30 const double* OutMonth(const double T, const double * const X);
31 const double* OutDay(const double T, const double * const X);
32 const double* OutHour(const double T, const double * const X);
33 const double* OutMinute(const double T, const double * const X);
34 const double* OutSecond(const double T, const double * const X);
35
36 const double* OutAdaTime(const double T, const double * const X);
37 const double* OutTimeDev(const double T, const double * const X);
38 const double* OutTimeVeusz(const double T, const double * const X);
39
40 const double* OutTimeSim(const double T, const double * const X);
41
42 const double* OutFlowVel(const double T, const double* const X);
43
44#ifdef FH_VISUALIZATION
46 virtual void RenderInit(Ogre::Root* const ogreRoot, ISimObjectCreator* const creator) {}
47
49 virtual void RenderUpdate(const double T, const double* const X) {}
50#endif
51protected:
52
53 ISignalPort* m_InTime;
54
55 time_t m_Time;
56 double m_Year;
57 double m_Month;
58 double m_Day;
59 double m_Hour;
60 double m_Minute;
61 double m_Second;
62
63 bool m_CalAdaTime;
64 ISignalPort* m_InTimeD;
65 double m_AdaTime;
66 double m_TimeDev;
67 double m_PreTime;
68
69 bool m_CalTimeVeuze;
70 double m_VeuszDev;
71 double m_TimeVeusz;
72
73 double m_TimeSim;
74
75 bool m_OutSeaEnv;
76 std::string m_OutFileName;
77 CEnvironment* m_Environment;
78 int m_WNum;
79 std::vector<double> m_WaveF;
80 std::vector<double> m_WaveA;
81 std::vector<double> m_WaveP;
82 std::vector<double> m_WaveD;
83 int m_DepthLNum;
84 double* m_DepthL;
85
86 bool m_OutFlowVel;
87 double m_FlowVel;
88 ISignalPort* m_InFlowPos;
89};
90
91#endif
Definition CEnvironment.h:10
Definition VirtualTime.h:19
void OdeFcn(const double T, const double *const X, double *const XDot, const bool bIsMajorTimeStep)
Calculates the state derivatives.
VirtualTime(std::string sSimObjectName, ISimObjectCreator *pCreator)
Constructor.