47 lines
894 B
C++
47 lines
894 B
C++
#include "precompile.h"
|
|
|
|
#include "entity.h"
|
|
#include "collider.h"
|
|
|
|
Entity::~Entity()
|
|
{
|
|
ClearColliders();
|
|
}
|
|
|
|
bool Entity::TestCollision(Entity* b)
|
|
{
|
|
for (auto& a_collider : colliders) {
|
|
for (auto& b_collider : b->colliders) {
|
|
if (a_collider->Intersect(b_collider)) {
|
|
return true;
|
|
}
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
|
|
void Entity::ClearColliders()
|
|
{
|
|
for (auto& itr : colliders) {
|
|
ColliderComponent* collider = itr;
|
|
switch (collider->type) {
|
|
case CT_Aabb:
|
|
{
|
|
delete (AabbCollider*)collider;
|
|
}
|
|
break;
|
|
case CT_Circle:
|
|
{
|
|
delete (CircleCollider*)collider;
|
|
}
|
|
break;
|
|
default:
|
|
{
|
|
delete collider;
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
colliders.clear();
|
|
}
|