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
269class Environment : public SimObject
270{
271public:
277 Environment(std::string simObjectName, ISimObjectCreator* creator);
278
281
288 void OdeFcn(const double dT, const double* const adX, double* const adXDot) const override;
289
290#ifdef FH_VISUALIZATION
298 void RenderInit(Ogre::Root* const ogreRoot, ISimObjectCreator* const creator);
299
307 void RenderUpdate(const double T, const double* const X);
308#endif
309
310protected:
311#ifdef FH_VISUALIZATION
312 std::shared_ptr<visual::OceanSurfaceProjected> m_surface;
313 std::shared_ptr<visual::SeafloorProjected> m_seafloor;
314 std::shared_ptr<visual::SeafloorMesh> m_seafloorMesh;
315 std::shared_ptr<visual::OceanSides> m_oceanSides;
316#endif
317private:
318 std::shared_ptr<visual::EnvironmentSettings> m_settings;
319 environment::EnvironmentProvider m_environment;
320 std::shared_ptr<environment::SeafloorForces> m_seafloorForces;
321};
322} // namespace environmentmodels
Definition Environment.h:270
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