12#ifndef C_SMALL_OBJECT_H
13#define C_SMALL_OBJECT_H
15#include "CEnvironment.h"
16#include "sfh/constants.h"
28 typedef Eigen::Matrix<double, 6, 6> emat6;
29 typedef Eigen::Matrix<double, 6, 1> evec6;
30 typedef Eigen::Matrix<double, 3, 3> emat3;
31 typedef Eigen::Matrix<double, 2, 1> evec2;
32 typedef Eigen::Matrix<double, 3, 1> evec3;
33 typedef Eigen::Matrix<double, 4, 1> evec4;
34 typedef Eigen::Matrix<double, 13, 1> evec13;
35 typedef Eigen::Quaternion<double> equat;
40 SmallObject(
const string& simObjectName, ISimObjectCreator*
const creator);
41 virtual void FinalSetup(
const double T,
const double*
const X, ISimObjectCreator*
const creator);
44 void OdeFcn(
const double T,
const double*
const X,
double*
const XDot,
const bool IsMajorTimeStep);
46#ifdef FH_VISUALIZATION
47 void RenderInit(Ogre::Root*
const ogreRoot, ISimObjectCreator*
const creator) {};
49 void RenderUpdate(
const double T,
const double*
const X) {};
52 virtual void CalRotationMatrix(
const double& Roll,
const double& Pitch,
const double& Yaw);
53 virtual void CalJMatrix(
const double& Roll,
const double& Pitch,
const double& Yaw);
54 virtual evec6 CalCoriolisForce(
const evec3& vl,
const evec3& wl,
const emat6& Inertia);
55 virtual evec6 CalConnectForce(
const evec3& p,
const evec3& v,
const evec3& w,
const double T,
const double*
const X);
57 virtual equat RoationToQuaternion(
const evec3& EulerAngle);
58 virtual evec3 CalRollPitchYaw(
const equat& ql2g);
75 double m_WaterDensity;
76 double m_SubmergedVolume;
82 evec6 m_LinearDamping;
92 virtual const double* OutputPos(
const double dT,
const double*
const adX);
94 virtual const double* OutputVel(
const double dT,
const double*
const adX);
96 virtual const double* OutputVelLoc(
const double dT,
const double*
const adX);
98 virtual const double* OutputQuat(
const double dT,
const double*
const adX);
99 evec3 m_OutputQuatRot;
100 virtual const double* OutputQuatRot(
const double dT,
const double*
const adX);
101 evec6 m_TotalConnectForce;
102 virtual const double* OutputConnectForce(
const double dT,
const double*
const adX);
113 virtual const double*
ConnectPos(
const double dT,
const double*
const adX,
int iConnect);
114 virtual const double* ConnectVel(
const double dT,
const double*
const adX,
int iConnect);
115 ISignalPort ** m_ConnectForce;
Definition: CEnvironment.h:10
Definition: CSmallObject.h:38
CEnvironment * m_Environment
Sea environment variables.
Definition: CSmallObject.h:105
virtual const double * ConnectPos(const double dT, const double *const adX, int iConnect)
List of velocities (u,v,w) of the connections.
double * m_ConnectPos
List of local locations of the connections.
Definition: CSmallObject.h:111
double * m_ConnectVel
List of positions (x,y,z) of the connections.
Definition: CSmallObject.h:112
double * m_ConnectLoc
Index of the object to connect.
Definition: CSmallObject.h:110
int m_ConnectNum
Pointer to DeepSeaGravityWaves -> CEnvironment.
Definition: CSmallObject.h:108
int m_ConnectPA
Number of connections.
Definition: CSmallObject.h:109
Class modelling a flexible bottom ring, inheriting from CRing in RMCable lib.
Definition: CCable.h:142