Files
fishtanks/src/Components/Physics.h
T
ViktorLjung a1149394bb Gate working
2014-05-29 21:25:30 +02:00

53 lines
1.3 KiB
C++

#ifndef Components_Physics_h__
#define Components_Physics_h__
#include "Component.h"
namespace Components
{
struct Physics : Component
{
enum class CollisionLayer
{
STATIC = 1,
VEHICLE1_ = 2,
VEHICLE2 = 3,
EXPLOSION = 4,
};
Physics()
: Mass(1.f), Static(false), Phantom(false), CalculateCenterOfMass(true), CenterOfMass(glm::vec3(0)), InitialLinearVelocity(glm::vec3(0)), InitialAngularVelocity(glm::vec3(0)),
LinearDamping(0.f), AngularDamping(0.05f), GravityFactor(1.f), Friction(0.5f), Restitution(0.4f), MaxLinearVelocity(200.f), MaxAngularVelocity(200.f),
CollisionLayer(0), CollisionSystemGroup(0), CollisionSubSystemId(0), CollisionSubSystemDontCollideWith(0), CollisionEvent(false){}
float Mass;
bool Static;
bool Phantom;
bool CalculateCenterOfMass;
glm::vec3 CenterOfMass;
glm::vec3 InitialLinearVelocity;
glm::vec3 InitialAngularVelocity;
float LinearDamping;
float AngularDamping;
float GravityFactor;
float Friction;
float Restitution;
float MaxLinearVelocity;
float MaxAngularVelocity;
int CollisionLayer;
int CollisionSystemGroup;
int CollisionSubSystemId;
int CollisionSubSystemDontCollideWith;
bool CollisionEvent;
virtual Physics* Clone() const override { return new Physics(*this); }
};
}
#endif // Components_Physics_h__