FhSim  3.1.0
Marine systems simulation
Loading...
Searching...
No Matches
Disk.h
1#pragma once
64#include "DiskBase.h"
65
66#include <fhsim/simobject/SimObject.h>
67#include <fhsim_environment/EnvironmentProvider.h>
68
69class Disk : public SimObject
70{
71public:
72 Disk(const std::string& SimObjectName, ISimObjectCreator* const Creator);
73 void FinalSetup(const double T, const double* const X, ISimObjectCreator* const Creator);
74 const double* Position(const double T, const double* const X);
75 const double* Velocity(const double T, const double* const X);
76 void OdeFcn(const double T, const double* const X, double* const XDot) const;
77
78 bool HasJacobians() const override;
79 void OdeJacobian(double T, const double* X, double* J, int nStates) override;
80 int GetJacobianSparsity(int nStates, int* rowPtr, int* colIdx) override;
81
82private:
83 ISignalPort* m_IForce;
84
85 int m_PosIdx;
86 int m_VelIdx;
87
88 double m_DiskD;
89 double m_DiskT;
90 double m_cableD;
91 double m_DiskMass;
92 double m_dragCoeffNormal;
93 double m_dragCoeffTransverse;
94 double m_Rho;
95 double m_lift;
96
97 environment::EnvironmentProvider* m_Environment;
98
99#ifdef FH_VISUALIZATION
100public:
101 void RenderInit(Ogre::Root* const ogreRoot, ISimObjectCreator* const creator);
102 void RenderUpdate(const double dT, const double* const adX);
103
104private:
105 Ogre::SceneNode* m_Node;
106 Ogre::Entity* m_Entity;
107 Ogre::String m_Material;
108 std::string m_SphereMesh;
109#endif
110};
Definition Disk.h:70