Commit Graph

66 Commits

Author SHA1 Message Date
Jeff Young cc721c4907 Improve encapsulation of group internals.
(It's still leaking into BOARD_COMMIT and some other places, but at
least it no longer leaks into all the edit tools.)

Also fixes some bugs when moving/copying/pasting multiple selections
containing length-tuning patterns.
2023-11-09 14:05:35 +00:00
Jeff Young 791aa64950 Functionally it's a "reference image".
The implementation happens to be a "bitmap".

Fixes https://gitlab.com/kicad/code/kicad/-/issues/15932
2023-10-24 15:44:21 +01:00
Mike Williams 91b6bb8088 Grid helpers: remove view items on destruction 2023-10-23 09:39:08 -04:00
Jeff Young 504652b972 Regularize RunOnChildren() at the BOARD_ITEM level.
BOARD_ITEM sub-classes which don't have children simply don't
overrid it.
2023-10-14 15:04:18 +01:00
Jeff Young 62d959ed0e Don't assume an error location for PAD::GetEffectivePolygon().
While ERROR_INSIDE was good for plotting, 3D generation, etc., it's
not good for generating router hulls.

Also reverts part of the change to always use polygons for PNS::SOLIDs.  A single shape in a SHAPE_COMPOUND will be faster (and
more accurate).

Fixes https://gitlab.com/kicad/code/kicad/-/issues/14898
2023-10-13 13:59:26 +01:00
Marek Roszko 22b733209d Fail GAL on its header leaking audit
Maybe we should rethink directly accessing GAL so much, but at least 600 files didn't need GAL leaked into them due to view_overlay.h
2023-09-18 19:52:27 -04:00
Marek Roszko 67b031adab Painter base class should just live in gal instead of being in denial 2023-09-06 20:23:19 -04:00
John Beard 3c5052c1ac Add snaps to pad hole edges
This is often useful when measuring the distance from an
object to a pad hole edge, and also when dimensioning
holes.
2023-09-06 21:34:17 +01: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
Mike Williams b8a61719c3 Grids: make overrides use existing grids (choice box) 2023-08-30 13:33:04 -04:00
Jeff Young d161602e92 Don't snap a footprint (or group) to its children.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15535
2023-08-29 13:05:08 +01:00
Jeff Young 4fefd95e0c Move grid definitions to Prefs and grid origin to a separate dlg.
Grid origin is document-wide, while grid definitions are app-wide.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/2262
2023-08-26 13:32:24 +01:00
Mike Williams d9c2e0ab54 PCB: start of grid overrides
Only works for moves.
2023-08-24 10:29:09 -04:00
Jeff Young a2627fec60 Don't snap to footprint-private items.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15447
2023-08-19 21:03:05 +01:00
Jon Evans 1efd75ca79 ADDED: Multi-layer object snapping
Default hotkey Shift+S toggles on/off

Fixes https://gitlab.com/kicad/code/kicad/-/issues/6266
2023-08-17 09:25:47 -04:00
jean-pierre charras 7fe80abdff PCB_GRID_HELPER::BestSnapAnchor() fix overflow due to use of int.
GRID_HELPER::GetVisibleGrid() needs double, does not work with int (overflow).
Fixes #15389
https://gitlab.com/kicad/code/kicad/-/issues/15389
2023-08-11 17:59:24 +02:00
jean-pierre charras a16ab0aae1 Replace SHAPE_T::RECT by SHAPE_T::RECTANGLE: RECT creates a collision name
issue with a Windows header on msys2.
Change very similar to the commit 9a47b344 about class PAD_SHAPE.
No actual code change
2023-07-25 09:11:55 +02:00
Mike Williams 37837dc392 PCB: introduce PCB_FIELD_T 2023-06-20 18:34:52 +00:00
jean-pierre charras 9a47b34499 Replace PAD_SHAPE::RECT by PAD_SHAPE::RECTANGLE to avoid a collision NAME with a windows header on MSYS2, creating many compil warnings. No actual code change. 2023-06-02 12:18:24 +02:00
Jeff Young bbd6c80507 Collapse FP_* down into their PCB_* equivalents. 2023-03-31 22:57:46 +01:00
Jeff Young 23accffc6d Add Property Inspector support for dimension objects.
Includes changing the class hierarchy so that dimension objects inherit
from PCB_TEXT rather than containing a PCB_TEXT member variable.
2023-03-04 23:16:46 +00:00
Marek Roszko aacc9746e3 Yeet the last of wxSize/wxPoint to stop leaking gdicmn everywhere 2023-02-18 22:57:18 -05:00
Seth Hillbrand 1cc9792cdb Fix snapping dist when disabling grid
The disable grid hotkey should allow the snap scale to be completely
determined by the snapSize and world scale.  This prevents snapRange
from overriding in the case where grid is disabled.

Additionally, we disallow grid snapping when the grid scale is not
visible.  This means that when zoomed out sufficiently to not show the
minor ticks, these minor ticks will not override a snap

