If you have a pin with a label containing the letters "GND" in it and it
is not connected to a net with a label also containing "GND" AND there
is another pin on your symbol that _is_ connected to a net containing
"GND", then there is a likelihood that you have accidentally mixed up
your connections to the GND pin
Previously we halved the start / end copper layer heights, which is
not in line with how other EDA tools behave. This was also inconsistent
with adding pad-to-die lengths as we did not add back in the missing
half.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/21365
At most, we will have 4 items. Or maybe a few more with stacked pins.
But not enough to thread. The overhead of starting threads and using
mutexes is greater than any savings
Makes all canvases obey the same rendering parameter. Also keeps the
canvas selection with the anti-alias selection, which makes logical
sense. Reduce the antialias selection to a single choice rather than
two different choices for different canvases
Keep state for reuse in the class. This allows us to properly pick the
value when fully reannotating
Don't annotate when placing new units. Just step ahead in the unit
value while keeping the refdes number constant. This eliminates the
jumping around to unplaced units when placing new multi-unit symbols
Fixes https://gitlab.com/kicad/code/kicad/-/issues/21378
Recalculating creepeage every time we reported a new clearance error was
unneccesarily complex. Since the clearance errors are always straight
lines, we just need to calculate the closest approach and present that
segment
Fix handling of end point intersection case
Fix degenerate handling
Fix overflow cases
Simplify logic in SEG::Collide
Remove overly simplistic check for intersection
Add multiple QA regression tests
If global or local labels are floating -> error
If global or local labels are only connected to one pin -> warning
Rather than forcing two different errors depending on whether the label
is local or global
Different platforms/versions can result in very slight differences
when converting SVGs to PNGs for diffing them.
(cherry picked from commit 8b80853ad7269460a68b20ed9f2a0fd33a8cfef8)
This appears to have always been [-360 .. 360], as some tests in
test_shape_arc.cpp have had negative values for a very long time.
Add tests on the start, end and central angle accessors to enforce
the documented normalizations.
A placement-area is a rule-area sub-type. We don't
need to say rule-area-placement each time.
Also removes some dead code, and simplifies some
damage-propagation logic.