kicad/common
Céleste Wouters e98c9f283f Improve SHAPE_POLY_SET fracture performance
Refactors `SHAPE_POLY_SET::fractureSingle()` to be more efficient, while
not changing the actual algorithm:

* increase cache locality by using contiguous arrays instead of what was
effectively a linked list
* reduce latency and jitter by replacing per-edge allocator calls with
ahead-of-time std::vector reserves
* increase cache efficiency by making the vertex struct smaller
* replace O(n^2) leftmost edge search with O(n log n) std::sort
* sort the polygons instead of the edges
* cut iteration count in half in the remaining O(polygons * edges) part
2024-03-27 21:19:02 +00:00
..
database Move JSON_SETTINGS and PARAMS to kicommon 2024-03-20 23:29:42 -04:00
dialog_about Footprint Chooser dialog: Allow toggle buttons to work simultaneously 2024-03-23 09:48:15 +00:00
dialogs Move PGM_BASE to kicommon 2024-03-20 23:29:42 -04:00
drawing_sheet Use a version string without the extra packaging info in drawing sheets. 2024-02-29 01:24:39 +00:00
font Don't assume all glyphs are outline with an outline font. 2024-03-18 22:21:01 +00:00
gal Do not write alpha to the main framebuffer when performing antialiasing. 2024-03-12 08:04:56 +03:00
git Hide unused variable warnings in git error strings 2023-12-24 01:22:21 +00:00
http_lib removed unnecessary variables 2024-01-23 22:32:05 +00:00
import_gfx Don't import invalid polygons. 2024-02-25 12:28:19 +00:00
io Move JSON_SETTINGS and PARAMS to kicommon 2024-03-20 23:29:42 -04:00
jobs CLI: Add allegro and pads netlist output format options 2024-03-26 19:58:22 +08:00
kicad_curl ADDED: KiCad update check 2023-12-13 20:47:40 -05:00
libeval Add um support to the unit binder 2023-11-26 00:03:09 +00:00
libeval_compiler Handle backslash-escaped quotes in libeval. 2023-09-30 17:38:44 +01:00
plotters Reset penWidth before stroking. 2024-03-14 17:40:04 +00:00
preview_items Smallest font size was a bit too small. 2023-12-18 14:24:04 +00:00
project Move JSON_SETTINGS and PARAMS to kicommon 2024-03-20 23:29:42 -04:00
properties wxWidgets 3.3 compatibility: properties API 2024-03-20 22:02:40 -04:00
settings Fix msys2 build 2024-03-21 19:52:18 -04:00
swig Expose CORNER_STRATEGY to swig 2024-01-17 17:08:14 -05:00
tool Grid properties for GerbView. 2024-03-10 18:21:50 +00:00
view Don't take too long worrying about very small exposed areas. 2024-03-21 18:14:29 +00:00
widgets Better locality-of-reference for footprint chooser filters. 2024-03-23 12:48:52 +00:00
CMakeLists.txt Move PGM_BASE to kicommon 2024-03-20 23:29:42 -04:00
advanced_config.cpp Improve SHAPE_POLY_SET fracture performance 2024-03-27 21:19:02 +00:00
array_axis.cpp Some more wxS 2023-01-15 21:32:23 -05:00
array_options.cpp More EDA_ANGLE changes. 2022-01-14 16:08:19 +00:00
asset_archive.cpp Fix a bunch of compiler warnings 2023-04-11 17:01:30 +00:00
background_jobs_monitor.cpp Add more thread safety to background jobs 2023-08-11 22:37:43 -04:00
base_screen.cpp Yeet the last of wxSize/wxPoint to stop leaking gdicmn everywhere 2023-02-18 22:57:18 -05:00
bin_mod.cpp Include optimization: move some things from common.h to point-of-use 2021-03-20 12:09:18 -04:00
bitmap.cpp REMOVED: manual icon scale preference 2023-10-22 14:02:06 -04:00
bitmap_base.cpp Coverity warning fixes. 2023-12-18 16:09:13 -05:00
bitmap_info.cpp Horizontal/vertical zoom for Simulator plots 2024-03-10 12:43:18 +00:00
bitmap_store.cpp ADDED: Icon scaling for toolbars only 2023-10-22 14:02:06 -04:00
board_printout.cpp Fail GAL on its header leaking audit 2023-09-18 19:52:27 -04:00
build_version.cpp Use a version string without the extra packaging info in drawing sheets. 2024-02-29 01:24:39 +00:00
callback_gal.cpp Improve appearance of stroked knockout text. 2023-05-26 19:53:38 +01:00
cli_progress_reporter.cpp ADDED: ERC over cli....mostly 2023-08-13 20:31:19 -04:00
commit.cpp Fix overly agressive assert. 2023-12-16 16:20:36 +00:00
common.cpp Transparently support old versioned env vars for symbol and footprint libs 2024-02-15 15:31:08 +00:00
config_params.cpp config_params doesnt need color4d 2023-09-14 19:21:55 -04:00
confirm.cpp Remove confirms dependence on pgm_base and unused header 2023-09-23 10:20:31 -04:00
dialog_shim.cpp Only raise the parent when show=false 2023-12-04 16:55:36 -08:00
dpi_scaling_common.cpp Break out the boundary violating parts of gal into common through subclassing 2023-09-23 09:37:47 -04:00
draw_panel_gal.cpp Profile can live in core 2023-09-07 07:47:01 -04:00
drc_rules.keywords Move connection width testing to rule system. 2022-08-01 13:09:51 +01:00
dsnlexer.cpp dsnlexer can live in kicommon 2024-01-03 23:18:31 -05:00
eda_base_frame.cpp Grid properties for GerbView. 2024-03-10 18:21:50 +00:00
eda_dde.cpp Fix comment placement 2022-09-28 21:19:19 -04:00
eda_doc.cpp Move two pgm_base method definitions back to pgm_base.cpp 2023-12-28 08:26:10 -05:00
eda_draw_frame.cpp Move Net Inspector dialog to a widget panel in pcbnew 2024-03-19 01:02:01 +00:00
eda_item.cpp ADDED: PCB tables. 2024-02-24 20:05:51 +00:00
eda_pattern_match.cpp Fix bug in wildcard search handling. 2023-06-17 23:53:37 +01:00
eda_shape.cpp Table plotting for PCBNew. 2024-03-24 16:49:33 +00:00
eda_text.cpp Make sure users don't run into min text size. 2024-03-23 15:50:45 +00:00
eda_tools.cpp Fix shadowed definition of EAGLE constant 2022-09-24 01:37:57 +01:00
eda_units.cpp Fix spelling mistake. 2024-03-23 21:43:30 +03:00
env_paths.cpp More wxS ugh 2023-01-17 07:43:04 -05:00
env_vars.cpp Remove hard-coded versioned env vars in most places 2024-02-15 15:31:08 +00:00
exceptions.cpp More defensive coding for KICAD-YP. 2024-03-24 19:22:05 +00:00
executable_names.cpp wxS more things 2023-01-22 09:41:42 -05:00
file_history.cpp Class name <-> file name sync. 2022-12-29 18:05:57 +00:00
filename_resolver.cpp Remove hard-coded versioned env vars in most places 2024-02-15 15:31:08 +00:00
filter_reader.cpp Start expunging NULL. 2021-07-15 15:44:45 -04:00
footprint_filter.cpp Formatting. 2023-08-31 11:36:39 +01:00
footprint_info.cpp Escape error messages for HTML. 2024-01-05 11:03:36 +00:00
fp_lib_table.cpp Attempt to prevent KICAD-YP. 2024-03-24 18:12:58 +00:00
gal_display_options_common.cpp Break out the boundary violating parts of gal into common through subclassing 2023-09-23 09:37:47 -04:00
gbr_metadata.cpp Fix wrong path slash 2023-09-07 22:09:26 -04:00
gestfich.cpp ADDED: library tree context menu option to open sym/fp library files from the defined text editor. 2024-02-29 19:01:59 +00:00
gr_basic.cpp Fix my commit d07738a06c. 2023-02-25 19:06:46 +01:00
gr_text.cpp ADDED: parameterize font metrics and allow customization of overbar height. 2023-08-06 20:57:41 +01:00
grid_tricks.cpp Close active cell editor when showing/hiding columns. 2024-03-24 10:09:27 +00:00
hash_eda.cpp ADDED: PCB tables. 2024-02-24 20:05:51 +00:00
hotkey_store.cpp Add autocomplete accept & cancel to the hotkeys list. 2024-03-15 00:40:17 +00:00
hotkeys_basic.cpp Add autocomplete accept & cancel to the hotkeys list. 2024-03-15 00:40:17 +00:00
kiface_base.cpp Fix paths for Copy default global library table. 2023-01-27 09:24:52 +03:00
kiid.cpp Fix broken symbol reference designators on paste special. 2023-12-01 14:18:47 -05:00
kiway.cpp Move PGM_BASE to kicommon 2024-03-20 23:29:42 -04:00
kiway_express.cpp We don't keep a CHANGELOG.TXT 2021-10-05 19:46:53 -07:00
kiway_holder.cpp Banish ignore.h to core 2023-04-18 22:44:04 -04:00
kiway_player.cpp Separate BITMAP2CMP_PANEL from BITMAP2CMP_FRAME. 2023-06-15 17:39:10 +01:00
launch_ext.cpp Require wxWidgets 3.2 2023-08-23 22:02:56 +00:00
layer_id.cpp Allow GetLayer() to be used with single-layer zones. 2023-08-08 12:43:22 +01:00
lib_id.cpp Remove atrophied terminology (logical -> nickname) 2024-02-05 15:49:57 +00:00
lib_table.keywords Add versioning to lib tables 2023-01-23 22:21:12 +00:00
lib_table_base.cpp Fix legacy lib table loading logic 2023-08-18 22:46:33 -04:00
lib_table_grid_tricks.cpp Add batch edit for visible flag. 2023-09-26 00:31:37 +01:00
lib_tree_model.cpp Fix a few LIB_TREE search issues 2024-03-05 18:54:04 -05:00
lib_tree_model_adapter.cpp Fix a few LIB_TREE search issues 2024-03-05 18:54:04 -05:00
locale_io.cpp Move locale_io to kicommon 2023-09-11 21:51:58 -04:00
lset.cpp Add board layer view stack up sequence from front layer to back layer. 2023-12-11 15:07:58 -05:00
marker_base.cpp Small performance improvement for DRC. 2024-01-30 13:19:04 +00:00
markup_parser.cpp Unwrap the FROM_UTF8 macro in favor of direct function 2023-09-09 00:10:57 -04:00
netclass.cpp pcbnew: Change some of the default settings in board setup and netclasses 2023-01-29 23:20:40 +00:00
netlist.keywords Transmit pin electrical types through to pads. 2021-01-23 00:10:01 +00:00
newstroke_font.cpp Add the fraction numeric form glyphs. 2023-07-25 16:58:16 +00:00
notifications_manager.cpp Move JSON_SETTINGS and PARAMS to kicommon 2024-03-20 23:29:42 -04:00
origin_transforms.cpp
origin_viewitem.cpp More EDA_RECE yeetage. 2022-08-31 17:19:50 +01:00
page_info.cpp PAGE_INFO: use double instead of int to store the page size. 2023-10-31 13:47:32 +01:00
paths.cpp Change the platform detection order 2024-03-11 15:43:33 +00:00
pcb.keywords ADDED: textbox and tablecell margins. 2024-02-24 20:05:51 +00:00
pcb_plot_params.keywords ADDED: optional PDF metadata from AUTHOR and SUBJECT variables. 2024-03-14 17:40:04 +00:00
pgm_base.cpp Move PGM_BASE to kicommon 2024-03-20 23:29:42 -04:00
printout.cpp
project.cpp Do not mess with KIPRJMOD when loading aux projects 2024-02-08 18:28:20 -05:00
ptree.cpp We don't keep a CHANGELOG.TXT 2021-10-05 19:46:53 -07:00
rc_item.cpp ADDED: ERC/DRC exclusion comments. 2024-02-24 20:05:51 +00:00
refdes_utils.cpp More wxS ugh 2023-01-17 07:43:04 -05:00
render_settings.cpp Don't skip highlighting selected NPTH/via holes 2024-01-24 08:23:26 -05:00
reporter.cpp Use IsShownOnScreen(), not IsShown(), if you really want to know if its visible. 2023-10-14 23:51:37 +01:00
richio.cpp Initial rename of file plugin infrastructure components to IO 2023-12-24 01:22:21 +00:00
scintilla_tricks.cpp Allow Scintilla-created clipboard to be accessed after quit. 2024-03-12 17:09:07 +00:00
search_stack.cpp Unwrap the FROM_UTF8 macro in favor of direct function 2023-09-09 00:10:57 -04:00
searchhelpfilefullpath.cpp Don't use SystemDirsAppend on windows for finding the docs 2023-01-29 20:50:16 -05:00
single_top.cpp Move PGM_BASE to kicommon 2024-03-20 23:29:42 -04:00
status_popup.cpp Use preview items instead of highlightNets & status popup 2023-12-02 16:15:43 +00:00
streamwrapper.cpp Start expunging NULL. 2021-07-15 15:44:45 -04:00
string_utf8_map.cpp Rename PROPERTIES to STRING_UTF8_MAP for clarity 2022-11-06 11:51:52 -05:00
string_utils.cpp Performance optimizations for database libraries. 2024-02-23 20:29:18 +03:00
stroke_params.cpp Implement STROKE_PARAMS::Stroke() for SH_RECT. 2024-03-22 12:22:30 +00:00
stroke_params.keywords Shapes for schematic. 2021-12-23 20:36:07 +00:00
systemdirsappend.cpp Fix paths for Copy default global library table. 2023-01-27 09:24:52 +03:00
template_fieldnames.cpp Performance optimizations for database libraries. 2024-02-23 20:29:18 +03:00
template_fieldnames.keywords
textentry_tricks.cpp Add select-all to TEXT_ENTRY_TRICKS. 2023-04-09 21:25:09 +01:00
title_block.cpp Resolve double-indirection CURRENT_DATE in title blocks. 2024-03-05 13:43:41 +00:00
trace_helpers.cpp Print traces on windows to stderr 2024-02-10 19:05:21 +00:00
ui_events.cpp Move some language changes to a event on the frame 2024-03-03 11:02:26 -05:00
undo_redo_container.cpp Store group id rather than group 2024-02-28 13:27:38 -08:00
validators.cpp Require wxWidgets 3.2 2023-08-23 22:02:56 +00:00
wildcards_and_files_ext.cpp Add PADS netlist format export 2024-03-09 10:00:46 -05:00
wx_filename.cpp wx_filename.cpp: replace include macro.h by include string_utils.h 2023-09-09 09:38:44 +02:00
xnode.cpp Unwrap the FROM_UTF8 macro in favor of direct function 2023-09-09 00:10:57 -04:00