Corrected rectangle intersection, fixes #1731
This commit is contained in:
parent
4fb905ed29
commit
7006fe3cc4
|
@ -110,17 +110,17 @@ public:
|
|||
|
||||
inline bool AABB::intersects(const AABB& p_aabb) const {
|
||||
|
||||
if ( pos.x > (p_aabb.pos.x + p_aabb.size.x) )
|
||||
if ( pos.x >= (p_aabb.pos.x + p_aabb.size.x) )
|
||||
return false;
|
||||
if ( (pos.x+size.x) < p_aabb.pos.x )
|
||||
if ( (pos.x+size.x) <= p_aabb.pos.x )
|
||||
return false;
|
||||
if ( pos.y > (p_aabb.pos.y + p_aabb.size.y) )
|
||||
if ( pos.y >= (p_aabb.pos.y + p_aabb.size.y) )
|
||||
return false;
|
||||
if ( (pos.y+size.y) < p_aabb.pos.y )
|
||||
if ( (pos.y+size.y) <= p_aabb.pos.y )
|
||||
return false;
|
||||
if ( pos.z > (p_aabb.pos.z + p_aabb.size.z) )
|
||||
if ( pos.z >= (p_aabb.pos.z + p_aabb.size.z) )
|
||||
return false;
|
||||
if ( (pos.z+size.z) < p_aabb.pos.z )
|
||||
if ( (pos.z+size.z) <= p_aabb.pos.z )
|
||||
return false;
|
||||
|
||||
return true;
|
||||
|
|
|
@ -214,13 +214,13 @@ struct Rect2 {
|
|||
float get_area() const { return size.width*size.height; }
|
||||
|
||||
inline bool intersects(const Rect2& p_rect) const {
|
||||
if ( pos.x > (p_rect.pos.x + p_rect.size.width) )
|
||||
if ( pos.x >= (p_rect.pos.x + p_rect.size.width) )
|
||||
return false;
|
||||
if ( (pos.x+size.width) < p_rect.pos.x )
|
||||
if ( (pos.x+size.width) <= p_rect.pos.x )
|
||||
return false;
|
||||
if ( pos.y > (p_rect.pos.y + p_rect.size.height) )
|
||||
if ( pos.y >= (p_rect.pos.y + p_rect.size.height) )
|
||||
return false;
|
||||
if ( (pos.y+size.height) < p_rect.pos.y )
|
||||
if ( (pos.y+size.height) <= p_rect.pos.y )
|
||||
return false;
|
||||
|
||||
return true;
|
||||
|
|
Loading…
Reference in New Issue