kicad/pcbnew
Seth Hillbrand 73408f3f21 Correct DRC calculation on segments
If objects are at the clearance limit, they qualify as passing DRC.
Therefore, all comparison functions that indicate failure should be
strictly greater than or less than while all comparison functions that
indicate success (in the DRC) should be greater/equal or less/equal.

This also corrects a rounding error at the nm scale and handles
scaling zero-length and large segments correctly.

Fixes: lp:1756403
* https://bugs.launchpad.net/kicad/+bug/1756403

Fixes: lp:1593373
* https://bugs.launchpad.net/kicad/+bug/1593373
2018-03-20 15:35:53 -07:00
..
autorouter fix code after renaming files 2018-01-29 22:00:44 +01:00
dialogs DRC: Center zoom on marker location, not DRC item start location 2018-03-19 22:25:55 -04:00
exporters Mirror-image coordinate system on back of board for PNP. 2018-03-20 16:57:42 +00:00
github Don't cache github libraries above nginx server. 2018-03-04 01:16:59 +00:00
import_dxf fix code after file renaming 2018-01-31 09:24:02 +01:00
microwave Add WX_TEXT_ENTRY_DIALOG which inherits from DIALOG_SHIM. 2018-03-12 22:45:51 +00:00
pcad2kicadpcb_plugin Don't cache github libraries above nginx server. 2018-03-04 01:16:59 +00:00
python Footprint editor: fix bug in footprint wizard 2D barcode generator. 2018-03-15 10:37:36 -04:00
router Ignore pads when selecting drag candidates in router tool. 2018-03-16 18:01:40 +00:00
specctra_import_export Circle to polygon conversion: a few enhancements: 2018-03-09 13:28:47 +01:00
swig Fix for crash due to pcbnew_action_plugin object tracking 2018-03-13 10:19:39 +01:00
tools Add icon to Get and Move context menu item in GAL mode. 2018-03-20 08:30:02 +01:00
CMakeLists.txt Follow standard FBP naming conventions. 2018-03-18 22:17:27 +00:00
Doxyfile_python
Doxyfile_xml
Info.plist macOS: standardise CFBundleName to application names. 2018-03-05 01:14:00 +00:00
action_plugin.cpp Fix for crash due to pcbnew_action_plugin object tracking 2018-03-13 10:19:39 +01:00
action_plugin.h Fix for crash due to pcbnew_action_plugin object tracking 2018-03-13 10:19:39 +01:00
append_board_to_current.cpp Refactor post-load actions in PcbNew and apply them consistently 2018-02-25 17:47:36 -05:00
array_creator.cpp Renamed D_PAD::{Set,Get}PadName() to D_PAD::{Set,Get}Name() 2017-09-19 18:23:50 +02:00
array_creator.h
attribut.cpp fix code after renaming files 2018-01-29 22:00:44 +01:00
block.cpp fix code after renaming files 2018-01-29 22:00:44 +01:00
block_footprint_editor.cpp rename files: replace module by footprint in dialog filenames 2018-02-16 20:27:14 +01:00
board_commit.cpp Update ratsnest after a footprint change 2018-03-05 16:42:30 +01:00
board_commit.h refactoring: make BOARD_COMMIT independent from pcbnew 2017-11-03 20:02:06 +01:00
board_connected_item.cpp rename files 2018-02-02 21:57:12 +01:00
board_connected_item.h rename files 2018-02-02 21:57:12 +01:00
board_design_settings.cpp rename files 2018-02-02 21:57:12 +01:00
board_item_container.h Doxygen comment improvements. 2017-06-13 19:47:46 -04:00
board_items_to_polygon_shape_transform.cpp Refinement in circle to segment approximation for clearance area of DRAWSEGMENTS 2018-03-09 15:56:00 +01:00
board_netlist_updater.cpp Standardize copper zones 2018-03-08 12:33:32 -08:00
board_netlist_updater.h Fixed compilation warnings 2017-06-23 11:36:05 +02:00
build_BOM_from_board.cpp fix code after renaming files 2018-01-29 22:00:44 +01:00
class_board.cpp Fix code after renaming files 2018-01-29 16:40:22 +01:00
class_board.h rename files 2018-02-02 21:57:12 +01:00
class_board_item.cpp DRAWSEGMENT, S_POLYGON shape: remove useless copies or conversion to std::vector<wxPoint> of SHPE_POLY_SET polygon shape. 2018-01-24 14:22:43 +01:00
class_dimension.cpp fix code after renaming files 2018-01-29 22:00:44 +01:00
class_dimension.h pcbnew: fix graphical polygon movement, rotation, flipping and edit points synchronization. 2017-12-18 18:25:45 +01:00
class_drawsegment.cpp Add EDA_RECT hit test for S_POLYGON 2018-02-19 10:59:02 +01:00
class_drawsegment.h DRAWSEGMENT, S_POLYGON shape: remove useless copies or conversion to std::vector<wxPoint> of SHPE_POLY_SET polygon shape. 2018-01-24 14:22:43 +01:00
class_edge_mod.cpp Fix pads and footprints rendering switches behavior 2018-02-21 13:44:52 -05:00
class_edge_mod.h Fix pads and footprints rendering switches behavior 2018-02-21 13:44:52 -05:00
class_marker_pcb.cpp Fix code after renaming files 2018-01-29 16:40:22 +01:00
class_marker_pcb.h Rename a few files 2018-01-28 22:02:31 +01:00
class_module.cpp Footprint editor: Graphic polygon don't follow footprint when moving reference anchor 2018-03-12 13:17:22 +01:00
class_module.h Rework footprint selection filtering to improve behavior 2018-03-07 20:41:10 -05:00
class_pad.cpp Do not draw pads on hidden copper layers. 2018-02-21 14:18:51 -05:00
class_pad.h pcbnew: fixes in primitives->custom pad tool 2018-03-06 14:59:15 +01:00
class_pcb_target.cpp fix code after renaming files 2018-01-29 22:00:44 +01:00
class_pcb_target.h pcbnew: fix graphical polygon movement, rotation, flipping and edit points synchronization. 2017-12-18 18:25:45 +01:00
class_pcb_text.cpp Coverity fixes 2018-03-19 10:02:05 +01:00
class_pcb_text.h pcbnew: fix graphical polygon movement, rotation, flipping and edit points synchronization. 2017-12-18 18:25:45 +01:00
class_text_mod.cpp Replace previous hidden text commit with a LOD-based one. 2018-03-15 11:00:36 +00:00
class_text_mod.h Fix pads and footprints rendering switches behavior 2018-02-21 13:44:52 -05:00
class_track.cpp Add tracks display control to Render tab 2018-02-21 14:29:05 -05:00
class_track.h rename files 2018-02-02 21:57:12 +01:00
class_zone.cpp Coverity fixes 2018-03-19 10:02:05 +01:00
class_zone.h Respect 45-degree mode when set from zone dialog. 2018-02-20 17:38:20 +01:00
collectors.cpp Do not allow selecting tracks if they are hidden 2018-02-22 17:31:18 +01:00
collectors.h Do not allow selecting tracks if they are hidden 2018-02-22 17:31:18 +01:00
connect.cpp Fix code after renaming files 2018-01-29 16:40:22 +01:00
connectivity_algo.cpp minor fix in a debug code 2018-03-05 20:18:55 +01:00
connectivity_algo.h Add comments. 2018-02-07 14:24:10 +01:00
connectivity_data.cpp 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
connectivity_data.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
controle.cpp fix code after renaming files 2018-01-29 22:00:44 +01:00
convert_drawsegment_list_to_polygon.cpp Refinement in circle to segment approximation for clearance area of DRAWSEGMENTS 2018-03-09 15:56:00 +01:00
cross-probing.cpp Standardize capitalization 2018-03-08 12:33:32 -08:00
deltrack.cpp fix code after renaming files 2018-01-29 22:00:44 +01:00
dimension.cpp fix misspelled 'Modifed' -> 'Modified' 2018-02-25 17:10:10 -05:00
drag.h Removed legacy connectivity/ratsnest algorithm, replaced with the new one. No legacy autorouting for the moment 2017-06-23 11:12:37 +02:00
dragsegm.cpp Fix code after renaming files 2018-01-29 16:40:22 +01:00
drc.cpp Cancel interactive tools when entering DRC. 2018-03-16 00:28:02 +00:00
drc.h Pcbnew: add refill zone option to DRC. 2018-02-10 15:17:30 -05:00
drc_clearance_test_functions.cpp Correct DRC calculation on segments 2018-03-20 15:35:53 -07:00
drc_item.cpp rename files 2018-01-31 09:24:00 +01:00
drc_marker_functions.cpp rename files 2018-02-02 21:57:12 +01:00
eagle_plugin.cpp Eagle PCB import: mute uninitialized variable warning 2018-03-14 15:40:58 +01:00
eagle_plugin.h Eagle PCB import: handle 'roundness' DRC rule (SMD rounded rectangles) 2018-03-14 10:24:47 +01:00
edgemod.cpp Add WX_TEXT_ENTRY_DIALOG which inherits from DIALOG_SHIM. 2018-03-12 22:45:51 +00:00
edit.cpp Remove a useless file and move the 2 methods to suitable files. 2018-01-31 14:54:31 +01:00
edit_pcb_text.cpp fix code after renaming files 2018-01-29 22:00:44 +01:00
edit_track_width.cpp fix code after renaming files 2018-01-29 22:00:44 +01:00
editedge.cpp fix code after renaming files 2018-01-29 22:00:44 +01:00
editrack-part2.cpp rename files 2018-01-31 17:10:01 +01:00
editrack.cpp fix code after renaming files 2018-01-29 22:00:44 +01:00
edtxtmod.cpp fix code after renaming files 2018-01-29 22:00:44 +01:00
event_handlers_tracks_vias_sizes.cpp fix code after renaming files 2018-01-29 22:00:44 +01:00
files.cpp Eagle import: fix footprint LIB_IDs in the imported board 2018-03-04 16:45:42 +01:00
footprint_edit_frame.cpp Fix compile issues under some compilers. 2018-03-12 21:02:04 +00:00
footprint_edit_frame.h Update status bar and toolbars on language change. 2018-03-18 22:17:27 +00:00
footprint_editor_onclick.cpp Don't allow many context-menu commands for NEW/MOVED items. 2018-03-08 20:34:37 +00:00
footprint_editor_options.cpp rename files 2018-02-02 21:57:12 +01:00
footprint_editor_utils.cpp Close pcb opened just to get its GAL canvas settings. 2018-03-08 23:51:10 +00:00
footprint_info_impl.cpp Don't cache github libraries above nginx server. 2018-03-04 01:16:59 +00:00
footprint_info_impl.h Go back to checking individual file timestamps. 2018-02-23 10:56:12 -05:00
footprint_libraries_utils.cpp Add WX_TEXT_ENTRY_DIALOG which inherits from DIALOG_SHIM. 2018-03-12 22:45:51 +00:00
footprint_preview_panel.cpp fix code after file renaming 2018-01-31 09:24:02 +01:00
footprint_preview_panel.h refactoring: wrapped boost::optional in OPT<> class for the purpose of easier transition to C++17 in the future 2017-11-03 23:59:02 +01:00
footprint_viewer_frame.cpp Peg 3D viewer in front of Footprint Viewer and Wizard. 2018-03-14 19:17:09 +00:00
footprint_viewer_frame.h rename a few files related to the footprint viewer. 2018-01-31 13:37:36 +01:00
footprint_wizard.cpp Fix code after renaming files. Minor other fix. 2018-01-30 20:23:35 +01:00
footprint_wizard.h Fix code after renaming files. Minor other fix. 2018-01-30 20:23:35 +01:00
footprint_wizard_frame.cpp Peg 3D viewer in front of Footprint Viewer and Wizard. 2018-03-14 19:17:09 +00:00
footprint_wizard_frame.h Work around wxGrid boolean editor issues 2018-03-13 20:34:39 -04:00
footprint_wizard_frame_functions.cpp Scripting: Preemptively reset footprint wizard state. 2018-03-15 12:30:02 -04:00
globaleditpad.cpp Fix bug: Pressing Enter in the Move Relative dialog doesn't close the dialog. 2018-02-08 10:51:05 +01:00
gpcb_plugin.cpp Don't cache github libraries above nginx server. 2018-03-04 01:16:59 +00:00
gpcb_plugin.h Don't cache github libraries above nginx server. 2018-03-04 01:16:59 +00:00
help_common_strings.h Standardize terminology for automatic zoom to "Zoom to Fit". 2018-03-16 08:38:36 -04:00
highlight.cpp fix code after renaming files 2018-01-29 22:00:44 +01:00
hotkeys.cpp Change 'Create Array' default hot key due to a conflict with 'New File' 2018-03-02 11:08:04 +01:00
hotkeys.h Make all new hotkeys editable; label some GAL-only hotkeys 2018-02-25 17:57:36 -05:00
hotkeys_board_editor.cpp Fix up file menu and hotkeys 2018-02-18 11:22:16 -05:00
hotkeys_footprint_editor.cpp rename files 2018-02-16 20:27:55 +01:00
initpcb.cpp fix code after renaming files 2018-01-29 22:00:44 +01:00
invoke_pcb_dialog.h Fix a few doxygen warnings 2017-06-20 10:47:30 +02:00
io_mgr.cpp Fix footprint wizard setup of gEDA libraries. 2018-03-03 20:08:29 +00:00
io_mgr.h Don't cache github libraries above nginx server. 2018-03-04 01:16:59 +00:00
kicad_clipboard.cpp Fix pasting BOARD_ITEMs containing Unicode characters 2018-03-13 17:40:18 +01:00
kicad_clipboard.h Improved copy/paste functionality by Kristoffer: 2017-09-30 14:28:54 +02:00
kicad_netlist_reader.cpp Fix quotes in UI messages 2017-12-15 07:33:07 -05:00
kicad_plugin.cpp Don't cache github libraries above nginx server. 2018-03-04 01:16:59 +00:00
kicad_plugin.h Don't cache github libraries above nginx server. 2018-03-04 01:16:59 +00:00
layer_widget.cpp Ensure router layer is visible. 2018-03-16 02:43:17 +00:00
layer_widget.h Coverity fixes 2018-03-19 10:02:05 +01:00
legacy_netlist_reader.cpp UI string normalization. 2017-12-24 10:04:32 -05:00
legacy_plugin.cpp Don't cache github libraries above nginx server. 2018-03-04 01:16:59 +00:00
legacy_plugin.h Don't cache github libraries above nginx server. 2018-03-04 01:16:59 +00:00
load_select_footprint.cpp Go back to checking individual file timestamps. 2018-02-23 10:56:12 -05:00
magnetic_tracks_functions.cpp fix code after renaming files 2018-01-29 22:00:44 +01:00
menubar_footprint_editor.cpp Standardize terminology for automatic zoom to "Zoom to Fit". 2018-03-16 08:38:36 -04:00
menubar_pcb_editor.cpp Standardize terminology for automatic zoom to "Zoom to Fit". 2018-03-16 08:38:36 -04:00
microwave.cpp Add WX_TEXT_ENTRY_DIALOG which inherits from DIALOG_SHIM. 2018-03-12 22:45:51 +00:00
minimun_spanning_tree.cpp
minimun_spanning_tree.h
move-drag_pads.cpp Fix code after renaming files 2018-01-29 16:40:22 +01:00
move_or_drag_track.cpp fix code after renaming files 2018-01-29 22:00:44 +01:00
muwave_command.cpp fix code after renaming files 2018-01-29 22:00:44 +01:00
netclass.cpp fix code after renaming files 2018-01-30 15:34:09 +01:00
netclass.h rename files 2018-01-30 13:55:02 +01:00
netinfo.h fix code after renaming files 2018-01-30 15:34:09 +01:00
netinfo_item.cpp rename files 2018-01-30 13:55:02 +01:00
netinfo_list.cpp fix code after renaming files 2018-01-30 15:34:09 +01:00
netlist.cpp Refresh track & via net names after netlist update 2018-02-15 10:26:19 +01:00
netlist_reader.cpp Fix quotes in UI messages 2017-12-15 07:33:07 -05:00
netlist_reader.h Doxygen comment improvements. 2017-06-13 19:47:46 -04:00
onleftclick.cpp New menu structure for ModEdit. 2018-02-20 10:49:41 -05:00
onrightclick.cpp Standardize capitalization 2018-03-08 12:33:32 -08:00
pad_custom_shape_functions.cpp pcbnew: fixes in primitives->custom pad tool 2018-03-06 14:59:15 +01:00
pad_draw_functions.cpp Print solder and paste masks if user asks for them. 2018-02-22 09:04:33 +01:00
pad_edition_functions.cpp rename files 2018-02-02 21:57:12 +01:00
pcb_base_edit_frame.cpp Multiple improvements concerning colors, configuration handling and legacy features in pcbnew: 2017-08-04 16:06:57 +02:00
pcb_base_edit_frame.h Fix code after renaming files 2018-01-29 16:40:22 +01:00
pcb_base_frame.cpp Update status bar and toolbars on language change. 2018-03-18 22:17:27 +00:00
pcb_display_options.cpp rename files 2018-02-02 21:57:12 +01:00
pcb_draw_panel_gal.cpp Do not draw pads on hidden copper layers. 2018-02-21 14:18:51 -05:00
pcb_draw_panel_gal.h Use worksheet bounding box when the board is empty 2018-01-11 11:28:19 +01:00
pcb_edit_frame.cpp Update status bar and toolbars on language change. 2018-03-18 22:17:27 +00:00
pcb_edit_frame.h Update status bar and toolbars on language change. 2018-03-18 22:17:27 +00:00
pcb_footprint_edit_utils.cpp Update ratsnest after a footprint change 2018-03-05 16:42:30 +01:00
pcb_general_settings.cpp Fix compil warnings 2018-03-01 18:24:36 +01:00
pcb_general_settings.h Share certain settings between board and footprint editor 2018-03-01 17:20:50 +01:00
pcb_layer_box_selector.cpp rename files 2018-02-02 21:57:12 +01:00
pcb_layer_box_selector.h fix code after file renaming 2018-01-31 09:24:02 +01:00
pcb_layer_widget.cpp Ensure router layer is visible. 2018-03-16 02:43:17 +00:00
pcb_layer_widget.h Merge PCB_LAYER_WIDGET::SyncRenderStates into ReFillRender 2018-02-23 16:25:58 +01:00
pcb_legacy_draw_utils.cpp rename files 2018-01-31 17:10:01 +01:00
pcb_netlist.cpp Add footprint select dropdown to component chooser, serious refactoring 2017-03-24 09:20:27 -04:00
pcb_netlist.h Add footprint select dropdown to component chooser, serious refactoring 2017-03-24 09:20:27 -04:00
pcb_painter.cpp PCB_PAINTER: use dynamic_cast to determine whether an object is of EDA_ITEM type 2018-02-26 17:22:50 +01:00
pcb_painter.h Fix a minor issue in pad editor dialog: in GAL mode, the pad was sometimes shown in outline mode, sometimes in filled mode 2018-01-12 19:58:32 +01:00
pcb_parser.cpp Revert "Allow 5.0 to read 6.0 files with hole-to-hole clearance settings." 2018-03-16 22:22:15 +00:00
pcb_parser.h Revert "Don't be pedantic about the file format." 2018-03-16 18:11:36 +00:00
pcb_plot_params.cpp rename files: update filenames in sources 2018-01-28 19:12:26 +01:00
pcb_plot_params.h rename files: update filenames in sources 2018-01-28 19:12:26 +01:00
pcb_plot_params_parser.h Removed all exception specifiers since deprecated. 2017-06-12 13:54:55 -04:00
pcb_screen.cpp rename files 2018-02-02 21:57:12 +01:00
pcb_view.cpp Remove some extra semicolons 2017-11-09 19:52:18 +01:00
pcb_view.h Removed unused variables in PCB_VIEW 2017-12-14 17:13:42 +01:00
pcbnew.cpp Fix spelling error 2018-02-15 16:46:10 +01:00
pcbnew.h Multiple improvements concerning colors, configuration handling and legacy features in pcbnew: 2017-08-04 16:06:57 +02:00
pcbnew.icns
pcbnew.rc
pcbnew_config.cpp fix misspelled 'Unkown' -> 'Unknown' 2018-02-25 17:10:10 -05:00
pcbnew_config.h Multiple improvements concerning colors, configuration handling and legacy features in pcbnew: 2017-08-04 16:06:57 +02:00
pcbnew_doc.icns
pcbnew_id.h Retire auto-delete-old-track from toolbar. 2018-03-15 11:41:27 +00:00
pcbplot.cpp fix code after renaming files 2018-01-29 22:00:44 +01:00
pcbplot.h Fix a few doxygen warnings 2017-06-17 10:40:38 +02:00
plot_board_layers.cpp Fix code after renaming files 2018-01-29 16:40:22 +01:00
plot_brditems_plotter.cpp Fix regression in plotting %R and %V text. 2018-02-21 18:02:06 -05:00
plotcontroller.h
plugin.cpp Go back to checking individual file timestamps. 2018-02-23 10:56:12 -05:00
print_board_functions.cpp Minor fixes (fix a compil warning, and a incorrectly sized dialog) 2018-02-22 14:29:33 +01:00
printout_controler.cpp Fix code after renaming files 2018-01-29 16:40:22 +01:00
printout_controler.h
protos.h Code cleaning: add comments, better names for a function, simplify code. No actual code change. 2017-05-04 08:54:30 +02:00
ratsnest.cpp fix code after renaming files 2018-01-29 22:00:44 +01:00
ratsnest_data.cpp fix compil issue in kicad.i and a minor compil warning 2018-01-28 22:24:51 +01:00
ratsnest_data.h Fix a few doxygen warnings 2017-06-25 11:26:04 +02:00
ratsnest_viewitem.cpp 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
ratsnest_viewitem.h Code formatting and clean-up 2017-06-23 15:43:13 +02:00
sel_layer.cpp fix code after file renaming 2018-01-31 09:24:02 +01:00
swap_layers.cpp fix code after renaming files 2018-01-29 22:00:44 +01:00
target_edit.cpp fix code after renaming files 2018-01-29 22:00:44 +01:00
tool_footprint_editor.cpp Standardize capitalization 2018-03-08 12:33:32 -08:00
tool_footprint_viewer.cpp Standardize terminology for automatic zoom to "Zoom to Fit". 2018-03-16 08:38:36 -04:00
tool_onrightclick.cpp fix code after renaming files 2018-01-29 22:00:44 +01:00
tool_pcb_editor.cpp Retire auto-delete-old-track from toolbar. 2018-03-15 11:41:27 +00:00
toolbars_update_user_interface.cpp Retire auto-delete-old-track from toolbar. 2018-03-15 11:41:27 +00:00
tracks_cleaner.cpp Track cleaner: make option "Delete dangling tracks" working again. 2018-02-04 15:05:31 +01:00
undo_redo.cpp fix code after renaming files 2018-01-29 22:00:44 +01:00
zone_filler.cpp Custom pads: allows solid connection to zones. 2018-03-11 20:39:29 +01:00
zone_filler.h Reinstate multi-threading in zone filler. 2018-03-03 17:41:53 +00:00
zone_settings.cpp Respect 45-degree mode when set from zone dialog. 2018-02-20 17:38:20 +01:00
zone_settings.h rename files 2018-01-30 13:55:02 +01:00
zones.h
zones_by_polygon.cpp Minor fix in zones_by_polygon.cpp: When editing a non copper zone, some settings were not those of the edited zone. 2018-03-14 19:03:14 +01:00
zones_by_polygon_fill_functions.cpp Refresh zones in the view on a DRC run 2018-03-07 09:05:51 +01:00
zones_functions_for_undo_redo.cpp fix code after renaming files 2018-01-29 22:00:44 +01:00
zones_functions_for_undo_redo.h
zones_test_and_combine_areas.cpp fix code after file renaming 2018-01-31 09:24:02 +01:00