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(); }
118 int m_positionIndex = 0;
119 int m_velocityIndex = 0;
120 environment::sphere_hydro::Sphere m_sphere;
121 std::optional<environment::sphere_hydro::SphereCaster> m_caster;
122 std::unique_ptr<environment::wake::SingleBodyWake> m_wake;
123 double m_waterVelocity[3] = {0.0, 0.0, 0.0};
124 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; never null.
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.