Seth Hillbrand
347c50b26d
Handle issue with alternate SHAPE_LINE_CHAIN
...
SHAPE_LINE_CHAIN_BASE can include things that are not SHAPE_LINE_CHAIN
like the triangle SHAPE_LINE primitive. To check arcs, we need to avoid
these elements as they do not have the full SHAPE_LINE_CHAIN class
available.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17327
2024-03-11 17:21:09 -07:00
Seth Hillbrand
3cc1617f5a
Fix slow selection time when calculating clearance
...
The clearance between two zones could be rather slow. This was in part
to trying to do triangle-triangle collisions between zones when we only
need outline collision and in part to the shape_line_chain collision
routine. The shape_line_chain collisions don't need to recreate
segments on each iteration and should instead create them once and using
this to check all collisions
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17327
2024-03-11 16:32:24 -07:00
jean-pierre charras
5ac8449e1f
Minor compil and Coverity fixes
2024-03-06 13:05:21 +01:00
Roberto Fernandez Bautista
43e1b36d4d
SHAPE_LINE_CHAIN: Fix indices rotation after clipper
...
Also fix IsArcStart and IsArcEnd functions to work with chains that only
have arcs.
2024-03-02 12:09:09 +00:00
Roberto Fernandez Bautista
0d340d0610
SHAPE_LINE_CHAIN: Move .h definitions to .cpp
...
No functional changes, just allow faster rebuilds
2024-03-02 12:09:09 +00:00
Roberto Fernandez Bautista
8c22f8df31
SHAPE_LINE_CHAIN: Fix/unify constructors
2024-03-02 12:09:09 +00:00
jean-pierre charras
8ffd4f636a
SHAPE_ARC::update_bbox(): use double instead of int to calculate radius, and
...
if the radius is too large (> INT_MAX/2), consider arc as a segment to avoid overflows.
Nor perfect, but it avoid some issues when calculating bbox.
2024-02-29 18:01:13 +01:00
Alex Shvartzkop
d04d74c511
Highlight nets and show length tuning status when adding tuning patterns.
...
Also fixes length preview when hovering over joints.
Also prevents asserts when hovering over arcs.
Also prevents adding a tuning pattern on other tuning pattern.
(cherry picked from commit 711c6141a8
)
2024-02-23 20:29:18 +03:00
Jeff Young
ffa6adec96
Add a cache for TrueType contours and triangulation data.
...
Also returns minimumSegmentLength to its former value as
it doesn't appear to be required to fix
https://gitlab.com/kicad/code/kicad/-/issues/11463 .
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/16568
(cherry picked from commit 162e8962f7
)
2024-02-23 16:53:29 +01:00
Seth Hillbrand
745c52c2b7
Update triangulation
...
Allow for overlapping points in input polygon. This is relatively
common on a grid and should be used as potential split points to shave
additional ears
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16933
2024-02-12 15:20:08 -08:00
Jeff Young
11f5908761
Revert the SHAPE_ARC::Collide() part.
...
The arc width appears to be handled elsewhere (at least in
the test suite).
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16951
2024-02-12 17:51:14 +00:00
Seth Hillbrand
c6c1dbb844
Don't skip caching triangulation for failure
...
Failed triangulation can have multiple causes but we don't have another
approach, so skipping the cache just causes the same issue to be raised
again and again
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16946
2024-02-12 09:39:22 -08:00
Jeff Young
d5ac0ff768
Fix SHAPE_ARC::BBox() and Collide() to honour m_width.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16951
2024-02-12 16:59:57 +00:00
Alex Shvartzkop
1122d80388
Better support for arcs in tuning patterns.
2024-01-31 23:38:05 +03:00
Roberto Fernandez Bautista
7276486756
Finish fixing SHAPE_LINE_CHAIN::Slice
2024-01-31 19:17:46 +03:00
Roberto Fernandez Bautista
79aba50c23
Finish fixing SHAPE_LINE_CHAIN::NextShape and add tests
2024-01-31 19:17:46 +03:00
Roberto Fernandez Bautista
e950475bc3
Add assert to SHAPE_LINE_CHAIN::Segment + Deduplicate code
...
CSegment should have the exact same logic as Segment
Also, moving definition to .cpp file to reduce need to rebuild every time
2024-01-31 19:17:46 +03:00
Roberto Fernandez Bautista
effed5dfdf
Fix SHAPE_LINE_CHAIN::Remove and SHAPE_LINE_CHAIN::RemoveShape
2024-01-31 19:17:46 +03:00
Roberto Fernandez Bautista
673e23c2e6
Fix and simplify SHAPE_LINE_CHAIN::Append( SHAPE_ARC ) + QA tests
2024-01-31 19:17:46 +03:00
Roberto Fernandez Bautista
34942290a2
SHAPE_LINE_CHAIN: Fix SetClosed() logic
...
SetClosed should unwrap the chain when there are coincident points at the
start.
2024-01-31 19:17:46 +03:00
Roberto Fernandez Bautista
7593863245
SHAPE_LINE_CHAIN: Fix and simplify ShapeCount()
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15754
2024-01-31 19:17:46 +03:00
Roberto Fernandez Bautista
c72ba189cf
Fix SHAPE_LINE_CHAIN::Slice following NextShape() changes
2024-01-31 19:17:46 +03:00
Roberto Fernandez Bautista
e9fbb36538
SHAPE_LINE_CHAIN: Fix and simplify NextShape() + remove PrevShape()
...
NextShape() function was too complex (trying to go back and forwards).
We only used PrevShape() in one place, so removed that usage.
Added QA tests
2024-01-31 19:17:46 +03:00
Roberto Fernandez Bautista
079478f989
EDA_ANGLE: use constexpr for constant angles
...
Remove all statics in the class and instead use constexpr to
ensure correct ordering
2024-01-31 19:17:46 +03:00
Seth Hillbrand
3cf8b718f3
Don't truncate if not needed
2024-01-26 09:11:11 -08:00
Jeff Young
8410a5e685
Coding conventions and cleanup.
2024-01-23 16:03:25 +00:00
Jeff Young
33c97da0fa
Performance enhancement.
2023-12-27 13:52:02 +00:00
Jeff Young
cfa55d958a
performance efficiencies
2023-12-18 18:45:02 +00:00
Jeff Young
8251fca66a
performance efficiencies
2023-12-18 17:39:29 +00:00
Jeff Young
11805d6696
performance efficiencies
2023-12-18 17:01:55 +00:00
Alex Shvartzkop
2d9eee93e2
Fixes for length tuning patterns.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16198
2023-12-01 08:44:10 +03:00
Seth Hillbrand
daf178b64f
Upgrade Clipper2 to 1.3.0
...
Fixes a number of minor inflation issues including slivers when
overlapping points are inflated
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16182
2023-11-28 16:02:39 -08:00
jean-pierre charras
7fd9226bec
Fix issue in CalcArcCenter( VECTOR2D& aStart, VECTOR2D& aMid, VECTOR2D& aEnd )
...
It happens when the segment (aStart, aMid) is horizontal
Probably also when the segment (aEnd, aMid) is horizontal
Slopes with value 0.0 are set to double:: epsilon(), but it was a too small values
generating broken calculations.
Now set to 1e-10 (it seems working).
Fixes #16089
https://gitlab.com/kicad/code/kicad/-/issues/16089
2023-11-18 20:08:26 +01:00
Alex Shvartzkop
648b4a7689
TransformOvalToPolygon: make segments align at 45 deg angles.
2023-11-06 14:50:40 +03:00
Jeff Young
24ca7add42
Don't clamp arc centers quite so aggressively.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16029
2023-11-06 00:45:19 +00:00
Wayne Stambaugh
bfd3e71a88
Don't show integer overflow errors in release builds.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15529
2023-10-28 15:06:32 -04:00
Wayne Stambaugh
b8310efd19
Coding policy, Doxygen comment, and spelling fixes.
2023-10-20 14:32:54 -04:00
Alex Shvartzkop
be1008cbd8
ADDED: Heal Shapes; Fix discontinuities in gfx import and Cleanup dialog.
2023-10-17 10:29:43 +03:00
Alex Shvartzkop
8b21a260c9
Refactor MEANDER_PLACER_BASE::cutTunedLine to SHAPE_LINE_CHAIN::Split.
2023-10-08 02:41:17 +00:00
Alex Shvartzkop
f9efed692d
Pick location closest to aSeg.A in SHAPE_COMPOUND and SHAPE_RECT Collide.
2023-10-06 16:05:05 +03:00
Alex Shvartzkop
92ef40327d
Add accuracy parameter to SHAPE_POLY_SET::PointOnEdge.
2023-10-06 15:56:46 +03:00
Alex Shvartzkop
de0c1218c3
Add a method to offset line chains.
2023-10-06 15:50:37 +03:00
Alex Shvartzkop
8a22a8fa69
Add aExact to SHAPE_LINE_CHAIN::Split.
2023-10-06 15:50:37 +03:00
Alex Shvartzkop
d7863b09c5
Move CORNER_STRATEGY out of SHAPE_POLY_SET.
2023-10-06 15:42:50 +03:00
Alex Shvartzkop
2cd630b47d
Fix a bug causing lower segment count on holes when deflating polygons.
2023-10-06 15:36:42 +03:00
Seth Hillbrand
06428e0161
Remove unused
2023-09-27 18:05:21 -07:00
Marek Roszko
e83f87520c
Transform is right at home in kimath
2023-09-07 18:03:33 -04:00
jean-pierre charras
3e6f7ab3e5
Fix compil issues (especially easyeda_parser_base.xx) and compil warnings
...
Compil issues can be gcc13/msys2 specific.
2023-09-07 13:41:25 +02:00
Alex Shvartzkop
21ee65aa9c
ADDED: Importers for EasyEDA (JLCEDA) Standard / Professional.
2023-09-07 11:02:40 +03:00
John Beard
78c8de9b08
Fix oval pad snapping
...
Previously the snap points computed for oval pads didn't get all the
points correct. This breaks out the "find snap points for ovals"
into a function, reworks the logic, adds some tests.
Also adds "extremum points" when the oval isn't exactly H/V.
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/15594
2023-09-06 21:33:45 +01:00