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