Marine systems simulation
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 string& material);
21 mat6 GetInertiaMatrix(const vec3& r, double time, const double* states, CEnvironment* environment);
22 vec6 GetInternalForces(const vec6& dX, const vec3& r, const quat& q, CEnvironment* environment, double time, const double* states);
23
24#ifdef FH_VISUALIZATION
25 void DrawBody(Ogre::SceneNode* renderNode, Ogre::SceneManager* sceneMgr);
26#endif
27
28 protected:
29 double iR; //inner radius
30 double oR; //outer radius
31 double h; //height
32 double m; //mass
33 double V; //volume
34 CylinderEnd endType; //Enum: endtype
35 string m_material;
36};
37}; // namespace rigidbody
38#endif
Definition: CEnvironment.h:10
Definition: CRigidBody.h:18
Definition: CRigidCylinder.h:16