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
The arc shapes need to connect with their adjacent points. By storing the relevant points, we allow exact point matching on both ends of the arc as well as localize point storage.
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