Commit Graph

351 Commits

Author SHA1 Message Date
Wayne Stambaugh e93b7b05ec Wide characterize libs and bitmap2component source.
(cherry picked from commit 54f91a0221)
2022-02-09 11:49:58 -05:00
Seth Hillbrand 162545ddf0 Validate arc output when editing
Handles checking output of the arc to ensure we don't end up generating
an invalid arc.  Also keeps the limit of the arc angle to be (360,360)
excluding 0.

Fixes https://gitlab.com/kicad/code/kicad/issues/10070

(cherry picked from commit 8fc831cbc2)
2022-02-07 08:55:53 -08:00
Marek Roszko 41f54349a5 Replace inserts/push_backs with emplace in some spots 2022-02-05 19:53:31 -05:00
Jeff Young 3f8cada334 Fix some issues with new polygonization of arcs and arc collision test.
Test should not be testing against the polygonization error; if done
correctly that should all be on the correct side of the shape.  Use an
epsilon instead (I chose polygonization error / 10, but the value isn't
terribly important).

Fixes https://gitlab.com/kicad/code/kicad/issues/10724
2022-02-03 19:53:42 +00:00
Jeff Young 08ee2671cc A better arc-to-polygon algorithm when error is outside.
The existing algorithm nicely handled the error being on the inside (where
the segment ends are error-free), but not when it was on the outside (where
the segment midpoints are error-free).

In any case, we want error-free points at each end of the arc so we don't
get ears or divots.
2022-02-02 23:40:24 +00:00
Seth Hillbrand 82ceaf0d9b Try not to Simplify lines to a single point 2022-01-31 16:13:27 -08:00
jean-pierre charras 0bc5cb33ed Fix a few issues in plotting code. Fix bug in EDA_ANGLE::IsCardinal()
Fixes #10547
https://gitlab.com/kicad/code/kicad/issues/10547
2022-01-21 12:35:58 +01:00
Jeff Young c8a50d9b50 Remove unit-less angles from VECTOR2I/D APIs. 2022-01-20 23:58:20 +00:00
Jeff Young 14006495d5 Angle cleanup. 2022-01-20 22:35:41 +00:00
Jeff Young 4eac8d7c66 Remove unit-less angles from geometry lib APIs. 2022-01-20 21:10:04 +00:00
Jeff Young 854987f663 Remove unit-less angles from geometry manager APIs. 2022-01-20 21:10:04 +00:00
Jeff Young fbab335128 Retire DPOINT and DSIZE. 2022-01-20 21:10:04 +00:00
Jeff Young af20d46d06 Fix converting angles from tenths of a degree.
(Conversion was upside-down.)

Also fixes bugs with rotation angle increment not getting units
set and with a 0 footprint editor value overwriting a non-zero
pcb editor value (or vice versa).
2022-01-19 19:55:50 +00:00
Jeff Young 9298da4ebc ArcToSegmentCount calcs need to use abs value of angle. 2022-01-19 16:01:23 +00:00
Ola Rinta-Koski ef721f051a copyright note removed 2022-01-19 15:30:06 +02:00
Jeff Young 2a60017ffa Fix error in trigo.
Fixes https://gitlab.com/kicad/code/kicad/issues/10495
2022-01-19 00:10:32 +00:00
Seth Hillbrand 57afdf153d Remove unneeded distance calc
(cherry picked from commit 857683d372)
2022-01-18 15:59:16 -08:00
Jeff Young 4e493e2cbc Clean up some more deci-degrees. 2022-01-18 14:08:47 +00:00
Jeff Young f310a5b986 Excise deci-degrees from trigo. 2022-01-18 11:44:55 +00:00
Jeff Young 92dae4646e Yeet dec-degrees from covert_basic_shapes_to_polygon. 2022-01-18 10:14:52 +00:00
Jeff Young b828355206 A bit more angle cleanup. 2022-01-18 09:48:24 +00:00
Jeff Young e37ca2f757 Remove dead code. 2022-01-18 01:40:03 +00:00
Jeff Young 8c246a761d Move EDA_ANGLE from int to double. 2022-01-17 20:57:54 +00:00
Jeff Young e61144d45a Finish with EDA_ANGLE. 2022-01-16 21:15:40 +00:00
Jeff Young e84c574830 Some more EDA_ANGLE cleanup. 2022-01-16 19:16:18 +00:00
Jeff Young 9b661aea10 EDA_ANGLE for plotters.
Also fixes a compile error in the PNS Playground.
2022-01-16 01:19:45 +00:00
Jeff Young 1539fa5af2 Move SHAPE_ARC to EDA_ANGLE. 2022-01-16 01:19:45 +00:00
Jeff Young f3fa7febeb Fix a degrees / tenths-of-a-degree mismatch. 2022-01-15 11:16:19 +00:00
Jeff Young 3f98769a77 More EDA_ANGLE.
Includes bug fix for catastrophic error in Add() for converting to
radians.

