158#include "TrawlCableConstraintSets.h"
160#include <fhsim/simobject/SimObject.h>
161#include <fhsim_coribo/eigen_matrix_defs.h>
163#ifdef FH_VISUALIZATION
164# include "sfh/ogre/C3DLine.h"
175 RundDorg(
const std::string& simObjectName, ISimObjectCreator*
const creator);
186 void OdeFcn(
const double T,
const double*
const X,
double*
const XDot)
const;
191 void InitialConditionSetup(
const double T,
const double*
const currentIC,
double*
const updatedIC, ISimObjectCreator*
const creator);
197 void FinalSetup(
const double T,
const double*
const X, ISimObjectCreator*
const creator);
200#ifdef FH_VISUALIZATION
201 void RenderInit(Ogre::Root*
const ogreRoot, ISimObjectCreator*
const creator);
202 void RenderUpdate(
const double T,
const double*
const X);
206 void MainCalculations(
const double T,
const double*
const X);
207 void MainCalculationsCommon(
const double T,
const double*
const X)
const;
217 void DistributeCatenary(CoRiBoDynamics::vec3 P1, CoRiBoDynamics::vec3 P2, std::vector<element> elements,
double L,
double* states,
int i1,
int i2, ISimObjectCreator* creator);
219 environment::EnvironmentProvider* m_environment;
226 Chirality m_Chirality;
233 WeightType m_WeightType;
240 CoRiBoDynamics::vec3 m_WeightMainConnection;
241 CoRiBoDynamics::vec3 m_WeightFishLine1Connection;
242 CoRiBoDynamics::vec3 m_WeightFishLine2Connection;
244 double m_ClumpWeightMass;
245 double m_ClumpWeightLength;
246 double m_ClumpWeightRadius;
270 ICommonComputation* m_MainCalculations;
272 std::vector<element> m_MainElements;
273 std::vector<element> m_Line1Elements;
274 std::vector<element> m_Line2Elements;
280 const double*
ExternalJointForce(
const double T,
const double*
const X,
int connectionIndex,
double* force);
282 const double* MainForce(
const double T,
const double*
const X);
283 const double* MainForceVector(
const double T,
const double*
const X);
284 double m_MainForce[3];
285 double m_MainForceMagnitude;
286 int m_MainForceConnectionIndex;
288 const double* Line1Force(
const double T,
const double*
const X);
289 const double* Line1ForceVector(
const double T,
const double*
const X);
290 double m_Line1Force[3];
291 double m_Line1ForceMagnitude;
292 int m_Line1ConnectionIndex;
294 const double* Line2Force(
const double T,
const double*
const X);
295 const double* Line2ForceVector(
const double T,
const double*
const X);
296 double m_Line2Force[3];
297 double m_Line2ForceMagnitude;
298 int m_Line2ConnectionIndex;
300 const double* WeightPosition(
const double T,
const double*
const X);
309 ISignalPort* MainPosition;
310 ISignalPort* m_MainVelocity;
312 ISignalPort* m_Line1Position;
313 ISignalPort* m_Line1Velocity;
315 ISignalPort* m_Line2Position;
316 ISignalPort* m_Line2Velocity;
318#ifdef FH_VISUALIZATION
321 Ogre::SceneNode** m_MainNodes =
nullptr;
322 Ogre::SceneNode** m_Line1Nodes =
nullptr;
323 Ogre::SceneNode** m_Line2Nodes =
nullptr;
324 Ogre::SceneNode* m_WeightNode =
nullptr;
325 C3DLine* m_MainLine =
nullptr;
326 C3DLine* m_Line1Line =
nullptr;
327 C3DLine* m_Line2Line =
nullptr;
Definition TrawlCableConstraintSets.h:119
Definition TrawlCableConstraintSets.h:11
Definition RundDorg.h:168
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:249
double m_MainDiameter
The number of discrete cable elements int the lower bridle.
Definition RundDorg.h:252
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:266
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:264
double m_Line1ElementLength
Length of discrete cable elements.
Definition RundDorg.h:263
CoRiBoDynamics::TrawlCableJointConstraint * m_JointConstraint
6dof rigid body constrained dynamic solver
Definition RundDorg.h:267
CoRiBoDynamics::EnvironmentForces * m_environmentForces
structural joint constraints
Definition RundDorg.h:268
double m_MainElementLength
Frequency response coefficient.
Definition RundDorg.h:262
double m_frequencyCoefficient
Bridle cable length.
Definition RundDorg.h:260
double m_Line1Diameter
Nominal cable diameter.
Definition RundDorg.h:253
int m_NumLine2
The number of discrete cable elements in the top bridle.
Definition RundDorg.h:250
double m_Line2Length
Bridle cable length.
Definition RundDorg.h:258
double m_Line2Diameter
Nominal cable diameter.
Definition RundDorg.h:254
double m_MainLength
Nominal cable diameter.
Definition RundDorg.h:256
double m_Line1Length
Warp cable length.
Definition RundDorg.h:257
Definition RundDorg.h:210