Jeff Young
d5a5928e5a
Improve clean up tracks & vias algorithm for neck-downs.
Fixes https://gitlab.com/kicad/code/kicad/issues/10098
4 years ago
Roberto Fernandez Bautista
4de4347baa
SHAPE_ARC::Collide( aSeg ) must check segment end points as candidates
The edge case is when the segment is completely contained inside the arc
(This partially reverts b4835c8208 and
adds the missing test cases)
4 years ago
Roberto Fernandez Bautista
b4835c8208
Add test case for SHAPE_ARC::Collide( seg ) + remove unneeded candidates
Followup to commit 01068e0d41
4 years ago
Seth Hillbrand
1b1bf8a17b
Better handling of escaped characters in STEP parser
Fixes https://gitlab.com/kicad/code/kicad/issues/9897
4 years ago
Tomasz Wlostowski
01068e0d41
geometry: fix SHAPE_ARC/SEG collision
The arc2segment collision should at also include the arc endpoint projections on the segment being tested. Not sure it covers all possible cases, though.
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/9023
4 years ago
jean-pierre charras
0dad504e91
POLY_GRID_PARTITION: detect a divide by 0, set a wxASSERT and avoid the crash.
4 years ago
Roberto Fernandez Bautista
2d1ad52212
SHAPE_LINE_CHAIN: Fix arc indices rotation after merging duplicate points
Fixes https://gitlab.com/kicad/code/kicad/-/issues/9843
4 years ago
Roberto Fernandez Bautista
c463818b57
SHAPE_LINE_CHAIN: Only fix up arc indices if last pt is part of an arc
Fixes https://gitlab.com/kicad/code/kicad/-/issues/9843
4 years ago
Jon Evans
0570c22732
Use point collision test for zero-length segments
SEG::SquaredDistance( SEG& ) does not do the right thing
for segments with zero length at the moment.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/9791
4 years ago
Jon Evans
b4342d813b
Fix SHAPE_LINE_CHAIN::Slice when end is an arc followed by a point
Fixes https://gitlab.com/kicad/code/kicad/-/issues/9770
4 years ago
Tomasz Wlostowski
5d2f3257da
libs/kimath: user-settable distance threshold for SEG::ApproxParallel()
4 years ago
Roberto Fernandez Bautista
1026c24c65
SHAPE_LINE_CHAIN fix rotation of indices after going through Clipper
Clipper might mess up the rotation of the indices such that an arc can be split between
the end point and wrap around to the start point. Detect if this happened and fix it as
required.
Also, handle arcs at the last segment of the chain correctly, meaning we can have arcs
towards the end of the chain that finish at the starting point of the chain.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/9670
4 years ago
Roberto Fernandez Bautista
d47bd3a04d
Rewrite broken collision routine SHAPE_ARC::Collide( SEG& aSeg )
4 years ago
Roberto Fernandez Bautista
cb7e57fb43
CIRCLE::IntersectLine fix incorrect algorithm documentation comments
4 years ago
Roberto Fernandez Bautista
0c3da0f072
Implement true arc collisions for arcs inside a SHAPE_LINE_CHAIN
4 years ago
Marek Roszko
f5fc9fa11f
Another auto proxy tweak
4 years ago
Marek Roszko
73f40b11ee
Some more cleanup
4 years ago
Marek Roszko
009bb7f033
Add missing WinHttpOpen to resolve pac proxies
4 years ago
Marek Roszko
b20317ca84
Some minor cleanup of the proxy detect
4 years ago
Marek Roszko
e2926f69a5
Add support to fetch windows proxy config for use with curl
Fix https://gitlab.com/kicad/code/kicad/-/issues/9594
4 years ago
Jeff Young
d66487c383
Make sure RTree bounding box is at least as big as hole.
Fixes https://gitlab.com/kicad/code/kicad/issues/9526
4 years ago
Johannes Pfister
64f77b3596
PNS: Add support for 90-degree corner modes
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6902
4 years ago
jean-pierre charras
29c3601061
SHAPE_POLY_SET: add FullPointCount(), mainly for statistics and debug.
4 years ago
Jeff Young
9b9e379aa0
Overhaul arc internal model to not over-specify information.
4 years ago
Roberto Fernandez Bautista
9e557d84c6
Ensure appended arcs are valid arcs (start, mid, end cannot be collinear)
Fixes https://gitlab.com/kicad/code/kicad/-/issues/9380
4 years ago
Roberto Fernandez Bautista
4b8ca18bf7
Remove unfinished code for handling arcs in SHAPE_POLY_SET::booleanOp
Boolean Ops on polygons with arcs are not supported (the only exception
is Simplify)
Also fix a bug in SHAPE_LINE_CHAIN::splitArc that resulted in an
exception
Partially fixes https://gitlab.com/kicad/code/kicad/-/issues/9380
4 years ago
Seth Hillbrand
c1e6fdfb47
Polygon triangulation: Check for broken remainders
If the last three points of a tesselation are concave, we will never be
able to triangulate them. They were likely formed from a bad polygon,
so we will drop the triangle and return completed
Fixes https://gitlab.com/kicad/code/kicad/issues/9380
4 years ago
Seth Hillbrand
52bbfb9109
Remove dependency of dot size on linear mils
Changes a dot to be a square pixel (linewidth x linewidth). This allows
the removal of IU dependencies and ensures that a dot is always visible
on screen. Also makes sure that cairo is setting the current linewidth
during its stroke routines
Fixes https://gitlab.com/kicad/code/kicad/issues/9362
4 years ago
Jeff Young
f606679164
Proper numeric sorting for intersheet refs.
Also expunges the horrifically named std::remove and std::remove_if
(neither of which remove anything).
4 years ago
Jon Evans
e2368b733c
Allow selection of NPTH pads with zero copper size
Fixes https://gitlab.com/kicad/code/kicad/-/issues/9249
4 years ago
Roberto Fernandez Bautista
4abee7c2eb
Fix SHAPE_LINE_CHAIN::Split when inserting a point on an arc
Ensure the arc is split into two at the point specified.
Partly fixes https://gitlab.com/kicad/code/kicad/-/issues/9023
Additional work required to ensure that the shove state is preserved.
4 years ago
Jeff Young
46949abe4a
Don't scroll to highlight an object already visible.
4 years ago
Seth Hillbrand
28bd734313
Prevent invalid paths in fracture
We are not always sure of the path validity in fracture. Nominally, the
Clipper Simplify routine should remove invalid parts but in the case
where it doesn't, we need to recover gracefully, even if the output
polygon is not valid.
Fixes https://gitlab.com/kicad/code/kicad/issues/9199
4 years ago
Jeff Young
7a993c0211
Add support mode for dark mode to SCINTILLA_TRICKS.
Also removes the return value from the BITMAP_STORE's themeChanged
method as it will provide the wrong answer for the second frame it's
called on.
Also hooked up ACTION_TOOLBAR, the app launcher, and the project tree
to the wx event for system color changes so they change on the fly.
Fixes https://gitlab.com/kicad/code/kicad/issues/6026
4 years ago
Jeff Young
f64abcba36
Restore BBoxCache usage for zone fill performance.
4 years ago
Marek Roszko
3b7f5a3db7
Remove the native cursor for moving on Windows to avoid visual conflicts
Fix #8801
4 years ago
Roberto Fernandez Bautista
ed39b33d74
Fix edge case in CIRCLE::Intersect that caused a divide-by-zero crash
Also add some additional test cases.
4 years ago
Jon Evans
80355f04a9
Fix SHAPE_LINE_CHAIN::Replace at end of chain
4 years ago
Roberto Fernandez Bautista
d9cf939ba1
SHAPE_LINE_CHAIN::Replace Don't call front() or back() if empty
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8949
4 years ago
Roberto Fernandez Bautista
ab3564f12d
Fix formatting in prior commit
4 years ago
Roberto Fernandez Bautista
22df01183d
Fix edge cases in CIRCLE::Intersect that were causing KiROUND overflow
4 years ago
Roberto Fernandez Bautista
11fc74920c
Fix infinite loop in SHAPE_LINE_CHAIN::Slice
Was resulting in infinite loop due to wrong calculation
in NextShape.
4 years ago
Roberto Fernandez Bautista
ae87dc686a
Fix SHAPE_LINE_CHAIN::NearestPoint when aAllowInternalShapePoints=false
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8770
4 years ago
Roberto Fernandez Bautista
1edb96cc5b
Fix SHAPE_LINE_CHAIN::Slice(), splitting arcs when required
4 years ago
Roberto Fernandez Bautista
eaf8eb284a
Add true arc-to-polyline collisions
4 years ago
Roberto Fernandez Bautista
dd65ce9523
Simplify & move new arc collision code into Kimath library
Don't need to check intersections with the circle, just fix the
calculated "projected" point from the end points.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8234
4 years ago
Roberto Fernandez Bautista
b6be10f05c
Fix CIRCLE::Intersect( const SEG& aSeg ) and add unit tests
4 years ago
Roberto Fernandez Bautista
318435aedb
Add more test cases: simulate zone fill around arc + diff pair meander
4 years ago
jean-pierre charras
b6664eecf2
arc: fix incorrect arc center calculation for angle < 0 or > 180 deg
4 years ago
Jeff Young
c00f4ed5d2
Add regression tests for track cleaner.
4 years ago