1
0
Fork 0

Cuboid: Fixed intersection calculation

git-svn-id: http://mc-server.googlecode.com/svn/trunk@1325 0a769ca7-a7f5-676a-18bf-c427514a06d6
This commit is contained in:
madmaxoft@gmail.com 2013-03-29 20:50:32 +00:00
parent c76092e329
commit a3e4704b54
2 changed files with 16 additions and 1 deletions

View File

@ -13,7 +13,7 @@ static bool DoIntervalsIntersect(int a_Min1, int a_Max1, int a_Min2, int a_Max2)
return (
((a_Min1 >= a_Min2) && (a_Min1 <= a_Max2)) || // Start of first interval is within the second interval
((a_Max1 >= a_Min2) && (a_Max1 <= a_Max2)) || // End of first interval is within the second interval
((a_Min2 >= a_Min2) && (a_Min2 <= a_Max2)) // Start of second interval is within the first interval
((a_Min2 >= a_Min1) && (a_Min2 <= a_Max1)) // Start of second interval is within the first interval
);
}
@ -72,3 +72,16 @@ void cCuboid::Move(int a_OfsX, int a_OfsY, int a_OfsZ)
bool cCuboid::IsSorted(void) const
{
return (
(p1.x <= p2.x) &&
(p1.y <= p2.y) &&
(p1.z <= p2.z)
);
}

View File

@ -60,6 +60,8 @@ public:
/// Moves the cuboid by the specified offsets in each direction
void Move(int a_OfsX, int a_OfsY, int a_OfsZ);
/// Returns true if the coords are properly sorted (lesser in p1, greater in p2)
bool IsSorted(void) const;
} ;
// tolua_end