diff --git a/include/math/box2.h b/include/math/box2.h index 3a6368590e..8d506bf62d 100644 --- a/include/math/box2.h +++ b/include/math/box2.h @@ -66,7 +66,9 @@ public: BOX2( const Vec& aPos, const Vec& aSize ) : m_Pos( aPos ), m_Size( aSize ) - { } + { + Normalize(); + } void SetMaximum() { @@ -416,10 +418,10 @@ public: { ecoord_type x2 = m_Pos.x + m_Size.x; ecoord_type y2 = m_Pos.y + m_Size.y; - ecoord_type xdiff = std::max( aP.x < m_Pos.x ? m_Pos.x - aP.x : m_Pos.x - x2, 0 ); - ecoord_type ydiff = std::max( aP.y < m_Pos.y ? m_Pos.y - aP.y : m_Pos.y - y2, 0 ); - return xdiff * xdiff + ydiff * ydiff; - } + ecoord_type xdiff = std::max(aP.x < m_Pos.x ? m_Pos.x - aP.x : m_Pos.x - x2, (ecoord_type)0); + ecoord_type ydiff = std::max(aP.y < m_Pos.y ? m_Pos.y - aP.y : m_Pos.y - y2, (ecoord_type)0); + return xdiff * xdiff + ydiff * ydiff; + } ecoord_type Distance( const Vec& aP ) const {