Marine systems simulation
TorpedoAnchor.h
1#ifndef CTorpedoAnchor_H
2#define CTorpedoAnchor_H
3
91#include "ISimObjectCreator.h"
92namespace rigidbody
93{
94class CRigidCompositeBody;
95};
96class CEnvironment;
97
98class TorpedoAnchor : public SimObject
99{
100 public:
101 TorpedoAnchor(const string& simObjectName, ISimObjectCreator* const creator);
103 void OdeFcn(const double T, const double* const X, double* const XDot, const bool bIsMajorTimeStep);
104
105 void FinalSetup(const double T, const double* const X, ISimObjectCreator* const creator);
106
107#ifdef FH_VISUALIZATION
108 virtual void RenderInit(Ogre::Root* const ogreRoot, ISimObjectCreator* const creator);
109 virtual void RenderUpdate(const double T, const double* const X);
110#endif
111
112 const double* Position(const double T, const double* const X);
113 const double* Velocity(const double T, const double* const X);
114 const double* Theta(const double T, const double* const X);
115 const double* Omega(const double T, const double* const X);
116
117
118 protected:
120
121 double m_MaterialRho; // Total mass of anchor [kg]
122 double m_ShankLength; // Total volume displacement of anchor [m^3]
123 double m_ShankDiameter; // Relative added mass (to displaced fluid volume) [-]
124 double m_ShankThickness; // Total length of anchor [m]
125 double m_ShankFlukeAngle; // Length from anchor-tip to fluke [m]
126 double m_FlukeWidth; // Fluke width times fluke height [m^2]
127 double m_FlukeSideLength; // Main diameter of shank [m]
128 double m_FlukePointLength; // Length of fluke point [m]
129 double m_FlukeThickness; // Thickness of fluke [m]
130
131 ISignalPort* m_Force;
132 int m_PositionIndex;
133 int m_VelocityIndex;
134 int m_ThetaIndex;
135 int m_OmegaIndex;
136
137 CEnvironment* m_environment;
138
139#ifdef FH_VISUALIZATION
140 Ogre::SceneNode* m_RenderNode;
141#endif
142};
143
144#endif
Definition: CEnvironment.h:10
Definition: TorpedoAnchor.h:99
Definition: CRigidCompositeBody.h:12