151#include "TrawlCableConstraintSets.h"
153#include <fhsim/simobject/SimObject.h>
154#include <fhsim_coribo/eigen_matrix_defs.h>
156#ifdef FH_VISUALIZATION
157# include "sfh/ogre/C3DLine.h"
168 RundDorg(
const std::string& simObjectName, ISimObjectCreator*
const creator);
179 void OdeFcn(
const double T,
const double*
const X,
double*
const XDot)
const;
184 void InitialConditionSetup(
const double T,
const double*
const currentIC,
double*
const updatedIC, ISimObjectCreator*
const creator);
190 void FinalSetup(
const double T,
const double*
const X, ISimObjectCreator*
const creator);
193#ifdef FH_VISUALIZATION
194 void RenderInit(Ogre::Root*
const ogreRoot, ISimObjectCreator*
const creator);
195 void RenderUpdate(
const double T,
const double*
const X);
199 void MainCalculations(
const double T,
const double*
const X);
200 void MainCalculationsCommon(
const double T,
const double*
const X)
const;
210 void DistributeCatenary(CoRiBoDynamics::vec3 P1, CoRiBoDynamics::vec3 P2, std::vector<element> elements,
double L,
double* states,
int i1,
int i2, ISimObjectCreator* creator);
212 environment::EnvironmentProvider* m_environment;
219 Chirality m_Chirality;
226 WeightType m_WeightType;
233 CoRiBoDynamics::vec3 m_WeightMainConnection;
234 CoRiBoDynamics::vec3 m_WeightFishLine1Connection;
235 CoRiBoDynamics::vec3 m_WeightFishLine2Connection;
237 double m_ClumpWeightMass;
238 double m_ClumpWeightLength;
239 double m_ClumpWeightRadius;
263 ICommonComputation* m_MainCalculations;
265 std::vector<element> m_MainElements;
266 std::vector<element> m_Line1Elements;
267 std::vector<element> m_Line2Elements;
273 const double*
ExternalJointForce(
const double T,
const double*
const X,
int connectionIndex,
double* force);
275 const double* MainForce(
const double T,
const double*
const X);
276 const double* MainForceVector(
const double T,
const double*
const X);
277 double m_MainForce[3];
278 double m_MainForceMagnitude;
279 int m_MainForceConnectionIndex;
281 const double* Line1Force(
const double T,
const double*
const X);
282 const double* Line1ForceVector(
const double T,
const double*
const X);
283 double m_Line1Force[3];
284 double m_Line1ForceMagnitude;
285 int m_Line1ConnectionIndex;
287 const double* Line2Force(
const double T,
const double*
const X);
288 const double* Line2ForceVector(
const double T,
const double*
const X);
289 double m_Line2Force[3];
290 double m_Line2ForceMagnitude;
291 int m_Line2ConnectionIndex;
293 const double* WeightPosition(
const double T,
const double*
const X);
302 ISignalPort* MainPosition;
303 ISignalPort* m_MainVelocity;
305 ISignalPort* m_Line1Position;
306 ISignalPort* m_Line1Velocity;
308 ISignalPort* m_Line2Position;
309 ISignalPort* m_Line2Velocity;
311#ifdef FH_VISUALIZATION
314 Ogre::SceneNode** m_MainNodes =
nullptr;
315 Ogre::SceneNode** m_Line1Nodes =
nullptr;
316 Ogre::SceneNode** m_Line2Nodes =
nullptr;
317 Ogre::SceneNode* m_WeightNode =
nullptr;
318 C3DLine* m_MainLine =
nullptr;
319 C3DLine* m_Line1Line =
nullptr;
320 C3DLine* m_Line2Line =
nullptr;
Definition TrawlCableConstraintSets.h:119
Definition TrawlCableConstraintSets.h:11
Definition RundDorg.h:161
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:242
double m_MainDiameter
The number of discrete cable elements int the lower bridle.
Definition RundDorg.h:245
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)
CoRiBoDynamics::ConstraintSolver * m_ConstraintSolver
Length of discrete cable elements.
Definition RundDorg.h:259
void OdeFcn(const double T, const double *const X, double *const XDot) const
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:257
double m_Line1ElementLength
Length of discrete cable elements.
Definition RundDorg.h:256
CoRiBoDynamics::TrawlCableJointConstraint * m_JointConstraint
6dof rigid body constrained dynamic solver
Definition RundDorg.h:260
CoRiBoDynamics::EnvironmentForces * m_environmentForces
structural joint constraints
Definition RundDorg.h:261
double m_MainElementLength
Frequency response coefficient.
Definition RundDorg.h:255
double m_frequencyCoefficient
Bridle cable length.
Definition RundDorg.h:253
double m_Line1Diameter
Nominal cable diameter.
Definition RundDorg.h:246
int m_NumLine2
The number of discrete cable elements in the top bridle.
Definition RundDorg.h:243
double m_Line2Length
Bridle cable length.
Definition RundDorg.h:251
double m_Line2Diameter
Nominal cable diameter.
Definition RundDorg.h:247
double m_MainLength
Nominal cable diameter.
Definition RundDorg.h:249
double m_Line1Length
Warp cable length.
Definition RundDorg.h:250
Definition RundDorg.h:203