63#include "CAttractorBase.h"
65#ifdef FH_VISUALIZATION
66#include "CTextRenderer.h"
68#include "sfh/timers/StopWatch.h"
69#include "sfh/filters/IIR.h"
81 void CalcOutput(
const double dT,
const double*
const adX);
82 void CalcOutput2(
const double dT,
const double*
const adX);
85 virtual void OdeFcn(
const double dT,
const double*
const adX,
double*
const adXDot,
const bool bIsMajorTimeStep){}
86 virtual void FinalSetup(
const double dT,
const double *
const adX, ISimObjectCreator*
const pCreator);
88#ifdef FH_VISUALIZATION
90 virtual void RenderInit(Ogre::Root*
const pOgreRoot, ISimObjectCreator*
const pCreator);
93 virtual void RenderUpdate(
const double dT,
const double*
const adX);
95 const virtual double * WarpConnected(
const double dT,
const double *
const adX);
96 const virtual double * BuoyPos(
const double dT,
const double *
const adX);
97 const virtual double * VesselHeading(
const double dT,
const double *
const adX);
98 const virtual double * VesselSpeed(
const double dT,
const double *
const adX);
99 const virtual double * PWarpLength(
const double dT,
const double *
const adX);
100 const virtual double * SWarpLength(
const double dT,
const double *
const adX);
121 ISignalPort* m_pInVesselPos;
122 ISignalPort* m_pInPBridleTension;
123 ISignalPort* m_pInSBridleTension;
124 ISignalPort* m_pInNetSWingPos;
125 ISignalPort* m_pInNetPWingPos;
126 ISignalPort* m_pInNetVel;
127 ISignalPort* m_pInPBridlePos;
128 ISignalPort* m_pInSBridlePos;
131 ICommonComputation* m_pCommonCalc2;
133 double m_adVesselHeading[7];
134 double m_adVesselSpeed[7];
135 double m_adPhaseStartTime[7];
136 double m_dPayOutSpeedFactor;
137 double m_dMinTension;
138 double m_adBuoyPos[3];
141 double m_dWarpLengthCorrectionSpeed;
142 double m_dInitialSpeed;
146 double m_dFinishedSpeed;
147 double m_dWinchHaulSpeed;
148 double m_dInitialHeading;
149 double m_dTowHeading ;
150 double m_dSpreadAngle;
151 double m_dSetWarpLength;
153 bool m_bWarpConnected;
154 double m_dOutPWarpLength;
155 double m_dOutSWarpLength;
158 double m_dAddedTrackLength;
160 double m_dMinWarpLength;
161 std::string m_sAttractorNameNet;
162 std::string m_sAttractorNameWarps;
163 std::string m_asPhase[7];
164 std::string m_asSpeed[7];
165 std::string m_asHeading[7];
172 double m_dWingSpread;
173 double m_dNetTangentialSpeed;
174 double m_dNetNormalSpeed;
175 double m_dFileWritePeriod;
176 double m_adBridleTension[2];
177 double m_dBridleSpread;
178 bool m_bOutputToFile;
179 sfh::timers::StopWatch m_StopWatchFileWrite;
180 sfh::timers::StopWatch m_StopWatchRenderUpdate;
181 std::ofstream m_Outfile;
182 std::string m_sFileName;
183 sfh::filters::IIR m_BridleTensionFilter;
184#ifdef FH_VISUALIZATION
185 Ogre::Entity* m_RenderMass;
186 Ogre::SceneNode* m_RenderNode;
187 std::string m_DisplayText;
188 CTextRenderer* m_TextRenderer;
Class modelling the interface of a general attractor.
Definition: CAttractorBase.h:17
Definition: CSeineOperation.h:72
ICommonComputation * m_pCommonCalc
Calculations necessary for more than one output port.
Definition: CSeineOperation.h:130
CSeineOperation(std::string sSimObjectName, ISimObjectCreator *pCreator)
The constructor sets the pointer to the output object and the parser object.
void SetOperationalPhase(const double dT)
Sets the operational phase of the system.
virtual void OdeFcn(const double dT, const double *const adX, double *const adXDot, const bool bIsMajorTimeStep)
Calculates the state derivatives.
Definition: CSeineOperation.h:85
void SetAttractorStrengths(const double dT)
Sets the strength of the attractors.
EPhase_t
Enumerator to define which operational phase the vessel is in.
Definition: CSeineOperation.h:111
void CalcOutput(const double dT, const double *const adX)
Performs calculations common to several output ports.
~CSeineOperation()
The destructor cleans up.