kicad/pcbnew/router
Tomasz Wlostowski 2a0accd184 router: shove algorithm now considers cases where a small via sits 'inside' a fanout of wide (width > via diameter) segments.
The shove algorithm can't move the loose track ends. It always needs a via. In case of wide segments stitched with
a small via, the collision search finds only colliding segments and does not consider the via. This leads to frequent shove falilures
or 'choppy' behaviour when the head line only slightly overlaps with an end of a thick trace. This patch attempts at improving this behaviour
by considering the 'tiny via in wide segment' case explicitly.
2022-06-03 23:28:41 +02:00
..
CMakeLists.txt router: factor out POSTURE_SOLVER to more generic MOUSE_TRAIL_TRACER class 2021-02-25 17:18:23 +01:00
length_tuner_tool.cpp Fix ordering of initialization in length tuner 2021-09-14 07:48:02 -04:00
length_tuner_tool.h Add length tuner settings to toolbar context menu 2021-05-12 02:34:52 +00:00
pns_algo_base.cpp More NULL expunging. 2021-07-20 07:27:18 -04:00
pns_algo_base.h router: expose current view area to the router algorithms so that the optimizer could know not to mess with traces/vias not currently visible to the user (wip) 2021-02-25 17:18:23 +01:00
pns_arc.cpp Trim includes (and use consistent terminology in error messages). 2021-03-21 20:15:47 +00:00
pns_arc.h PNS: Pick up segments directly between pads when dragging components 2021-07-03 19:50:04 -04:00
pns_component_dragger.cpp router: rework the DEBUG_DECORATOR a bit: 2022-03-03 01:02:00 +01:00
pns_component_dragger.h PNS: Pick up segments directly between pads when dragging components 2021-07-03 19:50:04 -04:00
pns_debug_decorator.h router: rework the DEBUG_DECORATOR a bit: 2022-03-03 01:02:00 +01:00
pns_diff_pair.cpp Fix success conditions in DP placer 2021-12-12 13:05:38 -05:00
pns_diff_pair.h More NULL expunging. 2021-07-20 07:27:18 -04:00
pns_diff_pair_placer.cpp Fix success conditions in DP placer 2021-12-12 13:05:38 -05:00
pns_diff_pair_placer.h Allow changing router mode while routing 2021-10-12 09:55:34 -07:00
pns_dp_meander_placer.cpp router: rework the DEBUG_DECORATOR a bit: 2022-03-03 01:02:00 +01:00
pns_dp_meander_placer.h Fix the last of broken Doxygen comment specifiers. 2021-01-27 17:39:44 -05:00
pns_drag_algo.h Formatting. 2021-01-04 19:19:55 +00:00
pns_dragger.cpp router: rework the DEBUG_DECORATOR a bit: 2022-03-03 01:02:00 +01:00
pns_dragger.h router: support for drag/walkaround/shove for joints between lines of different widths. 2021-06-03 22:44:53 +02:00
pns_index.cpp More NULL expunging. 2021-07-20 07:27:18 -04:00
pns_index.h Rename layer ids file. 2021-07-29 16:03:25 +01:00
pns_item.cpp router: enable Hole Clearance rule only in Mark Obstacles mode 2022-06-03 23:28:40 +02:00
pns_item.h Don't hide original object when highlight is only part of it. 2021-11-25 23:42:13 +00:00
pns_itemset.cpp PNS: fix some weirdness identified by PVS 2021-04-07 23:16:56 -04:00
pns_itemset.h More NULL expunging. 2021-07-20 07:27:18 -04:00
pns_joint.h [PNS] Fix invalid assumption in IsLineCorner 2022-05-31 20:24:54 -04:00
pns_kicad_iface.cpp router: use SHAPEs and PNS::ITEMs only in the ROUTER_PREVIEW_ITEM 2022-06-03 23:28:40 +02:00
pns_kicad_iface.h Remove some more duplicated preferences. 2021-12-26 13:37:28 +00:00
pns_layerset.h Fix the last of broken Doxygen comment specifiers. 2021-01-27 17:39:44 -05:00
pns_line.cpp PNS: Fix off-by-one in dragCornerInternal 2022-06-01 21:13:05 +00:00
pns_line.h PNS: Fix dragging of segments with arcs in line 2021-04-11 10:18:57 -04:00
pns_line_placer.cpp router: rework the DEBUG_DECORATOR a bit: 2022-03-03 01:02:00 +01:00
pns_line_placer.h router: fix use-after-free crash in single trace shove routing when m_endItem's owning NODE is erased by the springback algorithm. 2021-12-15 01:33:05 +01:00
pns_link_holder.h More wide-string declarations. 2022-02-05 22:03:04 +00:00
pns_linked_item.h
pns_logger.cpp More wide-string declarations. 2022-02-05 22:03:04 +00:00
pns_logger.h router: default values for LOGGER::Log() 2022-06-03 23:28:40 +02:00
pns_meander.cpp Angle cleanup. 2022-01-20 22:35:41 +00:00
pns_meander.h Angle cleanup. 2022-01-20 22:35:41 +00:00
pns_meander_placer.cpp router: rework the DEBUG_DECORATOR a bit: 2022-03-03 01:02:00 +01:00
pns_meander_placer.h Trim includes (and use consistent terminology in error messages). 2021-03-21 20:15:47 +00:00
pns_meander_placer_base.cpp More wide-string declarations. 2022-02-05 22:03:04 +00:00
pns_meander_placer_base.h Meander minimum spacing can be equal to track width + minimum clearance 2021-06-29 19:30:01 +01:00
pns_meander_skew_placer.cpp PNS: Fix skew calculation with pad-to-die specified 2022-05-31 20:24:54 -04:00
pns_meander_skew_placer.h PNS: Account for via stack height in diff pair length tuner 2021-04-20 19:31:10 -04:00
pns_mouse_trail_tracer.cpp router: rework the DEBUG_DECORATOR a bit: 2022-03-03 01:02:00 +01:00
pns_mouse_trail_tracer.h Trim includes (and use consistent terminology in error messages). 2021-03-21 20:15:47 +00:00
pns_node.cpp router: enable Hole Clearance rule only in Mark Obstacles mode 2022-06-03 23:28:40 +02:00
pns_node.h router: shove algorithm now considers cases where a small via sits 'inside' a fanout of wide (width > via diameter) segments. 2022-06-03 23:28:41 +02:00
pns_optimizer.cpp router: rework the DEBUG_DECORATOR a bit: 2022-03-03 01:02:00 +01:00
pns_optimizer.h Pass VECTOR2I objects by reference instead of on the stack. 2021-07-27 08:41:27 -04:00
pns_placement_algo.h Fix source comment / documentation typos 2021-06-09 19:32:58 +00:00
pns_router.cpp router: log via toggle events 2022-06-03 23:28:40 +02:00
pns_router.h router: when dragging segments, don't snap to other segments on the same layer. Fixes drag flickering for short segments. 2021-12-15 01:48:04 +01:00
pns_routing_settings.cpp PNS: Add support for 90-degree corner modes 2021-11-03 02:14:23 +00:00
pns_routing_settings.h Remove RM_Smart state from router tool 2021-12-01 09:52:37 +00:00
pns_segment.h Repair ARC copy constructor. 2020-11-01 00:10:08 +00:00
pns_shove.cpp router: shove algorithm now considers cases where a small via sits 'inside' a fanout of wide (width > via diameter) segments. 2022-06-03 23:28:41 +02:00
pns_shove.h router: shove algorithm now considers cases where a small via sits 'inside' a fanout of wide (width > via diameter) segments. 2022-06-03 23:28:41 +02:00
pns_sizes_settings.cpp Honour pre-defined-size selections for diff pairs. 2021-03-02 12:12:05 +00:00
pns_sizes_settings.h Add feedback showing current router state to the message panel 2021-07-03 13:21:51 -04:00
pns_solid.cpp More wide-string declarations. 2022-02-05 22:03:04 +00:00
pns_solid.h Finish with EDA_ANGLE. 2022-01-16 21:15:40 +00:00
pns_tool_base.cpp Honour prime-event-location when starting router. 2022-03-29 13:44:40 +01:00
pns_tool_base.h Improve SNR. 2022-02-12 18:38:11 +00:00
pns_topology.cpp PNS: Fix tuning calculations through locked segments 2021-12-05 13:35:28 -05:00
pns_topology.h PNS: Fix tuning calculations through locked segments 2021-12-05 13:35:28 -05:00
pns_tune_status_popup.cpp Better colors for length tuning popup in dark mode 2021-04-04 20:33:59 -04:00
pns_tune_status_popup.h Trim includes (and use consistent terminology in error messages). 2021-03-21 20:15:47 +00:00
pns_utils.cpp router: include arc approximation tollerance in arc hull clearance calculation 2022-01-22 00:28:11 +01:00
pns_utils.h router: P&S-specific hull/line interection function that correctly rejects segments/vertices that only touch the hull polygons without penetrating them 2021-05-29 00:13:24 +02:00
pns_via.cpp router: enable Hole Clearance rule only in Mark Obstacles mode 2022-06-03 23:28:40 +02:00
pns_via.h Fix some Coverity uninitialized scalar variable issues. 2022-03-24 13:17:07 -04:00
pns_walkaround.cpp router: rework the DEBUG_DECORATOR a bit: 2022-03-03 01:02:00 +01:00
pns_walkaround.h
range.h
ranged_num.h
router_preview_item.cpp router: use SHAPEs and PNS::ITEMs only in the ROUTER_PREVIEW_ITEM 2022-06-03 23:28:40 +02:00
router_preview_item.h router: use SHAPEs and PNS::ITEMs only in the ROUTER_PREVIEW_ITEM 2022-06-03 23:28:40 +02:00
router_tool.cpp Don't copy modifiers to prime events. 2022-05-16 13:51:40 +01:00
router_tool.h Use router to update message panel when routing. 2022-02-20 16:50:30 +00:00
time_limit.cpp
time_limit.h