Pcbnew, connectivity: fix incorrect detection of dangling track ends when a end is inside a zone.
This end was not detected as connected by the IsDangling method
This commit is contained in:
parent
b8fff99e68
commit
17143fd53f
|
@ -2,7 +2,7 @@
|
||||||
* This program source code file is part of KICAD, a free EDA CAD application.
|
* This program source code file is part of KICAD, a free EDA CAD application.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2016-2018 CERN
|
* Copyright (C) 2016-2018 CERN
|
||||||
* Copyright (C) 2018 KiCad Developers, see AUTHORS.txt for contributors.
|
* Copyright (C) 2019 KiCad Developers, see AUTHORS.txt for contributors.
|
||||||
*
|
*
|
||||||
* @author Tomasz Wlostowski <tomasz.wlostowski@cern.ch>
|
* @author Tomasz Wlostowski <tomasz.wlostowski@cern.ch>
|
||||||
*
|
*
|
||||||
|
@ -265,12 +265,20 @@ bool CN_ANCHOR::IsDangling() const
|
||||||
if( m_item->AnchorCount() == 1 )
|
if( m_item->AnchorCount() == 1 )
|
||||||
return connected_count < minimal_count;
|
return connected_count < minimal_count;
|
||||||
|
|
||||||
// Only items with multiple anchors might have additional items connected that we
|
// Items with multiple anchors have usually items connected to each anchor.
|
||||||
// should ignore for this calculation.
|
// We want only the item count of this anchor point
|
||||||
|
connected_count = 0;
|
||||||
for( auto item : m_item->ConnectedItems() )
|
for( auto item : m_item->ConnectedItems() )
|
||||||
{
|
{
|
||||||
if( !item->Parent()->HitTest( wxPoint( Pos().x, Pos().y ) ) )
|
if( item->Parent()->Type() == PCB_ZONE_AREA_T )
|
||||||
connected_count--;
|
{
|
||||||
|
ZONE_CONTAINER* zone = static_cast<ZONE_CONTAINER*>( item->Parent() );
|
||||||
|
|
||||||
|
if( zone->HitTestFilledArea( wxPoint( Pos().x, Pos().y ) ) )
|
||||||
|
connected_count++;
|
||||||
|
}
|
||||||
|
else if( item->Parent()->HitTest( wxPoint( Pos().x, Pos().y ) ) )
|
||||||
|
connected_count++;
|
||||||
}
|
}
|
||||||
|
|
||||||
return connected_count < minimal_count;
|
return connected_count < minimal_count;
|
||||||
|
|
Loading…
Reference in New Issue