Browse Source

PNS: Fix loop removal outside shove mode

Fixes https://gitlab.com/kicad/code/kicad/-/issues/9680
6.0.7
Jon Evans 4 years ago
parent
commit
a746d31038
  1. 14
      pcbnew/router/pns_line_placer.cpp

14
pcbnew/router/pns_line_placer.cpp

@ -1222,7 +1222,7 @@ bool LINE_PLACER::Move( const VECTOR2I& aP, ITEM* aEndItem )
if( reachesEnd
&& eiDepth >= 0
&& aEndItem && latestNode->Depth() > eiDepth
&& aEndItem && latestNode->Depth() >= eiDepth
&& current.SegmentCount() )
{
SplitAdjacentSegments( m_lastNode, aEndItem, current.CPoint( -1 ) );
@ -1563,8 +1563,18 @@ void LINE_PLACER::simplifyNewLine( NODE* aNode, LINKED_ITEM* aLatest )
for( ITEM* neighbor : aJoint->Links() )
{
if( neighbor == aItem || !neighbor->LayersOverlap( aItem ) )
if( neighbor == aItem
|| !neighbor->OfKind( ITEM::SEGMENT_T | ITEM::ARC_T )
|| !neighbor->LayersOverlap( aItem ) )
{
continue;
}
if( static_cast<SEGMENT*>( neighbor )->Width()
!= static_cast<SEGMENT*>( aItem )->Width() )
{
continue;
}
const SEG& testSeg = static_cast<SEGMENT*>( neighbor )->Seg();

Loading…
Cancel
Save