FhSim  3.1.0
Marine systems simulation
Loading...
Searching...
No Matches
VisualWakeSources.h
1#pragma once
2
8#include <RefreshSchedule.h>
9#include <fhsim/simobject/SimObject.h>
10#include <memory>
11#include <optional>
12#include <string>
13
14namespace environment
15{
16class EnvironmentProvider;
17}
18
19#ifdef FH_VISUALIZATION
20class C3DLine;
21
22namespace Ogre
23{
24class SceneManager;
25}
26#endif
27
28namespace environmentmodels
29{
30
60class VisualWakeSources : public SimObject
61{
62public:
69 VisualWakeSources(std::string SimObjectName, ISimObjectCreator* Creator);
70
73
81 void FinalSetup(const double T, const double* const X, ISimObjectCreator* Creator) override;
82
84 void OdeFcn(const double T, const double* const X, double* const XDot) const override;
85
86#ifdef FH_VISUALIZATION
91 void RenderInit(Ogre::Root* const ogreRoot, ISimObjectCreator* Creator) override;
92
97 void RenderUpdate(const double T, const double* const X) override;
98#endif
99
100private:
101#ifdef FH_VISUALIZATION
103 void Draw(double T);
104#endif
105
106 double m_refreshPeriod;
107 double m_startTime;
108
109 environment::EnvironmentProvider* m_pEnvironment;
110 std::optional<util::RefreshSchedule> m_schedule;
111
112#ifdef FH_VISUALIZATION
113 Ogre::SceneManager* m_sceneMgr;
114 std::unique_ptr<C3DLine> m_lines;
115#endif
116};
117
118} // namespace environmentmodels
Definition VisualWakeSources.h:61
void FinalSetup(const double T, const double *const X, ISimObjectCreator *Creator) override
~VisualWakeSources() override
Releases the lines.
void OdeFcn(const double T, const double *const X, double *const XDot) const override
No state; the ODE function is a no-op.
VisualWakeSources(std::string SimObjectName, ISimObjectCreator *Creator)
Environment SimObjects.
Definition Environment.h:25