summaryrefslogtreecommitdiffstats
path: root/src/world/Collision.cpp
blob: 8fc562bd340b8d1b22242534ff3c0fd73b998659 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <world/Collision.hpp>

bool TestCollision(AABB first, AABB second) {
	double firstXl = first.x;
	double firstXr = first.x + first.w;

	double firstYl = first.y;
	double firstYr = first.y + first.h;

	double firstZl = first.z;
	double firstZr = first.z + first.l;


	double secondXl = second.x;
	double secondXr = second.x + second.w;

	double secondYl = second.y;
	double secondYr = second.y + second.h;

	double secondZl = second.z;
	double secondZr = second.z + second.l;

	bool collidesOnX = firstXr >= secondXl && firstXl <= secondXr;
	bool collidesOnY = firstYr >= secondYl && firstYl <= secondYr;
	bool collidesOnZ = firstZr >= secondZl && firstZl <= secondZr;

	return collidesOnX && collidesOnY && collidesOnZ;
}