FhSim  3.1.0
Marine systems simulation
Loading...
Searching...
No Matches
CRigidCylinder.h
1#ifndef C_RigidCylinder_H
2#define C_RigidCylinder_H
3
4#include "CRigidBody.h"
5
6enum CylinderEnd
7{
8 OPEN,
9 CLOSED,
10 HALFSPHERE
11};
12
13namespace rigidbody
14{
16{
17 public:
19 virtual ~CRigidCylinder();
20 CRigidCylinder(double innerRadius, double outerRadius, double height, double mass, CylinderEnd end, const std::string& material);
21 mat6 GetInertiaMatrix(const vec3& r, double time, const double* states, environment::EnvironmentProvider* environment);
22 vec6 GetInternalForces(const vec6& dX, const vec3& r, const quat& q, environment::EnvironmentProvider* environment, double time, const double* states);
23 mat64 GetGravityForceDerivative(const quat& q);
24
25#ifdef FH_VISUALIZATION
26 void DrawBody(Ogre::SceneNode* renderNode, Ogre::SceneManager* sceneMgr);
27#endif
28
29 protected:
30 double iR; //inner radius
31 double oR; //outer radius
32 double h; //height
33 double m; //mass
34 double V; //volume
35 CylinderEnd endType; //Enum: endtype
36 std::string m_material;
37};
38}; // namespace rigidbody
39#endif
Definition CRigidBody.h:25
Definition CRigidCylinder.h:16
mat64 GetGravityForceDerivative(const quat &q)