FhSim  3.1.0
Marine systems simulation
Loading...
Searching...
No Matches
Environment.h
1#pragma once
2
3#include "EnvironmentSettings.h"
4#include "fhsim_environment/EnvironmentProvider.h"
5#include "seafloorForces/SeafloorForces.h"
6#include "visual/OceanSides.h"
7
8#include <fhsim/simobject/SimObject.h>
9#include <marenv/seafloor/BathymetryWavesSpec.h>
10#ifdef FH_VISUALIZATION
11# include "visual/OceanSurfaceProjected.h"
12# include "visual/SeafloorMesh.h"
13# include "visual/SeafloorProjected.h"
14
15#endif
25{
26
206class Environment : public SimObject
207{
208public:
214 Environment(std::string simObjectName, ISimObjectCreator* creator);
215
218
225 void OdeFcn(const double dT, const double* const adX, double* const adXDot) const override;
226
227#ifdef FH_VISUALIZATION
235 void RenderInit(Ogre::Root* const ogreRoot, ISimObjectCreator* const creator);
236
244 void RenderUpdate(const double T, const double* const X);
245#endif
246
247protected:
248#ifdef FH_VISUALIZATION
249 std::shared_ptr<visual::OceanSurfaceProjected> m_surface;
250 std::shared_ptr<visual::SeafloorProjected> m_seafloor;
251 std::shared_ptr<visual::SeafloorMesh> m_seafloorMesh;
252 std::shared_ptr<visual::OceanSides> m_oceanSides;
253#endif
254private:
255 std::shared_ptr<visual::EnvironmentSettings> m_settings;
256 environment::EnvironmentProvider m_environment;
257 std::shared_ptr<environment::SeafloorForces> m_seafloorForces;
258};
259} // namespace environmentmodels
Definition Environment.h:207
Environment(std::string simObjectName, ISimObjectCreator *creator)
void OdeFcn(const double dT, const double *const adX, double *const adXDot) const override
Environment SimObjects.
Definition Environment.h:25