FhSim  3.1.0
Marine systems simulation
Loading...
Searching...
No Matches
TrawlVessel.h
1
10
11#pragma once
12
13#include <fhsim/simobject/SimObject.h>
14#include <stdio.h>
15#include <string>
16
17class TrawlVessel : public SimObject
18{
19public:
20 TrawlVessel(std::string simObjectName, ISimObjectCreator* creator);
22
23 virtual void OdeFcn(const double dT, const double* const adX, double* const adXDot) const;
24
31 bool HasJacobians() const override;
32 void OdeJacobian(double T, const double* X, double* J, int nStates) override;
33 int GetJacobianSparsity(int nStates, int* rowPtr, int* colIdx) override;
35
36#ifdef FH_VISUALIZATION
37 virtual void RenderInit(Ogre::Root* const ogreRoot, ISimObjectCreator* const creator);
38 virtual void RenderUpdate(const double dT, const double* const adX);
39#endif
40
41protected:
42#ifdef FH_VISUALIZATION
50 void FitDefaultMesh();
51#endif
52
53 double m_apSpeed;
54
56 const double* OutHeading(const double dT, const double* const adX);
57 const double* OutPos(const double dT, const double* const adX);
58 const double* OutVel(const double dT, const double* const adX);
59 const double* OutWarpPos(const double dT, const double* const adX, int warp);
60 const double* OutWarpVel(const double dT, const double* const adX, int warp);
61 void CalcOutput(const double dT, const double* const adX);
62 void CalcOutputCommon(const double dT, const double* const adX) const;
63 virtual void DoDerivedOutputUpdate(const double dT, const double* const adX) { }
64
65 double m_out_Pos[3];
66 double m_out_Vel[3];
67 double* m_out_WarpPos;
68 double* m_out_WarpVel;
69 ICommonComputation* m_commonCalc;
70
71
72 int m_IStatePos;
73 int m_IStateHeading;
74 double m_Breadth;
75 double m_Draught;
76 double m_Length;
77 double m_WarpPosPrt[3];
78 double m_WarpPosStb[3];
79 double m_pitch;
80 double** m_aadWarpPos;
81 int m_numWarps;
82 mutable double m_desiredSpeed;
83 mutable double m_desiredHeading;
84
85#ifdef FH_VISUALIZATION
86 Ogre::Entity* m_RenderMass;
87 Ogre::SceneNode* m_RenderNode;
88 Ogre::Quaternion m_InitOrientation;
89 double m_LengthScale;
90 double m_BreadthScale;
91 double m_DepthScale;
92 double m_deltaRenderPos[3];
93 std::string m_MeshName;
94 bool m_meshGiven;
95 bool m_scaleGiven[3];
96#endif
97};
Class modelling a simple vessel used for the trawl optimization tool.
Definition TrawlVessel.h:18
ICommonComputation * m_commonCalc
Calculations necessary for more than one output port.
Definition TrawlVessel.h:69
const double * OutHeading(const double dT, const double *const adX)
Output ports.
double m_apSpeed
The speed of the autopilot.
Definition TrawlVessel.h:53