diff options
author | Mattes D <github@xoft.cz> | 2014-03-10 23:13:08 +0100 |
---|---|---|
committer | Mattes D <github@xoft.cz> | 2014-03-10 23:13:08 +0100 |
commit | b72661681c0676b6977e95a1d58eb8e282582b73 (patch) | |
tree | 9d5e7cccb22d13dd15ad015b4765053d528ca58c /src/Cuboid.cpp | |
parent | Merge pull request #767 from worktycho/envmatrix (diff) | |
parent | Removed debugging output. (diff) | |
download | cuberite-b72661681c0676b6977e95a1d58eb8e282582b73.tar cuberite-b72661681c0676b6977e95a1d58eb8e282582b73.tar.gz cuberite-b72661681c0676b6977e95a1d58eb8e282582b73.tar.bz2 cuberite-b72661681c0676b6977e95a1d58eb8e282582b73.tar.lz cuberite-b72661681c0676b6977e95a1d58eb8e282582b73.tar.xz cuberite-b72661681c0676b6977e95a1d58eb8e282582b73.tar.zst cuberite-b72661681c0676b6977e95a1d58eb8e282582b73.zip |
Diffstat (limited to 'src/Cuboid.cpp')
-rw-r--r-- | src/Cuboid.cpp | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/src/Cuboid.cpp b/src/Cuboid.cpp index 782837b23..2400c64f3 100644 --- a/src/Cuboid.cpp +++ b/src/Cuboid.cpp @@ -72,6 +72,9 @@ int cCuboid::GetVolume(void) const bool cCuboid::DoesIntersect(const cCuboid & a_Other) const { + ASSERT(IsSorted()); + ASSERT(a_Other.IsSorted()); + // In order for cuboids to intersect, each of their coord intervals need to intersect return ( DoIntervalsIntersect(p1.x, p2.x, a_Other.p1.x, a_Other.p2.x) && @@ -86,6 +89,9 @@ bool cCuboid::DoesIntersect(const cCuboid & a_Other) const bool cCuboid::IsCompletelyInside(const cCuboid & a_Outer) const { + ASSERT(IsSorted()); + ASSERT(a_Outer.IsSorted()); + return ( (p1.x >= a_Outer.p1.x) && (p2.x <= a_Outer.p2.x) && @@ -197,3 +203,37 @@ bool cCuboid::IsSorted(void) const + +void cCuboid::Engulf(const Vector3i & a_Point) +{ + if (a_Point.x < p1.x) + { + p1.x = a_Point.x; + } + else if (a_Point.x > p2.x) + { + p2.x = a_Point.x; + } + + if (a_Point.y < p1.y) + { + p1.y = a_Point.y; + } + else if (a_Point.y > p2.y) + { + p2.y = a_Point.y; + } + + if (a_Point.z < p1.z) + { + p1.z = a_Point.z; + } + else if (a_Point.z > p2.z) + { + p2.z = a_Point.z; + } +} + + + + |