108 Crowfoot(
const std::string& simObjectName, ISimObjectCreator*
const creator);
112 void OdeFcn(
const double T,
const double*
const X,
double*
const XDot)
const override;
113 void PreOdeFcn(
double T,
const double* X)
override;
114 void AcceptedStep(
const double T,
const double*
const X)
override;
135 void Solve(
const double T,
const double*
const X)
const;
142 const virtual double* PositionOut(
const double t,
const double*
const x);
143 const virtual double* VelocityOut(
const double t,
const double*
const x);
144 const virtual double* LineForceOut(
const double t,
const double*
const x,
int lineIndex);
145 const virtual double* LineTensionOut(
const double t,
const double*
const x,
int lineIndex);
148#ifdef FH_VISUALIZATION
157 void RenderInit(Ogre::Root*
const ogreRoot, ISimObjectCreator*
const creator);
167 void RenderUpdate(
const double T,
const double*
const X);
173 std::vector<const double*> m_linesPos;
174 std::vector<std::array<double, 3>> m_linesForce;
176 std::vector<double> m_linesTension;
178 std::vector<ISignalPort*> m_inFasteningPositions;
179 std::vector<ISignalPort*> m_inLengths;
180 ISignalPort* m_inExternalForce;
188 mutable double m_velocity[3];
189 mutable double m_instantPos[3];
202 mutable sfh::filters::FIR m_filter;
204#ifdef FH_VISUALIZATION