While ERROR_INSIDE was good for plotting, 3D generation, etc., it's
not good for generating router hulls.
Also reverts part of the change to always use polygons for PNS::SOLIDs. A single shape in a SHAPE_COMPOUND will be faster (and
more accurate).
Fixes https://gitlab.com/kicad/code/kicad/-/issues/14898
(cherry picked from commit 62d959ed0e)
(It is a container to build bridges on solder mask layers by DRC, not real zone)
Disable also this special zone selection by adding it in
PCB_SELECTION_TOOL::itemPassesFilter
Do not display the outlines of this very special zone used by DRC
to show layer mask bridges created by DRC to show these bridges.
From Master branch
Fixes#15847https://gitlab.com/kicad/code/kicad/-/issues/15847
We were calculating the same thing in three locations and we missed
adding the clearance from the footprints in, resulting in bad fills and
missed drc errors (see QA addition)
(cherry picked from commit 96a34e5b57)
Don't open-code knockout text shape generation in several different
places.
Make sure triangulated knockout text gets clearance added when
specified.
Collapse duplicated footprint text item plot routine (they're no
longer any different from plotting pcb text items).
(cherry picked from commit c71cf21e2f)
DRC exclusions were originally written following the C++
pragma model (ie: allow this violation here). However, the
"exclusion" terminology we used in the GUI suggests a model
model where the exclusions go away when the violation no
longer exists.
Fixes https://gitlab.com/kicad/code/kicad/issues/14351
When drawing the ratsnest, we need to be careful to avoid accessing
CONN_ITEMs that have been changed by the underlying model. Checking for
dirty items instead of valid items will prevent us looking at data that
are out of date
Fixes https://gitlab.com/kicad/code/kicad/issues/14265
(cherry picked from commit 283770fc45)
Make sure that the connectivity has successfully completed before
attempting to merge segments. Also avoids reaching into the shared_ptr
if we don't need to
Fixes https://gitlab.com/kicad/code/kicad/issues/13639
EDA_ITEMs are responsible for giving their parent a crack at it if
they failed to resolve it. This recurses all the way up to the schematic/
board, and then to the project.
Cross-reference handling is also move to the EDA_ITEMs. It must be done
before bubbling up so that we don't end up in loops. (The aDepth parameter
will break the loop, but without having done anything useful.)
Fixes https://gitlab.com/kicad/code/kicad/issues/13541
Also adds some debugging to try to catch dangling pointers.
Also adds a cache for group bounding boxes (which will be expensive
to calculate for large groups).
Fixes https://gitlab.com/kicad/code/kicad/issues/12875
The zone class initializes the outline with an empty SHAPE_POLY_SET, so
adding a new SHAPE_POLY_SET outline in the BOARD constructor causes a
leak of the original.