FhSim  3.1.0
Marine systems simulation
Loading...
Searching...
No Matches
MooringCable.h
1#pragma once
11#include "ITrawlCable.h"
12
13#include <fhsim/simobject/SimObject.h>
14
15
16#ifdef FH_VISUALIZATION
17# include "sfh/ogre/C3DLine.h"
18#endif
19
20
21class MooringCable : public SimObject
22{
23public:
24 MooringCable(const std::string& simObjectName, ISimObjectCreator* const creator);
26 void OdeFcn(const double T, const double* const X, double* const XDot) const;
27 void InitialConditionSetup(const double T, const double* const currentIC, double* const updatedIC, ISimObjectCreator* const creator);
28 void FinalSetup(const double T, const double* const X, ISimObjectCreator* const creator);
29
30 const double* posBuoy(const double T, const double* const X);
31
32#ifdef FH_VISUALIZATION
33 void RenderInit(Ogre::Root* const ogreRoot, ISimObjectCreator* const creator);
34 void RenderUpdate(const double T, const double* const X);
35#endif
36
37protected:
38 struct element
39 {
40 int p;
41 int q;
42 int v;
43 int w;
44 int n;
45 };
46 std::vector<element> m_CableElements;
47
48 void DistributeCatenary(CoRiBoDynamics::vec3 P1, CoRiBoDynamics::vec3 P2, /*std::vector<element> elements, double L,*/ double* states, /*int i1, int i2,*/ ISimObjectCreator* creator);
49
50
51 ICommonComputation* m_MainCalculations;
52 void MainCalculations(const double T, const double* const X);
53 void MainCalculationsCommon(const double T, const double* const X) const;
54
55 const double* ForceA(const double T, const double* const X);
56 const double* ForceB(const double T, const double* const X);
57 double m_ForceA[3];
58 double m_ForceB[3];
59 int m_indexA;
60 int m_indexB;
61
62 int m_bouyElement;
63 double m_bouyElementDistance;
64
66
67 ISignalPort* m_PosA;
68 ISignalPort* m_PosB;
69 ISignalPort* m_VelA;
70 ISignalPort* m_VelB;
71
72 double m_TotalLength;
73 double m_ElementLength;
74
75 int m_Num;
76 int m_TopChainNum;
77 int m_MidRopeNum;
78 int m_BottomChainNum;
79
80 double m_frequencyCoefficient;
81 double m_TopChainDiameter;
82 double m_MidRopeDiameter;
83 double m_BottomChainDiameter;
84
85
86 ITrawlCable* m_TrawlCable;
88
89#ifdef FH_VISUALIZATION
90 bool m_HQ_Render;
91 Ogre::SceneNode** m_CableNodes;
92 Ogre::SceneNode* m_SafetyZoneNode;
93 C3DLine* m_CableLine;
94 C3DLine* m_TopCableLine;
95 C3DLine* m_BottomCableLine;
96#endif
97};
Definition TrawlCableConstraintSets.h:71
Definition TrawlCableConstraintSets.h:11
Definition ITrawlCable.h:18
Definition MooringCable.h:22
Definition MooringCable.h:39