Marek Roszko
45598f2933
Add handling of DXF arbitrary axis/extrusions
...
This fixes some DXFs imports where unforunately CAD tools like SolidWorks
randomly decide to mirror circle definitions across the "z" axis (resulting in x or y axis flips in 2d)
Most likely live projection from 3D to 2D drawings introduces this.
However this is DXF specification to describe it so obtusely with vectors for a 2d drawing.
2020-11-23 21:24:38 -05:00
Werni
0e44f5128c
Add const specifiers
2020-11-18 19:50:36 +00:00
Jeff Young
a3a409b438
Fix crash bug when deleting files with spaces in names.
2020-11-14 14:15:02 +00:00
jean-pierre charras
7265f84358
fix PAD::TransformShapeWithClearanceToPolygon() incorrect calculation in some cases.
...
For round rect pads, when the arc error was OUTSIDE, the shape was too big and creates
bad shape for chamfered round rect pads.
For chamfered pads, when the clearance value was not 0, the chamfer was not at the
right place.
2020-11-14 08:50:58 +01:00
Jeff Young
63773809d0
Formatting.
2020-11-10 18:08:25 +00:00
Jeff Young
791a50b493
Remove work-around in favour of real fix in Clipper.
2020-11-04 11:21:45 +00:00
Jeff Young
55c25f3cc4
Work around a round-off bug in Clipper.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/6260
2020-11-02 17:43:13 +00:00
Jeff Young
6bf29deb7f
Improve formatting.
2020-10-31 17:25:08 +00:00
Werni
a7d5d1f091
Add more consts all over the place
2020-10-27 11:03:35 +00:00
Jeff Young
d1c73cb1d5
Clean up MODULE effective shape memory handling.
2020-10-25 23:38:21 +00:00
Jeff Young
31cc100669
Don't make clients deal with nested SHAPE_COMPOUNDs.
2020-10-25 18:17:58 +00:00
jean-pierre charras
d6f91c810f
Fix a few compil and Coverity warnings.
2020-10-25 10:02:07 +01:00
Jeff Young
59f3fefd17
When polygonizing arcs don't use synthesized center and angle.
...
Start, mid and end are the "real" properties and come with less
error.
Also collapses two arc polygonization routines into one.
Also fixes DRC checks to be cognizant of arc approximation error.
Fixes https://gitlab.com/kicad/code/kicad/issues/6039
2020-10-23 23:55:45 +01:00
Jeff Young
1cb7fbaab1
Fix errors in arc polygonization and test case.
...
1) Tests can't expect accuracies around 1 to work. PCBNew defaults
to 5000.
2) Tests shouldn't artifically expand tolerance just to match the
results.
3) Tests should guarantee that end point is on arc, not just close
to it.
4) Standard polygonization of a circle is inside so splitting the
error needs to increase radius, not decrease.
5) Special-case first and last points so that they're exact.
2020-10-23 23:55:45 +01:00
Seth Hillbrand
19bf594aa0
Remove unused point in polygon test
...
There can be only one.
2020-10-23 12:13:09 -07:00
Jeff Young
58c006bc45
Register properties for ARC elements so we can get their netclass.
...
Also improves GAL arc drawing and polygonization.
Fixes https://gitlab.com/kicad/code/kicad/issues/6039
2020-10-23 14:27:36 +01:00
Tomasz Wlostowski
5b4f463c38
kimath: SHAPE_POLY_SET::Format() outputs C++-like code now, like other shapes
2020-10-23 01:18:01 +02:00
Tomasz Wlostowski
a8074ed37d
kimath: POLY_GRID_PARTITION now uses safer degeneracy (overlapping edges/'slits') handling mechanism. Also added some explanation of the algorithm used.
2020-10-23 01:17:54 +02:00
Wayne Stambaugh
8185a416b9
Fix broken build on Linux with gcc.
2020-10-22 08:36:28 -04:00
Jeff Young
9ff49277e1
Add implicit rule generation for keepout areas.
...
Also implements collision detection for SHAPE_POLY_SET.
Fixes https://gitlab.com/kicad/code/kicad/issues/6105
2020-10-22 10:41:21 +01:00
Jeff Young
bfd04926b5
Performance improvement for polyset fracture.
2020-10-20 22:26:47 +01:00
Roberto Fernandez Bautista
006c462d8f
ADDED: Fillet Tracks tool in pcbnew
...
Select two or more track segments and run the "Fillet Tracks" tool.
2020-10-20 21:23:05 +00:00
Ian McInerney
06f01d0d8a
Add platform-specific code to allow wxChoice to ellipsize
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5377
2020-10-17 23:20:13 +01:00
Jeff Young
bbe7573d1c
Performance enhancements to roundrect pads and clearance outlines.
...
Aka: avoid Clipper at all costs.
Fixes https://gitlab.com/kicad/code/kicad/issues/5900
2020-10-14 15:56:43 +01:00
Jeff Young
54dc91a623
Account for segment width in aActual calculation.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5990
2020-10-14 15:56:32 +01:00
Jeff Young
1703729269
Require explicit decl of maxError and errorLocations.
...
This should reduce both performance issues and clearance issues.
2020-10-13 13:49:07 +01:00
Marek Roszko
88102bca46
Kick the refresh timer for GAL on Win32 with a terrible hack
2020-10-11 21:44:46 -04:00
Jon Evans
14c2937fc3
Implement IsDarkTheme for GTK
2020-10-10 14:55:32 -04:00
Jon Evans
cc563d254f
Add MSW implementation for IsDarkTheme (for future)
...
As noted, we can't enable this yet as wxWidgets does
not automatically apply a dark theme to the system
colors.
2020-10-10 14:15:30 -04:00
Ian McInerney
48a5907412
Remove extraneous debug statements
2020-10-08 17:56:54 +01:00
Tomasz Wlostowski
db9e111838
kimath: SHAPE_POLY_SET should re-parent triangulated polygons when copied/cloned
2020-10-08 15:22:17 +02:00
Jeff Young
2f49db49bf
Fix fly-off arc handles and move Arc Properties to start/end/angle.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5791
2020-10-08 11:33:32 +01:00
Mark Roszko
d9485129c8
Implement more context specific cursors using both stock and custom cursors.
2020-10-08 00:50:28 +00:00
Ian McInerney
16374e9ae1
Ensure string is chosen correctly
2020-10-07 23:23:43 +01:00
Tomasz Wlostowski
8fb154e04e
geometry: SHAPE_RECT: use SquaredDistance() for collision detection
2020-10-07 16:36:37 +02:00
Tomasz Wlostowski
d6fa81036b
geometry: SEG::NearestPoint(SEG) now returns points only on (this) segment
2020-10-07 16:36:37 +02:00
Tomasz Wlostowski
1ef120ff4f
geometry: SHAPE::Format() now outputs C-like code for easy test cases...
2020-10-07 16:36:37 +02:00
Tomasz Wlostowski
7ffef32ea0
geometry: placeholder method for converting compounds to simple polygons [wip]
2020-10-07 16:36:37 +02:00
Tomasz Wlostowski
bd27d38d9a
DRAW_PANEL_GAL: added DebugOverlay() method, creating a temporary overlay for drawing debug graphics
2020-10-07 16:36:37 +02:00
Jeff Young
18a3c4c1db
Fix some fairly catastrophic bugs in shape collision optimization.
...
I did a little too much copy & paste last time around....
2020-10-05 22:32:07 +01:00
Mark Roszko
a28a0e14ba
Fix conversion warnings
2020-10-05 10:41:14 +00:00
Jeff Young
8dd7777108
Handle closed shape-line-chain with circle collisions.
2020-10-04 19:40:18 +01:00
Jeff Young
f9cfd31351
0 is always a collision (whether clearance is 0 or not).
2020-10-04 13:21:01 +01:00
Jeff Young
f4f578b755
Add closed-shape handling to SHAPE_LINE_CHAIN collision routines.
2020-10-04 13:21:01 +01:00
Jeff Young
bf67648562
Support optional location reporting in SHAPE collisions.
...
Also fixes a few bugs in the collision routines.
2020-09-28 23:28:33 +01:00
Tomasz Wlostowski
482767a850
libs/kimath: implement indexable subshape support for SHAPE_COMPOUND and SHAPE_POLY_SET
2020-09-27 16:45:46 +02:00
Ian McInerney
c5feccca53
Add stub functions in KIPLATFORM to detect dark mode
...
These haven't been written yet, but current code can
be adapted to use these now.
2020-09-20 01:43:27 +01:00
Jeff Young
d402d93487
Implement shape routines for DIMENSION_Ts.
...
This allows them to participate in DRC and PNS.
Fixes https://gitlab.com/kicad/code/kicad/issues/5712
2020-09-19 14:16:00 +01:00
Jeff Young
0f3d2147aa
Performance enhancements for DRC.
2020-09-17 20:13:39 +01:00
Seth Hillbrand
08bf5f4b4e
ADDED: 45° snapping for rectangles aka Squares
...
The snap obeys only the Ctrl key and not the global preference setting
for drawsegments because rectangles are _always_ on H/V lines when drawn
Fixes https://gitlab.com/kicad/code/kicad/issues/5607
2020-09-15 11:22:26 -07:00