kicad/pcbnew/router
Seth Hillbrand ad84b62b63 Prevent multiple single-point line solutions
Suggested by @rivimey, we test the case where both lines return singular
point lines and prevent them leaking into our drag solution

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

(cherry picked from commit 38a4894d92)
2022-01-29 07:07:29 -08: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 Draw pad holes when dragging. 2021-11-27 00:55:09 +00: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 Pass VECTOR2I objects by reference instead of on the stack. 2021-07-27 08:41:27 -04: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 Length Tuner: Allow controlling the side of the meander using the cursor 2021-09-28 18:50:31 +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 Prevent multiple single-point line solutions 2022-01-29 07:07:29 -08: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 Teach router about different keepout rules. 2021-11-27 00:55:04 +00: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 tuning calculations through locked segments 2021-12-05 13:35:28 -05:00
pns_kicad_iface.cpp Finish with EDA_ANGLE. 2022-01-16 21:15:40 +00: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: Don't clip the line in the middle of an arc - just start again 2021-11-21 19:53:03 +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: don't reject non-45 degree lines in the LINE_PLACER 2022-01-22 00:28:11 +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 Fix the last of broken Doxygen comment specifiers. 2021-01-27 17:39:44 -05:00
pns_linked_item.h pcbnew: Adding arcs to PNS 2020-02-21 16:11:41 -08:00
pns_logger.cpp Pass VECTOR2I objects by reference instead of on the stack. 2021-07-27 08:41:27 -04:00
pns_logger.h Pass VECTOR2I objects by reference instead of on the stack. 2021-07-27 08:41:27 -04: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 Length Tuner: Allow controlling the side of the meander using the cursor 2021-09-28 18:50:31 +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 Fix SHAPE_LINE_CHAIN::Slice when end is an arc followed by a point 2021-11-25 10:05:33 -05: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: Set tuned path correctly in skew tuner 2021-07-03 14:06:30 -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 Fix copy-paste error in PNS mouse trail tracer 2021-12-31 00:04:11 +00: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 PNS: Fix tuning calculations through locked segments 2021-12-05 13:35:28 -05:00
pns_node.h PNS: Fix tuning calculations through locked segments 2021-12-05 13:35:28 -05:00
pns_optimizer.cpp Angle cleanup. 2022-01-20 22:35:41 +00: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: added missing case items (fixes regression in component dragging) 2021-12-15 23:18:55 +01: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: use VIA::PushoutForce() for via push force calculation in the shove algorithm 2022-01-13 00:43:27 +01:00
pns_shove.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_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 Don't use approximated shapes for router hulls. 2021-12-01 19:44:30 +00:00
pns_solid.h Finish with EDA_ANGLE. 2022-01-16 21:15:40 +00:00
pns_tool_base.cpp Remove some more duplicated preferences. 2021-12-26 13:37:28 +00:00
pns_tool_base.h Pass VECTOR2I objects by reference instead of on the stack. 2021-07-27 08:41:27 -04: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: fix via force propagation for vias where hole clearance > copper clearance 2022-01-13 00:42:50 +01:00
pns_via.h router: fix via force propagation for vias where hole clearance > copper clearance 2022-01-13 00:42:50 +01:00
pns_walkaround.cpp WALKAROUND::Route Check if path is empty before stepping 2021-08-24 20:17:19 +01:00
pns_walkaround.h A few Coverity fixes. 2020-03-30 09:50:26 +02:00
range.h
ranged_num.h
router_preview_item.cpp Some more EDA_ANGLE cleanup. 2022-01-16 19:16:18 +00:00
router_preview_item.h Don't make inferences about object type based on shape. 2021-12-01 19:44:30 +00:00
router_tool.cpp Angle cleanup. 2022-01-20 22:35:41 +00:00
router_tool.h Added feature to switch between router modes 2021-10-28 22:46:05 +00:00
time_limit.cpp
time_limit.h Cleanup: Replace C-only deprecated headers 2019-12-05 11:03:15 -08:00