103 Sphere(std::string SimObjectName, ISimObjectCreator* Creator);
105 void OdeFcn(
const double T,
const double*
const X,
double*
const XDot)
const;
106 void FinalSetup(
const double T,
const double*
const X, ISimObjectCreator*
const Creator);
109 const double* Position(
const double T,
const double*
const X);
110 const double* Velocity(
const double T,
const double*
const X);
112 bool HasJacobians()
const override;
113 void OdeJacobian(
double T,
const double* X,
double* J,
int nStates)
override;
114 int GetJacobianSparsity(
int nStates,
int* rowPtr,
int* colIdx)
override;
117 const environment::wake::BodyWake*
Wake()
const {
return m_flow.Wake(); }
120 ISignalPort* m_IForce;
132 const environment::sphere_hydro::Sphere& Shape()
const {
return m_caster->Shape(); }
134 std::optional<environment::sphere_hydro::SphereCaster> m_caster;
135 environment::wake::BodyFlowInteraction m_flow;
137#ifdef FH_VISUALIZATION
139 void RenderInit(Ogre::Root*
const ogreRoot, ISimObjectCreator*
const creator);
140 void RenderUpdate(
const double dT,
const double*
const adX);
143 Ogre::SceneNode* m_Node;
144 Ogre::Entity* m_Entity;
145 Ogre::String m_Material;
146 std::string m_SphereMesh;