83 TestWakeBody(std::string SimObjectName, ISimObjectCreator* Creator);
94 void FinalSetup(
double T,
const double* X, ISimObjectCreator* Creator)
override;
102 void PreOdeFcn(
double T,
const double* X, IStateUpdater* updater)
override;
105 void OdeFcn(
double T,
const double* X,
double* XDot)
const override;
112 const double*
Force(
double T,
const double* X);
115 const environment::wake::BodyWake*
Wake()
const {
return m_wake.get(); }
117#ifdef FH_VISUALIZATION
119 void RenderInit(Ogre::Root* ogreRoot, ISimObjectCreator* creator)
override { }
121 void RenderUpdate(
double T,
const double* X)
override { }
125 int m_positionIndex = 0;
126 int m_velocityIndex = 0;
127 environment::sphere_hydro::Sphere m_sphere;
128 std::optional<environment::sphere_hydro::SphereCaster> m_caster;
129 environment::wake::BodyWakeSettings m_wakeSettings;
130 std::unique_ptr<environment::wake::BodyWake> m_wake;
131 double m_waterVelocity[3] = {0.0, 0.0, 0.0};
132 double m_force[3] = {0.0, 0.0, 0.0};
Definition TestWakeBody.h:73
void OdeFcn(double T, const double *X, double *XDot) const override
The position moves at the constant velocity.
const environment::wake::BodyWake * Wake() const
The body's BodyWake; null before FinalSetup.
Definition TestWakeBody.h:115
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.