FhSim  3.1.0
Marine systems simulation
Loading...
Searching...
No Matches
EnvironmentalQuery.h
1#ifndef EnvironmentalQuery_h__
2#define EnvironmentalQuery_h__
3
45#include <string>
46
47#include <fhsim/simobject/ISimObjectCreator.h>
48
49#include <fhsim_environment/EnvironmentProvider.h>
50
51#ifdef FH_VISUALIZATION
52 #include "sfh/ogre/C3DArrow.h"
53#endif
54
55class FhSimMgr;
56namespace Ship{
57 class EnvironmentQuery: public SimObject
58 {
59 public:
60 EnvironmentQuery(const std::string simObjectName, ISimObjectCreator* const creator);
62
63 void OdeFcn(const double T, const double* const X, double* const XDot) const;
64 void FinalSetup( const double T, const double *const X, ISimObjectCreator* const creator );
65
66 #ifdef FH_VISUALIZATION
67 virtual void RenderInit(Ogre::Root* const ogreRoot, ISimObjectCreator* const creator);
68 virtual void RenderUpdate( const double T, const double* const X);
69 #endif
70
73 const double* FluidVelocity (const double T, const double* const X);
76 const double* FluidAcceleration (const double T, const double* const X);
79 const double* FluidDepth (const double T, const double* const X);
82 const double* WaveHeight (const double T, const double* const X);
85 const double* TotalPressure (const double T, const double* const X);
88 const double* DynamicPressure (const double T, const double* const X);
89
90 private:
91
93 ISignalPort *m_InMyPosition;
95 ISignalPort *m_InMyVelocity;
96
98 bool m_UseVelocity;
99
100 double m_FluidVelocity[3];
101 double m_FluidAcceleration[3];
102 double m_FluidDepth;
103 double m_WaveHeight;
104 double m_TotalPressure;
105 double m_DynamicPressure;
106
107 environment::EnvironmentProvider *Environment = nullptr;
108
109 #ifdef FH_VISUALIZATION
110 std::string m_sMaterial;
111 std::string m_sMesh;
112 double m_dScale;
113 Ogre::Entity* m_RenderMass;
114 Ogre::SceneNode* m_RenderNode;
115
116 C3DArrow *m_ForceArrow;
117 #endif
118 };
119}
120#endif // EnvironmentalQuery_h__
Definition EnvironmentalQuery.h:58
const double * FluidAcceleration(const double T, const double *const X)
const double * WaveHeight(const double T, const double *const X)
const double * FluidDepth(const double T, const double *const X)
const double * DynamicPressure(const double T, const double *const X)
const double * FluidVelocity(const double T, const double *const X)
const double * TotalPressure(const double T, const double *const X)
Simple waypoint object.
Definition CableAttach.h:58