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