YAGE
Yet Another Game Engine
collider.hpp
1 /* ----------------------------------------------------------------------------
2  * collider.hpp
3  *
4  * Copyright (c) 2017 Yann Herklotz Grave <ymherklotz@gmail.com> -- MIT License
5  * See file LICENSE for more details
6  * ----------------------------------------------------------------------------
7  */
8 
9 #ifndef YAGE_COLLIDER_HPP
10 #define YAGE_COLLIDER_HPP
11 
12 #include <glm/glm.hpp>
13 
14 namespace yage
15 {
16 
17 // The Collider class helps collision detection by providing a general shape
18 // for different shapes to have their own collision algorithms.
19 class Collider
20 {
21 protected:
22  // position of the object
23  glm::vec2 position_;
24 
25  // size of the object
26  glm::vec2 size_;
27 
28 public:
29  Collider(const glm::vec2 &position, const glm::vec2 &size) : position_(position), size_(size) {}
30 
31  // virtual deconstructor for classes that inherits
32  virtual ~Collider() {}
33 
34  // function that checks if two colliders are colliding
35  virtual bool collides(const Collider &collider) const=0;
36 
37  // function that returns if a point is inside the shape
38  virtual bool inside(const glm::vec2 &point) const=0;
39 };
40 
41 } // yage
42 
43 #endif
Definition: collider.hpp:19
Definition: camera2d.hpp:17