aboutsummaryrefslogtreecommitdiffstats
path: root/yage/physics/collider.h
diff options
context:
space:
mode:
Diffstat (limited to 'yage/physics/collider.h')
-rw-r--r--yage/physics/collider.h43
1 files changed, 43 insertions, 0 deletions
diff --git a/yage/physics/collider.h b/yage/physics/collider.h
new file mode 100644
index 00000000..2fd2ff89
--- /dev/null
+++ b/yage/physics/collider.h
@@ -0,0 +1,43 @@
+/* ----------------------------------------------------------------------------
+ * collider.h
+ *
+ * Copyright (c) 2017 Yann Herklotz Grave <ymherklotz@gmail.com> -- MIT License
+ * See file LICENSE for more details
+ * ----------------------------------------------------------------------------
+ */
+
+#ifndef YAGE_PHYSICS_COLLIDER_H
+#define YAGE_PHYSICS_COLLIDER_H
+
+#include <glm/glm.hpp>
+
+namespace yage
+{
+
+// The Collider class helps collision detection by providing a general shape
+// for different shapes to have their own collision algorithms.
+class Collider
+{
+protected:
+ // position of the object
+ glm::vec2 position_;
+
+ // size of the object
+ glm::vec2 size_;
+
+public:
+ Collider(const glm::vec2 &position, const glm::vec2 &size)
+ : position_(position), size_(size)
+ {
+ }
+
+ // function that checks if two colliders are colliding
+ virtual bool collides(const Collider &collider) const = 0;
+
+ // function that returns if a point is inside the shape
+ virtual bool inside(const glm::vec2 &point) const = 0;
+};
+
+} // namespace yage
+
+#endif