280 CableRM(
const std::string& simObjectName, ISimObjectCreator*
const creator);
291 void OdeFcn(
const double T,
const double*
const X,
double*
const XDot)
const;
293 void InitialConditionSetup(
const double T,
const double*
const currentIC,
double*
const updatedIC, ISimObjectCreator*
const creator);
294 void FinalSetup(
const double T,
const double*
const X, ISimObjectCreator*
const creator);
305 const double*
forceA(
const double T,
const double*
const X);
315 const double*
forceB(
const double T,
const double*
const X);
327 void calculationsCommon(
const double T,
const double*
const X)
const;
329#ifdef FH_VISUALIZATION
330 void RenderInit(Ogre::Root*
const ogreRoot, ISimObjectCreator*
const creator);
331 void RenderUpdate(
const double T,
const double*
const X);
335 typedef Eigen::Matrix<double, 3, 3> mat3;
336 typedef Eigen::Matrix<double, 3, 1> vec3;
338 void DistributeCatenary(Eigen::Matrix<double, 3, 1> P1, Eigen::Matrix<double, 3, 1> P2,
double L,
double* states,
int i1,
int i2, ISimObjectCreator* creator);
340 PrintDuringExec* m_print;
341 environment::EnvironmentProvider* m_environment;
344 double m_totalLength;
357 double m_bending_epsilon[3];
394 ISignalPort* m_retractedLengthA;
395 ISignalPort* m_retractedLengthB;
396 ISignalPort* m_retractedSpeedA;
397 ISignalPort* m_retractedSpeedB;
399 int m_retractedNodesA;
400 int m_retractedNodesB;
406 ICommonComputation* m_calcDynamics;
407 Eigen::Matrix<double, Eigen::Dynamic, 1> m_lambda;
408 Eigen::Matrix<double, Eigen::Dynamic, 1> m_F_MDotV;
409 Eigen::Matrix<double, Eigen::Dynamic, 1> m_B;
414#ifdef FH_VISUALIZATION
416 Ogre::SceneNode** m_ManualObjectNodes;
CableRM(const std::string &simObjectName, ISimObjectCreator *const creator)
Reads parameters, registers states, input/output ports and shared resources.
void OdeFcn(const double T, const double *const X, double *const XDot) const
Computes object derivatives as a function of time, states and input ports.