222 CableRM(
const std::string& simObjectName, ISimObjectCreator*
const creator);
234 void OdeFcn(
const double T,
const double*
const X,
double*
const XDot)
const;
236 void InitialConditionSetup(
const double T,
const double*
const currentIC,
double*
const updatedIC, ISimObjectCreator*
const creator);
237 void FinalSetup(
const double T,
const double*
const X, ISimObjectCreator*
const creator);
248 const double*
forceA(
const double T,
const double*
const X);
258 const double*
forceB(
const double T,
const double*
const X);
270 void calculationsCommon(
const double T,
const double*
const X)
const;
272#ifdef FH_VISUALIZATION
273 void RenderInit(Ogre::Root*
const ogreRoot, ISimObjectCreator*
const creator);
274 void RenderUpdate(
const double T,
const double*
const X);
278 typedef Eigen::Matrix<double, 3, 3> mat3;
279 typedef Eigen::Matrix<double, 3, 1> vec3;
281 void DistributeCatenary(Eigen::Matrix<double, 3, 1> P1, Eigen::Matrix<double, 3, 1> P2,
double L,
double* states,
int i1,
int i2, ISimObjectCreator* creator);
283 PrintDuringExec* m_print;
284 environment::EnvironmentProvider* m_environment;
287 double m_totalLength;
300 double m_bending_epsilon[3];
337 ISignalPort* m_retractedLengthA;
338 ISignalPort* m_retractedLengthB;
339 ISignalPort* m_retractedSpeedA;
340 ISignalPort* m_retractedSpeedB;
342 int m_retractedNodesA;
343 int m_retractedNodesB;
349 ICommonComputation* m_calcDynamics;
350 Eigen::Matrix<double, Eigen::Dynamic, 1> m_lambda;
351 Eigen::Matrix<double, Eigen::Dynamic, 1> m_F_MDotV;
356#ifdef FH_VISUALIZATION
358 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.