68 Pendulum(
const std::string& simObjectName, ISimObjectCreator*
const creator);
69 void OdeFcn(
const double T,
const double*
const X,
double*
const XDot)
const;
71 bool HasJacobians()
const override;
72 void OdeJacobian(
double T,
const double* X,
double* J,
int nStates)
override;
73 int GetJacobianSparsity(
int nStates,
int* rowPtr,
int* colIdx)
override;
75 void InitialConditionSetup(
const double T,
const double*
const currentIC,
double*
const updatedIC, ISimObjectCreator*
const creator);
77#ifdef FH_VISUALIZATION
78 void RenderInit(Ogre::Root*
const ogreRoot, ISimObjectCreator*
const creator);
79 void RenderUpdate(
const double T,
const double*
const X);
83 void SetOutputPortValues(
const double T,
const double*
const X)
const;
84 const double* Angle(
const double T,
const double*
const X);
85 const double* AngularVelocity(
const double T,
const double*
const X);
87 ICommonComputation* m_SetOutputPortValues;
88 int m_AngleIndex, m_AngularVelocityIndex;
97 int LocalIndex(
int globalStateIndex)
const {
return globalStateIndex - m_AngleIndex; }
99 double m_Length, m_Gravity;
100 mutable double m_Angle, m_AngularVelocity;
103#ifdef FH_VISUALIZATION
104 Ogre::ManualObject* m_Line;
105 Ogre::SceneNode* m_RenderNode;
106 std::string m_MaterialName;
107 std::string m_MeshName;