Marine systems simulation
Loading...
Searching...
No Matches
TestDynamicWaves.h
1#pragma once
2
3#include <SimObject.h>
4#include <fhsim_environment/EnvironmentProvider.h>
5#include <memory>
6#include <string>
7#include <vector>
8
9namespace environment
10{
11class EnvironmentProvider;
12}
13
14namespace testmodels
15{
18{
20 int id;
22 double time;
24 std::shared_ptr<marenv::wave::WaveField> waveField;
26 bool applied = false;
27};
28
44class TestDynamicWaves : public SimObject
45{
46public:
52 TestDynamicWaves(std::string SimObjectName, ISimObjectCreator* Creator);
53
55 void FinalSetup(const double T, const double* const X, ISimObjectCreator* const Creator);
56
58 void OdeFcn(const double T, const double* const X, double* const XDot, const bool MajorTimeStep);
59
60#ifdef FH_VISUALIZATION
62 virtual void RenderInit(Ogre::Root* const ogreRoot, ISimObjectCreator* const creator);
63
65 virtual void RenderUpdate(const double T, const double* const X);
66#endif
67
68private:
70 ISimObjectCreator* m_creator;
72 environment::EnvironmentProvider* m_environment;
74 double m_transitionTime;
76 int m_randomSeed;
78 std::vector<SeaState> m_seaStates;
80 size_t m_currentStateIndex;
81};
82
83} // namespace testmodels
Definition TestDynamicWaves.h:45
TestDynamicWaves(std::string SimObjectName, ISimObjectCreator *Creator)
void OdeFcn(const double T, const double *const X, double *const XDot, const bool MajorTimeStep)
ODE function - check for sea state transitions.
void FinalSetup(const double T, const double *const X, ISimObjectCreator *const Creator)
Final setup - retrieve environment provider.
SimObjects for testing environment functionality.
Definition TestBuoy1.h:8
Describes a wave field to be activated at a specified simulation time.
Definition TestDynamicWaves.h:18
int id
Unique identifier for this sea state.
Definition TestDynamicWaves.h:20
bool applied
Whether this state has been applied.
Definition TestDynamicWaves.h:26
double time
Time when this sea state becomes active.
Definition TestDynamicWaves.h:22
std::shared_ptr< marenv::wave::WaveField > waveField
Wave field for this sea state.
Definition TestDynamicWaves.h:24