FhSim  3.1.0
Marine systems simulation
Loading...
Searching...
No Matches
CableConnector.h
1
70#ifndef RBCABLE__CCableConnector_h__
71#define RBCABLE__CCableConnector_h__
72
73#include <string>
74
75#include <fhsim/simobject/SimObject.h>
76
77namespace RbCable
78{
79class CableConnector : public SimObject
80{
81public:
82 CableConnector(const std::string& simObjectName, ISimObjectCreator* const creator);
83 // ~CableConnector();
84 void OdeFcn(const double T, const double* const X, double* const XDot) const;
85 // void InitialConditionSetup(const double T, const double *const currentIC, double* const updatedIC, ISimObjectCreator* const creator);
86
87 bool HasJacobians() const override;
88 void OdeJacobian(double T, const double* X, double* J, int nStates) override;
89 int GetJacobianSparsity(int nStates, int* rowPtr, int* colIdx) override;
90
91 const double* PositionA(const double dT, const double* const adX);
92 const double* VelocityA(const double dT, const double* const adX);
93 const double* PositionB(const double dT, const double* const adX);
94 const double* VelocityB(const double dT, const double* const adX);
95
96
97#ifdef FH_VISUALIZATION
99 virtual void RenderInit(Ogre::Root* const ogreRoot, ISimObjectCreator* const creator);
100
102 virtual void RenderUpdate(const double dT, const double* const adX);
103#endif
104
105protected:
106 double m_mass;
107 double m_gravity;
108 double m_length[3];
109 ISignalPort* m_inForceA;
110 ISignalPort* m_inForceB;
113
114 double m_posA[3];
115 double m_posB[3];
116
117
118#ifdef FH_VISUALIZATION
119 std::string m_material;
120 std::string m_meshName;
121 double m_scale;
122 Ogre::Entity* m_renderEntity;
123 Ogre::SceneNode* m_renderNode;
124 Ogre::SceneManager* m_sceneMgr;
125#endif
126};
127} // namespace RbCable
128#endif // CCableConnector_h__
Definition CableConnector.h:80
double m_posA[3]
The position of connector A.
Definition CableConnector.h:114
int m_IStateVel
The index of the velocity state.
Definition CableConnector.h:112
ISignalPort * m_inForceA
A pointer to input A force.
Definition CableConnector.h:109
double m_mass
The mass of the object.
Definition CableConnector.h:106
double m_length[3]
The vector between connectors;.
Definition CableConnector.h:108
CableConnector(const std::string &simObjectName, ISimObjectCreator *const creator)
reads parameters, registers states, output and intput ports.
double m_posB[3]
The position of connector B.
Definition CableConnector.h:115
ISignalPort * m_inForceB
A pointer to input B force.
Definition CableConnector.h:110
int m_IStatePos
The index of the position state.
Definition CableConnector.h:111
double m_gravity
The gravitational acceleration.
Definition CableConnector.h:107