FhSim  3.1.0
Marine systems simulation
Loading...
Searching...
No Matches
CableAttach.h
1#ifndef CCableAttach_h__
2#define CCableAttach_h__
3
48#include <string>
49
50#include <Eigen/Eigen>
51#include <fhsim/simobject/SimObject.h>
52
53#ifdef FH_VISUALIZATION
54#include "sfh/ogre/C3DLine.h"
55#endif
56
57
58namespace Ship{
59 class CableAttach: public SimObject
60 {
61 public:
62 EIGEN_MAKE_ALIGNED_OPERATOR_NEW;
63 CableAttach(const std::string simObjectName, ISimObjectCreator* const creator);
64
65 void OdeFcn(const double T, const double* const X, double* const XDot) const;
66 void ComputeForceNED(const double T, const double* const X) const;
67
68 void InitialConditionSetup(const double T, const double *const currentIC, double* const updatedIC, ISimObjectCreator* const creator);
69 #ifdef FH_VISUALIZATION
70 void RenderInit(Ogre::Root* const ogreRoot, ISimObjectCreator* const creator);
71 void RenderUpdate( const double T, const double* const X);
72 #endif
73 const double * Position(const double T, const double* const X);
74 const double * Velocity(const double T, const double* const X);
75 const double * Force(const double T, const double* const X);
76
77 private:
78
79 double m_Mass;
80 double m_Kp,m_Kd,m_Ki;
81
82 double m_attachRadius;
83
84 int m_Position;
85 int m_Velocity;
86 int m_E;
87
88 ISignalPort *m_InCableForce;
89 ISignalPort *m_InConnectionPoint;
90 ISignalPort *m_InConnectionVelocity;
91
92 ISignalPort *m_InConnectionStatus;
93
94 ISignalPort *m_InAttachState;
95
96 mutable Eigen::Vector3d Freg;
97 mutable Eigen::Vector3d Fff;
98
99 #ifdef FH_VISUALIZATION
100 C3DLine * m_line;
101 #endif
102
103 };
104}
105#endif // CWindForce_h__
Definition CableAttach.h:60
void ComputeForceNED(const double T, const double *const X) const
sets Fff at (T, X); OdeFcn and the ForceNED port call it
Simple waypoint object.
Definition CableAttach.h:58