185#include "CableSegment.h"
188#include <fhsim/simobject/SimObject.h>
189#include <fhsim_coribo/eigen_matrix_defs.h>
192#ifdef FH_VISUALIZATION
193# include "sfh/ogre/C3DLine.h"
204 RundDorg(
const std::string& simObjectName, ISimObjectCreator*
const creator);
215 void OdeFcn(
const double T,
const double*
const X,
double*
const XDot)
const;
220 void InitialConditionSetup(
const double T,
const double*
const currentIC,
double*
const updatedIC, ISimObjectCreator*
const creator);
226 void FinalSetup(
const double T,
const double*
const X, ISimObjectCreator*
const creator);
231 void PreOdeFcn(
const double T,
const double*
const X, IStateUpdater*
const updater)
override;
234#ifdef FH_VISUALIZATION
235 void RenderInit(Ogre::Root*
const ogreRoot, ISimObjectCreator*
const creator);
236 void RenderUpdate(
const double T,
const double*
const X);
240 void MainCalculations(
const double T,
const double*
const X);
241 void MainCalculationsCommon(
const double T,
const double*
const X)
const;
250 Chirality m_Chirality;
257 WeightType m_WeightType;
264 CoRiBoDynamics::vec3 m_WeightMainConnection;
265 CoRiBoDynamics::vec3 m_WeightFishLine1Connection;
266 CoRiBoDynamics::vec3 m_WeightFishLine2Connection;
268 double m_ClumpWeightMass;
269 double m_ClumpWeightLength;
270 double m_ClumpWeightRadius;
293 ICommonComputation* m_MainCalculations;
295 std::vector<trawl_mooring::ElementStates> m_MainElements;
296 std::vector<trawl_mooring::ElementStates> m_Line1Elements;
297 std::vector<trawl_mooring::ElementStates> m_Line2Elements;
303 const double*
ExternalJointForce(
const double T,
const double*
const X,
int connectionIndex,
double* force);
305 const double* MainForce(
const double T,
const double*
const X);
306 const double* MainForceVector(
const double T,
const double*
const X);
307 double m_MainForce[3];
308 double m_MainForceMagnitude;
309 int m_MainForceConnectionIndex;
311 const double* Line1Force(
const double T,
const double*
const X);
312 const double* Line1ForceVector(
const double T,
const double*
const X);
313 double m_Line1Force[3];
314 double m_Line1ForceMagnitude;
315 int m_Line1ConnectionIndex;
317 const double* Line2Force(
const double T,
const double*
const X);
318 const double* Line2ForceVector(
const double T,
const double*
const X);
319 double m_Line2Force[3];
320 double m_Line2ForceMagnitude;
321 int m_Line2ConnectionIndex;
323 const double* WeightPosition(
const double T,
const double*
const X);
332 ISignalPort* MainPosition;
333 ISignalPort* m_MainVelocity;
335 ISignalPort* m_Line1Position;
336 ISignalPort* m_Line1Velocity;
338 ISignalPort* m_Line2Position;
339 ISignalPort* m_Line2Velocity;
341#ifdef FH_VISUALIZATION
344 Ogre::SceneNode** m_MainNodes =
nullptr;
345 Ogre::SceneNode** m_Line1Nodes =
nullptr;
346 Ogre::SceneNode** m_Line2Nodes =
nullptr;
347 Ogre::SceneNode* m_WeightNode =
nullptr;
348 C3DLine* m_MainLine =
nullptr;
349 C3DLine* m_Line1Line =
nullptr;
350 C3DLine* m_Line2Line =
nullptr;
Definition RundDorg.h:197
void FinalSetup(const double T, const double *const X, ISimObjectCreator *const creator)
int m_NumLine1
The number of discrete cable elements in the warp.
Definition RundDorg.h:273
double m_MainDiameter
The number of discrete cable elements int the lower bridle.
Definition RundDorg.h:276
const double * ExternalJointForce(const double T, const double *const X, int connectionIndex, double *force)
Store the force of an external ball joint in force and return it.
RundDorg(const std::string &simObjectName, ISimObjectCreator *const creator)
void OdeFcn(const double T, const double *const X, double *const XDot) const
std::unique_ptr< trawl_mooring::TrawlRig > m_ownRig
Length of discrete cable elements.
Definition RundDorg.h:290
void InitialConditionSetup(const double T, const double *const currentIC, double *const updatedIC, ISimObjectCreator *const creator)
double m_Line2ElementLength
Length of discrete cable elements.
Definition RundDorg.h:288
double m_Line1ElementLength
Length of discrete cable elements.
Definition RundDorg.h:287
double m_MainElementLength
Frequency response coefficient.
Definition RundDorg.h:286
double m_frequencyCoefficient
Bridle cable length.
Definition RundDorg.h:284
double m_Line1Diameter
Nominal cable diameter.
Definition RundDorg.h:277
int m_NumLine2
The number of discrete cable elements in the top bridle.
Definition RundDorg.h:274
double m_Line2Length
Bridle cable length.
Definition RundDorg.h:282
double m_Line2Diameter
Nominal cable diameter.
Definition RundDorg.h:278
void PreOdeFcn(const double T, const double *const X, IStateUpdater *const updater) override
double m_MainLength
Nominal cable diameter.
Definition RundDorg.h:280
const trawl_mooring::RigParts * m_rig
m_ownRig's parts.
Definition RundDorg.h:291
double m_Line1Length
Warp cable length.
Definition RundDorg.h:281
The state indices of one rigid element and its index in the solver.
Definition CableSegment.h:32
The parts of one constraint solver that every cable on it uses.
Definition TrawlRig.h:47