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
279class Environment : public SimObject
280{
281public:
287 Environment(std::string simObjectName, ISimObjectCreator* creator);
288
291
298 void OdeFcn(const double dT, const double* const adX, double* const adXDot) const override;
299
300#ifdef FH_VISUALIZATION
308 void RenderInit(Ogre::Root* const ogreRoot, ISimObjectCreator* const creator);
309
317 void RenderUpdate(const double T, const double* const X);
318#endif
319
320protected:
321#ifdef FH_VISUALIZATION
322 std::shared_ptr<visual::OceanSurfaceProjected> m_surface;
323 std::shared_ptr<visual::SeafloorProjected> m_seafloor;
324 std::shared_ptr<visual::SeafloorMesh> m_seafloorMesh;
325 std::shared_ptr<visual::OceanSides> m_oceanSides;
326#endif
327private:
328 std::shared_ptr<visual::EnvironmentSettings> m_settings;
329 environment::EnvironmentProvider m_environment;
330 std::shared_ptr<environment::SeafloorForces> m_seafloorForces;
331};
332} // namespace environmentmodels
Definition Environment.h:280
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