aboutsummaryrefslogtreecommitdiff
path: root/Minecraft.World/BoundingBox.h
blob: ac29883f1ee48f0b1e44c5641992c4230cd04426 (plain)
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
29
30
31
32
33
34
35
#pragma once

#include "ArrayWithLength.h"

class BoundingBox
{
public:
	int x0, y0, z0, x1, y1, z1;

	BoundingBox();
	BoundingBox(intArray sourceData);
	static BoundingBox *getUnknownBox();
	static BoundingBox *orientBox(int footX, int footY, int footZ, int offX, int offY, int offZ, int width, int height, int depth, int orientation);
	BoundingBox(BoundingBox *other);
	BoundingBox(int x0, int y0, int z0, int x1, int y1, int z1);
	BoundingBox(int x0, int z0, int x1, int z1);
	bool intersects(BoundingBox *other);
	bool intersects(int x0, int y0, int z0, int x1, int y1, int z1);

	bool intersects(int x0, int z0, int x1, int z1);
	void expand(BoundingBox *other);
	BoundingBox *getIntersection(BoundingBox *other);
	void move(int dx, int dy, int dz);
	bool isInside(int x, int y, int z);

	int getXSpan();
	int getYSpan();
	int getZSpan();
	int getXCenter();
	int getYCenter();
	int getZCenter();

	wstring toString();
	IntArrayTag *createTag(const wstring &name);
};