Loading eeschema/lib_polyline.cpp +40 −40 Original line number Diff line number Diff line Loading @@ -207,7 +207,6 @@ void LIB_POLYLINE::DoPlot( PLOTTER* aPlotter, const wxPoint& aOffset, bool aFill pos = aTransform.TransformCoordinate( pos ) + aOffset; Poly[i * 2] = pos.x; Poly[i * 2 + 1] = pos.y; } if( aFill && m_Fill == FILLED_WITH_BG_BODYCOLOR ) Loading Loading @@ -431,8 +430,7 @@ void LIB_POLYLINE::BeginEdit( int aEditMode, const wxPoint aPosition ) wxPoint prevPoint = startPoint; // Find the right index of the point to be dragged BOOST_FOREACH( wxPoint point, m_PolyPoints ) { BOOST_FOREACH( wxPoint point, m_PolyPoints ) { int distancePoint = (aPosition - point).x * (aPosition - point).x + (aPosition - point).y * (aPosition - point).y; Loading @@ -443,6 +441,7 @@ void LIB_POLYLINE::BeginEdit( int aEditMode, const wxPoint aPosition ) m_ModifyIndex = index; distanceMin = distancePoint; } // check middle of an edge wxPoint offset = ( aPosition + aPosition - point - prevPoint ); distancePoint = ( offset.x * offset.x + offset.y * offset.y ) / 4 + 1; Loading Loading @@ -492,17 +491,18 @@ void LIB_POLYLINE::EndEdit( const wxPoint& aPosition, bool aAbort ) { wxCHECK_RET( ( m_Flags & ( IS_NEW | IS_MOVED | IS_RESIZED ) ) != 0, wxT( "Bad call to EndEdit(). LIB_POLYLINE is not being edited." ) ); // do not include last point twice if( m_Flags == IS_NEW && 2 < m_PolyPoints.size() ) { if( m_PolyPoints[ m_PolyPoints.size() - 2 ] == m_PolyPoints.back() ) m_PolyPoints.pop_back(); } if( m_Flags == IS_RESIZED ) { if( m_PolyPoints.size() > 2 // do not delete last two points... keep it alive && ( m_ModifyIndex > 0 && m_PolyPoints[ m_ModifyIndex ] == m_PolyPoints[ m_ModifyIndex - 1 ] || m_ModifyIndex < (int)m_PolyPoints.size() - 1 if( (m_Flags == IS_RESIZED) && (m_PolyPoints.size() > 2) ) // do not delete last two points... keep it alive { if( ( m_ModifyIndex > 0 && m_PolyPoints[ m_ModifyIndex ] == m_PolyPoints[ m_ModifyIndex - 1 ] ) || ( m_ModifyIndex < (int) m_PolyPoints.size() - 1 && m_PolyPoints[ m_ModifyIndex ] == m_PolyPoints[ m_ModifyIndex + 1 ] ) ) { m_PolyPoints.erase( m_PolyPoints.begin() + m_ModifyIndex ); // delete a point on this Loading Loading
eeschema/lib_polyline.cpp +40 −40 Original line number Diff line number Diff line Loading @@ -207,7 +207,6 @@ void LIB_POLYLINE::DoPlot( PLOTTER* aPlotter, const wxPoint& aOffset, bool aFill pos = aTransform.TransformCoordinate( pos ) + aOffset; Poly[i * 2] = pos.x; Poly[i * 2 + 1] = pos.y; } if( aFill && m_Fill == FILLED_WITH_BG_BODYCOLOR ) Loading Loading @@ -431,8 +430,7 @@ void LIB_POLYLINE::BeginEdit( int aEditMode, const wxPoint aPosition ) wxPoint prevPoint = startPoint; // Find the right index of the point to be dragged BOOST_FOREACH( wxPoint point, m_PolyPoints ) { BOOST_FOREACH( wxPoint point, m_PolyPoints ) { int distancePoint = (aPosition - point).x * (aPosition - point).x + (aPosition - point).y * (aPosition - point).y; Loading @@ -443,6 +441,7 @@ void LIB_POLYLINE::BeginEdit( int aEditMode, const wxPoint aPosition ) m_ModifyIndex = index; distanceMin = distancePoint; } // check middle of an edge wxPoint offset = ( aPosition + aPosition - point - prevPoint ); distancePoint = ( offset.x * offset.x + offset.y * offset.y ) / 4 + 1; Loading Loading @@ -492,17 +491,18 @@ void LIB_POLYLINE::EndEdit( const wxPoint& aPosition, bool aAbort ) { wxCHECK_RET( ( m_Flags & ( IS_NEW | IS_MOVED | IS_RESIZED ) ) != 0, wxT( "Bad call to EndEdit(). LIB_POLYLINE is not being edited." ) ); // do not include last point twice if( m_Flags == IS_NEW && 2 < m_PolyPoints.size() ) { if( m_PolyPoints[ m_PolyPoints.size() - 2 ] == m_PolyPoints.back() ) m_PolyPoints.pop_back(); } if( m_Flags == IS_RESIZED ) { if( m_PolyPoints.size() > 2 // do not delete last two points... keep it alive && ( m_ModifyIndex > 0 && m_PolyPoints[ m_ModifyIndex ] == m_PolyPoints[ m_ModifyIndex - 1 ] || m_ModifyIndex < (int)m_PolyPoints.size() - 1 if( (m_Flags == IS_RESIZED) && (m_PolyPoints.size() > 2) ) // do not delete last two points... keep it alive { if( ( m_ModifyIndex > 0 && m_PolyPoints[ m_ModifyIndex ] == m_PolyPoints[ m_ModifyIndex - 1 ] ) || ( m_ModifyIndex < (int) m_PolyPoints.size() - 1 && m_PolyPoints[ m_ModifyIndex ] == m_PolyPoints[ m_ModifyIndex + 1 ] ) ) { m_PolyPoints.erase( m_PolyPoints.begin() + m_ModifyIndex ); // delete a point on this Loading