kicad/pcbnew/router
Seth Hillbrand afc94fdec3 PNS: Be better about handling multiple layers
Rather than adding pads/vias multiple times for each layer, we introduce
the "alternate shape" idiom to PNS that allows us to optionally place
the collision constraint on the hole instead of the pad for those
vias/pads that have inner layers removed.

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

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

Fixes https://gitlab.com/kicad/code/kicad/issues/5195
2020-08-16 12:39:15 -07:00
..
CMakeLists.txt router: initial support for dragging components with traces attached 2020-02-28 23:17:15 +01:00
length_tuner_tool.cpp Give the length tuning tool an inital end point that isn't the start point 2020-08-08 23:41:48 +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 router: use one global logger object 2020-02-27 22:02:56 +01:00
pns_arc.cpp PNS: Be better about handling multiple layers 2020-08-16 12:39:15 -07:00
pns_arc.h PNS: Be better about handling multiple layers 2020-08-16 12:39:15 -07:00
pns_component_dragger.cpp router: abstract segment links into a LINK_HOLDER interface. DIFF_PAIRS are now also linkable 2020-07-22 17:04:42 +02:00
pns_component_dragger.h router: initial support for dragging components with traces attached 2020-02-28 23:17:15 +01:00
pns_debug_decorator.h router: clearer distinction between LOGGER and DEBUG_DECORATOR classes. 2020-07-22 18:05:54 +02:00
pns_diff_pair.cpp pcbnew: Adding arcs to PNS 2020-02-21 16:11:41 -08:00
pns_diff_pair.h router: abstract segment links into a LINK_HOLDER interface. DIFF_PAIRS are now also linkable 2020-07-22 17:04:42 +02:00
pns_diff_pair_placer.cpp Update DIFF_PAIR_PLACER to new callbacks 2020-03-04 17:23:04 -06:00
pns_diff_pair_placer.h PNS: Moving the rest of the placer to Fix/Commit 2020-03-06 09:56:44 -08:00
pns_dp_meander_placer.cpp PNS: Moving the rest of the placer to Fix/Commit 2020-03-06 09:56:44 -08:00
pns_dp_meander_placer.h PNS: Moving the rest of the placer to Fix/Commit 2020-03-06 09:56:44 -08:00
pns_drag_algo.h A few Coverity fixes. 2020-03-30 09:50:26 +02:00
pns_dragger.cpp router: fix mistake in 45/free-angle mode selection when dragging corners 2020-07-29 23:14:03 +02:00
pns_dragger.h router: use a common base class for all dragging algorithms 2020-02-28 23:17:15 +01:00
pns_index.cpp PNS: Be better about handling multiple layers 2020-08-16 12:39:15 -07:00
pns_index.h Keep PNS item RTree on layer-by-layer 2020-07-29 11:21:00 -07:00
pns_item.cpp PNS: Be better about handling multiple layers 2020-08-16 12:39:15 -07:00
pns_item.h PNS: Be better about handling multiple layers 2020-08-16 12:39:15 -07: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 pcbnew: Adding arcs to PNS 2020-02-21 16:11:41 -08:00
pns_kicad_iface.cpp PNS: Be better about handling multiple layers 2020-08-16 12:39:15 -07:00
pns_kicad_iface.h PNS: Be better about handling multiple layers 2020-08-16 12:39:15 -07:00
pns_layerset.h Comment-only changes 2020-01-10 16:43:01 -08:00
pns_line.cpp PNS: Be better about handling multiple layers 2020-08-16 12:39:15 -07:00
pns_line.h router: abstract segment links into a LINK_HOLDER interface. DIFF_PAIRS are now also linkable 2020-07-22 17:04:42 +02:00
pns_line_placer.cpp Cleanup code line endings 2020-08-10 03:27:27 +00:00
pns_line_placer.h router: auto-guess track posture from mouse movements, experimental! 2020-07-22 18:05:50 +02:00
pns_link_holder.h router: abstract segment links into a LINK_HOLDER interface. DIFF_PAIRS are now also linkable 2020-07-22 17:04:42 +02:00
pns_linked_item.h pcbnew: Adding arcs to PNS 2020-02-21 16:11:41 -08:00
pns_logger.cpp router: clearer distinction between LOGGER and DEBUG_DECORATOR classes. 2020-07-22 18:05:54 +02:00
pns_logger.h router: clearer distinction between LOGGER and DEBUG_DECORATOR classes. 2020-07-22 18:05:54 +02: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 PNS: Moving the rest of the placer to Fix/Commit 2020-03-06 09:56:44 -08:00
pns_meander_placer.h PNS: Moving the rest of the placer to Fix/Commit 2020-03-06 09:56:44 -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 PNS: Be better about handling multiple layers 2020-08-16 12:39:15 -07:00
pns_node.h router: allow modification of SOLIDs in PNS::NODE 2020-02-28 23:17:15 +01:00
pns_optimizer.cpp router: abstract segment links into a LINK_HOLDER interface. DIFF_PAIRS are now also linkable 2020-07-22 17:04:42 +02:00
pns_optimizer.h router: optimizer should now handle 'keep vertex' constraint correctly... 2020-02-27 22:02:56 +01:00
pns_placement_algo.h router: backspace key to undo last fixed segment(s) 2020-02-27 22:02:56 +01:00
pns_router.cpp router: clearer distinction between LOGGER and DEBUG_DECORATOR classes. 2020-07-22 18:05:54 +02:00
pns_router.h PNS: Be better about handling multiple layers 2020-08-16 12:39:15 -07:00
pns_routing_settings.cpp Generalize default footprint fields. 2020-05-08 23:30:33 +01:00
pns_routing_settings.h router: option to enable optimization of the track being dragged 2020-02-27 22:02:56 +01:00
pns_segment.h PNS: Be better about handling multiple layers 2020-08-16 12:39:15 -07:00
pns_shove.cpp PNS: Be better about handling multiple layers 2020-08-16 12:39:15 -07:00
pns_shove.h Fix a few Coverity and compil minor warnings. Remove dead code 2020-04-21 12:47:48 +02:00
pns_sizes_settings.cpp Migrate PcbNew project settings to new framework 2020-07-02 22:08:54 -04:00
pns_sizes_settings.h Change more enums over to scoped enums 2019-12-28 00:55:11 +00:00
pns_solid.cpp PNS: Be better about handling multiple layers 2020-08-16 12:39:15 -07:00
pns_solid.h PNS: Be better about handling multiple layers 2020-08-16 12:39:15 -07:00
pns_tool_base.cpp Clean up unused includes. 2020-08-08 16:25:30 +01:00
pns_tool_base.h Implement a new settings framework across all of KiCad 2020-02-19 23:44:56 -05:00
pns_topology.cpp router: abstract segment links into a LINK_HOLDER interface. DIFF_PAIRS are now also linkable 2020-07-22 17:04:42 +02: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 Pcbnew: fix crash on exit after using the track length tool. 2020-02-22 10:34:11 +01:00
pns_utils.cpp pcbnew: Adding arcs to PNS 2020-02-21 16:11:41 -08:00
pns_utils.h pcbnew: Adding arcs to PNS 2020-02-21 16:11:41 -08:00
pns_via.cpp PNS: Be better about handling multiple layers 2020-08-16 12:39:15 -07:00
pns_via.h PNS: Be better about handling multiple layers 2020-08-16 12:39:15 -07:00
pns_walkaround.cpp router: prevent heap crash when initial walkaround line is empty 2020-07-29 23:14:03 +02:00
pns_walkaround.h A few Coverity fixes. 2020-03-30 09:50:26 +02: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 router: fix arc drawing in ROUTER_PREVIEW_ITEM 2020-02-28 23:52:33 +01:00
router_preview_item.h Display clearance for routed tracks (GAL) 2017-01-27 19:11:12 +01:00
router_tool.cpp Make sure preview group gets added to view after a clear. 2020-08-15 21:13:44 +01:00
router_tool.h Add context menu to route and zone toolbar items 2020-06-26 21:29:03 +00: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