Lephisto/src/dynamic_body.h

33 lines
768 B
C++

#pragma once
#include "body.h"
#include "model_body.h"
#include "vector3.h"
#include "matrix4x4.h"
class ObjMesh;
class DynamicBody : public ModelBody {
public:
DynamicBody(void);
virtual ~DynamicBody(void);
virtual void SetRotation(const matrix4x4d& r);
virtual void SetVelocity(vector3d v);
virtual vector3d GetVelocity(void);
void SetAngVelocity(vector3d v);
void SetMesh(ObjMesh* m);
virtual bool OnCollision(Body* b, Uint32 flags) { return true; }
vector3d GetAngularMomentum(void);
void SetMassDistributionFromCollMesh(const CollMesh* m);
virtual void Disable(void);
virtual void Enable(void);
virtual double GetMass(void) const { return m_mass.mass; }
dBodyID m_body;
dMass m_mass;
protected:
private:
ObjMesh* m_mesh;
};