kicad/pcbnew/router
Seth Hillbrand c4fff95078 PNS: Detect collisions including newline width
The new line collision search uses BBox() to check for colliding
objects.  BBox in the SHAPE_LINE_CHAIN did not include width as the
chains were assumed to be zero-width.  This is not the case for
PNS::LINE elements.

We mostly don't notice this because DRC checks for SEGMENT collisions
but it becomes obvious/annoying when we cannot place a track for unknown
reasons and the snap-back doesn't take line width into account.

Fixes #3776 | https://gitlab.com/kicad/code/kicad/issues/3776
2020-01-17 11:23:08 -08:00
..
CMakeLists.txt router: copy m_maxClearance when cloning/branching PNS::NODEs 2019-04-23 12:00:54 +02:00
length_tuner_tool.cpp P&S router: length tuning tool: fix a crash after trying to tune a track. 2019-12-12 09:39:51 +01:00
length_tuner_tool.h Immediate actions for PlEditor, PcbNew, etc. 2019-06-25 11:34:28 +01:00
pns_algo_base.cpp Remove PNS_ prefix from most types inside namespace PNS 2016-09-06 16:06:06 +02:00
pns_algo_base.h Comment-only changes 2020-01-10 16:43:01 -08:00
pns_debug_decorator.h Remove PNS_ prefix from most types inside namespace PNS 2016-09-06 16:06:06 +02:00
pns_diff_pair.cpp SHAPE_LINE_CHAIN: Unify constructors 2019-12-12 13:54:48 +00:00
pns_diff_pair.h Comment-only changes 2020-01-10 16:43:01 -08:00
pns_diff_pair_placer.cpp router: Take track width in dp from dp 2019-02-04 03:48:08 +01:00
pns_diff_pair_placer.h Comment-only changes 2020-01-10 16:43:01 -08:00
pns_dp_meander_placer.cpp Fix unintialized values (from coverity scan) 2020-01-12 13:00:42 +00:00
pns_dp_meander_placer.h Comment-only changes 2020-01-10 16:43:01 -08:00
pns_dragger.cpp pcbnew: Don't duplicate tracks 2019-10-30 10:44:33 -07:00
pns_dragger.h Comment-only changes 2020-01-10 16:43:01 -08:00
pns_index.cpp Use const references where possible 2019-12-05 14:40:22 -08:00
pns_index.h Comment-only changes 2020-01-10 16:43:01 -08:00
pns_item.cpp router: disable hole to hole mechanical constraint in P&S until a suitable solution is found (as it is now it breaks springback) 2019-08-07 23:44:43 +02:00
pns_item.h Comment-only changes 2020-01-10 16:43:01 -08:00
pns_itemset.cpp Remove PNS_ prefix from most types inside namespace PNS 2016-09-06 16:06:06 +02:00
pns_itemset.h Comment-only changes 2020-01-10 16:43:01 -08:00
pns_joint.h Comment-only changes 2020-01-10 16:43:01 -08:00
pns_kicad_iface.cpp Update cast in PNS since we are guaranteed to have text 2020-01-13 19:42:49 +00:00
pns_kicad_iface.h Implement Get/Set display options 2019-11-07 08:26:44 -08:00
pns_layerset.h Comment-only changes 2020-01-10 16:43:01 -08:00
pns_line.cpp Refactor all math into a new kimath library 2020-01-07 17:12:59 +00:00
pns_line.h PNS: Detect collisions including newline width 2020-01-17 11:23:08 -08:00
pns_line_placer.cpp PNS: Modify MarkObstacles logic to select shorter 2020-01-16 19:57:38 -08:00
pns_line_placer.h Comment-only changes 2020-01-10 16:43:01 -08:00
pns_logger.cpp Refactor all math into a new kimath library 2020-01-07 17:12:59 +00:00
pns_logger.h Fix unnecessary value parameter detected by clang-tidy. - Replace value parameter by const reference parameter or move-assignement in some cases 2018-01-09 18:55:51 -05:00
pns_meander.cpp SHAPE_LINE_CHAIN: Remove element access 2019-12-12 13:54:48 +00:00
pns_meander.h Comment-only changes 2020-01-10 16:43:01 -08:00
pns_meander_placer.cpp Switch to scoped enums 2019-12-20 14:11:39 +00:00
pns_meander_placer.h Comment-only changes 2020-01-10 16:43:01 -08:00
pns_meander_placer_base.cpp pcbnew: Add PadToDie length for tuning actions 2019-10-31 16:00:19 -07:00
pns_meander_placer_base.h Comment-only changes 2020-01-10 16:43:01 -08:00
pns_meander_skew_placer.cpp Switch to scoped enums 2019-12-20 14:11:39 +00:00
pns_meander_skew_placer.h Comment-only changes 2020-01-10 16:43:01 -08:00
pns_node.cpp Minor speed cleanup 2019-12-05 14:20:59 -08:00
pns_node.h Comment-only changes 2020-01-10 16:43:01 -08:00
pns_optimizer.cpp PNS: Assume the current line is a base before optimizing 2020-01-12 11:08:46 -08:00
pns_optimizer.h Comment-only changes 2020-01-10 16:43:01 -08:00
pns_placement_algo.h Comment-only changes 2020-01-10 16:43:01 -08:00
pns_router.cpp Unified update to C++14 std::make_unique 2019-12-05 10:43:55 -08:00
pns_router.h Comment-only changes 2020-01-10 16:43:01 -08:00
pns_routing_settings.cpp Few improvements to the GAL router: 2017-08-07 14:28:46 +02:00
pns_routing_settings.h Comment-only changes 2020-01-10 16:43:01 -08:00
pns_segment.h SHAPE_LINE_CHAIN: Unify constructors 2019-12-12 13:54:48 +00:00
pns_shove.cpp Refactor all math into a new kimath library 2020-01-07 17:12:59 +00:00
pns_shove.h Comment-only changes 2020-01-10 16:43:01 -08:00
pns_sizes_settings.cpp Honour diff-pair dimension changes while routing. 2018-09-18 20:37:00 +01:00
pns_sizes_settings.h Change more enums over to scoped enums 2019-12-28 00:55:11 +00:00
pns_solid.cpp Refactor all math into a new kimath library 2020-01-07 17:12:59 +00:00
pns_solid.h pcbnew: Add PadToDie length for tuning actions 2019-10-31 16:00:19 -07:00
pns_tool_base.cpp Fix a couple of uninitialized variables (from Coverity scan). 2020-01-11 00:11:31 +00:00
pns_tool_base.h Allow move tool to run on top of other tools. 2019-07-01 22:15:25 +01:00
pns_topology.cpp Minor speed cleanup 2019-12-05 14:20:59 -08:00
pns_topology.h Remove PNS_ prefix from most types inside namespace PNS 2016-09-06 16:06:06 +02:00
pns_tune_status_popup.cpp Push KIWAY_HOLDER down a level so we can move a bunch of stuff that doesn't belong there out. 2019-06-10 23:46:00 +01:00
pns_tune_status_popup.h Bring PICKER_TOOL in line with other tools. 2018-08-23 00:58:01 +01:00
pns_utils.cpp Refactor all math into a new kimath library 2020-01-07 17:12:59 +00:00
pns_utils.h Refactor all math into a new kimath library 2020-01-07 17:12:59 +00:00
pns_via.cpp Refactor all math into a new kimath library 2020-01-07 17:12:59 +00:00
pns_via.h Refactor all math into a new kimath library 2020-01-07 17:12:59 +00:00
pns_walkaround.cpp router: prevent a very unlikely infinite loop in PNS::LINE::Walkaround() causing an OOM&segfault 2018-05-02 15:06:08 -07:00
pns_walkaround.h Add more "override" markers. 2016-09-25 13:59:41 -04:00
range.h Code formatting. 2015-02-18 17:53:46 +01:00
ranged_num.h Code formatting. 2015-02-18 17:53:46 +01:00
router_preview_item.cpp Refactor all math into a new kimath library 2020-01-07 17:12:59 +00:00
router_preview_item.h Display clearance for routed tracks (GAL) 2017-01-27 19:11:12 +01:00
router_tool.cpp Change more enums over to scoped enums 2019-12-28 00:55:11 +00:00
router_tool.h Cleanup. 2019-07-10 01:14:21 +01:00
time_limit.cpp Move PNS router code into namespace PNS 2016-09-06 16:06:06 +02:00
time_limit.h Cleanup: Replace C-only deprecated headers 2019-12-05 11:03:15 -08:00