Marine systems simulation
BuoyCable.h
1#pragma once
2#include <Eigen/Eigen>
3
4#include "SupergridCable.h"
5#include "LineStructureGravityHydro.h"
6
8public:
9 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
10
11 BuoyCable(CoRiBoDynamics::ConstraintSolver* solver, ISimObjectCreator* creator, double beta, string name);
12
13 virtual void ComputeConstraints(const double T, const double * const X);
14
15 virtual void InitialConditionSetup(double *const states, Eigen::Vector3d P0);
16
17 CoRiBoDynamics::StandardRigidElement* GetPlate() { return m_plate; }
18 CoRiBoDynamics::StandardRigidElement* GetBuoy() { return m_buoy; }
19
20 double GetPlateDiameter() { return m_plate_diameter; }
21
22 void AttachToPlate(int ix, const CoRiBoDynamics::Quat& null_angle);
23
24 virtual CollisionCheckInterface::GeometryVector CheckForContact(CoRiBoDynamics::CollisionManager::ExternalObject& object);
25
26#ifdef FH_VISUALIZATION
27 virtual void RenderInit(Ogre::Root* const ogreRoot);
28 virtual void RenderUpdate(const double T, const double* const X);
29#endif
30
31protected:
34
35 double m_plate_diameter;
36 double m_plate_weight;
37
38 double m_buoy_radius;
39 double m_buoy_cone_height;
40 double m_buoy_total_height;
41
42 double m_buoy_weight;
43 double m_buoy_max_buoyancy;
44 CoRiBoDynamics::vec6 m_buoy_added_mass;
45 CoRiBoDynamics::vec6 m_buoy_potential_damping;
46 CoRiBoDynamics::vec6 m_buoy_hydro_drag;
47 CoRiBoDynamics::vec6 m_buoy_linear_spring;
48
49#ifdef FH_VISUALIZATION
50 Ogre::SceneNode* m_plate_scene_node;
51 Ogre::SceneNode* m_buoy_scene_node;
52#endif
53};
Definition: BuoyCable.h:7
virtual void ComputeConstraints(const double T, const double *const X)
Definition: CollisionManager.h:135
Definition: ConstraintSolver.h:31
Definition: RigidElement.h:77
Definition: LineStructureGravityHydro.h:12