Don't treat success == true as "we got an outline".
It just means the outline wasn't malformed. It might still be empty. [Edit: my fix collided with JP's, so all this really is now is a couple of slight performance improvements.]
This commit is contained in:
parent
05d2053ded
commit
4679682fe9
|
@ -1092,8 +1092,18 @@ bool BuildFootprintPolygonOutlines( BOARD* aBoard, SHAPE_POLY_SET& aOutlines, in
|
|||
int aChainingEpsilon, OUTLINE_ERROR_HANDLER* aErrorHandler )
|
||||
|
||||
{
|
||||
FOOTPRINT* footprint = aBoard->GetFirstFootprint();
|
||||
|
||||
// No footprint loaded
|
||||
if( !footprint )
|
||||
{
|
||||
wxLogTrace( traceBoardOutline, "No footprint found on board" );
|
||||
return false;
|
||||
}
|
||||
|
||||
PCB_TYPE_COLLECTOR items;
|
||||
SHAPE_POLY_SET outlines;
|
||||
bool success = false;
|
||||
|
||||
// Get all the SHAPEs into 'items', then keep only those on layer == Edge_Cuts.
|
||||
static const KICAD_T scan_graphics[] = { PCB_SHAPE_T, PCB_FP_SHAPE_T, EOT };
|
||||
|
@ -1108,20 +1118,14 @@ bool BuildFootprintPolygonOutlines( BOARD* aBoard, SHAPE_POLY_SET& aOutlines, in
|
|||
segList.push_back( static_cast<PCB_SHAPE*>( items[ii] ) );
|
||||
}
|
||||
|
||||
bool success = ConvertOutlineToPolygon( segList, outlines, aErrorMax, aChainingEpsilon,
|
||||
aErrorHandler );
|
||||
|
||||
FOOTPRINT* footprint = aBoard->GetFirstFootprint();
|
||||
|
||||
// No footprint loaded
|
||||
if( !footprint )
|
||||
if( !segList.empty() )
|
||||
{
|
||||
wxLogTrace( traceBoardOutline, "No footprint found on board" );
|
||||
return false;
|
||||
success = ConvertOutlineToPolygon( segList, outlines, aErrorMax, aChainingEpsilon,
|
||||
aErrorHandler );
|
||||
}
|
||||
|
||||
// A closed outline was found on Edge_Cuts
|
||||
if( success && outlines.OutlineCount() )
|
||||
if( success )
|
||||
{
|
||||
wxLogTrace( traceBoardOutline, "Closed outline found" );
|
||||
|
||||
|
|
Loading…
Reference in New Issue