Margin layer missing from some edge clearance tests.

Fixes bug reported on KiCad Forums.
This commit is contained in:
Jeff Young 2021-04-21 21:57:56 +01:00
parent 6fdf567b21
commit e5d029af6b
1 changed files with 23 additions and 20 deletions

View File

@ -233,9 +233,11 @@ bool DRC_TEST_PROVIDER_EDGE_CLEARANCE::Run()
const std::shared_ptr<SHAPE>& itemShape = item->GetEffectiveShape(); const std::shared_ptr<SHAPE>& itemShape = item->GetEffectiveShape();
for( PCB_LAYER_ID testLayer : { Edge_Cuts, Margin } )
{
if( testCopper && item->IsOnCopperLayer() ) if( testCopper && item->IsOnCopperLayer() )
{ {
edgesTree.QueryColliding( item, UNDEFINED_LAYER, Edge_Cuts, nullptr, edgesTree.QueryColliding( item, UNDEFINED_LAYER, testLayer, nullptr,
[&]( BOARD_ITEM* edge ) -> bool [&]( BOARD_ITEM* edge ) -> bool
{ {
return testAgainstEdge( item, itemShape.get(), edge, return testAgainstEdge( item, itemShape.get(), edge,
@ -247,7 +249,7 @@ bool DRC_TEST_PROVIDER_EDGE_CLEARANCE::Run()
if( testSilk && ( item->GetLayer() == F_SilkS || item->GetLayer() == B_SilkS ) ) if( testSilk && ( item->GetLayer() == F_SilkS || item->GetLayer() == B_SilkS ) )
{ {
edgesTree.QueryColliding( item, UNDEFINED_LAYER, Edge_Cuts, nullptr, edgesTree.QueryColliding( item, UNDEFINED_LAYER, testLayer, nullptr,
[&]( BOARD_ITEM* edge ) -> bool [&]( BOARD_ITEM* edge ) -> bool
{ {
return testAgainstEdge( item, itemShape.get(), edge, return testAgainstEdge( item, itemShape.get(), edge,
@ -257,6 +259,7 @@ bool DRC_TEST_PROVIDER_EDGE_CLEARANCE::Run()
m_largestClearance ); m_largestClearance );
} }
} }
}
reportRuleStatistics(); reportRuleStatistics();