kicad/pcbnew
John Beard c7a4ea97c3 Fix oval pad snapping
Previously the snap points computed for oval pads didn't get all the
points correct. This breaks out the "find snap points for ovals"
into a function, reworks the logic, adds some tests.

Also adds "extremum points" when the oval isn't exactly H/V.

(cherry picked from commit 78c8de9b08)

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/15594
2023-09-10 00:49:03 +01:00
..
autorouter Fail-safety in spreadRectangles. 2023-02-11 16:42:27 +03:00
board_stackup_manager PANEL_SETUP_BOARD_STACKUP: do not try to init params managed by PANEL_SETUP_BOARD_FINISH 2023-07-29 09:59:53 +02:00
connectivity Refine track dangling test. 2023-07-09 21:08:51 +01:00
dialogs DIALOG_EXPORT_STEP_LOG: print the command line sent to kicad-cli in report window. 2023-09-05 00:26:43 +00:00
drc drc_test_provider_text_dims.cpp: ensure glyphs to test are OUTLINE_GLYPH. 2023-09-09 10:37:58 +02:00
exporters Gerber place file: change DCode size of pads others than 1 or A1 to 0.1 mm 2023-08-31 16:44:14 +02:00
import_gfx SVG import: skip shapes that are not stroked and not filled. 2023-09-08 14:49:08 +03:00
microwave Fix static event table derived object definitions. 2023-01-28 14:10:06 -05:00
navlib Navlib: Ensure a pointer is initialized. 2023-05-10 09:36:51 +02:00
netlist_reader Move to requiring explicit action to save project settings 2023-03-24 11:49:50 -07:00
plugins Fix reading/writing thermal spoke angles for custom pads. 2023-09-10 17:32:22 +03:00
python Prevent crash when a python script tries to use pcbnew too early. 2023-08-25 00:17:03 +03:00
ratsnest Don't blindly cast to PCBNEW_SETTING: we may be in CVPCB.... 2023-07-16 19:45:13 +01:00
router Don't return separate shapes from a custom-shaped pad. 2023-09-03 22:11:15 +01:00
specctra_import_export Specctra: remove grouped tracks from group before cleaning up 2023-05-22 14:58:56 +00:00
teardrop Footprint viewer: ensure the footprint is updated after new library selection 2023-03-29 16:59:12 +02:00
tools Fix oval pad snapping 2023-09-10 00:49:03 +01:00
widgets Flip Viewport when Flip board is enabled 2023-09-06 16:56:01 +01:00
CMakeLists.txt pcbnew: move DIALOG_PAD_PROPERTIES_BASE from dialog_pad_properties to its own files. 2023-01-17 09:44:28 +01:00
Doxyfile_python
Doxyfile_xml
action_plugin.cpp More wxString wide literals. 2022-02-05 21:29:34 +00:00
action_plugin.h
array_creator.cpp array_creator: Transform item before adding, modify only the first one. 2022-11-19 04:07:35 +05:00
array_creator.h
array_pad_number_provider.cpp
array_pad_number_provider.h Fix typos in pcbnew sub-directory 2022-06-30 09:39:45 -04:00
board.cpp Handle dimensions and textboxes when plotting contours to DXF. 2023-08-31 12:37:44 +01:00
board.h Consolidate Maximum clearance calculation 2023-07-26 13:16:32 -07:00
board_commit.cpp Coverity fixes and code cleaning. 2023-03-04 13:14:59 -05:00
board_commit.h Propagate nets within non-conflicting clusters immediately. 2023-01-23 16:25:29 +00:00
board_connected_item.cpp Properties: Hide Net Class from GUI 2023-03-26 19:50:10 -04:00
board_connected_item.h 15% rendering optimization in PCB_TRACK::ViewGetLOD. 2023-01-27 18:37:43 +03:00
board_design_settings.cpp When routing, check for board-level clearances 2023-07-24 15:19:59 -07:00
board_item.cpp AllCuMask() and AllTechMask() are static, they do NOT modify "this". 2023-02-03 15:08:31 +00:00
board_item_container.h Fix typos in pcbnew sub-directory 2022-06-30 09:39:45 -04:00
build_BOM_from_board.cpp Fix a bunch more issues with sheetpaths and allowExtraText. 2023-05-05 18:02:59 +01:00
cleanup_item.cpp Add pad-recombining to FPEditor's Cleanup Graphics. 2022-09-24 19:34:06 +01:00
cleanup_item.h Add pad-recombining to FPEditor's Cleanup Graphics. 2022-09-24 19:34:06 +01:00
collectors.cpp Attempt to fix std::initializer_list lifetime issue. 2022-08-21 20:54:41 +01:00
collectors.h Attempt to fix std::initializer_list lifetime issue. 2022-08-21 20:54:41 +01:00
convert_shape_list_to_polygon.cpp Move checking for null parent higher. 2023-08-19 20:09:47 +01:00
convert_shape_list_to_polygon.h Step exporter: export circular board outlines as cylinder 2023-05-28 19:38:27 +02:00
cross-probing.cpp PCM: auto reload global libs after dialog is run 2023-02-28 16:48:28 -05:00
edit.cpp PCB Editor: Add User Background Images 2022-07-14 11:23:23 +00:00
edit_track_width.cpp PCB Editor: prevent scroll wheel on track size opening board settings 2023-01-20 12:13:16 -05:00
edit_zone_helpers.cpp More safety around ratsnest state. 2022-11-30 13:00:21 +00:00
files.cpp Save project to disk whenever we save the board to disk. 2023-07-09 21:53:32 +01:00
footprint.cpp Support SHORT_NET_NAME(pin_number) and friends on symbols. 2023-09-03 22:07:11 +01:00
footprint.h Override FOOTPRINT::GetCenter() to ignore text. 2023-07-16 20:06:23 +01:00
footprint_edit_frame.cpp Make sure infobar gets created earlier. 2023-06-11 22:32:05 +01:00
footprint_edit_frame.h Fp editor and Fp viewer: fix missing info on msg panel after loading a fp 2023-01-25 17:47:04 +01:00
footprint_editor_settings.cpp Prefer MRU path to LastImportExportPath for importing footprints. 2023-07-09 21:39:18 +01:00
footprint_editor_utils.cpp PCM: auto reload global libs after dialog is run 2023-02-28 16:48:28 -05:00
footprint_info_impl.cpp Stricter API for LIB_TABLE 2023-08-15 01:39:09 +00:00
footprint_info_impl.h ADDED: Threadpool 2022-06-24 22:59:24 +00:00
footprint_libraries_utils.cpp Remove group reference when exporting individual footprints 2023-08-02 23:21:36 +01:00
footprint_preview_panel.cpp Make FOOTPRINT_PREVIEW_PANEL a FPHOLDER. 2023-06-11 22:30:16 +01:00
footprint_preview_panel.h Units for footprint preview widgets. 2023-01-02 22:12:26 +00:00
footprint_tree_pane.cpp Footprint Editor: Focus search field when window is first opened 2022-12-20 19:54:02 +00:00
footprint_tree_pane.h Footprint Editor: Focus search field when window is first opened 2022-12-20 19:54:02 +00:00
footprint_viewer_frame.cpp Remember footprint library browsers liblist width. 2023-08-31 12:37:44 +01:00
footprint_viewer_frame.h Fp editor and Fp viewer: fix missing info on msg panel after loading a fp 2023-01-25 17:47:04 +01:00
footprint_wizard.cpp
footprint_wizard.h More wxString wide literals. 2022-02-05 21:29:34 +00:00
footprint_wizard_frame.cpp Fix static event table derived object definitions. 2023-01-28 14:10:06 -05:00
footprint_wizard_frame.h
footprint_wizard_frame_functions.cpp More wxString wide literals. 2022-02-05 21:29:34 +00:00
fp_shape.cpp Add support for non-cardianlly-rotated text boxes. 2023-03-02 14:58:44 +00:00
fp_shape.h Rename GetSelectMenuText to GetItemDescription 2023-01-11 22:27:44 -05:00
fp_text.cpp Cleanup. 2023-06-17 16:04:56 +01:00
fp_text.h Use rendered text to generate bounding box for knockout text. 2023-06-06 11:19:41 +01:00
fp_text_grid_table.cpp Add missing property to footprint texts table. 2023-05-03 17:58:29 +01:00
fp_text_grid_table.h Add missing property to footprint texts table. 2023-05-03 17:58:29 +01:00
fp_textbox.cpp Fix accidental plotting of disabled textbox borders 2023-08-24 21:14:27 -04:00
fp_textbox.h Fix accidental plotting of disabled textbox borders 2023-08-24 21:14:27 -04:00
fp_tree_model_adapter.cpp Add pin/unpin context menu to Symbol Chooser and Footprint Chooser. 2022-09-21 14:45:12 +01:00
fp_tree_model_adapter.h Add pin/unpin context menu to Symbol Chooser and Footprint Chooser. 2022-09-21 14:45:12 +01:00
fp_tree_synchronizing_adapter.cpp Treat canvas item as current when tree view contains no selection. 2023-06-10 10:57:14 +01:00
fp_tree_synchronizing_adapter.h Treat canvas item as current when tree view contains no selection. 2023-06-10 10:57:14 +01:00
generate_footprint_info.cpp Handle updated document description format 2022-04-15 11:17:01 -07:00
generate_footprint_info.h
graphics_cleaner.cpp GRAPHICS_CLEANER: fix bad detection of short Bezier curves that can be cleaned 2022-12-10 18:19:09 +01:00
graphics_cleaner.h Add pad-recombining to FPEditor's Cleanup Graphics. 2022-09-24 19:34:06 +01:00
grid_layer_box_helpers.cpp
grid_layer_box_helpers.h
initpcb.cpp BoardDesignSettings are owned by FOOTPRINT_EDITOR_SETTINGS in the FP Editor. 2023-06-12 10:08:09 +01:00
invoke_pcb_dialog.h
io_mgr.cpp Rename PROPERTIES to STRING_UTF8_MAP for clarity 2022-11-06 11:51:52 -05:00
io_mgr.h Cleanup printf bits 2023-05-07 19:02:02 +03:00
kicad_clipboard.cpp Remove temp items from its group before deleting them 2023-08-02 23:32:45 +01:00
kicad_clipboard.h Rename PROPERTIES to STRING_UTF8_MAP for clarity 2022-11-06 11:51:52 -05:00
load_select_footprint.cpp Move saving preferences out of the destructor. 2022-11-14 20:01:37 +00:00
menubar_footprint_editor.cpp Never call ReCreateMenuBar inside a menu event handler 2022-12-16 16:37:51 -05:00
menubar_pcb_editor.cpp Small order change for three View menu items 2023-01-22 01:04:17 +00:00
netinfo.h Expose shared_ptr to swig 2023-03-09 14:02:48 +00:00
netinfo_item.cpp Fix netnames. 2023-01-27 19:35:41 +03:00
netinfo_list.cpp Coverity fixes and code cleaning. 2023-03-04 13:14:59 -05:00
pad.cpp Bug fixes for paste margins on custom-shaped pads. 2023-09-03 22:32:40 +01:00
pad.h Don't allow setting a pad width or height of 0. 2023-06-10 10:57:14 +01:00
pad_custom_shape_functions.cpp Name shortening and line-break reduction. 2022-10-21 18:41:39 +01:00
pcb_base_edit_frame.cpp Update dimension units when opening PCBs in CLI. 2023-03-14 11:56:33 +00:00
pcb_base_edit_frame.h Tighten lifecycle management of parent group pointers. 2022-11-11 17:27:28 +00:00
pcb_base_frame.cpp Move Spacemouse to advanced config 2023-04-25 11:30:36 -07:00
pcb_bitmap.cpp Pcbnew: Fix rotating bitmaps 2023-05-11 01:14:34 +00:00
pcb_bitmap.h Fix handling of PPI when loading embedded images 2023-02-15 00:42:30 +00:00
pcb_dimension.cpp Tailor inspector text properties for dimension objects. 2023-07-09 21:54:52 +01:00
pcb_dimension.h Move automatic dimension processing inside PCB_DIMENSION_BASE. 2023-03-12 21:04:09 +00:00
pcb_draw_panel_gal.cpp Locked shadows should not be on overlay 2023-01-27 22:09:42 -05:00
pcb_draw_panel_gal.h
pcb_edit_frame.cpp Prevent crash when a python script tries to use pcbnew too early. 2023-08-25 00:17:03 +03:00
pcb_edit_frame.h Update DRC exclusions model to match terminology. 2023-04-15 12:10:23 +01:00
pcb_expr_evaluator.cpp Bug fixes for handling boolean flags in DRC rules. 2023-06-02 00:20:11 +01:00
pcb_expr_evaluator.h Cleanup printf bits 2023-05-07 19:02:02 +03:00
pcb_expr_functions.cpp Clear arcs before deflating area outline. 2023-07-09 21:08:52 +01:00
pcb_group.cpp Rename GetSelectMenuText to GetItemDescription 2023-01-11 22:27:44 -05:00
pcb_item_containers.h
pcb_layer_box_selector.cpp Improve HiDPI handling of appearance/layer controls 2023-03-07 08:49:06 -05:00
pcb_layer_box_selector.h
pcb_marker.cpp Rename GetSelectMenuText to GetItemDescription 2023-01-11 22:27:44 -05:00
pcb_marker.h Rename GetSelectMenuText to GetItemDescription 2023-01-11 22:27:44 -05:00
pcb_origin_transforms.cpp Remove bad static_cast. 2022-07-24 23:41:41 +01:00
pcb_origin_transforms.h
pcb_painter.cpp Don't include plating thickness when drawing hole clearance lines. 2023-09-06 16:31:46 +01:00
pcb_painter.h Dim other pads when in pad edit mode. 2023-01-06 11:13:57 +00:00
pcb_plot_params.cpp Avoid duplicating similar options in print and plot headers 2022-11-12 16:02:24 +01:00
pcb_plot_params.h Avoid duplicating similar options in print and plot headers 2022-11-12 16:02:24 +01:00
pcb_plot_params_parser.h Pcbnew: add plot on all layers feature. 2022-04-02 14:33:40 -04:00
pcb_plot_svg.cpp kicad-cli, export plot PDF and SVG: add missing option --drill-shape-opt. 2023-08-19 10:56:32 -04:00
pcb_plot_svg.h kicad-cli, export plot PDF and SVG: add missing option --drill-shape-opt. 2023-08-19 10:56:32 -04:00
pcb_screen.cpp
pcb_shape.cpp Fix some PCB_SHAPE properties 2023-02-24 01:24:41 +00:00
pcb_shape.h Add support for non-cardianlly-rotated text boxes. 2023-03-02 14:58:44 +00:00
pcb_target.cpp Rename GetSelectMenuText to GetItemDescription 2023-01-11 22:27:44 -05:00
pcb_target.h Rename GetSelectMenuText to GetItemDescription 2023-01-11 22:27:44 -05:00
pcb_text.cpp PCB_TEXT::TransformTextToPolySet() fix a typo that can creates a *lot* of 2023-07-11 13:12:47 +02:00
pcb_text.h Use rendered text to generate bounding box for knockout text. 2023-06-06 11:19:41 +01:00
pcb_textbox.cpp Fix accidental plotting of disabled textbox borders 2023-08-24 21:14:27 -04:00
pcb_textbox.h Fix accidental plotting of disabled textbox borders 2023-08-24 21:14:27 -04:00
pcb_track.cpp PCB_VIA::SetLayerSet( LSET aLayerSet ): fix bug: it must consider only copper layers. 2023-07-12 16:42:19 +02:00
pcb_track.h PCB_VIA::SetLayerSet( LSET aLayerSet ): fix bug: it must consider only copper layers. 2023-07-12 16:42:19 +02:00
pcb_view.cpp
pcb_view.h
pcbnew.cpp Flip the RegisterSettings order to avoid legacy import crashes 2023-09-04 23:22:39 -04:00
pcbnew.h Remove convert_to_biu.h, merge contents to base_units.h 2022-09-16 21:09:28 -04:00
pcbnew.icns
pcbnew_config.cpp Move to requiring explicit action to save project settings 2023-03-24 11:49:50 -07:00
pcbnew_config.h
pcbnew_doc.icns
pcbnew_id.h Footprint viewers: fix regression: re-add automatic zoom option when loading a new footprint 2022-04-18 11:15:14 +02:00
pcbnew_jobs_handler.cpp kicad-cli, export plot PDF and SVG: add missing option --drill-shape-opt. 2023-08-19 10:56:32 -04:00
pcbnew_jobs_handler.h Fix gerbers and drill plot not logging errors 2023-04-21 03:40:28 +00:00
pcbnew_printout.cpp Print hole walls if in colour (and printing real drill sizes). 2022-11-13 13:18:42 +00:00
pcbnew_printout.h PCBNEW_PRINTOUT: fix incorrect size of holes printed with the "small drill" option 2022-11-12 16:02:24 +01:00
pcbnew_settings.cpp Fix Search pane not remembering docking sizes and positions 2023-06-11 20:24:41 +00:00
pcbnew_settings.h Fix Search pane not remembering docking sizes and positions 2023-06-11 20:24:41 +00:00
pcbplot.cpp Allow plotting of multiple board layers per plot in Python. 2023-02-14 09:53:16 -05:00
pcbplot.h Use rendered text to generate bounding box for knockout text. 2023-06-06 11:19:41 +01:00
plot_board_layers.cpp Plot Solder mask layer: do not add items on edge_cut, but not on mask layer 2023-06-16 10:01:29 +02:00
plot_brditems_plotter.cpp Fix accidental plotting of disabled textbox borders 2023-08-24 21:14:27 -04:00
plotcontroller.h Allow plotting of multiple board layers per plot in Python. 2023-02-14 09:53:16 -05:00
plotprint_opts.h Avoid duplicating similar options in print and plot headers 2022-11-12 16:02:24 +01:00
plugin.cpp Rename PROPERTIES to STRING_UTF8_MAP for clarity 2022-11-06 11:51:52 -05:00
sel_layer.cpp More wxString wide literals. 2022-02-05 21:29:34 +00:00
toolbars_footprint_editor.cpp Expose changing arc edit mode in arc button context menu and Preferences 2022-12-05 21:28:16 +03:00
toolbars_footprint_viewer.cpp Never call ReCreateMenuBar inside a menu event handler 2022-12-16 16:37:51 -05:00
toolbars_pcb_editor.cpp Fix Search pane not remembering docking sizes and positions 2023-06-11 20:24:41 +00:00
tracks_cleaner.cpp Refine track dangling test. 2023-07-09 21:08:51 +01:00
tracks_cleaner.h Performance enhancements for Cleanup Tracks & Vias.Performance enhancements for Cleanup Tracks & Vias.Performance enhancements for Cleanup Tracks & Vias.Performance enhancements for Cleanup Tracks & Vias.Performance enhancements for Cleanup Tracks & Vias.Performance enhancements for Cleanup Tracks & Vias.Performance enhancements for Cleanup Tracks & Vias.Performance enhancements for Cleanup Tracks & Vias.Performance enhancements for Cleanup Tracks & Vias. 2022-03-18 11:04:53 +00:00
undo_redo.cpp Implement undo/redo around Pad Edit Mode changes. 2023-09-02 11:18:34 +01:00
zone.cpp Allow GetLayer() to be used with single-layer zones. 2023-08-15 17:51:52 +01:00
zone.h Some router/DRC performance boost (ZONE::GetZoneName) 2023-08-04 23:56:02 +03:00
zone_filler.cpp Revert "Record hole knockouts in zone filler earlier" 2023-08-25 07:35:06 +02:00
zone_filler.h Fix an edge-case in the spoke genration logic for non-cardinal spokes. 2022-10-01 19:31:47 +01:00
zone_settings.cpp Zones: use metric defaults and limits instead of mixed units 2023-02-11 07:39:29 -05:00
zone_settings.h Set new zone priority to unique number 2022-08-24 16:37:57 -07:00
zones.h Zones: use metric defaults and limits instead of mixed units 2023-02-11 07:39:29 -05:00
zones_functions_for_undo_redo.cpp More tightening of group parent lifecycles. 2022-11-16 00:42:38 +00:00
zones_functions_for_undo_redo.h Formatting and a bit of cleanup. 2022-10-21 18:41:39 +01:00