Commit Graph

260 Commits

Author SHA1 Message Date
Tomasz Wlostowski f7f5e67f56 geometry: SHAPE_LINE_CHAIN::Simplify() now correctly simplifies last 3 colinear vertices 2021-02-25 17:18:23 +01:00
Tomasz Wlostowski baacb9c85a geometry: fix MTV calculation for simple polygons 2021-02-25 17:18:23 +01:00
Seth Hillbrand 507ca9bc73 Add DPI scaling to KIPLATFORM
GTK needs to check current scaling but wx doesn't provide this
functionality in 3.0, so we can bypass by going straight to the source.
2021-02-22 17:38:27 -08:00
Jeff Young e89f9db438 Footprint disallow layer checking needs to be based on courtyards.
Fixes https://gitlab.com/kicad/code/kicad/issues/7620
2021-02-20 14:13:36 +00:00
Jon Evans 079203c345 Change Linux documents path to XDG_DATA_HOME
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7543
2021-02-17 20:25:50 -05:00
Roberto Fernandez Bautista 2d66abdc89 CADSTAR PCB Archive Importer: More improvements to loading of zones
Adds a new function Area() to SHAPE_POLY_SET
2021-02-10 18:49:21 +00:00
Jon Evans 1ba7bebce6 Handle lack of a Documents directory 2021-02-09 20:15:30 -05:00
Marek Roszko 872184fe8b Revert "Bump minimum required CMake version to 3.10"
This reverts commit a475f45753.
2021-02-09 18:46:13 -05:00
Jon Evans 9728ceab0d Fall back to explicit documents path if XDG special dirs are missing
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7452
2021-02-08 20:21:39 -05:00
Simon Richter a475f45753 Bump minimum required CMake version to 3.10
This allows us to remove even more workarounds
2021-02-08 12:23:08 +00:00
Jeff Young 90b3d0c96d Implement TransformShapeWithClearanceToPolygon for DIMENSIONs.
Fixes https://gitlab.com/kicad/code/kicad/issues/6890
2021-02-03 23:34:17 +00:00
Marek Roszko 06a515339c Correct pointless and bad buffer sizing in RegisterApplicationRestart 2021-02-01 15:36:07 -05:00
Seth Hillbrand 73886aecb1 Ensure partially triangulated polys are not valid
Moves rule area triangulation outside of layer iterator and keeps the
triangulation_valid flag false until the triangulation has been
completed.

Fixes https://gitlab.com/kicad/code/kicad/issues/7032
2021-01-29 16:33:57 -08:00
Marek Roszko a47e8af0d0 Fix up naming of the kiplatform helpers 2021-01-27 19:12:20 -05:00
Marek Roszko 299830350c Fix macos build error 2021-01-27 19:12:19 -05:00
Marek Roszko 34bcf1883d Blindly implement the macos fetch of cache dir 2021-01-27 19:12:19 -05:00
Marek Roszko daf9c4f319 Centralize the 3d cache path 2021-01-27 19:12:19 -05:00
Marek Roszko 8622565480 Add GetUserConfigDir 2021-01-27 19:12:18 -05:00
Marek Roszko 2bbc25a630 Use g_get_user_special_dir for documents dir on gtk 2021-01-27 19:12:18 -05:00
Marek Roszko 28c6967dbc Start trying to shuffle around path management 2021-01-27 19:12:18 -05:00
Wayne Stambaugh 6ab1144ea3 Fix broken Doxygen comment specifiers.
Please note, ///> is not a valid Doxygen comment specifier.  ///< is the
correct specifier to use for single line or short Doxygen comments.
2021-01-25 07:42:36 -05:00
Roberto Fernandez Bautista 99d203feae Clarify CIRCLE::ConstructFromTanTanPt
Remove unused bool aAlternateSolution and add doxygen comments
2021-01-24 16:41:11 +00:00
Roberto Fernandez Bautista 48823c0723 Formatting fixes and fix qa_kimath following rebase 2021-01-24 16:41:10 +00:00
Roberto Fernandez Bautista 19620cebe7 qa tests: fix test_circle 2021-01-24 16:41:10 +00:00
Roberto Fernandez Bautista 6ed5ed52b8 qa tests for CIRCLE geometry library 2021-01-24 16:41:10 +00:00
Roberto Fernandez Bautista b6a50d2f74 qa tests for SEG perpendicularity and parallelism 2021-01-24 16:41:10 +00:00
Roberto Fernandez Bautista 6e7ae93cc8 EDIT_TOOL::DragArcTrack Fix incorrect undo history when items are deleted
Need to make sure we only apply one COMMIT operation per object before calling COMMIT::Push() or COMMIT::Revert()
2021-01-24 16:41:10 +00:00
Roberto Fernandez Bautista 2b5c1bae97 CHANGED: Dragging a curved track starts an interactive resizing of it, keeping start an end points tangent 2021-01-24 16:41:10 +00:00
Seth Hillbrand b8dfcb34c4 Revert "Use less-sophisticated arc editing math."
This reverts commit 3b424d3868.  And fixes
issue with rouding causing arc errors
2021-01-18 12:44:27 -08:00
Mikolaj Wielgus 00a9910149 Fix misplaced parenthesis in VECTOR2<T>::Resize()
Fixes https://gitlab.com/kicad/code/kicad/issues/7045
2021-01-16 09:41:14 +00:00
Dominik Wernberger dc02ec9758 Remove a few const_cast 2021-01-12 20:51:31 +00:00
Dominik Wernberger ac94d72d2d Add more const specifiers 2021-01-12 20:51:31 +00:00
Tomasz Wlostowski 7994c59169 libs/kimath: POLY_GRID_PARTITION must use truncating (round-to-zero) rescale function for correct grid generation. 2021-01-10 00:04:57 +01:00
Seth Hillbrand b2cfd7f479 Fix rounding issues
Rescaling and rotating has been leaving 1nm errors due to integer
truncation in VECTOR2I.  This rounds integers using KiROUND before
returning
2021-01-09 13:05:58 -08:00
Jon Evans 31dd04fa96 Fix ToVector to return world coordinates
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7002
2021-01-08 13:52:39 -05:00
Jon Evans c3eb8dccda Fix typo in DIRECTION_45 ctor 2021-01-07 19:13:05 -05:00
Seth Hillbrand a342bb9ab3 Standardize rounding in 64-bit rescale
32-bit rescale still uses truncation until we can determine how this
affects poly_grid_partition
2021-01-07 11:21:05 -08:00
Seth Hillbrand 77acf85310 Revert "Standardize rescale"
poly_grid_partition appears to depend on integer calculation for large
scaling

