72 Collision(
const std::string& simObjectName, ISimObjectCreator*
const creator);
74 void OdeFcn(
const double T,
const double*
const X,
double*
const XDot)
const override;
75 void AcceptedStep(
const double T,
const double*
const X)
override;
78 const double* energy(
const double T,
const double*
const X);
79 const double* momentum(
const double T,
const double*
const X);
81#ifdef FH_VISUALIZATION
82 void RenderInit(Ogre::Root*
const ogreRoot, ISimObjectCreator*
const creator);
83 void RenderUpdate(
const double T,
const double*
const X);
87 typedef Eigen::Matrix<double, 3, 3> mat3;
88 typedef Eigen::Matrix<double, 3, 1> vec3;
110 double m_systemEnergy[3];
111 double m_systemMomentum[3];
121 mutable int m_lastNumContact = 0;
122 mutable int m_lastNumContactObjects = 0;
123 mutable double m_lastCollCheck = 0.0;
124 mutable double m_lastNBuild = 0.0;
125 mutable double m_lastBuildBvec = 0.0;
126 mutable double m_lastMatrixMult = 0.0;
127 mutable double m_lastSystemSolve = 0.0;
128 mutable double m_lastSolutionWrite = 0.0;
129 mutable double m_lastOdeTime = 0.0;
131#ifdef FH_VISUALIZATION
132 Ogre::SceneNode** m_ManualObjectNodes;
Collision(const std::string &simObjectName, ISimObjectCreator *const creator)
reads parameters, registers states, output and intput ports.