diff options
author | madmaxoft <github@xoft.cz> | 2014-03-12 07:39:39 +0100 |
---|---|---|
committer | madmaxoft <github@xoft.cz> | 2014-03-12 07:39:39 +0100 |
commit | 3e9f265a368fad0f8097ec68681853e0859ea240 (patch) | |
tree | cd24727b0ff02d104eee23f44e92174aec977054 /src/Cuboid.cpp | |
parent | Fixed APIDump (diff) | |
parent | Merge pull request #791 from mc-server/PieceGenerator (diff) | |
download | cuberite-3e9f265a368fad0f8097ec68681853e0859ea240.tar cuberite-3e9f265a368fad0f8097ec68681853e0859ea240.tar.gz cuberite-3e9f265a368fad0f8097ec68681853e0859ea240.tar.bz2 cuberite-3e9f265a368fad0f8097ec68681853e0859ea240.tar.lz cuberite-3e9f265a368fad0f8097ec68681853e0859ea240.tar.xz cuberite-3e9f265a368fad0f8097ec68681853e0859ea240.tar.zst cuberite-3e9f265a368fad0f8097ec68681853e0859ea240.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; + } +} + + + + |