This reverts commit eef16fe717.
2021-01-07 10:36:06 -08:00
hoijui 6ca9a42251 Removes 3 other instances of a potential encoding problem
Signed-off-by: hoijui <hoijui.quaero@gmail.com>
2021-01-07 17:36:49 +00:00
hoijui e34b829242 Prevent an encoding error when generating python API DoxyGen
Signed-off-by: hoijui <hoijui.quaero@gmail.com>
2021-01-07 17:36:49 +00:00
Jon Evans 0234b7278a PNS: Make DIRECTION_45 North be up everywhere
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6935
2021-01-06 21:47:06 -05:00
Seth Hillbrand eef16fe717 Standardize rescale
Rescale was returning differing results based on 32-bit vs 64-bit
implementations.  Speed difference here appears to be positive.
2021-01-06 17:52:14 -08:00
Jeff Young 2a088e5c7b Add conversion of circles to zones and enable in footprint editor.
Also rule areas, of course.

Fixes https://gitlab.com/kicad/code/kicad/issues/6966
2021-01-06 17:21:49 +00:00
Jon Evans 7431d5c985 PNS: First pass at updating meander placers for arcs
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6464
2021-01-05 17:57:21 -05:00
Jon Evans 8619086cf2 PNS: re-enable optimization of colinear segs in lines with arcs 2021-01-05 17:57:21 -05:00
Jon Evans 8901e71fc8 PNS: Fix loop removal, make walkaround less broken for arcs 2021-01-05 17:57:21 -05:00
Jon Evans aebb571dc9 Short-circuit arc generation if we are on a diagonal 2021-01-05 17:57:21 -05:00
Seth Hillbrand 5a97764319 Make segment contain its edge
This allows segment snapping along its diagonals to the grid.

Fixes https://gitlab.com/kicad/code/kicad/issues/6924
2021-01-03 12:47:33 -08:00
Jon Evans eaffacbc85 PNS: construct initial lines with arcs more precisely 2021-01-02 23:57:09 -05:00
Jon Evans af4c6393bb Fix arc collisions to account for width
This was causing arcs to be really hard to start routing from
2021-01-02 22:01:05 -05:00
Jon Evans 73248ab219 PNS: correct initial segment direction for posture solver 2020-12-31 13:05:43 -05:00
Jon Evans 111c644a82 Don't append zero-length arcs 2020-12-31 13:05:43 -05:00
Jon Evans fbdf31d35a Prevent creating arcs with slightly offset endpoints 2020-12-31 13:05:43 -05:00
Jon Evans 23c9eddf2d Cleanup 2020-12-30 18:29:41 -05:00
Jon Evans 79502a0d88 PNS: A new approach to arc placement
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6334
2020-12-30 18:23:24 -05:00
Jeff Young af2219ba7f Finish implementation of hole clearance checking.
It appears we never did via hole testing, and pad hole testing didn't
appear to get much testing.
2020-12-25 22:32:19 +00:00
Jon Evans ea351fde69 Recache polygon triangulation when mirroring
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6265
2020-12-20 10:45:24 -05:00
Marek Roszko 33dbc8ccd1 Add IsNetworkPath to kiplatform 2020-12-15 19:28:58 -05:00
Marek Roszko d67cf2f9af Replace wxFile usage with wxFFile
Buffered libc wxFFile is better thinking about syscall wxFile going wrong.
2020-12-12 13:16:23 -05:00
Jeff Young bc484784fc Make sure zones are triangulated for DRC.
Normally this happens as a side-effect of rendering them but if done
from a script (or test case) this won't happen.

Fixes https://gitlab.com/kicad/code/kicad/issues/6635
2020-12-12 15:27:46 +00:00
Jeff Young f08b7f098f Cleanup. 2020-12-12 15:27:46 +00:00
Jeff Young 807eef1208 Better error reporting to try and catch 6635. 2020-12-12 12:22:52 +00:00
Jeff Young 2c2630ef9e Formatting. 2020-12-12 03:43:41 +00:00
Ian McInerney be4b6ec06a Cleanup compiler warnings 2020-12-09 23:13:33 +00:00
Jeff Young 37178e3751 Formatting. 2020-11-29 14:02:46 +00:00
jean-pierre charras 68625494f3 specctra_export: fix an issue with custom and chamfered/round rect pads.
Is some cases a created pad stack name had the same name as an other pad stack
having a slightly different shape, thus creating pads with a incorrect shape on board.

Fixes #6495
https://gitlab.com/kicad/code/kicad/issues/6495
2020-11-25 13:57:46 +01:00
Jeff Young 9c7c05c161 Mostly formatting cleanup but a few type-casting cleanups too. 2020-11-24 22:16:41 +00:00
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