Normalize rectangles after rotation/flipping.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/14341
This commit is contained in:
Jeff Young 2023-10-28 20:55:25 +01:00
parent fea29624cd
commit 84d42a2669
1 changed files with 19 additions and 0 deletions

View File

@ -351,6 +351,14 @@ void EDA_SHAPE::rotate( const VECTOR2I& aRotCentre, const EDA_ANGLE& aAngle )
{
RotatePoint( m_start, aRotCentre, aAngle );
RotatePoint( m_end, aRotCentre, aAngle );
// Normalize
BOX2I bbox;
bbox.Merge( m_start );
bbox.Merge( m_end );
m_start = bbox.GetOrigin();
m_end = bbox.GetEnd();
break;
}
@ -405,6 +413,17 @@ void EDA_SHAPE::flip( const VECTOR2I& aCentre, bool aFlipLeftRight )
}
std::swap( m_start, m_end );
if( m_shape == SHAPE_T::RECTANGLE )
{
// Normalize
BOX2I bbox;
bbox.Merge( m_start );
bbox.Merge( m_end );
m_start = bbox.GetOrigin();
m_end = bbox.GetEnd();
}
break;
case SHAPE_T::CIRCLE: