The angle needs to be added to the start angle.
Add tests to cover this:
* Check end point is correct
* Check midpoints are within tolerance
This would have prevented the bug fixed in 5813164d1,
as well as the bug fixed in this commit.
As well as failed tests, this manifests when routing across
Edge.Cuts arcs (unless they happen to start at 0 degrees
staritng angle).
Expose as expected failure to prove tests catch it.
Fix to follow in separate commit.
(cherry picked from commit 183f4fe9a5)
The Boost::boost style library dependencies don't work
on some CMake versions (couldn't find library -lBoost::boost)
Use ${Boost_INCLUDE_DIRS} in the target_include_dirs() instead.
Cherry-picked (with changes) from: 1a9aa2e92d
Commit 55fcbddde8 fixed a couple of
failures in the SHAPE_POLY_SET tests, so these no longer
need the expected failure markers.
(cherry picked from commit 371149756d)
Prevent a divide-by-zero bug in SHAPE_ARC::ConvertToPolyline.
When the radius is zero, just use the initial angle (it makes
no different anyway, the result is the centre point, which is
the start point.
(cherry picked from commit e312e2b286)
Add unit test of SHAPE_ARC::ConvertToPolyline.
This function has a bug when the arc is of zero radius. This
test shows the bug, but does not fix it yet.
(cherry picked from commit ce84c19a38)
This is not technically correct (the Boost dependency is introduced through
libcommon), but less invasive as it doesn't pull in libcommon on the linker
command line.
In the component, an m_unit/m_convert element is 1-indexed as opposed to
the library where they are 0-indexed. The 0-index in the library is
reserved for those elements that are shared across all conversion/unit
whereas it is invalid for the component.
Fixes: lp:1824764
* https://bugs.launchpad.net/kicad/+bug/1824764
More recent Kicad_pcb files have quoted layer names (i.e.
strings, not symbols). The importer in K2S doesn't handle that,
so it chokes on elements like (layer "Edge.Cuts").
Fixes: lp:1824750
* https://bugs.launchpad.net/kicad/+bug/1824750
(cherry picked from commit c135158364)
When displaying a sheet from this path, it's possible the sheet will
not have been initialized yet. Call DisplayCurrentSheet() to make sure
it is initialized, and then call RedrawScreen to update the zoom level.
Fixes: lp:1824362
* https://bugs.launchpad.net/kicad/+bug/1824362
Move repeated GAL config reading routines into GAL_DISPLAY_OPTIONS.
THe app-level config is in here already, do the same for the
common config.
This means that the configs are loaded consistently, which fixes
the symbol-chooser preview window, which previously didn't use the
same config routine as other GAL canvases.
Future work could move these functions to free functions that
act on the public interface of GAL_DISPLAY_OPTIONS to avoid
GAL_DISPLAY_OPTIONS having to know about wxConfig and wxWindow.
Fixes: lp:1824524
* https://bugs.launchpad.net/kicad/+bug/1824524
(cherry picked from commit ab2281d26f)
Previously, the GAL_DISPLAY_OPTIONS object in FOOTPRINT_PREVIEW_PANEL::New
was passed by reference in the ctor, down to EDA_DRAW_PANEL_GAL, which stored
it as a reference. The object in New() then goes out of scope, so the
referencing panel outlives the options.
Fix this by making a copy in a std::unique_ptr of the options, and giving
ownership to the panel.
There is another issue here: when the Pcbnew options are copies, the
OBSERVABLE subscriber list is copied too. This means if the panel called
NotifyChanged() on the options, Pcbnew would get updates, even though a copy
of the options changed. However, the panel doesn't change the options or
notify, so it's OK for now.
(cherry picked from commit 17e88d0944)
In some linux configurations, the canvas refresh must be posted before
being handled. Simply requesting the refresh can queue the event,
preventing an up to date GL canvas from being saved.
Fixes: lp:1819536
* https://bugs.launchpad.net/kicad/+bug/1819536
(cherry picked from commit 707e7b4b65)
Save and restore text thickness in SCH_TEXT::Plot() function to prevent
the plotting default thickness value from stepping on the original text
thickness and causing all of the text objects to magically change to bold.
Fixes lp:1823165
https://bugs.launchpad.net/kicad/+bug/1823165
(cherry picked from commit 3d33cba574)
On some platforms like MSVC, NaN prints as "-nan(ind)". This
is a bit needlessly ugly, so print "NaN" on all platforms
consistently.
This fixes a test failure on MSVC.
(cherry picked from commit dd17f24c04)
This allows a failing test to report which case failed more clearly.
Add a quick helper to make an "in -> out" context string.
(cherry picked from commit 3f32dc9a64)
Use the icon scaling logic and call a toolbar rebuild when the
common settings change (echos the handling in Pcbnew and friends).
Remove an unused function.
(cherry picked from commit 8548e69382)
The 3D viewer also uses OpenGL, so it also needs to
adjust based on DPI scale factors.
This patch moves the 3D viewer common config code solely
within the 3D viewer, and adds handling of the DPI scale. This
also avoids duplicated logic in PCB_BASE_FRAME::CommonSettingsChanged.
For now, as EDA_3D_VIEWER is not included in the Kiway settings
dispatch, still manually invoke the settings update from
PCB_BASE_FRAME.
The PANEL_3D_PREV gets a similar function to read the config, but
it doesn't have a listener for the update, so it's set just once
at dialog init, just like the existing pan settings.
Fixes: lp:1823681
* https://bugs.launchpad.net/kicad/+bug/1823681
(cherry picked from commit 124dd5e59a)