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
12#include <fhsim/simobject/SimObject.h>
13
15namespace testmodels
16{
17
35class TestBuoy1 : public SimObject
36{
37
38public:
44 TestBuoy1(std::string SimObjectName, ISimObjectCreator* Creator);
45
47 void OdeFcn(const double T, const double* const X, double* const XDot) const override;
48
50 void FinalSetup(const double T, const double* const X, ISimObjectCreator* const Creator);
51
58 const double* Position(const double T, const double* const X);
59
66 const double* Velocity(const double T, const double* const X);
67
68private:
70 int m_PosIdx;
72 int m_VelIdx;
73
75 double m_diameter;
77 double m_mass;
79 double m_dragCoeff;
81 double m_rho;
82
84 environment::EnvironmentProvider* m_environment;
86 double m_gravityForce[3];
87#ifdef FH_VISUALIZATION
88public:
94 void RenderInit(Ogre::Root* const pOgreRoot, ISimObjectCreator* const pCreator);
95
101 void RenderUpdate(const double dT, const double* const adX);
102
103private:
105 Ogre::SceneNode* m_Node;
107 Ogre::Entity* m_Entity;
109 Ogre::String m_Material;
111 std::string m_SphereMesh;
112#endif
113};
114
115} // namespace testmodels
Definition TestBuoy1.h:36
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:16