Tomasz Wlostowski
4574f52eac
router: DRAGGER::CurrentNode() should always return non-null value
2021-02-25 17:18:23 +01:00
Tomasz Wlostowski
a4bd2ad8c6
router: drag in walkaround mode now works
2021-02-25 17:18:23 +01:00
Tomasz Wlostowski
0306d16748
router: make post-drag optimization less intrusive
...
Fixes : #5918
2021-02-25 17:18:23 +01:00
Jeff Young
42c114f6ed
Record status of via dragging in Walkaround mode.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/3967
2021-01-02 00:31:02 +00:00
Jon Evans
be294dabce
PNS: Snap back to last valid point when committing a drag
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6651
2020-12-28 16:36:42 -05:00
Jon Evans
3c87e67753
PNS: Allow committing routes even when cursor moves beyond valid solution
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6651
2020-12-27 17:14:38 -05:00
Jeff Young
9c7c05c161
Mostly formatting cleanup but a few type-casting cleanups too.
2020-11-24 22:16:41 +00:00
Tomasz Wlostowski
9bef95418e
router: wip on less intrusive dragged trace optimization
2020-10-09 00:01:26 +02:00
Tomasz Wlostowski
85aecc15ee
router: fix mistake in 45/free-angle mode selection when dragging corners
2020-07-29 23:14:03 +02:00
Tomasz Wlostowski
fd07e94760
router: abstract segment links into a LINK_HOLDER interface. DIFF_PAIRS are now also linkable
2020-07-22 17:04:42 +02:00
Seth Hillbrand
b0d9838fb4
PNS: Correct assertion when dragging
...
Dragging using highlight caused an assertion as the duplicated lines
were being re-added with their old links still inplace. While this was
probably fine as the link references shouldn't be stale, we clear them
to allow for the possibibility that the dragger will adjust the links in
the future.
2020-03-05 08:47:06 -08:00
Tomasz Wlostowski
b6e059f018
router: use a common base class for all dragging algorithms
2020-02-28 23:17:15 +01:00
Seth Hillbrand
7cb3ed456e
PNS: No free-angle drag at the moment.
...
Fixes #3954 | https://gitlab.com/kicad/code/kicad/issues/3954
2020-02-28 12:43:59 -08:00
Tomasz Wlostowski
f77d2f8cb8
router: option to enable optimization of the track being dragged
2020-02-27 22:02:56 +01:00
Tomasz Wlostowski
4525a17076
router: backspace key to undo last fixed segment(s)
2020-02-27 22:02:56 +01:00
Tomasz Wlostowski
8ddeb966ca
pns: drag wip on walkaround via mode
2020-02-27 22:02:56 +01:00
Tomasz Wlostowski
53c3f95ac4
router: initial attempt at walkaround mode for dragger
2020-02-27 22:02:56 +01:00
Tomasz Wlostowski
c0314dbb29
router: dragger can now optimize also the segment being dragged
2020-02-27 22:02:56 +01:00
Tomasz Wlostowski
dbe90e163e
router: use one global logger object
2020-02-27 22:02:56 +01:00
Seth Hillbrand
8c19b4b6ae
pcbnew: Adding arcs to PNS
...
This is allows ARCs in tracks to be synchronized with
the PNS router. Note this does not yet include the UI components
to route curved traces
2020-02-21 16:11:41 -08:00
Seth Hillbrand
4135f0c0e7
pcbnew: Don't duplicate tracks
...
Dragging in freeangle mode can be forced, in which case, we don't want
the extra line from the SHOVE element.
Fixes: lp:1845844
* https://bugs.launchpad.net/kicad/+bug/1845844
2019-10-30 10:44:33 -07:00
Seth Hillbrand
619c78622e
pcbnew: Initialize drag and clear links
...
Drag is used for multiple modes so should be initialized when starting.
The line that we generate however needs to be pristine in drag, so we
clear the links in the duplicate.
Fixes: lp:1839612
* https://bugs.launchpad.net/kicad/+bug/1839612
2019-08-12 15:32:16 -07:00
Tomasz Włostowski
726bceecfd
router: springback now works for dragging vias in shove mode
...
Fixes: lp:1837766
* https://bugs.launchpad.net/kicad/+bug/1837766
2019-08-07 23:49:57 +02:00
Seth Hillbrand
317ca8e64d
pcbnew: Do not allow drag to violate DRC without permission
...
m_dragstatus is set to true when a valid route is created given the
user's constraints. We need to check this before committing the route
to the board.
Fixes: lp:1794810
* https://bugs.launchpad.net/kicad/+bug/1794810
2018-09-27 13:08:22 -07:00
Maciej Suminski
2b46bda2f2
PNS router: apply the last stable state after dragging
...
Previously, dragging changes were applied only if the last cursor move
finished with a successful drag operation. It made items squeezing
difficult, as it required accurate cursor movement to apply the changes.
2018-05-08 11:50:37 +02:00
Maciej Suminski
5eb56dd8b0
Coverity fixes
...
CIDs:
102571
168696
168701
168704
168706
168708
168710
168713
168716
168717
2017-11-01 10:24:26 +01:00
Tomasz Włostowski
aeac415599
router: hopefully a proper fix for the dragging issue
2017-08-22 19:33:38 +02:00
Tomasz Włostowski
2d9ab80b4e
Few improvements to the GAL router:
...
- missing 'break track' functionality
- 'drag 45 degree' and 'drag free angle' context menu shorcuts, both in the router tool and in the default context menu
- bugfix: length tuner tool can now be used again
Fixes: lp:1708386
* https://bugs.launchpad.net/kicad/+bug/1708386
Fixes: lp:1708402
* https://bugs.launchpad.net/kicad/+bug/1708402
2017-08-07 14:28:46 +02:00
decimad
94aaa47583
Add Remove overloads for specific item types, split removal into index-handling and lifetime-handling (not 100% correct yet, since the index is defactor lifetime-owner, it will be later.)
2016-09-06 16:06:06 +02:00
decimad
96a3145543
use unique_ptr at client <-> pns-router border, to document the pns router is taking ownership
...
add overloads for NODE::Add( ... ) taking pointers to specific item types (retain old private add-Functions, they will come in handy later)
LINE overloads now take by reference, to document their special treatment.
updated code throughout affected by these changes
2016-09-06 16:06:06 +02:00
decimad
6c749e0ba8
Remove PNS_ prefix from most types inside namespace PNS
2016-09-06 16:06:06 +02:00
decimad
4cf44d9725
Rename pns item kind constants in preparation for renaming pns classes
2016-09-06 16:06:06 +02:00
decimad
de6281e977
Move PNS router code into namespace PNS
...
update copyright messages
2016-09-06 16:06:06 +02:00
Maciej Suminski
ca499b80e1
Fixed wxLogTrace() calls in PNS
...
Fixes: lp:1616702
* https://bugs.launchpad.net/kicad/+bug/1616702
2016-08-25 09:24:55 +02:00
Maciej Suminski
78050c05e2
Changed PNS logging routine to wxLogTrace
2016-08-17 16:00:21 +02:00
Tomasz Wlostowski
456c02c800
router: multiple fixes - fixed crash when trying to drag a locked via - prompt when the user attempts to drag a locked via/segment - removed remains of PICKED_ITEMS_LIST from the PNS_ROUTER class
2016-08-15 17:16:50 +02:00
Simon Richter
1b2fd6a382
Replace BOOST_FOREACH with C++11 range based for.
2016-06-29 16:07:55 -04:00
Maciej Suminski
2607497b37
Code formatting.
2015-10-05 18:28:41 +02:00
Tomasz Wlostowski
95c59c8060
router: multiple fixes:
...
- PNS_ITEMSET now keeps ownership info (does not rely on PNS_ITEM::Owner(), avoiding the risk of dangling pointers)
- fixed vias losing connected traces when dragging in mark obstacles mode
- fixed rare segfault when board item returned null netclass
2015-08-19 17:27:23 +02:00
Tomasz Wlostowski
86b07d89a7
PNS: fixed crash on via dragging
2015-08-04 11:37:16 +02:00
Maciej Suminski
0fbf31ef38
P&S: memory mgr & disappearing trace fixes. Still a bit buggy, though...
2015-08-03 21:11:51 +02:00
Maciej Suminski
721949b50e
Fix memory leak in pns_node and pns_line_placer. Fix coverity uninitialized warnings.
2015-03-10 15:38:27 +01:00
Maciej Suminski
9245b90392
Code formatting.
2014-11-14 20:19:00 +01:00
Tomasz Wlostowski
80adf9d85b
router: multiple changes
...
- re-worked PNS_LINE_PLACER and PNS_ROUTER classes a bit, removing duplicate class members
- cleaned up Andrew's blind/buried via fixes
- fixed 'custom via width' dialog bug updating the width even when closed/cancelled
- fixed incorrect radius of drawn microvias
2014-11-14 19:15:58 +01:00
Maciej Suminski
ad1b138f28
Reformatted PNS code to conform the coding policy.
2014-05-16 13:37:31 +02:00
Tomasz Włostowski
061660e9e4
Long-awaited new version of the P&S router
2014-05-14 15:53:54 +02:00