104 Sphere(std::string SimObjectName, ISimObjectCreator* Creator);
106 void OdeFcn(
const double T,
const double*
const X,
double*
const XDot)
const;
107 void FinalSetup(
const double T,
const double*
const X, ISimObjectCreator*
const Creator);
110 const double* Position(
const double T,
const double*
const X);
111 const double* Velocity(
const double T,
const double*
const X);
113 bool HasJacobians()
const override;
114 void OdeJacobian(
double T,
const double* X,
double* J,
int nStates)
override;
115 int GetJacobianSparsity(
int nStates,
int* rowPtr,
int* colIdx)
override;
118 const environment::wake::BodyWake*
Wake()
const {
return m_flow.Wake(); }
121 ISignalPort* m_IForce;
133 const environment::sphere_hydro::Sphere& Shape()
const {
return m_caster->Shape(); }
135 std::optional<environment::sphere_hydro::SphereCaster> m_caster;
136 environment::wake::BodyFlowInteraction m_flow;
138#ifdef FH_VISUALIZATION
140 void RenderInit(Ogre::Root*
const ogreRoot, ISimObjectCreator*
const creator);
141 void RenderUpdate(
const double dT,
const double*
const adX);
144 Ogre::SceneNode* m_Node;
145 Ogre::Entity* m_Entity;
146 Ogre::String m_Material;
147 std::string m_SphereMesh;