39 lines
604 B
C++
39 lines
604 B
C++
#pragma once
|
|
|
|
enum ColliderType_e
|
|
{
|
|
CT_None,
|
|
CT_Aabb,
|
|
CT_Circle
|
|
};
|
|
|
|
class Entity;
|
|
class ColliderComponent
|
|
{
|
|
public:
|
|
Entity* owner = nullptr;
|
|
ColliderType_e type = CT_None;
|
|
bool active = true;
|
|
|
|
bool Intersect(ColliderComponent* b);
|
|
bool IntersectSegment(Vector2D& p0, Vector2D& p1);
|
|
};
|
|
|
|
class AabbCollider : public ColliderComponent
|
|
{
|
|
public:
|
|
Vector2D _min;
|
|
Vector2D _max;
|
|
|
|
AabbCollider() { type = CT_Aabb; };
|
|
};
|
|
|
|
class CircleCollider : public ColliderComponent
|
|
{
|
|
public:
|
|
Vector2D pos;
|
|
float rad = 0.0f;
|
|
|
|
CircleCollider() { type = CT_Circle; };
|
|
};
|