skizzle/include/objects/collision.hpp

35 lines
655 B
C++
Raw Normal View History

2016-04-11 21:38:03 +00:00
#ifndef __SKIZZLE_COLLISION_HPP__
#define __SKIZZLE_COLLISION_HPP__
2016-03-30 21:17:01 +00:00
#include <SFML/Graphics.hpp>
#include <memory>
2016-03-30 21:17:01 +00:00
class Object;
/**
2016-04-09 13:32:42 +00:00
* Type de collision : entre deux rectangles ou
* entre deux cercles
*/
enum class CollisionType {AABB, CIRCLE};
/**
* Structure qui retient les informations
2016-03-30 21:17:01 +00:00
* sur les collisions
*/
struct CollisionData {
sf::Vector2f normal;
float depth;
std::shared_ptr<Object> obj_a;
std::shared_ptr<Object> obj_b;
2016-03-30 21:17:01 +00:00
};
/**
* Détermine les informations sur la collision
2016-04-09 13:32:42 +00:00
* entre les deux objets donnés dans data et stocke
* ces informations dans data
*/
bool getCollisionData(CollisionData& data);
#endif