Fhsim
Marine systems simulation
CRigidCompositeBody.h
1
#ifndef CRigidCompositeBody_H
2
#define CRigidCompositeBody_H
3
4
#include "CRigidBody.h"
5
6
#include <list>
7
using
std::list;
8
9
namespace
rigidbody
10
{
11
class
CRigidCompositeBody
:
public
CRigidBody
12
{
13
public
:
14
EIGEN_MAKE_ALIGNED_OPERATOR_NEW
15
struct
rbody
16
{
17
CRigidBody
* body;
18
vec6 orientation;
19
};
20
CRigidCompositeBody
();
21
~CRigidCompositeBody
();
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
CEnvironment
Definition:
CEnvironment.h:10
rigidbody::CRigidBody
Definition:
CRigidBody.h:18
rigidbody::CRigidCompositeBody
Definition:
CRigidCompositeBody.h:12
rigidbody::CRigidCompositeBody::rbody
Definition:
CRigidCompositeBody.h:16
reloadrepos
fhsim_base
src
rigidbody
CRigidCompositeBody.h
Generated by
1.9.4