219 CCableRM(
const string& simObjectName, ISimObjectCreator*
const creator);
231 void OdeFcn(
const double T,
const double*
const X,
double*
const XDot,
const bool bIsMajorTimeStep);
233 void InitialConditionSetup(
const double T,
const double *
const currentIC,
double*
const updatedIC, ISimObjectCreator*
const creator);
234 void FinalSetup(
const double T,
const double *
const X, ISimObjectCreator*
const creator);
245 const double*
forceA(
const double T,
const double*
const X);
255 const double*
forceB(
const double T,
const double*
const X);
269 const double* OutPos(
const double T,
const double*
const X,
const int i);
272#ifdef FH_VISUALIZATION
273 void RenderInit(Ogre::Root*
const ogreRoot, ISimObjectCreator*
const creator);
274 void RenderUpdate(
const double T,
const double*
const X);
279 typedef Eigen::Matrix<double,3,3> mat3;
280 typedef Eigen::Matrix<double,3,1> vec3;
282 void DistributeCatenary( Eigen::Matrix<double,3,1> P1, Eigen::Matrix<double,3,1> P2,
double L,
double* states,
int i1,
int i2, ISimObjectCreator* creator );
284 CPrintDuringExec* m_print;
285 environment::EnvironmentProvider* m_environment;
288 double m_totalLength;
301 double m_bending_epsilon[3];
320 struct element {
int p;
int q;
int v;
int w; mat3 Mi; vec3 k; mat3 K; vec3 eDot;
double nuDot;};
327 ISignalPort* m_retractedLengthA;
328 ISignalPort* m_retractedLengthB;
329 ISignalPort* m_retractedSpeedA;
330 ISignalPort* m_retractedSpeedB;
332 int m_retractedNodesA;
333 int m_retractedNodesB;
339 ICommonComputation* m_calcDynamics;
340 Eigen::Matrix<double,Eigen::Dynamic,1> m_lambda;
341 Eigen::Matrix<double,Eigen::Dynamic,1> m_F_MDotV;
348 std::unique_ptr<int[]> m_addElement;
349 std::unique_ptr<double[]> m_addForce;
354 std::unique_ptr<int[]> m_OutEleIndex;
357#ifdef FH_VISUALIZATION
359 Ogre::SceneNode** m_ManualObjectNodes;