We want recursion into descendants here. Alternatively we could
change the caller to RunOnDescendents(), but it seemed cleaner to
omit the scoping of the Stage() call....
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16077
Instead of changing the footprint in test to have a non flipped, non rotated
fp, change the footprint template from library to have the same transform.
It reduce problems like rounding and graphic shape convert for rectangles.
Fixes#16075https://gitlab.com/kicad/code/kicad/-/issues/16075
Also fixes a bug where a single symbol library wasn't expanded
due to the presence of the "-- already placed --" and
"-- recently used --" pseudo-libraries.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16074
in bool shapeNeedsUpdate(), if a shape is a rectangle and the other is a polygon,
we need to try to convert the polygon to a rectangle for comparison, because some
transforms ( and especially PCB_SHAPE::Normalize() ) can convert a polygon to a rectangle
So a poly and a rectangle can be in fact the same shape
Partial fix of bug 16075.
Also fixes a bug where ERC testing for text variables in sheet pins
would start with the wrong sheet.
Also fixes a bug where ERC testing of similar labels would use the
wrong sheet.
Also fixes a bug where ERC testing of bus-to-net conflicts would use
the wrong sheet.
Also fixes a bug where ERC didn't process variable references when
checking hierarchical labels against sheet pins.
Also fixes a bug where ERC multiple-drivers and netclass-conflicts
tests didn't set a sheetpath.
when the box is a polygon (rotated rect by a non cardinal angle) the polygon
is not filled, so the shape is just a set of thick segments.
So we cannot use PCB_TEXTBOX::TransformShapeToPolygon to create the 3D view
Fixes#16072https://gitlab.com/kicad/code/kicad/-/issues/16072
At best it leads to the wrong units being used if they're different
between (for instance) PCB Editor and Footprint Editor. (And this
will only get worse if we ever to to a single binary.)
At worst it causes crashes when accessing freed ORIGIN_TRANSFORMS.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16062
Note: while we try to omit sizing info from FBP files, the list
controls assume way too wide a minimum width if they're not set.
Furthermore, sizing the dialog ends up leaving them a certain size
and clipping other elements is the dialog itself doesn't have limits
set. Sigh.
It was possible for OnMouseMove to come after ReloadRequest
but before DoRePaint.
Which meant m_3d_render_raytracing->Reload() has't been called yet,
thus the BVH contained invalid data.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16059