diff options
author | TravisBot <> | 2017-09-21 23:32:46 +0000 |
---|---|---|
committer | TravisBot <> | 2017-09-21 23:32:46 +0000 |
commit | 1a8ec165031af3b860028ef1b360acc8e7baf9e6 (patch) | |
tree | b9d2e956005b4de847417baf4a66ab3f028f1bc1 /yage/physics/rectanglecollider.cpp | |
parent | f5ecbc445977654e84120b3b02a9fe5d86dae5c8 (diff) | |
download | YAGE-1a8ec165031af3b860028ef1b360acc8e7baf9e6.tar.gz YAGE-1a8ec165031af3b860028ef1b360acc8e7baf9e6.zip |
Rebuilding documentation
Diffstat (limited to 'yage/physics/rectanglecollider.cpp')
-rw-r--r-- | yage/physics/rectanglecollider.cpp | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/yage/physics/rectanglecollider.cpp b/yage/physics/rectanglecollider.cpp new file mode 100644 index 00000000..d9a1a6c1 --- /dev/null +++ b/yage/physics/rectanglecollider.cpp @@ -0,0 +1,36 @@ +/* ---------------------------------------------------------------------------- + * rectanglecollider.cpp + * + * Copyright (c) 2017 Yann Herklotz Grave <ymherklotz@gmail.com> -- MIT License + * See file LICENSE for more details + * ---------------------------------------------------------------------------- + */ + +#include <yage/physics/rectanglecollider.h> + +namespace yage +{ + +RectangleCollider::RectangleCollider(const glm::vec2 &position, + const glm::vec2 &size) + : Collider(position, size) +{ +} + +bool RectangleCollider::collides(const Collider &collider) const +{ + for (int i = position_.x; i < position_.x + size_.x; ++i) { + for (int j = position_.y; j < position_.y + size_.y; ++j) { + return collider.inside(glm::vec2(i, j)); + } + } + return false; +} + +inline bool RectangleCollider::inside(const glm::vec2 &point) const +{ + return position_.x < point.x && position_.x + size_.x > point.x && + position_.y < point.y && position_.y + size_.y > point.y; +} + +} // namespace yage |