129#include <Eigen/Eigen>
131#include <CPrintDuringExec.h>
132#include <SimObject.h>
133#include <CEnvironment.h>
134#ifdef FH_VISUALIZATION
135 #include "sfh/ogre/C3DLine.h"
219 CCableRM(
const string& simObjectName, ISimObjectCreator*
const creator);
231 void OdeFcn(
const double T,
const double*
const X,
double*
const XDot,
const bool IsMajorTimeStep);
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);
268#ifdef FH_VISUALIZATION
269 void RenderInit(Ogre::Root*
const ogreRoot, ISimObjectCreator*
const creator);
270 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 CPrintDuringExec* m_print;
284 double m_totalLength;
297 double m_bending_epsilon[3];
316 struct element {
int p;
int q;
int v;
int w; mat3 Mi; vec3 k; mat3 K; vec3 eDot;
double nuDot;};
323 ISignalPort* m_retractedLengthA;
324 ISignalPort* m_retractedLengthB;
325 ISignalPort* m_retractedSpeedA;
326 ISignalPort* m_retractedSpeedB;
328 int m_retractedNodesA;
329 int m_retractedNodesB;
335 ICommonComputation* m_calcDynamics;
336 Eigen::Matrix<double,Eigen::Dynamic,1> m_lambda;
337 Eigen::Matrix<double,Eigen::Dynamic,1> m_F_MDotV;
342#ifdef FH_VISUALIZATION
344 Ogre::SceneNode** m_ManualObjectNodes;
Definition: CEnvironment.h:10
void OdeFcn(const double T, const double *const X, double *const XDot, const bool IsMajorTimeStep)
Computes object derivatives as a function of time, states and input ports.
const double * forceA(const double T, const double *const X)
Output port. Returns current force in endpoint A of cable.
CCableRM(const string &simObjectName, ISimObjectCreator *const creator)
Reads parameters, registers states, input/output ports and shared resources.
void calculations(const double T, const double *const X)
Performs a series of computations within the cable object.
const double * forceB(const double T, const double *const X)
Output port. Returns current force in endpoint B of cable.