Marine systems simulation
CRigidCompositeBody.h
1#ifndef CRigidCompositeBody_H
2#define CRigidCompositeBody_H
3
4#include "CRigidBody.h"
5
6#include <list>
7using std::list;
8
9namespace rigidbody
10{
12{
13 public:
14 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
15 struct rbody
16 {
17 CRigidBody* body;
18 vec6 orientation;
19 };
22 void AddComponent(CRigidBody* component, const vec6& orientation);
23 mat6 GetInertiaMatrix(const vec3& r, double time, const double* states, CEnvironment* environment);
24 vec6 GetInternalForces(const vec6& dX, const vec3& r, const quat& q, CEnvironment* environment, double time, const double* states);
25
26
27#ifdef FH_VISUALIZATION
28 void DrawBody(Ogre::SceneNode* renderNode, Ogre::SceneManager* sceneMgr);
29#endif
30
31 protected:
32 list<rbody, Eigen::aligned_allocator<rbody>> clist;
33 mat6 m_inertia;
34};
35}; // namespace rigidbody
36#endif
Definition: CEnvironment.h:10
Definition: CRigidBody.h:18
Definition: CRigidCompositeBody.h:12
Definition: CRigidCompositeBody.h:16