Includes bug fixes for the fact that the pcbnew test can't seem to
find the ANGLE_* objects (getting all 0's instead).
2022-01-15 01:30:04 +00:00
Seth Hillbrand 22a77d3556 Move EDA_ANGLE to KiMath lib
KiMath should only depend on itself not on other elements in the tree
2022-01-14 17:12:24 -08:00
Jeff Young 07013d00e1 More EDA_ANGLE. 2022-01-14 16:08:19 +00:00
Jeff Young abd3f5bc2b Move footprints to EDA_ANGLE. 2022-01-14 16:08:18 +00:00
Marek Roszko fcfe42d67c Continue the war on wxPoint 2022-01-10 19:52:26 -05:00
Jeff Young 27c967421c Commenting and "auto" reduction. 2022-01-08 16:47:45 +00:00
Jeff Young eb58d7e44c Text glyph caches and bug fixes.
1) Unify metrics between stroke and outline fonts
2) Unify handling of rotation and mirroring
3) Bug fixes in collision handling
4) Use of VECTOR2I (instead of VECTOR2D) for world-coordinates
5) Generate outline font overbar with rounded ends and fix rotation
bugs
6) Generate wxEVT_CHOICE events from FONT_CHOICE::SetFontSelection
7) Change text-item PNS SOLIDs to use compound shapes
2022-01-08 16:47:45 +00:00
Marek Roszko 6d2fd17a39 Remove a wxPoint dependence in trigo 2022-01-04 23:23:36 -05:00
Marek Roszko d7e790b6c1 Remove wx/gdicmn.h from trigo.h 2022-01-04 21:26:04 -05:00
Marek Roszko 726d873c53 Tear down the wxPoint trigo helpers 2022-01-04 21:23:11 -05:00
Marek Roszko e4dbfcd92d Swap out some wxSize for VECTOR2I 2022-01-04 20:42:27 -05:00
Marek Roszko 98ee6c5f85 Cleanup some wx/gdicmn.h includes 2022-01-04 20:32:27 -05:00
Marek Roszko ac715d2e51 Scoop up some more wxPoint instances 2022-01-03 20:00:53 -05:00
Simon Richter d25fe17b28 Bump minimum required CMake version to 3.11
Signed-off-by: Marek Roszko <mark.roszko@gmail.com>
2022-01-01 21:35:08 -05:00
Marek Roszko 7d671cff1e Scoop up some more wxPoints 2022-01-01 21:06:40 -05:00
Marek Roszko 589a03afcd Add std::hash specialization for VECTOR2I 2022-01-01 20:29:08 -05:00
Marek Roszko 8c0da67108 Fix accidentally introduced recursion 2022-01-01 14:39:03 -05:00
Marek Roszko c91d3e3cf9 Remove some more wxPoint 2022-01-01 14:12:20 -05:00
Marek Roszko ea613cf448 Another batch of point changes 2022-01-01 13:17:12 -05:00
Marek Roszko c4c56de708 Neurotically update position wxPoint usages 2022-01-01 11:55:51 -05:00
Marek Roszko 347e03363a Convert wxPoint/wxSize starting from EDA_RECT usages 2022-01-01 11:30:33 -05:00
Tomasz Wlostowski 78968f75c0 SHAPE_POLY_SET: polysets can now be built from a bunch of arbitraily ordered oriented outlines. Used by the SVG hole support 2021-12-31 17:04:16 +01:00