90#include "ITrawlCable.h"
95#ifdef FH_VISUALIZATION
96# include "sfh/ogre/C3DLine.h"
107 TrawlCable(
const std::string& simObjectName, ISimObjectCreator*
const creator);
118 void OdeFcn(
const double T,
const double*
const X,
double*
const XDot)
const;
123 void InitialConditionSetup(
const double T,
const double*
const currentIC,
double*
const updatedIC, ISimObjectCreator*
const creator);
129 void FinalSetup(
const double T,
const double*
const X, ISimObjectCreator*
const creator);
132#ifdef FH_VISUALIZATION
133 void RenderInit(Ogre::Root*
const ogreRoot, ISimObjectCreator*
const creator);
134 void RenderUpdate(
const double T,
const double*
const X);
137 void Compute(
const double T,
const double*
const X);
138 void AddDependency(ICommonComputation* dependecy);
139 CoRiBoDynamics::ConstraintSolver* GetConstraintSolver();
143 double getRegulatorTimeConstant();
146 void MainCalculations(
const double T,
const double*
const X);
147 void MainCalculationsCommon(
const double T,
const double*
const X)
const;
157 void DistributeCatenary(CoRiBoDynamics::vec3 P1, CoRiBoDynamics::vec3 P2, std::vector<element> elements,
double L,
double* states,
int i1,
int i2, ISimObjectCreator* creator);
159 environment::EnvironmentProvider* m_environment;
166 Chirality m_Chirality;
168 double m_TrawlDoorMass;
169 double m_TrawlDoorArea;
170 double m_TrawlDoorLx;
171 double m_TrawlDoorLy;
172 double m_TrawlDoorLz;
173 CoRiBoDynamics::vec3 m_TrawlDoorWarpConnection;
174 CoRiBoDynamics::vec3 m_TrawlDoorTopBridleConnection;
175 CoRiBoDynamics::vec3 m_TrawlDoorBottomBridleConnection;
177 double m_ClumpWeightMass;
178 double m_ClumpWeightLength;
179 double m_ClumpWeightRadius;
182 double m_TopWarpLength;
183 double m_TopWarpElementLength;
212 std::set<ICommonComputation*> m_ExternalDependencies;
217 std::vector<element> m_TopWarpElements;
218 std::vector<element> m_WarpElements;
219 std::vector<element> m_TopBridleElements;
220 std::vector<element> m_BottomBridleElements;
222 element m_TrawlDoorWeightElement;
226 const double* winchForce(
const double T,
const double*
const X);
227 double m_winchForce[3];
228 int m_WinchPointConnectionIndex;
230 const double* TopBridleEndForce(
const double T,
const double*
const X);
231 double m_TopBridleEndForce[3];
232 int m_TopBridleEndPointConnectionIndex;
234 const double* BottomBridleEndForce(
const double T,
const double*
const X);
235 double m_BottomBridleEndForce[3];
236 int m_BottomBridleEndPointConnectionIndex;
238 const double* trawlDoorPosition(
const double T,
const double*
const X);
241 ICommonComputation* m_ContactForceCalculations;
242 void ContactForceCalculations(
const double T,
const double*
const X);
243 void ContactForceCalculationsCommon(
const double T,
const double*
const X)
const;
244 const double* normalForceTrawlDoor(
const double T,
const double*
const X);
245 const double* normalForceClumpWeight(
const double T,
const double*
const X);
246 const double* normalForceTopBridle(
const double T,
const double*
const X);
247 const double* normalForceBottomBridle(
const double T,
const double*
const X);
248 const double* normalForceWarp(
const double T,
const double*
const X);
249 const double* contactPositionTopBridle(
const double T,
const double*
const X);
250 const double* contactPositionBottomBridle(
const double T,
const double*
const X);
251 const double* contactPositionWarp(
const double T,
const double*
const X);
252 double m_normalForceTrawlDoor[1];
253 double m_normalForceClumpWeight[1];
254 double m_normalForceTopBridle[3];
255 double m_normalForceBottomBridle[3];
256 double m_normalForceWarp[3];
258 ISignalPort* m_WinchPosition;
259 ISignalPort* m_WinchVelocity;
261 ISignalPort* m_TopBridleEndPosition;
262 ISignalPort* m_TopBridleEndVelocity;
264 ISignalPort* m_BottomBridleEndPosition;
265 ISignalPort* m_BottomBridleEndVelocity;
267#ifdef FH_VISUALIZATION
269 Ogre::SceneNode** m_TopWarpNodes;
270 Ogre::SceneNode** m_WarpNodes;
271 Ogre::SceneNode** m_TopBridleNodes;
272 Ogre::SceneNode** m_BottomBridleNodes;
273 Ogre::SceneNode* m_TrawlDoorNode;
274 Ogre::SceneNode* m_ClumpWeightNode;
275 C3DLine* m_TopWarpLine;
277 C3DLine* m_TopBridleLine;
278 C3DLine* m_BottomBridleLine;
Definition TrawlCableConstraintSets.h:117
Definition TrawlCableConstraintSets.h:71
Definition TrawlCableConstraintSets.h:11
Definition ITrawlCable.h:18
Definition TrawlCable.h:100
double m_CollisionFrequencyCoefficient
Frequency response coefficient.
Definition TrawlCable.h:198
double m_TopBridleLength
Warp cable length.
Definition TrawlCable.h:194
double m_WarpLength
Nominal cable diameter.
Definition TrawlCable.h:193
void InitialConditionSetup(const double T, const double *const currentIC, double *const updatedIC, ISimObjectCreator *const creator)
double m_frequencyCoefficient
Bridle cable length.
Definition TrawlCable.h:197
CoRiBoDynamics::TrawlCableJointConstraint * m_JointConstraint
collision constraints
Definition TrawlCable.h:209
double m_TopBridleDiameter
Nominal cable diameter.
Definition TrawlCable.h:190
double m_BottomBridleElementLength
Length of discrete cable elements.
Definition TrawlCable.h:202
CoRiBoDynamics::TrawlCableCollisionManager * m_CollisionManager
6dof rigid body constrained dynamic solver
Definition TrawlCable.h:208
CoRiBoDynamics::TrawlCableCollisionManager * GetCollisionManager()
6dof rigid body constrained dynamic solver
int m_NumTopBridle
The number of discrete cable elements in the warp.
Definition TrawlCable.h:186
double m_BottomBridleDiameter
Nominal cable diameter.
Definition TrawlCable.h:191
CoRiBoDynamics::EnvironmentForces * GetEnvironmentForces()
structural joint constraints
TrawlCable(const std::string &simObjectName, ISimObjectCreator *const creator)
double m_WarpElementLength
Frequency response coefficient.
Definition TrawlCable.h:200
CoRiBoDynamics::TrawlCableJointConstraint * GetJointConstraint()
collision constraints
double m_WarpDiameter
The number of discrete cable elements int the lower bridle.
Definition TrawlCable.h:189
double m_BottomBridleLength
Bridle cable length.
Definition TrawlCable.h:195
double m_collisionDampingFactor
Length of discrete cable elements.
Definition TrawlCable.h:204
int m_NumBottomBridle
The number of discrete cable elements in the top bridle.
Definition TrawlCable.h:187
CoRiBoDynamics::EnvironmentForces * m_environmentForces
structural joint constraints
Definition TrawlCable.h:210
double m_TopBridleElementLength
Length of discrete cable elements.
Definition TrawlCable.h:201
ICommonComputation * m_MainCalculations
list of all (unique) CommonComputation nodes that have registered external geometry in the cable coll...
Definition TrawlCable.h:214
void OdeFcn(const double T, const double *const X, double *const XDot) const
void FinalSetup(const double T, const double *const X, ISimObjectCreator *const creator)
CoRiBoDynamics::ConstraintSolver * m_ConstraintSolver
Relative damping coefficient of contact constraint. 1 is critical damping.
Definition TrawlCable.h:207
Definition TrawlCable.h:150