186#include "CableSegment.h"
189#include <fhsim/simobject/SimObject.h>
190#include <fhsim_coribo/eigen_matrix_defs.h>
193#ifdef FH_VISUALIZATION
194# include "sfh/ogre/C3DLine.h"
205 RundDorg(
const std::string& simObjectName, ISimObjectCreator*
const creator);
216 void OdeFcn(
const double T,
const double*
const X,
double*
const XDot)
const;
221 void InitialConditionSetup(
const double T,
const double*
const currentIC,
double*
const updatedIC, ISimObjectCreator*
const creator);
227 void FinalSetup(
const double T,
const double*
const X, ISimObjectCreator*
const creator);
232 void PreOdeFcn(
const double T,
const double*
const X)
override;
235#ifdef FH_VISUALIZATION
236 void RenderInit(Ogre::Root*
const ogreRoot, ISimObjectCreator*
const creator);
237 void RenderUpdate(
const double T,
const double*
const X);
241 void MainCalculations(
const double T,
const double*
const X);
242 void MainCalculationsCommon(
const double T,
const double*
const X)
const;
251 Chirality m_Chirality;
258 WeightType m_WeightType;
265 CoRiBoDynamics::vec3 m_WeightMainConnection;
266 CoRiBoDynamics::vec3 m_WeightFishLine1Connection;
267 CoRiBoDynamics::vec3 m_WeightFishLine2Connection;
269 double m_ClumpWeightMass;
270 double m_ClumpWeightLength;
271 double m_ClumpWeightRadius;
294 ICommonComputation* m_MainCalculations;
296 std::vector<trawl_mooring::ElementStates> m_MainElements;
297 std::vector<trawl_mooring::ElementStates> m_Line1Elements;
298 std::vector<trawl_mooring::ElementStates> m_Line2Elements;
304 const double*
ExternalJointForce(
const double T,
const double*
const X,
int connectionIndex,
double* force);
306 const double* MainForce(
const double T,
const double*
const X);
307 const double* MainForceVector(
const double T,
const double*
const X);
308 double m_MainForce[3];
309 double m_MainForceMagnitude;
310 int m_MainForceConnectionIndex;
312 const double* Line1Force(
const double T,
const double*
const X);
313 const double* Line1ForceVector(
const double T,
const double*
const X);
314 double m_Line1Force[3];
315 double m_Line1ForceMagnitude;
316 int m_Line1ConnectionIndex;
318 const double* Line2Force(
const double T,
const double*
const X);
319 const double* Line2ForceVector(
const double T,
const double*
const X);
320 double m_Line2Force[3];
321 double m_Line2ForceMagnitude;
322 int m_Line2ConnectionIndex;
324 const double* WeightPosition(
const double T,
const double*
const X);
333 ISignalPort* MainPosition;
334 ISignalPort* m_MainVelocity;
336 ISignalPort* m_Line1Position;
337 ISignalPort* m_Line1Velocity;
339 ISignalPort* m_Line2Position;
340 ISignalPort* m_Line2Velocity;
342#ifdef FH_VISUALIZATION
345 Ogre::SceneNode** m_MainNodes =
nullptr;
346 Ogre::SceneNode** m_Line1Nodes =
nullptr;
347 Ogre::SceneNode** m_Line2Nodes =
nullptr;
348 Ogre::SceneNode* m_WeightNode =
nullptr;
349 C3DLine* m_MainLine =
nullptr;
350 C3DLine* m_Line1Line =
nullptr;
351 C3DLine* m_Line2Line =
nullptr;
Definition RundDorg.h:198
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:274
double m_MainDiameter
The number of discrete cable elements int the lower bridle.
Definition RundDorg.h:277
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:291
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:289
double m_Line1ElementLength
Length of discrete cable elements.
Definition RundDorg.h:288
void PreOdeFcn(const double T, const double *const X) override
double m_MainElementLength
Frequency response coefficient.
Definition RundDorg.h:287
double m_frequencyCoefficient
Bridle cable length.
Definition RundDorg.h:285
double m_Line1Diameter
Nominal cable diameter.
Definition RundDorg.h:278
int m_NumLine2
The number of discrete cable elements in the top bridle.
Definition RundDorg.h:275
double m_Line2Length
Bridle cable length.
Definition RundDorg.h:283
double m_Line2Diameter
Nominal cable diameter.
Definition RundDorg.h:279
double m_MainLength
Nominal cable diameter.
Definition RundDorg.h:281
const trawl_mooring::RigParts * m_rig
m_ownRig's parts.
Definition RundDorg.h:292
double m_Line1Length
Warp cable length.
Definition RundDorg.h:282
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