Fixes https://gitlab.com/kicad/code/kicad/issues/12303
2022-12-21 17:47:45 -08:00
Jeff Young 9d13e419c2 Reduce compiler warnings. 2022-12-13 00:47:19 +00:00
Alex 8c468dcffc Use ecoords for distance comparison in PCB grid helper.
Fixes a bug where a cursor would jump to a far location while hovering
over some 45-degree tracks.
2022-11-30 08:18:19 +03:00
Alex dd2f19ca5f Allow router cursor snapping to points on the arc.
Also don't disable grid snapping when holding Shift over arcs.
2022-11-20 16:56:25 +05:00
Alex 110bc6abd1 Fix router cursor glitching on H/V track segments.
Also don't disable grid snapping when holding Shift over tracks.
2022-11-20 16:56:25 +05:00
Jeff Young 2cfe78170c Honour selection filter when picking move anchors.
Fixes https://gitlab.com/kicad/code/kicad/issues/12773
2022-11-08 16:27:18 +00:00
Wayne Stambaugh 6a0db3e7e2 Fix Coverity warnings. 2022-10-26 14:39:44 -04:00
Jeff Young 83310659fd Basic geometry: R != D.
Fixes https://gitlab.com/kicad/code/kicad/issues/12601
2022-10-10 19:18:37 +01:00
Jeff Young 8470b178cd Use actual pad shapes or built outline instead of effective shpaes for anchors.
The effective shapes don't work very well in the custom pad or rounded
rectangle cases, and they're somewhat slower in some of the other cases.

Fixes https://gitlab.com/kicad/code/kicad/issues/12601
2022-10-10 18:11:32 +01:00
aris-kimi f818f3a445 Fix footprint rule and zone area anchors
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/12575
2022-10-06 15:29:18 +00:00
Alex b81a3f0533 GetClampedCoords: Better usability for rounding 2022-08-16 12:08:55 +00:00
Alex 4d7d367b25 Use KiROUND for BBox calculation, change parameter name, block negative padding. 2022-08-16 12:08:55 +00:00
Seth Hillbrand 759e1a64ef Fix broken const ref in wildcard 2022-08-15 12:09:30 -07:00
Seth Hillbrand 35ac39844f Clean up some auto usage
Don't make new copies of shared_ptr if we can use references.  Keep auto
usage down to hard-to-type-out sequences
2022-08-15 11:29:45 -07:00
Jeff Young f076d07e9e Fix asserts. 2022-02-24 18:16:45 +00:00
Jeff Young 85805b95ba Cancel or commit pad edit mode when switching footprints.
Fixes https://gitlab.com/kicad/code/kicad/issues/10209
2022-02-19 19:36:19 +00:00
jean-pierre charras 876061369b Fix some Pcbnew crashes due to null pointers 2022-02-14 13:46:05 +01:00
dsa-t 68655540eb Clamp cursor to limits of coordinates representation
Also improves large distance handling.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/8846
2022-02-11 16:42:52 +00:00
Jeff Young 5739505aa3 TextBoxes for PCBNew. 2022-01-31 20:00:47 +00:00
Jeff Young c8a50d9b50 Remove unit-less angles from VECTOR2I/D APIs. 2022-01-20 23:58:20 +00:00
aris-kimi 47c0672ff3 Added footprint rule area anchors
Fixes https://gitlab.com/kicad/code/kicad/-/issues/10461
2022-01-19 18:25:20 +00:00
Seth Hillbrand ed35f4bfc5 Fix pad snapping in renumber pads
Snap shouldn't be looking for other items in this routine or using the
grid

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

(cherry picked from commit ed9a3deb57)
2022-01-03 19:39:04 -08:00
Marek Roszko c4c56de708 Neurotically update position wxPoint usages 2022-01-01 11:55:51 -05:00
Jeff Young fa908e1f98 Dimensions for footprints.
Fixes https://gitlab.com/kicad/code/kicad/issues/8441
2021-12-24 21:10:28 +00:00
Jeff Young 4b6bf3095a Radial dimensions.
ADDED radial type dimensions.

Fixes https://gitlab.com/kicad/code/kicad/issues/2056
2021-12-23 19:34:54 +00:00
Jeff Young 9b9e379aa0 Overhaul arc internal model to not over-specify information. 2021-10-15 12:45:43 +01:00
jean-pierre charras 3316f3998a Rename BuildPolyPointsList() to DupPolyPointsList() and optimize code
to avoid multiple useless copies of the list of polygon corners in code.
2021-09-11 14:21:36 +02:00
Seth Hillbrand cb917e4c42 Avoid nonsensical intersections
When two segments are approximately parallel, we shouldn't look to find
their intersection.  It will never be the nearest point and it overflows
the KiROUND call

Fixes https://gitlab.com/kicad/code/kicad/issues/8858
2021-07-26 09:02:54 -07:00