Marine systems simulation
BottomRingCoRiBo.h
1#pragma once
2#include <vector>
3#include <sfh/text.h>
4#include "RingStructureGravityHydro.h"
5#include "Cable/NetTensionCable.h"
6
11namespace Netcage {
12 class BottomRingCoRiBo : public SimObject {
13 public:
14 typedef struct ExtrnalConstraintData_ {
15 int id;
16 double pos[3];
17 double vel[3];
18 double omg[3];
19 double quat[4];
20 double frc[3];
22 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
23 BottomRingCoRiBo(const std::string& name, ISimObjectCreator* const creator);
25
26 virtual void OdeFcn(const double T, const double *const X, double *const XDot, const bool IsMajorTimeStep);
27 virtual void InitialConditionSetup(const double, const double *const, double* const updatedIC, ISimObjectCreator* const);
28 virtual void FinalSetup(const double T, const double *const X, ISimObjectCreator* const creator);
29
30 virtual void compute(const double T, const double * const X);
31
32#ifdef FH_VISUALIZATION
33 virtual void RenderInit(Ogre::Root* const ogreRoot, ISimObjectCreator* const creator);
34 virtual void RenderUpdate(const double T, const double* const X);
35#endif
36 virtual void PreOdeFcn(const double T, const double *const X, IStateUpdater* updater);
37 const double *forceNet(const double T, const double * const X, int index);
38
39 protected:
40 int m_num_netTension;
41 ICommonComputation* m_compute;
42 std::unique_ptr<CoRiBoDynamics::ConstraintSolver> m_solver;
43
44 ExternalConstraintData *m_netConnectionBuffer;
45 ISignalPort **m_netPositions;
46 ISignalPort **m_netVelocities;
47
48 BottomRing *m_bottomRing;
49 std::vector<NetTensionCable*> m_netTensionCable;
50 };
51}
Definition: RingStructureGravityHydro.h:74
Definition: BottomRingCoRiBo.h:12
Class modelling a Net cage.
Definition: CBottomRing.h:35
Definition: BottomRingCoRiBo.h:14