14#include <fhsim/simobject/SimObject.h>
22 TrawlVessel(std::string simObjectName, ISimObjectCreator* creator);
25 virtual void OdeFcn(
const double dT,
const double*
const adX,
double*
const adXDot)
const;
29 virtual double DesiredSpeed(
const double dT,
const double*
const adX)
const;
32 virtual double DesiredHeading(
const double dT,
const double*
const adX)
const;
40 bool HasJacobians()
const override;
41 void OdeJacobian(
double T,
const double* X,
double* J,
int nStates)
override;
42 int GetJacobianSparsity(
int nStates,
int* rowPtr,
int* colIdx)
override;
45#ifdef FH_VISUALIZATION
46 virtual void RenderInit(Ogre::Root*
const ogreRoot, ISimObjectCreator*
const creator);
47 virtual void RenderUpdate(
const double dT,
const double*
const adX);
51#ifdef FH_VISUALIZATION
59 void FitDefaultMesh();
65 const double*
OutHeading(
const double dT,
const double*
const adX);
66 const double* OutPos(
const double dT,
const double*
const adX);
67 const double* OutVel(
const double dT,
const double*
const adX);
68 const double* OutWarpPos(
const double dT,
const double*
const adX,
int warp);
69 const double* OutWarpVel(
const double dT,
const double*
const adX,
int warp);
70 void CalcOutput(
const double dT,
const double*
const adX);
71 void CalcOutputCommon(
const double dT,
const double*
const adX)
const;
72 virtual void DoDerivedOutputUpdate(
const double dT,
const double*
const adX) { }
76 double* m_out_WarpPos;
77 double* m_out_WarpVel;
86 double m_WarpPosPrt[3];
87 double m_WarpPosStb[3];
96#ifdef FH_VISUALIZATION
97 Ogre::Entity* m_RenderMass;
98 Ogre::SceneNode* m_RenderNode;
99 Ogre::Quaternion m_InitOrientation;
100 double m_LengthScale;
101 double m_BreadthScale;
103 double m_deltaRenderPos[3];
104 std::string m_MeshName;
106 bool m_scaleGiven[3];
Class modelling a simple vessel used for the trawl optimization tool.
Definition TrawlVessel.h:20
ICommonComputation * m_commonCalc
Calculations necessary for more than one output port.
Definition TrawlVessel.h:78
virtual double DesiredSpeed(const double dT, const double *const adX) const
std::vector< std::array< double, 3 > > m_warpPos
The warp fastenings in the body frame, port to starboard.
Definition TrawlVessel.h:89
double m_initialSpeed
InitialSpeed: the speed command of a vessel without a Vel input.
Definition TrawlVessel.h:93
const double * OutHeading(const double dT, const double *const adX)
Output ports.
double m_initialHeading
InitialHeading: the heading command of a vessel without a Heading input.
Definition TrawlVessel.h:94
double m_apSpeed
The speed of the autopilot.
Definition TrawlVessel.h:62
virtual double DesiredHeading(const double dT, const double *const adX) const
The commanded heading at (dT, adX), as DesiredSpeed: InitialHeading here.