Allow same-net, same-priority zone filling
When two zones with the same net and same priority overlap, they should both be filled, matching the behavior of v6. If you would like an explicit override of one or the other, you need to set the zone priority higher. Relying on the UUID as a tie breaker is good for zones with different nets but creates unexpected changes from v6 when applying it to zones of the same net
This commit is contained in:
parent
e2353a2849
commit
f4825cdd8f
|
@ -1329,7 +1329,10 @@ void ZONE_FILLER::subtractHigherPriorityZones( const ZONE* aZone, PCB_LAYER_ID a
|
|||
|
||||
for( ZONE* otherZone : m_board->Zones() )
|
||||
{
|
||||
if( otherZone->SameNet( aZone ) && otherZone->HigherPriority( aZone ) )
|
||||
// Don't use the `HigherPriority()` check here because we _only_ want to knock out zones
|
||||
// with explicitly higher priorities, not those with equal priorities
|
||||
if( otherZone->SameNet( aZone )
|
||||
&& otherZone->GetAssignedPriority() > aZone->GetAssignedPriority() )
|
||||
{
|
||||
// Do not remove teardrop area: it is not useful and not good
|
||||
if( !otherZone->IsTeardropArea() )
|
||||
|
|
Loading…
Reference in New Issue