98#ifdef FH_VISUALIZATION
99 #include "sfh/ogre/C3DLine.h"
107 CRing(
const string& simObjectName, ISimObjectCreator*
const creator);
109 void OdeFcn(
const double T,
const double*
const X,
double*
const XDot,
const bool bIsMajorTimeStep);
110 void InitialConditionSetup(
const double T,
const double *
const currentIC,
double*
const updatedIC, ISimObjectCreator*
const creator);
119 void calculations(
const double T,
const double*
const X);
121 virtual const double* outConnectorPos(
const double T,
const double*
const X,
const int index);
122 virtual const double* outConnectorVel(
const double T,
const double*
const X,
const int index);
124 #ifdef FH_VISUALIZATION
125 void RenderInit(Ogre::Root*
const ogreRoot, ISimObjectCreator*
const creator);
126 void RenderUpdate(
const double T,
const double*
const X);
131 typedef Eigen::Matrix<double,3,3> mat3;
132 typedef Eigen::Matrix<double,3,1> vec3;
135 double m_totalLength;
142 double m_C_isAddMassHack;
143 double m_AddMassHack;
159 double m_surfacePosZ;
175 double m_bending_epsilon[3];
177 struct element {
int p;
int q;
int v;
int w; mat3 Mi; vec3 k; mat3 K; vec3 eDot;
double nuDot;};
185 ICommonComputation* m_calcDynamics;
186 Eigen::Matrix<double,Eigen::Dynamic,1> m_lambda;
187 Eigen::Matrix<double,Eigen::Dynamic,1> m_F_MDotV;
193 #ifdef FH_VISUALIZATION
195 Ogre::SceneNode** m_ManualObjectNodes;
int m_numInputsPerConnector
number of force inputs per connector position (used for multiple attachments at same point)
Definition: CRing.h:168
int m_numConnectors
number of additional connectors, if any
Definition: CRing.h:167
virtual void GetExternalForces(const double T, const double *const X, double *m_extlForce, int index)
get the external forces at element 'index'. Should be overridden by inheriting classes to get forces ...
double ** m_aadConnectorPos
Local array for storing output positions.
Definition: CRing.h:172
double m_centrePosInit[3]
Parameter for describing the initial position of the centre of the ring (not an IC since there is no ...
Definition: CRing.h:155
bool m_additionalConnectors
flag for additional connectors along cable
Definition: CRing.h:166
int m_ElementsPerConnector
number of elements between connectors
Definition: CRing.h:169
ISignalPort ** m_aIIForce
Array of indices to connector forces in input vector.
Definition: CRing.h:170
double ** m_aadConnectorVel
Local array for storing output velocities.
Definition: CRing.h:173
CRing(const string &simObjectName, ISimObjectCreator *const creator)
reads parameters, registers states, output and intput ports.
double m_extlForce[3]
Array for holding current value of external force at a given node.
Definition: CRing.h:171