Marine systems simulation
CoRiBoDynamics::Structures::DiscreteElement Class Referenceabstract

#include <SupergridLineStructure.h>

+ Inheritance diagram for CoRiBoDynamics::Structures::DiscreteElement:
+ Collaboration diagram for CoRiBoDynamics::Structures::DiscreteElement:

Classes

struct  TempStates
 

Public Member Functions

 DiscreteElement (LineSegment *line_segment, double length)
 
ModifiableRigidElementGetRigidElement ()
 
const std::vector< DiscreteElement * > * GetSubElements ()
 
DiscreteElementGetSuperElement ()
 
LineSegmentGetLineSegment ()
 
void SetRigidElement (ModifiableRigidElement *rigid_element)
 
virtual void Setup (double T, const double *const X, mat6 &InertiaMatrix, vec6 &Force)=0
 
double GetElementLength ()
 
double GetElementRadius ()
 
double GetElementMass ()
 
virtual void StoreTempStates (const double *X, ObjectFactoryStack< DiscreteElement::TempStates > &temp_states_buffer)
 
virtual void SetTempStates (const vec3 &P, const Quat &Q, const vec3 &V, const vec3 &W, ObjectFactoryStack< DiscreteElement::TempStates > &temp_states_buffer)
 
virtual void SplitTempStates (DiscreteElement *prev, DiscreteElement *next, ObjectFactoryStack< DiscreteElement::TempStates > &temp_states_buffer)
 
virtual void CollectTempStates (ObjectFactoryStack< DiscreteElement::TempStates > &temp_states_buffer)
 
virtual void OverrideStates (double T, double *X)
 
virtual void GetTempStates (vec3 &P, Quat &Q, vec3 &V, vec3 &W)
 

Protected Attributes

ModifiableRigidElementm_rigid_element
 
LineSegmentm_line_segment
 
DiscreteElementm_super_element
 
std::vector< DiscreteElement * > m_sub_element
 
TempStatesm_temp_states
 
float m_length
 
float m_radius
 
float m_mass
 

Detailed Description

Author
Jorgen Haavind Jensen

Abstract class. Models a generic 6-dof rigid element that can be recursively subdivided. A DiscreteElement element is ment to model a fixed sub-segment of a line structure. It keeps material properties, and other information necessary to compute Associates with a single runtime-swappable ModifiableRigidElement and computes it's inertia and body forces.

Member Function Documentation

◆ GetLineSegment()

LineSegment * CoRiBoDynamics::Structures::DiscreteElement::GetLineSegment ( )

returns the line segment that this discrete element is part of

◆ GetRigidElement()

ModifiableRigidElement * CoRiBoDynamics::Structures::DiscreteElement::GetRigidElement ( )

returns the currently attached rigid element, or nullptr if the discrete element is currently inactive

◆ GetSubElements()

const std::vector< DiscreteElement * > * CoRiBoDynamics::Structures::DiscreteElement::GetSubElements ( )

returns all sub elements or nullptr if the elements has no further subdivision

◆ GetSuperElement()

DiscreteElement * CoRiBoDynamics::Structures::DiscreteElement::GetSuperElement ( )

returns the super elements or nullptr if the element is a root element


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