FhSim  3.1.0
Marine systems simulation
Loading...
Searching...
No Matches
CMass.h
1#ifndef CMass_H
2#define CMass_H
3
81#include <fhsim/simobject/SimObject.h>
82#include <string>
83
84
85class CMass : public SimObject
86{
87 public:
89 CMass(std::string sSimObjectName, ISimObjectCreator* pCreator);
90
91#ifdef FH_VISUALIZATION
93 virtual void RenderInit(Ogre::Root* const ogreRoot, ISimObjectCreator* const creator);
94
96 virtual void RenderUpdate(const double T, const double* const X);
97#endif
98
100 virtual void OdeFcn(const double dT, const double* const adX,
101 double* const adXDot) const;
102
103 virtual bool HasJacobians() const override;
104 virtual void OdeJacobian(double T, const double* X, double* J, int nStates) override;
105 virtual int GetJacobianSparsity(int nStates, int* rowPtr, int* colIdx) override;
106
107 virtual bool HasPortJacobians() const override;
108 virtual void OutputPortJacobian(const std::string& portName, double T, const double* X,
109 double* dPort_dX, int portSize, int nStates, int index = -1) override;
110 virtual void InputPortJacobian(const std::string& portName, double T, const double* X,
111 double* dF_dInput, int portSize, int nStates) override;
112
113 protected:
114 virtual const double* Position(const double dT, const double* const adX);
115 virtual const double* Velocity(const double dT, const double* const adX);
116
117 double m_dMass;
118 ISignalPort* m_pInForce;
119 int m_IStatePos;
120 int m_IStateVel;
121
122
123#ifdef FH_VISUALIZATION
124 std::string m_sMaterial;
125 std::string m_sMeshName;
126 double m_dScale;
127 Ogre::Entity* m_pRenderEntity;
128 Ogre::SceneNode* m_pRenderNode;
129 Ogre::SceneManager* m_pSceneMgr;
130#endif
131};
132
133
134#endif
Class containing a 3dof mass simObjec without gravity.
Definition CMass.h:19
virtual const double * Velocity(const double dT, const double *const adX)
Returns the current velocity state.
int m_IStateVel
The index of the velocity state.
Definition CMass.h:54
virtual const double * Position(const double dT, const double *const adX)
Returns the current position state.
virtual void OdeFcn(const double dT, const double *const adX, double *const adXDot) const
Calculates the state derivatives.
double m_dMass
The mass of the object.
Definition CMass.h:50
CMass(std::string sSimObjectName, ISimObjectCreator *pCreator)
The constructor sets the pointer to the output object and the parser object.
int m_IStatePos
The index of the position state.
Definition CMass.h:53
ISignalPort * m_pInForce
A pointer to the input force.
Definition CMass.h:52