80#ifndef CLINEARSPRING_H
81#define CLINEARSPRING_H
84#include <fhsim/simobject/SimObject.h>
89#ifdef FH_VISUALIZATION
91# include "sfh/ogre/C3DLine.h"
104#ifdef FH_VISUALIZATION
106 virtual void RenderInit(Ogre::Root*
const pOgreRoot, ISimObjectCreator*
const pCreator);
109 virtual void RenderUpdate(
const double dT,
const double*
const adX);
114 void OdeFcn(
const double dT,
const double*
const adX,
double*
const adXDot)
const { }
117 const double*
ForceA(
const double dT,
const double*
const adX);
120 const double*
ForceB(
const double dT,
const double*
const adX);
136#ifdef FH_VISUALIZATION
137 Ogre::Entity* m_pRenderEntity;
138 Ogre::SceneNode* m_pRenderNode;
A linear spring in 3 degrees of freedom.
Definition CLinearSpring.h:25
CLinearSpring(std::string sSimObjectName, ISimObjectCreator *pCreator)
The constructor sets the pointer to the output object and the parser object.
const double * ForceA(const double dT, const double *const adX)
Calculates the end force A.
double m_adOutForceB[3]
Force vector on point B.
Definition CLinearSpring.h:61
ISignalPort * m_pInPosB
Input for position B.
Definition CLinearSpring.h:59
const double * ForceB(const double dT, const double *const adX)
Calculates the end force A.
void CalcOutput(const double dT, const double *const adX)
< Sets the parameters of the spring.
~CLinearSpring()
The destructor cleans up dynamically allocated memory.
double m_adOutForceA[3]
Force vector on point A.
Definition CLinearSpring.h:60
ISignalPort * m_pInPosA
Input for position A.
Definition CLinearSpring.h:58
double m_dStiffness
The linear stiffness of the spring.
Definition CLinearSpring.h:56
double m_dRelaxedLength
the relaxed length of the spring.
Definition CLinearSpring.h:57
void OdeFcn(const double dT, const double *const adX, double *const adXDot) const
Does nothing, as the object contains no states.
Definition CLinearSpring.h:114