gerbview: fix incorrect render of regions defined by a 360 deg arcd (a circle)

these regions were missing.
This commit is contained in:
jean-pierre charras 2022-02-10 09:52:14 +01:00
parent a8c275ae5d
commit ab878cc257
1 changed files with 5 additions and 2 deletions

View File

@ -6,7 +6,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) 1992-2021 KiCad Developers, see AUTHORS.txt for contributors. * Copyright (C) 1992-2022 KiCad Developers, see AUTHORS.txt for contributors.
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License * modify it under the terms of the GNU General Public License
@ -361,7 +361,10 @@ static void fillArcPOLY( GERBER_DRAW_ITEM* aGbrItem, const wxPoint& aStart, cons
// start_angle < end_angle. So ensure this is the case here: // start_angle < end_angle. So ensure this is the case here:
// Due to the fact atan2 returns angles between -180 to + 180 degrees, // Due to the fact atan2 returns angles between -180 to + 180 degrees,
// this is not always the case ( a modulo 360.0 degrees can be lost ) // this is not always the case ( a modulo 360.0 degrees can be lost )
if( start_angle > end_angle ) //
// Note also an arc with same start and end angle is a circle (360 deg arc)
// in gerber files
if( start_angle >= end_angle )
end_angle += 3600; end_angle += 3600;
double arc_angle = start_angle - end_angle; double arc_angle = start_angle - end_angle;