Marine systems simulation
Rudder.h
1#ifndef CRudder_h__
2#define CRudder_h__
48#include <cmath>
49#include <ISimObjectCreator.h>
50#include <CEnvironment.h>
51
52#include "./Ship/Actuators/IRudderCalculator.h"
53namespace Ship{
54
55 class Rudder: public SimObject
56 {
57 public:
58 Rudder(const string simObjectName, ISimObjectCreator* const creator);
59 ~Rudder();
60
61 void FinalSetup( const double T, const double *const X, ISimObjectCreator* const creator );
62 void OdeFcn(const double T, const double* const X, double* const XDot, const bool bIsMajorTimeStep);
63
64 #ifdef FH_VISUALIZATION
65 void RenderInit(Ogre::Root* const ogreRoot, ISimObjectCreator* const creator);
66 void RenderUpdate( const double T, const double* const X);
67 #endif
69 const double* ForceNED(const double T, const double* const X);
70 const double* Alfa(const double T, const double* const X);
71 const double* Cd(const double T, const double* const X);
72 const double* Cl(const double T, const double* const X);
73 const double* Inflow(const double T, const double* const X);
74
75 private:
76
77 double m_Force[3];
78 double m_alfa;
79 double m_cd;
80 double m_cl;
81 double m_inflow[2];
82
83 double m_forceCorrection;
84
86 std::string m_RudderType;
88 ISignalPort *m_InRudderAngleBODY;
90 ISignalPort *m_InVelocityNED;
92 ISignalPort *m_InPositionNED;
94 ISignalPort *m_InQuaternionNED;
95 private:
97 double m_Bredth;
99 double m_Chord;
101 double m_Area;
102
103 IRudderCalculator *m_RudderCalculator;
104 CEnvironment *m_Environment;
105
106 #ifdef FH_VISUALIZATION
107 std::string m_Material;
108 Ogre::SceneNode* m_RenderNode;
109 #endif
110 };
111}
112
113#endif // CRudder_h__
Definition: CEnvironment.h:10
Definition: IRudderCalculator.h:8
Definition: Rudder.h:56
const double * ForceNED(const double T, const double *const X)
Simple waypoint object.
Definition: CableAttach.h:16