Marine systems simulation
CoRiBoDynamics::TrawlCableCollisionManager Class Reference
+ Inheritance diagram for CoRiBoDynamics::TrawlCableCollisionManager:
+ Collaboration diagram for CoRiBoDynamics::TrawlCableCollisionManager:

Classes

struct  CableCollisionManagerProperties
 
struct  CableSegment
 
struct  ElementContact
 

Public Member Functions

 TrawlCableCollisionManager (ConstraintSolver *solver, double timeConstant)
 
void AddCableSegment (const CableCollisionManagerProperties &properties)
 
void AddMainCableSegment (const CableCollisionManagerProperties &properties)
 
double getFrequencyCoefficient ()
 
void setStartTimeCollision (double time)
 
std::vector< ElementContact > * GetContactPoints ()
 
- Public Member Functions inherited from CoRiBoDynamics::CollisionManager
 CollisionManager (ConstraintSolver *solver, double timeConstant)
 
int AddCapsule (double radius, double height, double contactStiffness, double contactDamping, double frictionCoefficient, int index)
 
int AddSphere (double radius, double contactStiffness, double contactDamping, double frictionCoefficient, int index)
 
int AddTorus (double majorRadius, double minorRadius, double contactStiffness, double contactDamping, double frictionCoefficient, int index)
 
int AddChamfer (double majorRadius, double minorRadius, double contactStiffness, double contactDamping, double frictionCoefficient, int index)
 
int AddPlate (double lengthX, double lengthY, double thickness, double contactStiffness, double contactDamping, double frictionCoefficient, int index)
 
int addExternalSphere (double radius, const double *Position, const double *Velocity, const double *Orientation, const double *AngularVelocity, double contactStiffness, double contactDamping, double frictionCoefficient)
 
int addExternalCapsule (double length, double radius, const double *Position, const double *Velocity, const double *Orientation, const double *AngularVelocity, double contactStiffness, double contactDamping, double frictionCoefficient)
 
int addExternalToroid (double majorRadius, double minorRadius, const double *Position, const double *Velocity, const double *Orientation, const double *AngularVelocity, double contactStiffness, double contactDamping, double frictionCoefficient)
 
int addExternalChamfer (double majorRadius, double minorRadius, const double *Position, const double *Velocity, const double *Orientation, const double *AngularVelocity, double contactStiffness, double contactDamping, double frictionCoefficient)
 
int addExternalPlate (double lengthX, double lengthY, double thickness, const double *Position, const double *Velocity, const double *Orientation, const double *AngularVelocity, double contactStiffness, double contactDamping, double frictionCoefficient)
 
void updateExternalElement (int index, const double *Position, const double *Velocity, const double *Orientation, const double *AngularVelocity)
 
vec6 getExternalObjectReactionForce (int index)
 
vec6 getExternalObjectReactionForce (ExternalObject &external_object)
 
vec6 getInternalObjectReactionForce (InternalObject &internal_object)
 
virtual void ComputeConstraints (const double T, const double *const X)
 
void setSpacePartitionOrigo (double x, double y, double z)
 
void setSpacePartitionBlockSize (double length)
 
- Public Member Functions inherited from CoRiBoDynamics::ConstraintSet
 ConstraintSet (ConstraintSolver *solver)
 
virtual void ComputeConstraints (const double T, const double *const X)=0
 

Protected Member Functions

void ComputeConstraints (const double T, const double *const X)
 
void CollisionTest (InternalObject *objectA, InternalObject *objectB, const double *const X, ElementContact &contact)
 
- Protected Member Functions inherited from CoRiBoDynamics::CollisionManager
void CollisionTest (InternalObject *objectA, InternalObject *objectB, const double *const X)
 list of all internal objects in this collision manager
 
void CollisionTest (ExternalObject *ExtObj, InternalObject *IntObj, const double *const X)
 
double ObjectDistance (GeometricObject *shapeA, GeometricObject *shapeB, GeometryTools::MinDistanceInfo &result)
 
bool BoundingSphereRejectionTest (GeometricObject *sphereA, GeometricObject *sphereB)
 
bool OBB_BoundingSphereRejectionTest (GeometricObject *box, GeometricObject *sphere)
 
- Protected Member Functions inherited from CoRiBoDynamics::ConstraintSet
const std::vector< RigidElement * > & ElementVector ()
 
void addConstraintResultantForce (int element, const vec6 &Force)
 
const vec3 Acceleration (int element)
 
const vec3 AngularAcceleration (int element)
 
const vec6 SecondDerivatives (int element)
 
void addMatrix (int i, int j, const mat6 &M)
 

Protected Attributes

double m_startTimeCollision
 
std::vector< CableSegmentm_CableSegments
 
std::vector< ElementContactm_ContactPoints
 
- Protected Attributes inherited from CoRiBoDynamics::CollisionManager
std::vector< ExternalObject, Eigen::aligned_allocator< ExternalObject > > m_ExternalObjects
 
std::vector< InternalObject, Eigen::aligned_allocator< InternalObject > > m_InternalObjects
 list of all external objects in this collision manager
 
DataStructures::SpacePartitioner m_CollisionPartition
 
ObjectFactoryStack< contact_matrix_index_pairm_external_contact
 
double m_timeConstant
 

Additional Inherited Members

- Public Types inherited from CoRiBoDynamics::CollisionManager
enum  ShapeType {
  SPHERE =0 , CAPSULE =1 , CHAMFER =2 , BOX =3 ,
  TOROID =4 , PLATE =5
}
 

Member Function Documentation

◆ ComputeConstraints()

void CoRiBoDynamics::TrawlCableCollisionManager::ComputeConstraints ( const double  T,
const double *const  X 
)
protectedvirtual

Computes and returns the constraint system matrix for the current states (T and X). Adds constraint forces.

Reimplemented from CoRiBoDynamics::CollisionManager.


The documentation for this class was generated from the following file: