9 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
11 BuoyCable(CoRiBoDynamics::ConstraintSolver* solver, ISimObjectCreator* creator,
double beta,
string name);
13 virtual void ComputeConstraints(
const double T,
const double *
const X);
15 virtual void InitialConditionSetup(
double *
const states, Eigen::Vector3d P0);
17 CoRiBoDynamics::StandardRigidElement* GetPlate() {
return m_plate; }
18 CoRiBoDynamics::StandardRigidElement* GetBuoy() {
return m_buoy; }
20 double GetPlateDiameter() {
return m_plate_diameter; }
22 void AttachToPlate(
int ix,
const CoRiBoDynamics::Quat& null_angle);
24 virtual CollisionCheckInterface::GeometryVector CheckForContact(CoRiBoDynamics::CollisionManager::ExternalObject&
object);
26#ifdef FH_VISUALIZATION
27 virtual void RenderInit(Ogre::Root*
const ogreRoot);
28 virtual void RenderUpdate(
const double T,
const double*
const X);
32 CoRiBoDynamics::StandardRigidElement* m_plate;
33 CoRiBoDynamics::StandardRigidElement* m_buoy;
35 double m_plate_diameter;
36 double m_plate_weight;
39 double m_buoy_cone_height;
40 double m_buoy_total_height;
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;
49#ifdef FH_VISUALIZATION
50 Ogre::SceneNode* m_plate_scene_node;
51 Ogre::SceneNode* m_buoy_scene_node;