100#include <fhsim/simobject/SimObject.h>
101#ifdef FH_VISUALIZATION
102# include "sfh/ogre/C3DLine.h"
110 Ring(
const std::string& simObjectName, ISimObjectCreator*
const creator);
112 void OdeFcn(
const double T,
const double*
const X,
double*
const XDot)
const;
113 void InitialConditionSetup(
const double T,
const double*
const currentIC,
double*
const updatedIC, ISimObjectCreator*
const creator);
121 void calculations(
const double T,
const double*
const X);
122 void calculationsCommon(
const double T,
const double*
const X)
const;
124 virtual const double* outConnectorPos(
const double T,
const double*
const X,
const int index);
125 virtual const double* outConnectorVel(
const double T,
const double*
const X,
const int index);
127#ifdef FH_VISUALIZATION
128 void RenderInit(Ogre::Root*
const ogreRoot, ISimObjectCreator*
const creator);
129 void RenderUpdate(
const double T,
const double*
const X);
133 typedef Eigen::Matrix<double, 3, 3> mat3;
134 typedef Eigen::Matrix<double, 3, 1> vec3;
137 double m_totalLength;
144 double m_C_isAddMassHack;
145 double m_AddMassHack;
161 double m_surfacePosZ;
177 double m_bending_epsilon[3];
198 ICommonComputation* m_calcDynamics;
199 Eigen::Matrix<double, Eigen::Dynamic, 1> m_lambda;
200 Eigen::Matrix<double, Eigen::Dynamic, 1> m_F_MDotV;
206#ifdef FH_VISUALIZATION
208 Ogre::SceneNode** m_ManualObjectNodes;
int m_ElementsPerConnector
number of elements between connectors
Definition Ring.h:171
double m_extlForce[3]
Array for holding current value of external force at a given node.
Definition Ring.h:173
int m_numInputsPerConnector
number of force inputs per connector position (used for multiple attachments at same point)
Definition Ring.h:170
Ring(const std::string &simObjectName, ISimObjectCreator *const creator)
reads parameters, registers states, output and intput ports.
double m_centrePosInit[3]
Parameter for describing the initial position of the centre of the ring (not an IC since there is no ...
Definition Ring.h:157
double ** m_aadConnectorVel
Local array for storing output velocities.
Definition Ring.h:175
double ** m_aadConnectorPos
Local array for storing output positions.
Definition Ring.h:174
ISignalPort ** m_iIForce
Array of indices to connector forces in input vector.
Definition Ring.h:172
int m_numConnectors
number of additional connectors, if any
Definition Ring.h:169
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 ...
bool m_additionalConnectors
flag for additional connectors along cable
Definition Ring.h:168