219 CCableRM(
const std::string& simObjectName, ISimObjectCreator*
const creator);
231 void OdeFcn(
const double T,
const double*
const X,
double*
const XDot)
const;
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);
267 void calculationsCommon(
const double T,
const double*
const X)
const;
269#ifdef FH_VISUALIZATION
270 void RenderInit(Ogre::Root*
const ogreRoot, ISimObjectCreator*
const creator);
271 void RenderUpdate(
const double T,
const double*
const X);
275 typedef Eigen::Matrix<double, 3, 3> mat3;
276 typedef Eigen::Matrix<double, 3, 1> vec3;
278 void DistributeCatenary(Eigen::Matrix<double, 3, 1> P1, Eigen::Matrix<double, 3, 1> P2,
double L,
double* states,
int i1,
int i2, ISimObjectCreator* creator);
280 PrintDuringExec* m_print;
281 environment::EnvironmentProvider* m_environment;
284 double m_totalLength;
297 double m_bending_epsilon[3];
334 ISignalPort* m_retractedLengthA;
335 ISignalPort* m_retractedLengthB;
336 ISignalPort* m_retractedSpeedA;
337 ISignalPort* m_retractedSpeedB;
339 int m_retractedNodesA;
340 int m_retractedNodesB;
346 ICommonComputation* m_calcDynamics;
347 Eigen::Matrix<double, Eigen::Dynamic, 1> m_lambda;
348 Eigen::Matrix<double, Eigen::Dynamic, 1> m_F_MDotV;
353#ifdef FH_VISUALIZATION
355 Ogre::SceneNode** m_ManualObjectNodes;
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.
CCableRM(const std::string &simObjectName, ISimObjectCreator *const creator)
Reads parameters, registers states, input/output ports and shared resources.