Commit Graph

102 Commits

Author SHA1 Message Date
Jeff Young 96f01d33c8 Performance improvements.
1) Move a bunch of std::map's to std::unordered_map to get constant-time
look-ups
2) Lengthen progress-reporting intervals to spend more time doing work
and less time talking about it
3) Reverse order of SHAPE_LINE_CHAINs in thermal intersection checks to
make (much) better use of bbox caches
4) Don't re-generate bboxes we already have
5) Fix some autos that weren't by reference (and were therefore copying
large datasets)
6) Rename delta progressDelta so it's easier to search for in future
7) Get rid of a few more autos (because I don't like them)
8) Pass large items to lambdas by reference

Fixes https://gitlab.com/kicad/code/kicad/issues/12130
2022-08-03 11:59:42 +01:00
Marek Roszko a8505d9c76 SEARCH_RESULT -> INSPECT_RESULT
To fix the name squatting it's doing for future functionality
2022-07-29 20:01:10 -04:00
Jeff Young 97b0005780 More caching for DRC.
Also fixes a bug where some physical clearance tests would be run even
if the clearance was 0 (or if the rule was set to IGNORE).
2022-06-17 23:58:31 +01:00
Jeff Young 5e80e2a421 58f553a9ca requires that cache be layer-sensitive.
Fixes https://gitlab.com/kicad/code/kicad/issues/11814
2022-06-15 00:30:11 +01:00
Seth Hillbrand f0e4448a9d Remove broken call to normalize outlines
We should never be editing the user's outlines for them.  This creates
broken zones that are hard to repair.  In this case, there was also a
secondary zone with no outline that would crash the system

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

(cherry picked from commit f0d7a09af9)
2022-02-18 09:31:52 -08:00
jean-pierre charras 2fddc9daf3 Pcbnew: fix missing connectivity update when adding an item.
Skipping connectivity update when adding an item is possible only when loading a file
Fixes #10879
https://gitlab.com/kicad/code/kicad/issues/10879
2022-02-18 13:24:14 +01:00
Jeff Young d8c4f2cb09 Performance improvements for zone filler. 2022-02-15 19:19:02 +00:00
Jeff Young 5c9e718407 Performance enhancements for connectivity.
1) Generate SHAPE_POLY_SET triangulation by outline so they can be
shared between connectivity system and other clients.
2) Don't add items to connectivity when reading board; we're going
to do a total rebuild anyway.
3) Use multithreading when caching triangulation.
2022-02-15 12:20:34 +00:00
Marek Roszko ac715d2e51 Scoop up some more wxPoint instances 2022-01-03 20:00:53 -05:00
Marek Roszko c91d3e3cf9 Remove some more wxPoint 2022-01-01 14:12:20 -05:00
Marek Roszko c4c56de708 Neurotically update position wxPoint usages 2022-01-01 11:55:51 -05:00
Marek Roszko 347e03363a Convert wxPoint/wxSize starting from EDA_RECT usages 2022-01-01 11:30:33 -05:00
Jeff Young ef10b36948 Add mask-to-copper clearance parameter and rename mask margin. 2021-12-24 12:36:41 +00:00
Jeff Young a48867ea01 Solder mask integrity testing.
ADDED DRC test for solder mask aperture bridging copper from different
nets.
ADDED visualization of minimum web width processing for solder masks.
ADDED allow_soldermask_bridges property for footprints.

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

Fixes https://gitlab.com/kicad/code/kicad/issues/1792
2021-12-23 22:31:14 +00:00
Jon Evans 8026863d4c Use progress reporting in more places when loading a board
Prevents application-not-responding events while opening large designs
2021-11-25 11:19:03 -05:00
Jeff Young a41944020d Push most of PCB_SHAPE impl down in to EDA_SHAPE. 2021-10-15 12:45:43 +01:00
Jeff Young fac48ddafb Don't include stale nets in net counts.
Fixes bug reported by Franck.
2021-09-28 14:28:12 +01:00
Jeff Young 1a252b4f96 Add a compile error for ill-defined rules, and more performance.
Also adds const-safety to GetBoard().
2021-08-16 12:14:17 +01:00
Jeff Young f34e280c81 Garden-variety 100X performance improvement.
Adds a compile mode for layer strings.
2021-08-15 22:24:51 +01:00
Jeff Young f221220fe2 Rename layer ids file.
It hasn't had anything to do with colors or visibility for some time
now.
2021-07-29 16:03:25 +01:00
Jeff Young 70ac70f360 Don't attempt to round-trip netnames through wxListBox.
Fixes https://gitlab.com/kicad/code/kicad/issues/8684
2021-06-27 12:02:21 +01:00
Jeff Young 096e342386 Prefix TRACK, ARC and VIA. 2021-06-11 22:07:02 +01:00
Jeff Young 2aaec31832 Don't put up "old version" warning for gerbview-generated PCBs.
Fixes https://gitlab.com/kicad/code/kicad/issues/8574
2021-06-08 22:12:44 +01:00
Marek Roszko 66640f6144 Try and fix fedora build 2021-06-06 15:30:42 -04:00
Marek Roszko 10e60acf34 Clean up including of board_design_settings.h 2021-06-06 15:03:42 -04:00
Wayne Stambaugh c69c68a558 Pcbnew header housekeeping round 2. 2021-06-04 12:21:48 -04:00
Wayne Stambaugh 2a6c7a7c0f Pcbnew header housekeeping round 1. 2021-06-04 09:08:38 -04:00
Ian McInerney 4f05262705 Cleanup includes in board.h and footprint.h 2021-06-03 20:19:52 +01:00
Ian McInerney 23f8851409 Remove pcb_group include from board header 2021-06-03 20:03:31 +01:00
Jeff Young ce46fe6581 Add insideFrontCourtyard and insideBackCourtyard DRC functions.
Fixes https://gitlab.com/kicad/code/kicad/issues/7972
2021-03-20 21:53:30 +00:00
Dominik Wernberger e2aa7be4b3 Added a lot of consts and refactored a few lines 2021-03-08 12:49:48 -08:00
Jeff Young 3538c8a963 Thread safety for new caches (which are also used during zone fill).
Fixes https://gitlab.com/kicad/code/kicad/issues/7749
2021-02-27 21:33:30 +00:00
Jeff Young 4ede4e061e More DRC performance work.
Push DRC zone RTrees into BOARD so that they can also be used by
insideArea.

