85class TestWakeBody :
public SimObject,
public environment::wake::WakeCastingObject
96 TestWakeBody(std::string SimObjectName, ISimObjectCreator* Creator);
107 void FinalSetup(
double T,
const double* X, ISimObjectCreator* Creator)
override;
115 void PreOdeFcn(
double T,
const double* X, IStateUpdater* updater)
override;
118 void OdeFcn(
double T,
const double* X,
double* XDot)
const override;
125 const double*
Force(
double T,
const double* X);
128 const environment::wake::LumpedWakeCaster*
WakeCaster()
const {
return m_caster.get(); }
130 environment::wake::WakeCastState Reference(
const double* X)
const override;
131 void CurrentLoad(
const double* X,
const double freeStream[3],
const double flowDir[3],
double force[3],
double& frontalArea,
double rearCentre[3])
const override;
133#ifdef FH_VISUALIZATION
135 void RenderInit(Ogre::Root* ogreRoot, ISimObjectCreator* creator)
override { }
137 void RenderUpdate(
double T,
const double* X)
override { }
146 void Drag(
const double waterVelocity[3],
double force[3])
const;
149 double FrontalArea()
const;
151 int m_positionIndex = 0;
152 double m_diameter = 1.0;
153 double m_dragCoefficient = 0.5;
154 double m_rho = 1025.0;
155 double m_towVelocity[3] = {0.0, 0.0, 0.0};
156 environment::wake::WakeSettings m_wakeSettings;
157 environment::EnvironmentProvider* m_environment =
nullptr;
158 ISimObjectLogger* m_logger =
nullptr;
159 std::unique_ptr<environment::wake::LumpedWakeCaster> m_caster;
160 double m_waterVelocity[3] = {0.0, 0.0, 0.0};
161 double m_force[3] = {0.0, 0.0, 0.0};
Definition TestWakeBody.h:86
void OdeFcn(double T, const double *X, double *XDot) const override
The position moves at TowVelocity.
void FinalSetup(double T, const double *X, ISimObjectCreator *Creator) override
const double * WaterVelocity(double T, const double *X)
Output port WaterVelocity [m/s], NED.
TestWakeBody(std::string SimObjectName, ISimObjectCreator *Creator)
void PreOdeFcn(double T, const double *X, IStateUpdater *updater) override
const double * Force(double T, const double *X)
Output port Force [N], NED.
const double * Position(double T, const double *X)
Output port Position [m], NED.
const environment::wake::LumpedWakeCaster * WakeCaster() const
The wake caster; null without CastWake or before FinalSetup.
Definition TestWakeBody.h:128