#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; }; };