kicad/include
John Beard 7acc0b89f9 Pcbnew: fix 45-degree snapping of ruler and dimension tools
This introduces a new util function in geometry_utils which snaps a vector
to axes or 45 degree lines. This can be used whenever you want to
snap a vector to these angles, but still want it to stay on a grid.

This snapping is used for the dimension tool and the ruler tool.

This is substantially simpler for two-point tools that the method
used by the line tool, which uses DIRECTION_45.

Fixes: lp:1780826
https://bugs.launchpad.net/kicad/+bug/1780826
2018-07-24 15:01:02 +01:00
..
core Code formatting 2018-03-01 17:20:50 +01:00
gal Modified STROKE_FONT::ComputeStringBoundaryLimits() to process multiline strings 2018-03-08 10:56:34 +01:00
geometry Pcbnew: fix 45-degree snapping of ruler and dimension tools 2018-07-24 15:01:02 +01:00
kicad_curl Spelling indentifier -> identifier 2018-03-08 12:33:32 -08:00
libeval Clean up units infrastructure after g_UserUnit removal. 2018-07-17 15:12:36 +01:00
math Don't center objects behind the DRC dialog. 2018-07-17 15:09:43 +01:00
plugins Remove some extra semicolons 2017-11-09 19:52:18 +01:00
preview_items Pcbnew: fix 45-degree snapping of ruler and dimension tools 2018-07-24 15:01:02 +01:00
system Remove some extra semicolons 2017-11-09 19:52:18 +01:00
tool More g_UserUnit erradication. 2018-07-17 15:12:31 +01:00
ttl Remove some extra semicolons 2017-11-09 19:52:18 +01:00
view Don't center objects behind the DRC dialog. 2018-07-17 15:09:43 +01:00
widgets Improve validation of symbol fields editor. 2018-07-21 21:28:13 +01:00
base_screen.h fix code after file renaming 2018-01-31 09:24:02 +01:00
base_struct.h Remove global units usage from GetSelectionText... 2018-07-17 15:11:09 +01:00
base_units.h Allow user-specification of dimension units. 2018-07-21 13:50:21 +01:00
basic_gal.h fix misspelled 'allows to' -> 'allows one to' 2018-07-11 10:35:03 -04:00
bezier_curves.h DXF import: add import of DXF splines that are converted to Bezier curves. 2018-07-22 18:39:47 +02:00
bin_mod.h Minor coding style fixes in headers 2016-01-12 11:33:33 -05:00
bitmap_base.h fix misspelled 'an other' -> 'another' 2018-04-08 13:24:37 -04:00
bitmap_types.h Implement primitive icon scaling for high DPI 2018-01-10 21:26:06 -07:00
bitmaps.h Pcbnew: add new icon for board setup 2018-07-24 14:58:19 +01:00
block_commande.h fix code after file renaming 2018-01-31 09:24:02 +01:00
board_design_settings.h Fix occurrences of "edition" which should be "editing" 2018-07-17 15:12:39 +01:00
build_version.h More missing source license fixes. 2014-10-22 11:51:34 -04:00
class_board_item.h Fix occurrences of "edition" which should be "editing" 2018-07-17 15:12:39 +01:00
class_draw_panel_gal.h Remove global units usage from GetSelectionText... 2018-07-17 15:11:09 +01:00
class_drawpanel.h Organize trace debugging code for ease of maintenance. 2018-04-13 09:59:01 -04:00
collector.h Removing the last of time_t and fixing downcast corner bug in collector 2018-03-27 16:52:06 -07:00
colors.h Change from EDA_COLOR_T to COLOR4D globally; arbitrary color support 2017-02-22 17:35:00 +01:00
colors_design_settings.h rename files 2018-01-31 09:24:00 +01:00
commit.h Don't set dirty bit when adding MARKERs. 2018-04-09 21:19:11 +01:00
common.h Clean up units infrastructure after g_UserUnit removal. 2018-07-17 15:12:36 +01:00
config_map.h Fix a few doxygen warnings 2017-06-20 10:47:30 +02:00
config_params.h Consolidate design rules UI. 2018-07-17 15:12:34 +01:00
confirm.h Derive DIALOG_MULTI_OPTIONS from wxMultiChoiceDialog 2018-03-02 18:09:27 +01:00
convert_basic_shapes_to_polygon.h Better calculation of polygon clearance area of oval pads. Wip. 2018-01-20 19:34:50 +01:00
convert_to_biu.h Switch zone fillets to absolute-error algorithm. 2018-03-23 12:46:17 +00:00
dialog_configure_paths.h Finish project frame library table editing. 2018-07-20 18:48:06 +01:00
dialog_edit_library_tables.h Add Manage Symbol and Footprint Library tables to project frame. 2018-07-19 21:46:41 +01:00
dialog_helpers.h Clean up units infrastructure after g_UserUnit removal. 2018-07-17 15:12:36 +01:00
dialog_shim.h Add Manage Symbol and Footprint Library tables to project frame. 2018-07-19 21:46:41 +01:00
dlist.h Refinement to commit #4993. 2014-07-14 16:43:21 +02:00
draw_frame.h Add grid and zone dropdowns to GerbView frame. 2018-07-17 15:13:58 +01:00
draw_graphic_text.h DrawGraphicText: remove a static variable, and replace it (when needed) by a new parameter in argument list. 2018-04-07 19:57:26 +02:00
drc_item.h Eradicate g_UserUnit from ERC/DRC. 2018-07-17 15:12:16 +01:00
dsnlexer.h fix misspelled 'an other' -> 'another' 2018-04-08 13:24:37 -04:00
eagle_parser.h Fix some Coverity uninitialized field warnings. 2018-06-04 13:48:57 -04:00
eda_base_frame.h Add Manage Symbol and Footprint Library tables to project frame. 2018-07-19 21:46:41 +01:00
eda_dde.h Keep track of open sockets and dispose of them in d'tor. 2018-04-04 12:02:40 +01:00
eda_doc.h More forgiving keyword search. 2018-05-10 12:16:00 +01:00
eda_pattern_match.h Prevent implicit * from wildcard match in footprint 2018-05-01 16:49:20 -07:00
eda_rect.h Fix code after renaming files 2018-01-29 11:37:29 +01:00
eda_text.h Changed default text size to 50mils 2017-12-21 12:16:57 -05:00
enabler.h Prevent issuing a print command before the previous one is finished 2018-04-23 11:25:28 +02:00
enum_vector.h eeschema: Iterate through plugins when determining file format. 2017-10-20 08:38:38 +02:00
env_paths.h Footprint Wizard now also handles custom Env paths 2018-04-06 14:51:09 +01:00
executable_names.h Move executable name constants to own file 2017-03-23 09:23:45 -04:00
fctsys.h removed wx carbon include in fctsys as it is unnecessary 2015-12-12 23:03:35 +13:00
filename_resolver.h Fold 3D Search Paths dialog into Configure Paths. 2018-07-17 15:11:01 +01:00
filter_reader.h Removed all exception specifiers since deprecated. 2017-06-12 13:54:55 -04:00
footprint_filter.h Update footprint filter type-in to be implicit * 2018-05-08 10:44:14 -07:00
footprint_info.h Async hardening 2018-06-04 15:08:40 -07:00
fp_lib_table.h Go back to checking individual file timestamps. 2018-02-23 10:56:12 -05:00
frame_type.h Removed all exception specifiers since deprecated. 2017-06-12 13:54:55 -04:00
gbr_metadata.h Gerber X1 plot files: prepare adding more structured comments (aperture and object attributes) 2018-05-17 17:32:35 +02:00
gbr_netlist_metadata.h Pcbnew: fix minor issue in %TO.C advanced attribute, and avoid creating an unused D10 tool in Gerber files. 2017-07-02 16:41:31 +02:00
gestfich.h Doxygen comment improvements. 2017-06-13 19:47:46 -04:00
gl_context_mgr.h Reverted 6912 with minor changes (LockCtx requires to specify canvas that locks a context). 2016-06-13 16:43:33 +02:00
gr_basic.h eeschema: neatly wrap placeholder text in symbol chooser 2018-01-07 19:30:56 -07:00
grid_tricks.h Move all the grid workarounds into our own WX_GRID class. 2018-07-17 15:11:38 +01:00
hash_eda.h Hash functions for BOARD_ITEMs 2017-10-24 23:10:40 +02:00
hashtables.h Pcbnew: major swig fix. 2016-07-18 13:23:09 -04:00
hotkeys_basic.h Save hotkeys to combined app-based file 2018-05-18 12:57:38 -07:00
html_messagebox.h Release mouse before closing HTML_MESSAGE_BOX. 2018-05-21 13:18:41 +01:00
i18n_utility.h Try to fix a compil issue on OSX (no viable conversion from 'const wxString' to 'const wxChar *', in colors.cpp) 2016-05-17 09:10:15 +02:00
id.h Add Manage Symbol and Footprint Library tables to project frame. 2018-07-19 21:46:41 +01:00
import_export.h Use _WIN32 instead of __MINGW32__ in 2 conditional compilations which are Windows specific, not especially mingw32 specific. 2016-03-01 16:55:44 +01:00
incremental_text_ctrl.h Fix a few doxygen warnings 2017-06-16 09:18:31 +02:00
intrusive_list.h Moved INTRUSIVE_LIST to a separate header 2017-06-23 18:51:00 +02:00
ki_exception.h Add KI_PARAM_ERROR, similar to std::invalid_argument but using wxString instead of std::string to throw errors. 2018-06-05 13:29:51 +02:00
ki_mutex.h More missing source license fixes. 2014-10-22 11:51:34 -04:00
kicad_device_context.h Minor coding style fixes in headers 2016-01-12 11:33:33 -05:00
kicad_string.h Fold 3D Search Paths dialog into Configure Paths. 2018-07-17 15:11:01 +01:00
kiface_i.h Fix a few doxygen warnings 2017-06-20 10:47:30 +02:00
kiface_ids.h Make sure Cvpcb doesn't use its own FP_LIB_TABLE. 2018-05-01 21:49:03 +01:00
kiway.h Unified preferences dialog framework. 2018-07-17 15:11:17 +01:00
kiway_express.h Explicitly mark overriding functions. 2016-09-24 14:53:15 -04:00
kiway_mgr.h Minor coding style fixes in headers 2016-01-12 11:33:33 -05:00
kiway_player.h Unified preferences dialog framework. 2018-07-17 15:11:17 +01:00
layer_box_selector.h In-place editing for footprint TEXTE_MODULEs. 2018-07-17 15:11:04 +01:00
layers_id_colors_and_visibility.h In-place editing for footprint TEXTE_MODULEs. 2018-07-17 15:11:04 +01:00
length.h.usuned Namespace KiGfx->KIGFX. 2013-10-14 16:13:35 +02:00
lib_id.h eeschema: Rescue symbols with illegal chars 2018-06-27 14:15:30 -07:00
lib_table_base.h Add Manage Symbol and Footprint Library tables to project frame. 2018-07-19 21:46:41 +01:00
lib_table_grid.h fix a minor compil warning 2018-05-06 12:49:35 +02:00
lockfile.h Doxygen comment improvements. 2017-06-13 19:47:46 -04:00
lru_cache.h 3D Viewer: complete refactor of the 3D viewer. 2016-07-19 13:35:25 -04:00
macros.h EDA_TEXT object refactor. 2017-01-25 08:03:32 -05:00
mail_type.h Dialog-ize CvPcb and implement proper Save. 2018-03-25 19:21:27 +01:00
make_unique.h Add C++14-style std::make_unique 'polyfill' for C++11 2017-01-23 11:41:00 +01:00
marker_base.h Eradicate g_UserUnit from ERC/DRC. 2018-07-17 15:12:16 +01:00
md5_hash.h pcbnew: Optimized zone filling algorithm. 2017-12-05 14:54:57 +01:00
menus_helpers.h Make show/hide icons in menus a run time option, instead of compil option. 2017-03-02 15:45:54 +01:00
msgpanel.h Changed COLOR4D defines to static consts 2017-02-22 17:35:00 +01:00
multivector.h fix a segfault in library editor when importing symbols. 2017-10-12 10:38:48 +02:00
newstroke_font.h Fix incorrect (too small) bounding box EDA_TEXT, noticeable when chars like j or { are used in zone fill functions. 2016-03-11 13:08:34 +01:00
observable.h Fix a few doxygen warnings 2017-06-16 09:18:31 +02:00
origin_viewitem.h Implement undo/redo for origins in legacy 2018-01-27 19:51:44 -05:00
pad_shapes.h Add support for custom pad shape. Full support in DRC and PnS. 2017-09-19 09:02:53 +02:00
page_info.h Fix code after renaming files 2018-01-29 11:37:29 +01:00
painter.h Wire m_showPageLimits control up to GAL canvas. 2018-07-17 15:13:29 +01:00
panel_hotkeys_editor.h Unified preferences dialog framework. 2018-07-17 15:11:17 +01:00
pcb_base_frame.h Simplify copy/paste of pad settings. 2018-07-17 15:13:39 +01:00
pcb_display_options.h refactoring: renamed pcbstruct.h to pcb_display_options.h, DISPLAY_OPTIONS->PCB_DISPLAY_OPTIONS 2017-11-03 20:02:06 +01:00
pcb_screen.h Fix code after renaming files 2018-01-29 11:37:29 +01:00
pcbstruct.h pcbnew legacy: remove option to hide via drill 2016-05-10 16:47:37 -04:00
pgm_base.h Unified preferences dialog framework. 2018-07-17 15:11:17 +01:00
plotter.h Fix flicking issues on non-double-buffered platforms. 2018-07-19 21:46:41 +01:00
profile.h New connectivity algorithm. 2017-06-23 11:12:36 +02:00
project.h Save ModEdit's footprint ID rather than source. 2018-03-09 01:32:52 +00:00
properties.h Store information about buffering & caching in properties 2017-02-28 15:18:58 +01:00
ptree.h Removed all exception specifiers since deprecated. 2017-06-12 13:54:55 -04:00
reporter.h Optionally sort reporter messages 2018-05-22 13:55:02 -07:00
richio.h richio.h, class LINE_READER: prefix variable member names by "m_", like in other classes in Kicad. 2017-11-12 18:29:56 +01:00
scoped_set_reset.h Add context menu to GAL DRAWING_TOOL, including the zone menu 2017-01-11 10:41:08 +01:00
search_stack.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
status_popup.h Bug fixes in Length Tuning UI. 2018-05-20 23:48:29 +01:00
streamwrapper.h Fix a few doxygen warnings and add a few comments. 2017-07-04 11:08:27 +02:00
sync_queue.h Fix SYNC_QUEUE build issue on Boost < 1.56 2017-03-24 10:09:08 -04:00
systemdirsappend.h Move SystemDirsAppend to own header 2017-03-23 09:23:45 -04:00
text_utils.h Added files missing in 602ecf75 2017-12-07 18:14:19 +01:00
title_block.h Fix code after renaming files 2018-01-29 11:37:29 +01:00
trace_helpers.h Replace printf debugging output in common/project.cpp with wxLogTrace. 2018-04-30 15:18:09 -04:00
trigo.h 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
undo_redo_container.h fix misspelled 'an other' -> 'another' 2018-04-08 13:24:37 -04:00
unit_format.h Moved FMT_UI & FMT_ANGLE macros to a separate header 2017-10-20 09:34:32 +02:00
utf8.h change UTF8& operator+=( wchar_t ch ) to UTF8& operator+=( unsigned ch ), because swig does not like wchar_t. 2017-12-08 17:57:53 +01:00
validators.h UI infrastructure enhancements and bug fixes. 2018-07-17 15:10:15 +01:00
wildcards_and_files_ext.h GTK+ file dialog wildcard improvements. 2017-11-11 19:32:26 -05:00
worksheet.h Fix code after renaming files 2018-01-29 11:37:29 +01:00
worksheet_dataitem.h Fix occurrences of "edition" which should be "editing" 2018-07-17 15:12:39 +01:00
worksheet_shape_builder.h page layout editor: fix a crash on block move. 2018-03-10 10:25:07 +01:00
worksheet_viewitem.h Gerbview: GAL mode: shows the page worksheet, similar to legacy mode. 2018-06-01 09:11:43 +02:00
wxdataviewctrl_helpers.h Move wxDataViewCtrl manipulators out of dialog_choose_component.cpp 2017-03-30 21:47:14 -04:00
xnode.h Removed all exception specifiers since deprecated. 2017-06-12 13:54:55 -04:00