FhSim  3.1.0
Marine systems simulation
Loading...
Searching...
No Matches
RBCable.h
1#pragma once
65#include <fhsim/simobject/SimObject.h>
66#ifdef FH_VISUALIZATION
67# include "sfh/ogre/C3DLine.h"
68#endif
69
70
71namespace RbCable
72{
73class RBCable : public SimObject
74{
75public:
76 RBCable(const std::string& simObjectName, ISimObjectCreator* const creator);
77 ~RBCable();
78 void OdeFcn(const double T, const double* const X, double* const XDot) const;
79 void InitialConditionSetup(const double T, const double* const currentIC, double* const updatedIC, ISimObjectCreator* const creator);
80
81 const double* const totalLength(const double T, const double* const X);
82 const double* forceB(const double T, const double* const X);
83 void calculations(const double T, const double* const X);
84 void calculationsCommon(const double T, const double* const X) const;
85
86#ifdef FH_VISUALIZATION
87 void RenderInit(Ogre::Root* const ogreRoot, ISimObjectCreator* const creator);
88 void RenderUpdate(const double T, const double* const X);
89#endif
90
91protected:
92 int m_numElements;
93 int* m_pos;
94 int* m_vel;
95
96 double m_length;
97 double m_alpha;
98 double m_beta;
99 double m_epsilon;
100 double m_bendingStiffness;
101 double m_linearDamping;
102 int counter;
103
104 double m_totalLength;
105 double m_kineticEnergy;
106
107 ISignalPort* m_posA;
108 ISignalPort* m_posB;
109 ISignalPort* m_velA;
110 ISignalPort* m_velB;
111
112 ICommonComputation* m_calcDynamics;
113 double* m_lambda;
114 double* m_accel;
115
116 double m_forceB[3];
117
118#ifdef FH_VISUALIZATION
119 C3DLine* m_line;
120#endif
121};
122} // namespace RbCable
Definition RBCable.h:74
RBCable(const std::string &simObjectName, ISimObjectCreator *const creator)
reads parameters, registers states, output and intput ports.