All these caches are a bit of an encapsulation leak, but they make a
significant impact on performance.

Fixes https://gitlab.com/kicad/code/kicad/issues/7720
2021-02-27 11:45:04 +00:00
Jeff Young f226373324 Add cache for insideArea() and insideCourtyard().
Fixes https://gitlab.com/kicad/code/kicad/issues/7720
2021-02-26 19:22:25 +00:00
Jeff Young 86aaa2e9cb Rationalize footprint bounding boxes and cache all of them.
Fixes https://gitlab.com/kicad/code/kicad/issues/7720
2021-02-26 13:50:27 +00:00
Seth Hillbrand 2013a801d1 Fix zone merge undo
Also remove an implicit zone merge that was happening when the user
edited the zone parameters.  This appears to have been a feature but it
happened without a) telling the user and b) having the option to prevent
it.

Fixes https://gitlab.com/kicad/code/kicad/issues/7661
2021-02-22 15:45:17 -08:00
Dominik Wernberger ac94d72d2d Add more const specifiers 2021-01-12 20:51:31 +00:00
Jeff Young efd16dca66 Fix a bunch of issues with group selection and highlighting.
Fixes https://gitlab.com/kicad/code/kicad/issues/6686
2020-12-29 12:41:24 +00:00
Jeff Young 2f087dfa1b Fix crash bug trying to delete zone from list twice.
Fixes https://gitlab.com/kicad/code/kicad/issues/6815
2020-12-23 14:24:35 +00:00
Jeff Young acfbcb4beb Make distinction between PCBNew-wide tools and Board-specific tools.
The old names were really hard to keep straight (even for me, who named
many of them).
2020-12-16 13:32:46 +00:00
Marek Roszko e88d41f764 Add bulk add/remove mode flag to the BOARD_LISTENER
This attempts to fix performance when importing large changesets from schematics.
The appearance control is a BOARD_LISTENER that would otherwise redraw per item imported which may cause lockups
2020-12-07 22:04:13 -05:00
Jeff Young 1391774f64 Re-factor boundary/courtyard checker error handling.
ADDED Footprint Checker dialog to display the results in.

Fixes https://gitlab.com/kicad/code/kicad/issues/6446
2020-11-21 20:57:35 +00:00
Jeff Young b123318cf6 Encourage use of full DRC for board & footprint malformed outlines.
It shows much more detail.  Removes some nag dialogs and places
hypertext links in others.

Also fixes the auto-layer-showing to correctly show Edge.Cuts or
F.CrtYd or B.CrtYd for errors relating to them.

Fixes https://gitlab.com/kicad/code/kicad/issues/6446
2020-11-20 17:24:52 +00:00
Jeff Young 0d850f98cd Cleanup. 2020-11-19 22:48:18 +00:00
Jeff Young 18ad58cf4c Replace legacy copper edge heuristics.
Fixes https://gitlab.com/kicad/code/kicad/issues/6435
2020-11-19 13:35:26 +00:00
Jeff Young 7bd31d5237 Naming conventions. 2020-11-14 18:26:03 +00:00
Jeff Young 8bae52d1c3 Correct naming conventions. 2020-11-14 14:29:11 +00:00
Jeff Young bdbb68f813 MODULE -> FOOTPRINT. 2020-11-13 16:04:03 +00:00
Jeff Young 63a54d003e More module -> footprint. 2020-11-13 15:16:24 +00:00
Jeff Young 52a46341db More module -> footprint. 2020-11-13 15:16:24 +00:00
Jeff Young f5443de7f9 D_PAD -> PAD. 2020-11-13 15:16:24 +00:00
Jeff Young 84dd5108ba Remove some "class_" prefixes from files. 2020-11-13 15:16:23 +00:00
Renamed from pcbnew/class_board.h (Browse further)