Seth Hillbrand
fb5cd22cd0
Honor locking in cleanup ops
...
Assume that the user has locked tracks/vias for a reason and would very
much like them to remain in place, regardless of the operation
Fixes https://gitlab.com/kicad/code/kicad/issues/7562
2021-02-16 10:20:45 -08:00
Seth Hillbrand
1e96374715
Consider tracks and vias together
...
Dangling tracks and vias affect each other and need to be considered at
the same time in order to fully remove the dangling segments
2021-01-08 09:35:58 -08:00
Jeff Young
f5443de7f9
D_PAD -> PAD.
2020-11-13 15:16:24 +00:00
Jeff Young
ae9afdd169
SNR. (Mostly for progammers, but a little for user messages.)
2020-11-02 16:20:00 +00:00
Jeff Young
c351b3c31f
Naming conventions.
2020-11-01 14:12:35 +00:00
Jeff Young
1a1aef756e
Reporting "actual" incompatible with exiting after first hit.
...
But we're currently using this only as a rough collision check
anyway as it doesn't know the specific item-to-item clearance.
2020-10-31 15:45:41 +00:00
Jeff Young
c44855a647
More performance enhancements for Cleanup Tracks and Vias.
2020-10-27 22:46:19 +00:00
Ian McInerney
31e626f279
Cleanup creation of all our smart pointers
2020-10-26 23:52:44 +00:00
Jeff Young
2e94be0855
Move geometric parts of Cleanup Tracks and Vias to RTree.
...
Removes two separate O(n^2) traverses over the tracks.
Fixes https://gitlab.com/kicad/code/kicad/issues/6077
2020-10-26 18:37:59 +00:00
Jeff Young
ce5fbb0c58
Small performance boost and fix a bug between tracks and arcs.
2020-10-26 15:36:07 +00: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
Seth Hillbrand
8fcb6c6f05
Exit fix loop in cleanup tracks
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5968
2020-10-11 08:00:51 -07:00
jean-pierre charras
8285110c2a
more cleanup about removing useless include
2020-10-02 08:58:19 +02:00
Jeff Young
01bf395cc2
Make via cleaning options clearer.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5253
2020-08-19 11:56:28 +01:00
Tomasz Wlostowski
ae5eab1d85
TRACKS_CLEANER: post-rebase fixes
2020-08-13 14:50:59 +02:00
Tomasz Wlostowski
d937fadd6f
Migrate RC_ITEM to use shared_ptr
2020-08-13 14:50:59 +02:00
Jeff Young
393bb0fd83
Fix assert where geometry routine wasn't ready to handle layers.
...
This introduces layer handling to a lot of the geometry routines.
Many of them don't do much with it now, but it does help multi-layer
zones and will help when padstacks are implemented.
2020-08-12 22:20:08 +01:00
Jeff Young
ea1be41ff0
Only clean up tracks completely inside pads.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5093
2020-08-06 21:53:28 +01:00
Seth Hillbrand
4a79d1be56
Track cleaner should not remove vias from pads
...
Vias are stored in the board tracks list, so we need to skip them when
testing if the start/end points are both in pads
Fixes https://gitlab.com/kicad/code/kicad/issues/5086
2020-08-05 13:24:14 -07:00
Seth Hillbrand
8a0be64ad4
Ensure dangling test takes track width into account
...
When running a hit test to check if the anchors are connected, we should
loosen the check for tracks to account for the width. Otherwise
connected anchors can be connected in the system but test positive for
IsDangling()
Fixes https://gitlab.com/kicad/code/kicad/issues/5027
2020-08-05 13:17:29 -07:00
Seth Hillbrand
d7a1a4f822
Try harder to merge colinear tracks
...
Each time we iterator through the tracks list to merge, we change the
connectivity system and can leave possible merges. By iterating, we
keep merging until we cannot anymore.
Fixes https://gitlab.com/kicad/code/kicad/issues/5020
2020-07-30 23:04:38 -07:00
Seth Hillbrand
51d7fea934
Separate Cleanup Via from Cleanup Track
...
There are cases where you will want to keep vias that only connect to
one layer but still want to cleanup tracks. As distinct entities, they
are given their own checkboxes and actions
Fixes https://gitlab.com/kicad/code/kicad/issues/5019
2020-07-30 21:22:33 -07:00
Jeff Young
32c3ea4edd
Flags cleanup.
...
Remove extraneous use of FLAG0 from tracks cleaner (it was checked but
never set).
Fix issue in expand connections where two parts of it couldn't agree
on the same flag (BUSY vs SKIP_STRUCT), and where the second part was
clearing the flag instead of setting it.
Remove obsolete HIGHLIGHT infrastructure (we now use selection).
Remove extraneous use of BUSY flag in several places (it was never
set).
2020-06-27 17:53:04 +01:00
Jeff Young
a7703d1207
Cleanup Graphics to parallel Cleanup Tracks & Vias.
...
This also allows for easier migration to DRAWSEGMENT::S_RECTs by
auto-converting 4 rectilinear lines to a rectangle.
2020-06-17 18:44:39 +01:00
Seth Hillbrand
e7dfa91525
pcbnew: Use duplicate structure to allow deleting
...
Removing items from the structure will invalidate the iterators so we
need to either stage the deletions or keep a duplicate structure for the
iteration.
Fixes https://gitlab.com/kicad/code/kicad/issues/4257
2020-06-04 10:44:36 -07:00
Jeff Young
05855a5a1c
Performance enhancements for DRC.
2020-05-18 13:38:17 +01:00
Jeff Young
aedc624340
Add DRC checks for dangling vias and tracks.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/1999
2020-05-14 22:02:47 +01:00
Jeff Young
1535c83b88
Lay some groundwork for adding distances to DRC errors.
...
modified: eeschema/lib_rectangle.cpp
2020-04-24 14:46:22 +01:00
Jeff Young
cee973dc04
Move ERC error reporting over to the new framework.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/1989
2020-03-16 11:06:15 +00:00
Mark Roszko
11ff16be4e
Switch to scoped enums
2019-12-20 14:11:39 +00:00
Jeff Young
a5a237ac32
Improve readability of flag checking.
2019-08-27 19:23:07 +01:00
jean-pierre charras
bcf690f901
TRACKS_CLEANER algo to merge collinear track segments: some minor fixes.
2019-06-29 09:12:19 +02:00
jean-pierre charras
c9ccd8a642
Fix broken TRACKS_CLEANER algo to merge collinear track segments.
2019-06-28 20:23:09 +02:00
jean-pierre charras
71aafb6eb3
Pcbnew, connectivity: fix incorrect detection of dangling track ends when a end is inside a zone.
...
This end was not detected as connected by the IsDangling method.
Fix incorrect cleaning of dangling tracks in track cleaner.
Remove also a dead code.
The merge co-linear track segments is still full bugged in track cleaner.
2019-06-28 15:25:50 +02:00
Tomasz Włostowski
be42b80713
TRACKS_CLEANER: restart dangling track removal loop every time an item is removed
...
Fixes: lp:1823973
* https://bugs.launchpad.net/kicad/+bug/1823973
2019-06-25 21:40:30 +02:00
Jeff Young
bb96255a03
Fix dangerous static_cast-ing to wrong type.
2019-06-10 23:46:01 +01:00
Jeff Young
3912c7407f
Move global commands to ACTIONs.
...
Also fixes a crash bug opening Edit Tracks and Vias dialog.
2019-06-03 21:08:30 +01:00
Seth Hillbrand
3fb8963536
pcbnew: Cleanup tracks and vias rework
...
Fixes a few commit issues based on the std:: rework. Add an option to
delete tracks fully in pads and makes merge tracks smarter
Fixes: lp:1787190
* https://bugs.launchpad.net/kicad/+bug/1787190
2019-06-01 09:53:23 -07:00
Seth Hillbrand
888c01d11b
pcbnew: Move tracks to std::deque
2019-06-01 09:53:23 -07:00
Jeff Young
c2662b0e11
Retire EDA_DRAW_PANEL and legacy_wx/EDA_DRAW_FRAME.
2019-05-31 21:55:30 +01:00
Jeff Young
d6e9bdf07b
Convert remaining legacy drawing code to print code.
2019-05-31 21:54:22 +01:00
Jeff Young
03bab2f4a9
Remove some more legacy drawing stuff.
2019-05-31 21:54:22 +01:00
Jeff Young
1e9da7f57b
Remove CurItem() architecture and legacy routers and drawing code.
2019-05-29 00:26:30 +01:00
Jeff Young
a461eae8b9
Fix 100s of usages of GetFlags() which conflated != 0 with being edited.
...
While this was true long ago, many flags have been added since which
have nothing to do with editing (HIGHLIGHTED, BEGIN_ONPAD, etc.)
2019-04-22 09:58:06 +01:00
Jeff Young
87f303319c
Implement a dry run for Cleanup Tracks and Vias.
...
Uses the DRC architecture to support inspection of the changes to
be made (right click on items, hover over them in the menu to
highlight them on the board).
Fixes: lp:1571305
* https://bugs.launchpad.net/kicad/+bug/1571305
Fixes: lp:1809474
* https://bugs.launchpad.net/kicad/+bug/1809474
2019-04-05 18:52:51 +01:00
jean-pierre charras
303b7ac7f8
Pcbnew: fix delete dangling tracks only removes the last segment of tracks.
...
Fixes: lp:1816234
https://bugs.launchpad.net/kicad/+bug/1816234
2019-02-16 16:05:29 +01:00
Seth Hillbrand
4460313104
pcbnew: Separating connectivity to subdir
2018-10-12 16:31:09 -07:00
Seth Hillbrand
4e06494105
pcbnew: Fix minor bug in tracks cleaner
...
Allow rebuild of track connection info when modified is true.
2018-10-09 05:43:26 -07:00
John Beard
16411c8c1e
Fix -Wparentheses in track_cleaner.cpp
...
Changes "wxBusyCursor( dummy );" to just "wxBusyCursor dummy;"
Fixes warning: ../pcbnew/tracks_cleaner.cpp:155:17:
warning: unnecessary parentheses in declaration of ‘dummy’ [-Wparentheses]
wxBusyCursor( dummy )
2018-06-12 14:23:59 +02:00
jean-pierre charras
c7bc154045
Track cleaner: make option "Delete dangling tracks" working again.
2018-02-04 15:05:31 +01:00