FhSim  3.1.0
Marine systems simulation
Loading...
Searching...
No Matches
TestBuoy1.h
1#pragma once
2#ifdef FH_VISUALIZATION
3# pragma warning(push)
4# pragma warning(disable : 4251)
5# include <Ogre.h>
6# pragma warning(pop)
7#endif
8
9
10#include "fhsim_environment/EnvironmentProvider.h"
11#include <string>
12
13#include <fhsim/simobject/SimObject.h>
14
16namespace testmodels
17{
18
36class TestBuoy1 : public SimObject
37{
38
39public:
45 TestBuoy1(std::string SimObjectName, ISimObjectCreator* Creator);
46
48 void OdeFcn(const double T, const double* const X, double* const XDot) const override;
49
51 void FinalSetup(const double T, const double* const X, ISimObjectCreator* const Creator);
52
59 const double* Position(const double T, const double* const X);
60
67 const double* Velocity(const double T, const double* const X);
68
69private:
71 int m_PosIdx;
73 int m_VelIdx;
74
76 double m_diameter;
78 double m_mass;
80 double m_dragCoeff;
82 double m_rho;
83
85 environment::EnvironmentProvider* m_environment;
87 double m_gravityForce[3];
88#ifdef FH_VISUALIZATION
89public:
95 void RenderInit(Ogre::Root* const pOgreRoot, ISimObjectCreator* const pCreator);
96
102 void RenderUpdate(const double dT, const double* const adX);
103
104private:
106 Ogre::SceneNode* m_Node;
108 Ogre::Entity* m_Entity;
110 Ogre::String m_Material;
112 std::string m_SphereMesh;
113#endif
114};
115
116} // namespace testmodels
Definition TestBuoy1.h:37
const double * Position(const double T, const double *const X)
void FinalSetup(const double T, const double *const X, ISimObjectCreator *const Creator)
Final setup - register state indices.
TestBuoy1(std::string SimObjectName, ISimObjectCreator *Creator)
const double * Velocity(const double T, const double *const X)
void OdeFcn(const double T, const double *const X, double *const XDot) const override
ODE function - integrate buoy dynamics.
SimObjects for testing environment functionality.
Definition TestBuoy1.h:17