diff options
author | bubnikv <bubnikv@gmail.com> | 2018-09-19 12:02:24 +0300 |
---|---|---|
committer | bubnikv <bubnikv@gmail.com> | 2018-09-19 12:02:24 +0300 |
commit | 0558b53493a77bae44831cf87bb0f59359828ef5 (patch) | |
tree | c3e8dbdf7d91a051c12d9ebbf7606d41047fea96 | |
parent | 3ddaccb6410478ad02d8c0e02d6d8e6eb1785b9f (diff) |
WIP: Moved sources int src/, separated most of the source code from Perl.mass_rename
The XS was left only for the unit / integration tests, and it links
libslic3r only. No wxWidgets are allowed to be used from Perl starting
from now.
-rw-r--r-- | CMakeLists.txt | 198 | ||||
-rw-r--r-- | resources/localization/CMakeLists.txt | 8 | ||||
-rw-r--r-- | src/CMakeLists.txt | 65 | ||||
-rw-r--r-- | src/Shiny/CMakeLists.txt | 25 | ||||
-rw-r--r-- | src/Shiny/Shiny.h (renamed from xs/src/Shiny/Shiny.h) | 0 | ||||
-rw-r--r-- | src/Shiny/ShinyConfig.h (renamed from xs/src/Shiny/ShinyConfig.h) | 0 | ||||
-rw-r--r-- | src/Shiny/ShinyData.h (renamed from xs/src/Shiny/ShinyData.h) | 0 | ||||
-rw-r--r-- | src/Shiny/ShinyMacros.h (renamed from xs/src/Shiny/ShinyMacros.h) | 0 | ||||
-rw-r--r-- | src/Shiny/ShinyManager.c (renamed from xs/src/Shiny/ShinyManager.c) | 0 | ||||
-rw-r--r-- | src/Shiny/ShinyManager.h (renamed from xs/src/Shiny/ShinyManager.h) | 0 | ||||
-rw-r--r-- | src/Shiny/ShinyNode.c (renamed from xs/src/Shiny/ShinyNode.c) | 0 | ||||
-rw-r--r-- | src/Shiny/ShinyNode.h (renamed from xs/src/Shiny/ShinyNode.h) | 0 | ||||
-rw-r--r-- | src/Shiny/ShinyNodePool.c (renamed from xs/src/Shiny/ShinyNodePool.c) | 0 | ||||
-rw-r--r-- | src/Shiny/ShinyNodePool.h (renamed from xs/src/Shiny/ShinyNodePool.h) | 0 | ||||
-rw-r--r-- | src/Shiny/ShinyNodeState.c (renamed from xs/src/Shiny/ShinyNodeState.c) | 0 | ||||
-rw-r--r-- | src/Shiny/ShinyNodeState.h (renamed from xs/src/Shiny/ShinyNodeState.h) | 0 | ||||
-rw-r--r-- | src/Shiny/ShinyOutput.c (renamed from xs/src/Shiny/ShinyOutput.c) | 0 | ||||
-rw-r--r-- | src/Shiny/ShinyOutput.h (renamed from xs/src/Shiny/ShinyOutput.h) | 0 | ||||
-rw-r--r-- | src/Shiny/ShinyPrereqs.h (renamed from xs/src/Shiny/ShinyPrereqs.h) | 0 | ||||
-rw-r--r-- | src/Shiny/ShinyTools.c (renamed from xs/src/Shiny/ShinyTools.c) | 0 | ||||
-rw-r--r-- | src/Shiny/ShinyTools.h (renamed from xs/src/Shiny/ShinyTools.h) | 0 | ||||
-rw-r--r-- | src/Shiny/ShinyVersion.h (renamed from xs/src/Shiny/ShinyVersion.h) | 0 | ||||
-rw-r--r-- | src/Shiny/ShinyZone.c (renamed from xs/src/Shiny/ShinyZone.c) | 0 | ||||
-rw-r--r-- | src/Shiny/ShinyZone.h (renamed from xs/src/Shiny/ShinyZone.h) | 0 | ||||
-rw-r--r-- | src/admesh/CMakeLists.txt | 12 | ||||
-rw-r--r-- | src/admesh/connect.cpp (renamed from xs/src/admesh/connect.cpp) | 0 | ||||
-rw-r--r-- | src/admesh/normals.cpp (renamed from xs/src/admesh/normals.cpp) | 0 | ||||
-rw-r--r-- | src/admesh/shared.cpp (renamed from xs/src/admesh/shared.cpp) | 0 | ||||
-rw-r--r-- | src/admesh/stl.h (renamed from xs/src/admesh/stl.h) | 0 | ||||
-rw-r--r-- | src/admesh/stl_io.cpp (renamed from xs/src/admesh/stl_io.cpp) | 0 | ||||
-rw-r--r-- | src/admesh/stlinit.cpp (renamed from xs/src/admesh/stlinit.cpp) | 0 | ||||
-rw-r--r-- | src/admesh/util.cpp (renamed from xs/src/admesh/util.cpp) | 0 | ||||
-rw-r--r-- | src/agg/AUTHORS (renamed from xs/src/agg/AUTHORS) | 0 | ||||
-rw-r--r-- | src/agg/VERSION (renamed from xs/src/agg/VERSION) | 0 | ||||
-rw-r--r-- | src/agg/agg_array.h (renamed from xs/src/agg/agg_array.h) | 0 | ||||
-rw-r--r-- | src/agg/agg_basics.h (renamed from xs/src/agg/agg_basics.h) | 0 | ||||
-rw-r--r-- | src/agg/agg_bezier_arc.h (renamed from xs/src/agg/agg_bezier_arc.h) | 0 | ||||
-rw-r--r-- | src/agg/agg_clip_liang_barsky.h (renamed from xs/src/agg/agg_clip_liang_barsky.h) | 0 | ||||
-rw-r--r-- | src/agg/agg_color_gray.h (renamed from xs/src/agg/agg_color_gray.h) | 0 | ||||
-rw-r--r-- | src/agg/agg_color_rgba.h (renamed from xs/src/agg/agg_color_rgba.h) | 0 | ||||
-rw-r--r-- | src/agg/agg_config.h (renamed from xs/src/agg/agg_config.h) | 0 | ||||
-rw-r--r-- | src/agg/agg_conv_transform.h (renamed from xs/src/agg/agg_conv_transform.h) | 0 | ||||
-rw-r--r-- | src/agg/agg_gamma_functions.h (renamed from xs/src/agg/agg_gamma_functions.h) | 0 | ||||
-rw-r--r-- | src/agg/agg_gamma_lut.h (renamed from xs/src/agg/agg_gamma_lut.h) | 0 | ||||
-rw-r--r-- | src/agg/agg_math.h (renamed from xs/src/agg/agg_math.h) | 0 | ||||
-rw-r--r-- | src/agg/agg_path_storage.h (renamed from xs/src/agg/agg_path_storage.h) | 0 | ||||
-rw-r--r-- | src/agg/agg_pixfmt_base.h (renamed from xs/src/agg/agg_pixfmt_base.h) | 0 | ||||
-rw-r--r-- | src/agg/agg_pixfmt_gray.h (renamed from xs/src/agg/agg_pixfmt_gray.h) | 0 | ||||
-rw-r--r-- | src/agg/agg_pixfmt_rgb.h (renamed from xs/src/agg/agg_pixfmt_rgb.h) | 0 | ||||
-rw-r--r-- | src/agg/agg_rasterizer_cells_aa.h (renamed from xs/src/agg/agg_rasterizer_cells_aa.h) | 0 | ||||
-rw-r--r-- | src/agg/agg_rasterizer_scanline_aa.h (renamed from xs/src/agg/agg_rasterizer_scanline_aa.h) | 0 | ||||
-rw-r--r-- | src/agg/agg_rasterizer_scanline_aa_nogamma.h (renamed from xs/src/agg/agg_rasterizer_scanline_aa_nogamma.h) | 0 | ||||
-rw-r--r-- | src/agg/agg_rasterizer_sl_clip.h (renamed from xs/src/agg/agg_rasterizer_sl_clip.h) | 0 | ||||
-rw-r--r-- | src/agg/agg_renderer_base.h (renamed from xs/src/agg/agg_renderer_base.h) | 0 | ||||
-rw-r--r-- | src/agg/agg_renderer_scanline.h (renamed from xs/src/agg/agg_renderer_scanline.h) | 0 | ||||
-rw-r--r-- | src/agg/agg_rendering_buffer.h (renamed from xs/src/agg/agg_rendering_buffer.h) | 0 | ||||
-rw-r--r-- | src/agg/agg_scanline_p.h (renamed from xs/src/agg/agg_scanline_p.h) | 0 | ||||
-rw-r--r-- | src/agg/agg_trans_affine.h (renamed from xs/src/agg/agg_trans_affine.h) | 0 | ||||
-rw-r--r-- | src/agg/copying (renamed from xs/src/agg/copying) | 0 | ||||
-rw-r--r-- | src/avrdude/AUTHORS (renamed from xs/src/avrdude/AUTHORS) | 0 | ||||
-rw-r--r-- | src/avrdude/BUILD-FROM-SVN (renamed from xs/src/avrdude/BUILD-FROM-SVN) | 0 | ||||
-rw-r--r-- | src/avrdude/CMakeLists.txt (renamed from xs/src/avrdude/CMakeLists.txt) | 0 | ||||
-rw-r--r-- | src/avrdude/COPYING (renamed from xs/src/avrdude/COPYING) | 0 | ||||
-rw-r--r-- | src/avrdude/ChangeLog (renamed from xs/src/avrdude/ChangeLog) | 0 | ||||
-rw-r--r-- | src/avrdude/ChangeLog-2001 (renamed from xs/src/avrdude/ChangeLog-2001) | 0 | ||||
-rw-r--r-- | src/avrdude/ChangeLog-2002 (renamed from xs/src/avrdude/ChangeLog-2002) | 0 | ||||
-rw-r--r-- | src/avrdude/ChangeLog-2003 (renamed from xs/src/avrdude/ChangeLog-2003) | 0 | ||||
-rw-r--r-- | src/avrdude/ChangeLog-2004-2006 (renamed from xs/src/avrdude/ChangeLog-2004-2006) | 0 | ||||
-rw-r--r-- | src/avrdude/ChangeLog-2007 (renamed from xs/src/avrdude/ChangeLog-2007) | 0 | ||||
-rw-r--r-- | src/avrdude/ChangeLog-2008 (renamed from xs/src/avrdude/ChangeLog-2008) | 0 | ||||
-rw-r--r-- | src/avrdude/ChangeLog-2009 (renamed from xs/src/avrdude/ChangeLog-2009) | 0 | ||||
-rw-r--r-- | src/avrdude/ChangeLog-2010 (renamed from xs/src/avrdude/ChangeLog-2010) | 0 | ||||
-rw-r--r-- | src/avrdude/ChangeLog-2011 (renamed from xs/src/avrdude/ChangeLog-2011) | 0 | ||||
-rw-r--r-- | src/avrdude/ChangeLog-2012 (renamed from xs/src/avrdude/ChangeLog-2012) | 0 | ||||
-rw-r--r-- | src/avrdude/ChangeLog-2013 (renamed from xs/src/avrdude/ChangeLog-2013) | 0 | ||||
-rw-r--r-- | src/avrdude/ChangeLog-2014 (renamed from xs/src/avrdude/ChangeLog-2014) | 0 | ||||
-rw-r--r-- | src/avrdude/ChangeLog-2015 (renamed from xs/src/avrdude/ChangeLog-2015) | 0 | ||||
-rw-r--r-- | src/avrdude/Makefile.am (renamed from xs/src/avrdude/Makefile.am) | 0 | ||||
-rw-r--r-- | src/avrdude/Makefile.standalone (renamed from xs/src/avrdude/Makefile.standalone) | 0 | ||||
-rw-r--r-- | src/avrdude/NEWS (renamed from xs/src/avrdude/NEWS) | 0 | ||||
-rw-r--r-- | src/avrdude/README (renamed from xs/src/avrdude/README) | 0 | ||||
-rw-r--r-- | src/avrdude/ac_cfg.h (renamed from xs/src/avrdude/ac_cfg.h) | 0 | ||||
-rw-r--r-- | src/avrdude/ac_cfg.h.in (renamed from xs/src/avrdude/ac_cfg.h.in) | 0 | ||||
-rw-r--r-- | src/avrdude/arduino.c (renamed from xs/src/avrdude/arduino.c) | 0 | ||||
-rw-r--r-- | src/avrdude/arduino.h (renamed from xs/src/avrdude/arduino.h) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/AVR109.pdf (renamed from xs/src/avrdude/atmel-docs/AVR109.pdf) | bin | 94446 -> 94446 bytes | |||
-rw-r--r-- | src/avrdude/atmel-docs/AVR910.pdf (renamed from xs/src/avrdude/atmel-docs/AVR910.pdf) | bin | 224606 -> 224606 bytes | |||
-rw-r--r-- | src/avrdude/atmel-docs/AVRISPmkII-AVR069.pdf (renamed from xs/src/avrdude/atmel-docs/AVRISPmkII-AVR069.pdf) | bin | 326430 -> 326430 bytes | |||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/common/browserDetect.js (renamed from xs/src/avrdude/atmel-docs/EDBG/common/browserDetect.js) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/common/css/960.css (renamed from xs/src/avrdude/atmel-docs/EDBG/common/css/960.css) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/common/css/docbook.css (renamed from xs/src/avrdude/atmel-docs/EDBG/common/css/docbook.css) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/common/css/fluid_grid.css (renamed from xs/src/avrdude/atmel-docs/EDBG/common/css/fluid_grid.css) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/common/css/index.css (renamed from xs/src/avrdude/atmel-docs/EDBG/common/css/index.css) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/common/css/positioning.css (renamed from xs/src/avrdude/atmel-docs/EDBG/common/css/positioning.css) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/common/css/print.css (renamed from xs/src/avrdude/atmel-docs/EDBG/common/css/print.css) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/common/css/reset.css (renamed from xs/src/avrdude/atmel-docs/EDBG/common/css/reset.css) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/common/css/text.css (renamed from xs/src/avrdude/atmel-docs/EDBG/common/css/text.css) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/common/fonts/DroidSansMono.eot (renamed from xs/src/avrdude/atmel-docs/EDBG/common/fonts/DroidSansMono.eot) | bin | 78514 -> 78514 bytes | |||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/common/fonts/DroidSansMono.ttf (renamed from xs/src/avrdude/atmel-docs/EDBG/common/fonts/DroidSansMono.ttf) | bin | 78296 -> 78296 bytes | |||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/common/images/Book_Closed.png (renamed from xs/src/avrdude/atmel-docs/EDBG/common/images/Book_Closed.png) | bin | 3245 -> 3245 bytes | |||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/common/images/Book_Open.png (renamed from xs/src/avrdude/atmel-docs/EDBG/common/images/Book_Open.png) | bin | 703 -> 703 bytes | |||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/common/images/Document_Text.png (renamed from xs/src/avrdude/atmel-docs/EDBG/common/images/Document_Text.png) | bin | 583 -> 583 bytes | |||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/common/images/Library.png (renamed from xs/src/avrdude/atmel-docs/EDBG/common/images/Library.png) | bin | 798 -> 798 bytes | |||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/common/images/external_link.gif (renamed from xs/src/avrdude/atmel-docs/EDBG/common/images/external_link.gif) | bin | 98 -> 98 bytes | |||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/common/images/loading.gif (renamed from xs/src/avrdude/atmel-docs/EDBG/common/images/loading.gif) | bin | 1553 -> 1553 bytes | |||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/common/images/logo.png (renamed from xs/src/avrdude/atmel-docs/EDBG/common/images/logo.png) | bin | 4305 -> 4305 bytes | |||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/common/images/minus.png (renamed from xs/src/avrdude/atmel-docs/EDBG/common/images/minus.png) | bin | 156 -> 156 bytes | |||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/common/images/next-arrow.png (renamed from xs/src/avrdude/atmel-docs/EDBG/common/images/next-arrow.png) | bin | 199 -> 199 bytes | |||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/common/images/plus.png (renamed from xs/src/avrdude/atmel-docs/EDBG/common/images/plus.png) | bin | 164 -> 164 bytes | |||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/common/images/previous-arrow.png (renamed from xs/src/avrdude/atmel-docs/EDBG/common/images/previous-arrow.png) | bin | 198 -> 198 bytes | |||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/common/images/search-icon.png (renamed from xs/src/avrdude/atmel-docs/EDBG/common/images/search-icon.png) | bin | 340 -> 340 bytes | |||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/common/images/sidebar.png (renamed from xs/src/avrdude/atmel-docs/EDBG/common/images/sidebar.png) | bin | 177 -> 177 bytes | |||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/common/images/starsSmall.png (renamed from xs/src/avrdude/atmel-docs/EDBG/common/images/starsSmall.png) | bin | 1032 -> 1032 bytes | |||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/common/images/toc-icon.png (renamed from xs/src/avrdude/atmel-docs/EDBG/common/images/toc-icon.png) | bin | 3447 -> 3447 bytes | |||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/common/images/ui-icons_217bc0_256x240.png (renamed from xs/src/avrdude/atmel-docs/EDBG/common/images/ui-icons_217bc0_256x240.png) | bin | 4369 -> 4369 bytes | |||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/common/jquery/jquery-1.7.2.min.js (renamed from xs/src/avrdude/atmel-docs/EDBG/common/jquery/jquery-1.7.2.min.js) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/common/jquery/jquery.cookie.js (renamed from xs/src/avrdude/atmel-docs/EDBG/common/jquery/jquery.cookie.js) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/common/jquery/jquery.ui.all.js (renamed from xs/src/avrdude/atmel-docs/EDBG/common/jquery/jquery.ui.all.js) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/common/jquery/layout/jquery.layout.js (renamed from xs/src/avrdude/atmel-docs/EDBG/common/jquery/layout/jquery.layout.js) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-anim_basic_16x16.gif (renamed from xs/src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-anim_basic_16x16.gif) | bin | 1553 -> 1553 bytes | |||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-bg_flat_0_aaaaaa_40x100.png (renamed from xs/src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-bg_flat_0_aaaaaa_40x100.png) | bin | 180 -> 180 bytes | |||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-bg_flat_55_fbec88_40x100.png (renamed from xs/src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-bg_flat_55_fbec88_40x100.png) | bin | 182 -> 182 bytes | |||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-bg_glass_75_d0e5f5_1x400.png (renamed from xs/src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-bg_glass_75_d0e5f5_1x400.png) | bin | 162 -> 162 bytes | |||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-bg_glass_85_dfeffc_1x400.png (renamed from xs/src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-bg_glass_85_dfeffc_1x400.png) | bin | 123 -> 123 bytes | |||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-bg_glass_95_fef1ec_1x400.png (renamed from xs/src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-bg_glass_95_fef1ec_1x400.png) | bin | 119 -> 119 bytes | |||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-bg_gloss-wave_55_5c9ccc_500x100.png (renamed from xs/src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-bg_gloss-wave_55_5c9ccc_500x100.png) | bin | 3457 -> 3457 bytes | |||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-bg_inset-hard_100_f5f8f9_1x100.png (renamed from xs/src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-bg_inset-hard_100_f5f8f9_1x100.png) | bin | 104 -> 104 bytes | |||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-bg_inset-hard_100_fcfdfd_1x100.png (renamed from xs/src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-bg_inset-hard_100_fcfdfd_1x100.png) | bin | 88 -> 88 bytes | |||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-icons_217bc0_256x240.png (renamed from xs/src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-icons_217bc0_256x240.png) | bin | 4369 -> 4369 bytes | |||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-icons_2e83ff_256x240.png (renamed from xs/src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-icons_2e83ff_256x240.png) | bin | 4369 -> 4369 bytes | |||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-icons_469bdd_256x240.png (renamed from xs/src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-icons_469bdd_256x240.png) | bin | 4369 -> 4369 bytes | |||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-icons_6da8d5_256x240.png (renamed from xs/src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-icons_6da8d5_256x240.png) | bin | 5355 -> 5355 bytes | |||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-icons_cd0a0a_256x240.png (renamed from xs/src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-icons_cd0a0a_256x240.png) | bin | 4369 -> 4369 bytes | |||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-icons_d8e7f3_256x240.png (renamed from xs/src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-icons_d8e7f3_256x240.png) | bin | 4369 -> 4369 bytes | |||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-icons_f9bd01_256x240.png (renamed from xs/src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-icons_f9bd01_256x240.png) | bin | 5355 -> 5355 bytes | |||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/jquery-ui-1.8.2.custom.css (renamed from xs/src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/jquery-ui-1.8.2.custom.css) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/common/jquery/treeview/images/file.gif (renamed from xs/src/avrdude/atmel-docs/EDBG/common/jquery/treeview/images/file.gif) | bin | 1008 -> 1008 bytes | |||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/common/jquery/treeview/images/folder-closed.gif (renamed from xs/src/avrdude/atmel-docs/EDBG/common/jquery/treeview/images/folder-closed.gif) | bin | 631 -> 631 bytes | |||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/common/jquery/treeview/images/folder.gif (renamed from xs/src/avrdude/atmel-docs/EDBG/common/jquery/treeview/images/folder.gif) | bin | 631 -> 631 bytes | |||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/common/jquery/treeview/images/treeview-black-line.gif (renamed from xs/src/avrdude/atmel-docs/EDBG/common/jquery/treeview/images/treeview-black-line.gif) | bin | 1877 -> 1877 bytes | |||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/common/jquery/treeview/images/treeview-black.gif (renamed from xs/src/avrdude/atmel-docs/EDBG/common/jquery/treeview/images/treeview-black.gif) | bin | 1216 -> 1216 bytes | |||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/common/jquery/treeview/images/treeview-default-line.gif (renamed from xs/src/avrdude/atmel-docs/EDBG/common/jquery/treeview/images/treeview-default-line.gif) | bin | 1993 -> 1993 bytes | |||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/common/jquery/treeview/images/treeview-default.gif (renamed from xs/src/avrdude/atmel-docs/EDBG/common/jquery/treeview/images/treeview-default.gif) | bin | 1222 -> 1222 bytes | |||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/common/jquery/treeview/images/treeview-famfamfam-line.gif (renamed from xs/src/avrdude/atmel-docs/EDBG/common/jquery/treeview/images/treeview-famfamfam-line.gif) | bin | 807 -> 807 bytes | |||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/common/jquery/treeview/images/treeview-famfamfam.gif (renamed from xs/src/avrdude/atmel-docs/EDBG/common/jquery/treeview/images/treeview-famfamfam.gif) | bin | 1280 -> 1280 bytes | |||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/common/jquery/treeview/images/treeview-gray-line.gif (renamed from xs/src/avrdude/atmel-docs/EDBG/common/jquery/treeview/images/treeview-gray-line.gif) | bin | 1877 -> 1877 bytes | |||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/common/jquery/treeview/images/treeview-gray.gif (renamed from xs/src/avrdude/atmel-docs/EDBG/common/jquery/treeview/images/treeview-gray.gif) | bin | 1230 -> 1230 bytes | |||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/common/jquery/treeview/images/treeview-red-line.gif (renamed from xs/src/avrdude/atmel-docs/EDBG/common/jquery/treeview/images/treeview-red-line.gif) | bin | 1877 -> 1877 bytes | |||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/common/jquery/treeview/images/treeview-red.gif (renamed from xs/src/avrdude/atmel-docs/EDBG/common/jquery/treeview/images/treeview-red.gif) | bin | 1230 -> 1230 bytes | |||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/common/jquery/treeview/jquery.treeview.css (renamed from xs/src/avrdude/atmel-docs/EDBG/common/jquery/treeview/jquery.treeview.css) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/common/jquery/treeview/jquery.treeview.min.js (renamed from xs/src/avrdude/atmel-docs/EDBG/common/jquery/treeview/jquery.treeview.min.js) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/common/main.js (renamed from xs/src/avrdude/atmel-docs/EDBG/common/main.js) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/common/splitterInit.js (renamed from xs/src/avrdude/atmel-docs/EDBG/common/splitterInit.js) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch01s01.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch01s01.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch01s02.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch01s02.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s01.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s01.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s02.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s02.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s02s01.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s02s01.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s02s02.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s02s02.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s02s02s01.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s02s02s01.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s02s02s02.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s02s02s02.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s02s03.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s02s03.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s02s03s01.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s02s03s01.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s02s03s02.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s02s03s02.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s02s03s03.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s02s03s03.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s02s03s04.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s02s03s04.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s03s01.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s03s01.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s03s02.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s03s02.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s03s03.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s03s03.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s03s04.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s03s04.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s03s05.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s03s05.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s03s06.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s03s06.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s03s07.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s03s07.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s03s08.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s03s08.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s03s09.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s03s09.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s04.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s04.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s04s01.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s04s01.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s04s02.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s04s02.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s04s03.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s04s03.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch03s01.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch03s01.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch03s01s01.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch03s01s01.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch03s01s02.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch03s01s02.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch03s01s03.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch03s01s03.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch03s01s03s01.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch03s01s03s01.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch03s02.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch03s02.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch03s02s01.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch03s02s01.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch03s02s02.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch03s02s02.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch03s02s03.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch03s02s03.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch03s02s04.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch03s02s04.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s01.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s01.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s02.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s02.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s03.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s03.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s04.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s04.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s04s01.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s04s01.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s04s03.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s04s03.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s04s04.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s04s04.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s04s05.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s04s05.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s01.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s01.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s03.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s03.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s04.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s04.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s06.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s06.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s06s02.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s06s02.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s06s03.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s06s03.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s06s04.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s06s04.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s06s05.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s06s05.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s07.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s07.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s07s01.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s07s01.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s07s02.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s07s02.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s07s03.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s07s03.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s07s04.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s07s04.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s08.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s08.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s08s01.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s08s01.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s08s02.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s08s02.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s08s03.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s08s03.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s09.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s09.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s10.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s10.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s01.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s01.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s02.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s02.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s03.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s03.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s04.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s04.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s05.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s05.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s06.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s06.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s07.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s07.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s08.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s08.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s09.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s09.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s10.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s10.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s11.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s11.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s12.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s12.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s13.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s13.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s14.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s14.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s15.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s15.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s02.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s02.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s02s01.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s02s01.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s02s02.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s02s02.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s02s03.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s02s03.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s02s04.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s02s04.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s02s05.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s02s05.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s02s06.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s02s06.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s03.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s03.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s03s01.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s03s01.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s03s02.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s03s02.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s03s03.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s03s03.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s04.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s04.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s01.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s01.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s02.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s02.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s03.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s03.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s04.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s04.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s05.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s05.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s06.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s06.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s07.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s07.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s08.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s08.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s09.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s09.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s10.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s10.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s11.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s11.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s12.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s12.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s13.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s13.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s14.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s14.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s15.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s15.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s16.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s16.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s17.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s17.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s18.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s18.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s19.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s19.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s20.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s20.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s21.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s21.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s22.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s22.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s23.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s23.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s24.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s24.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s25.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s25.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s26.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s26.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s27.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s27.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s28.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s28.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s29.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s29.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s02.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s02.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s02s01.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s02s01.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s02s02.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s02s02.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s02s03.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s02s03.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s02s04.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s02s04.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s02s05.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s02s05.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s03.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s03.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s03s01.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s03s01.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s03s02.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s03s02.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s04s01.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s04s01.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s04s02.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s04s02.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s04s03.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s04s03.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s05.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s05.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s05s01.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s05s01.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s05s02.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s05s02.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s05s03.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s05s03.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s05s04.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s05s04.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s05s05.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s05s05.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s06.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s06.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s01.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s01.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s02.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s02.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s03.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s03.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s04.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s04.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s05.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s05.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s06.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s06.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s07.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s07.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s08.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s08.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s09.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s09.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s10.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s10.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s11.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s11.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s12.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s12.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s13.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s13.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s14.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s14.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s15.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s15.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s16.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s16.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s17.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s17.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s02.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s02.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s03.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s03.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch08s01.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch08s01.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch08s01s01.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch08s01s01.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch08s01s02.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch08s01s02.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch08s01s03.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch08s01s03.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch08s01s04.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch08s01s04.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch08s01s05.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch08s01s05.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch08s01s06.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch08s01s06.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch08s02.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch08s02.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/ch08s03.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch08s03.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/document.revisions.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/document.revisions.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/index.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/index.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/pr01.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/pr01.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/protocoldocs.Introduction.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/protocoldocs.Introduction.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/protocoldocs.avr32protocol.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/protocoldocs.avr32protocol.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/protocoldocs.avr8protocol.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/protocoldocs.avr8protocol.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/protocoldocs.avrispprotocol.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/protocoldocs.avrispprotocol.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/protocoldocs.avrprotocol.Overview.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/protocoldocs.avrprotocol.Overview.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/protocoldocs.cmsis_dap.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/protocoldocs.cmsis_dap.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/protocoldocs.edbg_ctrl_protocol.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/protocoldocs.edbg_ctrl_protocol.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/protocoldocs.tpiprotocol.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/protocoldocs.tpiprotocol.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/search/htmlFileInfoList.js (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/search/htmlFileInfoList.js) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/search/index-1.js (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/search/index-1.js) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/search/index-2.js (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/search/index-2.js) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/search/index-3.js (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/search/index-3.js) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/search/l10n.js (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/search/l10n.js) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/search/nwSearchFnt.js (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/search/nwSearchFnt.js) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/search/stemmers/en_stemmer.js (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/search/stemmers/en_stemmer.js) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/section_avr32_memtypes.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/section_avr32_memtypes.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/section_avr32_setget_params.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/section_avr32_setget_params.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/section_avr8_memtypes.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/section_avr8_memtypes.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/section_avr8_query_contexts.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/section_avr8_query_contexts.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/section_avr8_setget_params.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/section_avr8_setget_params.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/section_edbg_ctrl_setget_params.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/section_edbg_ctrl_setget_params.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/section_edbg_query_contexts.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/section_edbg_query_contexts.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/section_housekeeping_start_session.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/section_housekeeping_start_session.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/section_i5v_3yz_rl.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/section_i5v_3yz_rl.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/section_jdx_m11_sl.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/section_jdx_m11_sl.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/section_qhb_x1c_sl.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/section_qhb_x1c_sl.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/section_serial_trace.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/section_serial_trace.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/EDBG/protocoldocs/section_t1f_hb1_sl.html (renamed from xs/src/avrdude/atmel-docs/EDBG/protocoldocs/section_t1f_hb1_sl.html) | 0 | ||||
-rw-r--r-- | src/avrdude/atmel-docs/JTAGICE-AVR060.pdf (renamed from xs/src/avrdude/atmel-docs/JTAGICE-AVR060.pdf) | bin | 139206 -> 139206 bytes | |||
-rw-r--r-- | src/avrdude/atmel-docs/JTAGICEmkII-AVR067.pdf (renamed from xs/src/avrdude/atmel-docs/JTAGICEmkII-AVR067.pdf) | bin | 327125 -> 327125 bytes | |||
-rw-r--r-- | src/avrdude/atmel-docs/STK500-AVR061.pdf (renamed from xs/src/avrdude/atmel-docs/STK500-AVR061.pdf) | bin | 814798 -> 814798 bytes | |||
-rw-r--r-- | src/avrdude/atmel-docs/STK500v2-AVR068.pdf (renamed from xs/src/avrdude/atmel-docs/STK500v2-AVR068.pdf) | bin | 161607 -> 161607 bytes | |||
-rw-r--r-- | src/avrdude/avr.c (renamed from xs/src/avrdude/avr.c) | 0 | ||||
-rw-r--r-- | src/avrdude/avr910.c (renamed from xs/src/avrdude/avr910.c) | 0 | ||||
-rw-r--r-- | src/avrdude/avr910.h (renamed from xs/src/avrdude/avr910.h) | 0 | ||||
-rw-r--r-- | src/avrdude/avrdude-slic3r.cpp (renamed from xs/src/avrdude/avrdude-slic3r.cpp) | 0 | ||||
-rw-r--r-- | src/avrdude/avrdude-slic3r.hpp (renamed from xs/src/avrdude/avrdude-slic3r.hpp) | 0 | ||||
-rw-r--r-- | src/avrdude/avrdude.1 (renamed from xs/src/avrdude/avrdude.1) | 0 | ||||
-rw-r--r-- | src/avrdude/avrdude.conf (renamed from xs/src/avrdude/avrdude.conf) | 0 | ||||
-rw-r--r-- | src/avrdude/avrdude.conf.in (renamed from xs/src/avrdude/avrdude.conf.in) | 0 | ||||
-rw-r--r-- | src/avrdude/avrdude.conf.tmp (renamed from xs/src/avrdude/avrdude.conf.tmp) | 0 | ||||
-rw-r--r-- | src/avrdude/avrdude.h (renamed from xs/src/avrdude/avrdude.h) | 0 | ||||
-rw-r--r-- | src/avrdude/avrdude.spec.in (renamed from xs/src/avrdude/avrdude.spec.in) | 0 | ||||
-rw-r--r-- | src/avrdude/avrftdi.c (renamed from xs/src/avrdude/avrftdi.c) | 0 | ||||
-rw-r--r-- | src/avrdude/avrftdi.h (renamed from xs/src/avrdude/avrftdi.h) | 0 | ||||
-rw-r--r-- | src/avrdude/avrftdi_private.h (renamed from xs/src/avrdude/avrftdi_private.h) | 0 | ||||
-rw-r--r-- | src/avrdude/avrftdi_tpi.c (renamed from xs/src/avrdude/avrftdi_tpi.c) | 0 | ||||
-rw-r--r-- | src/avrdude/avrftdi_tpi.h (renamed from xs/src/avrdude/avrftdi_tpi.h) | 0 | ||||
-rw-r--r-- | src/avrdude/avrpart.c (renamed from xs/src/avrdude/avrpart.c) | 0 | ||||
-rw-r--r-- | src/avrdude/bitbang.c (renamed from xs/src/avrdude/bitbang.c) | 0 | ||||
-rw-r--r-- | src/avrdude/bitbang.h (renamed from xs/src/avrdude/bitbang.h) | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | src/avrdude/bootstrap (renamed from xs/src/avrdude/bootstrap) | 0 | ||||
-rw-r--r-- | src/avrdude/buspirate.c (renamed from xs/src/avrdude/buspirate.c) | 0 | ||||
-rw-r--r-- | src/avrdude/buspirate.h (renamed from xs/src/avrdude/buspirate.h) | 0 | ||||
-rw-r--r-- | src/avrdude/butterfly.c (renamed from xs/src/avrdude/butterfly.c) | 0 | ||||
-rw-r--r-- | src/avrdude/butterfly.h (renamed from xs/src/avrdude/butterfly.h) | 0 | ||||
-rw-r--r-- | src/avrdude/config.c (renamed from xs/src/avrdude/config.c) | 0 | ||||
-rw-r--r-- | src/avrdude/config.h (renamed from xs/src/avrdude/config.h) | 0 | ||||
-rw-r--r-- | src/avrdude/config_gram.c (renamed from xs/src/avrdude/config_gram.c) | 0 | ||||
-rw-r--r-- | src/avrdude/config_gram.h (renamed from xs/src/avrdude/config_gram.h) | 0 | ||||
-rw-r--r-- | src/avrdude/config_gram.y (renamed from xs/src/avrdude/config_gram.y) | 0 | ||||
-rw-r--r-- | src/avrdude/configure.ac (renamed from xs/src/avrdude/configure.ac) | 0 | ||||
-rw-r--r-- | src/avrdude/confwin.c (renamed from xs/src/avrdude/confwin.c) | 0 | ||||
-rw-r--r-- | src/avrdude/crc16.c (renamed from xs/src/avrdude/crc16.c) | 0 | ||||
-rw-r--r-- | src/avrdude/crc16.h (renamed from xs/src/avrdude/crc16.h) | 0 | ||||
-rw-r--r-- | src/avrdude/dfu.c (renamed from xs/src/avrdude/dfu.c) | 0 | ||||
-rw-r--r-- | src/avrdude/dfu.h (renamed from xs/src/avrdude/dfu.h) | 0 | ||||
-rw-r--r-- | src/avrdude/doc/.cvsignore (renamed from xs/src/avrdude/doc/.cvsignore) | 0 | ||||
-rw-r--r-- | src/avrdude/doc/Makefile.am (renamed from xs/src/avrdude/doc/Makefile.am) | 0 | ||||
-rw-r--r-- | src/avrdude/doc/TODO (renamed from xs/src/avrdude/doc/TODO) | 0 | ||||
-rw-r--r-- | src/avrdude/doc/avrdude.texi (renamed from xs/src/avrdude/doc/avrdude.texi) | 0 | ||||
-rw-r--r-- | src/avrdude/doc/parts_comments.txt (renamed from xs/src/avrdude/doc/parts_comments.txt) | 0 | ||||
-rw-r--r-- | src/avrdude/fileio.c (renamed from xs/src/avrdude/fileio.c) | 0 | ||||
-rw-r--r-- | src/avrdude/flip1.c (renamed from xs/src/avrdude/flip1.c) | 0 | ||||
-rw-r--r-- | src/avrdude/flip1.h (renamed from xs/src/avrdude/flip1.h) | 0 | ||||
-rw-r--r-- | src/avrdude/flip2.c (renamed from xs/src/avrdude/flip2.c) | 0 | ||||
-rw-r--r-- | src/avrdude/flip2.h (renamed from xs/src/avrdude/flip2.h) | 0 | ||||
-rw-r--r-- | src/avrdude/freebsd_ppi.h (renamed from xs/src/avrdude/freebsd_ppi.h) | 0 | ||||
-rw-r--r-- | src/avrdude/ft245r.c (renamed from xs/src/avrdude/ft245r.c) | 0 | ||||
-rw-r--r-- | src/avrdude/ft245r.h (renamed from xs/src/avrdude/ft245r.h) | 0 | ||||
-rw-r--r-- | src/avrdude/jtag3.c (renamed from xs/src/avrdude/jtag3.c) | 0 | ||||
-rw-r--r-- | src/avrdude/jtag3.h (renamed from xs/src/avrdude/jtag3.h) | 0 | ||||
-rw-r--r-- | src/avrdude/jtag3_private.h (renamed from xs/src/avrdude/jtag3_private.h) | 0 | ||||
-rw-r--r-- | src/avrdude/jtagmkI.c (renamed from xs/src/avrdude/jtagmkI.c) | 0 | ||||
-rw-r--r-- | src/avrdude/jtagmkI.h (renamed from xs/src/avrdude/jtagmkI.h) | 0 | ||||
-rw-r--r-- | src/avrdude/jtagmkII.c (renamed from xs/src/avrdude/jtagmkII.c) | 0 | ||||
-rw-r--r-- | src/avrdude/jtagmkII.h (renamed from xs/src/avrdude/jtagmkII.h) | 0 | ||||
-rw-r--r-- | src/avrdude/jtagmkII_private.h (renamed from xs/src/avrdude/jtagmkII_private.h) | 0 | ||||
-rw-r--r-- | src/avrdude/jtagmkI_private.h (renamed from xs/src/avrdude/jtagmkI_private.h) | 0 | ||||
-rw-r--r-- | src/avrdude/lexer.c (renamed from xs/src/avrdude/lexer.c) | 0 | ||||
-rw-r--r-- | src/avrdude/lexer.l (renamed from xs/src/avrdude/lexer.l) | 0 | ||||
-rw-r--r-- | src/avrdude/libavrdude.h (renamed from xs/src/avrdude/libavrdude.h) | 0 | ||||
-rw-r--r-- | src/avrdude/linux_ppdev.h (renamed from xs/src/avrdude/linux_ppdev.h) | 0 | ||||
-rw-r--r-- | src/avrdude/linuxgpio.c (renamed from xs/src/avrdude/linuxgpio.c) | 0 | ||||
-rw-r--r-- | src/avrdude/linuxgpio.h (renamed from xs/src/avrdude/linuxgpio.h) | 0 | ||||
-rw-r--r-- | src/avrdude/lists.c (renamed from xs/src/avrdude/lists.c) | 0 | ||||
-rw-r--r-- | src/avrdude/main-standalone.c (renamed from xs/src/avrdude/main-standalone.c) | 0 | ||||
-rw-r--r-- | src/avrdude/main.c (renamed from xs/src/avrdude/main.c) | 0 | ||||
-rw-r--r-- | src/avrdude/my_ddk_hidsdi.h (renamed from xs/src/avrdude/my_ddk_hidsdi.h) | 0 | ||||
-rw-r--r-- | src/avrdude/par.c (renamed from xs/src/avrdude/par.c) | 0 | ||||
-rw-r--r-- | src/avrdude/par.h (renamed from xs/src/avrdude/par.h) | 0 | ||||
-rw-r--r-- | src/avrdude/pgm.c (renamed from xs/src/avrdude/pgm.c) | 0 | ||||
-rw-r--r-- | src/avrdude/pgm_type.c (renamed from xs/src/avrdude/pgm_type.c) | 0 | ||||
-rw-r--r-- | src/avrdude/pickit2.c (renamed from xs/src/avrdude/pickit2.c) | 0 | ||||
-rw-r--r-- | src/avrdude/pickit2.h (renamed from xs/src/avrdude/pickit2.h) | 0 | ||||
-rw-r--r-- | src/avrdude/pindefs.c (renamed from xs/src/avrdude/pindefs.c) | 0 | ||||
-rw-r--r-- | src/avrdude/ppi.c (renamed from xs/src/avrdude/ppi.c) | 0 | ||||
-rw-r--r-- | src/avrdude/ppi.h (renamed from xs/src/avrdude/ppi.h) | 0 | ||||
-rw-r--r-- | src/avrdude/ppiwin.c (renamed from xs/src/avrdude/ppiwin.c) | 0 | ||||
-rw-r--r-- | src/avrdude/safemode.c (renamed from xs/src/avrdude/safemode.c) | 0 | ||||
-rw-r--r-- | src/avrdude/ser_avrdoper.c (renamed from xs/src/avrdude/ser_avrdoper.c) | 0 | ||||
-rw-r--r-- | src/avrdude/ser_posix.c (renamed from xs/src/avrdude/ser_posix.c) | 0 | ||||
-rw-r--r-- | src/avrdude/ser_win32.c (renamed from xs/src/avrdude/ser_win32.c) | 0 | ||||
-rw-r--r-- | src/avrdude/serbb.h (renamed from xs/src/avrdude/serbb.h) | 0 | ||||
-rw-r--r-- | src/avrdude/serbb_posix.c (renamed from xs/src/avrdude/serbb_posix.c) | 0 | ||||
-rw-r--r-- | src/avrdude/serbb_win32.c (renamed from xs/src/avrdude/serbb_win32.c) | 0 | ||||
-rw-r--r-- | src/avrdude/solaris_ecpp.h (renamed from xs/src/avrdude/solaris_ecpp.h) | 0 | ||||
-rw-r--r-- | src/avrdude/stk500.c (renamed from xs/src/avrdude/stk500.c) | 0 | ||||
-rw-r--r-- | src/avrdude/stk500.h (renamed from xs/src/avrdude/stk500.h) | 0 | ||||
-rw-r--r-- | src/avrdude/stk500_private.h (renamed from xs/src/avrdude/stk500_private.h) | 0 | ||||
-rw-r--r-- | src/avrdude/stk500generic.c (renamed from xs/src/avrdude/stk500generic.c) | 0 | ||||
-rw-r--r-- | src/avrdude/stk500generic.h (renamed from xs/src/avrdude/stk500generic.h) | 0 | ||||
-rw-r--r-- | src/avrdude/stk500v2.c (renamed from xs/src/avrdude/stk500v2.c) | 0 | ||||
-rw-r--r-- | src/avrdude/stk500v2.h (renamed from xs/src/avrdude/stk500v2.h) | 0 | ||||
-rw-r--r-- | src/avrdude/stk500v2_private.h (renamed from xs/src/avrdude/stk500v2_private.h) | 0 | ||||
-rw-r--r-- | src/avrdude/term.c (renamed from xs/src/avrdude/term.c) | 0 | ||||
-rw-r--r-- | src/avrdude/term.h (renamed from xs/src/avrdude/term.h) | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | src/avrdude/tools/build-mingw32.sh (renamed from xs/src/avrdude/tools/build-mingw32.sh) | 0 | ||||
-rw-r--r-- | src/avrdude/tools/get-dw-params.xsl (renamed from xs/src/avrdude/tools/get-dw-params.xsl) | 0 | ||||
-rw-r--r-- | src/avrdude/tools/get-hv-params.xsl (renamed from xs/src/avrdude/tools/get-hv-params.xsl) | 0 | ||||
-rw-r--r-- | src/avrdude/tools/get-stk600-cards.xsl (renamed from xs/src/avrdude/tools/get-stk600-cards.xsl) | 0 | ||||
-rw-r--r-- | src/avrdude/tools/get-stk600-devices.xsl (renamed from xs/src/avrdude/tools/get-stk600-devices.xsl) | 0 | ||||
-rw-r--r-- | src/avrdude/tpi.h (renamed from xs/src/avrdude/tpi.h) | 0 | ||||
-rw-r--r-- | src/avrdude/update.c (renamed from xs/src/avrdude/update.c) | 0 | ||||
-rw-r--r-- | src/avrdude/usb_hidapi.c (renamed from xs/src/avrdude/usb_hidapi.c) | 0 | ||||
-rw-r--r-- | src/avrdude/usb_libusb.c (renamed from xs/src/avrdude/usb_libusb.c) | 0 | ||||
-rw-r--r-- | src/avrdude/usbasp.c (renamed from xs/src/avrdude/usbasp.c) | 0 | ||||
-rw-r--r-- | src/avrdude/usbasp.h (renamed from xs/src/avrdude/usbasp.h) | 0 | ||||
-rw-r--r-- | src/avrdude/usbdevs.h (renamed from xs/src/avrdude/usbdevs.h) | 0 | ||||
-rw-r--r-- | src/avrdude/usbtiny.c (renamed from xs/src/avrdude/usbtiny.c) | 0 | ||||
-rw-r--r-- | src/avrdude/usbtiny.h (renamed from xs/src/avrdude/usbtiny.h) | 0 | ||||
-rw-r--r-- | src/avrdude/windows/.cvsignore (renamed from xs/src/avrdude/windows/.cvsignore) | 0 | ||||
-rw-r--r-- | src/avrdude/windows/Makefile.am (renamed from xs/src/avrdude/windows/Makefile.am) | 0 | ||||
-rw-r--r-- | src/avrdude/windows/getopt.c (renamed from xs/src/avrdude/windows/getopt.c) | 0 | ||||
-rw-r--r-- | src/avrdude/windows/getopt.h (renamed from xs/src/avrdude/windows/getopt.h) | 0 | ||||
-rw-r--r-- | src/avrdude/windows/giveio.c (renamed from xs/src/avrdude/windows/giveio.c) | 0 | ||||
-rw-r--r-- | src/avrdude/windows/giveio.sys (renamed from xs/src/avrdude/windows/giveio.sys) | bin | 5248 -> 5248 bytes | |||
-rw-r--r--[-rwxr-xr-x] | src/avrdude/windows/install_giveio.bat (renamed from xs/src/avrdude/windows/install_giveio.bat) | 0 | ||||
-rw-r--r-- | src/avrdude/windows/loaddrv.c (renamed from xs/src/avrdude/windows/loaddrv.c) | 0 | ||||
-rw-r--r-- | src/avrdude/windows/loaddrv.h (renamed from xs/src/avrdude/windows/loaddrv.h) | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | src/avrdude/windows/remove_giveio.bat (renamed from xs/src/avrdude/windows/remove_giveio.bat) | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | src/avrdude/windows/status_giveio.bat (renamed from xs/src/avrdude/windows/status_giveio.bat) | 0 | ||||
-rw-r--r-- | src/avrdude/windows/unistd.cpp (renamed from xs/src/avrdude/windows/unistd.cpp) | 0 | ||||
-rw-r--r-- | src/avrdude/windows/unistd.h (renamed from xs/src/avrdude/windows/unistd.h) | 0 | ||||
-rw-r--r-- | src/avrdude/wiring.c (renamed from xs/src/avrdude/wiring.c) | 0 | ||||
-rw-r--r-- | src/avrdude/wiring.h (renamed from xs/src/avrdude/wiring.h) | 0 | ||||
-rw-r--r-- | src/boost/CMakeLists.txt | 20 | ||||
-rw-r--r-- | src/boost/nowide/args.hpp (renamed from xs/src/boost/nowide/args.hpp) | 0 | ||||
-rw-r--r-- | src/boost/nowide/cenv.hpp (renamed from xs/src/boost/nowide/cenv.hpp) | 0 | ||||
-rw-r--r-- | src/boost/nowide/config.hpp (renamed from xs/src/boost/nowide/config.hpp) | 0 | ||||
-rw-r--r-- | src/boost/nowide/convert.hpp (renamed from xs/src/boost/nowide/convert.hpp) | 0 | ||||
-rw-r--r-- | src/boost/nowide/cstdio.hpp (renamed from xs/src/boost/nowide/cstdio.hpp) | 0 | ||||
-rw-r--r-- | src/boost/nowide/cstdlib.hpp (renamed from xs/src/boost/nowide/cstdlib.hpp) | 0 | ||||
-rw-r--r-- | src/boost/nowide/filebuf.hpp (renamed from xs/src/boost/nowide/filebuf.hpp) | 0 | ||||
-rw-r--r-- | src/boost/nowide/fstream.hpp (renamed from xs/src/boost/nowide/fstream.hpp) | 0 | ||||
-rw-r--r-- | src/boost/nowide/integration/filesystem.hpp (renamed from xs/src/boost/nowide/integration/filesystem.hpp) | 0 | ||||
-rw-r--r-- | src/boost/nowide/iostream.cpp (renamed from xs/src/boost/nowide/iostream.cpp) | 0 | ||||
-rw-r--r-- | src/boost/nowide/iostream.hpp (renamed from xs/src/boost/nowide/iostream.hpp) | 0 | ||||
-rw-r--r-- | src/boost/nowide/stackstring.hpp (renamed from xs/src/boost/nowide/stackstring.hpp) | 0 | ||||
-rw-r--r-- | src/boost/nowide/system.hpp (renamed from xs/src/boost/nowide/system.hpp) | 0 | ||||
-rw-r--r-- | src/boost/nowide/utf8_codecvt.hpp (renamed from xs/src/boost/nowide/utf8_codecvt.hpp) | 0 | ||||
-rw-r--r-- | src/boost/nowide/windows.hpp (renamed from xs/src/boost/nowide/windows.hpp) | 0 | ||||
-rw-r--r-- | src/clipper/CMakeLists.txt | 7 | ||||
-rw-r--r-- | src/clipper/clipper.cpp (renamed from xs/src/clipper.cpp) | 8360 | ||||
-rw-r--r-- | src/clipper/clipper.hpp (renamed from xs/src/clipper.hpp) | 974 | ||||
-rw-r--r-- | src/eigen/COPYING.README (renamed from xs/src/eigen/COPYING.README) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/CMakeLists.txt (renamed from xs/src/eigen/Eigen/CMakeLists.txt) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/Cholesky (renamed from xs/src/eigen/Eigen/Cholesky) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/CholmodSupport (renamed from xs/src/eigen/Eigen/CholmodSupport) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/Core (renamed from xs/src/eigen/Eigen/Core) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/Dense (renamed from xs/src/eigen/Eigen/Dense) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/Eigen (renamed from xs/src/eigen/Eigen/Eigen) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/Eigenvalues (renamed from xs/src/eigen/Eigen/Eigenvalues) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/Geometry (renamed from xs/src/eigen/Eigen/Geometry) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/Householder (renamed from xs/src/eigen/Eigen/Householder) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/IterativeLinearSolvers (renamed from xs/src/eigen/Eigen/IterativeLinearSolvers) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/Jacobi (renamed from xs/src/eigen/Eigen/Jacobi) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/LU (renamed from xs/src/eigen/Eigen/LU) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/MetisSupport (renamed from xs/src/eigen/Eigen/MetisSupport) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/OrderingMethods (renamed from xs/src/eigen/Eigen/OrderingMethods) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/PaStiXSupport (renamed from xs/src/eigen/Eigen/PaStiXSupport) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/PardisoSupport (renamed from xs/src/eigen/Eigen/PardisoSupport) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/QR (renamed from xs/src/eigen/Eigen/QR) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/QtAlignedMalloc (renamed from xs/src/eigen/Eigen/QtAlignedMalloc) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/SPQRSupport (renamed from xs/src/eigen/Eigen/SPQRSupport) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/SVD (renamed from xs/src/eigen/Eigen/SVD) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/Sparse (renamed from xs/src/eigen/Eigen/Sparse) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/SparseCholesky (renamed from xs/src/eigen/Eigen/SparseCholesky) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/SparseCore (renamed from xs/src/eigen/Eigen/SparseCore) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/SparseLU (renamed from xs/src/eigen/Eigen/SparseLU) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/SparseQR (renamed from xs/src/eigen/Eigen/SparseQR) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/StdDeque (renamed from xs/src/eigen/Eigen/StdDeque) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/StdList (renamed from xs/src/eigen/Eigen/StdList) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/StdVector (renamed from xs/src/eigen/Eigen/StdVector) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/SuperLUSupport (renamed from xs/src/eigen/Eigen/SuperLUSupport) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/UmfPackSupport (renamed from xs/src/eigen/Eigen/UmfPackSupport) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Cholesky/LDLT.h (renamed from xs/src/eigen/Eigen/src/Cholesky/LDLT.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Cholesky/LLT.h (renamed from xs/src/eigen/Eigen/src/Cholesky/LLT.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Cholesky/LLT_LAPACKE.h (renamed from xs/src/eigen/Eigen/src/Cholesky/LLT_LAPACKE.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/CholmodSupport/CholmodSupport.h (renamed from xs/src/eigen/Eigen/src/CholmodSupport/CholmodSupport.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/Array.h (renamed from xs/src/eigen/Eigen/src/Core/Array.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/ArrayBase.h (renamed from xs/src/eigen/Eigen/src/Core/ArrayBase.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/ArrayWrapper.h (renamed from xs/src/eigen/Eigen/src/Core/ArrayWrapper.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/Assign.h (renamed from xs/src/eigen/Eigen/src/Core/Assign.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/AssignEvaluator.h (renamed from xs/src/eigen/Eigen/src/Core/AssignEvaluator.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/Assign_MKL.h (renamed from xs/src/eigen/Eigen/src/Core/Assign_MKL.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/BandMatrix.h (renamed from xs/src/eigen/Eigen/src/Core/BandMatrix.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/Block.h (renamed from xs/src/eigen/Eigen/src/Core/Block.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/BooleanRedux.h (renamed from xs/src/eigen/Eigen/src/Core/BooleanRedux.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/CommaInitializer.h (renamed from xs/src/eigen/Eigen/src/Core/CommaInitializer.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/ConditionEstimator.h (renamed from xs/src/eigen/Eigen/src/Core/ConditionEstimator.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/CoreEvaluators.h (renamed from xs/src/eigen/Eigen/src/Core/CoreEvaluators.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/CoreIterators.h (renamed from xs/src/eigen/Eigen/src/Core/CoreIterators.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/CwiseBinaryOp.h (renamed from xs/src/eigen/Eigen/src/Core/CwiseBinaryOp.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/CwiseNullaryOp.h (renamed from xs/src/eigen/Eigen/src/Core/CwiseNullaryOp.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/CwiseTernaryOp.h (renamed from xs/src/eigen/Eigen/src/Core/CwiseTernaryOp.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/CwiseUnaryOp.h (renamed from xs/src/eigen/Eigen/src/Core/CwiseUnaryOp.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/CwiseUnaryView.h (renamed from xs/src/eigen/Eigen/src/Core/CwiseUnaryView.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/DenseBase.h (renamed from xs/src/eigen/Eigen/src/Core/DenseBase.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/DenseCoeffsBase.h (renamed from xs/src/eigen/Eigen/src/Core/DenseCoeffsBase.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/DenseStorage.h (renamed from xs/src/eigen/Eigen/src/Core/DenseStorage.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/Diagonal.h (renamed from xs/src/eigen/Eigen/src/Core/Diagonal.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/DiagonalMatrix.h (renamed from xs/src/eigen/Eigen/src/Core/DiagonalMatrix.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/DiagonalProduct.h (renamed from xs/src/eigen/Eigen/src/Core/DiagonalProduct.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/Dot.h (renamed from xs/src/eigen/Eigen/src/Core/Dot.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/EigenBase.h (renamed from xs/src/eigen/Eigen/src/Core/EigenBase.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/ForceAlignedAccess.h (renamed from xs/src/eigen/Eigen/src/Core/ForceAlignedAccess.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/Fuzzy.h (renamed from xs/src/eigen/Eigen/src/Core/Fuzzy.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/GeneralProduct.h (renamed from xs/src/eigen/Eigen/src/Core/GeneralProduct.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/GenericPacketMath.h (renamed from xs/src/eigen/Eigen/src/Core/GenericPacketMath.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/GlobalFunctions.h (renamed from xs/src/eigen/Eigen/src/Core/GlobalFunctions.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/IO.h (renamed from xs/src/eigen/Eigen/src/Core/IO.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/Inverse.h (renamed from xs/src/eigen/Eigen/src/Core/Inverse.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/Map.h (renamed from xs/src/eigen/Eigen/src/Core/Map.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/MapBase.h (renamed from xs/src/eigen/Eigen/src/Core/MapBase.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/MathFunctions.h (renamed from xs/src/eigen/Eigen/src/Core/MathFunctions.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/MathFunctionsImpl.h (renamed from xs/src/eigen/Eigen/src/Core/MathFunctionsImpl.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/Matrix.h (renamed from xs/src/eigen/Eigen/src/Core/Matrix.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/MatrixBase.h (renamed from xs/src/eigen/Eigen/src/Core/MatrixBase.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/NestByValue.h (renamed from xs/src/eigen/Eigen/src/Core/NestByValue.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/NoAlias.h (renamed from xs/src/eigen/Eigen/src/Core/NoAlias.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/NumTraits.h (renamed from xs/src/eigen/Eigen/src/Core/NumTraits.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/PermutationMatrix.h (renamed from xs/src/eigen/Eigen/src/Core/PermutationMatrix.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/PlainObjectBase.h (renamed from xs/src/eigen/Eigen/src/Core/PlainObjectBase.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/Product.h (renamed from xs/src/eigen/Eigen/src/Core/Product.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/ProductEvaluators.h (renamed from xs/src/eigen/Eigen/src/Core/ProductEvaluators.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/Random.h (renamed from xs/src/eigen/Eigen/src/Core/Random.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/Redux.h (renamed from xs/src/eigen/Eigen/src/Core/Redux.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/Ref.h (renamed from xs/src/eigen/Eigen/src/Core/Ref.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/Replicate.h (renamed from xs/src/eigen/Eigen/src/Core/Replicate.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/ReturnByValue.h (renamed from xs/src/eigen/Eigen/src/Core/ReturnByValue.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/Reverse.h (renamed from xs/src/eigen/Eigen/src/Core/Reverse.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/Select.h (renamed from xs/src/eigen/Eigen/src/Core/Select.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/SelfAdjointView.h (renamed from xs/src/eigen/Eigen/src/Core/SelfAdjointView.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/SelfCwiseBinaryOp.h (renamed from xs/src/eigen/Eigen/src/Core/SelfCwiseBinaryOp.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/Solve.h (renamed from xs/src/eigen/Eigen/src/Core/Solve.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/SolveTriangular.h (renamed from xs/src/eigen/Eigen/src/Core/SolveTriangular.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/SolverBase.h (renamed from xs/src/eigen/Eigen/src/Core/SolverBase.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/StableNorm.h (renamed from xs/src/eigen/Eigen/src/Core/StableNorm.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/Stride.h (renamed from xs/src/eigen/Eigen/src/Core/Stride.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/Swap.h (renamed from xs/src/eigen/Eigen/src/Core/Swap.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/Transpose.h (renamed from xs/src/eigen/Eigen/src/Core/Transpose.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/Transpositions.h (renamed from xs/src/eigen/Eigen/src/Core/Transpositions.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/TriangularMatrix.h (renamed from xs/src/eigen/Eigen/src/Core/TriangularMatrix.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/VectorBlock.h (renamed from xs/src/eigen/Eigen/src/Core/VectorBlock.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/VectorwiseOp.h (renamed from xs/src/eigen/Eigen/src/Core/VectorwiseOp.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/Visitor.h (renamed from xs/src/eigen/Eigen/src/Core/Visitor.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/arch/AVX/Complex.h (renamed from xs/src/eigen/Eigen/src/Core/arch/AVX/Complex.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/arch/AVX/MathFunctions.h (renamed from xs/src/eigen/Eigen/src/Core/arch/AVX/MathFunctions.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/arch/AVX/PacketMath.h (renamed from xs/src/eigen/Eigen/src/Core/arch/AVX/PacketMath.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/arch/AVX/TypeCasting.h (renamed from xs/src/eigen/Eigen/src/Core/arch/AVX/TypeCasting.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/arch/AVX512/MathFunctions.h (renamed from xs/src/eigen/Eigen/src/Core/arch/AVX512/MathFunctions.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/arch/AVX512/PacketMath.h (renamed from xs/src/eigen/Eigen/src/Core/arch/AVX512/PacketMath.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/arch/AltiVec/Complex.h (renamed from xs/src/eigen/Eigen/src/Core/arch/AltiVec/Complex.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/arch/AltiVec/MathFunctions.h (renamed from xs/src/eigen/Eigen/src/Core/arch/AltiVec/MathFunctions.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/arch/AltiVec/PacketMath.h (renamed from xs/src/eigen/Eigen/src/Core/arch/AltiVec/PacketMath.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/arch/CUDA/Complex.h (renamed from xs/src/eigen/Eigen/src/Core/arch/CUDA/Complex.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/arch/CUDA/Half.h (renamed from xs/src/eigen/Eigen/src/Core/arch/CUDA/Half.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/arch/CUDA/MathFunctions.h (renamed from xs/src/eigen/Eigen/src/Core/arch/CUDA/MathFunctions.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/arch/CUDA/PacketMath.h (renamed from xs/src/eigen/Eigen/src/Core/arch/CUDA/PacketMath.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/arch/CUDA/PacketMathHalf.h (renamed from xs/src/eigen/Eigen/src/Core/arch/CUDA/PacketMathHalf.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/arch/CUDA/TypeCasting.h (renamed from xs/src/eigen/Eigen/src/Core/arch/CUDA/TypeCasting.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/arch/Default/ConjHelper.h (renamed from xs/src/eigen/Eigen/src/Core/arch/Default/ConjHelper.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/arch/Default/Settings.h (renamed from xs/src/eigen/Eigen/src/Core/arch/Default/Settings.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/arch/NEON/Complex.h (renamed from xs/src/eigen/Eigen/src/Core/arch/NEON/Complex.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/arch/NEON/MathFunctions.h (renamed from xs/src/eigen/Eigen/src/Core/arch/NEON/MathFunctions.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/arch/NEON/PacketMath.h (renamed from xs/src/eigen/Eigen/src/Core/arch/NEON/PacketMath.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/arch/SSE/Complex.h (renamed from xs/src/eigen/Eigen/src/Core/arch/SSE/Complex.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/arch/SSE/MathFunctions.h (renamed from xs/src/eigen/Eigen/src/Core/arch/SSE/MathFunctions.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/arch/SSE/PacketMath.h (renamed from xs/src/eigen/Eigen/src/Core/arch/SSE/PacketMath.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/arch/SSE/TypeCasting.h (renamed from xs/src/eigen/Eigen/src/Core/arch/SSE/TypeCasting.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/arch/ZVector/Complex.h (renamed from xs/src/eigen/Eigen/src/Core/arch/ZVector/Complex.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/arch/ZVector/MathFunctions.h (renamed from xs/src/eigen/Eigen/src/Core/arch/ZVector/MathFunctions.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/arch/ZVector/PacketMath.h (renamed from xs/src/eigen/Eigen/src/Core/arch/ZVector/PacketMath.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/functors/AssignmentFunctors.h (renamed from xs/src/eigen/Eigen/src/Core/functors/AssignmentFunctors.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/functors/BinaryFunctors.h (renamed from xs/src/eigen/Eigen/src/Core/functors/BinaryFunctors.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/functors/NullaryFunctors.h (renamed from xs/src/eigen/Eigen/src/Core/functors/NullaryFunctors.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/functors/StlFunctors.h (renamed from xs/src/eigen/Eigen/src/Core/functors/StlFunctors.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/functors/TernaryFunctors.h (renamed from xs/src/eigen/Eigen/src/Core/functors/TernaryFunctors.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/functors/UnaryFunctors.h (renamed from xs/src/eigen/Eigen/src/Core/functors/UnaryFunctors.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/products/GeneralBlockPanelKernel.h (renamed from xs/src/eigen/Eigen/src/Core/products/GeneralBlockPanelKernel.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/products/GeneralMatrixMatrix.h (renamed from xs/src/eigen/Eigen/src/Core/products/GeneralMatrixMatrix.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h (renamed from xs/src/eigen/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h (renamed from xs/src/eigen/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h (renamed from xs/src/eigen/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/products/GeneralMatrixVector.h (renamed from xs/src/eigen/Eigen/src/Core/products/GeneralMatrixVector.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h (renamed from xs/src/eigen/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/products/Parallelizer.h (renamed from xs/src/eigen/Eigen/src/Core/products/Parallelizer.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/products/SelfadjointMatrixMatrix.h (renamed from xs/src/eigen/Eigen/src/Core/products/SelfadjointMatrixMatrix.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h (renamed from xs/src/eigen/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/products/SelfadjointMatrixVector.h (renamed from xs/src/eigen/Eigen/src/Core/products/SelfadjointMatrixVector.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h (renamed from xs/src/eigen/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/products/SelfadjointProduct.h (renamed from xs/src/eigen/Eigen/src/Core/products/SelfadjointProduct.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/products/SelfadjointRank2Update.h (renamed from xs/src/eigen/Eigen/src/Core/products/SelfadjointRank2Update.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/products/TriangularMatrixMatrix.h (renamed from xs/src/eigen/Eigen/src/Core/products/TriangularMatrixMatrix.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h (renamed from xs/src/eigen/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/products/TriangularMatrixVector.h (renamed from xs/src/eigen/Eigen/src/Core/products/TriangularMatrixVector.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h (renamed from xs/src/eigen/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/products/TriangularSolverMatrix.h (renamed from xs/src/eigen/Eigen/src/Core/products/TriangularSolverMatrix.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h (renamed from xs/src/eigen/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/products/TriangularSolverVector.h (renamed from xs/src/eigen/Eigen/src/Core/products/TriangularSolverVector.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/util/BlasUtil.h (renamed from xs/src/eigen/Eigen/src/Core/util/BlasUtil.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/util/Constants.h (renamed from xs/src/eigen/Eigen/src/Core/util/Constants.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/util/DisableStupidWarnings.h (renamed from xs/src/eigen/Eigen/src/Core/util/DisableStupidWarnings.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/util/ForwardDeclarations.h (renamed from xs/src/eigen/Eigen/src/Core/util/ForwardDeclarations.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/util/MKL_support.h (renamed from xs/src/eigen/Eigen/src/Core/util/MKL_support.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/util/Macros.h (renamed from xs/src/eigen/Eigen/src/Core/util/Macros.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/util/Memory.h (renamed from xs/src/eigen/Eigen/src/Core/util/Memory.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/util/Meta.h (renamed from xs/src/eigen/Eigen/src/Core/util/Meta.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/util/NonMPL2.h (renamed from xs/src/eigen/Eigen/src/Core/util/NonMPL2.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/util/ReenableStupidWarnings.h (renamed from xs/src/eigen/Eigen/src/Core/util/ReenableStupidWarnings.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/util/StaticAssert.h (renamed from xs/src/eigen/Eigen/src/Core/util/StaticAssert.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Core/util/XprHelper.h (renamed from xs/src/eigen/Eigen/src/Core/util/XprHelper.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Eigenvalues/ComplexEigenSolver.h (renamed from xs/src/eigen/Eigen/src/Eigenvalues/ComplexEigenSolver.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Eigenvalues/ComplexSchur.h (renamed from xs/src/eigen/Eigen/src/Eigenvalues/ComplexSchur.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h (renamed from xs/src/eigen/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Eigenvalues/EigenSolver.h (renamed from xs/src/eigen/Eigen/src/Eigenvalues/EigenSolver.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h (renamed from xs/src/eigen/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h (renamed from xs/src/eigen/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Eigenvalues/HessenbergDecomposition.h (renamed from xs/src/eigen/Eigen/src/Eigenvalues/HessenbergDecomposition.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h (renamed from xs/src/eigen/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Eigenvalues/RealQZ.h (renamed from xs/src/eigen/Eigen/src/Eigenvalues/RealQZ.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Eigenvalues/RealSchur.h (renamed from xs/src/eigen/Eigen/src/Eigenvalues/RealSchur.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h (renamed from xs/src/eigen/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h (renamed from xs/src/eigen/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h (renamed from xs/src/eigen/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Eigenvalues/Tridiagonalization.h (renamed from xs/src/eigen/Eigen/src/Eigenvalues/Tridiagonalization.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Geometry/AlignedBox.h (renamed from xs/src/eigen/Eigen/src/Geometry/AlignedBox.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Geometry/AngleAxis.h (renamed from xs/src/eigen/Eigen/src/Geometry/AngleAxis.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Geometry/EulerAngles.h (renamed from xs/src/eigen/Eigen/src/Geometry/EulerAngles.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Geometry/Homogeneous.h (renamed from xs/src/eigen/Eigen/src/Geometry/Homogeneous.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Geometry/Hyperplane.h (renamed from xs/src/eigen/Eigen/src/Geometry/Hyperplane.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Geometry/OrthoMethods.h (renamed from xs/src/eigen/Eigen/src/Geometry/OrthoMethods.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Geometry/ParametrizedLine.h (renamed from xs/src/eigen/Eigen/src/Geometry/ParametrizedLine.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Geometry/Quaternion.h (renamed from xs/src/eigen/Eigen/src/Geometry/Quaternion.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Geometry/Rotation2D.h (renamed from xs/src/eigen/Eigen/src/Geometry/Rotation2D.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Geometry/RotationBase.h (renamed from xs/src/eigen/Eigen/src/Geometry/RotationBase.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Geometry/Scaling.h (renamed from xs/src/eigen/Eigen/src/Geometry/Scaling.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Geometry/Transform.h (renamed from xs/src/eigen/Eigen/src/Geometry/Transform.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Geometry/Translation.h (renamed from xs/src/eigen/Eigen/src/Geometry/Translation.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Geometry/Umeyama.h (renamed from xs/src/eigen/Eigen/src/Geometry/Umeyama.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Geometry/arch/Geometry_SSE.h (renamed from xs/src/eigen/Eigen/src/Geometry/arch/Geometry_SSE.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Householder/BlockHouseholder.h (renamed from xs/src/eigen/Eigen/src/Householder/BlockHouseholder.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Householder/Householder.h (renamed from xs/src/eigen/Eigen/src/Householder/Householder.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Householder/HouseholderSequence.h (renamed from xs/src/eigen/Eigen/src/Householder/HouseholderSequence.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h (renamed from xs/src/eigen/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h (renamed from xs/src/eigen/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h (renamed from xs/src/eigen/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h (renamed from xs/src/eigen/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h (renamed from xs/src/eigen/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h (renamed from xs/src/eigen/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h (renamed from xs/src/eigen/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h (renamed from xs/src/eigen/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/Jacobi/Jacobi.h (renamed from xs/src/eigen/Eigen/src/Jacobi/Jacobi.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/LU/Determinant.h (renamed from xs/src/eigen/Eigen/src/LU/Determinant.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/LU/FullPivLU.h (renamed from xs/src/eigen/Eigen/src/LU/FullPivLU.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/LU/InverseImpl.h (renamed from xs/src/eigen/Eigen/src/LU/InverseImpl.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/LU/PartialPivLU.h (renamed from xs/src/eigen/Eigen/src/LU/PartialPivLU.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/LU/PartialPivLU_LAPACKE.h (renamed from xs/src/eigen/Eigen/src/LU/PartialPivLU_LAPACKE.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/LU/arch/Inverse_SSE.h (renamed from xs/src/eigen/Eigen/src/LU/arch/Inverse_SSE.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/MetisSupport/MetisSupport.h (renamed from xs/src/eigen/Eigen/src/MetisSupport/MetisSupport.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/OrderingMethods/Amd.h (renamed from xs/src/eigen/Eigen/src/OrderingMethods/Amd.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/OrderingMethods/Eigen_Colamd.h (renamed from xs/src/eigen/Eigen/src/OrderingMethods/Eigen_Colamd.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/OrderingMethods/Ordering.h (renamed from xs/src/eigen/Eigen/src/OrderingMethods/Ordering.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/PaStiXSupport/PaStiXSupport.h (renamed from xs/src/eigen/Eigen/src/PaStiXSupport/PaStiXSupport.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/PardisoSupport/PardisoSupport.h (renamed from xs/src/eigen/Eigen/src/PardisoSupport/PardisoSupport.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/QR/ColPivHouseholderQR.h (renamed from xs/src/eigen/Eigen/src/QR/ColPivHouseholderQR.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h (renamed from xs/src/eigen/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/QR/CompleteOrthogonalDecomposition.h (renamed from xs/src/eigen/Eigen/src/QR/CompleteOrthogonalDecomposition.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/QR/FullPivHouseholderQR.h (renamed from xs/src/eigen/Eigen/src/QR/FullPivHouseholderQR.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/QR/HouseholderQR.h (renamed from xs/src/eigen/Eigen/src/QR/HouseholderQR.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/QR/HouseholderQR_LAPACKE.h (renamed from xs/src/eigen/Eigen/src/QR/HouseholderQR_LAPACKE.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h (renamed from xs/src/eigen/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/SVD/BDCSVD.h (renamed from xs/src/eigen/Eigen/src/SVD/BDCSVD.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/SVD/JacobiSVD.h (renamed from xs/src/eigen/Eigen/src/SVD/JacobiSVD.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/SVD/JacobiSVD_LAPACKE.h (renamed from xs/src/eigen/Eigen/src/SVD/JacobiSVD_LAPACKE.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/SVD/SVDBase.h (renamed from xs/src/eigen/Eigen/src/SVD/SVDBase.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/SVD/UpperBidiagonalization.h (renamed from xs/src/eigen/Eigen/src/SVD/UpperBidiagonalization.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/SparseCholesky/SimplicialCholesky.h (renamed from xs/src/eigen/Eigen/src/SparseCholesky/SimplicialCholesky.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h (renamed from xs/src/eigen/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/SparseCore/AmbiVector.h (renamed from xs/src/eigen/Eigen/src/SparseCore/AmbiVector.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/SparseCore/CompressedStorage.h (renamed from xs/src/eigen/Eigen/src/SparseCore/CompressedStorage.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h (renamed from xs/src/eigen/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/SparseCore/MappedSparseMatrix.h (renamed from xs/src/eigen/Eigen/src/SparseCore/MappedSparseMatrix.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/SparseCore/SparseAssign.h (renamed from xs/src/eigen/Eigen/src/SparseCore/SparseAssign.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/SparseCore/SparseBlock.h (renamed from xs/src/eigen/Eigen/src/SparseCore/SparseBlock.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/SparseCore/SparseColEtree.h (renamed from xs/src/eigen/Eigen/src/SparseCore/SparseColEtree.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/SparseCore/SparseCompressedBase.h (renamed from xs/src/eigen/Eigen/src/SparseCore/SparseCompressedBase.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/SparseCore/SparseCwiseBinaryOp.h (renamed from xs/src/eigen/Eigen/src/SparseCore/SparseCwiseBinaryOp.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/SparseCore/SparseCwiseUnaryOp.h (renamed from xs/src/eigen/Eigen/src/SparseCore/SparseCwiseUnaryOp.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/SparseCore/SparseDenseProduct.h (renamed from xs/src/eigen/Eigen/src/SparseCore/SparseDenseProduct.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/SparseCore/SparseDiagonalProduct.h (renamed from xs/src/eigen/Eigen/src/SparseCore/SparseDiagonalProduct.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/SparseCore/SparseDot.h (renamed from xs/src/eigen/Eigen/src/SparseCore/SparseDot.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/SparseCore/SparseFuzzy.h (renamed from xs/src/eigen/Eigen/src/SparseCore/SparseFuzzy.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/SparseCore/SparseMap.h (renamed from xs/src/eigen/Eigen/src/SparseCore/SparseMap.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/SparseCore/SparseMatrix.h (renamed from xs/src/eigen/Eigen/src/SparseCore/SparseMatrix.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/SparseCore/SparseMatrixBase.h (renamed from xs/src/eigen/Eigen/src/SparseCore/SparseMatrixBase.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/SparseCore/SparsePermutation.h (renamed from xs/src/eigen/Eigen/src/SparseCore/SparsePermutation.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/SparseCore/SparseProduct.h (renamed from xs/src/eigen/Eigen/src/SparseCore/SparseProduct.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/SparseCore/SparseRedux.h (renamed from xs/src/eigen/Eigen/src/SparseCore/SparseRedux.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/SparseCore/SparseRef.h (renamed from xs/src/eigen/Eigen/src/SparseCore/SparseRef.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/SparseCore/SparseSelfAdjointView.h (renamed from xs/src/eigen/Eigen/src/SparseCore/SparseSelfAdjointView.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/SparseCore/SparseSolverBase.h (renamed from xs/src/eigen/Eigen/src/SparseCore/SparseSolverBase.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/SparseCore/SparseSparseProductWithPruning.h (renamed from xs/src/eigen/Eigen/src/SparseCore/SparseSparseProductWithPruning.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/SparseCore/SparseTranspose.h (renamed from xs/src/eigen/Eigen/src/SparseCore/SparseTranspose.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/SparseCore/SparseTriangularView.h (renamed from xs/src/eigen/Eigen/src/SparseCore/SparseTriangularView.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/SparseCore/SparseUtil.h (renamed from xs/src/eigen/Eigen/src/SparseCore/SparseUtil.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/SparseCore/SparseVector.h (renamed from xs/src/eigen/Eigen/src/SparseCore/SparseVector.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/SparseCore/SparseView.h (renamed from xs/src/eigen/Eigen/src/SparseCore/SparseView.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/SparseCore/TriangularSolver.h (renamed from xs/src/eigen/Eigen/src/SparseCore/TriangularSolver.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/SparseLU/SparseLU.h (renamed from xs/src/eigen/Eigen/src/SparseLU/SparseLU.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/SparseLU/SparseLUImpl.h (renamed from xs/src/eigen/Eigen/src/SparseLU/SparseLUImpl.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/SparseLU/SparseLU_Memory.h (renamed from xs/src/eigen/Eigen/src/SparseLU/SparseLU_Memory.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/SparseLU/SparseLU_Structs.h (renamed from xs/src/eigen/Eigen/src/SparseLU/SparseLU_Structs.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h (renamed from xs/src/eigen/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/SparseLU/SparseLU_Utils.h (renamed from xs/src/eigen/Eigen/src/SparseLU/SparseLU_Utils.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/SparseLU/SparseLU_column_bmod.h (renamed from xs/src/eigen/Eigen/src/SparseLU/SparseLU_column_bmod.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/SparseLU/SparseLU_column_dfs.h (renamed from xs/src/eigen/Eigen/src/SparseLU/SparseLU_column_dfs.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h (renamed from xs/src/eigen/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/SparseLU/SparseLU_gemm_kernel.h (renamed from xs/src/eigen/Eigen/src/SparseLU/SparseLU_gemm_kernel.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h (renamed from xs/src/eigen/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/SparseLU/SparseLU_kernel_bmod.h (renamed from xs/src/eigen/Eigen/src/SparseLU/SparseLU_kernel_bmod.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/SparseLU/SparseLU_panel_bmod.h (renamed from xs/src/eigen/Eigen/src/SparseLU/SparseLU_panel_bmod.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/SparseLU/SparseLU_panel_dfs.h (renamed from xs/src/eigen/Eigen/src/SparseLU/SparseLU_panel_dfs.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/SparseLU/SparseLU_pivotL.h (renamed from xs/src/eigen/Eigen/src/SparseLU/SparseLU_pivotL.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/SparseLU/SparseLU_pruneL.h (renamed from xs/src/eigen/Eigen/src/SparseLU/SparseLU_pruneL.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/SparseLU/SparseLU_relax_snode.h (renamed from xs/src/eigen/Eigen/src/SparseLU/SparseLU_relax_snode.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/SparseQR/SparseQR.h (renamed from xs/src/eigen/Eigen/src/SparseQR/SparseQR.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/StlSupport/StdDeque.h (renamed from xs/src/eigen/Eigen/src/StlSupport/StdDeque.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/StlSupport/StdList.h (renamed from xs/src/eigen/Eigen/src/StlSupport/StdList.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/StlSupport/StdVector.h (renamed from xs/src/eigen/Eigen/src/StlSupport/StdVector.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/StlSupport/details.h (renamed from xs/src/eigen/Eigen/src/StlSupport/details.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/SuperLUSupport/SuperLUSupport.h (renamed from xs/src/eigen/Eigen/src/SuperLUSupport/SuperLUSupport.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/UmfPackSupport/UmfPackSupport.h (renamed from xs/src/eigen/Eigen/src/UmfPackSupport/UmfPackSupport.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/misc/Image.h (renamed from xs/src/eigen/Eigen/src/misc/Image.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/misc/Kernel.h (renamed from xs/src/eigen/Eigen/src/misc/Kernel.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/misc/RealSvd2x2.h (renamed from xs/src/eigen/Eigen/src/misc/RealSvd2x2.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/misc/blas.h (renamed from xs/src/eigen/Eigen/src/misc/blas.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/misc/lapack.h (renamed from xs/src/eigen/Eigen/src/misc/lapack.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/misc/lapacke.h (renamed from xs/src/eigen/Eigen/src/misc/lapacke.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/misc/lapacke_mangling.h (renamed from xs/src/eigen/Eigen/src/misc/lapacke_mangling.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/plugins/ArrayCwiseBinaryOps.h (renamed from xs/src/eigen/Eigen/src/plugins/ArrayCwiseBinaryOps.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/plugins/ArrayCwiseUnaryOps.h (renamed from xs/src/eigen/Eigen/src/plugins/ArrayCwiseUnaryOps.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/plugins/BlockMethods.h (renamed from xs/src/eigen/Eigen/src/plugins/BlockMethods.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/plugins/CommonCwiseBinaryOps.h (renamed from xs/src/eigen/Eigen/src/plugins/CommonCwiseBinaryOps.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/plugins/CommonCwiseUnaryOps.h (renamed from xs/src/eigen/Eigen/src/plugins/CommonCwiseUnaryOps.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/plugins/MatrixCwiseBinaryOps.h (renamed from xs/src/eigen/Eigen/src/plugins/MatrixCwiseBinaryOps.h) | 0 | ||||
-rw-r--r-- | src/eigen/Eigen/src/plugins/MatrixCwiseUnaryOps.h (renamed from xs/src/eigen/Eigen/src/plugins/MatrixCwiseUnaryOps.h) | 0 | ||||
-rw-r--r-- | src/eigen/README.md (renamed from xs/src/eigen/README.md) | 0 | ||||
-rw-r--r-- | src/expat/COPYING (renamed from xs/src/expat/COPYING) | 0 | ||||
-rw-r--r-- | src/expat/README (renamed from xs/src/expat/README) | 0 | ||||
-rw-r--r-- | src/expat/ascii.h (renamed from xs/src/expat/ascii.h) | 0 | ||||
-rw-r--r-- | src/expat/asciitab.h (renamed from xs/src/expat/asciitab.h) | 0 | ||||
-rw-r--r-- | src/expat/expat.h (renamed from xs/src/expat/expat.h) | 0 | ||||
-rw-r--r-- | src/expat/expat_config.h (renamed from xs/src/expat/expat_config.h) | 0 | ||||
-rw-r--r-- | src/expat/expat_external.h (renamed from xs/src/expat/expat_external.h) | 0 | ||||
-rw-r--r-- | src/expat/iasciitab.h (renamed from xs/src/expat/iasciitab.h) | 0 | ||||
-rw-r--r-- | src/expat/internal.h (renamed from xs/src/expat/internal.h) | 0 | ||||
-rw-r--r-- | src/expat/latin1tab.h (renamed from xs/src/expat/latin1tab.h) | 0 | ||||
-rw-r--r-- | src/expat/nametab.h (renamed from xs/src/expat/nametab.h) | 0 | ||||
-rw-r--r-- | src/expat/utf8tab.h (renamed from xs/src/expat/utf8tab.h) | 0 | ||||
-rw-r--r-- | src/expat/xmlparse.c (renamed from xs/src/expat/xmlparse.c) | 0 | ||||
-rw-r--r-- | src/expat/xmlrole.c (renamed from xs/src/expat/xmlrole.c) | 0 | ||||
-rw-r--r-- | src/expat/xmlrole.h (renamed from xs/src/expat/xmlrole.h) | 0 | ||||
-rw-r--r-- | src/expat/xmltok.c (renamed from xs/src/expat/xmltok.c) | 0 | ||||
-rw-r--r-- | src/expat/xmltok.h (renamed from xs/src/expat/xmltok.h) | 0 | ||||
-rw-r--r-- | src/expat/xmltok_impl.h (renamed from xs/src/expat/xmltok_impl.h) | 0 | ||||
-rw-r--r-- | src/expat/xmltok_impl.inc (renamed from xs/src/expat/xmltok_impl.inc) | 0 | ||||
-rw-r--r-- | src/expat/xmltok_ns.inc (renamed from xs/src/expat/xmltok_ns.inc) | 0 | ||||
-rw-r--r-- | src/glew/LICENSE.txt (renamed from xs/src/glew/LICENSE.txt) | 0 | ||||
-rw-r--r-- | src/glew/README.md (renamed from xs/src/glew/README.md) | 0 | ||||
-rw-r--r-- | src/glew/include/GL/glew.h (renamed from xs/src/glew/include/GL/glew.h) | 0 | ||||
-rw-r--r-- | src/glew/include/GL/glxew.h (renamed from xs/src/glew/include/GL/glxew.h) | 0 | ||||
-rw-r--r-- | src/glew/include/GL/wglew.h (renamed from xs/src/glew/include/GL/wglew.h) | 0 | ||||
-rw-r--r-- | src/glew/src/glew.c (renamed from xs/src/glew/src/glew.c) | 0 | ||||
-rw-r--r-- | src/libnest2d/CMakeLists.txt (renamed from xs/src/libnest2d/CMakeLists.txt) | 0 | ||||
-rw-r--r-- | src/libnest2d/LICENSE.txt (renamed from xs/src/libnest2d/LICENSE.txt) | 0 | ||||
-rw-r--r-- | src/libnest2d/README.md (renamed from xs/src/libnest2d/README.md) | 0 | ||||
-rw-r--r-- | src/libnest2d/cmake_modules/DownloadNLopt.cmake (renamed from xs/src/libnest2d/cmake_modules/DownloadNLopt.cmake) | 0 | ||||
-rw-r--r-- | src/libnest2d/cmake_modules/DownloadProject.CMakeLists.cmake.in (renamed from xs/src/libnest2d/cmake_modules/DownloadProject.CMakeLists.cmake.in) | 0 | ||||
-rw-r--r-- | src/libnest2d/cmake_modules/DownloadProject.cmake (renamed from xs/src/libnest2d/cmake_modules/DownloadProject.cmake) | 0 | ||||
-rw-r--r-- | src/libnest2d/cmake_modules/FindClipper.cmake (renamed from xs/src/libnest2d/cmake_modules/FindClipper.cmake) | 0 | ||||
-rw-r--r-- | src/libnest2d/cmake_modules/FindNLopt.cmake (renamed from xs/src/libnest2d/cmake_modules/FindNLopt.cmake) | 0 | ||||
-rw-r--r-- | src/libnest2d/cmake_modules/FindTBB.cmake (renamed from xs/src/libnest2d/cmake_modules/FindTBB.cmake) | 0 | ||||
-rw-r--r-- | src/libnest2d/examples/main.cpp (renamed from xs/src/libnest2d/examples/main.cpp) | 0 | ||||
-rw-r--r-- | src/libnest2d/libnest2d.h (renamed from xs/src/libnest2d/libnest2d.h) | 0 | ||||
-rw-r--r-- | src/libnest2d/libnest2d/boost_alg.hpp (renamed from xs/src/libnest2d/libnest2d/boost_alg.hpp) | 0 | ||||
-rw-r--r-- | src/libnest2d/libnest2d/clipper_backend/CMakeLists.txt (renamed from xs/src/libnest2d/libnest2d/clipper_backend/CMakeLists.txt) | 0 | ||||
-rw-r--r-- | src/libnest2d/libnest2d/clipper_backend/clipper_backend.hpp (renamed from xs/src/libnest2d/libnest2d/clipper_backend/clipper_backend.hpp) | 0 | ||||
-rw-r--r-- | src/libnest2d/libnest2d/common.hpp (renamed from xs/src/libnest2d/libnest2d/common.hpp) | 0 | ||||
-rw-r--r-- | src/libnest2d/libnest2d/geometry_traits.hpp (renamed from xs/src/libnest2d/libnest2d/geometry_traits.hpp) | 0 | ||||
-rw-r--r-- | src/libnest2d/libnest2d/geometry_traits_nfp.hpp (renamed from xs/src/libnest2d/libnest2d/geometry_traits_nfp.hpp) | 0 | ||||
-rw-r--r-- | src/libnest2d/libnest2d/libnest2d.hpp (renamed from xs/src/libnest2d/libnest2d/libnest2d.hpp) | 0 | ||||
-rw-r--r-- | src/libnest2d/libnest2d/metaloop.hpp (renamed from xs/src/libnest2d/libnest2d/metaloop.hpp) | 0 | ||||
-rw-r--r-- | src/libnest2d/libnest2d/optimizer.hpp (renamed from xs/src/libnest2d/libnest2d/optimizer.hpp) | 0 | ||||
-rw-r--r-- | src/libnest2d/libnest2d/optimizers/genetic.hpp (renamed from xs/src/libnest2d/libnest2d/optimizers/genetic.hpp) | 0 | ||||
-rw-r--r-- | src/libnest2d/libnest2d/optimizers/nlopt_boilerplate.hpp (renamed from xs/src/libnest2d/libnest2d/optimizers/nlopt_boilerplate.hpp) | 0 | ||||
-rw-r--r-- | src/libnest2d/libnest2d/optimizers/simplex.hpp (renamed from xs/src/libnest2d/libnest2d/optimizers/simplex.hpp) | 0 | ||||
-rw-r--r-- | src/libnest2d/libnest2d/optimizers/subplex.hpp (renamed from xs/src/libnest2d/libnest2d/optimizers/subplex.hpp) | 0 | ||||
-rw-r--r-- | src/libnest2d/libnest2d/placers/bottomleftplacer.hpp (renamed from xs/src/libnest2d/libnest2d/placers/bottomleftplacer.hpp) | 0 | ||||
-rw-r--r-- | src/libnest2d/libnest2d/placers/nfpplacer.hpp (renamed from xs/src/libnest2d/libnest2d/placers/nfpplacer.hpp) | 0 | ||||
-rw-r--r-- | src/libnest2d/libnest2d/placers/placer_boilerplate.hpp (renamed from xs/src/libnest2d/libnest2d/placers/placer_boilerplate.hpp) | 0 | ||||
-rw-r--r-- | src/libnest2d/libnest2d/rotfinder.hpp (renamed from xs/src/libnest2d/libnest2d/rotfinder.hpp) | 0 | ||||
-rw-r--r-- | src/libnest2d/libnest2d/selections/djd_heuristic.hpp (renamed from xs/src/libnest2d/libnest2d/selections/djd_heuristic.hpp) | 0 | ||||
-rw-r--r-- | src/libnest2d/libnest2d/selections/filler.hpp (renamed from xs/src/libnest2d/libnest2d/selections/filler.hpp) | 0 | ||||
-rw-r--r-- | src/libnest2d/libnest2d/selections/firstfit.hpp (renamed from xs/src/libnest2d/libnest2d/selections/firstfit.hpp) | 0 | ||||
-rw-r--r-- | src/libnest2d/libnest2d/selections/selection_boilerplate.hpp (renamed from xs/src/libnest2d/libnest2d/selections/selection_boilerplate.hpp) | 0 | ||||
-rw-r--r-- | src/libnest2d/tests/CMakeLists.txt (renamed from xs/src/libnest2d/tests/CMakeLists.txt) | 0 | ||||
-rw-r--r-- | src/libnest2d/tests/printer_parts.cpp (renamed from xs/src/libnest2d/tests/printer_parts.cpp) | 0 | ||||
-rw-r--r-- | src/libnest2d/tests/printer_parts.h (renamed from xs/src/libnest2d/tests/printer_parts.h) | 0 | ||||
-rw-r--r-- | src/libnest2d/tests/test.cpp (renamed from xs/src/libnest2d/tests/test.cpp) | 0 | ||||
-rw-r--r-- | src/libnest2d/tools/benchmark.h (renamed from xs/src/benchmark.h) | 0 | ||||
-rw-r--r-- | src/libnest2d/tools/libnfpglue.cpp (renamed from xs/src/libnest2d/tools/libnfpglue.cpp) | 0 | ||||
-rw-r--r-- | src/libnest2d/tools/libnfpglue.hpp (renamed from xs/src/libnest2d/tools/libnfpglue.hpp) | 0 | ||||
-rw-r--r-- | src/libnest2d/tools/libnfporb/LICENSE (renamed from xs/src/libnest2d/tools/libnfporb/LICENSE) | 0 | ||||
-rw-r--r-- | src/libnest2d/tools/libnfporb/ORIGIN (renamed from xs/src/libnest2d/tools/libnfporb/ORIGIN) | 0 | ||||
-rw-r--r-- | src/libnest2d/tools/libnfporb/README.md (renamed from xs/src/libnest2d/tools/libnfporb/README.md) | 0 | ||||
-rw-r--r-- | src/libnest2d/tools/libnfporb/libnfporb.hpp (renamed from xs/src/libnest2d/tools/libnfporb/libnfporb.hpp) | 0 | ||||
-rw-r--r-- | src/libnest2d/tools/nfp_svgnest.hpp (renamed from xs/src/libnest2d/tools/nfp_svgnest.hpp) | 0 | ||||
-rw-r--r-- | src/libnest2d/tools/nfp_svgnest_glue.hpp (renamed from xs/src/libnest2d/tools/nfp_svgnest_glue.hpp) | 0 | ||||
-rw-r--r-- | src/libnest2d/tools/svgtools.hpp (renamed from xs/src/libnest2d/tools/svgtools.hpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/BoundingBox.cpp (renamed from xs/src/libslic3r/BoundingBox.cpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/BoundingBox.hpp (renamed from xs/src/libslic3r/BoundingBox.hpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/BridgeDetector.cpp (renamed from xs/src/libslic3r/BridgeDetector.cpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/BridgeDetector.hpp (renamed from xs/src/libslic3r/BridgeDetector.hpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/CMakeLists.txt | 173 | ||||
-rw-r--r-- | src/libslic3r/ClipperUtils.cpp (renamed from xs/src/libslic3r/ClipperUtils.cpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/ClipperUtils.hpp (renamed from xs/src/libslic3r/ClipperUtils.hpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/Config.cpp (renamed from xs/src/libslic3r/Config.cpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/Config.hpp (renamed from xs/src/libslic3r/Config.hpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/EdgeGrid.cpp (renamed from xs/src/libslic3r/EdgeGrid.cpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/EdgeGrid.hpp (renamed from xs/src/libslic3r/EdgeGrid.hpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/ExPolygon.cpp (renamed from xs/src/libslic3r/ExPolygon.cpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/ExPolygon.hpp (renamed from xs/src/libslic3r/ExPolygon.hpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/ExPolygonCollection.cpp (renamed from xs/src/libslic3r/ExPolygonCollection.cpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/ExPolygonCollection.hpp (renamed from xs/src/libslic3r/ExPolygonCollection.hpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/Extruder.cpp (renamed from xs/src/libslic3r/Extruder.cpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/Extruder.hpp (renamed from xs/src/libslic3r/Extruder.hpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/ExtrusionEntity.cpp (renamed from xs/src/libslic3r/ExtrusionEntity.cpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/ExtrusionEntity.hpp (renamed from xs/src/libslic3r/ExtrusionEntity.hpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/ExtrusionEntityCollection.cpp (renamed from xs/src/libslic3r/ExtrusionEntityCollection.cpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/ExtrusionEntityCollection.hpp (renamed from xs/src/libslic3r/ExtrusionEntityCollection.hpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/ExtrusionSimulator.cpp (renamed from xs/src/libslic3r/ExtrusionSimulator.cpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/ExtrusionSimulator.hpp (renamed from xs/src/libslic3r/ExtrusionSimulator.hpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/FileParserError.hpp (renamed from xs/src/libslic3r/FileParserError.hpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/Fill/Fill.cpp (renamed from xs/src/libslic3r/Fill/Fill.cpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/Fill/Fill.hpp (renamed from xs/src/libslic3r/Fill/Fill.hpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/Fill/Fill3DHoneycomb.cpp (renamed from xs/src/libslic3r/Fill/Fill3DHoneycomb.cpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/Fill/Fill3DHoneycomb.hpp (renamed from xs/src/libslic3r/Fill/Fill3DHoneycomb.hpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/Fill/FillBase.cpp (renamed from xs/src/libslic3r/Fill/FillBase.cpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/Fill/FillBase.hpp (renamed from xs/src/libslic3r/Fill/FillBase.hpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/Fill/FillConcentric.cpp (renamed from xs/src/libslic3r/Fill/FillConcentric.cpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/Fill/FillConcentric.hpp (renamed from xs/src/libslic3r/Fill/FillConcentric.hpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/Fill/FillGyroid.cpp (renamed from xs/src/libslic3r/Fill/FillGyroid.cpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/Fill/FillGyroid.hpp (renamed from xs/src/libslic3r/Fill/FillGyroid.hpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/Fill/FillHoneycomb.cpp (renamed from xs/src/libslic3r/Fill/FillHoneycomb.cpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/Fill/FillHoneycomb.hpp (renamed from xs/src/libslic3r/Fill/FillHoneycomb.hpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/Fill/FillPlanePath.cpp (renamed from xs/src/libslic3r/Fill/FillPlanePath.cpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/Fill/FillPlanePath.hpp (renamed from xs/src/libslic3r/Fill/FillPlanePath.hpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/Fill/FillRectilinear.cpp (renamed from xs/src/libslic3r/Fill/FillRectilinear.cpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/Fill/FillRectilinear.hpp (renamed from xs/src/libslic3r/Fill/FillRectilinear.hpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/Fill/FillRectilinear2.cpp (renamed from xs/src/libslic3r/Fill/FillRectilinear2.cpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/Fill/FillRectilinear2.hpp (renamed from xs/src/libslic3r/Fill/FillRectilinear2.hpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/Fill/FillRectilinear3.cpp (renamed from xs/src/libslic3r/Fill/FillRectilinear3.cpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/Fill/FillRectilinear3.hpp (renamed from xs/src/libslic3r/Fill/FillRectilinear3.hpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/Flow.cpp (renamed from xs/src/libslic3r/Flow.cpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/Flow.hpp (renamed from xs/src/libslic3r/Flow.hpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/Format/3mf.cpp (renamed from xs/src/libslic3r/Format/3mf.cpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/Format/3mf.hpp (renamed from xs/src/libslic3r/Format/3mf.hpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/Format/AMF.cpp (renamed from xs/src/libslic3r/Format/AMF.cpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/Format/AMF.hpp (renamed from xs/src/libslic3r/Format/AMF.hpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/Format/OBJ.cpp (renamed from xs/src/libslic3r/Format/OBJ.cpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/Format/OBJ.hpp (renamed from xs/src/libslic3r/Format/OBJ.hpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/Format/PRUS.cpp (renamed from xs/src/libslic3r/Format/PRUS.cpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/Format/PRUS.hpp (renamed from xs/src/libslic3r/Format/PRUS.hpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/Format/STL.cpp (renamed from xs/src/libslic3r/Format/STL.cpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/Format/STL.hpp (renamed from xs/src/libslic3r/Format/STL.hpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/Format/objparser.cpp (renamed from xs/src/libslic3r/Format/objparser.cpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/Format/objparser.hpp (renamed from xs/src/libslic3r/Format/objparser.hpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/GCode.cpp (renamed from xs/src/libslic3r/GCode.cpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/GCode.hpp (renamed from xs/src/libslic3r/GCode.hpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/GCode/Analyzer.cpp (renamed from xs/src/libslic3r/GCode/Analyzer.cpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/GCode/Analyzer.hpp (renamed from xs/src/libslic3r/GCode/Analyzer.hpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/GCode/CoolingBuffer.cpp (renamed from xs/src/libslic3r/GCode/CoolingBuffer.cpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/GCode/CoolingBuffer.hpp (renamed from xs/src/libslic3r/GCode/CoolingBuffer.hpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/GCode/PostProcessor.cpp (renamed from xs/src/libslic3r/GCode/PostProcessor.cpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/GCode/PostProcessor.hpp (renamed from xs/src/libslic3r/GCode/PostProcessor.hpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/GCode/PressureEqualizer.cpp (renamed from xs/src/libslic3r/GCode/PressureEqualizer.cpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/GCode/PressureEqualizer.hpp (renamed from xs/src/libslic3r/GCode/PressureEqualizer.hpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/GCode/PreviewData.cpp (renamed from xs/src/libslic3r/GCode/PreviewData.cpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/GCode/PreviewData.hpp (renamed from xs/src/libslic3r/GCode/PreviewData.hpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/GCode/PrintExtents.cpp (renamed from xs/src/libslic3r/GCode/PrintExtents.cpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/GCode/PrintExtents.hpp (renamed from xs/src/libslic3r/GCode/PrintExtents.hpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/GCode/SpiralVase.cpp (renamed from xs/src/libslic3r/GCode/SpiralVase.cpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/GCode/SpiralVase.hpp (renamed from xs/src/libslic3r/GCode/SpiralVase.hpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/GCode/ToolOrdering.cpp (renamed from xs/src/libslic3r/GCode/ToolOrdering.cpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/GCode/ToolOrdering.hpp (renamed from xs/src/libslic3r/GCode/ToolOrdering.hpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/GCode/WipeTower.hpp (renamed from xs/src/libslic3r/GCode/WipeTower.hpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/GCode/WipeTowerPrusaMM.cpp (renamed from xs/src/libslic3r/GCode/WipeTowerPrusaMM.cpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/GCode/WipeTowerPrusaMM.hpp (renamed from xs/src/libslic3r/GCode/WipeTowerPrusaMM.hpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/GCodeReader.cpp (renamed from xs/src/libslic3r/GCodeReader.cpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/GCodeReader.hpp (renamed from xs/src/libslic3r/GCodeReader.hpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/GCodeSender.cpp (renamed from xs/src/libslic3r/GCodeSender.cpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/GCodeSender.hpp (renamed from xs/src/libslic3r/GCodeSender.hpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/GCodeTimeEstimator.cpp (renamed from xs/src/libslic3r/GCodeTimeEstimator.cpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/GCodeTimeEstimator.hpp (renamed from xs/src/libslic3r/GCodeTimeEstimator.hpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/GCodeWriter.cpp (renamed from xs/src/libslic3r/GCodeWriter.cpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/GCodeWriter.hpp (renamed from xs/src/libslic3r/GCodeWriter.hpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/Geometry.cpp (renamed from xs/src/libslic3r/Geometry.cpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/Geometry.hpp (renamed from xs/src/libslic3r/Geometry.hpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/I18N.hpp (renamed from xs/src/libslic3r/I18N.hpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/Int128.hpp (renamed from xs/src/libslic3r/Int128.hpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/Layer.cpp (renamed from xs/src/libslic3r/Layer.cpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/Layer.hpp (renamed from xs/src/libslic3r/Layer.hpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/LayerRegion.cpp (renamed from xs/src/libslic3r/LayerRegion.cpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/Line.cpp (renamed from xs/src/libslic3r/Line.cpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/Line.hpp (renamed from xs/src/libslic3r/Line.hpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/Model.cpp (renamed from xs/src/libslic3r/Model.cpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/Model.hpp (renamed from xs/src/libslic3r/Model.hpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/ModelArrange.hpp (renamed from xs/src/libslic3r/ModelArrange.hpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/MotionPlanner.cpp (renamed from xs/src/libslic3r/MotionPlanner.cpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/MotionPlanner.hpp (renamed from xs/src/libslic3r/MotionPlanner.hpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/MultiPoint.cpp (renamed from xs/src/libslic3r/MultiPoint.cpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/MultiPoint.hpp (renamed from xs/src/libslic3r/MultiPoint.hpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/MutablePriorityQueue.hpp (renamed from xs/src/libslic3r/MutablePriorityQueue.hpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/PerimeterGenerator.cpp (renamed from xs/src/libslic3r/PerimeterGenerator.cpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/PerimeterGenerator.hpp (renamed from xs/src/libslic3r/PerimeterGenerator.hpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/PlaceholderParser.cpp (renamed from xs/src/libslic3r/PlaceholderParser.cpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/PlaceholderParser.hpp (renamed from xs/src/libslic3r/PlaceholderParser.hpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/Point.cpp (renamed from xs/src/libslic3r/Point.cpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/Point.hpp (renamed from xs/src/libslic3r/Point.hpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/Polygon.cpp (renamed from xs/src/libslic3r/Polygon.cpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/Polygon.hpp (renamed from xs/src/libslic3r/Polygon.hpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/Polyline.cpp (renamed from xs/src/libslic3r/Polyline.cpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/Polyline.hpp (renamed from xs/src/libslic3r/Polyline.hpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/PolylineCollection.cpp (renamed from xs/src/libslic3r/PolylineCollection.cpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/PolylineCollection.hpp (renamed from xs/src/libslic3r/PolylineCollection.hpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/Print.cpp (renamed from xs/src/libslic3r/Print.cpp) | 32 | ||||
-rw-r--r-- | src/libslic3r/Print.hpp (renamed from xs/src/libslic3r/Print.hpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/PrintConfig.cpp (renamed from xs/src/libslic3r/PrintConfig.cpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/PrintConfig.hpp (renamed from xs/src/libslic3r/PrintConfig.hpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/PrintExport.hpp (renamed from xs/src/libslic3r/PrintExport.hpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/PrintObject.cpp (renamed from xs/src/libslic3r/PrintObject.cpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/PrintRegion.cpp (renamed from xs/src/libslic3r/PrintRegion.cpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/Rasterizer/Rasterizer.cpp (renamed from xs/src/libslic3r/Rasterizer/Rasterizer.cpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/Rasterizer/Rasterizer.hpp (renamed from xs/src/libslic3r/Rasterizer/Rasterizer.hpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/SLABasePool.cpp (renamed from xs/src/libslic3r/SLABasePool.cpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/SLABasePool.hpp (renamed from xs/src/libslic3r/SLABasePool.hpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/SVG.cpp (renamed from xs/src/libslic3r/SVG.cpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/SVG.hpp (renamed from xs/src/libslic3r/SVG.hpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/Slicing.cpp (renamed from xs/src/libslic3r/Slicing.cpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/Slicing.hpp (renamed from xs/src/libslic3r/Slicing.hpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/SlicingAdaptive.cpp (renamed from xs/src/libslic3r/SlicingAdaptive.cpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/SlicingAdaptive.hpp (renamed from xs/src/libslic3r/SlicingAdaptive.hpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/SupportMaterial.cpp (renamed from xs/src/libslic3r/SupportMaterial.cpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/SupportMaterial.hpp (renamed from xs/src/libslic3r/SupportMaterial.hpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/Surface.cpp (renamed from xs/src/libslic3r/Surface.cpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/Surface.hpp (renamed from xs/src/libslic3r/Surface.hpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/SurfaceCollection.cpp (renamed from xs/src/libslic3r/SurfaceCollection.cpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/SurfaceCollection.hpp (renamed from xs/src/libslic3r/SurfaceCollection.hpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/Technologies.hpp (renamed from xs/src/libslic3r/Technologies.hpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/TriangleMesh.cpp (renamed from xs/src/libslic3r/TriangleMesh.cpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/TriangleMesh.hpp (renamed from xs/src/libslic3r/TriangleMesh.hpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/Utils.hpp (renamed from xs/src/libslic3r/Utils.hpp) | 0 | ||||
-rw-r--r-- | src/libslic3r/libslic3r.h (renamed from xs/src/libslic3r/libslic3r.h) | 0 | ||||
-rw-r--r-- | src/libslic3r/utils.cpp (renamed from xs/src/libslic3r/utils.cpp) | 0 | ||||
-rw-r--r-- | src/miniz/CMakeLists.txt | 14 | ||||
-rw-r--r-- | src/miniz/miniz.cpp (renamed from xs/src/miniz/miniz.cpp) | 0 | ||||
-rw-r--r-- | src/miniz/miniz.h (renamed from xs/src/miniz/miniz.h) | 0 | ||||
-rw-r--r-- | src/miniz/miniz_common.h (renamed from xs/src/miniz/miniz_common.h) | 0 | ||||
-rw-r--r-- | src/miniz/miniz_tdef.cpp (renamed from xs/src/miniz/miniz_tdef.cpp) | 0 | ||||
-rw-r--r-- | src/miniz/miniz_tdef.h (renamed from xs/src/miniz/miniz_tdef.h) | 0 | ||||
-rw-r--r-- | src/miniz/miniz_tinfl.cpp (renamed from xs/src/miniz/miniz_tinfl.cpp) | 0 | ||||
-rw-r--r-- | src/miniz/miniz_tinfl.h (renamed from xs/src/miniz/miniz_tinfl.h) | 0 | ||||
-rw-r--r-- | src/miniz/miniz_zip.cpp (renamed from xs/src/miniz/miniz_zip.cpp) | 0 | ||||
-rw-r--r-- | src/miniz/miniz_zip.h (renamed from xs/src/miniz/miniz_zip.h) | 0 | ||||
-rw-r--r-- | src/png/AUTHORS (renamed from xs/src/png/AUTHORS) | 0 | ||||
-rw-r--r-- | src/png/COPYING (renamed from xs/src/png/COPYING) | 0 | ||||
-rw-r--r-- | src/png/NEWS (renamed from xs/src/png/NEWS) | 0 | ||||
-rw-r--r-- | src/png/color.hpp (renamed from xs/src/png/color.hpp) | 0 | ||||
-rw-r--r-- | src/png/end_info.hpp (renamed from xs/src/png/end_info.hpp) | 0 | ||||
-rw-r--r-- | src/png/error.hpp (renamed from xs/src/png/error.hpp) | 0 | ||||
-rw-r--r-- | src/png/image_info.hpp (renamed from xs/src/png/image_info.hpp) | 0 | ||||
-rw-r--r-- | src/png/info.hpp (renamed from xs/src/png/info.hpp) | 0 | ||||
-rw-r--r-- | src/png/info_base.hpp (renamed from xs/src/png/info_base.hpp) | 0 | ||||
-rw-r--r-- | src/png/io_base.hpp (renamed from xs/src/png/io_base.hpp) | 0 | ||||
-rw-r--r-- | src/png/libpng/ANNOUNCE (renamed from xs/src/png/libpng/ANNOUNCE) | 0 | ||||
-rw-r--r-- | src/png/libpng/CMakeLists.txt (renamed from xs/src/png/libpng/CMakeLists.txt) | 26 | ||||
-rw-r--r-- | src/png/libpng/LICENSE (renamed from xs/src/png/libpng/LICENSE) | 0 | ||||
-rw-r--r-- | src/png/libpng/arm/arm_init.c (renamed from xs/src/png/libpng/arm/arm_init.c) | 0 | ||||
-rw-r--r-- | src/png/libpng/arm/filter_neon.S (renamed from xs/src/png/libpng/arm/filter_neon.S) | 0 | ||||
-rw-r--r-- | src/png/libpng/arm/filter_neon_intrinsics.c (renamed from xs/src/png/libpng/arm/filter_neon_intrinsics.c) | 0 | ||||
-rw-r--r-- | src/png/libpng/intel/filter_sse2_intrinsics.c (renamed from xs/src/png/libpng/intel/filter_sse2_intrinsics.c) | 0 | ||||
-rw-r--r-- | src/png/libpng/intel/intel_init.c (renamed from xs/src/png/libpng/intel/intel_init.c) | 0 | ||||
-rw-r--r-- | src/png/libpng/libpng-config.in (renamed from xs/src/png/libpng/libpng-config.in) | 0 | ||||
-rw-r--r-- | src/png/libpng/libpng.pc.in (renamed from xs/src/png/libpng/libpng.pc.in) | 0 | ||||
-rw-r--r-- | src/png/libpng/mips/filter_msa_intrinsics.c (renamed from xs/src/png/libpng/mips/filter_msa_intrinsics.c) | 0 | ||||
-rw-r--r-- | src/png/libpng/mips/mips_init.c (renamed from xs/src/png/libpng/mips/mips_init.c) | 0 | ||||
-rw-r--r-- | src/png/libpng/png.c (renamed from xs/src/png/libpng/png.c) | 0 | ||||
-rw-r--r-- | src/png/libpng/png.h (renamed from xs/src/png/libpng/png.h) | 0 | ||||
-rw-r--r-- | src/png/libpng/pngconf.h (renamed from xs/src/png/libpng/pngconf.h) | 0 | ||||
-rw-r--r-- | src/png/libpng/pngdebug.h (renamed from xs/src/png/libpng/pngdebug.h) | 0 | ||||
-rw-r--r-- | src/png/libpng/pngerror.c (renamed from xs/src/png/libpng/pngerror.c) | 0 | ||||
-rw-r--r-- | src/png/libpng/pngget.c (renamed from xs/src/png/libpng/pngget.c) | 0 | ||||
-rw-r--r-- | src/png/libpng/pnginfo.h (renamed from xs/src/png/libpng/pnginfo.h) | 0 | ||||
-rw-r--r-- | src/png/libpng/pngmem.c (renamed from xs/src/png/libpng/pngmem.c) | 0 | ||||
-rw-r--r-- | src/png/libpng/pngpread.c (renamed from xs/src/png/libpng/pngpread.c) | 0 | ||||
-rw-r--r-- | src/png/libpng/pngpriv.h (renamed from xs/src/png/libpng/pngpriv.h) | 0 | ||||
-rw-r--r-- | src/png/libpng/pngread.c (renamed from xs/src/png/libpng/pngread.c) | 0 | ||||
-rw-r--r-- | src/png/libpng/pngrio.c (renamed from xs/src/png/libpng/pngrio.c) | 0 | ||||
-rw-r--r-- | src/png/libpng/pngrtran.c (renamed from xs/src/png/libpng/pngrtran.c) | 0 | ||||
-rw-r--r-- | src/png/libpng/pngrutil.c (renamed from xs/src/png/libpng/pngrutil.c) | 0 | ||||
-rw-r--r-- | src/png/libpng/pngset.c (renamed from xs/src/png/libpng/pngset.c) | 0 | ||||
-rw-r--r-- | src/png/libpng/pngstruct.h (renamed from xs/src/png/libpng/pngstruct.h) | 0 | ||||
-rw-r--r-- | src/png/libpng/pngtest.c (renamed from xs/src/png/libpng/pngtest.c) | 0 | ||||
-rw-r--r-- | src/png/libpng/pngtrans.c (renamed from xs/src/png/libpng/pngtrans.c) | 0 | ||||
-rw-r--r-- | src/png/libpng/pngusr.dfa (renamed from xs/src/png/libpng/pngusr.dfa) | 0 | ||||
-rw-r--r-- | src/png/libpng/pngwio.c (renamed from xs/src/png/libpng/pngwio.c) | 0 | ||||
-rw-r--r-- | src/png/libpng/pngwrite.c (renamed from xs/src/png/libpng/pngwrite.c) | 0 | ||||
-rw-r--r-- | src/png/libpng/pngwtran.c (renamed from xs/src/png/libpng/pngwtran.c) | 0 | ||||
-rw-r--r-- | src/png/libpng/pngwutil.c (renamed from xs/src/png/libpng/pngwutil.c) | 0 | ||||
-rw-r--r-- | src/png/libpng/powerpc/filter_vsx_intrinsics.c (renamed from xs/src/png/libpng/powerpc/filter_vsx_intrinsics.c) | 0 | ||||
-rw-r--r-- | src/png/libpng/powerpc/powerpc_init.c (renamed from xs/src/png/libpng/powerpc/powerpc_init.c) | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | src/png/libpng/scripts/checksym.awk (renamed from xs/src/png/libpng/scripts/checksym.awk) | 0 | ||||
-rw-r--r-- | src/png/libpng/scripts/def.c (renamed from xs/src/png/libpng/scripts/def.c) | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | src/png/libpng/scripts/dfn.awk (renamed from xs/src/png/libpng/scripts/dfn.awk) | 0 | ||||
-rw-r--r-- | src/png/libpng/scripts/genchk.cmake.in (renamed from xs/src/png/libpng/scripts/genchk.cmake.in) | 0 | ||||
-rw-r--r-- | src/png/libpng/scripts/genout.cmake.in (renamed from xs/src/png/libpng/scripts/genout.cmake.in) | 0 | ||||
-rw-r--r-- | src/png/libpng/scripts/gensrc.cmake.in (renamed from xs/src/png/libpng/scripts/gensrc.cmake.in) | 0 | ||||
-rw-r--r-- | src/png/libpng/scripts/intprefix.c (renamed from xs/src/png/libpng/scripts/intprefix.c) | 0 | ||||
-rw-r--r-- | src/png/libpng/scripts/libpng-config-body.in (renamed from xs/src/png/libpng/scripts/libpng-config-body.in) | 0 | ||||
-rw-r--r-- | src/png/libpng/scripts/libpng-config-head.in (renamed from xs/src/png/libpng/scripts/libpng-config-head.in) | 0 | ||||
-rw-r--r-- | src/png/libpng/scripts/libpng.pc.in (renamed from xs/src/png/libpng/scripts/libpng.pc.in) | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | src/png/libpng/scripts/options.awk (renamed from xs/src/png/libpng/scripts/options.awk) | 0 | ||||
-rw-r--r-- | src/png/libpng/scripts/pnglibconf.dfa (renamed from xs/src/png/libpng/scripts/pnglibconf.dfa) | 0 | ||||
-rw-r--r-- | src/png/libpng/scripts/pnglibconf.h.prebuilt (renamed from xs/src/png/libpng/scripts/pnglibconf.h.prebuilt) | 0 | ||||
-rw-r--r-- | src/png/libpng/scripts/prefix.c (renamed from xs/src/png/libpng/scripts/prefix.c) | 0 | ||||
-rw-r--r-- | src/png/libpng/scripts/sym.c (renamed from xs/src/png/libpng/scripts/sym.c) | 0 | ||||
-rw-r--r-- | src/png/libpng/scripts/symbols.c (renamed from xs/src/png/libpng/scripts/symbols.c) | 0 | ||||
-rw-r--r-- | src/png/libpng/scripts/symbols.def (renamed from xs/src/png/libpng/scripts/symbols.def) | 0 | ||||
-rw-r--r-- | src/png/libpng/scripts/test.cmake.in (renamed from xs/src/png/libpng/scripts/test.cmake.in) | 0 | ||||
-rw-r--r-- | src/png/libpng/scripts/vers.c (renamed from xs/src/png/libpng/scripts/vers.c) | 0 | ||||
-rw-r--r-- | src/png/palette.hpp (renamed from xs/src/png/palette.hpp) | 0 | ||||
-rw-r--r-- | src/png/pixel_traits.hpp (renamed from xs/src/png/pixel_traits.hpp) | 0 | ||||
-rw-r--r-- | src/png/tRNS.hpp (renamed from xs/src/png/tRNS.hpp) | 0 | ||||
-rw-r--r-- | src/png/types.hpp (renamed from xs/src/png/types.hpp) | 0 | ||||
-rw-r--r-- | src/png/writer.hpp (renamed from xs/src/png/writer.hpp) | 0 | ||||
-rw-r--r-- | src/png/zlib/CMakeLists.txt (renamed from xs/src/png/zlib/CMakeLists.txt) | 0 | ||||
-rw-r--r-- | src/png/zlib/ChangeLog (renamed from xs/src/png/zlib/ChangeLog) | 0 | ||||
-rw-r--r-- | src/png/zlib/FAQ (renamed from xs/src/png/zlib/FAQ) | 0 | ||||
-rw-r--r-- | src/png/zlib/INDEX (renamed from xs/src/png/zlib/INDEX) | 0 | ||||
-rw-r--r-- | src/png/zlib/Makefile (renamed from xs/src/png/zlib/Makefile) | 0 | ||||
-rw-r--r-- | src/png/zlib/Makefile.in (renamed from xs/src/png/zlib/Makefile.in) | 0 | ||||
-rw-r--r-- | src/png/zlib/README (renamed from xs/src/png/zlib/README) | 0 | ||||
-rw-r--r-- | src/png/zlib/adler32.c (renamed from xs/src/png/zlib/adler32.c) | 0 | ||||
-rw-r--r-- | src/png/zlib/amiga/Makefile.pup (renamed from xs/src/png/zlib/amiga/Makefile.pup) | 0 | ||||
-rw-r--r-- | src/png/zlib/amiga/Makefile.sas (renamed from xs/src/png/zlib/amiga/Makefile.sas) | 0 | ||||
-rw-r--r-- | src/png/zlib/compress.c (renamed from xs/src/png/zlib/compress.c) | 0 | ||||
-rw-r--r-- | src/png/zlib/configure (renamed from xs/src/png/zlib/configure) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/README.contrib (renamed from xs/src/png/zlib/contrib/README.contrib) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/ada/buffer_demo.adb (renamed from xs/src/png/zlib/contrib/ada/buffer_demo.adb) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/ada/mtest.adb (renamed from xs/src/png/zlib/contrib/ada/mtest.adb) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/ada/read.adb (renamed from xs/src/png/zlib/contrib/ada/read.adb) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/ada/readme.txt (renamed from xs/src/png/zlib/contrib/ada/readme.txt) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/ada/test.adb (renamed from xs/src/png/zlib/contrib/ada/test.adb) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/ada/zlib-streams.adb (renamed from xs/src/png/zlib/contrib/ada/zlib-streams.adb) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/ada/zlib-streams.ads (renamed from xs/src/png/zlib/contrib/ada/zlib-streams.ads) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/ada/zlib-thin.adb (renamed from xs/src/png/zlib/contrib/ada/zlib-thin.adb) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/ada/zlib-thin.ads (renamed from xs/src/png/zlib/contrib/ada/zlib-thin.ads) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/ada/zlib.adb (renamed from xs/src/png/zlib/contrib/ada/zlib.adb) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/ada/zlib.ads (renamed from xs/src/png/zlib/contrib/ada/zlib.ads) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/ada/zlib.gpr (renamed from xs/src/png/zlib/contrib/ada/zlib.gpr) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/amd64/amd64-match.S (renamed from xs/src/png/zlib/contrib/amd64/amd64-match.S) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/asm686/README.686 (renamed from xs/src/png/zlib/contrib/asm686/README.686) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/asm686/match.S (renamed from xs/src/png/zlib/contrib/asm686/match.S) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/blast/Makefile (renamed from xs/src/png/zlib/contrib/blast/Makefile) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/blast/README (renamed from xs/src/png/zlib/contrib/blast/README) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/blast/blast.c (renamed from xs/src/png/zlib/contrib/blast/blast.c) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/blast/blast.h (renamed from xs/src/png/zlib/contrib/blast/blast.h) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/blast/test.pk (renamed from xs/src/png/zlib/contrib/blast/test.pk) | bin | 8 -> 8 bytes | |||
-rw-r--r-- | src/png/zlib/contrib/blast/test.txt (renamed from xs/src/png/zlib/contrib/blast/test.txt) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/delphi/ZLib.pas (renamed from xs/src/png/zlib/contrib/delphi/ZLib.pas) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/delphi/ZLibConst.pas (renamed from xs/src/png/zlib/contrib/delphi/ZLibConst.pas) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/delphi/readme.txt (renamed from xs/src/png/zlib/contrib/delphi/readme.txt) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/delphi/zlibd32.mak (renamed from xs/src/png/zlib/contrib/delphi/zlibd32.mak) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/dotzlib/DotZLib.build (renamed from xs/src/png/zlib/contrib/dotzlib/DotZLib.build) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/dotzlib/DotZLib.chm (renamed from xs/src/png/zlib/contrib/dotzlib/DotZLib.chm) | bin | 72726 -> 72726 bytes | |||
-rw-r--r-- | src/png/zlib/contrib/dotzlib/DotZLib.sln (renamed from xs/src/png/zlib/contrib/dotzlib/DotZLib.sln) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/dotzlib/DotZLib/AssemblyInfo.cs (renamed from xs/src/png/zlib/contrib/dotzlib/DotZLib/AssemblyInfo.cs) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/dotzlib/DotZLib/ChecksumImpl.cs (renamed from xs/src/png/zlib/contrib/dotzlib/DotZLib/ChecksumImpl.cs) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/dotzlib/DotZLib/CircularBuffer.cs (renamed from xs/src/png/zlib/contrib/dotzlib/DotZLib/CircularBuffer.cs) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/dotzlib/DotZLib/CodecBase.cs (renamed from xs/src/png/zlib/contrib/dotzlib/DotZLib/CodecBase.cs) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/dotzlib/DotZLib/Deflater.cs (renamed from xs/src/png/zlib/contrib/dotzlib/DotZLib/Deflater.cs) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/dotzlib/DotZLib/DotZLib.cs (renamed from xs/src/png/zlib/contrib/dotzlib/DotZLib/DotZLib.cs) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/dotzlib/DotZLib/DotZLib.csproj (renamed from xs/src/png/zlib/contrib/dotzlib/DotZLib/DotZLib.csproj) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/dotzlib/DotZLib/GZipStream.cs (renamed from xs/src/png/zlib/contrib/dotzlib/DotZLib/GZipStream.cs) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/dotzlib/DotZLib/Inflater.cs (renamed from xs/src/png/zlib/contrib/dotzlib/DotZLib/Inflater.cs) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/dotzlib/DotZLib/UnitTests.cs (renamed from xs/src/png/zlib/contrib/dotzlib/DotZLib/UnitTests.cs) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/dotzlib/LICENSE_1_0.txt (renamed from xs/src/png/zlib/contrib/dotzlib/LICENSE_1_0.txt) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/dotzlib/readme.txt (renamed from xs/src/png/zlib/contrib/dotzlib/readme.txt) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/gcc_gvmat64/gvmat64.S (renamed from xs/src/png/zlib/contrib/gcc_gvmat64/gvmat64.S) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/infback9/README (renamed from xs/src/png/zlib/contrib/infback9/README) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/infback9/infback9.c (renamed from xs/src/png/zlib/contrib/infback9/infback9.c) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/infback9/infback9.h (renamed from xs/src/png/zlib/contrib/infback9/infback9.h) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/infback9/inffix9.h (renamed from xs/src/png/zlib/contrib/infback9/inffix9.h) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/infback9/inflate9.h (renamed from xs/src/png/zlib/contrib/infback9/inflate9.h) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/infback9/inftree9.c (renamed from xs/src/png/zlib/contrib/infback9/inftree9.c) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/infback9/inftree9.h (renamed from xs/src/png/zlib/contrib/infback9/inftree9.h) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/inflate86/inffas86.c (renamed from xs/src/png/zlib/contrib/inflate86/inffas86.c) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/inflate86/inffast.S (renamed from xs/src/png/zlib/contrib/inflate86/inffast.S) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/iostream/test.cpp (renamed from xs/src/png/zlib/contrib/iostream/test.cpp) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/iostream/zfstream.cpp (renamed from xs/src/png/zlib/contrib/iostream/zfstream.cpp) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/iostream/zfstream.h (renamed from xs/src/png/zlib/contrib/iostream/zfstream.h) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/iostream2/zstream.h (renamed from xs/src/png/zlib/contrib/iostream2/zstream.h) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/iostream2/zstream_test.cpp (renamed from xs/src/png/zlib/contrib/iostream2/zstream_test.cpp) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/iostream3/README (renamed from xs/src/png/zlib/contrib/iostream3/README) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/iostream3/TODO (renamed from xs/src/png/zlib/contrib/iostream3/TODO) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/iostream3/test.cc (renamed from xs/src/png/zlib/contrib/iostream3/test.cc) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/iostream3/zfstream.cc (renamed from xs/src/png/zlib/contrib/iostream3/zfstream.cc) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/iostream3/zfstream.h (renamed from xs/src/png/zlib/contrib/iostream3/zfstream.h) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/masmx64/bld_ml64.bat (renamed from xs/src/png/zlib/contrib/masmx64/bld_ml64.bat) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/masmx64/gvmat64.asm (renamed from xs/src/png/zlib/contrib/masmx64/gvmat64.asm) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/masmx64/inffas8664.c (renamed from xs/src/png/zlib/contrib/masmx64/inffas8664.c) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/masmx64/inffasx64.asm (renamed from xs/src/png/zlib/contrib/masmx64/inffasx64.asm) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/masmx64/readme.txt (renamed from xs/src/png/zlib/contrib/masmx64/readme.txt) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/masmx86/bld_ml32.bat (renamed from xs/src/png/zlib/contrib/masmx86/bld_ml32.bat) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/masmx86/inffas32.asm (renamed from xs/src/png/zlib/contrib/masmx86/inffas32.asm) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/masmx86/match686.asm (renamed from xs/src/png/zlib/contrib/masmx86/match686.asm) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/masmx86/readme.txt (renamed from xs/src/png/zlib/contrib/masmx86/readme.txt) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/minizip/Makefile (renamed from xs/src/png/zlib/contrib/minizip/Makefile) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/minizip/Makefile.am (renamed from xs/src/png/zlib/contrib/minizip/Makefile.am) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/minizip/MiniZip64_Changes.txt (renamed from xs/src/png/zlib/contrib/minizip/MiniZip64_Changes.txt) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/minizip/MiniZip64_info.txt (renamed from xs/src/png/zlib/contrib/minizip/MiniZip64_info.txt) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/minizip/configure.ac (renamed from xs/src/png/zlib/contrib/minizip/configure.ac) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/minizip/crypt.h (renamed from xs/src/png/zlib/contrib/minizip/crypt.h) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/minizip/ioapi.c (renamed from xs/src/png/zlib/contrib/minizip/ioapi.c) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/minizip/ioapi.h (renamed from xs/src/png/zlib/contrib/minizip/ioapi.h) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/minizip/iowin32.c (renamed from xs/src/png/zlib/contrib/minizip/iowin32.c) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/minizip/iowin32.h (renamed from xs/src/png/zlib/contrib/minizip/iowin32.h) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/minizip/make_vms.com (renamed from xs/src/png/zlib/contrib/minizip/make_vms.com) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/minizip/miniunz.c (renamed from xs/src/png/zlib/contrib/minizip/miniunz.c) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/minizip/miniunzip.1 (renamed from xs/src/png/zlib/contrib/minizip/miniunzip.1) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/minizip/minizip.1 (renamed from xs/src/png/zlib/contrib/minizip/minizip.1) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/minizip/minizip.c (renamed from xs/src/png/zlib/contrib/minizip/minizip.c) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/minizip/minizip.pc.in (renamed from xs/src/png/zlib/contrib/minizip/minizip.pc.in) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/minizip/mztools.c (renamed from xs/src/png/zlib/contrib/minizip/mztools.c) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/minizip/mztools.h (renamed from xs/src/png/zlib/contrib/minizip/mztools.h) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/minizip/unzip.c (renamed from xs/src/png/zlib/contrib/minizip/unzip.c) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/minizip/unzip.h (renamed from xs/src/png/zlib/contrib/minizip/unzip.h) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/minizip/zip.c (renamed from xs/src/png/zlib/contrib/minizip/zip.c) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/minizip/zip.h (renamed from xs/src/png/zlib/contrib/minizip/zip.h) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/pascal/example.pas (renamed from xs/src/png/zlib/contrib/pascal/example.pas) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/pascal/readme.txt (renamed from xs/src/png/zlib/contrib/pascal/readme.txt) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/pascal/zlibd32.mak (renamed from xs/src/png/zlib/contrib/pascal/zlibd32.mak) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/pascal/zlibpas.pas (renamed from xs/src/png/zlib/contrib/pascal/zlibpas.pas) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/puff/Makefile (renamed from xs/src/png/zlib/contrib/puff/Makefile) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/puff/README (renamed from xs/src/png/zlib/contrib/puff/README) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/puff/puff.c (renamed from xs/src/png/zlib/contrib/puff/puff.c) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/puff/puff.h (renamed from xs/src/png/zlib/contrib/puff/puff.h) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/puff/pufftest.c (renamed from xs/src/png/zlib/contrib/puff/pufftest.c) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/puff/zeros.raw (renamed from xs/src/png/zlib/contrib/puff/zeros.raw) | bin | 2517 -> 2517 bytes | |||
-rw-r--r-- | src/png/zlib/contrib/testzlib/testzlib.c (renamed from xs/src/png/zlib/contrib/testzlib/testzlib.c) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/testzlib/testzlib.txt (renamed from xs/src/png/zlib/contrib/testzlib/testzlib.txt) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/untgz/Makefile (renamed from xs/src/png/zlib/contrib/untgz/Makefile) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/untgz/Makefile.msc (renamed from xs/src/png/zlib/contrib/untgz/Makefile.msc) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/untgz/untgz.c (renamed from xs/src/png/zlib/contrib/untgz/untgz.c) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/vstudio/readme.txt (renamed from xs/src/png/zlib/contrib/vstudio/readme.txt) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/vstudio/vc10/miniunz.vcxproj (renamed from xs/src/png/zlib/contrib/vstudio/vc10/miniunz.vcxproj) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/vstudio/vc10/miniunz.vcxproj.filters (renamed from xs/src/png/zlib/contrib/vstudio/vc10/miniunz.vcxproj.filters) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/vstudio/vc10/minizip.vcxproj (renamed from xs/src/png/zlib/contrib/vstudio/vc10/minizip.vcxproj) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/vstudio/vc10/minizip.vcxproj.filters (renamed from xs/src/png/zlib/contrib/vstudio/vc10/minizip.vcxproj.filters) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/vstudio/vc10/testzlib.vcxproj (renamed from xs/src/png/zlib/contrib/vstudio/vc10/testzlib.vcxproj) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/vstudio/vc10/testzlib.vcxproj.filters (renamed from xs/src/png/zlib/contrib/vstudio/vc10/testzlib.vcxproj.filters) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/vstudio/vc10/testzlibdll.vcxproj (renamed from xs/src/png/zlib/contrib/vstudio/vc10/testzlibdll.vcxproj) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/vstudio/vc10/testzlibdll.vcxproj.filters (renamed from xs/src/png/zlib/contrib/vstudio/vc10/testzlibdll.vcxproj.filters) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/vstudio/vc10/zlib.rc (renamed from xs/src/png/zlib/contrib/vstudio/vc10/zlib.rc) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/vstudio/vc10/zlibstat.vcxproj (renamed from xs/src/png/zlib/contrib/vstudio/vc10/zlibstat.vcxproj) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/vstudio/vc10/zlibstat.vcxproj.filters (renamed from xs/src/png/zlib/contrib/vstudio/vc10/zlibstat.vcxproj.filters) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/vstudio/vc10/zlibvc.def (renamed from xs/src/png/zlib/contrib/vstudio/vc10/zlibvc.def) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/vstudio/vc10/zlibvc.sln (renamed from xs/src/png/zlib/contrib/vstudio/vc10/zlibvc.sln) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/vstudio/vc10/zlibvc.vcxproj (renamed from xs/src/png/zlib/contrib/vstudio/vc10/zlibvc.vcxproj) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/vstudio/vc10/zlibvc.vcxproj.filters (renamed from xs/src/png/zlib/contrib/vstudio/vc10/zlibvc.vcxproj.filters) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/vstudio/vc11/miniunz.vcxproj (renamed from xs/src/png/zlib/contrib/vstudio/vc11/miniunz.vcxproj) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/vstudio/vc11/minizip.vcxproj (renamed from xs/src/png/zlib/contrib/vstudio/vc11/minizip.vcxproj) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/vstudio/vc11/testzlib.vcxproj (renamed from xs/src/png/zlib/contrib/vstudio/vc11/testzlib.vcxproj) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/vstudio/vc11/testzlibdll.vcxproj (renamed from xs/src/png/zlib/contrib/vstudio/vc11/testzlibdll.vcxproj) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/vstudio/vc11/zlib.rc (renamed from xs/src/png/zlib/contrib/vstudio/vc11/zlib.rc) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/vstudio/vc11/zlibstat.vcxproj (renamed from xs/src/png/zlib/contrib/vstudio/vc11/zlibstat.vcxproj) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/vstudio/vc11/zlibvc.def (renamed from xs/src/png/zlib/contrib/vstudio/vc11/zlibvc.def) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/vstudio/vc11/zlibvc.sln (renamed from xs/src/png/zlib/contrib/vstudio/vc11/zlibvc.sln) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/vstudio/vc11/zlibvc.vcxproj (renamed from xs/src/png/zlib/contrib/vstudio/vc11/zlibvc.vcxproj) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/vstudio/vc12/miniunz.vcxproj (renamed from xs/src/png/zlib/contrib/vstudio/vc12/miniunz.vcxproj) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/vstudio/vc12/minizip.vcxproj (renamed from xs/src/png/zlib/contrib/vstudio/vc12/minizip.vcxproj) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/vstudio/vc12/testzlib.vcxproj (renamed from xs/src/png/zlib/contrib/vstudio/vc12/testzlib.vcxproj) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/vstudio/vc12/testzlibdll.vcxproj (renamed from xs/src/png/zlib/contrib/vstudio/vc12/testzlibdll.vcxproj) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/vstudio/vc12/zlib.rc (renamed from xs/src/png/zlib/contrib/vstudio/vc12/zlib.rc) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/vstudio/vc12/zlibstat.vcxproj (renamed from xs/src/png/zlib/contrib/vstudio/vc12/zlibstat.vcxproj) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/vstudio/vc12/zlibvc.def (renamed from xs/src/png/zlib/contrib/vstudio/vc12/zlibvc.def) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/vstudio/vc12/zlibvc.sln (renamed from xs/src/png/zlib/contrib/vstudio/vc12/zlibvc.sln) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/vstudio/vc12/zlibvc.vcxproj (renamed from xs/src/png/zlib/contrib/vstudio/vc12/zlibvc.vcxproj) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/vstudio/vc14/miniunz.vcxproj (renamed from xs/src/png/zlib/contrib/vstudio/vc14/miniunz.vcxproj) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/vstudio/vc14/minizip.vcxproj (renamed from xs/src/png/zlib/contrib/vstudio/vc14/minizip.vcxproj) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/vstudio/vc14/testzlib.vcxproj (renamed from xs/src/png/zlib/contrib/vstudio/vc14/testzlib.vcxproj) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/vstudio/vc14/testzlibdll.vcxproj (renamed from xs/src/png/zlib/contrib/vstudio/vc14/testzlibdll.vcxproj) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/vstudio/vc14/zlib.rc (renamed from xs/src/png/zlib/contrib/vstudio/vc14/zlib.rc) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/vstudio/vc14/zlibstat.vcxproj (renamed from xs/src/png/zlib/contrib/vstudio/vc14/zlibstat.vcxproj) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/vstudio/vc14/zlibvc.def (renamed from xs/src/png/zlib/contrib/vstudio/vc14/zlibvc.def) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/vstudio/vc14/zlibvc.sln (renamed from xs/src/png/zlib/contrib/vstudio/vc14/zlibvc.sln) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/vstudio/vc14/zlibvc.vcxproj (renamed from xs/src/png/zlib/contrib/vstudio/vc14/zlibvc.vcxproj) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/vstudio/vc9/miniunz.vcproj (renamed from xs/src/png/zlib/contrib/vstudio/vc9/miniunz.vcproj) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/vstudio/vc9/minizip.vcproj (renamed from xs/src/png/zlib/contrib/vstudio/vc9/minizip.vcproj) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/vstudio/vc9/testzlib.vcproj (renamed from xs/src/png/zlib/contrib/vstudio/vc9/testzlib.vcproj) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/vstudio/vc9/testzlibdll.vcproj (renamed from xs/src/png/zlib/contrib/vstudio/vc9/testzlibdll.vcproj) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/vstudio/vc9/zlib.rc (renamed from xs/src/png/zlib/contrib/vstudio/vc9/zlib.rc) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/vstudio/vc9/zlibstat.vcproj (renamed from xs/src/png/zlib/contrib/vstudio/vc9/zlibstat.vcproj) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/vstudio/vc9/zlibvc.def (renamed from xs/src/png/zlib/contrib/vstudio/vc9/zlibvc.def) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/vstudio/vc9/zlibvc.sln (renamed from xs/src/png/zlib/contrib/vstudio/vc9/zlibvc.sln) | 0 | ||||
-rw-r--r-- | src/png/zlib/contrib/vstudio/vc9/zlibvc.vcproj (renamed from xs/src/png/zlib/contrib/vstudio/vc9/zlibvc.vcproj) | 0 | ||||
-rw-r--r-- | src/png/zlib/crc32.c (renamed from xs/src/png/zlib/crc32.c) | 0 | ||||
-rw-r--r-- | src/png/zlib/crc32.h (renamed from xs/src/png/zlib/crc32.h) | 0 | ||||
-rw-r--r-- | src/png/zlib/deflate.c (renamed from xs/src/png/zlib/deflate.c) | 0 | ||||
-rw-r--r-- | src/png/zlib/deflate.h (renamed from xs/src/png/zlib/deflate.h) | 0 | ||||
-rw-r--r-- | src/png/zlib/gzclose.c (renamed from xs/src/png/zlib/gzclose.c) | 0 | ||||
-rw-r--r-- | src/png/zlib/gzguts.h (renamed from xs/src/png/zlib/gzguts.h) | 0 | ||||
-rw-r--r-- | src/png/zlib/gzlib.c (renamed from xs/src/png/zlib/gzlib.c) | 0 | ||||
-rw-r--r-- | src/png/zlib/gzread.c (renamed from xs/src/png/zlib/gzread.c) | 0 | ||||
-rw-r--r-- | src/png/zlib/gzwrite.c (renamed from xs/src/png/zlib/gzwrite.c) | 0 | ||||
-rw-r--r-- | src/png/zlib/infback.c (renamed from xs/src/png/zlib/infback.c) | 0 | ||||
-rw-r--r-- | src/png/zlib/inffast.c (renamed from xs/src/png/zlib/inffast.c) | 0 | ||||
-rw-r--r-- | src/png/zlib/inffast.h (renamed from xs/src/png/zlib/inffast.h) | 0 | ||||
-rw-r--r-- | src/png/zlib/inffixed.h (renamed from xs/src/png/zlib/inffixed.h) | 0 | ||||
-rw-r--r-- | src/png/zlib/inflate.c (renamed from xs/src/png/zlib/inflate.c) | 0 | ||||
-rw-r--r-- | src/png/zlib/inflate.h (renamed from xs/src/png/zlib/inflate.h) | 0 | ||||
-rw-r--r-- | src/png/zlib/inftrees.c (renamed from xs/src/png/zlib/inftrees.c) | 0 | ||||
-rw-r--r-- | src/png/zlib/inftrees.h (renamed from xs/src/png/zlib/inftrees.h) | 0 | ||||
-rw-r--r-- | src/png/zlib/make_vms.com (renamed from xs/src/png/zlib/make_vms.com) | 0 | ||||
-rw-r--r-- | src/png/zlib/msdos/Makefile.bor (renamed from xs/src/png/zlib/msdos/Makefile.bor) | 0 | ||||
-rw-r--r-- | src/png/zlib/msdos/Makefile.dj2 (renamed from xs/src/png/zlib/msdos/Makefile.dj2) | 0 | ||||
-rw-r--r-- | src/png/zlib/msdos/Makefile.emx (renamed from xs/src/png/zlib/msdos/Makefile.emx) | 0 | ||||
-rw-r--r-- | src/png/zlib/msdos/Makefile.msc (renamed from xs/src/png/zlib/msdos/Makefile.msc) | 0 | ||||
-rw-r--r-- | src/png/zlib/msdos/Makefile.tc (renamed from xs/src/png/zlib/msdos/Makefile.tc) | 0 | ||||
-rw-r--r-- | src/png/zlib/nintendods/Makefile (renamed from xs/src/png/zlib/nintendods/Makefile) | 0 | ||||
-rw-r--r-- | src/png/zlib/nintendods/README (renamed from xs/src/png/zlib/nintendods/README) | 0 | ||||
-rw-r--r-- | src/png/zlib/old/Makefile.emx (renamed from xs/src/png/zlib/old/Makefile.emx) | 0 | ||||
-rw-r--r-- | src/png/zlib/old/Makefile.riscos (renamed from xs/src/png/zlib/old/Makefile.riscos) | 0 | ||||
-rw-r--r-- | src/png/zlib/old/README (renamed from xs/src/png/zlib/old/README) | 0 | ||||
-rw-r--r-- | src/png/zlib/old/descrip.mms (renamed from xs/src/png/zlib/old/descrip.mms) | 0 | ||||
-rw-r--r-- | src/png/zlib/old/os2/Makefile.os2 (renamed from xs/src/png/zlib/old/os2/Makefile.os2) | 0 | ||||
-rw-r--r-- | src/png/zlib/old/os2/zlib.def (renamed from xs/src/png/zlib/old/os2/zlib.def) | 0 | ||||
-rw-r--r-- | src/png/zlib/old/visual-basic.txt (renamed from xs/src/png/zlib/old/visual-basic.txt) | 0 | ||||
-rw-r--r-- | src/png/zlib/os400/README400 (renamed from xs/src/png/zlib/os400/README400) | 0 | ||||
-rw-r--r-- | src/png/zlib/os400/bndsrc (renamed from xs/src/png/zlib/os400/bndsrc) | 0 | ||||
-rw-r--r-- | src/png/zlib/os400/make.sh (renamed from xs/src/png/zlib/os400/make.sh) | 0 | ||||
-rw-r--r-- | src/png/zlib/os400/zlib.inc (renamed from xs/src/png/zlib/os400/zlib.inc) | 0 | ||||
-rw-r--r-- | src/png/zlib/qnx/package.qpg (renamed from xs/src/png/zlib/qnx/package.qpg) | 0 | ||||
-rw-r--r-- | src/png/zlib/treebuild.xml (renamed from xs/src/png/zlib/treebuild.xml) | 0 | ||||
-rw-r--r-- | src/png/zlib/trees.c (renamed from xs/src/png/zlib/trees.c) | 0 | ||||
-rw-r--r-- | src/png/zlib/trees.h (renamed from xs/src/png/zlib/trees.h) | 0 | ||||
-rw-r--r-- | src/png/zlib/uncompr.c (renamed from xs/src/png/zlib/uncompr.c) | 0 | ||||
-rw-r--r-- | src/png/zlib/watcom/watcom_f.mak (renamed from xs/src/png/zlib/watcom/watcom_f.mak) | 0 | ||||
-rw-r--r-- | src/png/zlib/watcom/watcom_l.mak (renamed from xs/src/png/zlib/watcom/watcom_l.mak) | 0 | ||||
-rw-r--r-- | src/png/zlib/win32/DLL_FAQ.txt (renamed from xs/src/png/zlib/win32/DLL_FAQ.txt) | 0 | ||||
-rw-r--r-- | src/png/zlib/win32/Makefile.bor (renamed from xs/src/png/zlib/win32/Makefile.bor) | 0 | ||||
-rw-r--r-- | src/png/zlib/win32/Makefile.gcc (renamed from xs/src/png/zlib/win32/Makefile.gcc) | 0 | ||||
-rw-r--r-- | src/png/zlib/win32/Makefile.msc (renamed from xs/src/png/zlib/win32/Makefile.msc) | 0 | ||||
-rw-r--r-- | src/png/zlib/win32/README-WIN32.txt (renamed from xs/src/png/zlib/win32/README-WIN32.txt) | 0 | ||||
-rw-r--r-- | src/png/zlib/win32/VisualC.txt (renamed from xs/src/png/zlib/win32/VisualC.txt) | 0 | ||||
-rw-r--r-- | src/png/zlib/win32/zlib.def (renamed from xs/src/png/zlib/win32/zlib.def) | 0 | ||||
-rw-r--r-- | src/png/zlib/win32/zlib1.rc (renamed from xs/src/png/zlib/win32/zlib1.rc) | 0 | ||||
-rw-r--r-- | src/png/zlib/zconf.h.cmakein (renamed from xs/src/png/zlib/zconf.h.cmakein) | 0 | ||||
-rw-r--r-- | src/png/zlib/zconf.h.in (renamed from xs/src/png/zlib/zconf.h.in) | 0 | ||||
-rw-r--r-- | src/png/zlib/zconf.h.included (renamed from xs/src/png/zlib/zconf.h.included) | 0 | ||||
-rw-r--r-- | src/png/zlib/zlib.3 (renamed from xs/src/png/zlib/zlib.3) | 0 | ||||
-rw-r--r-- | src/png/zlib/zlib.3.pdf (renamed from xs/src/png/zlib/zlib.3.pdf) | bin | 19318 -> 19318 bytes | |||
-rw-r--r-- | src/png/zlib/zlib.h (renamed from xs/src/png/zlib/zlib.h) | 0 | ||||
-rw-r--r-- | src/png/zlib/zlib.map (renamed from xs/src/png/zlib/zlib.map) | 0 | ||||
-rw-r--r-- | src/png/zlib/zlib.pc.cmakein (renamed from xs/src/png/zlib/zlib.pc.cmakein) | 0 | ||||
-rw-r--r-- | src/png/zlib/zlib.pc.in (renamed from xs/src/png/zlib/zlib.pc.in) | 0 | ||||
-rw-r--r-- | src/png/zlib/zlib2ansi (renamed from xs/src/png/zlib/zlib2ansi) | 0 | ||||
-rw-r--r-- | src/png/zlib/zutil.c (renamed from xs/src/png/zlib/zutil.c) | 0 | ||||
-rw-r--r-- | src/png/zlib/zutil.h (renamed from xs/src/png/zlib/zutil.h) | 0 | ||||
-rw-r--r-- | src/poly2tri/CMakeLists.txt | 17 | ||||
-rw-r--r-- | src/poly2tri/common/shapes.cc (renamed from xs/src/poly2tri/common/shapes.cc) | 0 | ||||
-rw-r--r-- | src/poly2tri/common/shapes.h (renamed from xs/src/poly2tri/common/shapes.h) | 0 | ||||
-rw-r--r-- | src/poly2tri/common/utils.h (renamed from xs/src/poly2tri/common/utils.h) | 0 | ||||
-rw-r--r-- | src/poly2tri/poly2tri.h (renamed from xs/src/poly2tri/poly2tri.h) | 0 | ||||
-rw-r--r-- | src/poly2tri/sweep/advancing_front.cc (renamed from xs/src/poly2tri/sweep/advancing_front.cc) | 0 | ||||
-rw-r--r-- | src/poly2tri/sweep/advancing_front.h (renamed from xs/src/poly2tri/sweep/advancing_front.h) | 0 | ||||
-rw-r--r-- | src/poly2tri/sweep/cdt.cc (renamed from xs/src/poly2tri/sweep/cdt.cc) | 0 | ||||
-rw-r--r-- | src/poly2tri/sweep/cdt.h (renamed from xs/src/poly2tri/sweep/cdt.h) | 0 | ||||
-rw-r--r-- | src/poly2tri/sweep/sweep.cc (renamed from xs/src/poly2tri/sweep/sweep.cc) | 0 | ||||
-rw-r--r-- | src/poly2tri/sweep/sweep.h (renamed from xs/src/poly2tri/sweep/sweep.h) | 0 | ||||
-rw-r--r-- | src/poly2tri/sweep/sweep_context.cc (renamed from xs/src/poly2tri/sweep/sweep_context.cc) | 0 | ||||
-rw-r--r-- | src/poly2tri/sweep/sweep_context.h (renamed from xs/src/poly2tri/sweep/sweep_context.h) | 0 | ||||
-rw-r--r-- | src/polypartition/CMakeLists.txt | 7 | ||||
-rw-r--r-- | src/polypartition/polypartition.cpp (renamed from xs/src/polypartition.cpp) | 3126 | ||||
-rw-r--r-- | src/polypartition/polypartition.h (renamed from xs/src/polypartition.h) | 686 | ||||
-rw-r--r-- | src/qhull/Announce.txt (renamed from xs/src/qhull/Announce.txt) | 0 | ||||
-rw-r--r-- | src/qhull/CMakeLists.txt (renamed from xs/src/qhull/CMakeLists.txt) | 0 | ||||
-rw-r--r-- | src/qhull/COPYING.txt (renamed from xs/src/qhull/COPYING.txt) | 0 | ||||
-rw-r--r-- | src/qhull/README.txt (renamed from xs/src/qhull/README.txt) | 0 | ||||
-rw-r--r-- | src/qhull/REGISTER.txt (renamed from xs/src/qhull/REGISTER.txt) | 0 | ||||
-rw-r--r-- | src/qhull/html/index.htm (renamed from xs/src/qhull/html/index.htm) | 0 | ||||
-rw-r--r-- | src/qhull/html/normal_voronoi_knauss_oesterle.jpg (renamed from xs/src/qhull/html/normal_voronoi_knauss_oesterle.jpg) | bin | 23924 -> 23924 bytes | |||
-rw-r--r-- | src/qhull/html/qconvex.htm (renamed from xs/src/qhull/html/qconvex.htm) | 0 | ||||
-rw-r--r-- | src/qhull/html/qdelau_f.htm (renamed from xs/src/qhull/html/qdelau_f.htm) | 0 | ||||
-rw-r--r-- | src/qhull/html/qdelaun.htm (renamed from xs/src/qhull/html/qdelaun.htm) | 0 | ||||
-rw-r--r-- | src/qhull/html/qh--4d.gif (renamed from xs/src/qhull/html/qh--4d.gif) | bin | 4372 -> 4372 bytes | |||
-rw-r--r-- | src/qhull/html/qh--cone.gif (renamed from xs/src/qhull/html/qh--cone.gif) | bin | 2946 -> 2946 bytes | |||
-rw-r--r-- | src/qhull/html/qh--dt.gif (renamed from xs/src/qhull/html/qh--dt.gif) | bin | 3772 -> 3772 bytes | |||
-rw-r--r-- | src/qhull/html/qh--geom.gif (renamed from xs/src/qhull/html/qh--geom.gif) | bin | 318 -> 318 bytes | |||
-rw-r--r-- | src/qhull/html/qh--half.gif (renamed from xs/src/qhull/html/qh--half.gif) | bin | 2537 -> 2537 bytes | |||
-rw-r--r-- | src/qhull/html/qh--rand.gif (renamed from xs/src/qhull/html/qh--rand.gif) | bin | 3875 -> 3875 bytes | |||
-rw-r--r-- | src/qhull/html/qh-code.htm (renamed from xs/src/qhull/html/qh-code.htm) | 0 | ||||
-rw-r--r-- | src/qhull/html/qh-eg.htm (renamed from xs/src/qhull/html/qh-eg.htm) | 0 | ||||
-rw-r--r-- | src/qhull/html/qh-faq.htm (renamed from xs/src/qhull/html/qh-faq.htm) | 0 | ||||
-rw-r--r-- | src/qhull/html/qh-get.htm (renamed from xs/src/qhull/html/qh-get.htm) | 0 | ||||
-rw-r--r-- | src/qhull/html/qh-impre.htm (renamed from xs/src/qhull/html/qh-impre.htm) | 0 | ||||
-rw-r--r-- | src/qhull/html/qh-optc.htm (renamed from xs/src/qhull/html/qh-optc.htm) | 0 | ||||
-rw-r--r-- | src/qhull/html/qh-optf.htm (renamed from xs/src/qhull/html/qh-optf.htm) | 0 | ||||
-rw-r--r-- | src/qhull/html/qh-optg.htm (renamed from xs/src/qhull/html/qh-optg.htm) | 0 | ||||
-rw-r--r-- | src/qhull/html/qh-opto.htm (renamed from xs/src/qhull/html/qh-opto.htm) | 0 | ||||
-rw-r--r-- | src/qhull/html/qh-optp.htm (renamed from xs/src/qhull/html/qh-optp.htm) | 0 | ||||
-rw-r--r-- | src/qhull/html/qh-optq.htm (renamed from xs/src/qhull/html/qh-optq.htm) | 0 | ||||
-rw-r--r-- | src/qhull/html/qh-optt.htm (renamed from xs/src/qhull/html/qh-optt.htm) | 0 | ||||
-rw-r--r-- | src/qhull/html/qh-quick.htm (renamed from xs/src/qhull/html/qh-quick.htm) | 0 | ||||
-rw-r--r-- | src/qhull/html/qhalf.htm (renamed from xs/src/qhull/html/qhalf.htm) | 0 | ||||
-rw-r--r-- | src/qhull/html/qhull-cpp.xml (renamed from xs/src/qhull/html/qhull-cpp.xml) | 0 | ||||
-rw-r--r-- | src/qhull/html/qhull.htm (renamed from xs/src/qhull/html/qhull.htm) | 0 | ||||
-rw-r--r-- | src/qhull/html/qhull.man (renamed from xs/src/qhull/html/qhull.man) | 0 | ||||
-rw-r--r-- | src/qhull/html/qhull.txt (renamed from xs/src/qhull/html/qhull.txt) | 0 | ||||
-rw-r--r-- | src/qhull/html/qvoron_f.htm (renamed from xs/src/qhull/html/qvoron_f.htm) | 0 | ||||
-rw-r--r-- | src/qhull/html/qvoronoi.htm (renamed from xs/src/qhull/html/qvoronoi.htm) | 0 | ||||
-rw-r--r-- | src/qhull/html/rbox.htm (renamed from xs/src/qhull/html/rbox.htm) | 0 | ||||
-rw-r--r-- | src/qhull/html/rbox.man (renamed from xs/src/qhull/html/rbox.man) | 0 | ||||
-rw-r--r-- | src/qhull/html/rbox.txt (renamed from xs/src/qhull/html/rbox.txt) | 0 | ||||
-rw-r--r-- | src/qhull/index.htm (renamed from xs/src/qhull/index.htm) | 0 | ||||
-rw-r--r-- | src/qhull/origCMakeLists.txt (renamed from xs/src/qhull/origCMakeLists.txt) | 0 | ||||
-rw-r--r-- | src/qhull/src/Changes.txt (renamed from xs/src/qhull/src/Changes.txt) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhull/DEPRECATED.txt (renamed from xs/src/qhull/src/libqhull/DEPRECATED.txt) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhull/Makefile (renamed from xs/src/qhull/src/libqhull/Makefile) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhull/Mborland (renamed from xs/src/qhull/src/libqhull/Mborland) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhull/geom.c (renamed from xs/src/qhull/src/libqhull/geom.c) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhull/geom.h (renamed from xs/src/qhull/src/libqhull/geom.h) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhull/geom2.c (renamed from xs/src/qhull/src/libqhull/geom2.c) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhull/global.c (renamed from xs/src/qhull/src/libqhull/global.c) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhull/index.htm (renamed from xs/src/qhull/src/libqhull/index.htm) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhull/io.c (renamed from xs/src/qhull/src/libqhull/io.c) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhull/io.h (renamed from xs/src/qhull/src/libqhull/io.h) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhull/libqhull.c (renamed from xs/src/qhull/src/libqhull/libqhull.c) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhull/libqhull.h (renamed from xs/src/qhull/src/libqhull/libqhull.h) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhull/libqhull.pro (renamed from xs/src/qhull/src/libqhull/libqhull.pro) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhull/mem.c (renamed from xs/src/qhull/src/libqhull/mem.c) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhull/mem.h (renamed from xs/src/qhull/src/libqhull/mem.h) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhull/merge.c (renamed from xs/src/qhull/src/libqhull/merge.c) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhull/merge.h (renamed from xs/src/qhull/src/libqhull/merge.h) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhull/poly.c (renamed from xs/src/qhull/src/libqhull/poly.c) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhull/poly.h (renamed from xs/src/qhull/src/libqhull/poly.h) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhull/poly2.c (renamed from xs/src/qhull/src/libqhull/poly2.c) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhull/qh-geom.htm (renamed from xs/src/qhull/src/libqhull/qh-geom.htm) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhull/qh-globa.htm (renamed from xs/src/qhull/src/libqhull/qh-globa.htm) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhull/qh-io.htm (renamed from xs/src/qhull/src/libqhull/qh-io.htm) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhull/qh-mem.htm (renamed from xs/src/qhull/src/libqhull/qh-mem.htm) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhull/qh-merge.htm (renamed from xs/src/qhull/src/libqhull/qh-merge.htm) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhull/qh-poly.htm (renamed from xs/src/qhull/src/libqhull/qh-poly.htm) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhull/qh-qhull.htm (renamed from xs/src/qhull/src/libqhull/qh-qhull.htm) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhull/qh-set.htm (renamed from xs/src/qhull/src/libqhull/qh-set.htm) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhull/qh-stat.htm (renamed from xs/src/qhull/src/libqhull/qh-stat.htm) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhull/qh-user.htm (renamed from xs/src/qhull/src/libqhull/qh-user.htm) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhull/qhull-exports.def (renamed from xs/src/qhull/src/libqhull/qhull-exports.def) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhull/qhull_a.h (renamed from xs/src/qhull/src/libqhull/qhull_a.h) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhull/qhull_p-exports.def (renamed from xs/src/qhull/src/libqhull/qhull_p-exports.def) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhull/qset.c (renamed from xs/src/qhull/src/libqhull/qset.c) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhull/qset.h (renamed from xs/src/qhull/src/libqhull/qset.h) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhull/random.c (renamed from xs/src/qhull/src/libqhull/random.c) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhull/random.h (renamed from xs/src/qhull/src/libqhull/random.h) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhull/rboxlib.c (renamed from xs/src/qhull/src/libqhull/rboxlib.c) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhull/stat.c (renamed from xs/src/qhull/src/libqhull/stat.c) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhull/stat.h (renamed from xs/src/qhull/src/libqhull/stat.h) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhull/user.c (renamed from xs/src/qhull/src/libqhull/user.c) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhull/user.h (renamed from xs/src/qhull/src/libqhull/user.h) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhull/usermem.c (renamed from xs/src/qhull/src/libqhull/usermem.c) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhull/userprintf.c (renamed from xs/src/qhull/src/libqhull/userprintf.c) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhull/userprintf_rbox.c (renamed from xs/src/qhull/src/libqhull/userprintf_rbox.c) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhull_r/Makefile (renamed from xs/src/qhull/src/libqhull_r/Makefile) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhull_r/geom2_r.c (renamed from xs/src/qhull/src/libqhull_r/geom2_r.c) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhull_r/geom_r.c (renamed from xs/src/qhull/src/libqhull_r/geom_r.c) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhull_r/geom_r.h (renamed from xs/src/qhull/src/libqhull_r/geom_r.h) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhull_r/global_r.c (renamed from xs/src/qhull/src/libqhull_r/global_r.c) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhull_r/index.htm (renamed from xs/src/qhull/src/libqhull_r/index.htm) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhull_r/io_r.c (renamed from xs/src/qhull/src/libqhull_r/io_r.c) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhull_r/io_r.h (renamed from xs/src/qhull/src/libqhull_r/io_r.h) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhull_r/libqhull_r.c (renamed from xs/src/qhull/src/libqhull_r/libqhull_r.c) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhull_r/libqhull_r.h (renamed from xs/src/qhull/src/libqhull_r/libqhull_r.h) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhull_r/libqhull_r.pro (renamed from xs/src/qhull/src/libqhull_r/libqhull_r.pro) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhull_r/mem_r.c (renamed from xs/src/qhull/src/libqhull_r/mem_r.c) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhull_r/mem_r.h (renamed from xs/src/qhull/src/libqhull_r/mem_r.h) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhull_r/merge_r.c (renamed from xs/src/qhull/src/libqhull_r/merge_r.c) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhull_r/merge_r.h (renamed from xs/src/qhull/src/libqhull_r/merge_r.h) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhull_r/poly2_r.c (renamed from xs/src/qhull/src/libqhull_r/poly2_r.c) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhull_r/poly_r.c (renamed from xs/src/qhull/src/libqhull_r/poly_r.c) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhull_r/poly_r.h (renamed from xs/src/qhull/src/libqhull_r/poly_r.h) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhull_r/qh-geom_r.htm (renamed from xs/src/qhull/src/libqhull_r/qh-geom_r.htm) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhull_r/qh-globa_r.htm (renamed from xs/src/qhull/src/libqhull_r/qh-globa_r.htm) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhull_r/qh-io_r.htm (renamed from xs/src/qhull/src/libqhull_r/qh-io_r.htm) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhull_r/qh-mem_r.htm (renamed from xs/src/qhull/src/libqhull_r/qh-mem_r.htm) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhull_r/qh-merge_r.htm (renamed from xs/src/qhull/src/libqhull_r/qh-merge_r.htm) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhull_r/qh-poly_r.htm (renamed from xs/src/qhull/src/libqhull_r/qh-poly_r.htm) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhull_r/qh-qhull_r.htm (renamed from xs/src/qhull/src/libqhull_r/qh-qhull_r.htm) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhull_r/qh-set_r.htm (renamed from xs/src/qhull/src/libqhull_r/qh-set_r.htm) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhull_r/qh-stat_r.htm (renamed from xs/src/qhull/src/libqhull_r/qh-stat_r.htm) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhull_r/qh-user_r.htm (renamed from xs/src/qhull/src/libqhull_r/qh-user_r.htm) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhull_r/qhull_r-exports.def (renamed from xs/src/qhull/src/libqhull_r/qhull_r-exports.def) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhull_r/qhull_ra.h (renamed from xs/src/qhull/src/libqhull_r/qhull_ra.h) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhull_r/qset_r.c (renamed from xs/src/qhull/src/libqhull_r/qset_r.c) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhull_r/qset_r.h (renamed from xs/src/qhull/src/libqhull_r/qset_r.h) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhull_r/random_r.c (renamed from xs/src/qhull/src/libqhull_r/random_r.c) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhull_r/random_r.h (renamed from xs/src/qhull/src/libqhull_r/random_r.h) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhull_r/rboxlib_r.c (renamed from xs/src/qhull/src/libqhull_r/rboxlib_r.c) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhull_r/stat_r.c (renamed from xs/src/qhull/src/libqhull_r/stat_r.c) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhull_r/stat_r.h (renamed from xs/src/qhull/src/libqhull_r/stat_r.h) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhull_r/user_r.c (renamed from xs/src/qhull/src/libqhull_r/user_r.c) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhull_r/user_r.h (renamed from xs/src/qhull/src/libqhull_r/user_r.h) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhull_r/usermem_r.c (renamed from xs/src/qhull/src/libqhull_r/usermem_r.c) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhull_r/userprintf_r.c (renamed from xs/src/qhull/src/libqhull_r/userprintf_r.c) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhull_r/userprintf_rbox_r.c (renamed from xs/src/qhull/src/libqhull_r/userprintf_rbox_r.c) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhullcpp/Coordinates.cpp (renamed from xs/src/qhull/src/libqhullcpp/Coordinates.cpp) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhullcpp/Coordinates.h (renamed from xs/src/qhull/src/libqhullcpp/Coordinates.h) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhullcpp/PointCoordinates.cpp (renamed from xs/src/qhull/src/libqhullcpp/PointCoordinates.cpp) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhullcpp/PointCoordinates.h (renamed from xs/src/qhull/src/libqhullcpp/PointCoordinates.h) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhullcpp/Qhull.cpp (renamed from xs/src/qhull/src/libqhullcpp/Qhull.cpp) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhullcpp/Qhull.h (renamed from xs/src/qhull/src/libqhullcpp/Qhull.h) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhullcpp/QhullError.h (renamed from xs/src/qhull/src/libqhullcpp/QhullError.h) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhullcpp/QhullFacet.cpp (renamed from xs/src/qhull/src/libqhullcpp/QhullFacet.cpp) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhullcpp/QhullFacet.h (renamed from xs/src/qhull/src/libqhullcpp/QhullFacet.h) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhullcpp/QhullFacetList.cpp (renamed from xs/src/qhull/src/libqhullcpp/QhullFacetList.cpp) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhullcpp/QhullFacetList.h (renamed from xs/src/qhull/src/libqhullcpp/QhullFacetList.h) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhullcpp/QhullFacetSet.cpp (renamed from xs/src/qhull/src/libqhullcpp/QhullFacetSet.cpp) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhullcpp/QhullFacetSet.h (renamed from xs/src/qhull/src/libqhullcpp/QhullFacetSet.h) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhullcpp/QhullHyperplane.cpp (renamed from xs/src/qhull/src/libqhullcpp/QhullHyperplane.cpp) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhullcpp/QhullHyperplane.h (renamed from xs/src/qhull/src/libqhullcpp/QhullHyperplane.h) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhullcpp/QhullIterator.h (renamed from xs/src/qhull/src/libqhullcpp/QhullIterator.h) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhullcpp/QhullLinkedList.h (renamed from xs/src/qhull/src/libqhullcpp/QhullLinkedList.h) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhullcpp/QhullPoint.cpp (renamed from xs/src/qhull/src/libqhullcpp/QhullPoint.cpp) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhullcpp/QhullPoint.h (renamed from xs/src/qhull/src/libqhullcpp/QhullPoint.h) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhullcpp/QhullPointSet.cpp (renamed from xs/src/qhull/src/libqhullcpp/QhullPointSet.cpp) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhullcpp/QhullPointSet.h (renamed from xs/src/qhull/src/libqhullcpp/QhullPointSet.h) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhullcpp/QhullPoints.cpp (renamed from xs/src/qhull/src/libqhullcpp/QhullPoints.cpp) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhullcpp/QhullPoints.h (renamed from xs/src/qhull/src/libqhullcpp/QhullPoints.h) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhullcpp/QhullQh.cpp (renamed from xs/src/qhull/src/libqhullcpp/QhullQh.cpp) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhullcpp/QhullQh.h (renamed from xs/src/qhull/src/libqhullcpp/QhullQh.h) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhullcpp/QhullRidge.cpp (renamed from xs/src/qhull/src/libqhullcpp/QhullRidge.cpp) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhullcpp/QhullRidge.h (renamed from xs/src/qhull/src/libqhullcpp/QhullRidge.h) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhullcpp/QhullSet.cpp (renamed from xs/src/qhull/src/libqhullcpp/QhullSet.cpp) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhullcpp/QhullSet.h (renamed from xs/src/qhull/src/libqhullcpp/QhullSet.h) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhullcpp/QhullSets.h (renamed from xs/src/qhull/src/libqhullcpp/QhullSets.h) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhullcpp/QhullStat.cpp (renamed from xs/src/qhull/src/libqhullcpp/QhullStat.cpp) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhullcpp/QhullStat.h (renamed from xs/src/qhull/src/libqhullcpp/QhullStat.h) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhullcpp/QhullVertex.cpp (renamed from xs/src/qhull/src/libqhullcpp/QhullVertex.cpp) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhullcpp/QhullVertex.h (renamed from xs/src/qhull/src/libqhullcpp/QhullVertex.h) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhullcpp/QhullVertexSet.cpp (renamed from xs/src/qhull/src/libqhullcpp/QhullVertexSet.cpp) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhullcpp/QhullVertexSet.h (renamed from xs/src/qhull/src/libqhullcpp/QhullVertexSet.h) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhullcpp/RboxPoints.cpp (renamed from xs/src/qhull/src/libqhullcpp/RboxPoints.cpp) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhullcpp/RboxPoints.h (renamed from xs/src/qhull/src/libqhullcpp/RboxPoints.h) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhullcpp/RoadError.cpp (renamed from xs/src/qhull/src/libqhullcpp/RoadError.cpp) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhullcpp/RoadError.h (renamed from xs/src/qhull/src/libqhullcpp/RoadError.h) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhullcpp/RoadLogEvent.cpp (renamed from xs/src/qhull/src/libqhullcpp/RoadLogEvent.cpp) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhullcpp/RoadLogEvent.h (renamed from xs/src/qhull/src/libqhullcpp/RoadLogEvent.h) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhullcpp/functionObjects.h (renamed from xs/src/qhull/src/libqhullcpp/functionObjects.h) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhullcpp/libqhullcpp.pro (renamed from xs/src/qhull/src/libqhullcpp/libqhullcpp.pro) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhullcpp/qt-qhull.cpp (renamed from xs/src/qhull/src/libqhullcpp/qt-qhull.cpp) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhullcpp/usermem_r-cpp.cpp (renamed from xs/src/qhull/src/libqhullcpp/usermem_r-cpp.cpp) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhullstatic/libqhullstatic.pro (renamed from xs/src/qhull/src/libqhullstatic/libqhullstatic.pro) | 0 | ||||
-rw-r--r-- | src/qhull/src/libqhullstatic_r/libqhullstatic_r.pro (renamed from xs/src/qhull/src/libqhullstatic_r/libqhullstatic_r.pro) | 0 | ||||
-rw-r--r-- | src/qhull/src/qconvex/qconvex.c (renamed from xs/src/qhull/src/qconvex/qconvex.c) | 0 | ||||
-rw-r--r-- | src/qhull/src/qconvex/qconvex.pro (renamed from xs/src/qhull/src/qconvex/qconvex.pro) | 0 | ||||
-rw-r--r-- | src/qhull/src/qconvex/qconvex_r.c (renamed from xs/src/qhull/src/qconvex/qconvex_r.c) | 0 | ||||
-rw-r--r-- | src/qhull/src/qdelaunay/qdelaun.c (renamed from xs/src/qhull/src/qdelaunay/qdelaun.c) | 0 | ||||
-rw-r--r-- | src/qhull/src/qdelaunay/qdelaun_r.c (renamed from xs/src/qhull/src/qdelaunay/qdelaun_r.c) | 0 | ||||
-rw-r--r-- | src/qhull/src/qdelaunay/qdelaunay.pro (renamed from xs/src/qhull/src/qdelaunay/qdelaunay.pro) | 0 | ||||
-rw-r--r-- | src/qhull/src/qhalf/qhalf.c (renamed from xs/src/qhull/src/qhalf/qhalf.c) | 0 | ||||
-rw-r--r-- | src/qhull/src/qhalf/qhalf.pro (renamed from xs/src/qhull/src/qhalf/qhalf.pro) | 0 | ||||
-rw-r--r-- | src/qhull/src/qhalf/qhalf_r.c (renamed from xs/src/qhull/src/qhalf/qhalf_r.c) | 0 | ||||
-rw-r--r-- | src/qhull/src/qhull-all.pro (renamed from xs/src/qhull/src/qhull-all.pro) | 0 | ||||
-rw-r--r-- | src/qhull/src/qhull-app-c.pri (renamed from xs/src/qhull/src/qhull-app-c.pri) | 0 | ||||
-rw-r--r-- | src/qhull/src/qhull-app-c_r.pri (renamed from xs/src/qhull/src/qhull-app-c_r.pri) | 0 | ||||
-rw-r--r-- | src/qhull/src/qhull-app-cpp.pri (renamed from xs/src/qhull/src/qhull-app-cpp.pri) | 0 | ||||
-rw-r--r-- | src/qhull/src/qhull-app-shared.pri (renamed from xs/src/qhull/src/qhull-app-shared.pri) | 0 | ||||
-rw-r--r-- | src/qhull/src/qhull-app-shared_r.pri (renamed from xs/src/qhull/src/qhull-app-shared_r.pri) | 0 | ||||
-rw-r--r-- | src/qhull/src/qhull-libqhull-src.pri (renamed from xs/src/qhull/src/qhull-libqhull-src.pri) | 0 | ||||
-rw-r--r-- | src/qhull/src/qhull-libqhull-src_r.pri (renamed from xs/src/qhull/src/qhull-libqhull-src_r.pri) | 0 | ||||
-rw-r--r-- | src/qhull/src/qhull-warn.pri (renamed from xs/src/qhull/src/qhull-warn.pri) | 0 | ||||
-rw-r--r-- | src/qhull/src/qhull/qhull.pro (renamed from xs/src/qhull/src/qhull/qhull.pro) | 0 | ||||
-rw-r--r-- | src/qhull/src/qhull/unix.c (renamed from xs/src/qhull/src/qhull/unix.c) | 0 | ||||
-rw-r--r-- | src/qhull/src/qhull/unix_r.c (renamed from xs/src/qhull/src/qhull/unix_r.c) | 0 | ||||
-rw-r--r-- | src/qhull/src/qhulltest/Coordinates_test.cpp (renamed from xs/src/qhull/src/qhulltest/Coordinates_test.cpp) | 0 | ||||
-rw-r--r-- | src/qhull/src/qhulltest/PointCoordinates_test.cpp (renamed from xs/src/qhull/src/qhulltest/PointCoordinates_test.cpp) | 0 | ||||
-rw-r--r-- | src/qhull/src/qhulltest/QhullFacetList_test.cpp (renamed from xs/src/qhull/src/qhulltest/QhullFacetList_test.cpp) | 0 | ||||
-rw-r--r-- | src/qhull/src/qhulltest/QhullFacetSet_test.cpp (renamed from xs/src/qhull/src/qhulltest/QhullFacetSet_test.cpp) | 0 | ||||
-rw-r--r-- | src/qhull/src/qhulltest/QhullFacet_test.cpp (renamed from xs/src/qhull/src/qhulltest/QhullFacet_test.cpp) | 0 | ||||
-rw-r--r-- | src/qhull/src/qhulltest/QhullHyperplane_test.cpp (renamed from xs/src/qhull/src/qhulltest/QhullHyperplane_test.cpp) | 0 | ||||
-rw-r--r-- | src/qhull/src/qhulltest/QhullLinkedList_test.cpp (renamed from xs/src/qhull/src/qhulltest/QhullLinkedList_test.cpp) | 0 | ||||
-rw-r--r-- | src/qhull/src/qhulltest/QhullPointSet_test.cpp (renamed from xs/src/qhull/src/qhulltest/QhullPointSet_test.cpp) | 0 | ||||
-rw-r--r-- | src/qhull/src/qhulltest/QhullPoint_test.cpp (renamed from xs/src/qhull/src/qhulltest/QhullPoint_test.cpp) | 0 | ||||
-rw-r--r-- | src/qhull/src/qhulltest/QhullPoints_test.cpp (renamed from xs/src/qhull/src/qhulltest/QhullPoints_test.cpp) | 0 | ||||
-rw-r--r-- | src/qhull/src/qhulltest/QhullRidge_test.cpp (renamed from xs/src/qhull/src/qhulltest/QhullRidge_test.cpp) | 0 | ||||
-rw-r--r-- | src/qhull/src/qhulltest/QhullSet_test.cpp (renamed from xs/src/qhull/src/qhulltest/QhullSet_test.cpp) | 0 | ||||
-rw-r--r-- | src/qhull/src/qhulltest/QhullVertexSet_test.cpp (renamed from xs/src/qhull/src/qhulltest/QhullVertexSet_test.cpp) | 0 | ||||
-rw-r--r-- | src/qhull/src/qhulltest/QhullVertex_test.cpp (renamed from xs/src/qhull/src/qhulltest/QhullVertex_test.cpp) | 0 | ||||
-rw-r--r-- | src/qhull/src/qhulltest/Qhull_test.cpp (renamed from xs/src/qhull/src/qhulltest/Qhull_test.cpp) | 0 | ||||
-rw-r--r-- | src/qhull/src/qhulltest/RboxPoints_test.cpp (renamed from xs/src/qhull/src/qhulltest/RboxPoints_test.cpp) | 0 | ||||
-rw-r--r-- | src/qhull/src/qhulltest/RoadTest.cpp (renamed from xs/src/qhull/src/qhulltest/RoadTest.cpp) | 0 | ||||
-rw-r--r-- | src/qhull/src/qhulltest/RoadTest.h (renamed from xs/src/qhull/src/qhulltest/RoadTest.h) | 0 | ||||
-rw-r--r-- | src/qhull/src/qhulltest/qhulltest.cpp (renamed from xs/src/qhull/src/qhulltest/qhulltest.cpp) | 0 | ||||
-rw-r--r-- | src/qhull/src/qhulltest/qhulltest.pro (renamed from xs/src/qhull/src/qhulltest/qhulltest.pro) | 0 | ||||
-rw-r--r-- | src/qhull/src/qvoronoi/qvoronoi.c (renamed from xs/src/qhull/src/qvoronoi/qvoronoi.c) | 0 | ||||
-rw-r--r-- | src/qhull/src/qvoronoi/qvoronoi.pro (renamed from xs/src/qhull/src/qvoronoi/qvoronoi.pro) | 0 | ||||
-rw-r--r-- | src/qhull/src/qvoronoi/qvoronoi_r.c (renamed from xs/src/qhull/src/qvoronoi/qvoronoi_r.c) | 0 | ||||
-rw-r--r-- | src/qhull/src/rbox/rbox.c (renamed from xs/src/qhull/src/rbox/rbox.c) | 0 | ||||
-rw-r--r-- | src/qhull/src/rbox/rbox.pro (renamed from xs/src/qhull/src/rbox/rbox.pro) | 0 | ||||
-rw-r--r-- | src/qhull/src/rbox/rbox_r.c (renamed from xs/src/qhull/src/rbox/rbox_r.c) | 0 | ||||
-rw-r--r-- | src/qhull/src/testqset/testqset.c (renamed from xs/src/qhull/src/testqset/testqset.c) | 0 | ||||
-rw-r--r-- | src/qhull/src/testqset/testqset.pro (renamed from xs/src/qhull/src/testqset/testqset.pro) | 0 | ||||
-rw-r--r-- | src/qhull/src/testqset_r/testqset_r.c (renamed from xs/src/qhull/src/testqset_r/testqset_r.c) | 0 | ||||
-rw-r--r-- | src/qhull/src/testqset_r/testqset_r.pro (renamed from xs/src/qhull/src/testqset_r/testqset_r.pro) | 0 | ||||
-rw-r--r-- | src/qhull/src/user_eg/user_eg.c (renamed from xs/src/qhull/src/user_eg/user_eg.c) | 0 | ||||
-rw-r--r-- | src/qhull/src/user_eg/user_eg.pro (renamed from xs/src/qhull/src/user_eg/user_eg.pro) | 0 | ||||
-rw-r--r-- | src/qhull/src/user_eg/user_eg_r.c (renamed from xs/src/qhull/src/user_eg/user_eg_r.c) | 0 | ||||
-rw-r--r-- | src/qhull/src/user_eg2/user_eg2.c (renamed from xs/src/qhull/src/user_eg2/user_eg2.c) | 0 | ||||
-rw-r--r-- | src/qhull/src/user_eg2/user_eg2.pro (renamed from xs/src/qhull/src/user_eg2/user_eg2.pro) | 0 | ||||
-rw-r--r-- | src/qhull/src/user_eg2/user_eg2_r.c (renamed from xs/src/qhull/src/user_eg2/user_eg2_r.c) | 0 | ||||
-rw-r--r-- | src/qhull/src/user_eg3/user_eg3.pro (renamed from xs/src/qhull/src/user_eg3/user_eg3.pro) | 0 | ||||
-rw-r--r-- | src/qhull/src/user_eg3/user_eg3_r.cpp (renamed from xs/src/qhull/src/user_eg3/user_eg3_r.cpp) | 0 | ||||
-rw-r--r-- | src/semver/CMakeLists.txt | 7 | ||||
-rw-r--r-- | src/semver/semver.c (renamed from xs/src/semver/semver.c) | 0 | ||||
-rw-r--r-- | src/semver/semver.h (renamed from xs/src/semver/semver.h) | 0 | ||||
-rw-r--r-- | src/slic3r.cpp | 81 | ||||
-rw-r--r-- | src/slic3r/AppController.cpp (renamed from xs/src/slic3r/AppController.cpp) | 0 | ||||
-rw-r--r-- | src/slic3r/AppController.hpp (renamed from xs/src/slic3r/AppController.hpp) | 0 | ||||
-rw-r--r-- | src/slic3r/AppControllerWx.cpp (renamed from xs/src/slic3r/AppControllerWx.cpp) | 0 | ||||
-rw-r--r-- | src/slic3r/CMakeLists.txt | 106 | ||||
-rw-r--r-- | src/slic3r/Config/Snapshot.cpp (renamed from xs/src/slic3r/Config/Snapshot.cpp) | 0 | ||||
-rw-r--r-- | src/slic3r/Config/Snapshot.hpp (renamed from xs/src/slic3r/Config/Snapshot.hpp) | 0 | ||||
-rw-r--r-- | src/slic3r/Config/Version.cpp (renamed from xs/src/slic3r/Config/Version.cpp) | 0 | ||||
-rw-r--r-- | src/slic3r/Config/Version.hpp (renamed from xs/src/slic3r/Config/Version.hpp) | 0 | ||||
-rw-r--r-- | src/slic3r/GUI/2DBed.cpp (renamed from xs/src/slic3r/GUI/2DBed.cpp) | 0 | ||||
-rw-r--r-- | src/slic3r/GUI/2DBed.hpp (renamed from xs/src/slic3r/GUI/2DBed.hpp) | 0 | ||||
-rw-r--r-- | src/slic3r/GUI/3DScene.cpp (renamed from xs/src/slic3r/GUI/3DScene.cpp) | 0 | ||||
-rw-r--r-- | src/slic3r/GUI/3DScene.hpp (renamed from xs/src/slic3r/GUI/3DScene.hpp) | 0 | ||||
-rw-r--r-- | src/slic3r/GUI/AboutDialog.cpp (renamed from xs/src/slic3r/GUI/AboutDialog.cpp) | 0 | ||||
-rw-r--r-- | src/slic3r/GUI/AboutDialog.hpp (renamed from xs/src/slic3r/GUI/AboutDialog.hpp) | 0 | ||||
-rw-r--r-- | src/slic3r/GUI/AppConfig.cpp (renamed from xs/src/slic3r/GUI/AppConfig.cpp) | 0 | ||||
-rw-r--r-- | src/slic3r/GUI/AppConfig.hpp (renamed from xs/src/slic3r/GUI/AppConfig.hpp) | 0 | ||||
-rw-r--r-- | src/slic3r/GUI/BackgroundSlicingProcess.cpp (renamed from xs/src/slic3r/GUI/BackgroundSlicingProcess.cpp) | 0 | ||||
-rw-r--r-- | src/slic3r/GUI/BackgroundSlicingProcess.hpp (renamed from xs/src/slic3r/GUI/BackgroundSlicingProcess.hpp) | 0 | ||||
-rw-r--r-- | src/slic3r/GUI/BedShapeDialog.cpp (renamed from xs/src/slic3r/GUI/BedShapeDialog.cpp) | 0 | ||||
-rw-r--r-- | src/slic3r/GUI/BedShapeDialog.hpp (renamed from xs/src/slic3r/GUI/BedShapeDialog.hpp) | 0 | ||||
-rw-r--r-- | src/slic3r/GUI/BitmapCache.cpp (renamed from xs/src/slic3r/GUI/BitmapCache.cpp) | 0 | ||||
-rw-r--r-- | src/slic3r/GUI/BitmapCache.hpp (renamed from xs/src/slic3r/GUI/BitmapCache.hpp) | 0 | ||||
-rw-r--r-- | src/slic3r/GUI/BonjourDialog.cpp (renamed from xs/src/slic3r/GUI/BonjourDialog.cpp) | 0 | ||||
-rw-r--r-- | src/slic3r/GUI/BonjourDialog.hpp (renamed from xs/src/slic3r/GUI/BonjourDialog.hpp) | 0 | ||||
-rw-r--r-- | src/slic3r/GUI/ButtonsDescription.cpp (renamed from xs/src/slic3r/GUI/ButtonsDescription.cpp) | 0 | ||||
-rw-r--r-- | src/slic3r/GUI/ButtonsDescription.hpp (renamed from xs/src/slic3r/GUI/ButtonsDescription.hpp) | 0 | ||||
-rw-r--r-- | src/slic3r/GUI/ConfigExceptions.hpp (renamed from xs/src/slic3r/GUI/ConfigExceptions.hpp) | 0 | ||||
-rw-r--r-- | src/slic3r/GUI/ConfigSnapshotDialog.cpp (renamed from xs/src/slic3r/GUI/ConfigSnapshotDialog.cpp) | 0 | ||||
-rw-r--r-- | src/slic3r/GUI/ConfigSnapshotDialog.hpp (renamed from xs/src/slic3r/GUI/ConfigSnapshotDialog.hpp) | 0 | ||||
-rw-r--r-- | src/slic3r/GUI/ConfigWizard.cpp (renamed from xs/src/slic3r/GUI/ConfigWizard.cpp) | 0 | ||||
-rw-r--r-- | src/slic3r/GUI/ConfigWizard.hpp (renamed from xs/src/slic3r/GUI/ConfigWizard.hpp) | 0 | ||||
-rw-r--r-- | src/slic3r/GUI/ConfigWizard_private.hpp (renamed from xs/src/slic3r/GUI/ConfigWizard_private.hpp) | 0 | ||||
-rw-r--r-- | src/slic3r/GUI/Field.cpp (renamed from xs/src/slic3r/GUI/Field.cpp) | 0 | ||||
-rw-r--r-- | src/slic3r/GUI/Field.hpp (renamed from xs/src/slic3r/GUI/Field.hpp) | 0 | ||||
-rw-r--r-- | src/slic3r/GUI/FirmwareDialog.cpp (renamed from xs/src/slic3r/GUI/FirmwareDialog.cpp) | 0 | ||||
-rw-r--r-- | src/slic3r/GUI/FirmwareDialog.hpp (renamed from xs/src/slic3r/GUI/FirmwareDialog.hpp) | 0 | ||||
-rw-r--r-- | src/slic3r/GUI/GLCanvas3D.cpp (renamed from xs/src/slic3r/GUI/GLCanvas3D.cpp) | 0 | ||||
-rw-r--r-- | src/slic3r/GUI/GLCanvas3D.hpp (renamed from xs/src/slic3r/GUI/GLCanvas3D.hpp) | 0 | ||||
-rw-r--r-- | src/slic3r/GUI/GLCanvas3DManager.cpp (renamed from xs/src/slic3r/GUI/GLCanvas3DManager.cpp) | 0 | ||||
-rw-r--r-- | src/slic3r/GUI/GLCanvas3DManager.hpp (renamed from xs/src/slic3r/GUI/GLCanvas3DManager.hpp) | 0 | ||||
-rw-r--r-- | src/slic3r/GUI/GLGizmo.cpp (renamed from xs/src/slic3r/GUI/GLGizmo.cpp) | 0 | ||||
-rw-r--r-- | src/slic3r/GUI/GLGizmo.hpp (renamed from xs/src/slic3r/GUI/GLGizmo.hpp) | 0 | ||||
-rw-r--r-- | src/slic3r/GUI/GLShader.cpp (renamed from xs/src/slic3r/GUI/GLShader.cpp) | 0 | ||||
-rw-r--r-- | src/slic3r/GUI/GLShader.hpp (renamed from xs/src/slic3r/GUI/GLShader.hpp) | 0 | ||||
-rw-r--r-- | src/slic3r/GUI/GLTexture.cpp (renamed from xs/src/slic3r/GUI/GLTexture.cpp) | 0 | ||||
-rw-r--r-- | src/slic3r/GUI/GLTexture.hpp (renamed from xs/src/slic3r/GUI/GLTexture.hpp) | 0 | ||||
-rw-r--r-- | src/slic3r/GUI/GLToolbar.cpp (renamed from xs/src/slic3r/GUI/GLToolbar.cpp) | 0 | ||||
-rw-r--r-- | src/slic3r/GUI/GLToolbar.hpp (renamed from xs/src/slic3r/GUI/GLToolbar.hpp) | 0 | ||||
-rw-r--r-- | src/slic3r/GUI/GUI.cpp (renamed from xs/src/slic3r/GUI/GUI.cpp) | 15 | ||||
-rw-r--r-- | src/slic3r/GUI/GUI.hpp (renamed from xs/src/slic3r/GUI/GUI.hpp) | 5 | ||||
-rw-r--r-- | src/slic3r/GUI/GUI_ObjectParts.cpp (renamed from xs/src/slic3r/GUI/GUI_ObjectParts.cpp) | 0 | ||||
-rw-r--r-- | src/slic3r/GUI/GUI_ObjectParts.hpp (renamed from xs/src/slic3r/GUI/GUI_ObjectParts.hpp) | 0 | ||||
-rw-r--r-- | src/slic3r/GUI/LambdaObjectDialog.cpp (renamed from xs/src/slic3r/GUI/LambdaObjectDialog.cpp) | 0 | ||||
-rw-r--r-- | src/slic3r/GUI/LambdaObjectDialog.hpp (renamed from xs/src/slic3r/GUI/LambdaObjectDialog.hpp) | 0 | ||||
-rw-r--r-- | src/slic3r/GUI/MsgDialog.cpp (renamed from xs/src/slic3r/GUI/MsgDialog.cpp) | 0 | ||||
-rw-r--r-- | src/slic3r/GUI/MsgDialog.hpp (renamed from xs/src/slic3r/GUI/MsgDialog.hpp) | 0 | ||||
-rw-r--r-- | src/slic3r/GUI/OptionsGroup.cpp (renamed from xs/src/slic3r/GUI/OptionsGroup.cpp) | 0 | ||||
-rw-r--r-- | src/slic3r/GUI/OptionsGroup.hpp (renamed from xs/src/slic3r/GUI/OptionsGroup.hpp) | 0 | ||||
-rw-r--r-- | src/slic3r/GUI/Preferences.cpp (renamed from xs/src/slic3r/GUI/Preferences.cpp) | 0 | ||||
-rw-r--r-- | src/slic3r/GUI/Preferences.hpp (renamed from xs/src/slic3r/GUI/Preferences.hpp) | 0 | ||||
-rw-r--r-- | src/slic3r/GUI/Preset.cpp (renamed from xs/src/slic3r/GUI/Preset.cpp) | 0 | ||||
-rw-r--r-- | src/slic3r/GUI/Preset.hpp (renamed from xs/src/slic3r/GUI/Preset.hpp) | 0 | ||||
-rw-r--r-- | src/slic3r/GUI/PresetBundle.cpp (renamed from xs/src/slic3r/GUI/PresetBundle.cpp) | 0 | ||||
-rw-r--r-- | src/slic3r/GUI/PresetBundle.hpp (renamed from xs/src/slic3r/GUI/PresetBundle.hpp) | 0 | ||||
-rw-r--r-- | src/slic3r/GUI/PresetHints.cpp (renamed from xs/src/slic3r/GUI/PresetHints.cpp) | 0 | ||||
-rw-r--r-- | src/slic3r/GUI/PresetHints.hpp (renamed from xs/src/slic3r/GUI/PresetHints.hpp) | 0 | ||||
-rw-r--r-- | src/slic3r/GUI/ProgressIndicator.hpp (renamed from xs/src/slic3r/GUI/ProgressIndicator.hpp) | 0 | ||||
-rw-r--r-- | src/slic3r/GUI/ProgressStatusBar.cpp (renamed from xs/src/slic3r/GUI/ProgressStatusBar.cpp) | 0 | ||||
-rw-r--r-- | src/slic3r/GUI/ProgressStatusBar.hpp (renamed from xs/src/slic3r/GUI/ProgressStatusBar.hpp) | 2 | ||||
-rw-r--r-- | src/slic3r/GUI/RammingChart.cpp (renamed from xs/src/slic3r/GUI/RammingChart.cpp) | 0 | ||||
-rw-r--r-- | src/slic3r/GUI/RammingChart.hpp (renamed from xs/src/slic3r/GUI/RammingChart.hpp) | 0 | ||||
-rw-r--r-- | src/slic3r/GUI/Tab.cpp (renamed from xs/src/slic3r/GUI/Tab.cpp) | 0 | ||||
-rw-r--r-- | src/slic3r/GUI/Tab.hpp (renamed from xs/src/slic3r/GUI/Tab.hpp) | 0 | ||||
-rw-r--r-- | src/slic3r/GUI/TabIface.cpp (renamed from xs/src/slic3r/GUI/TabIface.cpp) | 0 | ||||
-rw-r--r-- | src/slic3r/GUI/TabIface.hpp (renamed from xs/src/slic3r/GUI/TabIface.hpp) | 0 | ||||
-rw-r--r-- | src/slic3r/GUI/UpdateDialogs.cpp (renamed from xs/src/slic3r/GUI/UpdateDialogs.cpp) | 0 | ||||
-rw-r--r-- | src/slic3r/GUI/UpdateDialogs.hpp (renamed from xs/src/slic3r/GUI/UpdateDialogs.hpp) | 0 | ||||
-rw-r--r-- | src/slic3r/GUI/Widget.hpp (renamed from xs/src/slic3r/GUI/Widget.hpp) | 0 | ||||
-rw-r--r-- | src/slic3r/GUI/WipeTowerDialog.cpp (renamed from xs/src/slic3r/GUI/WipeTowerDialog.cpp) | 0 | ||||
-rw-r--r-- | src/slic3r/GUI/WipeTowerDialog.hpp (renamed from xs/src/slic3r/GUI/WipeTowerDialog.hpp) | 0 | ||||
-rw-r--r-- | src/slic3r/GUI/callback.hpp | 30 | ||||
-rw-r--r-- | src/slic3r/GUI/wxExtensions.cpp (renamed from xs/src/slic3r/GUI/wxExtensions.cpp) | 0 | ||||
-rw-r--r-- | src/slic3r/GUI/wxExtensions.hpp (renamed from xs/src/slic3r/GUI/wxExtensions.hpp) | 0 | ||||
-rw-r--r-- | src/slic3r/GUI/wxinit.h (renamed from xs/src/slic3r/GUI/wxinit.h) | 0 | ||||
-rw-r--r-- | src/slic3r/Utils/ASCIIFolding.cpp (renamed from xs/src/slic3r/Utils/ASCIIFolding.cpp) | 0 | ||||
-rw-r--r-- | src/slic3r/Utils/ASCIIFolding.hpp (renamed from xs/src/slic3r/Utils/ASCIIFolding.hpp) | 0 | ||||
-rw-r--r-- | src/slic3r/Utils/Bonjour.cpp (renamed from xs/src/slic3r/Utils/Bonjour.cpp) | 0 | ||||
-rw-r--r-- | src/slic3r/Utils/Bonjour.hpp (renamed from xs/src/slic3r/Utils/Bonjour.hpp) | 0 | ||||
-rw-r--r-- | src/slic3r/Utils/Duet.cpp (renamed from xs/src/slic3r/Utils/Duet.cpp) | 0 | ||||
-rw-r--r-- | src/slic3r/Utils/Duet.hpp (renamed from xs/src/slic3r/Utils/Duet.hpp) | 0 | ||||
-rw-r--r-- | src/slic3r/Utils/FixModelByWin10.cpp (renamed from xs/src/slic3r/Utils/FixModelByWin10.cpp) | 0 | ||||
-rw-r--r-- | src/slic3r/Utils/FixModelByWin10.hpp (renamed from xs/src/slic3r/Utils/FixModelByWin10.hpp) | 0 | ||||
-rw-r--r-- | src/slic3r/Utils/HexFile.cpp (renamed from xs/src/slic3r/Utils/HexFile.cpp) | 0 | ||||
-rw-r--r-- | src/slic3r/Utils/HexFile.hpp (renamed from xs/src/slic3r/Utils/HexFile.hpp) | 0 | ||||
-rw-r--r-- | src/slic3r/Utils/Http.cpp (renamed from xs/src/slic3r/Utils/Http.cpp) | 0 | ||||
-rw-r--r-- | src/slic3r/Utils/Http.hpp (renamed from xs/src/slic3r/Utils/Http.hpp) | 0 | ||||
-rw-r--r-- | src/slic3r/Utils/OctoPrint.cpp (renamed from xs/src/slic3r/Utils/OctoPrint.cpp) | 0 | ||||
-rw-r--r-- | src/slic3r/Utils/OctoPrint.hpp (renamed from xs/src/slic3r/Utils/OctoPrint.hpp) | 0 | ||||
-rw-r--r-- | src/slic3r/Utils/PresetUpdater.cpp (renamed from xs/src/slic3r/Utils/PresetUpdater.cpp) | 0 | ||||
-rw-r--r-- | src/slic3r/Utils/PresetUpdater.hpp (renamed from xs/src/slic3r/Utils/PresetUpdater.hpp) | 0 | ||||
-rw-r--r-- | src/slic3r/Utils/PrintHost.cpp (renamed from xs/src/slic3r/Utils/PrintHost.cpp) | 0 | ||||
-rw-r--r-- | src/slic3r/Utils/PrintHost.hpp (renamed from xs/src/slic3r/Utils/PrintHost.hpp) | 0 | ||||
-rw-r--r-- | src/slic3r/Utils/PrintHostSendDialog.cpp (renamed from xs/src/slic3r/Utils/PrintHostSendDialog.cpp) | 0 | ||||
-rw-r--r-- | src/slic3r/Utils/PrintHostSendDialog.hpp (renamed from xs/src/slic3r/Utils/PrintHostSendDialog.hpp) | 0 | ||||
-rw-r--r-- | src/slic3r/Utils/Semver.hpp (renamed from xs/src/slic3r/Utils/Semver.hpp) | 0 | ||||
-rw-r--r-- | src/slic3r/Utils/Serial.cpp (renamed from xs/src/slic3r/Utils/Serial.cpp) | 0 | ||||
-rw-r--r-- | src/slic3r/Utils/Serial.hpp (renamed from xs/src/slic3r/Utils/Serial.hpp) | 0 | ||||
-rw-r--r-- | src/slic3r/Utils/Time.cpp (renamed from xs/src/slic3r/Utils/Time.cpp) | 0 | ||||
-rw-r--r-- | src/slic3r/Utils/Time.hpp (renamed from xs/src/slic3r/Utils/Time.hpp) | 0 | ||||
-rw-r--r-- | xs/CMakeLists.txt | 685 | ||||
-rw-r--r-- | xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch03s01s01.html~ | 215 | ||||
-rw-r--r-- | xs/src/libnest2d/tools/benchmark.h | 58 | ||||
-rw-r--r-- | xs/src/slic3r/GUI/wxPerlIface.cpp | 97 |
1706 files changed, 7413 insertions, 7638 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 8e3d8ad4d..1e1817f54 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,5 @@ -cmake_minimum_required(VERSION 3.2) - project(Slic3r) +cmake_minimum_required(VERSION 3.2) if (NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) message(STATUS "No build type selected, default to Release") @@ -48,7 +47,6 @@ else() set(PERL5LIB_ENV_CMD ${CMAKE_COMMAND} -E env PERL5LIB=${PERL_INCLUDE}) endif() - # CMAKE_PREFIX_PATH is used to point CMake to the remaining dependencies (Boost, TBB, ...) # We pick it from environment if it is not defined in another way if(NOT DEFINED CMAKE_PREFIX_PATH) @@ -57,8 +55,19 @@ if(NOT DEFINED CMAKE_PREFIX_PATH) endif() endif() +# Add our own cmake module path. +list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake/modules/) + enable_testing () +# Enable C++11 language standard. +set(CMAKE_CXX_STANDARD 11) +set(CMAKE_CXX_STANDARD_REQUIRED ON) + +# Enable C11 language standard. +set(CMAKE_C_STANDARD 11) +set(CMAKE_C_STANDARD_REQUIRED ON) + # WIN10SDK_PATH is used to point CMake to the WIN10 SDK installation directory. # We pick it from environment if it is not defined in another way if(WIN32) @@ -75,6 +84,187 @@ if(WIN32) endif() endif() +if (CMAKE_SYSTEM_NAME STREQUAL "Linux") + # Workaround for an old CMake, which does not understand CMAKE_CXX_STANDARD. + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall -Wno-reorder" ) + find_package(PkgConfig REQUIRED) +endif() + +if (CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUXX) + # Adding -fext-numeric-literals to enable GCC extensions on definitions of quad float literals, which are required by Boost. + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fext-numeric-literals" ) +endif() + +# Where all the bundled libraries reside? +set(LIBDIR ${CMAKE_CURRENT_SOURCE_DIR}/src/) +# For the bundled boost libraries (boost::nowide) +include_directories(${LIBDIR}) +# For libslic3r.h +include_directories(${LIBDIR}/libslic3r ${LIBDIR}/clipper ${LIBDIR}/polypartition) +#set(CMAKE_INCLUDE_CURRENT_DIR ON) + +if(WIN32) + # BOOST_ALL_NO_LIB: Avoid the automatic linking of Boost libraries on Windows. Rather rely on explicit linking. + add_definitions(-D_USE_MATH_DEFINES -D_WIN32 -DBOOST_ALL_NO_LIB -DBOOST_USE_WINAPI_VERSION=0x601) +endif() + +add_definitions(-DwxUSE_UNICODE -D_UNICODE -DUNICODE -DWXINTL_NO_GETTEXT_MACRO) + +if (SLIC3R_PROFILE) + message("Slic3r will be built with a Shiny invasive profiler") + add_definitions(-DSLIC3R_PROFILE) +endif () + +# Perl specific stuff +find_package(PerlLibs REQUIRED) +set(PerlEmbed_DEBUG 1) +find_package(PerlEmbed REQUIRED) +# If the Perl is compiled with optimization off, disable optimization over the whole project. +if (WIN32 AND ";${PerlEmbed_CCFLAGS};" MATCHES ";[-/]Od;") + message(STATUS "Perl compiled without optimization. Disabling optimization for the Slic3r build.") + message("Old CMAKE_CXX_FLAGS_RELEASE: ${CMAKE_CXX_FLAGS_RELEASE}") + message("Old CMAKE_CXX_FLAGS_RELWITHDEBINFO: ${CMAKE_CXX_FLAGS_RELEASE}") + message("Old CMAKE_CXX_FLAGS: ${CMAKE_CXX_FLAGS_RELEASE}") + set(CMAKE_CXX_FLAGS_RELEASE "/MD /Od /Zi /EHsc /DNDEBUG /DWIN32 /DTBB_USE_ASSERT") + set(CMAKE_C_FLAGS_RELEASE "/MD /Od /Zi /DNDEBUG /DWIN32 /DTBB_USE_ASSERT") + set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "/MD /Od /Zi /EHsc /DNDEBUG /DWIN32 /DTBB_USE_ASSERT") + set(CMAKE_C_FLAGS_RELWITHDEBINFO "/MD /Od /Zi /DNDEBUG /DWIN32 /DTBB_USE_ASSERT") + set(CMAKE_CXX_FLAGS "/MD /Od /Zi /EHsc /DNDEBUG /DWIN32 /DTBB_USE_ASSERT") + set(CMAKE_C_FLAGS "/MD /Od /Zi /DNDEBUG /DWIN32 /DTBB_USE_ASSERT") +endif() +# The following line will add -fPIC on Linux to make the XS.so rellocable. +add_definitions(${PerlEmbed_CCCDLFLAGS}) + +# Find and configure boost +if(SLIC3R_STATIC) + # Use static boost libraries. + set(Boost_USE_STATIC_LIBS ON) + # Use boost libraries linked statically to the C++ runtime. + # set(Boost_USE_STATIC_RUNTIME ON) +endif() +#set(Boost_DEBUG ON) +find_package(Boost REQUIRED COMPONENTS system filesystem thread log locale regex) +if(Boost_FOUND) + include_directories(${Boost_INCLUDE_DIRS}) + if (APPLE) + # BOOST_ASIO_DISABLE_KQUEUE : prevents a Boost ASIO bug on OS X: https://svn.boost.org/trac/boost/ticket/5339 + add_definitions(-DBOOST_ASIO_DISABLE_KQUEUE) + endif() + if(NOT SLIC3R_STATIC) + add_definitions(-DBOOST_LOG_DYN_LINK) + endif() +endif() + +# Find and configure intel-tbb +if(SLIC3R_STATIC) + set(TBB_STATIC 1) +endif() +set(TBB_DEBUG 1) +find_package(TBB REQUIRED) +include_directories(${TBB_INCLUDE_DIRS}) +add_definitions(${TBB_DEFINITIONS}) +if(MSVC) + # Suppress implicit linking of the TBB libraries by the Visual Studio compiler. + add_definitions(-D__TBB_NO_IMPLICIT_LINKAGE) +endif() +# The Intel TBB library will use the std::exception_ptr feature of C++11. +add_definitions(-DTBB_USE_CAPTURED_EXCEPTION=0) + +# Find and configure wxWidgets +if (SLIC3R_PRUSACONTROL) + set(wxWidgets_UseAlienWx 1) + if (wxWidgets_UseAlienWx) + set(AlienWx_DEBUG 1) + find_package(AlienWx REQUIRED COMPONENTS base core adv html gl) + include_directories(${AlienWx_INCLUDE_DIRS}) + #add_compile_options(${AlienWx_CXX_FLAGS}) + add_definitions(${AlienWx_DEFINITIONS}) + set(wxWidgets_LIBRARIES ${AlienWx_LIBRARIES}) + # On Linux / gtk, we need to have a direct access to gtk+ for some workarounds. + if (AlienWx_GUI_TOOLKIT STREQUAL "gtk2") + pkg_check_modules(GTK2 gtk+-2.0) + include_directories(${GTK2_INCLUDE_DIRS}) + endif() + if (AlienWx_GUI_TOOLKIT STREQUAL "gtk3") + pkg_check_modules(GTK3 gtk+-3.0) + include_directories(${GTK3_INCLUDE_DIRS}) + endif() + else () + find_package(wxWidgets REQUIRED COMPONENTS base core adv html gl) + include(${wxWidgets_USE_FILE}) + endif () +#FIXME rewrite the PRUS format to miniz! +# add_definitions(-DSLIC3R_GUI -DSLIC3R_PRUS) +endif() + +find_package(CURL REQUIRED) +include_directories(${CURL_INCLUDE_DIRS}) + +if (SLIC3R_STATIC) + if (NOT APPLE) + # libcurl is always linked dynamically to the system libcurl on OSX. + # On other systems, libcurl is linked statically if SLIC3R_STATIC is set. + add_definitions(-DCURL_STATICLIB) + endif() + if (CMAKE_SYSTEM_NAME STREQUAL "Linux") + # As of now, our build system produces a statically linked libcurl, + # which links the OpenSSL library dynamically. + find_package(OpenSSL REQUIRED) + message("OpenSSL include dir: ${OPENSSL_INCLUDE_DIR}") + message("OpenSSL libraries: ${OPENSSL_LIBRARIES}") + include_directories(${OPENSSL_INCLUDE_DIR}) + endif() +endif() + +## OPTIONAL packages + +# Find eigen3 or use bundled version +if (NOT SLIC3R_STATIC) + find_package(Eigen3) +endif () +if (NOT Eigen3_FOUND) + set(Eigen3_FOUND 1) + set(EIGEN3_INCLUDE_DIR ${LIBDIR}/eigen/) +endif () +include_directories(${EIGEN3_INCLUDE_DIR}) + +# Find expat or use bundled version +# Always use the system libexpat on Linux. +if (NOT SLIC3R_STATIC OR CMAKE_SYSTEM_NAME STREQUAL "Linux") + find_package(EXPAT) +endif () +if (NOT EXPAT_FOUND) + add_library(expat STATIC + ${LIBDIR}/expat/xmlparse.c + ${LIBDIR}/expat/xmlrole.c + ${LIBDIR}/expat/xmltok.c + ) + set(EXPAT_FOUND 1) + set(EXPAT_INCLUDE_DIRS ${LIBDIR}/expat/) + set(EXPAT_LIBRARIES expat) +endif () +include_directories(${EXPAT_INCLUDE_DIRS}) + +# Find glew or use bundled version +if (NOT SLIC3R_STATIC) + find_package(GLEW) +endif () +if (NOT GLEW_FOUND) + add_library(glew STATIC ${LIBDIR}/glew/src/glew.c) + set(GLEW_FOUND 1) + set(GLEW_INCLUDE_DIRS ${LIBDIR}/glew/include/) + set(GLEW_LIBRARIES glew) + add_definitions(-DGLEW_STATIC) +endif () +include_directories(${GLEW_INCLUDE_DIRS}) + +# l10n +add_subdirectory(resources/localization) + +# libslic3r, Slic3r GUI and the slic3r executable. +add_subdirectory(src) + +# Perl bindings, currently only used for the unit / integration tests of libslic3r. add_subdirectory(xs) get_filename_component(PERL_BIN_PATH "${PERL_EXECUTABLE}" DIRECTORY) @@ -92,7 +282,7 @@ endif () add_test (NAME xs COMMAND "${PERL_EXECUTABLE}" ${PERL_PROVE} -I ${PROJECT_SOURCE_DIR}/local-lib/lib/perl5 WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/xs) add_test (NAME integration COMMAND "${PERL_EXECUTABLE}" ${PERL_PROVE} WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}) -install(PROGRAMS slic3r.pl DESTINATION bin RENAME slic3r-prusa3d) +#install(PROGRAMS slic3r.pl DESTINATION bin RENAME slic3r-prusa3d) file(GLOB MyVar var/*.png) install(FILES ${MyVar} DESTINATION share/slic3r-prusa3d) diff --git a/resources/localization/CMakeLists.txt b/resources/localization/CMakeLists.txt new file mode 100644 index 000000000..8a7fba068 --- /dev/null +++ b/resources/localization/CMakeLists.txt @@ -0,0 +1,8 @@ +set(L10N_DIR "${PROJECT_SOURCE_DIR}/resources/localization") +add_custom_target(pot + COMMAND xgettext --keyword=L --from-code=UTF-8 --debug + -f "${L10N_DIR}/list.txt" + -o "${L10N_DIR}/Slic3rPE.pot" + WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} + COMMENT "Generate pot file from strings in the source tree" +) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt new file mode 100644 index 000000000..d0c008293 --- /dev/null +++ b/src/CMakeLists.txt @@ -0,0 +1,65 @@ +project(Slic3r-native) + +add_subdirectory(admesh) +add_subdirectory(avrdude) +# boost/nowide +add_subdirectory(boost) +add_subdirectory(clipper) +add_subdirectory(miniz) +add_subdirectory(polypartition) +add_subdirectory(poly2tri) +add_subdirectory(qhull) +add_subdirectory(Shiny) +add_subdirectory(semver) + +# Adding libnest2d project for bin packing... +set(LIBNEST2D_UNITTESTS ON CACHE BOOL "Force generating unittests for libnest2d") +add_subdirectory(libnest2d) + +include_directories(${LIBDIR}/qhull/src) +#message(STATUS ${LIBDIR}/qhull/src) + + +# ############################################################################## +# Configure rasterizer target +# ############################################################################## + +find_package(PNG QUIET) + +option(RASTERIZER_FORCE_BUILTIN_LIBPNG "Force the usage of builting libpng instead of the system version." OFF) + +if(PNG_FOUND AND NOT RASTERIZER_FORCE_BUILTIN_LIBPNG) + message(STATUS "Using system libpng.") +else() + set(ZLIB_LIBRARY "") + message(WARNING "Using builtin libpng. This can cause crashes on some platforms.") + add_subdirectory(png/zlib) + set(ZLIB_INCLUDE_DIR ${PROJECT_SOURCE_DIR}/png/zlib ${CMAKE_CURRENT_BINARY_DIR}/png/zlib) + include_directories(${ZLIB_INCLUDE_DIR}) + message(STATUS "ZLIB_INCLUDE_DIR ${ZLIB_INCLUDE_DIR}") + add_subdirectory(png/libpng) + set_target_properties(zlibstatic PROPERTIES POSITION_INDEPENDENT_CODE ON) + set_target_properties(png_static PROPERTIES POSITION_INDEPENDENT_CODE ON) +# target_include_directories(png_static PRIVATE ${ZLIB_INCLUDE_DIR}) + set(PNG_LIBRARIES png_static zlibstatic) + set(PNG_INCLUDE_DIRS ${ZLIB_INCLUDE_DIR} ${PROJECT_SOURCE_DIR}/png/libpng ${CMAKE_CURRENT_BINARY_DIR}/png/libpng) +endif() + +add_subdirectory(libslic3r) +add_subdirectory(slic3r) + +# Create a slic3r executable +add_executable(slic3r slic3r.cpp) +target_link_libraries(slic3r libslic3r libslic3r_gui ${wxWidgets_LIBRARIES} ${CURL_LIBRARIES}) +# Add the OpenGL and GLU libraries. +if (SLIC3R_GUI) + if (MSVC) + target_link_libraries(slic3r user32.lib Setupapi.lib OpenGL32.Lib GlU32.Lib) + elseif (MINGW) + target_link_libraries(slic3r -lopengl32) + elseif (APPLE) + target_link_libraries(slic3r "-framework OpenGL") + else () + target_link_libraries(slic3r -lGL -lGLU) + endif () +endif () diff --git a/src/Shiny/CMakeLists.txt b/src/Shiny/CMakeLists.txt new file mode 100644 index 000000000..8be7592ae --- /dev/null +++ b/src/Shiny/CMakeLists.txt @@ -0,0 +1,25 @@ +project(Shiny) +cmake_minimum_required(VERSION 2.6) + +add_library(Shiny STATIC + Shiny.h + ShinyConfig.h + ShinyData.h + ShinyMacros.h + ShinyManager.c + ShinyManager.h + ShinyNode.c + ShinyNode.h + ShinyNodePool.c + ShinyNodePool.h + ShinyNodeState.c + ShinyNodeState.h + ShinyOutput.c + ShinyOutput.h + ShinyPrereqs.h + ShinyTools.c + ShinyTools.h + ShinyVersion.h + ShinyZone.c + ShinyZone.h +) diff --git a/xs/src/Shiny/Shiny.h b/src/Shiny/Shiny.h index a2905aef0..a2905aef0 100644 --- a/xs/src/Shiny/Shiny.h +++ b/src/Shiny/Shiny.h diff --git a/xs/src/Shiny/ShinyConfig.h b/src/Shiny/ShinyConfig.h index 54c632151..54c632151 100644 --- a/xs/src/Shiny/ShinyConfig.h +++ b/src/Shiny/ShinyConfig.h diff --git a/xs/src/Shiny/ShinyData.h b/src/Shiny/ShinyData.h index d75d4f5bf..d75d4f5bf 100644 --- a/xs/src/Shiny/ShinyData.h +++ b/src/Shiny/ShinyData.h diff --git a/xs/src/Shiny/ShinyMacros.h b/src/Shiny/ShinyMacros.h index 79dfa4381..79dfa4381 100644 --- a/xs/src/Shiny/ShinyMacros.h +++ b/src/Shiny/ShinyMacros.h diff --git a/xs/src/Shiny/ShinyManager.c b/src/Shiny/ShinyManager.c index 6b2811851..6b2811851 100644 --- a/xs/src/Shiny/ShinyManager.c +++ b/src/Shiny/ShinyManager.c diff --git a/xs/src/Shiny/ShinyManager.h b/src/Shiny/ShinyManager.h index 403e0e878..403e0e878 100644 --- a/xs/src/Shiny/ShinyManager.h +++ b/src/Shiny/ShinyManager.h diff --git a/xs/src/Shiny/ShinyNode.c b/src/Shiny/ShinyNode.c index 9d777073b..9d777073b 100644 --- a/xs/src/Shiny/ShinyNode.c +++ b/src/Shiny/ShinyNode.c diff --git a/xs/src/Shiny/ShinyNode.h b/src/Shiny/ShinyNode.h index ee5fdb0de..ee5fdb0de 100644 --- a/xs/src/Shiny/ShinyNode.h +++ b/src/Shiny/ShinyNode.h diff --git a/xs/src/Shiny/ShinyNodePool.c b/src/Shiny/ShinyNodePool.c index f00293252..f00293252 100644 --- a/xs/src/Shiny/ShinyNodePool.c +++ b/src/Shiny/ShinyNodePool.c diff --git a/xs/src/Shiny/ShinyNodePool.h b/src/Shiny/ShinyNodePool.h index 5e30a3306..5e30a3306 100644 --- a/xs/src/Shiny/ShinyNodePool.h +++ b/src/Shiny/ShinyNodePool.h diff --git a/xs/src/Shiny/ShinyNodeState.c b/src/Shiny/ShinyNodeState.c index fbf6dc870..fbf6dc870 100644 --- a/xs/src/Shiny/ShinyNodeState.c +++ b/src/Shiny/ShinyNodeState.c diff --git a/xs/src/Shiny/ShinyNodeState.h b/src/Shiny/ShinyNodeState.h index 62fdd4ba8..62fdd4ba8 100644 --- a/xs/src/Shiny/ShinyNodeState.h +++ b/src/Shiny/ShinyNodeState.h diff --git a/xs/src/Shiny/ShinyOutput.c b/src/Shiny/ShinyOutput.c index ad02ea003..ad02ea003 100644 --- a/xs/src/Shiny/ShinyOutput.c +++ b/src/Shiny/ShinyOutput.c diff --git a/xs/src/Shiny/ShinyOutput.h b/src/Shiny/ShinyOutput.h index 81c1783db..81c1783db 100644 --- a/xs/src/Shiny/ShinyOutput.h +++ b/src/Shiny/ShinyOutput.h diff --git a/xs/src/Shiny/ShinyPrereqs.h b/src/Shiny/ShinyPrereqs.h index 5a3044dbc..5a3044dbc 100644 --- a/xs/src/Shiny/ShinyPrereqs.h +++ b/src/Shiny/ShinyPrereqs.h diff --git a/xs/src/Shiny/ShinyTools.c b/src/Shiny/ShinyTools.c index 4058e2285..4058e2285 100644 --- a/xs/src/Shiny/ShinyTools.c +++ b/src/Shiny/ShinyTools.c diff --git a/xs/src/Shiny/ShinyTools.h b/src/Shiny/ShinyTools.h index 379703ee6..379703ee6 100644 --- a/xs/src/Shiny/ShinyTools.h +++ b/src/Shiny/ShinyTools.h diff --git a/xs/src/Shiny/ShinyVersion.h b/src/Shiny/ShinyVersion.h index fe6cd4a33..fe6cd4a33 100644 --- a/xs/src/Shiny/ShinyVersion.h +++ b/src/Shiny/ShinyVersion.h diff --git a/xs/src/Shiny/ShinyZone.c b/src/Shiny/ShinyZone.c index 99d90d927..99d90d927 100644 --- a/xs/src/Shiny/ShinyZone.c +++ b/src/Shiny/ShinyZone.c diff --git a/xs/src/Shiny/ShinyZone.h b/src/Shiny/ShinyZone.h index dde0d3624..dde0d3624 100644 --- a/xs/src/Shiny/ShinyZone.h +++ b/src/Shiny/ShinyZone.h diff --git a/src/admesh/CMakeLists.txt b/src/admesh/CMakeLists.txt new file mode 100644 index 000000000..44c97c3f1 --- /dev/null +++ b/src/admesh/CMakeLists.txt @@ -0,0 +1,12 @@ +project(admesh) +cmake_minimum_required(VERSION 2.6) + +add_library(admesh STATIC + connect.cpp + normals.cpp + shared.cpp + stl.h + stl_io.cpp + stlinit.cpp + util.cpp +) diff --git a/xs/src/admesh/connect.cpp b/src/admesh/connect.cpp index da5b66720..da5b66720 100644 --- a/xs/src/admesh/connect.cpp +++ b/src/admesh/connect.cpp diff --git a/xs/src/admesh/normals.cpp b/src/admesh/normals.cpp index a8faa44bd..a8faa44bd 100644 --- a/xs/src/admesh/normals.cpp +++ b/src/admesh/normals.cpp diff --git a/xs/src/admesh/shared.cpp b/src/admesh/shared.cpp index 91bb82e00..91bb82e00 100644 --- a/xs/src/admesh/shared.cpp +++ b/src/admesh/shared.cpp diff --git a/xs/src/admesh/stl.h b/src/admesh/stl.h index 096430d15..096430d15 100644 --- a/xs/src/admesh/stl.h +++ b/src/admesh/stl.h diff --git a/xs/src/admesh/stl_io.cpp b/src/admesh/stl_io.cpp index 81e29d286..81e29d286 100644 --- a/xs/src/admesh/stl_io.cpp +++ b/src/admesh/stl_io.cpp diff --git a/xs/src/admesh/stlinit.cpp b/src/admesh/stlinit.cpp index e2939b8af..e2939b8af 100644 --- a/xs/src/admesh/stlinit.cpp +++ b/src/admesh/stlinit.cpp diff --git a/xs/src/admesh/util.cpp b/src/admesh/util.cpp index cc104fdd1..cc104fdd1 100644 --- a/xs/src/admesh/util.cpp +++ b/src/admesh/util.cpp diff --git a/xs/src/agg/AUTHORS b/src/agg/AUTHORS index 2bb6518ec..2bb6518ec 100644 --- a/xs/src/agg/AUTHORS +++ b/src/agg/AUTHORS diff --git a/xs/src/agg/VERSION b/src/agg/VERSION index c5de3e3b0..c5de3e3b0 100644 --- a/xs/src/agg/VERSION +++ b/src/agg/VERSION diff --git a/xs/src/agg/agg_array.h b/src/agg/agg_array.h index 8d5668384..8d5668384 100644 --- a/xs/src/agg/agg_array.h +++ b/src/agg/agg_array.h diff --git a/xs/src/agg/agg_basics.h b/src/agg/agg_basics.h index 273850ba1..273850ba1 100644 --- a/xs/src/agg/agg_basics.h +++ b/src/agg/agg_basics.h diff --git a/xs/src/agg/agg_bezier_arc.h b/src/agg/agg_bezier_arc.h index cfd9308ea..cfd9308ea 100644 --- a/xs/src/agg/agg_bezier_arc.h +++ b/src/agg/agg_bezier_arc.h diff --git a/xs/src/agg/agg_clip_liang_barsky.h b/src/agg/agg_clip_liang_barsky.h index 4b5fedbab..4b5fedbab 100644 --- a/xs/src/agg/agg_clip_liang_barsky.h +++ b/src/agg/agg_clip_liang_barsky.h diff --git a/xs/src/agg/agg_color_gray.h b/src/agg/agg_color_gray.h index f66588c11..f66588c11 100644 --- a/xs/src/agg/agg_color_gray.h +++ b/src/agg/agg_color_gray.h diff --git a/xs/src/agg/agg_color_rgba.h b/src/agg/agg_color_rgba.h index ff33a1179..ff33a1179 100644 --- a/xs/src/agg/agg_color_rgba.h +++ b/src/agg/agg_color_rgba.h diff --git a/xs/src/agg/agg_config.h b/src/agg/agg_config.h index fa1dae2ba..fa1dae2ba 100644 --- a/xs/src/agg/agg_config.h +++ b/src/agg/agg_config.h diff --git a/xs/src/agg/agg_conv_transform.h b/src/agg/agg_conv_transform.h index 0c88a245b..0c88a245b 100644 --- a/xs/src/agg/agg_conv_transform.h +++ b/src/agg/agg_conv_transform.h diff --git a/xs/src/agg/agg_gamma_functions.h b/src/agg/agg_gamma_functions.h index 5d720daa9..5d720daa9 100644 --- a/xs/src/agg/agg_gamma_functions.h +++ b/src/agg/agg_gamma_functions.h diff --git a/xs/src/agg/agg_gamma_lut.h b/src/agg/agg_gamma_lut.h index e30873632..e30873632 100644 --- a/xs/src/agg/agg_gamma_lut.h +++ b/src/agg/agg_gamma_lut.h diff --git a/xs/src/agg/agg_math.h b/src/agg/agg_math.h index 2ec49cf3f..2ec49cf3f 100644 --- a/xs/src/agg/agg_math.h +++ b/src/agg/agg_math.h diff --git a/xs/src/agg/agg_path_storage.h b/src/agg/agg_path_storage.h index f55c89957..f55c89957 100644 --- a/xs/src/agg/agg_path_storage.h +++ b/src/agg/agg_path_storage.h diff --git a/xs/src/agg/agg_pixfmt_base.h b/src/agg/agg_pixfmt_base.h index 57ae19cfe..57ae19cfe 100644 --- a/xs/src/agg/agg_pixfmt_base.h +++ b/src/agg/agg_pixfmt_base.h diff --git a/xs/src/agg/agg_pixfmt_gray.h b/src/agg/agg_pixfmt_gray.h index d03dc8650..d03dc8650 100644 --- a/xs/src/agg/agg_pixfmt_gray.h +++ b/src/agg/agg_pixfmt_gray.h diff --git a/xs/src/agg/agg_pixfmt_rgb.h b/src/agg/agg_pixfmt_rgb.h index 6fa8772ce..6fa8772ce 100644 --- a/xs/src/agg/agg_pixfmt_rgb.h +++ b/src/agg/agg_pixfmt_rgb.h diff --git a/xs/src/agg/agg_rasterizer_cells_aa.h b/src/agg/agg_rasterizer_cells_aa.h index 1147148fa..1147148fa 100644 --- a/xs/src/agg/agg_rasterizer_cells_aa.h +++ b/src/agg/agg_rasterizer_cells_aa.h diff --git a/xs/src/agg/agg_rasterizer_scanline_aa.h b/src/agg/agg_rasterizer_scanline_aa.h index ffc2ddf94..ffc2ddf94 100644 --- a/xs/src/agg/agg_rasterizer_scanline_aa.h +++ b/src/agg/agg_rasterizer_scanline_aa.h diff --git a/xs/src/agg/agg_rasterizer_scanline_aa_nogamma.h b/src/agg/agg_rasterizer_scanline_aa_nogamma.h index 9a809aa5a..9a809aa5a 100644 --- a/xs/src/agg/agg_rasterizer_scanline_aa_nogamma.h +++ b/src/agg/agg_rasterizer_scanline_aa_nogamma.h diff --git a/xs/src/agg/agg_rasterizer_sl_clip.h b/src/agg/agg_rasterizer_sl_clip.h index 3a7f3a103..3a7f3a103 100644 --- a/xs/src/agg/agg_rasterizer_sl_clip.h +++ b/src/agg/agg_rasterizer_sl_clip.h diff --git a/xs/src/agg/agg_renderer_base.h b/src/agg/agg_renderer_base.h index 527c62f78..527c62f78 100644 --- a/xs/src/agg/agg_renderer_base.h +++ b/src/agg/agg_renderer_base.h diff --git a/xs/src/agg/agg_renderer_scanline.h b/src/agg/agg_renderer_scanline.h index 311e9f739..311e9f739 100644 --- a/xs/src/agg/agg_renderer_scanline.h +++ b/src/agg/agg_renderer_scanline.h diff --git a/xs/src/agg/agg_rendering_buffer.h b/src/agg/agg_rendering_buffer.h index 0eff6ff27..0eff6ff27 100644 --- a/xs/src/agg/agg_rendering_buffer.h +++ b/src/agg/agg_rendering_buffer.h diff --git a/xs/src/agg/agg_scanline_p.h b/src/agg/agg_scanline_p.h index 1d1cbe72f..1d1cbe72f 100644 --- a/xs/src/agg/agg_scanline_p.h +++ b/src/agg/agg_scanline_p.h diff --git a/xs/src/agg/agg_trans_affine.h b/src/agg/agg_trans_affine.h index 1a6116388..1a6116388 100644 --- a/xs/src/agg/agg_trans_affine.h +++ b/src/agg/agg_trans_affine.h diff --git a/xs/src/agg/copying b/src/agg/copying index b6028e519..b6028e519 100644 --- a/xs/src/agg/copying +++ b/src/agg/copying diff --git a/xs/src/avrdude/AUTHORS b/src/avrdude/AUTHORS index 6abbec066..6abbec066 100644 --- a/xs/src/avrdude/AUTHORS +++ b/src/avrdude/AUTHORS diff --git a/xs/src/avrdude/BUILD-FROM-SVN b/src/avrdude/BUILD-FROM-SVN index 3a218f2d1..3a218f2d1 100644 --- a/xs/src/avrdude/BUILD-FROM-SVN +++ b/src/avrdude/BUILD-FROM-SVN diff --git a/xs/src/avrdude/CMakeLists.txt b/src/avrdude/CMakeLists.txt index d88563368..d88563368 100644 --- a/xs/src/avrdude/CMakeLists.txt +++ b/src/avrdude/CMakeLists.txt diff --git a/xs/src/avrdude/COPYING b/src/avrdude/COPYING index e69cf7e6c..e69cf7e6c 100644 --- a/xs/src/avrdude/COPYING +++ b/src/avrdude/COPYING diff --git a/xs/src/avrdude/ChangeLog b/src/avrdude/ChangeLog index 975f52317..975f52317 100644 --- a/xs/src/avrdude/ChangeLog +++ b/src/avrdude/ChangeLog diff --git a/xs/src/avrdude/ChangeLog-2001 b/src/avrdude/ChangeLog-2001 index 048dcf1c2..048dcf1c2 100644 --- a/xs/src/avrdude/ChangeLog-2001 +++ b/src/avrdude/ChangeLog-2001 diff --git a/xs/src/avrdude/ChangeLog-2002 b/src/avrdude/ChangeLog-2002 index 9bfa030a9..9bfa030a9 100644 --- a/xs/src/avrdude/ChangeLog-2002 +++ b/src/avrdude/ChangeLog-2002 diff --git a/xs/src/avrdude/ChangeLog-2003 b/src/avrdude/ChangeLog-2003 index 1115bdfbc..1115bdfbc 100644 --- a/xs/src/avrdude/ChangeLog-2003 +++ b/src/avrdude/ChangeLog-2003 diff --git a/xs/src/avrdude/ChangeLog-2004-2006 b/src/avrdude/ChangeLog-2004-2006 index 20e5b2e8b..20e5b2e8b 100644 --- a/xs/src/avrdude/ChangeLog-2004-2006 +++ b/src/avrdude/ChangeLog-2004-2006 diff --git a/xs/src/avrdude/ChangeLog-2007 b/src/avrdude/ChangeLog-2007 index 3514da7e0..3514da7e0 100644 --- a/xs/src/avrdude/ChangeLog-2007 +++ b/src/avrdude/ChangeLog-2007 diff --git a/xs/src/avrdude/ChangeLog-2008 b/src/avrdude/ChangeLog-2008 index f43a10abb..f43a10abb 100644 --- a/xs/src/avrdude/ChangeLog-2008 +++ b/src/avrdude/ChangeLog-2008 diff --git a/xs/src/avrdude/ChangeLog-2009 b/src/avrdude/ChangeLog-2009 index 1f993cbcf..1f993cbcf 100644 --- a/xs/src/avrdude/ChangeLog-2009 +++ b/src/avrdude/ChangeLog-2009 diff --git a/xs/src/avrdude/ChangeLog-2010 b/src/avrdude/ChangeLog-2010 index 45effefa4..45effefa4 100644 --- a/xs/src/avrdude/ChangeLog-2010 +++ b/src/avrdude/ChangeLog-2010 diff --git a/xs/src/avrdude/ChangeLog-2011 b/src/avrdude/ChangeLog-2011 index d8fffba01..d8fffba01 100644 --- a/xs/src/avrdude/ChangeLog-2011 +++ b/src/avrdude/ChangeLog-2011 diff --git a/xs/src/avrdude/ChangeLog-2012 b/src/avrdude/ChangeLog-2012 index bb5751a6d..bb5751a6d 100644 --- a/xs/src/avrdude/ChangeLog-2012 +++ b/src/avrdude/ChangeLog-2012 diff --git a/xs/src/avrdude/ChangeLog-2013 b/src/avrdude/ChangeLog-2013 index 8e975ef6e..8e975ef6e 100644 --- a/xs/src/avrdude/ChangeLog-2013 +++ b/src/avrdude/ChangeLog-2013 diff --git a/xs/src/avrdude/ChangeLog-2014 b/src/avrdude/ChangeLog-2014 index 3fe7a53aa..3fe7a53aa 100644 --- a/xs/src/avrdude/ChangeLog-2014 +++ b/src/avrdude/ChangeLog-2014 diff --git a/xs/src/avrdude/ChangeLog-2015 b/src/avrdude/ChangeLog-2015 index edc274188..edc274188 100644 --- a/xs/src/avrdude/ChangeLog-2015 +++ b/src/avrdude/ChangeLog-2015 diff --git a/xs/src/avrdude/Makefile.am b/src/avrdude/Makefile.am index d1ed47845..d1ed47845 100644 --- a/xs/src/avrdude/Makefile.am +++ b/src/avrdude/Makefile.am diff --git a/xs/src/avrdude/Makefile.standalone b/src/avrdude/Makefile.standalone index d9a773771..d9a773771 100644 --- a/xs/src/avrdude/Makefile.standalone +++ b/src/avrdude/Makefile.standalone diff --git a/xs/src/avrdude/NEWS b/src/avrdude/NEWS index ced93cd35..ced93cd35 100644 --- a/xs/src/avrdude/NEWS +++ b/src/avrdude/NEWS diff --git a/xs/src/avrdude/README b/src/avrdude/README index 2ca0009a3..2ca0009a3 100644 --- a/xs/src/avrdude/README +++ b/src/avrdude/README diff --git a/xs/src/avrdude/ac_cfg.h b/src/avrdude/ac_cfg.h index 2461bf307..2461bf307 100644 --- a/xs/src/avrdude/ac_cfg.h +++ b/src/avrdude/ac_cfg.h diff --git a/xs/src/avrdude/ac_cfg.h.in b/src/avrdude/ac_cfg.h.in index 9dda33a53..9dda33a53 100644 --- a/xs/src/avrdude/ac_cfg.h.in +++ b/src/avrdude/ac_cfg.h.in diff --git a/xs/src/avrdude/arduino.c b/src/avrdude/arduino.c index 5a9cb465e..5a9cb465e 100644 --- a/xs/src/avrdude/arduino.c +++ b/src/avrdude/arduino.c diff --git a/xs/src/avrdude/arduino.h b/src/avrdude/arduino.h index 024d711b9..024d711b9 100644 --- a/xs/src/avrdude/arduino.h +++ b/src/avrdude/arduino.h diff --git a/xs/src/avrdude/atmel-docs/AVR109.pdf b/src/avrdude/atmel-docs/AVR109.pdf Binary files differindex 0942f44bc..0942f44bc 100644 --- a/xs/src/avrdude/atmel-docs/AVR109.pdf +++ b/src/avrdude/atmel-docs/AVR109.pdf diff --git a/xs/src/avrdude/atmel-docs/AVR910.pdf b/src/avrdude/atmel-docs/AVR910.pdf Binary files differindex 585703aac..585703aac 100644 --- a/xs/src/avrdude/atmel-docs/AVR910.pdf +++ b/src/avrdude/atmel-docs/AVR910.pdf diff --git a/xs/src/avrdude/atmel-docs/AVRISPmkII-AVR069.pdf b/src/avrdude/atmel-docs/AVRISPmkII-AVR069.pdf Binary files differindex dc4254954..dc4254954 100644 --- a/xs/src/avrdude/atmel-docs/AVRISPmkII-AVR069.pdf +++ b/src/avrdude/atmel-docs/AVRISPmkII-AVR069.pdf diff --git a/xs/src/avrdude/atmel-docs/EDBG/common/browserDetect.js b/src/avrdude/atmel-docs/EDBG/common/browserDetect.js index 2a7aa08a4..2a7aa08a4 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/common/browserDetect.js +++ b/src/avrdude/atmel-docs/EDBG/common/browserDetect.js diff --git a/xs/src/avrdude/atmel-docs/EDBG/common/css/960.css b/src/avrdude/atmel-docs/EDBG/common/css/960.css index 635d7ba5f..635d7ba5f 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/common/css/960.css +++ b/src/avrdude/atmel-docs/EDBG/common/css/960.css diff --git a/xs/src/avrdude/atmel-docs/EDBG/common/css/docbook.css b/src/avrdude/atmel-docs/EDBG/common/css/docbook.css index 9a9c8f2b8..9a9c8f2b8 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/common/css/docbook.css +++ b/src/avrdude/atmel-docs/EDBG/common/css/docbook.css diff --git a/xs/src/avrdude/atmel-docs/EDBG/common/css/fluid_grid.css b/src/avrdude/atmel-docs/EDBG/common/css/fluid_grid.css index a1983655d..a1983655d 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/common/css/fluid_grid.css +++ b/src/avrdude/atmel-docs/EDBG/common/css/fluid_grid.css diff --git a/xs/src/avrdude/atmel-docs/EDBG/common/css/index.css b/src/avrdude/atmel-docs/EDBG/common/css/index.css index eb1b8c24f..eb1b8c24f 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/common/css/index.css +++ b/src/avrdude/atmel-docs/EDBG/common/css/index.css diff --git a/xs/src/avrdude/atmel-docs/EDBG/common/css/positioning.css b/src/avrdude/atmel-docs/EDBG/common/css/positioning.css index 7c9658c41..7c9658c41 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/common/css/positioning.css +++ b/src/avrdude/atmel-docs/EDBG/common/css/positioning.css diff --git a/xs/src/avrdude/atmel-docs/EDBG/common/css/print.css b/src/avrdude/atmel-docs/EDBG/common/css/print.css index a52a074e7..a52a074e7 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/common/css/print.css +++ b/src/avrdude/atmel-docs/EDBG/common/css/print.css diff --git a/xs/src/avrdude/atmel-docs/EDBG/common/css/reset.css b/src/avrdude/atmel-docs/EDBG/common/css/reset.css index 27802c681..27802c681 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/common/css/reset.css +++ b/src/avrdude/atmel-docs/EDBG/common/css/reset.css diff --git a/xs/src/avrdude/atmel-docs/EDBG/common/css/text.css b/src/avrdude/atmel-docs/EDBG/common/css/text.css index 0ef67296a..0ef67296a 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/common/css/text.css +++ b/src/avrdude/atmel-docs/EDBG/common/css/text.css diff --git a/xs/src/avrdude/atmel-docs/EDBG/common/fonts/DroidSansMono.eot b/src/avrdude/atmel-docs/EDBG/common/fonts/DroidSansMono.eot Binary files differindex e4e3d1701..e4e3d1701 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/common/fonts/DroidSansMono.eot +++ b/src/avrdude/atmel-docs/EDBG/common/fonts/DroidSansMono.eot diff --git a/xs/src/avrdude/atmel-docs/EDBG/common/fonts/DroidSansMono.ttf b/src/avrdude/atmel-docs/EDBG/common/fonts/DroidSansMono.ttf Binary files differindex 4546611d4..4546611d4 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/common/fonts/DroidSansMono.ttf +++ b/src/avrdude/atmel-docs/EDBG/common/fonts/DroidSansMono.ttf diff --git a/xs/src/avrdude/atmel-docs/EDBG/common/images/Book_Closed.png b/src/avrdude/atmel-docs/EDBG/common/images/Book_Closed.png Binary files differindex 294fbf6b0..294fbf6b0 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/common/images/Book_Closed.png +++ b/src/avrdude/atmel-docs/EDBG/common/images/Book_Closed.png diff --git a/xs/src/avrdude/atmel-docs/EDBG/common/images/Book_Open.png b/src/avrdude/atmel-docs/EDBG/common/images/Book_Open.png Binary files differindex d78710e77..d78710e77 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/common/images/Book_Open.png +++ b/src/avrdude/atmel-docs/EDBG/common/images/Book_Open.png diff --git a/xs/src/avrdude/atmel-docs/EDBG/common/images/Document_Text.png b/src/avrdude/atmel-docs/EDBG/common/images/Document_Text.png Binary files differindex 416b5380d..416b5380d 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/common/images/Document_Text.png +++ b/src/avrdude/atmel-docs/EDBG/common/images/Document_Text.png diff --git a/xs/src/avrdude/atmel-docs/EDBG/common/images/Library.png b/src/avrdude/atmel-docs/EDBG/common/images/Library.png Binary files differindex a2fa8fce4..a2fa8fce4 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/common/images/Library.png +++ b/src/avrdude/atmel-docs/EDBG/common/images/Library.png diff --git a/xs/src/avrdude/atmel-docs/EDBG/common/images/external_link.gif b/src/avrdude/atmel-docs/EDBG/common/images/external_link.gif Binary files differindex 177cbbc72..177cbbc72 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/common/images/external_link.gif +++ b/src/avrdude/atmel-docs/EDBG/common/images/external_link.gif diff --git a/xs/src/avrdude/atmel-docs/EDBG/common/images/loading.gif b/src/avrdude/atmel-docs/EDBG/common/images/loading.gif Binary files differindex 085ccaeca..085ccaeca 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/common/images/loading.gif +++ b/src/avrdude/atmel-docs/EDBG/common/images/loading.gif diff --git a/xs/src/avrdude/atmel-docs/EDBG/common/images/logo.png b/src/avrdude/atmel-docs/EDBG/common/images/logo.png Binary files differindex df85ffbeb..df85ffbeb 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/common/images/logo.png +++ b/src/avrdude/atmel-docs/EDBG/common/images/logo.png diff --git a/xs/src/avrdude/atmel-docs/EDBG/common/images/minus.png b/src/avrdude/atmel-docs/EDBG/common/images/minus.png Binary files differindex 9b5244afb..9b5244afb 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/common/images/minus.png +++ b/src/avrdude/atmel-docs/EDBG/common/images/minus.png diff --git a/xs/src/avrdude/atmel-docs/EDBG/common/images/next-arrow.png b/src/avrdude/atmel-docs/EDBG/common/images/next-arrow.png Binary files differindex db595f465..db595f465 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/common/images/next-arrow.png +++ b/src/avrdude/atmel-docs/EDBG/common/images/next-arrow.png diff --git a/xs/src/avrdude/atmel-docs/EDBG/common/images/plus.png b/src/avrdude/atmel-docs/EDBG/common/images/plus.png Binary files differindex 31010fe96..31010fe96 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/common/images/plus.png +++ b/src/avrdude/atmel-docs/EDBG/common/images/plus.png diff --git a/xs/src/avrdude/atmel-docs/EDBG/common/images/previous-arrow.png b/src/avrdude/atmel-docs/EDBG/common/images/previous-arrow.png Binary files differindex 347bc5347..347bc5347 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/common/images/previous-arrow.png +++ b/src/avrdude/atmel-docs/EDBG/common/images/previous-arrow.png diff --git a/xs/src/avrdude/atmel-docs/EDBG/common/images/search-icon.png b/src/avrdude/atmel-docs/EDBG/common/images/search-icon.png Binary files differindex 715f62d08..715f62d08 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/common/images/search-icon.png +++ b/src/avrdude/atmel-docs/EDBG/common/images/search-icon.png diff --git a/xs/src/avrdude/atmel-docs/EDBG/common/images/sidebar.png b/src/avrdude/atmel-docs/EDBG/common/images/sidebar.png Binary files differindex 549267187..549267187 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/common/images/sidebar.png +++ b/src/avrdude/atmel-docs/EDBG/common/images/sidebar.png diff --git a/xs/src/avrdude/atmel-docs/EDBG/common/images/starsSmall.png b/src/avrdude/atmel-docs/EDBG/common/images/starsSmall.png Binary files differindex 490a27b92..490a27b92 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/common/images/starsSmall.png +++ b/src/avrdude/atmel-docs/EDBG/common/images/starsSmall.png diff --git a/xs/src/avrdude/atmel-docs/EDBG/common/images/toc-icon.png b/src/avrdude/atmel-docs/EDBG/common/images/toc-icon.png Binary files differindex 40b34bce5..40b34bce5 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/common/images/toc-icon.png +++ b/src/avrdude/atmel-docs/EDBG/common/images/toc-icon.png diff --git a/xs/src/avrdude/atmel-docs/EDBG/common/images/ui-icons_217bc0_256x240.png b/src/avrdude/atmel-docs/EDBG/common/images/ui-icons_217bc0_256x240.png Binary files differindex 6f4bd87c0..6f4bd87c0 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/common/images/ui-icons_217bc0_256x240.png +++ b/src/avrdude/atmel-docs/EDBG/common/images/ui-icons_217bc0_256x240.png diff --git a/xs/src/avrdude/atmel-docs/EDBG/common/jquery/jquery-1.7.2.min.js b/src/avrdude/atmel-docs/EDBG/common/jquery/jquery-1.7.2.min.js index 93adea19f..93adea19f 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/common/jquery/jquery-1.7.2.min.js +++ b/src/avrdude/atmel-docs/EDBG/common/jquery/jquery-1.7.2.min.js diff --git a/xs/src/avrdude/atmel-docs/EDBG/common/jquery/jquery.cookie.js b/src/avrdude/atmel-docs/EDBG/common/jquery/jquery.cookie.js index bada7bff7..bada7bff7 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/common/jquery/jquery.cookie.js +++ b/src/avrdude/atmel-docs/EDBG/common/jquery/jquery.cookie.js diff --git a/xs/src/avrdude/atmel-docs/EDBG/common/jquery/jquery.ui.all.js b/src/avrdude/atmel-docs/EDBG/common/jquery/jquery.ui.all.js index 943d3b357..943d3b357 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/common/jquery/jquery.ui.all.js +++ b/src/avrdude/atmel-docs/EDBG/common/jquery/jquery.ui.all.js diff --git a/xs/src/avrdude/atmel-docs/EDBG/common/jquery/layout/jquery.layout.js b/src/avrdude/atmel-docs/EDBG/common/jquery/layout/jquery.layout.js index 0b6d9d292..0b6d9d292 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/common/jquery/layout/jquery.layout.js +++ b/src/avrdude/atmel-docs/EDBG/common/jquery/layout/jquery.layout.js diff --git a/xs/src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-anim_basic_16x16.gif b/src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-anim_basic_16x16.gif Binary files differindex 085ccaeca..085ccaeca 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-anim_basic_16x16.gif +++ b/src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-anim_basic_16x16.gif diff --git a/xs/src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-bg_flat_0_aaaaaa_40x100.png b/src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-bg_flat_0_aaaaaa_40x100.png Binary files differindex 5b5dab2ab..5b5dab2ab 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-bg_flat_0_aaaaaa_40x100.png +++ b/src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-bg_flat_0_aaaaaa_40x100.png diff --git a/xs/src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-bg_flat_55_fbec88_40x100.png b/src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-bg_flat_55_fbec88_40x100.png Binary files differindex 47acaadd7..47acaadd7 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-bg_flat_55_fbec88_40x100.png +++ b/src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-bg_flat_55_fbec88_40x100.png diff --git a/xs/src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-bg_glass_75_d0e5f5_1x400.png b/src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-bg_glass_75_d0e5f5_1x400.png Binary files differindex 9d149b1c6..9d149b1c6 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-bg_glass_75_d0e5f5_1x400.png +++ b/src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-bg_glass_75_d0e5f5_1x400.png diff --git a/xs/src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-bg_glass_85_dfeffc_1x400.png b/src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-bg_glass_85_dfeffc_1x400.png Binary files differindex 014951529..014951529 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-bg_glass_85_dfeffc_1x400.png +++ b/src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-bg_glass_85_dfeffc_1x400.png diff --git a/xs/src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-bg_glass_95_fef1ec_1x400.png b/src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-bg_glass_95_fef1ec_1x400.png Binary files differindex 4443fdc1a..4443fdc1a 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-bg_glass_95_fef1ec_1x400.png +++ b/src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-bg_glass_95_fef1ec_1x400.png diff --git a/xs/src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-bg_gloss-wave_55_5c9ccc_500x100.png b/src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-bg_gloss-wave_55_5c9ccc_500x100.png Binary files differindex 81ecc362d..81ecc362d 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-bg_gloss-wave_55_5c9ccc_500x100.png +++ b/src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-bg_gloss-wave_55_5c9ccc_500x100.png diff --git a/xs/src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-bg_inset-hard_100_f5f8f9_1x100.png b/src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-bg_inset-hard_100_f5f8f9_1x100.png Binary files differindex 4f3faf8aa..4f3faf8aa 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-bg_inset-hard_100_f5f8f9_1x100.png +++ b/src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-bg_inset-hard_100_f5f8f9_1x100.png diff --git a/xs/src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-bg_inset-hard_100_fcfdfd_1x100.png b/src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-bg_inset-hard_100_fcfdfd_1x100.png Binary files differindex 38c38335d..38c38335d 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-bg_inset-hard_100_fcfdfd_1x100.png +++ b/src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-bg_inset-hard_100_fcfdfd_1x100.png diff --git a/xs/src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-icons_217bc0_256x240.png b/src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-icons_217bc0_256x240.png Binary files differindex 6f4bd87c0..6f4bd87c0 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-icons_217bc0_256x240.png +++ b/src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-icons_217bc0_256x240.png diff --git a/xs/src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-icons_2e83ff_256x240.png b/src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-icons_2e83ff_256x240.png Binary files differindex 09d1cdc85..09d1cdc85 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-icons_2e83ff_256x240.png +++ b/src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-icons_2e83ff_256x240.png diff --git a/xs/src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-icons_469bdd_256x240.png b/src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-icons_469bdd_256x240.png Binary files differindex bd2cf079a..bd2cf079a 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-icons_469bdd_256x240.png +++ b/src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-icons_469bdd_256x240.png diff --git a/xs/src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-icons_6da8d5_256x240.png b/src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-icons_6da8d5_256x240.png Binary files differindex 3d6f567f4..3d6f567f4 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-icons_6da8d5_256x240.png +++ b/src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-icons_6da8d5_256x240.png diff --git a/xs/src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-icons_cd0a0a_256x240.png b/src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-icons_cd0a0a_256x240.png Binary files differindex 2ab019b73..2ab019b73 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-icons_cd0a0a_256x240.png +++ b/src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-icons_cd0a0a_256x240.png diff --git a/xs/src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-icons_d8e7f3_256x240.png b/src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-icons_d8e7f3_256x240.png Binary files differindex ad2dc6f9d..ad2dc6f9d 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-icons_d8e7f3_256x240.png +++ b/src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-icons_d8e7f3_256x240.png diff --git a/xs/src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-icons_f9bd01_256x240.png b/src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-icons_f9bd01_256x240.png Binary files differindex c7c53cb11..c7c53cb11 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-icons_f9bd01_256x240.png +++ b/src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/images/ui-icons_f9bd01_256x240.png diff --git a/xs/src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/jquery-ui-1.8.2.custom.css b/src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/jquery-ui-1.8.2.custom.css index 0b1736320..0b1736320 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/jquery-ui-1.8.2.custom.css +++ b/src/avrdude/atmel-docs/EDBG/common/jquery/theme-redmond/jquery-ui-1.8.2.custom.css diff --git a/xs/src/avrdude/atmel-docs/EDBG/common/jquery/treeview/images/file.gif b/src/avrdude/atmel-docs/EDBG/common/jquery/treeview/images/file.gif Binary files differindex bd4f96549..bd4f96549 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/common/jquery/treeview/images/file.gif +++ b/src/avrdude/atmel-docs/EDBG/common/jquery/treeview/images/file.gif diff --git a/xs/src/avrdude/atmel-docs/EDBG/common/jquery/treeview/images/folder-closed.gif b/src/avrdude/atmel-docs/EDBG/common/jquery/treeview/images/folder-closed.gif Binary files differindex be6b59c2b..be6b59c2b 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/common/jquery/treeview/images/folder-closed.gif +++ b/src/avrdude/atmel-docs/EDBG/common/jquery/treeview/images/folder-closed.gif diff --git a/xs/src/avrdude/atmel-docs/EDBG/common/jquery/treeview/images/folder.gif b/src/avrdude/atmel-docs/EDBG/common/jquery/treeview/images/folder.gif Binary files differindex be6b59c2b..be6b59c2b 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/common/jquery/treeview/images/folder.gif +++ b/src/avrdude/atmel-docs/EDBG/common/jquery/treeview/images/folder.gif diff --git a/xs/src/avrdude/atmel-docs/EDBG/common/jquery/treeview/images/treeview-black-line.gif b/src/avrdude/atmel-docs/EDBG/common/jquery/treeview/images/treeview-black-line.gif Binary files differindex e5496877a..e5496877a 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/common/jquery/treeview/images/treeview-black-line.gif +++ b/src/avrdude/atmel-docs/EDBG/common/jquery/treeview/images/treeview-black-line.gif diff --git a/xs/src/avrdude/atmel-docs/EDBG/common/jquery/treeview/images/treeview-black.gif b/src/avrdude/atmel-docs/EDBG/common/jquery/treeview/images/treeview-black.gif Binary files differindex d549b9fc5..d549b9fc5 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/common/jquery/treeview/images/treeview-black.gif +++ b/src/avrdude/atmel-docs/EDBG/common/jquery/treeview/images/treeview-black.gif diff --git a/xs/src/avrdude/atmel-docs/EDBG/common/jquery/treeview/images/treeview-default-line.gif b/src/avrdude/atmel-docs/EDBG/common/jquery/treeview/images/treeview-default-line.gif Binary files differindex 37114d306..37114d306 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/common/jquery/treeview/images/treeview-default-line.gif +++ b/src/avrdude/atmel-docs/EDBG/common/jquery/treeview/images/treeview-default-line.gif diff --git a/xs/src/avrdude/atmel-docs/EDBG/common/jquery/treeview/images/treeview-default.gif b/src/avrdude/atmel-docs/EDBG/common/jquery/treeview/images/treeview-default.gif Binary files differindex a12ac52ff..a12ac52ff 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/common/jquery/treeview/images/treeview-default.gif +++ b/src/avrdude/atmel-docs/EDBG/common/jquery/treeview/images/treeview-default.gif diff --git a/xs/src/avrdude/atmel-docs/EDBG/common/jquery/treeview/images/treeview-famfamfam-line.gif b/src/avrdude/atmel-docs/EDBG/common/jquery/treeview/images/treeview-famfamfam-line.gif Binary files differindex 6e289cecc..6e289cecc 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/common/jquery/treeview/images/treeview-famfamfam-line.gif +++ b/src/avrdude/atmel-docs/EDBG/common/jquery/treeview/images/treeview-famfamfam-line.gif diff --git a/xs/src/avrdude/atmel-docs/EDBG/common/jquery/treeview/images/treeview-famfamfam.gif b/src/avrdude/atmel-docs/EDBG/common/jquery/treeview/images/treeview-famfamfam.gif Binary files differindex 0cb178e89..0cb178e89 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/common/jquery/treeview/images/treeview-famfamfam.gif +++ b/src/avrdude/atmel-docs/EDBG/common/jquery/treeview/images/treeview-famfamfam.gif diff --git a/xs/src/avrdude/atmel-docs/EDBG/common/jquery/treeview/images/treeview-gray-line.gif b/src/avrdude/atmel-docs/EDBG/common/jquery/treeview/images/treeview-gray-line.gif Binary files differindex 37600447d..37600447d 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/common/jquery/treeview/images/treeview-gray-line.gif +++ b/src/avrdude/atmel-docs/EDBG/common/jquery/treeview/images/treeview-gray-line.gif diff --git a/xs/src/avrdude/atmel-docs/EDBG/common/jquery/treeview/images/treeview-gray.gif b/src/avrdude/atmel-docs/EDBG/common/jquery/treeview/images/treeview-gray.gif Binary files differindex cfb8a2f09..cfb8a2f09 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/common/jquery/treeview/images/treeview-gray.gif +++ b/src/avrdude/atmel-docs/EDBG/common/jquery/treeview/images/treeview-gray.gif diff --git a/xs/src/avrdude/atmel-docs/EDBG/common/jquery/treeview/images/treeview-red-line.gif b/src/avrdude/atmel-docs/EDBG/common/jquery/treeview/images/treeview-red-line.gif Binary files differindex df9e749a8..df9e749a8 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/common/jquery/treeview/images/treeview-red-line.gif +++ b/src/avrdude/atmel-docs/EDBG/common/jquery/treeview/images/treeview-red-line.gif diff --git a/xs/src/avrdude/atmel-docs/EDBG/common/jquery/treeview/images/treeview-red.gif b/src/avrdude/atmel-docs/EDBG/common/jquery/treeview/images/treeview-red.gif Binary files differindex 3bbb3a157..3bbb3a157 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/common/jquery/treeview/images/treeview-red.gif +++ b/src/avrdude/atmel-docs/EDBG/common/jquery/treeview/images/treeview-red.gif diff --git a/xs/src/avrdude/atmel-docs/EDBG/common/jquery/treeview/jquery.treeview.css b/src/avrdude/atmel-docs/EDBG/common/jquery/treeview/jquery.treeview.css index d7e2c002a..d7e2c002a 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/common/jquery/treeview/jquery.treeview.css +++ b/src/avrdude/atmel-docs/EDBG/common/jquery/treeview/jquery.treeview.css diff --git a/xs/src/avrdude/atmel-docs/EDBG/common/jquery/treeview/jquery.treeview.min.js b/src/avrdude/atmel-docs/EDBG/common/jquery/treeview/jquery.treeview.min.js index f9b490d3e..f9b490d3e 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/common/jquery/treeview/jquery.treeview.min.js +++ b/src/avrdude/atmel-docs/EDBG/common/jquery/treeview/jquery.treeview.min.js diff --git a/xs/src/avrdude/atmel-docs/EDBG/common/main.js b/src/avrdude/atmel-docs/EDBG/common/main.js index 96b6a86c6..96b6a86c6 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/common/main.js +++ b/src/avrdude/atmel-docs/EDBG/common/main.js diff --git a/xs/src/avrdude/atmel-docs/EDBG/common/splitterInit.js b/src/avrdude/atmel-docs/EDBG/common/splitterInit.js index 090b81485..090b81485 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/common/splitterInit.js +++ b/src/avrdude/atmel-docs/EDBG/common/splitterInit.js diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch01s01.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch01s01.html index 470b46f0e..470b46f0e 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch01s01.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch01s01.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch01s02.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch01s02.html index d59bf2d5e..d59bf2d5e 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch01s02.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch01s02.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s01.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s01.html index 234c40886..234c40886 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s01.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s01.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s02.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s02.html index 1ae5aac6a..1ae5aac6a 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s02.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s02.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s02s01.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s02s01.html index ab2191d46..ab2191d46 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s02s01.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s02s01.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s02s02.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s02s02.html index 0396afd8b..0396afd8b 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s02s02.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s02s02.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s02s02s01.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s02s02s01.html index 94e442177..94e442177 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s02s02s01.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s02s02s01.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s02s02s02.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s02s02s02.html index 443f008f0..443f008f0 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s02s02s02.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s02s02s02.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s02s03.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s02s03.html index ce86f07b8..ce86f07b8 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s02s03.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s02s03.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s02s03s01.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s02s03s01.html index 666fa6f3b..666fa6f3b 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s02s03s01.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s02s03s01.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s02s03s02.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s02s03s02.html index f513f9656..f513f9656 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s02s03s02.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s02s03s02.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s02s03s03.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s02s03s03.html index feb2e2aff..feb2e2aff 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s02s03s03.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s02s03s03.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s02s03s04.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s02s03s04.html index 0ad83b637..0ad83b637 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s02s03s04.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s02s03s04.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s03s01.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s03s01.html index 69c34b0a0..69c34b0a0 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s03s01.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s03s01.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s03s02.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s03s02.html index df5f82436..df5f82436 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s03s02.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s03s02.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s03s03.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s03s03.html index 60e231822..60e231822 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s03s03.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s03s03.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s03s04.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s03s04.html index ca57b115e..ca57b115e 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s03s04.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s03s04.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s03s05.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s03s05.html index 8fdf2a10a..8fdf2a10a 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s03s05.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s03s05.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s03s06.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s03s06.html index b18020202..b18020202 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s03s06.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s03s06.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s03s07.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s03s07.html index 3f894396e..3f894396e 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s03s07.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s03s07.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s03s08.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s03s08.html index 01fda3281..01fda3281 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s03s08.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s03s08.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s03s09.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s03s09.html index 7508ace3f..7508ace3f 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s03s09.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s03s09.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s04.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s04.html index 7f0e6c37a..7f0e6c37a 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s04.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s04.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s04s01.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s04s01.html index 410b1cd2d..410b1cd2d 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s04s01.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s04s01.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s04s02.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s04s02.html index 16c752df3..16c752df3 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s04s02.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s04s02.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s04s03.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s04s03.html index 012c91dcb..012c91dcb 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s04s03.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch02s04s03.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch03s01.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch03s01.html index 6bd694495..6bd694495 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch03s01.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch03s01.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch03s01s01.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch03s01s01.html index 1a5e37f0a..1a5e37f0a 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch03s01s01.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch03s01s01.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch03s01s02.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch03s01s02.html index dbb58ccee..dbb58ccee 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch03s01s02.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch03s01s02.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch03s01s03.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch03s01s03.html index 04fb2403d..04fb2403d 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch03s01s03.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch03s01s03.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch03s01s03s01.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch03s01s03s01.html index 37174b6cc..37174b6cc 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch03s01s03s01.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch03s01s03s01.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch03s02.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch03s02.html index 2716e63a4..2716e63a4 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch03s02.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch03s02.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch03s02s01.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch03s02s01.html index 11e766ec2..11e766ec2 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch03s02s01.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch03s02s01.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch03s02s02.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch03s02s02.html index fee95a4d4..fee95a4d4 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch03s02s02.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch03s02s02.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch03s02s03.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch03s02s03.html index a5f5ea0ae..a5f5ea0ae 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch03s02s03.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch03s02s03.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch03s02s04.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch03s02s04.html index be4e8e65a..be4e8e65a 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch03s02s04.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch03s02s04.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s01.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s01.html index 661b07998..661b07998 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s01.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s01.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s02.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s02.html index 928910efc..928910efc 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s02.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s02.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s03.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s03.html index 4fd01391c..4fd01391c 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s03.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s03.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s04.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s04.html index 0a5ee21bf..0a5ee21bf 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s04.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s04.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s04s01.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s04s01.html index 5604043c7..5604043c7 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s04s01.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s04s01.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s04s03.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s04s03.html index c2eb3844f..c2eb3844f 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s04s03.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s04s03.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s04s04.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s04s04.html index 0dc44a78d..0dc44a78d 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s04s04.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s04s04.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s04s05.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s04s05.html index 6b10f7ebe..6b10f7ebe 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s04s05.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s04s05.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05.html index 70efa405c..70efa405c 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s01.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s01.html index 3f46ac85c..3f46ac85c 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s01.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s01.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s03.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s03.html index 713c57c0c..713c57c0c 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s03.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s03.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s04.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s04.html index adb176dd9..adb176dd9 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s04.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s04.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s06.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s06.html index 254c04931..254c04931 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s06.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s06.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s06s02.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s06s02.html index 9a01e3c48..9a01e3c48 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s06s02.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s06s02.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s06s03.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s06s03.html index 8278b2627..8278b2627 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s06s03.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s06s03.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s06s04.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s06s04.html index 75f289697..75f289697 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s06s04.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s06s04.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s06s05.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s06s05.html index 3bf798fb6..3bf798fb6 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s06s05.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s06s05.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s07.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s07.html index df1d7fef4..df1d7fef4 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s07.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s07.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s07s01.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s07s01.html index ddd7e13ed..ddd7e13ed 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s07s01.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s07s01.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s07s02.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s07s02.html index 1f18a73d0..1f18a73d0 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s07s02.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s07s02.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s07s03.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s07s03.html index 92b8b3f50..92b8b3f50 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s07s03.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s07s03.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s07s04.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s07s04.html index 19fc5eb04..19fc5eb04 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s07s04.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s07s04.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s08.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s08.html index f0efdf9b8..f0efdf9b8 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s08.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s08.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s08s01.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s08s01.html index 91fbfb8ed..91fbfb8ed 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s08s01.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s08s01.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s08s02.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s08s02.html index 395e3a4ae..395e3a4ae 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s08s02.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s08s02.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s08s03.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s08s03.html index 128c2b8c8..128c2b8c8 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s08s03.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s08s03.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s09.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s09.html index 3588ca655..3588ca655 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s09.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s09.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s10.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s10.html index 80f23e797..80f23e797 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s10.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch04s05s10.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01.html index 3cb080a26..3cb080a26 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s01.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s01.html index 4e07d5716..4e07d5716 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s01.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s01.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s02.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s02.html index 51d7f260d..51d7f260d 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s02.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s02.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s03.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s03.html index 0a8ae1f5a..0a8ae1f5a 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s03.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s03.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s04.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s04.html index aa8419adc..aa8419adc 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s04.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s04.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s05.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s05.html index 53c5b4661..53c5b4661 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s05.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s05.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s06.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s06.html index 7cd708933..7cd708933 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s06.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s06.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s07.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s07.html index 0c8fd69cf..0c8fd69cf 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s07.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s07.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s08.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s08.html index 33458079f..33458079f 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s08.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s08.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s09.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s09.html index 5b1a92485..5b1a92485 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s09.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s09.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s10.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s10.html index c34fdc8f9..c34fdc8f9 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s10.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s10.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s11.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s11.html index d0e20a1f4..d0e20a1f4 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s11.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s11.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s12.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s12.html index 9a083c7fc..9a083c7fc 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s12.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s12.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s13.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s13.html index d7f9e2899..d7f9e2899 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s13.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s13.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s14.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s14.html index 07d724a3b..07d724a3b 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s14.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s14.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s15.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s15.html index 75d4fc8ea..75d4fc8ea 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s15.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s01s15.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s02.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s02.html index d7ecd1244..d7ecd1244 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s02.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s02.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s02s01.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s02s01.html index ca3957a18..ca3957a18 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s02s01.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s02s01.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s02s02.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s02s02.html index 53534183b..53534183b 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s02s02.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s02s02.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s02s03.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s02s03.html index cc729e727..cc729e727 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s02s03.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s02s03.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s02s04.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s02s04.html index be920ef5d..be920ef5d 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s02s04.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s02s04.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s02s05.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s02s05.html index a08bf7070..a08bf7070 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s02s05.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s02s05.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s02s06.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s02s06.html index 6f64eee57..6f64eee57 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s02s06.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s02s06.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s03.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s03.html index 7d02558fa..7d02558fa 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s03.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s03.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s03s01.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s03s01.html index 0097735a7..0097735a7 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s03s01.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s03s01.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s03s02.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s03s02.html index 635e4d02c..635e4d02c 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s03s02.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s03s02.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s03s03.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s03s03.html index 88856f5b8..88856f5b8 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s03s03.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s03s03.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s04.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s04.html index 4294de672..4294de672 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s04.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch05s04.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01.html index e1c6693ce..e1c6693ce 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s01.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s01.html index 160dad9d2..160dad9d2 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s01.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s01.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s02.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s02.html index 566a0e63f..566a0e63f 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s02.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s02.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s03.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s03.html index b93f1df0d..b93f1df0d 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s03.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s03.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s04.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s04.html index 4bb7f0dec..4bb7f0dec 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s04.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s04.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s05.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s05.html index 91c248e1a..91c248e1a 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s05.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s05.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s06.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s06.html index f6d33e77b..f6d33e77b 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s06.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s06.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s07.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s07.html index a315297c1..a315297c1 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s07.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s07.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s08.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s08.html index e72779d9b..e72779d9b 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s08.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s08.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s09.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s09.html index d2fc1967d..d2fc1967d 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s09.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s09.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s10.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s10.html index d3f4e9525..d3f4e9525 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s10.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s10.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s11.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s11.html index 9838850fb..9838850fb 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s11.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s11.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s12.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s12.html index 3c82c435c..3c82c435c 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s12.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s12.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s13.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s13.html index 361df065f..361df065f 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s13.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s13.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s14.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s14.html index ea3525247..ea3525247 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s14.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s14.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s15.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s15.html index c9c76a1f0..c9c76a1f0 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s15.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s15.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s16.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s16.html index fe394e6ba..fe394e6ba 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s16.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s16.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s17.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s17.html index 939388d18..939388d18 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s17.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s17.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s18.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s18.html index 64ff30f74..64ff30f74 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s18.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s18.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s19.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s19.html index 48853cb9b..48853cb9b 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s19.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s19.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s20.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s20.html index 0be622a45..0be622a45 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s20.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s20.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s21.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s21.html index a7d6b7d95..a7d6b7d95 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s21.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s21.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s22.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s22.html index 857cfaeb8..857cfaeb8 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s22.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s22.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s23.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s23.html index 66ef8e9e8..66ef8e9e8 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s23.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s23.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s24.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s24.html index 08ac0851d..08ac0851d 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s24.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s24.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s25.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s25.html index ffcd1f490..ffcd1f490 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s25.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s25.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s26.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s26.html index 568f099f5..568f099f5 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s26.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s26.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s27.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s27.html index 3567113c7..3567113c7 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s27.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s27.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s28.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s28.html index 90793d9e6..90793d9e6 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s28.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s28.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s29.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s29.html index 05c04de12..05c04de12 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s29.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s01s29.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s02.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s02.html index 762bf9846..762bf9846 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s02.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s02.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s02s01.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s02s01.html index 25b97f941..25b97f941 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s02s01.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s02s01.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s02s02.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s02s02.html index 0004271e5..0004271e5 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s02s02.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s02s02.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s02s03.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s02s03.html index bac30cb2f..bac30cb2f 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s02s03.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s02s03.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s02s04.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s02s04.html index 8ac473d49..8ac473d49 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s02s04.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s02s04.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s02s05.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s02s05.html index 0d39d303b..0d39d303b 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s02s05.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s02s05.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s03.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s03.html index 1dd6d123a..1dd6d123a 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s03.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s03.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s03s01.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s03s01.html index 0381d127f..0381d127f 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s03s01.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s03s01.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s03s02.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s03s02.html index fbd7f8852..fbd7f8852 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s03s02.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s03s02.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s04s01.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s04s01.html index 6be4d4417..6be4d4417 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s04s01.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s04s01.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s04s02.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s04s02.html index 9437fc24a..9437fc24a 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s04s02.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s04s02.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s04s03.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s04s03.html index 908842f76..908842f76 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s04s03.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s04s03.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s05.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s05.html index 698298a23..698298a23 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s05.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s05.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s05s01.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s05s01.html index a44f60f4b..a44f60f4b 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s05s01.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s05s01.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s05s02.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s05s02.html index f6077325d..f6077325d 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s05s02.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s05s02.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s05s03.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s05s03.html index 3ac632e84..3ac632e84 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s05s03.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s05s03.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s05s04.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s05s04.html index a68ec01e3..a68ec01e3 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s05s04.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s05s04.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s05s05.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s05s05.html index cbbca98bd..cbbca98bd 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s05s05.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s05s05.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s06.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s06.html index 237404283..237404283 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s06.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch06s06.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01.html index 979b8fb37..979b8fb37 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s01.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s01.html index 70756cf66..70756cf66 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s01.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s01.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s02.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s02.html index 3f9e3a398..3f9e3a398 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s02.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s02.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s03.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s03.html index 64b8e2452..64b8e2452 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s03.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s03.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s04.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s04.html index be105b8c2..be105b8c2 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s04.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s04.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s05.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s05.html index 5355bee9f..5355bee9f 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s05.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s05.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s06.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s06.html index 9fef3f72b..9fef3f72b 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s06.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s06.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s07.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s07.html index ad752fcee..ad752fcee 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s07.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s07.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s08.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s08.html index 4f76886e8..4f76886e8 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s08.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s08.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s09.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s09.html index 8baeae716..8baeae716 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s09.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s09.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s10.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s10.html index 38bf91143..38bf91143 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s10.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s10.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s11.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s11.html index 5044b87fc..5044b87fc 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s11.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s11.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s12.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s12.html index d36aeaf66..d36aeaf66 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s12.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s12.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s13.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s13.html index 5d314e462..5d314e462 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s13.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s13.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s14.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s14.html index 98dc07000..98dc07000 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s14.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s14.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s15.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s15.html index b116fcda6..b116fcda6 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s15.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s15.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s16.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s16.html index fdc2d8ece..fdc2d8ece 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s16.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s16.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s17.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s17.html index e0a212842..e0a212842 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s17.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s01s17.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s02.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s02.html index 6dc0922fd..6dc0922fd 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s02.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s02.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s03.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s03.html index 080363476..080363476 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s03.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch07s03.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch08s01.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch08s01.html index cffed6d67..cffed6d67 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch08s01.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch08s01.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch08s01s01.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch08s01s01.html index 896cd5abd..896cd5abd 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch08s01s01.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch08s01s01.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch08s01s02.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch08s01s02.html index b3aaba663..b3aaba663 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch08s01s02.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch08s01s02.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch08s01s03.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch08s01s03.html index 48757b5d2..48757b5d2 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch08s01s03.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch08s01s03.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch08s01s04.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch08s01s04.html index fc6f8a8ae..fc6f8a8ae 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch08s01s04.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch08s01s04.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch08s01s05.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch08s01s05.html index fe082b12c..fe082b12c 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch08s01s05.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch08s01s05.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch08s01s06.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch08s01s06.html index dbcda2ca7..dbcda2ca7 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch08s01s06.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch08s01s06.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch08s02.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch08s02.html index 0b1a19b5f..0b1a19b5f 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch08s02.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch08s02.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch08s03.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch08s03.html index fb6afa569..fb6afa569 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch08s03.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/ch08s03.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/document.revisions.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/document.revisions.html index 5e2418811..5e2418811 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/document.revisions.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/document.revisions.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/index.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/index.html index 7d4c0901c..7d4c0901c 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/index.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/index.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/pr01.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/pr01.html index 53f993d3f..53f993d3f 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/pr01.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/pr01.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/protocoldocs.Introduction.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/protocoldocs.Introduction.html index c0ff81420..c0ff81420 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/protocoldocs.Introduction.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/protocoldocs.Introduction.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/protocoldocs.avr32protocol.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/protocoldocs.avr32protocol.html index e5f43a972..e5f43a972 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/protocoldocs.avr32protocol.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/protocoldocs.avr32protocol.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/protocoldocs.avr8protocol.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/protocoldocs.avr8protocol.html index a93a23c7f..a93a23c7f 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/protocoldocs.avr8protocol.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/protocoldocs.avr8protocol.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/protocoldocs.avrispprotocol.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/protocoldocs.avrispprotocol.html index 660b1e669..660b1e669 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/protocoldocs.avrispprotocol.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/protocoldocs.avrispprotocol.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/protocoldocs.avrprotocol.Overview.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/protocoldocs.avrprotocol.Overview.html index 599ac4895..599ac4895 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/protocoldocs.avrprotocol.Overview.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/protocoldocs.avrprotocol.Overview.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/protocoldocs.cmsis_dap.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/protocoldocs.cmsis_dap.html index 828c6d2e7..828c6d2e7 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/protocoldocs.cmsis_dap.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/protocoldocs.cmsis_dap.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/protocoldocs.edbg_ctrl_protocol.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/protocoldocs.edbg_ctrl_protocol.html index 5d8211df7..5d8211df7 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/protocoldocs.edbg_ctrl_protocol.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/protocoldocs.edbg_ctrl_protocol.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/protocoldocs.tpiprotocol.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/protocoldocs.tpiprotocol.html index 442c2b337..442c2b337 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/protocoldocs.tpiprotocol.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/protocoldocs.tpiprotocol.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/search/htmlFileInfoList.js b/src/avrdude/atmel-docs/EDBG/protocoldocs/search/htmlFileInfoList.js index d1d8fbc2c..d1d8fbc2c 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/search/htmlFileInfoList.js +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/search/htmlFileInfoList.js diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/search/index-1.js b/src/avrdude/atmel-docs/EDBG/protocoldocs/search/index-1.js index c708ea8c9..c708ea8c9 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/search/index-1.js +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/search/index-1.js diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/search/index-2.js b/src/avrdude/atmel-docs/EDBG/protocoldocs/search/index-2.js index b929f20ac..b929f20ac 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/search/index-2.js +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/search/index-2.js diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/search/index-3.js b/src/avrdude/atmel-docs/EDBG/protocoldocs/search/index-3.js index 88d71a25a..88d71a25a 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/search/index-3.js +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/search/index-3.js diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/search/l10n.js b/src/avrdude/atmel-docs/EDBG/protocoldocs/search/l10n.js index 3147f961f..3147f961f 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/search/l10n.js +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/search/l10n.js diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/search/nwSearchFnt.js b/src/avrdude/atmel-docs/EDBG/protocoldocs/search/nwSearchFnt.js index bf4aa3fd2..bf4aa3fd2 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/search/nwSearchFnt.js +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/search/nwSearchFnt.js diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/search/stemmers/en_stemmer.js b/src/avrdude/atmel-docs/EDBG/protocoldocs/search/stemmers/en_stemmer.js index 2117c1bfb..2117c1bfb 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/search/stemmers/en_stemmer.js +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/search/stemmers/en_stemmer.js diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/section_avr32_memtypes.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/section_avr32_memtypes.html index 2020681c5..2020681c5 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/section_avr32_memtypes.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/section_avr32_memtypes.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/section_avr32_setget_params.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/section_avr32_setget_params.html index ba0618af9..ba0618af9 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/section_avr32_setget_params.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/section_avr32_setget_params.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/section_avr8_memtypes.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/section_avr8_memtypes.html index e2c655212..e2c655212 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/section_avr8_memtypes.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/section_avr8_memtypes.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/section_avr8_query_contexts.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/section_avr8_query_contexts.html index cd053c49e..cd053c49e 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/section_avr8_query_contexts.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/section_avr8_query_contexts.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/section_avr8_setget_params.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/section_avr8_setget_params.html index 50639ee46..50639ee46 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/section_avr8_setget_params.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/section_avr8_setget_params.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/section_edbg_ctrl_setget_params.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/section_edbg_ctrl_setget_params.html index 26e6e639e..26e6e639e 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/section_edbg_ctrl_setget_params.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/section_edbg_ctrl_setget_params.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/section_edbg_query_contexts.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/section_edbg_query_contexts.html index e533d16ad..e533d16ad 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/section_edbg_query_contexts.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/section_edbg_query_contexts.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/section_housekeeping_start_session.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/section_housekeeping_start_session.html index 0bafe24d8..0bafe24d8 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/section_housekeeping_start_session.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/section_housekeeping_start_session.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/section_i5v_3yz_rl.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/section_i5v_3yz_rl.html index 370df774d..370df774d 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/section_i5v_3yz_rl.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/section_i5v_3yz_rl.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/section_jdx_m11_sl.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/section_jdx_m11_sl.html index 0f51f8c43..0f51f8c43 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/section_jdx_m11_sl.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/section_jdx_m11_sl.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/section_qhb_x1c_sl.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/section_qhb_x1c_sl.html index 02f90b827..02f90b827 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/section_qhb_x1c_sl.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/section_qhb_x1c_sl.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/section_serial_trace.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/section_serial_trace.html index 9067bd286..9067bd286 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/section_serial_trace.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/section_serial_trace.html diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/section_t1f_hb1_sl.html b/src/avrdude/atmel-docs/EDBG/protocoldocs/section_t1f_hb1_sl.html index a5a163146..a5a163146 100644 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/section_t1f_hb1_sl.html +++ b/src/avrdude/atmel-docs/EDBG/protocoldocs/section_t1f_hb1_sl.html diff --git a/xs/src/avrdude/atmel-docs/JTAGICE-AVR060.pdf b/src/avrdude/atmel-docs/JTAGICE-AVR060.pdf Binary files differindex 1b4cac8a9..1b4cac8a9 100644 --- a/xs/src/avrdude/atmel-docs/JTAGICE-AVR060.pdf +++ b/src/avrdude/atmel-docs/JTAGICE-AVR060.pdf diff --git a/xs/src/avrdude/atmel-docs/JTAGICEmkII-AVR067.pdf b/src/avrdude/atmel-docs/JTAGICEmkII-AVR067.pdf Binary files differindex c72ccde8a..c72ccde8a 100644 --- a/xs/src/avrdude/atmel-docs/JTAGICEmkII-AVR067.pdf +++ b/src/avrdude/atmel-docs/JTAGICEmkII-AVR067.pdf diff --git a/xs/src/avrdude/atmel-docs/STK500-AVR061.pdf b/src/avrdude/atmel-docs/STK500-AVR061.pdf Binary files differindex 03e0ddf6b..03e0ddf6b 100644 --- a/xs/src/avrdude/atmel-docs/STK500-AVR061.pdf +++ b/src/avrdude/atmel-docs/STK500-AVR061.pdf diff --git a/xs/src/avrdude/atmel-docs/STK500v2-AVR068.pdf b/src/avrdude/atmel-docs/STK500v2-AVR068.pdf Binary files differindex 1a8485655..1a8485655 100644 --- a/xs/src/avrdude/atmel-docs/STK500v2-AVR068.pdf +++ b/src/avrdude/atmel-docs/STK500v2-AVR068.pdf diff --git a/xs/src/avrdude/avr.c b/src/avrdude/avr.c index 73dcaf4ff..73dcaf4ff 100644 --- a/xs/src/avrdude/avr.c +++ b/src/avrdude/avr.c diff --git a/xs/src/avrdude/avr910.c b/src/avrdude/avr910.c index aa5cc07a9..aa5cc07a9 100644 --- a/xs/src/avrdude/avr910.c +++ b/src/avrdude/avr910.c diff --git a/xs/src/avrdude/avr910.h b/src/avrdude/avr910.h index 808f7e68f..808f7e68f 100644 --- a/xs/src/avrdude/avr910.h +++ b/src/avrdude/avr910.h diff --git a/xs/src/avrdude/avrdude-slic3r.cpp b/src/avrdude/avrdude-slic3r.cpp index 3037f5284..3037f5284 100644 --- a/xs/src/avrdude/avrdude-slic3r.cpp +++ b/src/avrdude/avrdude-slic3r.cpp diff --git a/xs/src/avrdude/avrdude-slic3r.hpp b/src/avrdude/avrdude-slic3r.hpp index 754e1e345..754e1e345 100644 --- a/xs/src/avrdude/avrdude-slic3r.hpp +++ b/src/avrdude/avrdude-slic3r.hpp diff --git a/xs/src/avrdude/avrdude.1 b/src/avrdude/avrdude.1 index 65fc7b1d6..65fc7b1d6 100644 --- a/xs/src/avrdude/avrdude.1 +++ b/src/avrdude/avrdude.1 diff --git a/xs/src/avrdude/avrdude.conf b/src/avrdude/avrdude.conf index 991a1dcee..991a1dcee 100644 --- a/xs/src/avrdude/avrdude.conf +++ b/src/avrdude/avrdude.conf diff --git a/xs/src/avrdude/avrdude.conf.in b/src/avrdude/avrdude.conf.in index b247e5225..b247e5225 100644 --- a/xs/src/avrdude/avrdude.conf.in +++ b/src/avrdude/avrdude.conf.in diff --git a/xs/src/avrdude/avrdude.conf.tmp b/src/avrdude/avrdude.conf.tmp index 82c73afa2..82c73afa2 100644 --- a/xs/src/avrdude/avrdude.conf.tmp +++ b/src/avrdude/avrdude.conf.tmp diff --git a/xs/src/avrdude/avrdude.h b/src/avrdude/avrdude.h index f4c92a75d..f4c92a75d 100644 --- a/xs/src/avrdude/avrdude.h +++ b/src/avrdude/avrdude.h diff --git a/xs/src/avrdude/avrdude.spec.in b/src/avrdude/avrdude.spec.in index ff9879f6f..ff9879f6f 100644 --- a/xs/src/avrdude/avrdude.spec.in +++ b/src/avrdude/avrdude.spec.in diff --git a/xs/src/avrdude/avrftdi.c b/src/avrdude/avrftdi.c index 29d10332a..29d10332a 100644 --- a/xs/src/avrdude/avrftdi.c +++ b/src/avrdude/avrftdi.c diff --git a/xs/src/avrdude/avrftdi.h b/src/avrdude/avrftdi.h index af3233528..af3233528 100644 --- a/xs/src/avrdude/avrftdi.h +++ b/src/avrdude/avrftdi.h diff --git a/xs/src/avrdude/avrftdi_private.h b/src/avrdude/avrftdi_private.h index e89d250e7..e89d250e7 100644 --- a/xs/src/avrdude/avrftdi_private.h +++ b/src/avrdude/avrftdi_private.h diff --git a/xs/src/avrdude/avrftdi_tpi.c b/src/avrdude/avrftdi_tpi.c index d82444e89..d82444e89 100644 --- a/xs/src/avrdude/avrftdi_tpi.c +++ b/src/avrdude/avrftdi_tpi.c diff --git a/xs/src/avrdude/avrftdi_tpi.h b/src/avrdude/avrftdi_tpi.h index 6082a379d..6082a379d 100644 --- a/xs/src/avrdude/avrftdi_tpi.h +++ b/src/avrdude/avrftdi_tpi.h diff --git a/xs/src/avrdude/avrpart.c b/src/avrdude/avrpart.c index d0bb951ee..d0bb951ee 100644 --- a/xs/src/avrdude/avrpart.c +++ b/src/avrdude/avrpart.c diff --git a/xs/src/avrdude/bitbang.c b/src/avrdude/bitbang.c index b943c3cea..b943c3cea 100644 --- a/xs/src/avrdude/bitbang.c +++ b/src/avrdude/bitbang.c diff --git a/xs/src/avrdude/bitbang.h b/src/avrdude/bitbang.h index 300f52fd5..300f52fd5 100644 --- a/xs/src/avrdude/bitbang.h +++ b/src/avrdude/bitbang.h diff --git a/xs/src/avrdude/bootstrap b/src/avrdude/bootstrap index 0c1f84cc7..0c1f84cc7 100755..100644 --- a/xs/src/avrdude/bootstrap +++ b/src/avrdude/bootstrap diff --git a/xs/src/avrdude/buspirate.c b/src/avrdude/buspirate.c index 5875d4283..5875d4283 100644 --- a/xs/src/avrdude/buspirate.c +++ b/src/avrdude/buspirate.c diff --git a/xs/src/avrdude/buspirate.h b/src/avrdude/buspirate.h index 835334a20..835334a20 100644 --- a/xs/src/avrdude/buspirate.h +++ b/src/avrdude/buspirate.h diff --git a/xs/src/avrdude/butterfly.c b/src/avrdude/butterfly.c index beb5e04de..beb5e04de 100644 --- a/xs/src/avrdude/butterfly.c +++ b/src/avrdude/butterfly.c diff --git a/xs/src/avrdude/butterfly.h b/src/avrdude/butterfly.h index 6f6a54c84..6f6a54c84 100644 --- a/xs/src/avrdude/butterfly.h +++ b/src/avrdude/butterfly.h diff --git a/xs/src/avrdude/config.c b/src/avrdude/config.c index 08193cfc5..08193cfc5 100644 --- a/xs/src/avrdude/config.c +++ b/src/avrdude/config.c diff --git a/xs/src/avrdude/config.h b/src/avrdude/config.h index d0d65ae20..d0d65ae20 100644 --- a/xs/src/avrdude/config.h +++ b/src/avrdude/config.h diff --git a/xs/src/avrdude/config_gram.c b/src/avrdude/config_gram.c index c1a65b13e..c1a65b13e 100644 --- a/xs/src/avrdude/config_gram.c +++ b/src/avrdude/config_gram.c diff --git a/xs/src/avrdude/config_gram.h b/src/avrdude/config_gram.h index 036d67ebe..036d67ebe 100644 --- a/xs/src/avrdude/config_gram.h +++ b/src/avrdude/config_gram.h diff --git a/xs/src/avrdude/config_gram.y b/src/avrdude/config_gram.y index 0aa95a8e8..0aa95a8e8 100644 --- a/xs/src/avrdude/config_gram.y +++ b/src/avrdude/config_gram.y diff --git a/xs/src/avrdude/configure.ac b/src/avrdude/configure.ac index a23a959f2..a23a959f2 100644 --- a/xs/src/avrdude/configure.ac +++ b/src/avrdude/configure.ac diff --git a/xs/src/avrdude/confwin.c b/src/avrdude/confwin.c index 95446156d..95446156d 100644 --- a/xs/src/avrdude/confwin.c +++ b/src/avrdude/confwin.c diff --git a/xs/src/avrdude/crc16.c b/src/avrdude/crc16.c index 0177c9dab..0177c9dab 100644 --- a/xs/src/avrdude/crc16.c +++ b/src/avrdude/crc16.c diff --git a/xs/src/avrdude/crc16.h b/src/avrdude/crc16.h index db10131de..db10131de 100644 --- a/xs/src/avrdude/crc16.h +++ b/src/avrdude/crc16.h diff --git a/xs/src/avrdude/dfu.c b/src/avrdude/dfu.c index 8e014e3c0..8e014e3c0 100644 --- a/xs/src/avrdude/dfu.c +++ b/src/avrdude/dfu.c diff --git a/xs/src/avrdude/dfu.h b/src/avrdude/dfu.h index 020a75f2e..020a75f2e 100644 --- a/xs/src/avrdude/dfu.h +++ b/src/avrdude/dfu.h diff --git a/xs/src/avrdude/doc/.cvsignore b/src/avrdude/doc/.cvsignore index afe95fe92..afe95fe92 100644 --- a/xs/src/avrdude/doc/.cvsignore +++ b/src/avrdude/doc/.cvsignore diff --git a/xs/src/avrdude/doc/Makefile.am b/src/avrdude/doc/Makefile.am index bee799f74..bee799f74 100644 --- a/xs/src/avrdude/doc/Makefile.am +++ b/src/avrdude/doc/Makefile.am diff --git a/xs/src/avrdude/doc/TODO b/src/avrdude/doc/TODO index 6c57c5ade..6c57c5ade 100644 --- a/xs/src/avrdude/doc/TODO +++ b/src/avrdude/doc/TODO diff --git a/xs/src/avrdude/doc/avrdude.texi b/src/avrdude/doc/avrdude.texi index 6941389df..6941389df 100644 --- a/xs/src/avrdude/doc/avrdude.texi +++ b/src/avrdude/doc/avrdude.texi diff --git a/xs/src/avrdude/doc/parts_comments.txt b/src/avrdude/doc/parts_comments.txt index d83bb4312..d83bb4312 100644 --- a/xs/src/avrdude/doc/parts_comments.txt +++ b/src/avrdude/doc/parts_comments.txt diff --git a/xs/src/avrdude/fileio.c b/src/avrdude/fileio.c index 708159295..708159295 100644 --- a/xs/src/avrdude/fileio.c +++ b/src/avrdude/fileio.c diff --git a/xs/src/avrdude/flip1.c b/src/avrdude/flip1.c index 220a94266..220a94266 100644 --- a/xs/src/avrdude/flip1.c +++ b/src/avrdude/flip1.c diff --git a/xs/src/avrdude/flip1.h b/src/avrdude/flip1.h index c5f4986b6..c5f4986b6 100644 --- a/xs/src/avrdude/flip1.h +++ b/src/avrdude/flip1.h diff --git a/xs/src/avrdude/flip2.c b/src/avrdude/flip2.c index ba90086a3..ba90086a3 100644 --- a/xs/src/avrdude/flip2.c +++ b/src/avrdude/flip2.c diff --git a/xs/src/avrdude/flip2.h b/src/avrdude/flip2.h index 4b1e576d5..4b1e576d5 100644 --- a/xs/src/avrdude/flip2.h +++ b/src/avrdude/flip2.h diff --git a/xs/src/avrdude/freebsd_ppi.h b/src/avrdude/freebsd_ppi.h index 016bf1826..016bf1826 100644 --- a/xs/src/avrdude/freebsd_ppi.h +++ b/src/avrdude/freebsd_ppi.h diff --git a/xs/src/avrdude/ft245r.c b/src/avrdude/ft245r.c index cc1061df4..cc1061df4 100644 --- a/xs/src/avrdude/ft245r.c +++ b/src/avrdude/ft245r.c diff --git a/xs/src/avrdude/ft245r.h b/src/avrdude/ft245r.h index 40602e220..40602e220 100644 --- a/xs/src/avrdude/ft245r.h +++ b/src/avrdude/ft245r.h diff --git a/xs/src/avrdude/jtag3.c b/src/avrdude/jtag3.c index 3084c3201..3084c3201 100644 --- a/xs/src/avrdude/jtag3.c +++ b/src/avrdude/jtag3.c diff --git a/xs/src/avrdude/jtag3.h b/src/avrdude/jtag3.h index fef3be011..fef3be011 100644 --- a/xs/src/avrdude/jtag3.h +++ b/src/avrdude/jtag3.h diff --git a/xs/src/avrdude/jtag3_private.h b/src/avrdude/jtag3_private.h index 8ee37505d..8ee37505d 100644 --- a/xs/src/avrdude/jtag3_private.h +++ b/src/avrdude/jtag3_private.h diff --git a/xs/src/avrdude/jtagmkI.c b/src/avrdude/jtagmkI.c index 2a5f27e4a..2a5f27e4a 100644 --- a/xs/src/avrdude/jtagmkI.c +++ b/src/avrdude/jtagmkI.c diff --git a/xs/src/avrdude/jtagmkI.h b/src/avrdude/jtagmkI.h index fbc0d161d..fbc0d161d 100644 --- a/xs/src/avrdude/jtagmkI.h +++ b/src/avrdude/jtagmkI.h diff --git a/xs/src/avrdude/jtagmkII.c b/src/avrdude/jtagmkII.c index 78c412ce6..78c412ce6 100644 --- a/xs/src/avrdude/jtagmkII.c +++ b/src/avrdude/jtagmkII.c diff --git a/xs/src/avrdude/jtagmkII.h b/src/avrdude/jtagmkII.h index aa79c18d2..aa79c18d2 100644 --- a/xs/src/avrdude/jtagmkII.h +++ b/src/avrdude/jtagmkII.h diff --git a/xs/src/avrdude/jtagmkII_private.h b/src/avrdude/jtagmkII_private.h index 6df8f6f23..6df8f6f23 100644 --- a/xs/src/avrdude/jtagmkII_private.h +++ b/src/avrdude/jtagmkII_private.h diff --git a/xs/src/avrdude/jtagmkI_private.h b/src/avrdude/jtagmkI_private.h index 7d5e247a9..7d5e247a9 100644 --- a/xs/src/avrdude/jtagmkI_private.h +++ b/src/avrdude/jtagmkI_private.h diff --git a/xs/src/avrdude/lexer.c b/src/avrdude/lexer.c index f2d8adb4b..f2d8adb4b 100644 --- a/xs/src/avrdude/lexer.c +++ b/src/avrdude/lexer.c diff --git a/xs/src/avrdude/lexer.l b/src/avrdude/lexer.l index 34af33d64..34af33d64 100644 --- a/xs/src/avrdude/lexer.l +++ b/src/avrdude/lexer.l diff --git a/xs/src/avrdude/libavrdude.h b/src/avrdude/libavrdude.h index aef792476..aef792476 100644 --- a/xs/src/avrdude/libavrdude.h +++ b/src/avrdude/libavrdude.h diff --git a/xs/src/avrdude/linux_ppdev.h b/src/avrdude/linux_ppdev.h index 1d2e6e2ec..1d2e6e2ec 100644 --- a/xs/src/avrdude/linux_ppdev.h +++ b/src/avrdude/linux_ppdev.h diff --git a/xs/src/avrdude/linuxgpio.c b/src/avrdude/linuxgpio.c index b61631174..b61631174 100644 --- a/xs/src/avrdude/linuxgpio.c +++ b/src/avrdude/linuxgpio.c diff --git a/xs/src/avrdude/linuxgpio.h b/src/avrdude/linuxgpio.h index dc477982a..dc477982a 100644 --- a/xs/src/avrdude/linuxgpio.h +++ b/src/avrdude/linuxgpio.h diff --git a/xs/src/avrdude/lists.c b/src/avrdude/lists.c index cab88364e..cab88364e 100644 --- a/xs/src/avrdude/lists.c +++ b/src/avrdude/lists.c diff --git a/xs/src/avrdude/main-standalone.c b/src/avrdude/main-standalone.c index 359a055ca..359a055ca 100644 --- a/xs/src/avrdude/main-standalone.c +++ b/src/avrdude/main-standalone.c diff --git a/xs/src/avrdude/main.c b/src/avrdude/main.c index ebda0ba19..ebda0ba19 100644 --- a/xs/src/avrdude/main.c +++ b/src/avrdude/main.c diff --git a/xs/src/avrdude/my_ddk_hidsdi.h b/src/avrdude/my_ddk_hidsdi.h index 46c17d675..46c17d675 100644 --- a/xs/src/avrdude/my_ddk_hidsdi.h +++ b/src/avrdude/my_ddk_hidsdi.h diff --git a/xs/src/avrdude/par.c b/src/avrdude/par.c index 9dcb8db84..9dcb8db84 100644 --- a/xs/src/avrdude/par.c +++ b/src/avrdude/par.c diff --git a/xs/src/avrdude/par.h b/src/avrdude/par.h index 708997037..708997037 100644 --- a/xs/src/avrdude/par.h +++ b/src/avrdude/par.h diff --git a/xs/src/avrdude/pgm.c b/src/avrdude/pgm.c index b8a93f104..b8a93f104 100644 --- a/xs/src/avrdude/pgm.c +++ b/src/avrdude/pgm.c diff --git a/xs/src/avrdude/pgm_type.c b/src/avrdude/pgm_type.c index ef27cf900..ef27cf900 100644 --- a/xs/src/avrdude/pgm_type.c +++ b/src/avrdude/pgm_type.c diff --git a/xs/src/avrdude/pickit2.c b/src/avrdude/pickit2.c index bbf8b9ad7..bbf8b9ad7 100644 --- a/xs/src/avrdude/pickit2.c +++ b/src/avrdude/pickit2.c diff --git a/xs/src/avrdude/pickit2.h b/src/avrdude/pickit2.h index cdd58d96d..cdd58d96d 100644 --- a/xs/src/avrdude/pickit2.h +++ b/src/avrdude/pickit2.h diff --git a/xs/src/avrdude/pindefs.c b/src/avrdude/pindefs.c index 5753fc67b..5753fc67b 100644 --- a/xs/src/avrdude/pindefs.c +++ b/src/avrdude/pindefs.c diff --git a/xs/src/avrdude/ppi.c b/src/avrdude/ppi.c index 2706b850e..2706b850e 100644 --- a/xs/src/avrdude/ppi.c +++ b/src/avrdude/ppi.c diff --git a/xs/src/avrdude/ppi.h b/src/avrdude/ppi.h index 38fc1e8b5..38fc1e8b5 100644 --- a/xs/src/avrdude/ppi.h +++ b/src/avrdude/ppi.h diff --git a/xs/src/avrdude/ppiwin.c b/src/avrdude/ppiwin.c index 7811288c0..7811288c0 100644 --- a/xs/src/avrdude/ppiwin.c +++ b/src/avrdude/ppiwin.c diff --git a/xs/src/avrdude/safemode.c b/src/avrdude/safemode.c index b530a5fcb..b530a5fcb 100644 --- a/xs/src/avrdude/safemode.c +++ b/src/avrdude/safemode.c diff --git a/xs/src/avrdude/ser_avrdoper.c b/src/avrdude/ser_avrdoper.c index 71080b7c7..71080b7c7 100644 --- a/xs/src/avrdude/ser_avrdoper.c +++ b/src/avrdude/ser_avrdoper.c diff --git a/xs/src/avrdude/ser_posix.c b/src/avrdude/ser_posix.c index cb0fc0385..cb0fc0385 100644 --- a/xs/src/avrdude/ser_posix.c +++ b/src/avrdude/ser_posix.c diff --git a/xs/src/avrdude/ser_win32.c b/src/avrdude/ser_win32.c index 4e1713128..4e1713128 100644 --- a/xs/src/avrdude/ser_win32.c +++ b/src/avrdude/ser_win32.c diff --git a/xs/src/avrdude/serbb.h b/src/avrdude/serbb.h index cdb89a366..cdb89a366 100644 --- a/xs/src/avrdude/serbb.h +++ b/src/avrdude/serbb.h diff --git a/xs/src/avrdude/serbb_posix.c b/src/avrdude/serbb_posix.c index 319cfc9e4..319cfc9e4 100644 --- a/xs/src/avrdude/serbb_posix.c +++ b/src/avrdude/serbb_posix.c diff --git a/xs/src/avrdude/serbb_win32.c b/src/avrdude/serbb_win32.c index 4f1069c85..4f1069c85 100644 --- a/xs/src/avrdude/serbb_win32.c +++ b/src/avrdude/serbb_win32.c diff --git a/xs/src/avrdude/solaris_ecpp.h b/src/avrdude/solaris_ecpp.h index 7db040d14..7db040d14 100644 --- a/xs/src/avrdude/solaris_ecpp.h +++ b/src/avrdude/solaris_ecpp.h diff --git a/xs/src/avrdude/stk500.c b/src/avrdude/stk500.c index 63deb228f..63deb228f 100644 --- a/xs/src/avrdude/stk500.c +++ b/src/avrdude/stk500.c diff --git a/xs/src/avrdude/stk500.h b/src/avrdude/stk500.h index d0bce452d..d0bce452d 100644 --- a/xs/src/avrdude/stk500.h +++ b/src/avrdude/stk500.h diff --git a/xs/src/avrdude/stk500_private.h b/src/avrdude/stk500_private.h index 7efe866c4..7efe866c4 100644 --- a/xs/src/avrdude/stk500_private.h +++ b/src/avrdude/stk500_private.h diff --git a/xs/src/avrdude/stk500generic.c b/src/avrdude/stk500generic.c index 9c1ea4036..9c1ea4036 100644 --- a/xs/src/avrdude/stk500generic.c +++ b/src/avrdude/stk500generic.c diff --git a/xs/src/avrdude/stk500generic.h b/src/avrdude/stk500generic.h index 0c0590129..0c0590129 100644 --- a/xs/src/avrdude/stk500generic.h +++ b/src/avrdude/stk500generic.h diff --git a/xs/src/avrdude/stk500v2.c b/src/avrdude/stk500v2.c index 691152b46..691152b46 100644 --- a/xs/src/avrdude/stk500v2.c +++ b/src/avrdude/stk500v2.c diff --git a/xs/src/avrdude/stk500v2.h b/src/avrdude/stk500v2.h index 5c182c59c..5c182c59c 100644 --- a/xs/src/avrdude/stk500v2.h +++ b/src/avrdude/stk500v2.h diff --git a/xs/src/avrdude/stk500v2_private.h b/src/avrdude/stk500v2_private.h index 31c1bb23d..31c1bb23d 100644 --- a/xs/src/avrdude/stk500v2_private.h +++ b/src/avrdude/stk500v2_private.h diff --git a/xs/src/avrdude/term.c b/src/avrdude/term.c index 012f6f1a5..012f6f1a5 100644 --- a/xs/src/avrdude/term.c +++ b/src/avrdude/term.c diff --git a/xs/src/avrdude/term.h b/src/avrdude/term.h index fca3aac84..fca3aac84 100644 --- a/xs/src/avrdude/term.h +++ b/src/avrdude/term.h diff --git a/xs/src/avrdude/tools/build-mingw32.sh b/src/avrdude/tools/build-mingw32.sh index 2d9e11261..2d9e11261 100755..100644 --- a/xs/src/avrdude/tools/build-mingw32.sh +++ b/src/avrdude/tools/build-mingw32.sh diff --git a/xs/src/avrdude/tools/get-dw-params.xsl b/src/avrdude/tools/get-dw-params.xsl index a3f083e96..a3f083e96 100644 --- a/xs/src/avrdude/tools/get-dw-params.xsl +++ b/src/avrdude/tools/get-dw-params.xsl diff --git a/xs/src/avrdude/tools/get-hv-params.xsl b/src/avrdude/tools/get-hv-params.xsl index b4a595f13..b4a595f13 100644 --- a/xs/src/avrdude/tools/get-hv-params.xsl +++ b/src/avrdude/tools/get-hv-params.xsl diff --git a/xs/src/avrdude/tools/get-stk600-cards.xsl b/src/avrdude/tools/get-stk600-cards.xsl index 6165b526e..6165b526e 100644 --- a/xs/src/avrdude/tools/get-stk600-cards.xsl +++ b/src/avrdude/tools/get-stk600-cards.xsl diff --git a/xs/src/avrdude/tools/get-stk600-devices.xsl b/src/avrdude/tools/get-stk600-devices.xsl index efba1628a..efba1628a 100644 --- a/xs/src/avrdude/tools/get-stk600-devices.xsl +++ b/src/avrdude/tools/get-stk600-devices.xsl diff --git a/xs/src/avrdude/tpi.h b/src/avrdude/tpi.h index 89d438d8b..89d438d8b 100644 --- a/xs/src/avrdude/tpi.h +++ b/src/avrdude/tpi.h diff --git a/xs/src/avrdude/update.c b/src/avrdude/update.c index a255ab4f9..a255ab4f9 100644 --- a/xs/src/avrdude/update.c +++ b/src/avrdude/update.c diff --git a/xs/src/avrdude/usb_hidapi.c b/src/avrdude/usb_hidapi.c index 81e9c4abe..81e9c4abe 100644 --- a/xs/src/avrdude/usb_hidapi.c +++ b/src/avrdude/usb_hidapi.c diff --git a/xs/src/avrdude/usb_libusb.c b/src/avrdude/usb_libusb.c index 235e330a8..235e330a8 100644 --- a/xs/src/avrdude/usb_libusb.c +++ b/src/avrdude/usb_libusb.c diff --git a/xs/src/avrdude/usbasp.c b/src/avrdude/usbasp.c index e75eed1d7..e75eed1d7 100644 --- a/xs/src/avrdude/usbasp.c +++ b/src/avrdude/usbasp.c diff --git a/xs/src/avrdude/usbasp.h b/src/avrdude/usbasp.h index 573d2b853..573d2b853 100644 --- a/xs/src/avrdude/usbasp.h +++ b/src/avrdude/usbasp.h diff --git a/xs/src/avrdude/usbdevs.h b/src/avrdude/usbdevs.h index a3bc413ca..a3bc413ca 100644 --- a/xs/src/avrdude/usbdevs.h +++ b/src/avrdude/usbdevs.h diff --git a/xs/src/avrdude/usbtiny.c b/src/avrdude/usbtiny.c index b6bc7cc07..b6bc7cc07 100644 --- a/xs/src/avrdude/usbtiny.c +++ b/src/avrdude/usbtiny.c diff --git a/xs/src/avrdude/usbtiny.h b/src/avrdude/usbtiny.h index 3a258b9f1..3a258b9f1 100644 --- a/xs/src/avrdude/usbtiny.h +++ b/src/avrdude/usbtiny.h diff --git a/xs/src/avrdude/windows/.cvsignore b/src/avrdude/windows/.cvsignore index 601c4fbff..601c4fbff 100644 --- a/xs/src/avrdude/windows/.cvsignore +++ b/src/avrdude/windows/.cvsignore diff --git a/xs/src/avrdude/windows/Makefile.am b/src/avrdude/windows/Makefile.am index 9890fd05f..9890fd05f 100644 --- a/xs/src/avrdude/windows/Makefile.am +++ b/src/avrdude/windows/Makefile.am diff --git a/xs/src/avrdude/windows/getopt.c b/src/avrdude/windows/getopt.c index cfa302335..cfa302335 100644 --- a/xs/src/avrdude/windows/getopt.c +++ b/src/avrdude/windows/getopt.c diff --git a/xs/src/avrdude/windows/getopt.h b/src/avrdude/windows/getopt.h index 8a45c8b13..8a45c8b13 100644 --- a/xs/src/avrdude/windows/getopt.h +++ b/src/avrdude/windows/getopt.h diff --git a/xs/src/avrdude/windows/giveio.c b/src/avrdude/windows/giveio.c index f752a2937..f752a2937 100644 --- a/xs/src/avrdude/windows/giveio.c +++ b/src/avrdude/windows/giveio.c diff --git a/xs/src/avrdude/windows/giveio.sys b/src/avrdude/windows/giveio.sys Binary files differindex 62a0cb66f..62a0cb66f 100644 --- a/xs/src/avrdude/windows/giveio.sys +++ b/src/avrdude/windows/giveio.sys diff --git a/xs/src/avrdude/windows/install_giveio.bat b/src/avrdude/windows/install_giveio.bat index 4a02b093b..4a02b093b 100755..100644 --- a/xs/src/avrdude/windows/install_giveio.bat +++ b/src/avrdude/windows/install_giveio.bat diff --git a/xs/src/avrdude/windows/loaddrv.c b/src/avrdude/windows/loaddrv.c index ca92a2a1a..ca92a2a1a 100644 --- a/xs/src/avrdude/windows/loaddrv.c +++ b/src/avrdude/windows/loaddrv.c diff --git a/xs/src/avrdude/windows/loaddrv.h b/src/avrdude/windows/loaddrv.h index d7d102b97..d7d102b97 100644 --- a/xs/src/avrdude/windows/loaddrv.h +++ b/src/avrdude/windows/loaddrv.h diff --git a/xs/src/avrdude/windows/remove_giveio.bat b/src/avrdude/windows/remove_giveio.bat index 024427db8..024427db8 100755..100644 --- a/xs/src/avrdude/windows/remove_giveio.bat +++ b/src/avrdude/windows/remove_giveio.bat diff --git a/xs/src/avrdude/windows/status_giveio.bat b/src/avrdude/windows/status_giveio.bat index bc8214749..bc8214749 100755..100644 --- a/xs/src/avrdude/windows/status_giveio.bat +++ b/src/avrdude/windows/status_giveio.bat diff --git a/xs/src/avrdude/windows/unistd.cpp b/src/avrdude/windows/unistd.cpp index e47c0b659..e47c0b659 100644 --- a/xs/src/avrdude/windows/unistd.cpp +++ b/src/avrdude/windows/unistd.cpp diff --git a/xs/src/avrdude/windows/unistd.h b/src/avrdude/windows/unistd.h index b1bc6bf7f..b1bc6bf7f 100644 --- a/xs/src/avrdude/windows/unistd.h +++ b/src/avrdude/windows/unistd.h diff --git a/xs/src/avrdude/wiring.c b/src/avrdude/wiring.c index 562a3f17c..562a3f17c 100644 --- a/xs/src/avrdude/wiring.c +++ b/src/avrdude/wiring.c diff --git a/xs/src/avrdude/wiring.h b/src/avrdude/wiring.h index ed1362de7..ed1362de7 100644 --- a/xs/src/avrdude/wiring.h +++ b/src/avrdude/wiring.h diff --git a/src/boost/CMakeLists.txt b/src/boost/CMakeLists.txt new file mode 100644 index 000000000..2b23ec3b2 --- /dev/null +++ b/src/boost/CMakeLists.txt @@ -0,0 +1,20 @@ +project(nowide) +cmake_minimum_required(VERSION 2.6) + +add_library(nowide STATIC + nowide/args.hpp + nowide/cenv.hpp + nowide/config.hpp + nowide/convert.hpp + nowide/cstdio.hpp + nowide/cstdlib.hpp + nowide/filebuf.hpp + nowide/fstream.hpp + nowide/integration/filesystem.hpp + nowide/iostream.cpp + nowide/iostream.hpp + nowide/stackstring.hpp + nowide/system.hpp + nowide/utf8_codecvt.hpp + nowide/windows.hpp +) diff --git a/xs/src/boost/nowide/args.hpp b/src/boost/nowide/args.hpp index bb806d02e..bb806d02e 100644 --- a/xs/src/boost/nowide/args.hpp +++ b/src/boost/nowide/args.hpp diff --git a/xs/src/boost/nowide/cenv.hpp b/src/boost/nowide/cenv.hpp index a38a24b97..a38a24b97 100644 --- a/xs/src/boost/nowide/cenv.hpp +++ b/src/boost/nowide/cenv.hpp diff --git a/xs/src/boost/nowide/config.hpp b/src/boost/nowide/config.hpp index d983109f3..d983109f3 100644 --- a/xs/src/boost/nowide/config.hpp +++ b/src/boost/nowide/config.hpp diff --git a/xs/src/boost/nowide/convert.hpp b/src/boost/nowide/convert.hpp index 89b8871d0..89b8871d0 100644 --- a/xs/src/boost/nowide/convert.hpp +++ b/src/boost/nowide/convert.hpp diff --git a/xs/src/boost/nowide/cstdio.hpp b/src/boost/nowide/cstdio.hpp index d0bda97a0..d0bda97a0 100644 --- a/xs/src/boost/nowide/cstdio.hpp +++ b/src/boost/nowide/cstdio.hpp diff --git a/xs/src/boost/nowide/cstdlib.hpp b/src/boost/nowide/cstdlib.hpp index 27e20610a..27e20610a 100644 --- a/xs/src/boost/nowide/cstdlib.hpp +++ b/src/boost/nowide/cstdlib.hpp diff --git a/xs/src/boost/nowide/filebuf.hpp b/src/boost/nowide/filebuf.hpp index 2d6f4a443..2d6f4a443 100644 --- a/xs/src/boost/nowide/filebuf.hpp +++ b/src/boost/nowide/filebuf.hpp diff --git a/xs/src/boost/nowide/fstream.hpp b/src/boost/nowide/fstream.hpp index b0824a51b..b0824a51b 100644 --- a/xs/src/boost/nowide/fstream.hpp +++ b/src/boost/nowide/fstream.hpp diff --git a/xs/src/boost/nowide/integration/filesystem.hpp b/src/boost/nowide/integration/filesystem.hpp index c2a44b4ee..c2a44b4ee 100644 --- a/xs/src/boost/nowide/integration/filesystem.hpp +++ b/src/boost/nowide/integration/filesystem.hpp diff --git a/xs/src/boost/nowide/iostream.cpp b/src/boost/nowide/iostream.cpp index 6b9099110..6b9099110 100644 --- a/xs/src/boost/nowide/iostream.cpp +++ b/src/boost/nowide/iostream.cpp diff --git a/xs/src/boost/nowide/iostream.hpp b/src/boost/nowide/iostream.hpp index 6ab004a25..6ab004a25 100644 --- a/xs/src/boost/nowide/iostream.hpp +++ b/src/boost/nowide/iostream.hpp diff --git a/xs/src/boost/nowide/stackstring.hpp b/src/boost/nowide/stackstring.hpp index 948a22f7f..948a22f7f 100644 --- a/xs/src/boost/nowide/stackstring.hpp +++ b/src/boost/nowide/stackstring.hpp diff --git a/xs/src/boost/nowide/system.hpp b/src/boost/nowide/system.hpp index a1fc97505..a1fc97505 100644 --- a/xs/src/boost/nowide/system.hpp +++ b/src/boost/nowide/system.hpp diff --git a/xs/src/boost/nowide/utf8_codecvt.hpp b/src/boost/nowide/utf8_codecvt.hpp index cc5046fc8..cc5046fc8 100644 --- a/xs/src/boost/nowide/utf8_codecvt.hpp +++ b/src/boost/nowide/utf8_codecvt.hpp diff --git a/xs/src/boost/nowide/windows.hpp b/src/boost/nowide/windows.hpp index 164ed5531..164ed5531 100644 --- a/xs/src/boost/nowide/windows.hpp +++ b/src/boost/nowide/windows.hpp diff --git a/src/clipper/CMakeLists.txt b/src/clipper/CMakeLists.txt new file mode 100644 index 000000000..d6f3861dc --- /dev/null +++ b/src/clipper/CMakeLists.txt @@ -0,0 +1,7 @@ +project(clipper) +cmake_minimum_required(VERSION 2.6) + +add_library(clipper STATIC + clipper.cpp + clipper.hpp +) diff --git a/xs/src/clipper.cpp b/src/clipper/clipper.cpp index e865288fb..228e0c6ef 100644 --- a/xs/src/clipper.cpp +++ b/src/clipper/clipper.cpp @@ -1,4180 +1,4180 @@ -/*******************************************************************************
-* *
-* Author : Angus Johnson *
-* Version : 6.2.9 *
-* Date : 16 February 2015 *
-* Website : http://www.angusj.com *
-* Copyright : Angus Johnson 2010-2015 *
-* *
-* License: *
-* Use, modification & distribution is subject to Boost Software License Ver 1. *
-* http://www.boost.org/LICENSE_1_0.txt *
-* *
-* Attributions: *
-* The code in this library is an extension of Bala Vatti's clipping algorithm: *
-* "A generic solution to polygon clipping" *
-* Communications of the ACM, Vol 35, Issue 7 (July 1992) pp 56-63. *
-* http://portal.acm.org/citation.cfm?id=129906 *
-* *
-* Computer graphics and geometric modeling: implementation and algorithms *
-* By Max K. Agoston *
-* Springer; 1 edition (January 4, 2005) *
-* http://books.google.com/books?q=vatti+clipping+agoston *
-* *
-* See also: *
-* "Polygon Offsetting by Computing Winding Numbers" *
-* Paper no. DETC2005-85513 pp. 565-575 *
-* ASME 2005 International Design Engineering Technical Conferences *
-* and Computers and Information in Engineering Conference (IDETC/CIE2005) *
-* September 24-28, 2005 , Long Beach, California, USA *
-* http://www.me.berkeley.edu/~mcmains/pubs/DAC05OffsetPolygon.pdf *
-* *
-*******************************************************************************/
-
-/*******************************************************************************
-* *
-* This is a translation of the Delphi Clipper library and the naming style *
-* used has retained a Delphi flavour. *
-* *
-*******************************************************************************/
-
-#include "clipper.hpp"
-#include <cmath>
-#include <vector>
-#include <algorithm>
-#include <stdexcept>
-#include <cstring>
-#include <cstdlib>
-#include <ostream>
-#include <functional>
-#include <assert.h>
-#include <Shiny/Shiny.h>
-#include <libslic3r/Int128.hpp>
-
-namespace ClipperLib {
-
-static double const pi = 3.141592653589793238;
-static double const two_pi = pi *2;
-static double const def_arc_tolerance = 0.25;
-
-enum Direction { dRightToLeft, dLeftToRight };
-
-static int const Unassigned = -1; //edge not currently 'owning' a solution
-static int const Skip = -2; //edge that would otherwise close a path
-
-#define HORIZONTAL (-1.0E+40)
-#define TOLERANCE (1.0e-20)
-#define NEAR_ZERO(val) (((val) > -TOLERANCE) && ((val) < TOLERANCE))
-
-// Output polygon.
-struct OutRec {
- int Idx;
- bool IsHole;
- bool IsOpen;
- //The 'FirstLeft' field points to another OutRec that contains or is the
- //'parent' of OutRec. It is 'first left' because the ActiveEdgeList (AEL) is
- //parsed left from the current edge (owning OutRec) until the owner OutRec
- //is found. This field simplifies sorting the polygons into a tree structure
- //which reflects the parent/child relationships of all polygons.
- //This field should be renamed Parent, and will be later.
- OutRec *FirstLeft;
- // Used only by void Clipper::BuildResult2(PolyTree& polytree)
- PolyNode *PolyNd;
- // Linked list of output points, dynamically allocated.
- OutPt *Pts;
- OutPt *BottomPt;
-};
-
-//------------------------------------------------------------------------------
-
-inline cInt Round(double val)
-{
- return static_cast<cInt>((val < 0) ? (val - 0.5) : (val + 0.5));
-}
-
-//------------------------------------------------------------------------------
-// PolyTree methods ...
-//------------------------------------------------------------------------------
-
-int PolyTree::Total() const
-{
- int result = (int)AllNodes.size();
- //with negative offsets, ignore the hidden outer polygon ...
- if (result > 0 && Childs.front() != &AllNodes.front()) result--;
- return result;
-}
-
-//------------------------------------------------------------------------------
-// PolyNode methods ...
-//------------------------------------------------------------------------------
-
-void PolyNode::AddChild(PolyNode& child)
-{
- unsigned cnt = (unsigned)Childs.size();
- Childs.push_back(&child);
- child.Parent = this;
- child.Index = cnt;
-}
-//------------------------------------------------------------------------------
-
-// Edge delimits a hole if it has an odd number of parent loops.
-bool PolyNode::IsHole() const
-{
- bool result = true;
- PolyNode* node = Parent;
- while (node)
- {
- result = !result;
- node = node->Parent;
- }
- return result;
-}
-
-//------------------------------------------------------------------------------
-// Miscellaneous global functions
-//------------------------------------------------------------------------------
-
-double Area(const Path &poly)
-{
- int size = (int)poly.size();
- if (size < 3) return 0;
-
- double a = 0;
- for (int i = 0, j = size -1; i < size; ++i)
- {
- a += ((double)poly[j].X + poly[i].X) * ((double)poly[j].Y - poly[i].Y);
- j = i;
- }
- return -a * 0.5;
-}
-//------------------------------------------------------------------------------
-
-double Area(const OutRec &outRec)
-{
- OutPt *op = outRec.Pts;
- if (!op) return 0;
- double a = 0;
- do {
- a += (double)(op->Prev->Pt.X + op->Pt.X) * (double)(op->Prev->Pt.Y - op->Pt.Y);
- op = op->Next;
- } while (op != outRec.Pts);
- return a * 0.5;
-}
-//------------------------------------------------------------------------------
-
-bool PointIsVertex(const IntPoint &Pt, OutPt *pp)
-{
- OutPt *pp2 = pp;
- do
- {
- if (pp2->Pt == Pt) return true;
- pp2 = pp2->Next;
- }
- while (pp2 != pp);
- return false;
-}
-//------------------------------------------------------------------------------
-
-//See "The Point in Polygon Problem for Arbitrary Polygons" by Hormann & Agathos
-//http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.88.5498&rep=rep1&type=pdf
-int PointInPolygon(const IntPoint &pt, const Path &path)
-{
- //returns 0 if false, +1 if true, -1 if pt ON polygon boundary
- int result = 0;
- size_t cnt = path.size();
- if (cnt < 3) return 0;
- IntPoint ip = path[0];
- for(size_t i = 1; i <= cnt; ++i)
- {
- IntPoint ipNext = (i == cnt ? path[0] : path[i]);
- if (ipNext.Y == pt.Y && ((ipNext.X == pt.X) || (ip.Y == pt.Y && ((ipNext.X > pt.X) == (ip.X < pt.X)))))
- return -1;
- if ((ip.Y < pt.Y) != (ipNext.Y < pt.Y))
- {
- if (ip.X >= pt.X)
- {
- if (ipNext.X > pt.X) result = 1 - result;
- else
- {
- double d = (double)(ip.X - pt.X) * (ipNext.Y - pt.Y) - (double)(ipNext.X - pt.X) * (ip.Y - pt.Y);
- if (!d) return -1;
- if ((d > 0) == (ipNext.Y > ip.Y)) result = 1 - result;
- }
- } else
- {
- if (ipNext.X > pt.X)
- {
- double d = (double)(ip.X - pt.X) * (ipNext.Y - pt.Y) - (double)(ipNext.X - pt.X) * (ip.Y - pt.Y);
- if (!d) return -1;
- if ((d > 0) == (ipNext.Y > ip.Y)) result = 1 - result;
- }
- }
- }
- ip = ipNext;
- }
- return result;
-}
-//------------------------------------------------------------------------------
-
-// Called by Poly2ContainsPoly1()
-int PointInPolygon (const IntPoint &pt, OutPt *op)
-{
- //returns 0 if false, +1 if true, -1 if pt ON polygon boundary
- int result = 0;
- OutPt* startOp = op;
- do
- {
- if (op->Next->Pt.Y == pt.Y)
- {
- if ((op->Next->Pt.X == pt.X) || (op->Pt.Y == pt.Y &&
- ((op->Next->Pt.X > pt.X) == (op->Pt.X < pt.X)))) return -1;
- }
- if ((op->Pt.Y < pt.Y) != (op->Next->Pt.Y < pt.Y))
- {
- if (op->Pt.X >= pt.X)
- {
- if (op->Next->Pt.X > pt.X) result = 1 - result;
- else
- {
- double d = (double)(op->Pt.X - pt.X) * (op->Next->Pt.Y - pt.Y) - (double)(op->Next->Pt.X - pt.X) * (op->Pt.Y - pt.Y);
- if (!d) return -1;
- if ((d > 0) == (op->Next->Pt.Y > op->Pt.Y)) result = 1 - result;
- }
- } else
- {
- if (op->Next->Pt.X > pt.X)
- {
- double d = (double)(op->Pt.X - pt.X) * (op->Next->Pt.Y - pt.Y) - (double)(op->Next->Pt.X - pt.X) * (op->Pt.Y - pt.Y);
- if (!d) return -1;
- if ((d > 0) == (op->Next->Pt.Y > op->Pt.Y)) result = 1 - result;
- }
- }
- }
- op = op->Next;
- } while (startOp != op);
- return result;
-}
-//------------------------------------------------------------------------------
-
-// This is potentially very expensive! O(n^2)!
-bool Poly2ContainsPoly1(OutPt *OutPt1, OutPt *OutPt2)
-{
- PROFILE_FUNC();
- OutPt* op = OutPt1;
- do
- {
- //nb: PointInPolygon returns 0 if false, +1 if true, -1 if pt on polygon
- int res = PointInPolygon(op->Pt, OutPt2);
- if (res >= 0) return res > 0;
- op = op->Next;
- }
- while (op != OutPt1);
- return true;
-}
-//----------------------------------------------------------------------
-
-inline bool SlopesEqual(const cInt dx1, const cInt dy1, const cInt dx2, const cInt dy2, bool UseFullInt64Range) {
- return (UseFullInt64Range) ?
- // |dx1| < 2^63, |dx2| < 2^63 etc,
- Int128::sign_determinant_2x2_filtered(dx1, dy1, dx2, dy2) == 0 :
-// Int128::sign_determinant_2x2(dx1, dy1, dx2, dy2) == 0 :
- // |dx1| < 2^31, |dx2| < 2^31 etc,
- // therefore the following computation could be done with 64bit arithmetics.
- dy1 * dx2 == dx1 * dy2;
-}
-inline bool SlopesEqual(const TEdge &e1, const TEdge &e2, bool UseFullInt64Range)
- { return SlopesEqual(e1.Delta.X, e1.Delta.Y, e2.Delta.X, e2.Delta.Y, UseFullInt64Range); }
-inline bool SlopesEqual(const IntPoint &pt1, const IntPoint &pt2, const IntPoint &pt3, bool UseFullInt64Range)
- { return SlopesEqual(pt1.X-pt2.X, pt1.Y-pt2.Y, pt2.X-pt3.X, pt2.Y-pt3.Y, UseFullInt64Range); }
-inline bool SlopesEqual(const IntPoint &pt1, const IntPoint &pt2, const IntPoint &pt3, const IntPoint &pt4, bool UseFullInt64Range)
- { return SlopesEqual(pt1.X-pt2.X, pt1.Y-pt2.Y, pt3.X-pt4.X, pt3.Y-pt4.Y, UseFullInt64Range); }
-
-//------------------------------------------------------------------------------
-
-inline bool IsHorizontal(TEdge &e)
-{
- return e.Delta.Y == 0;
-}
-//------------------------------------------------------------------------------
-
-inline double GetDx(const IntPoint &pt1, const IntPoint &pt2)
-{
- return (pt1.Y == pt2.Y) ?
- HORIZONTAL : (double)(pt2.X - pt1.X) / (pt2.Y - pt1.Y);
-}
-//---------------------------------------------------------------------------
-
-inline cInt TopX(TEdge &edge, const cInt currentY)
-{
- return (currentY == edge.Top.Y) ?
- edge.Top.X :
- edge.Bot.X + Round(edge.Dx *(currentY - edge.Bot.Y));
-}
-//------------------------------------------------------------------------------
-
-void IntersectPoint(TEdge &Edge1, TEdge &Edge2, IntPoint &ip)
-{
-#ifdef use_xyz
- ip.Z = 0;
-#endif
-
- double b1, b2;
- if (Edge1.Dx == Edge2.Dx)
- {
- ip.Y = Edge1.Curr.Y;
- ip.X = TopX(Edge1, ip.Y);
- return;
- }
- else if (Edge1.Delta.X == 0)
- {
- ip.X = Edge1.Bot.X;
- if (IsHorizontal(Edge2))
- ip.Y = Edge2.Bot.Y;
- else
- {
- b2 = Edge2.Bot.Y - (Edge2.Bot.X / Edge2.Dx);
- ip.Y = Round(ip.X / Edge2.Dx + b2);
- }
- }
- else if (Edge2.Delta.X == 0)
- {
- ip.X = Edge2.Bot.X;
- if (IsHorizontal(Edge1))
- ip.Y = Edge1.Bot.Y;
- else
- {
- b1 = Edge1.Bot.Y - (Edge1.Bot.X / Edge1.Dx);
- ip.Y = Round(ip.X / Edge1.Dx + b1);
- }
- }
- else
- {
- b1 = Edge1.Bot.X - Edge1.Bot.Y * Edge1.Dx;
- b2 = Edge2.Bot.X - Edge2.Bot.Y * Edge2.Dx;
- double q = (b2-b1) / (Edge1.Dx - Edge2.Dx);
- ip.Y = Round(q);
- ip.X = (std::fabs(Edge1.Dx) < std::fabs(Edge2.Dx)) ?
- Round(Edge1.Dx * q + b1) :
- Round(Edge2.Dx * q + b2);
- }
-
- if (ip.Y < Edge1.Top.Y || ip.Y < Edge2.Top.Y)
- {
- if (Edge1.Top.Y > Edge2.Top.Y)
- ip.Y = Edge1.Top.Y;
- else
- ip.Y = Edge2.Top.Y;
- if (std::fabs(Edge1.Dx) < std::fabs(Edge2.Dx))
- ip.X = TopX(Edge1, ip.Y);
- else
- ip.X = TopX(Edge2, ip.Y);
- }
- //finally, don't allow 'ip' to be BELOW curr.Y (ie bottom of scanbeam) ...
- if (ip.Y > Edge1.Curr.Y)
- {
- ip.Y = Edge1.Curr.Y;
- //use the more vertical edge to derive X ...
- if (std::fabs(Edge1.Dx) > std::fabs(Edge2.Dx))
- ip.X = TopX(Edge2, ip.Y); else
- ip.X = TopX(Edge1, ip.Y);
- }
-}
-//------------------------------------------------------------------------------
-
-// Reverse a linked loop of points representing a closed polygon.
-// This has a time complexity of O(n)
-void ReversePolyPtLinks(OutPt *pp)
-{
- if (!pp) return;
- OutPt *pp1 = pp;
- do {
- OutPt *pp2 = pp1->Next;
- pp1->Next = pp1->Prev;
- pp1->Prev = pp2;
- pp1 = pp2;
- } while( pp1 != pp );
-}
-//------------------------------------------------------------------------------
-
-inline void InitEdge(TEdge* e, TEdge* eNext, TEdge* ePrev, const IntPoint& Pt)
-{
- std::memset(e, 0, sizeof(TEdge));
- e->Next = eNext;
- e->Prev = ePrev;
- e->Curr = Pt;
- e->OutIdx = Unassigned;
-}
-//------------------------------------------------------------------------------
-
-void InitEdge2(TEdge& e, PolyType Pt)
-{
- if (e.Curr.Y >= e.Next->Curr.Y)
- {
- e.Bot = e.Curr;
- e.Top = e.Next->Curr;
- } else
- {
- e.Top = e.Curr;
- e.Bot = e.Next->Curr;
- }
-
- e.Delta.X = (e.Top.X - e.Bot.X);
- e.Delta.Y = (e.Top.Y - e.Bot.Y);
-
- if (e.Delta.Y == 0) e.Dx = HORIZONTAL;
- else e.Dx = (double)(e.Delta.X) / e.Delta.Y;
-
- e.PolyTyp = Pt;
-}
-//------------------------------------------------------------------------------
-
-// Called from ClipperBase::AddPathInternal() to remove collinear and duplicate points.
-inline TEdge* RemoveEdge(TEdge* e)
-{
- //removes e from double_linked_list (but without removing from memory)
- e->Prev->Next = e->Next;
- e->Next->Prev = e->Prev;
- TEdge* result = e->Next;
- e->Prev = 0; //flag as removed (see ClipperBase.Clear)
- return result;
-}
-//------------------------------------------------------------------------------
-
-inline void ReverseHorizontal(TEdge &e)
-{
- //swap horizontal edges' Top and Bottom x's so they follow the natural
- //progression of the bounds - ie so their xbots will align with the
- //adjoining lower edge. [Helpful in the ProcessHorizontal() method.]
- std::swap(e.Top.X, e.Bot.X);
-#ifdef use_xyz
- std::swap(e.Top.Z, e.Bot.Z);
-#endif
-}
-//------------------------------------------------------------------------------
-
-bool GetOverlapSegment(IntPoint pt1a, IntPoint pt1b, IntPoint pt2a,
- IntPoint pt2b, IntPoint &pt1, IntPoint &pt2)
-{
- //precondition: segments are Collinear.
- if (std::abs(pt1a.X - pt1b.X) > std::abs(pt1a.Y - pt1b.Y))
- {
- if (pt1a.X > pt1b.X) std::swap(pt1a, pt1b);
- if (pt2a.X > pt2b.X) std::swap(pt2a, pt2b);
- if (pt1a.X > pt2a.X) pt1 = pt1a; else pt1 = pt2a;
- if (pt1b.X < pt2b.X) pt2 = pt1b; else pt2 = pt2b;
- return pt1.X < pt2.X;
- } else
- {
- if (pt1a.Y < pt1b.Y) std::swap(pt1a, pt1b);
- if (pt2a.Y < pt2b.Y) std::swap(pt2a, pt2b);
- if (pt1a.Y < pt2a.Y) pt1 = pt1a; else pt1 = pt2a;
- if (pt1b.Y > pt2b.Y) pt2 = pt1b; else pt2 = pt2b;
- return pt1.Y > pt2.Y;
- }
-}
-//------------------------------------------------------------------------------
-
-bool FirstIsBottomPt(const OutPt* btmPt1, const OutPt* btmPt2)
-{
- OutPt *p = btmPt1->Prev;
- while ((p->Pt == btmPt1->Pt) && (p != btmPt1)) p = p->Prev;
- double dx1p = std::fabs(GetDx(btmPt1->Pt, p->Pt));
- p = btmPt1->Next;
- while ((p->Pt == btmPt1->Pt) && (p != btmPt1)) p = p->Next;
- double dx1n = std::fabs(GetDx(btmPt1->Pt, p->Pt));
-
- p = btmPt2->Prev;
- while ((p->Pt == btmPt2->Pt) && (p != btmPt2)) p = p->Prev;
- double dx2p = std::fabs(GetDx(btmPt2->Pt, p->Pt));
- p = btmPt2->Next;
- while ((p->Pt == btmPt2->Pt) && (p != btmPt2)) p = p->Next;
- double dx2n = std::fabs(GetDx(btmPt2->Pt, p->Pt));
- return (dx1p >= dx2p && dx1p >= dx2n) || (dx1n >= dx2p && dx1n >= dx2n);
-}
-//------------------------------------------------------------------------------
-
-// Called by GetLowermostRec()
-OutPt* GetBottomPt(OutPt *pp)
-{
- OutPt* dups = 0;
- OutPt* p = pp->Next;
- while (p != pp)
- {
- if (p->Pt.Y > pp->Pt.Y)
- {
- pp = p;
- dups = 0;
- }
- else if (p->Pt.Y == pp->Pt.Y && p->Pt.X <= pp->Pt.X)
- {
- if (p->Pt.X < pp->Pt.X)
- {
- dups = 0;
- pp = p;
- } else
- {
- if (p->Next != pp && p->Prev != pp) dups = p;
- }
- }
- p = p->Next;
- }
- if (dups)
- {
- //there appears to be at least 2 vertices at BottomPt so ...
- while (dups != p)
- {
- if (!FirstIsBottomPt(p, dups)) pp = dups;
- dups = dups->Next;
- while (dups->Pt != pp->Pt) dups = dups->Next;
- }
- }
- return pp;
-}
-//------------------------------------------------------------------------------
-
-bool Pt2IsBetweenPt1AndPt3(const IntPoint &pt1,
- const IntPoint &pt2, const IntPoint &pt3)
-{
- if ((pt1 == pt3) || (pt1 == pt2) || (pt3 == pt2))
- return false;
- else if (pt1.X != pt3.X)
- return (pt2.X > pt1.X) == (pt2.X < pt3.X);
- else
- return (pt2.Y > pt1.Y) == (pt2.Y < pt3.Y);
-}
-//------------------------------------------------------------------------------
-
-bool HorzSegmentsOverlap(cInt seg1a, cInt seg1b, cInt seg2a, cInt seg2b)
-{
- if (seg1a > seg1b) std::swap(seg1a, seg1b);
- if (seg2a > seg2b) std::swap(seg2a, seg2b);
- return (seg1a < seg2b) && (seg2a < seg1b);
-}
-
-//------------------------------------------------------------------------------
-// ClipperBase class methods ...
-//------------------------------------------------------------------------------
-
-// Called from ClipperBase::AddPath() to verify the scale of the input polygon coordinates.
-inline void RangeTest(const IntPoint& Pt, bool& useFullRange)
-{
- if (useFullRange)
- {
- if (Pt.X > hiRange || Pt.Y > hiRange || -Pt.X > hiRange || -Pt.Y > hiRange)
- throw clipperException("Coordinate outside allowed range");
- }
- else if (Pt.X > loRange|| Pt.Y > loRange || -Pt.X > loRange || -Pt.Y > loRange)
- {
- useFullRange = true;
- RangeTest(Pt, useFullRange);
- }
-}
-//------------------------------------------------------------------------------
-
-// Called from ClipperBase::AddPath() to construct the Local Minima List.
-// Find a local minimum edge on the path starting with E.
-inline TEdge* FindNextLocMin(TEdge* E)
-{
- for (;;)
- {
- while (E->Bot != E->Prev->Bot || E->Curr == E->Top) E = E->Next;
- if (!IsHorizontal(*E) && !IsHorizontal(*E->Prev)) break;
- while (IsHorizontal(*E->Prev)) E = E->Prev;
- TEdge* E2 = E;
- while (IsHorizontal(*E)) E = E->Next;
- if (E->Top.Y == E->Prev->Bot.Y) continue; //ie just an intermediate horz.
- if (E2->Prev->Bot.X < E->Bot.X) E = E2;
- break;
- }
- return E;
-}
-//------------------------------------------------------------------------------
-
-// Called from ClipperBase::AddPath().
-TEdge* ClipperBase::ProcessBound(TEdge* E, bool NextIsForward)
-{
- TEdge *Result = E;
- TEdge *Horz = 0;
-
- if (E->OutIdx == Skip)
- {
- //if edges still remain in the current bound beyond the skip edge then
- //create another LocMin and call ProcessBound once more
- if (NextIsForward)
- {
- while (E->Top.Y == E->Next->Bot.Y) E = E->Next;
- //don't include top horizontals when parsing a bound a second time,
- //they will be contained in the opposite bound ...
- while (E != Result && IsHorizontal(*E)) E = E->Prev;
- }
- else
- {
- while (E->Top.Y == E->Prev->Bot.Y) E = E->Prev;
- while (E != Result && IsHorizontal(*E)) E = E->Next;
- }
-
- if (E == Result)
- {
- if (NextIsForward) Result = E->Next;
- else Result = E->Prev;
- }
- else
- {
- //there are more edges in the bound beyond result starting with E
- if (NextIsForward)
- E = Result->Next;
- else
- E = Result->Prev;
- LocalMinimum locMin;
- locMin.Y = E->Bot.Y;
- locMin.LeftBound = 0;
- locMin.RightBound = E;
- E->WindDelta = 0;
- Result = ProcessBound(E, NextIsForward);
- m_MinimaList.push_back(locMin);
- }
- return Result;
- }
-
- TEdge *EStart;
-
- if (IsHorizontal(*E))
- {
- //We need to be careful with open paths because this may not be a
- //true local minima (ie E may be following a skip edge).
- //Also, consecutive horz. edges may start heading left before going right.
- if (NextIsForward)
- EStart = E->Prev;
- else
- EStart = E->Next;
- if (IsHorizontal(*EStart)) //ie an adjoining horizontal skip edge
- {
- if (EStart->Bot.X != E->Bot.X && EStart->Top.X != E->Bot.X)
- ReverseHorizontal(*E);
- }
- else if (EStart->Bot.X != E->Bot.X)
- ReverseHorizontal(*E);
- }
-
- EStart = E;
- if (NextIsForward)
- {
- while (Result->Top.Y == Result->Next->Bot.Y && Result->Next->OutIdx != Skip)
- Result = Result->Next;
- if (IsHorizontal(*Result) && Result->Next->OutIdx != Skip)
- {
- //nb: at the top of a bound, horizontals are added to the bound
- //only when the preceding edge attaches to the horizontal's left vertex
- //unless a Skip edge is encountered when that becomes the top divide
- Horz = Result;
- while (IsHorizontal(*Horz->Prev)) Horz = Horz->Prev;
- if (Horz->Prev->Top.X > Result->Next->Top.X) Result = Horz->Prev;
- }
- while (E != Result)
- {
- E->NextInLML = E->Next;
- if (IsHorizontal(*E) && E != EStart &&
- E->Bot.X != E->Prev->Top.X) ReverseHorizontal(*E);
- E = E->Next;
- }
- if (IsHorizontal(*E) && E != EStart && E->Bot.X != E->Prev->Top.X)
- ReverseHorizontal(*E);
- Result = Result->Next; //move to the edge just beyond current bound
- } else
- {
- while (Result->Top.Y == Result->Prev->Bot.Y && Result->Prev->OutIdx != Skip)
- Result = Result->Prev;
- if (IsHorizontal(*Result) && Result->Prev->OutIdx != Skip)
- {
- Horz = Result;
- while (IsHorizontal(*Horz->Next)) Horz = Horz->Next;
- if (Horz->Next->Top.X == Result->Prev->Top.X ||
- Horz->Next->Top.X > Result->Prev->Top.X) Result = Horz->Next;
- }
-
- while (E != Result)
- {
- E->NextInLML = E->Prev;
- if (IsHorizontal(*E) && E != EStart && E->Bot.X != E->Next->Top.X)
- ReverseHorizontal(*E);
- E = E->Prev;
- }
- if (IsHorizontal(*E) && E != EStart && E->Bot.X != E->Next->Top.X)
- ReverseHorizontal(*E);
- Result = Result->Prev; //move to the edge just beyond current bound
- }
-
- return Result;
-}
-//------------------------------------------------------------------------------
-
-bool ClipperBase::AddPath(const Path &pg, PolyType PolyTyp, bool Closed)
-{
- PROFILE_FUNC();
- // Remove duplicate end point from a closed input path.
- // Remove duplicate points from the end of the input path.
- int highI = (int)pg.size() -1;
- if (Closed)
- while (highI > 0 && (pg[highI] == pg[0]))
- --highI;
- while (highI > 0 && (pg[highI] == pg[highI -1]))
- --highI;
- if ((Closed && highI < 2) || (!Closed && highI < 1))
- return false;
-
- // Allocate a new edge array.
- std::vector<TEdge> edges(highI + 1);
- // Fill in the edge array.
- bool result = AddPathInternal(pg, highI, PolyTyp, Closed, edges.data());
- if (result)
- // Success, remember the edge array.
- m_edges.emplace_back(std::move(edges));
- return result;
-}
-
-bool ClipperBase::AddPaths(const Paths &ppg, PolyType PolyTyp, bool Closed)
-{
- PROFILE_FUNC();
- std::vector<int> num_edges(ppg.size(), 0);
- int num_edges_total = 0;
- for (size_t i = 0; i < ppg.size(); ++ i) {
- const Path &pg = ppg[i];
- // Remove duplicate end point from a closed input path.
- // Remove duplicate points from the end of the input path.
- int highI = (int)pg.size() -1;
- if (Closed)
- while (highI > 0 && (pg[highI] == pg[0]))
- --highI;
- while (highI > 0 && (pg[highI] == pg[highI -1]))
- --highI;
- if ((Closed && highI < 2) || (!Closed && highI < 1))
- highI = -1;
- num_edges[i] = highI + 1;
- num_edges_total += highI + 1;
- }
- if (num_edges_total == 0)
- return false;
-
- // Allocate a new edge array.
- std::vector<TEdge> edges(num_edges_total);
- // Fill in the edge array.
- bool result = false;
- TEdge *p_edge = edges.data();
- for (Paths::size_type i = 0; i < ppg.size(); ++i)
- if (num_edges[i]) {
- bool res = AddPathInternal(ppg[i], num_edges[i] - 1, PolyTyp, Closed, p_edge);
- if (res) {
- p_edge += num_edges[i];
- result = true;
- }
- }
- if (result)
- // At least some edges were generated. Remember the edge array.
- m_edges.emplace_back(std::move(edges));
- return result;
-}
-
-bool ClipperBase::AddPathInternal(const Path &pg, int highI, PolyType PolyTyp, bool Closed, TEdge* edges)
-{
- PROFILE_FUNC();
-#ifdef use_lines
- if (!Closed && PolyTyp == ptClip)
- throw clipperException("AddPath: Open paths must be subject.");
-#else
- if (!Closed)
- throw clipperException("AddPath: Open paths have been disabled.");
-#endif
-
- assert(highI >= 0 && highI < pg.size());
-
- //1. Basic (first) edge initialization ...
- try
- {
- edges[1].Curr = pg[1];
- RangeTest(pg[0], m_UseFullRange);
- RangeTest(pg[highI], m_UseFullRange);
- InitEdge(&edges[0], &edges[1], &edges[highI], pg[0]);
- InitEdge(&edges[highI], &edges[0], &edges[highI-1], pg[highI]);
- for (int i = highI - 1; i >= 1; --i)
- {
- RangeTest(pg[i], m_UseFullRange);
- InitEdge(&edges[i], &edges[i+1], &edges[i-1], pg[i]);
- }
- }
- catch(...)
- {
- throw; //range test fails
- }
- TEdge *eStart = &edges[0];
-
- //2. Remove duplicate vertices, and (when closed) collinear edges ...
- TEdge *E = eStart, *eLoopStop = eStart;
- for (;;)
- {
- //nb: allows matching start and end points when not Closed ...
- if (E->Curr == E->Next->Curr && (Closed || E->Next != eStart))
- {
- if (E == E->Next) break;
- if (E == eStart) eStart = E->Next;
- E = RemoveEdge(E);
- eLoopStop = E;
- continue;
- }
- if (E->Prev == E->Next)
- break; //only two vertices
- else if (Closed &&
- SlopesEqual(E->Prev->Curr, E->Curr, E->Next->Curr, m_UseFullRange) &&
- (!m_PreserveCollinear ||
- !Pt2IsBetweenPt1AndPt3(E->Prev->Curr, E->Curr, E->Next->Curr)))
- {
- //Collinear edges are allowed for open paths but in closed paths
- //the default is to merge adjacent collinear edges into a single edge.
- //However, if the PreserveCollinear property is enabled, only overlapping
- //collinear edges (ie spikes) will be removed from closed paths.
- if (E == eStart) eStart = E->Next;
- E = RemoveEdge(E);
- E = E->Prev;
- eLoopStop = E;
- continue;
- }
- E = E->Next;
- if ((E == eLoopStop) || (!Closed && E->Next == eStart)) break;
- }
-
- if ((!Closed && (E == E->Next)) || (Closed && (E->Prev == E->Next)))
- {
- return false;
- }
-
- if (!Closed)
- {
- m_HasOpenPaths = true;
- eStart->Prev->OutIdx = Skip;
- }
-
- //3. Do second stage of edge initialization ...
- // IsFlat means all vertices have the same Y coordinate.
- bool IsFlat = true;
- E = eStart;
- do
- {
- InitEdge2(*E, PolyTyp);
- E = E->Next;
- if (IsFlat && E->Curr.Y != eStart->Curr.Y) IsFlat = false;
- }
- while (E != eStart);
-
- //4. Finally, add edge bounds to LocalMinima list ...
-
- //Totally flat paths must be handled differently when adding them
- //to LocalMinima list to avoid endless loops etc ...
- if (IsFlat)
- {
- if (Closed)
- {
- return false;
- }
- E->Prev->OutIdx = Skip;
- LocalMinimum locMin;
- locMin.Y = E->Bot.Y;
- locMin.LeftBound = 0;
- locMin.RightBound = E;
- locMin.RightBound->Side = esRight;
- locMin.RightBound->WindDelta = 0;
- for (;;)
- {
- if (E->Bot.X != E->Prev->Top.X) ReverseHorizontal(*E);
- if (E->Next->OutIdx == Skip) break;
- E->NextInLML = E->Next;
- E = E->Next;
- }
- m_MinimaList.push_back(locMin);
- return true;
- }
-
- bool leftBoundIsForward;
- TEdge* EMin = 0;
-
- //workaround to avoid an endless loop in the while loop below when
- //open paths have matching start and end points ...
- if (E->Prev->Bot == E->Prev->Top) E = E->Next;
-
- // Find local minima and store them into a Local Minima List.
- // Multiple Local Minima could be created for a single path.
- for (;;)
- {
- E = FindNextLocMin(E);
- if (E == EMin) break;
- else if (!EMin) EMin = E;
-
- //E and E.Prev now share a local minima (left aligned if horizontal).
- //Compare their slopes to find which starts which bound ...
- LocalMinimum locMin;
- locMin.Y = E->Bot.Y;
- if (E->Dx < E->Prev->Dx)
- {
- locMin.LeftBound = E->Prev;
- locMin.RightBound = E;
- leftBoundIsForward = false; //Q.nextInLML = Q.prev
- } else
- {
- locMin.LeftBound = E;
- locMin.RightBound = E->Prev;
- leftBoundIsForward = true; //Q.nextInLML = Q.next
- }
- locMin.LeftBound->Side = esLeft;
- locMin.RightBound->Side = esRight;
-
- if (!Closed) locMin.LeftBound->WindDelta = 0;
- else if (locMin.LeftBound->Next == locMin.RightBound)
- locMin.LeftBound->WindDelta = -1;
- else locMin.LeftBound->WindDelta = 1;
- locMin.RightBound->WindDelta = -locMin.LeftBound->WindDelta;
-
- E = ProcessBound(locMin.LeftBound, leftBoundIsForward);
- if (E->OutIdx == Skip) E = ProcessBound(E, leftBoundIsForward);
-
- TEdge* E2 = ProcessBound(locMin.RightBound, !leftBoundIsForward);
- if (E2->OutIdx == Skip) E2 = ProcessBound(E2, !leftBoundIsForward);
-
- if (locMin.LeftBound->OutIdx == Skip)
- locMin.LeftBound = 0;
- else if (locMin.RightBound->OutIdx == Skip)
- locMin.RightBound = 0;
- m_MinimaList.push_back(locMin);
- if (!leftBoundIsForward) E = E2;
- }
- return true;
-}
-//------------------------------------------------------------------------------
-
-void ClipperBase::Clear()
-{
- PROFILE_FUNC();
- m_MinimaList.clear();
- m_edges.clear();
- m_UseFullRange = false;
- m_HasOpenPaths = false;
-}
-//------------------------------------------------------------------------------
-
-// Initialize the Local Minima List:
-// Sort the LML entries, initialize the left / right bound edges of each Local Minima.
-void ClipperBase::Reset()
-{
- PROFILE_FUNC();
- if (m_MinimaList.empty()) return; //ie nothing to process
- std::sort(m_MinimaList.begin(), m_MinimaList.end(), [](const LocalMinimum& lm1, const LocalMinimum& lm2){ return lm1.Y < lm2.Y; });
-
- //reset all edges ...
- for (LocalMinimum &lm : m_MinimaList) {
- TEdge* e = lm.LeftBound;
- if (e)
- {
- e->Curr = e->Bot;
- e->Side = esLeft;
- e->OutIdx = Unassigned;
- }
-
- e = lm.RightBound;
- if (e)
- {
- e->Curr = e->Bot;
- e->Side = esRight;
- e->OutIdx = Unassigned;
- }
- }
-}
-//------------------------------------------------------------------------------
-
-// Get bounds of the edges referenced by the Local Minima List.
-// Returns (0,0,0,0) for an empty rectangle.
-IntRect ClipperBase::GetBounds()
-{
- PROFILE_FUNC();
- IntRect result;
- auto lm = m_MinimaList.begin();
- if (lm == m_MinimaList.end())
- {
- result.left = result.top = result.right = result.bottom = 0;
- return result;
- }
- result.left = lm->LeftBound->Bot.X;
- result.top = lm->LeftBound->Bot.Y;
- result.right = lm->LeftBound->Bot.X;
- result.bottom = lm->LeftBound->Bot.Y;
- while (lm != m_MinimaList.end())
- {
- result.bottom = std::max(result.bottom, lm->LeftBound->Bot.Y);
- TEdge* e = lm->LeftBound;
- for (;;) {
- TEdge* bottomE = e;
- while (e->NextInLML)
- {
- if (e->Bot.X < result.left) result.left = e->Bot.X;
- if (e->Bot.X > result.right) result.right = e->Bot.X;
- e = e->NextInLML;
- }
- result.left = std::min(result.left, e->Bot.X);
- result.right = std::max(result.right, e->Bot.X);
- result.left = std::min(result.left, e->Top.X);
- result.right = std::max(result.right, e->Top.X);
- result.top = std::min(result.top, e->Top.Y);
- if (bottomE == lm->LeftBound) e = lm->RightBound;
- else break;
- }
- ++lm;
- }
- return result;
-}
-
-//------------------------------------------------------------------------------
-// TClipper methods ...
-//------------------------------------------------------------------------------
-
-Clipper::Clipper(int initOptions) :
- ClipperBase(),
- m_OutPtsFree(nullptr),
- m_OutPtsChunkSize(32),
- m_OutPtsChunkLast(32),
- m_ActiveEdges(nullptr),
- m_SortedEdges(nullptr)
-{
- m_ReverseOutput = ((initOptions & ioReverseSolution) != 0);
- m_StrictSimple = ((initOptions & ioStrictlySimple) != 0);
- m_PreserveCollinear = ((initOptions & ioPreserveCollinear) != 0);
- m_HasOpenPaths = false;
-#ifdef use_xyz
- m_ZFill = 0;
-#endif
-}
-//------------------------------------------------------------------------------
-
-void Clipper::Reset()
-{
- PROFILE_FUNC();
- ClipperBase::Reset();
- m_Scanbeam = std::priority_queue<cInt>();
- m_Maxima.clear();
- m_ActiveEdges = 0;
- m_SortedEdges = 0;
- for (auto lm = m_MinimaList.rbegin(); lm != m_MinimaList.rend(); ++lm)
- m_Scanbeam.push(lm->Y);
-}
-
-//------------------------------------------------------------------------------
-
-bool Clipper::Execute(ClipType clipType, Paths &solution,
- PolyFillType subjFillType, PolyFillType clipFillType)
-{
- PROFILE_FUNC();
- if (m_HasOpenPaths)
- throw clipperException("Error: PolyTree struct is needed for open path clipping.");
- solution.resize(0);
- m_SubjFillType = subjFillType;
- m_ClipFillType = clipFillType;
- m_ClipType = clipType;
- m_UsingPolyTree = false;
- bool succeeded = ExecuteInternal();
- if (succeeded) BuildResult(solution);
- DisposeAllOutRecs();
- return succeeded;
-}
-//------------------------------------------------------------------------------
-
-bool Clipper::Execute(ClipType clipType, PolyTree& polytree,
- PolyFillType subjFillType, PolyFillType clipFillType)
-{
- PROFILE_FUNC();
- m_SubjFillType = subjFillType;
- m_ClipFillType = clipFillType;
- m_ClipType = clipType;
- m_UsingPolyTree = true;
- bool succeeded = ExecuteInternal();
- if (succeeded) BuildResult2(polytree);
- DisposeAllOutRecs();
- return succeeded;
-}
-//------------------------------------------------------------------------------
-
-bool Clipper::ExecuteInternal()
-{
- PROFILE_FUNC();
- bool succeeded = true;
- try {
- PROFILE_BLOCK(Clipper_ExecuteInternal_Process);
- Reset();
- if (m_MinimaList.empty()) return true;
- cInt botY = m_Scanbeam.top();
- do { m_Scanbeam.pop(); } while (! m_Scanbeam.empty() && botY == m_Scanbeam.top());
- do {
- InsertLocalMinimaIntoAEL(botY);
- ProcessHorizontals();
- m_GhostJoins.clear();
- if (m_Scanbeam.empty()) break;
- cInt topY = m_Scanbeam.top();
- do { m_Scanbeam.pop(); } while (! m_Scanbeam.empty() && topY == m_Scanbeam.top());
- succeeded = ProcessIntersections(topY);
- if (!succeeded) break;
- ProcessEdgesAtTopOfScanbeam(topY);
- botY = topY;
- } while (!m_Scanbeam.empty() || !m_MinimaList.empty());
- }
- catch(...)
- {
- succeeded = false;
- }
-
- if (succeeded)
- {
- PROFILE_BLOCK(Clipper_ExecuteInternal_Fix);
-
- //fix orientations ...
- //FIXME Vojtech: Does it not invalidate the loop hierarchy maintained as OutRec::FirstLeft pointers?
- //FIXME Vojtech: The area is calculated with floats, it may not be numerically stable!
- {
- PROFILE_BLOCK(Clipper_ExecuteInternal_Fix_orientations);
- for (OutRec *outRec : m_PolyOuts)
- if (outRec->Pts && !outRec->IsOpen && (outRec->IsHole ^ m_ReverseOutput) == (Area(*outRec) > 0))
- ReversePolyPtLinks(outRec->Pts);
- }
-
- JoinCommonEdges();
-
- //unfortunately FixupOutPolygon() must be done after JoinCommonEdges()
- {
- PROFILE_BLOCK(Clipper_ExecuteInternal_Fix_fixup);
- for (OutRec *outRec : m_PolyOuts)
- if (outRec->Pts) {
- if (outRec->IsOpen)
- // Removes duplicate points.
- FixupOutPolyline(*outRec);
- else
- // Removes duplicate points and simplifies consecutive parallel edges by removing the middle vertex.
- FixupOutPolygon(*outRec);
- }
- }
- // For each polygon, search for exactly duplicate non-successive points.
- // If such a point is found, the loop is split into two pieces.
- // Search for the duplicate points is O(n^2)!
- // http://www.angusj.com/delphi/clipper/documentation/Docs/Units/ClipperLib/Classes/Clipper/Properties/StrictlySimple.htm
- if (m_StrictSimple) DoSimplePolygons();
- }
-
- m_Joins.clear();
- m_GhostJoins.clear();
- return succeeded;
-}
-//------------------------------------------------------------------------------
-
-OutPt* Clipper::AllocateOutPt()
-{
- OutPt *pt;
- if (m_OutPtsFree) {
- // Recycle some of the already released points.
- pt = m_OutPtsFree;
- m_OutPtsFree = pt->Next;
- } else if (m_OutPtsChunkLast < m_OutPtsChunkSize) {
- // Get a point from the last chunk.
- pt = m_OutPts.back() + (m_OutPtsChunkLast ++);
- } else {
- // The last chunk is full. Allocate a new one.
- m_OutPts.push_back(new OutPt[m_OutPtsChunkSize]);
- m_OutPtsChunkLast = 1;
- pt = m_OutPts.back();
- }
- return pt;
-}
-
-void Clipper::DisposeAllOutRecs()
-{
- for (OutPt *pts : m_OutPts)
- delete[] pts;
- for (OutRec *rec : m_PolyOuts)
- delete rec;
- m_OutPts.clear();
- m_OutPtsFree = nullptr;
- m_OutPtsChunkLast = m_OutPtsChunkSize;
- m_PolyOuts.clear();
-}
-//------------------------------------------------------------------------------
-
-void Clipper::SetWindingCount(TEdge &edge) const
-{
- TEdge *e = edge.PrevInAEL;
- //find the edge of the same polytype that immediately preceeds 'edge' in AEL
- while (e && ((e->PolyTyp != edge.PolyTyp) || (e->WindDelta == 0))) e = e->PrevInAEL;
- if (!e)
- {
- edge.WindCnt = (edge.WindDelta == 0 ? 1 : edge.WindDelta);
- edge.WindCnt2 = 0;
- e = m_ActiveEdges; //ie get ready to calc WindCnt2
- }
- else if (edge.WindDelta == 0 && m_ClipType != ctUnion)
- {
- edge.WindCnt = 1;
- edge.WindCnt2 = e->WindCnt2;
- e = e->NextInAEL; //ie get ready to calc WindCnt2
- }
- else if (IsEvenOddFillType(edge))
- {
- //EvenOdd filling ...
- if (edge.WindDelta == 0)
- {
- //are we inside a subj polygon ...
- bool Inside = true;
- TEdge *e2 = e->PrevInAEL;
- while (e2)
- {
- if (e2->PolyTyp == e->PolyTyp && e2->WindDelta != 0)
- Inside = !Inside;
- e2 = e2->PrevInAEL;
- }
- edge.WindCnt = (Inside ? 0 : 1);
- }
- else
- {
- edge.WindCnt = edge.WindDelta;
- }
- edge.WindCnt2 = e->WindCnt2;
- e = e->NextInAEL; //ie get ready to calc WindCnt2
- }
- else
- {
- //nonZero, Positive or Negative filling ...
- if (e->WindCnt * e->WindDelta < 0)
- {
- //prev edge is 'decreasing' WindCount (WC) toward zero
- //so we're outside the previous polygon ...
- if (std::abs(e->WindCnt) > 1)
- {
- //outside prev poly but still inside another.
- //when reversing direction of prev poly use the same WC
- if (e->WindDelta * edge.WindDelta < 0) edge.WindCnt = e->WindCnt;
- //otherwise continue to 'decrease' WC ...
- else edge.WindCnt = e->WindCnt + edge.WindDelta;
- }
- else
- //now outside all polys of same polytype so set own WC ...
- edge.WindCnt = (edge.WindDelta == 0 ? 1 : edge.WindDelta);
- } else
- {
- //prev edge is 'increasing' WindCount (WC) away from zero
- //so we're inside the previous polygon ...
- if (edge.WindDelta == 0)
- edge.WindCnt = (e->WindCnt < 0 ? e->WindCnt - 1 : e->WindCnt + 1);
- //if wind direction is reversing prev then use same WC
- else if (e->WindDelta * edge.WindDelta < 0) edge.WindCnt = e->WindCnt;
- //otherwise add to WC ...
- else edge.WindCnt = e->WindCnt + edge.WindDelta;
- }
- edge.WindCnt2 = e->WindCnt2;
- e = e->NextInAEL; //ie get ready to calc WindCnt2
- }
-
- //update WindCnt2 ...
- if (IsEvenOddAltFillType(edge))
- {
- //EvenOdd filling ...
- while (e != &edge)
- {
- if (e->WindDelta != 0)
- edge.WindCnt2 = (edge.WindCnt2 == 0 ? 1 : 0);
- e = e->NextInAEL;
- }
- } else
- {
- //nonZero, Positive or Negative filling ...
- while ( e != &edge )
- {
- edge.WindCnt2 += e->WindDelta;
- e = e->NextInAEL;
- }
- }
-}
-//------------------------------------------------------------------------------
-
-bool Clipper::IsContributing(const TEdge& edge) const
-{
- PolyFillType pft, pft2;
- if (edge.PolyTyp == ptSubject)
- {
- pft = m_SubjFillType;
- pft2 = m_ClipFillType;
- } else
- {
- pft = m_ClipFillType;
- pft2 = m_SubjFillType;
- }
-
- switch(pft)
- {
- case pftEvenOdd:
- //return false if a subj line has been flagged as inside a subj polygon
- if (edge.WindDelta == 0 && edge.WindCnt != 1) return false;
- break;
- case pftNonZero:
- if (std::abs(edge.WindCnt) != 1) return false;
- break;
- case pftPositive:
- if (edge.WindCnt != 1) return false;
- break;
- default: //pftNegative
- if (edge.WindCnt != -1) return false;
- }
-
- switch(m_ClipType)
- {
- case ctIntersection:
- switch(pft2)
- {
- case pftEvenOdd:
- case pftNonZero:
- return (edge.WindCnt2 != 0);
- case pftPositive:
- return (edge.WindCnt2 > 0);
- default:
- return (edge.WindCnt2 < 0);
- }
- break;
- case ctUnion:
- switch(pft2)
- {
- case pftEvenOdd:
- case pftNonZero:
- return (edge.WindCnt2 == 0);
- case pftPositive:
- return (edge.WindCnt2 <= 0);
- default:
- return (edge.WindCnt2 >= 0);
- }
- break;
- case ctDifference:
- if (edge.PolyTyp == ptSubject)
- switch(pft2)
- {
- case pftEvenOdd:
- case pftNonZero:
- return (edge.WindCnt2 == 0);
- case pftPositive:
- return (edge.WindCnt2 <= 0);
- default:
- return (edge.WindCnt2 >= 0);
- }
- else
- switch(pft2)
- {
- case pftEvenOdd:
- case pftNonZero:
- return (edge.WindCnt2 != 0);
- case pftPositive:
- return (edge.WindCnt2 > 0);
- default:
- return (edge.WindCnt2 < 0);
- }
- break;
- case ctXor:
- if (edge.WindDelta == 0) //XOr always contributing unless open
- switch(pft2)
- {
- case pftEvenOdd:
- case pftNonZero:
- return (edge.WindCnt2 == 0);
- case pftPositive:
- return (edge.WindCnt2 <= 0);
- default:
- return (edge.WindCnt2 >= 0);
- }
- else
- return true;
- break;
- default:
- return true;
- }
-}
-//------------------------------------------------------------------------------
-
-// Called from Clipper::InsertLocalMinimaIntoAEL() and Clipper::IntersectEdges().
-OutPt* Clipper::AddLocalMinPoly(TEdge *e1, TEdge *e2, const IntPoint &Pt)
-{
- PROFILE_FUNC();
- OutPt* result;
- TEdge *e, *prevE;
- if (IsHorizontal(*e2) || ( e1->Dx > e2->Dx ))
- {
- result = AddOutPt(e1, Pt);
- e2->OutIdx = e1->OutIdx;
- e1->Side = esLeft;
- e2->Side = esRight;
- e = e1;
- if (e->PrevInAEL == e2)
- prevE = e2->PrevInAEL;
- else
- prevE = e->PrevInAEL;
- } else
- {
- result = AddOutPt(e2, Pt);
- e1->OutIdx = e2->OutIdx;
- e1->Side = esRight;
- e2->Side = esLeft;
- e = e2;
- if (e->PrevInAEL == e1)
- prevE = e1->PrevInAEL;
- else
- prevE = e->PrevInAEL;
- }
-
- if (prevE && prevE->OutIdx >= 0 &&
- (TopX(*prevE, Pt.Y) == TopX(*e, Pt.Y)) &&
- SlopesEqual(*e, *prevE, m_UseFullRange) &&
- (e->WindDelta != 0) && (prevE->WindDelta != 0))
- {
- OutPt* outPt = AddOutPt(prevE, Pt);
- m_Joins.emplace_back(Join(result, outPt, e->Top));
- }
- return result;
-}
-//------------------------------------------------------------------------------
-
-void Clipper::AddLocalMaxPoly(TEdge *e1, TEdge *e2, const IntPoint &Pt)
-{
- AddOutPt( e1, Pt );
- if (e2->WindDelta == 0) AddOutPt(e2, Pt);
- if( e1->OutIdx == e2->OutIdx )
- {
- e1->OutIdx = Unassigned;
- e2->OutIdx = Unassigned;
- }
- else if (e1->OutIdx < e2->OutIdx)
- AppendPolygon(e1, e2);
- else
- AppendPolygon(e2, e1);
-}
-//------------------------------------------------------------------------------
-
-void Clipper::AddEdgeToSEL(TEdge *edge)
-{
- //SEL pointers in PEdge are reused to build a list of horizontal edges.
- //However, we don't need to worry about order with horizontal edge processing.
- if( !m_SortedEdges )
- {
- m_SortedEdges = edge;
- edge->PrevInSEL = 0;
- edge->NextInSEL = 0;
- }
- else
- {
- edge->NextInSEL = m_SortedEdges;
- edge->PrevInSEL = 0;
- m_SortedEdges->PrevInSEL = edge;
- m_SortedEdges = edge;
- }
-}
-//------------------------------------------------------------------------------
-
-void Clipper::CopyAELToSEL()
-{
- TEdge* e = m_ActiveEdges;
- m_SortedEdges = e;
- while ( e )
- {
- e->PrevInSEL = e->PrevInAEL;
- e->NextInSEL = e->NextInAEL;
- e = e->NextInAEL;
- }
-}
-
-//------------------------------------------------------------------------------
-
-// Called from Clipper::ExecuteInternal()
-void Clipper::InsertLocalMinimaIntoAEL(const cInt botY)
-{
- PROFILE_FUNC();
- while (!m_MinimaList.empty() && m_MinimaList.back().Y == botY)
- {
- TEdge* lb = m_MinimaList.back().LeftBound;
- TEdge* rb = m_MinimaList.back().RightBound;
- m_MinimaList.pop_back();
-
- OutPt *Op1 = 0;
- if (!lb)
- {
- //nb: don't insert LB into either AEL or SEL
- InsertEdgeIntoAEL(rb, 0);
- SetWindingCount(*rb);
- if (IsContributing(*rb))
- Op1 = AddOutPt(rb, rb->Bot);
- }
- else if (!rb)
- {
- InsertEdgeIntoAEL(lb, 0);
- SetWindingCount(*lb);
- if (IsContributing(*lb))
- Op1 = AddOutPt(lb, lb->Bot);
- m_Scanbeam.push(lb->Top.Y);
- }
- else
- {
- InsertEdgeIntoAEL(lb, 0);
- InsertEdgeIntoAEL(rb, lb);
- SetWindingCount( *lb );
- rb->WindCnt = lb->WindCnt;
- rb->WindCnt2 = lb->WindCnt2;
- if (IsContributing(*lb))
- Op1 = AddLocalMinPoly(lb, rb, lb->Bot);
- m_Scanbeam.push(lb->Top.Y);
- }
-
- if (rb)
- {
- if(IsHorizontal(*rb)) AddEdgeToSEL(rb);
- else m_Scanbeam.push(rb->Top.Y);
- }
-
- if (!lb || !rb) continue;
-
- //if any output polygons share an edge, they'll need joining later ...
- if (Op1 && IsHorizontal(*rb) &&
- m_GhostJoins.size() > 0 && (rb->WindDelta != 0))
- {
- for (Join &jr : m_GhostJoins)
- //if the horizontal Rb and a 'ghost' horizontal overlap, then convert
- //the 'ghost' join to a real join ready for later ...
- if (HorzSegmentsOverlap(jr.OutPt1->Pt.X, jr.OffPt.X, rb->Bot.X, rb->Top.X))
- m_Joins.emplace_back(Join(jr.OutPt1, Op1, jr.OffPt));
- }
-
- if (lb->OutIdx >= 0 && lb->PrevInAEL &&
- lb->PrevInAEL->Curr.X == lb->Bot.X &&
- lb->PrevInAEL->OutIdx >= 0 &&
- SlopesEqual(*lb->PrevInAEL, *lb, m_UseFullRange) &&
- (lb->WindDelta != 0) && (lb->PrevInAEL->WindDelta != 0))
- {
- OutPt *Op2 = AddOutPt(lb->PrevInAEL, lb->Bot);
- m_Joins.emplace_back(Join(Op1, Op2, lb->Top));
- }
-
- if(lb->NextInAEL != rb)
- {
-
- if (rb->OutIdx >= 0 && rb->PrevInAEL->OutIdx >= 0 &&
- SlopesEqual(*rb->PrevInAEL, *rb, m_UseFullRange) &&
- (rb->WindDelta != 0) && (rb->PrevInAEL->WindDelta != 0))
- {
- OutPt *Op2 = AddOutPt(rb->PrevInAEL, rb->Bot);
- m_Joins.emplace_back(Join(Op1, Op2, rb->Top));
- }
-
- TEdge* e = lb->NextInAEL;
- if (e)
- {
- while( e != rb )
- {
- //nb: For calculating winding counts etc, IntersectEdges() assumes
- //that param1 will be to the Right of param2 ABOVE the intersection ...
- IntersectEdges(rb , e , lb->Curr); //order important here
- e = e->NextInAEL;
- }
- }
- }
-
- }
-}
-//------------------------------------------------------------------------------
-
-void Clipper::DeleteFromAEL(TEdge *e)
-{
- TEdge* AelPrev = e->PrevInAEL;
- TEdge* AelNext = e->NextInAEL;
- if( !AelPrev && !AelNext && (e != m_ActiveEdges) ) return; //already deleted
- if( AelPrev ) AelPrev->NextInAEL = AelNext;
- else m_ActiveEdges = AelNext;
- if( AelNext ) AelNext->PrevInAEL = AelPrev;
- e->NextInAEL = 0;
- e->PrevInAEL = 0;
-}
-//------------------------------------------------------------------------------
-
-void Clipper::DeleteFromSEL(TEdge *e)
-{
- TEdge* SelPrev = e->PrevInSEL;
- TEdge* SelNext = e->NextInSEL;
- if( !SelPrev && !SelNext && (e != m_SortedEdges) ) return; //already deleted
- if( SelPrev ) SelPrev->NextInSEL = SelNext;
- else m_SortedEdges = SelNext;
- if( SelNext ) SelNext->PrevInSEL = SelPrev;
- e->NextInSEL = 0;
- e->PrevInSEL = 0;
-}
-//------------------------------------------------------------------------------
-
-#ifdef use_xyz
-void Clipper::SetZ(IntPoint& pt, TEdge& e1, TEdge& e2)
-{
- if (pt.Z != 0 || !m_ZFill) return;
- else if (pt == e1.Bot) pt.Z = e1.Bot.Z;
- else if (pt == e1.Top) pt.Z = e1.Top.Z;
- else if (pt == e2.Bot) pt.Z = e2.Bot.Z;
- else if (pt == e2.Top) pt.Z = e2.Top.Z;
- else (*m_ZFill)(e1.Bot, e1.Top, e2.Bot, e2.Top, pt);
-}
-//------------------------------------------------------------------------------
-#endif
-
-void Clipper::IntersectEdges(TEdge *e1, TEdge *e2, IntPoint &Pt)
-{
- bool e1Contributing = ( e1->OutIdx >= 0 );
- bool e2Contributing = ( e2->OutIdx >= 0 );
-
-#ifdef use_xyz
- SetZ(Pt, *e1, *e2);
-#endif
-
-#ifdef use_lines
- //if either edge is on an OPEN path ...
- if (e1->WindDelta == 0 || e2->WindDelta == 0)
- {
- //ignore subject-subject open path intersections UNLESS they
- //are both open paths, AND they are both 'contributing maximas' ...
- if (e1->WindDelta == 0 && e2->WindDelta == 0) return;
-
- //if intersecting a subj line with a subj poly ...
- else if (e1->PolyTyp == e2->PolyTyp &&
- e1->WindDelta != e2->WindDelta && m_ClipType == ctUnion)
- {
- if (e1->WindDelta == 0)
- {
- if (e2Contributing)
- {
- AddOutPt(e1, Pt);
- if (e1Contributing) e1->OutIdx = Unassigned;
- }
- }
- else
- {
- if (e1Contributing)
- {
- AddOutPt(e2, Pt);
- if (e2Contributing) e2->OutIdx = Unassigned;
- }
- }
- }
- else if (e1->PolyTyp != e2->PolyTyp)
- {
- //toggle subj open path OutIdx on/off when Abs(clip.WndCnt) == 1 ...
- if ((e1->WindDelta == 0) && std::abs(e2->WindCnt) == 1 &&
- (m_ClipType != ctUnion || e2->WindCnt2 == 0))
- {
- AddOutPt(e1, Pt);
- if (e1Contributing) e1->OutIdx = Unassigned;
- }
- else if ((e2->WindDelta == 0) && (std::abs(e1->WindCnt) == 1) &&
- (m_ClipType != ctUnion || e1->WindCnt2 == 0))
- {
- AddOutPt(e2, Pt);
- if (e2Contributing) e2->OutIdx = Unassigned;
- }
- }
- return;
- }
-#endif
-
- //update winding counts...
- //assumes that e1 will be to the Right of e2 ABOVE the intersection
- if ( e1->PolyTyp == e2->PolyTyp )
- {
- if ( IsEvenOddFillType( *e1) )
- {
- int oldE1WindCnt = e1->WindCnt;
- e1->WindCnt = e2->WindCnt;
- e2->WindCnt = oldE1WindCnt;
- } else
- {
- if (e1->WindCnt + e2->WindDelta == 0 ) e1->WindCnt = -e1->WindCnt;
- else e1->WindCnt += e2->WindDelta;
- if ( e2->WindCnt - e1->WindDelta == 0 ) e2->WindCnt = -e2->WindCnt;
- else e2->WindCnt -= e1->WindDelta;
- }
- } else
- {
- if (!IsEvenOddFillType(*e2)) e1->WindCnt2 += e2->WindDelta;
- else e1->WindCnt2 = ( e1->WindCnt2 == 0 ) ? 1 : 0;
- if (!IsEvenOddFillType(*e1)) e2->WindCnt2 -= e1->WindDelta;
- else e2->WindCnt2 = ( e2->WindCnt2 == 0 ) ? 1 : 0;
- }
-
- PolyFillType e1FillType, e2FillType, e1FillType2, e2FillType2;
- if (e1->PolyTyp == ptSubject)
- {
- e1FillType = m_SubjFillType;
- e1FillType2 = m_ClipFillType;
- } else
- {
- e1FillType = m_ClipFillType;
- e1FillType2 = m_SubjFillType;
- }
- if (e2->PolyTyp == ptSubject)
- {
- e2FillType = m_SubjFillType;
- e2FillType2 = m_ClipFillType;
- } else
- {
- e2FillType = m_ClipFillType;
- e2FillType2 = m_SubjFillType;
- }
-
- cInt e1Wc, e2Wc;
- switch (e1FillType)
- {
- case pftPositive: e1Wc = e1->WindCnt; break;
- case pftNegative: e1Wc = -e1->WindCnt; break;
- default: e1Wc = std::abs(e1->WindCnt);
- }
- switch(e2FillType)
- {
- case pftPositive: e2Wc = e2->WindCnt; break;
- case pftNegative: e2Wc = -e2->WindCnt; break;
- default: e2Wc = std::abs(e2->WindCnt);
- }
-
- if ( e1Contributing && e2Contributing )
- {
- if ((e1Wc != 0 && e1Wc != 1) || (e2Wc != 0 && e2Wc != 1) ||
- (e1->PolyTyp != e2->PolyTyp && m_ClipType != ctXor) )
- {
- AddLocalMaxPoly(e1, e2, Pt);
- }
- else
- {
- AddOutPt(e1, Pt);
- AddOutPt(e2, Pt);
- std::swap(e1->Side, e2->Side);
- std::swap(e1->OutIdx, e2->OutIdx);
- }
- }
- else if ( e1Contributing )
- {
- if (e2Wc == 0 || e2Wc == 1)
- {
- AddOutPt(e1, Pt);
- std::swap(e1->Side, e2->Side);
- std::swap(e1->OutIdx, e2->OutIdx);
- }
- }
- else if ( e2Contributing )
- {
- if (e1Wc == 0 || e1Wc == 1)
- {
- AddOutPt(e2, Pt);
- std::swap(e1->Side, e2->Side);
- std::swap(e1->OutIdx, e2->OutIdx);
- }
- }
- else if ( (e1Wc == 0 || e1Wc == 1) && (e2Wc == 0 || e2Wc == 1))
- {
- //neither edge is currently contributing ...
-
- cInt e1Wc2, e2Wc2;
- switch (e1FillType2)
- {
- case pftPositive: e1Wc2 = e1->WindCnt2; break;
- case pftNegative : e1Wc2 = -e1->WindCnt2; break;
- default: e1Wc2 = std::abs(e1->WindCnt2);
- }
- switch (e2FillType2)
- {
- case pftPositive: e2Wc2 = e2->WindCnt2; break;
- case pftNegative: e2Wc2 = -e2->WindCnt2; break;
- default: e2Wc2 = std::abs(e2->WindCnt2);
- }
-
- if (e1->PolyTyp != e2->PolyTyp)
- {
- AddLocalMinPoly(e1, e2, Pt);
- }
- else if (e1Wc == 1 && e2Wc == 1)
- switch( m_ClipType ) {
- case ctIntersection:
- if (e1Wc2 > 0 && e2Wc2 > 0)
- AddLocalMinPoly(e1, e2, Pt);
- break;
- case ctUnion:
- if ( e1Wc2 <= 0 && e2Wc2 <= 0 )
- AddLocalMinPoly(e1, e2, Pt);
- break;
- case ctDifference:
- if (((e1->PolyTyp == ptClip) && (e1Wc2 > 0) && (e2Wc2 > 0)) ||
- ((e1->PolyTyp == ptSubject) && (e1Wc2 <= 0) && (e2Wc2 <= 0)))
- AddLocalMinPoly(e1, e2, Pt);
- break;
- case ctXor:
- AddLocalMinPoly(e1, e2, Pt);
- }
- else
- std::swap(e1->Side, e2->Side);
- }
-}
-//------------------------------------------------------------------------------
-
-void Clipper::SetHoleState(TEdge *e, OutRec *outrec) const
-{
- bool IsHole = false;
- TEdge *e2 = e->PrevInAEL;
- while (e2)
- {
- if (e2->OutIdx >= 0 && e2->WindDelta != 0)
- {
- IsHole = !IsHole;
- if (! outrec->FirstLeft)
- outrec->FirstLeft = m_PolyOuts[e2->OutIdx];
- }
- e2 = e2->PrevInAEL;
- }
- if (IsHole) outrec->IsHole = true;
-}
-//------------------------------------------------------------------------------
-
-OutRec* GetLowermostRec(OutRec *outRec1, OutRec *outRec2)
-{
- //work out which polygon fragment has the correct hole state ...
- if (!outRec1->BottomPt)
- outRec1->BottomPt = GetBottomPt(outRec1->Pts);
- if (!outRec2->BottomPt)
- outRec2->BottomPt = GetBottomPt(outRec2->Pts);
- OutPt *OutPt1 = outRec1->BottomPt;
- OutPt *OutPt2 = outRec2->BottomPt;
- if (OutPt1->Pt.Y > OutPt2->Pt.Y) return outRec1;
- else if (OutPt1->Pt.Y < OutPt2->Pt.Y) return outRec2;
- else if (OutPt1->Pt.X < OutPt2->Pt.X) return outRec1;
- else if (OutPt1->Pt.X > OutPt2->Pt.X) return outRec2;
- else if (OutPt1->Next == OutPt1) return outRec2;
- else if (OutPt2->Next == OutPt2) return outRec1;
- else if (FirstIsBottomPt(OutPt1, OutPt2)) return outRec1;
- else return outRec2;
-}
-//------------------------------------------------------------------------------
-
-bool Param1RightOfParam2(OutRec* outRec1, OutRec* outRec2)
-{
- do
- {
- outRec1 = outRec1->FirstLeft;
- if (outRec1 == outRec2) return true;
- } while (outRec1);
- return false;
-}
-//------------------------------------------------------------------------------
-
-OutRec* Clipper::GetOutRec(int Idx)
-{
- OutRec* outrec = m_PolyOuts[Idx];
- while (outrec != m_PolyOuts[outrec->Idx])
- outrec = m_PolyOuts[outrec->Idx];
- return outrec;
-}
-//------------------------------------------------------------------------------
-
-void Clipper::AppendPolygon(TEdge *e1, TEdge *e2) const
-{
- //get the start and ends of both output polygons ...
- OutRec *outRec1 = m_PolyOuts[e1->OutIdx];
- OutRec *outRec2 = m_PolyOuts[e2->OutIdx];
-
- OutRec *holeStateRec;
- if (Param1RightOfParam2(outRec1, outRec2))
- holeStateRec = outRec2;
- else if (Param1RightOfParam2(outRec2, outRec1))
- holeStateRec = outRec1;
- else
- holeStateRec = GetLowermostRec(outRec1, outRec2);
-
- //get the start and ends of both output polygons and
- //join e2 poly onto e1 poly and delete pointers to e2 ...
-
- OutPt* p1_lft = outRec1->Pts;
- OutPt* p1_rt = p1_lft->Prev;
- OutPt* p2_lft = outRec2->Pts;
- OutPt* p2_rt = p2_lft->Prev;
-
- EdgeSide Side;
- //join e2 poly onto e1 poly and delete pointers to e2 ...
- if( e1->Side == esLeft )
- {
- if( e2->Side == esLeft )
- {
- //z y x a b c
- ReversePolyPtLinks(p2_lft);
- p2_lft->Next = p1_lft;
- p1_lft->Prev = p2_lft;
- p1_rt->Next = p2_rt;
- p2_rt->Prev = p1_rt;
- outRec1->Pts = p2_rt;
- } else
- {
- //x y z a b c
- p2_rt->Next = p1_lft;
- p1_lft->Prev = p2_rt;
- p2_lft->Prev = p1_rt;
- p1_rt->Next = p2_lft;
- outRec1->Pts = p2_lft;
- }
- Side = esLeft;
- } else
- {
- if( e2->Side == esRight )
- {
- //a b c z y x
- ReversePolyPtLinks(p2_lft);
- p1_rt->Next = p2_rt;
- p2_rt->Prev = p1_rt;
- p2_lft->Next = p1_lft;
- p1_lft->Prev = p2_lft;
- } else
- {
- //a b c x y z
- p1_rt->Next = p2_lft;
- p2_lft->Prev = p1_rt;
- p1_lft->Prev = p2_rt;
- p2_rt->Next = p1_lft;
- }
- Side = esRight;
- }
-
- outRec1->BottomPt = 0;
- if (holeStateRec == outRec2)
- {
- if (outRec2->FirstLeft != outRec1)
- outRec1->FirstLeft = outRec2->FirstLeft;
- outRec1->IsHole = outRec2->IsHole;
- }
- outRec2->Pts = 0;
- outRec2->BottomPt = 0;
- outRec2->FirstLeft = outRec1;
-
- int OKIdx = e1->OutIdx;
- int ObsoleteIdx = e2->OutIdx;
-
- e1->OutIdx = Unassigned; //nb: safe because we only get here via AddLocalMaxPoly
- e2->OutIdx = Unassigned;
-
- TEdge* e = m_ActiveEdges;
- while( e )
- {
- if( e->OutIdx == ObsoleteIdx )
- {
- e->OutIdx = OKIdx;
- e->Side = Side;
- break;
- }
- e = e->NextInAEL;
- }
-
- outRec2->Idx = outRec1->Idx;
-}
-//------------------------------------------------------------------------------
-
-OutRec* Clipper::CreateOutRec()
-{
- OutRec* result = new OutRec;
- result->IsHole = false;
- result->IsOpen = false;
- result->FirstLeft = 0;
- result->Pts = 0;
- result->BottomPt = 0;
- result->PolyNd = 0;
- m_PolyOuts.push_back(result);
- result->Idx = (int)m_PolyOuts.size()-1;
- return result;
-}
-//------------------------------------------------------------------------------
-
-OutPt* Clipper::AddOutPt(TEdge *e, const IntPoint &pt)
-{
- if( e->OutIdx < 0 )
- {
- OutRec *outRec = CreateOutRec();
- outRec->IsOpen = (e->WindDelta == 0);
- OutPt* newOp = this->AllocateOutPt();
- outRec->Pts = newOp;
- newOp->Idx = outRec->Idx;
- newOp->Pt = pt;
- newOp->Next = newOp;
- newOp->Prev = newOp;
- if (!outRec->IsOpen)
- SetHoleState(e, outRec);
- e->OutIdx = outRec->Idx;
- return newOp;
- } else
- {
- OutRec *outRec = m_PolyOuts[e->OutIdx];
- //OutRec.Pts is the 'Left-most' point & OutRec.Pts.Prev is the 'Right-most'
- OutPt* op = outRec->Pts;
-
- bool ToFront = (e->Side == esLeft);
- if (ToFront && (pt == op->Pt)) return op;
- else if (!ToFront && (pt == op->Prev->Pt)) return op->Prev;
-
- OutPt* newOp = this->AllocateOutPt();
- newOp->Idx = outRec->Idx;
- newOp->Pt = pt;
- newOp->Next = op;
- newOp->Prev = op->Prev;
- newOp->Prev->Next = newOp;
- op->Prev = newOp;
- if (ToFront) outRec->Pts = newOp;
- return newOp;
- }
-}
-//------------------------------------------------------------------------------
-
-OutPt* Clipper::GetLastOutPt(TEdge *e)
-{
- OutRec *outRec = m_PolyOuts[e->OutIdx];
- if (e->Side == esLeft)
- return outRec->Pts;
- else
- return outRec->Pts->Prev;
-}
-//------------------------------------------------------------------------------
-
-void Clipper::ProcessHorizontals()
-{
- PROFILE_FUNC();
- TEdge* horzEdge = m_SortedEdges;
- while(horzEdge)
- {
- DeleteFromSEL(horzEdge);
- ProcessHorizontal(horzEdge);
- horzEdge = m_SortedEdges;
- }
-}
-//------------------------------------------------------------------------------
-
-inline bool IsMaxima(TEdge *e, const cInt Y)
-{
- return e && e->Top.Y == Y && !e->NextInLML;
-}
-//------------------------------------------------------------------------------
-
-inline bool IsIntermediate(TEdge *e, const cInt Y)
-{
- return e->Top.Y == Y && e->NextInLML;
-}
-//------------------------------------------------------------------------------
-
-inline TEdge *GetMaximaPair(TEdge *e)
-{
- TEdge* result = 0;
- if ((e->Next->Top == e->Top) && !e->Next->NextInLML)
- result = e->Next;
- else if ((e->Prev->Top == e->Top) && !e->Prev->NextInLML)
- result = e->Prev;
-
- if (result && (result->OutIdx == Skip ||
- //result is false if both NextInAEL & PrevInAEL are nil & not horizontal ...
- (result->NextInAEL == result->PrevInAEL && !IsHorizontal(*result))))
- return 0;
- return result;
-}
-//------------------------------------------------------------------------------
-
-void Clipper::SwapPositionsInAEL(TEdge *Edge1, TEdge *Edge2)
-{
- //check that one or other edge hasn't already been removed from AEL ...
- if (Edge1->NextInAEL == Edge1->PrevInAEL ||
- Edge2->NextInAEL == Edge2->PrevInAEL) return;
-
- if( Edge1->NextInAEL == Edge2 )
- {
- TEdge* Next = Edge2->NextInAEL;
- if( Next ) Next->PrevInAEL = Edge1;
- TEdge* Prev = Edge1->PrevInAEL;
- if( Prev ) Prev->NextInAEL = Edge2;
- Edge2->PrevInAEL = Prev;
- Edge2->NextInAEL = Edge1;
- Edge1->PrevInAEL = Edge2;
- Edge1->NextInAEL = Next;
- }
- else if( Edge2->NextInAEL == Edge1 )
- {
- TEdge* Next = Edge1->NextInAEL;
- if( Next ) Next->PrevInAEL = Edge2;
- TEdge* Prev = Edge2->PrevInAEL;
- if( Prev ) Prev->NextInAEL = Edge1;
- Edge1->PrevInAEL = Prev;
- Edge1->NextInAEL = Edge2;
- Edge2->PrevInAEL = Edge1;
- Edge2->NextInAEL = Next;
- }
- else
- {
- TEdge* Next = Edge1->NextInAEL;
- TEdge* Prev = Edge1->PrevInAEL;
- Edge1->NextInAEL = Edge2->NextInAEL;
- if( Edge1->NextInAEL ) Edge1->NextInAEL->PrevInAEL = Edge1;
- Edge1->PrevInAEL = Edge2->PrevInAEL;
- if( Edge1->PrevInAEL ) Edge1->PrevInAEL->NextInAEL = Edge1;
- Edge2->NextInAEL = Next;
- if( Edge2->NextInAEL ) Edge2->NextInAEL->PrevInAEL = Edge2;
- Edge2->PrevInAEL = Prev;
- if( Edge2->PrevInAEL ) Edge2->PrevInAEL->NextInAEL = Edge2;
- }
-
- if( !Edge1->PrevInAEL ) m_ActiveEdges = Edge1;
- else if( !Edge2->PrevInAEL ) m_ActiveEdges = Edge2;
-}
-//------------------------------------------------------------------------------
-
-void Clipper::SwapPositionsInSEL(TEdge *Edge1, TEdge *Edge2)
-{
- if( !( Edge1->NextInSEL ) && !( Edge1->PrevInSEL ) ) return;
- if( !( Edge2->NextInSEL ) && !( Edge2->PrevInSEL ) ) return;
-
- if( Edge1->NextInSEL == Edge2 )
- {
- TEdge* Next = Edge2->NextInSEL;
- if( Next ) Next->PrevInSEL = Edge1;
- TEdge* Prev = Edge1->PrevInSEL;
- if( Prev ) Prev->NextInSEL = Edge2;
- Edge2->PrevInSEL = Prev;
- Edge2->NextInSEL = Edge1;
- Edge1->PrevInSEL = Edge2;
- Edge1->NextInSEL = Next;
- }
- else if( Edge2->NextInSEL == Edge1 )
- {
- TEdge* Next = Edge1->NextInSEL;
- if( Next ) Next->PrevInSEL = Edge2;
- TEdge* Prev = Edge2->PrevInSEL;
- if( Prev ) Prev->NextInSEL = Edge1;
- Edge1->PrevInSEL = Prev;
- Edge1->NextInSEL = Edge2;
- Edge2->PrevInSEL = Edge1;
- Edge2->NextInSEL = Next;
- }
- else
- {
- TEdge* Next = Edge1->NextInSEL;
- TEdge* Prev = Edge1->PrevInSEL;
- Edge1->NextInSEL = Edge2->NextInSEL;
- if( Edge1->NextInSEL ) Edge1->NextInSEL->PrevInSEL = Edge1;
- Edge1->PrevInSEL = Edge2->PrevInSEL;
- if( Edge1->PrevInSEL ) Edge1->PrevInSEL->NextInSEL = Edge1;
- Edge2->NextInSEL = Next;
- if( Edge2->NextInSEL ) Edge2->NextInSEL->PrevInSEL = Edge2;
- Edge2->PrevInSEL = Prev;
- if( Edge2->PrevInSEL ) Edge2->PrevInSEL->NextInSEL = Edge2;
- }
-
- if( !Edge1->PrevInSEL ) m_SortedEdges = Edge1;
- else if( !Edge2->PrevInSEL ) m_SortedEdges = Edge2;
-}
-//------------------------------------------------------------------------------
-
-inline void GetHorzDirection(TEdge& HorzEdge, Direction& Dir, cInt& Left, cInt& Right)
-{
- if (HorzEdge.Bot.X < HorzEdge.Top.X)
- {
- Left = HorzEdge.Bot.X;
- Right = HorzEdge.Top.X;
- Dir = dLeftToRight;
- } else
- {
- Left = HorzEdge.Top.X;
- Right = HorzEdge.Bot.X;
- Dir = dRightToLeft;
- }
-}
-//------------------------------------------------------------------------
-
-/*******************************************************************************
-* Notes: Horizontal edges (HEs) at scanline intersections (ie at the Top or *
-* Bottom of a scanbeam) are processed as if layered. The order in which HEs *
-* are processed doesn't matter. HEs intersect with other HE Bot.Xs only [#] *
-* (or they could intersect with Top.Xs only, ie EITHER Bot.Xs OR Top.Xs), *
-* and with other non-horizontal edges [*]. Once these intersections are *
-* processed, intermediate HEs then 'promote' the Edge above (NextInLML) into *
-* the AEL. These 'promoted' edges may in turn intersect [%] with other HEs. *
-*******************************************************************************/
-
-void Clipper::ProcessHorizontal(TEdge *horzEdge)
-{
- Direction dir;
- cInt horzLeft, horzRight;
- bool IsOpen = (horzEdge->OutIdx >= 0 && m_PolyOuts[horzEdge->OutIdx]->IsOpen);
-
- GetHorzDirection(*horzEdge, dir, horzLeft, horzRight);
-
- TEdge* eLastHorz = horzEdge, *eMaxPair = 0;
- while (eLastHorz->NextInLML && IsHorizontal(*eLastHorz->NextInLML))
- eLastHorz = eLastHorz->NextInLML;
- if (!eLastHorz->NextInLML)
- eMaxPair = GetMaximaPair(eLastHorz);
-
- std::vector<cInt>::const_iterator maxIt;
- std::vector<cInt>::const_reverse_iterator maxRit;
- if (!m_Maxima.empty())
- {
- //get the first maxima in range (X) ...
- if (dir == dLeftToRight)
- {
- maxIt = m_Maxima.begin();
- while (maxIt != m_Maxima.end() && *maxIt <= horzEdge->Bot.X) ++maxIt;
- if (maxIt != m_Maxima.end() && *maxIt >= eLastHorz->Top.X)
- maxIt = m_Maxima.end();
- }
- else
- {
- maxRit = m_Maxima.rbegin();
- while (maxRit != m_Maxima.rend() && *maxRit > horzEdge->Bot.X) ++maxRit;
- if (maxRit != m_Maxima.rend() && *maxRit <= eLastHorz->Top.X)
- maxRit = m_Maxima.rend();
- }
- }
-
- OutPt* op1 = 0;
-
- for (;;) //loop through consec. horizontal edges
- {
-
- bool IsLastHorz = (horzEdge == eLastHorz);
- TEdge* e = (dir == dLeftToRight) ? horzEdge->NextInAEL : horzEdge->PrevInAEL;
- while(e)
- {
-
- //this code block inserts extra coords into horizontal edges (in output
- //polygons) whereever maxima touch these horizontal edges. This helps
- //'simplifying' polygons (ie if the Simplify property is set).
- if (!m_Maxima.empty())
- {
- if (dir == dLeftToRight)
- {
- while (maxIt != m_Maxima.end() && *maxIt < e->Curr.X)
- {
- if (horzEdge->OutIdx >= 0 && !IsOpen)
- AddOutPt(horzEdge, IntPoint(*maxIt, horzEdge->Bot.Y));
- ++maxIt;
- }
- }
- else
- {
- while (maxRit != m_Maxima.rend() && *maxRit > e->Curr.X)
- {
- if (horzEdge->OutIdx >= 0 && !IsOpen)
- AddOutPt(horzEdge, IntPoint(*maxRit, horzEdge->Bot.Y));
- ++maxRit;
- }
- }
- };
-
- if ((dir == dLeftToRight && e->Curr.X > horzRight) ||
- (dir == dRightToLeft && e->Curr.X < horzLeft)) break;
-
- //Also break if we've got to the end of an intermediate horizontal edge ...
- //nb: Smaller Dx's are to the right of larger Dx's ABOVE the horizontal.
- if (e->Curr.X == horzEdge->Top.X && horzEdge->NextInLML &&
- e->Dx < horzEdge->NextInLML->Dx) break;
-
- if (horzEdge->OutIdx >= 0 && !IsOpen) //note: may be done multiple times
- {
- op1 = AddOutPt(horzEdge, e->Curr);
- TEdge* eNextHorz = m_SortedEdges;
- while (eNextHorz)
- {
- if (eNextHorz->OutIdx >= 0 &&
- HorzSegmentsOverlap(horzEdge->Bot.X,
- horzEdge->Top.X, eNextHorz->Bot.X, eNextHorz->Top.X))
- {
- OutPt* op2 = GetLastOutPt(eNextHorz);
- m_Joins.emplace_back(Join(op2, op1, eNextHorz->Top));
- }
- eNextHorz = eNextHorz->NextInSEL;
- }
- m_GhostJoins.emplace_back(Join(op1, 0, horzEdge->Bot));
- }
-
- //OK, so far we're still in range of the horizontal Edge but make sure
- //we're at the last of consec. horizontals when matching with eMaxPair
- if(e == eMaxPair && IsLastHorz)
- {
- if (horzEdge->OutIdx >= 0)
- AddLocalMaxPoly(horzEdge, eMaxPair, horzEdge->Top);
- DeleteFromAEL(horzEdge);
- DeleteFromAEL(eMaxPair);
- return;
- }
-
- if(dir == dLeftToRight)
- {
- IntPoint Pt = IntPoint(e->Curr.X, horzEdge->Curr.Y);
- IntersectEdges(horzEdge, e, Pt);
- }
- else
- {
- IntPoint Pt = IntPoint(e->Curr.X, horzEdge->Curr.Y);
- IntersectEdges( e, horzEdge, Pt);
- }
- TEdge* eNext = (dir == dLeftToRight) ? e->NextInAEL : e->PrevInAEL;
- SwapPositionsInAEL( horzEdge, e );
- e = eNext;
- } //end while(e)
-
- //Break out of loop if HorzEdge.NextInLML is not also horizontal ...
- if (!horzEdge->NextInLML || !IsHorizontal(*horzEdge->NextInLML)) break;
-
- UpdateEdgeIntoAEL(horzEdge);
- if (horzEdge->OutIdx >= 0) AddOutPt(horzEdge, horzEdge->Bot);
- GetHorzDirection(*horzEdge, dir, horzLeft, horzRight);
-
- } //end for (;;)
-
- if (horzEdge->OutIdx >= 0 && !op1)
- {
- op1 = GetLastOutPt(horzEdge);
- TEdge* eNextHorz = m_SortedEdges;
- while (eNextHorz)
- {
- if (eNextHorz->OutIdx >= 0 &&
- HorzSegmentsOverlap(horzEdge->Bot.X,
- horzEdge->Top.X, eNextHorz->Bot.X, eNextHorz->Top.X))
- {
- OutPt* op2 = GetLastOutPt(eNextHorz);
- m_Joins.emplace_back(Join(op2, op1, eNextHorz->Top));
- }
- eNextHorz = eNextHorz->NextInSEL;
- }
- m_GhostJoins.emplace_back(Join(op1, 0, horzEdge->Top));
- }
-
- if (horzEdge->NextInLML)
- {
- if(horzEdge->OutIdx >= 0)
- {
- op1 = AddOutPt( horzEdge, horzEdge->Top);
- UpdateEdgeIntoAEL(horzEdge);
- if (horzEdge->WindDelta == 0) return;
- //nb: HorzEdge is no longer horizontal here
- TEdge* ePrev = horzEdge->PrevInAEL;
- TEdge* eNext = horzEdge->NextInAEL;
- if (ePrev && ePrev->Curr.X == horzEdge->Bot.X &&
- ePrev->Curr.Y == horzEdge->Bot.Y && ePrev->WindDelta != 0 &&
- (ePrev->OutIdx >= 0 && ePrev->Curr.Y > ePrev->Top.Y &&
- SlopesEqual(*horzEdge, *ePrev, m_UseFullRange)))
- {
- OutPt* op2 = AddOutPt(ePrev, horzEdge->Bot);
- m_Joins.emplace_back(Join(op1, op2, horzEdge->Top));
- }
- else if (eNext && eNext->Curr.X == horzEdge->Bot.X &&
- eNext->Curr.Y == horzEdge->Bot.Y && eNext->WindDelta != 0 &&
- eNext->OutIdx >= 0 && eNext->Curr.Y > eNext->Top.Y &&
- SlopesEqual(*horzEdge, *eNext, m_UseFullRange))
- {
- OutPt* op2 = AddOutPt(eNext, horzEdge->Bot);
- m_Joins.emplace_back(Join(op1, op2, horzEdge->Top));
- }
- }
- else
- UpdateEdgeIntoAEL(horzEdge);
- }
- else
- {
- if (horzEdge->OutIdx >= 0) AddOutPt(horzEdge, horzEdge->Top);
- DeleteFromAEL(horzEdge);
- }
-}
-//------------------------------------------------------------------------------
-
-void Clipper::UpdateEdgeIntoAEL(TEdge *&e)
-{
- if( !e->NextInLML )
- throw clipperException("UpdateEdgeIntoAEL: invalid call");
-
- e->NextInLML->OutIdx = e->OutIdx;
- TEdge* AelPrev = e->PrevInAEL;
- TEdge* AelNext = e->NextInAEL;
- if (AelPrev) AelPrev->NextInAEL = e->NextInLML;
- else m_ActiveEdges = e->NextInLML;
- if (AelNext) AelNext->PrevInAEL = e->NextInLML;
- e->NextInLML->Side = e->Side;
- e->NextInLML->WindDelta = e->WindDelta;
- e->NextInLML->WindCnt = e->WindCnt;
- e->NextInLML->WindCnt2 = e->WindCnt2;
- e = e->NextInLML;
- e->Curr = e->Bot;
- e->PrevInAEL = AelPrev;
- e->NextInAEL = AelNext;
- if (!IsHorizontal(*e))
- m_Scanbeam.push(e->Top.Y);
-}
-//------------------------------------------------------------------------------
-
-bool Clipper::ProcessIntersections(const cInt topY)
-{
- PROFILE_FUNC();
- if( !m_ActiveEdges ) return true;
- try {
- BuildIntersectList(topY);
- size_t IlSize = m_IntersectList.size();
- if (IlSize == 0) return true;
- if (IlSize == 1 || FixupIntersectionOrder()) {
- for (IntersectNode &iNode : m_IntersectList) {
- IntersectEdges( iNode.Edge1, iNode.Edge2, iNode.Pt);
- SwapPositionsInAEL( iNode.Edge1 , iNode.Edge2 );
- }
- m_IntersectList.clear();
- }
- else return false;
- }
- catch(...)
- {
- m_SortedEdges = 0;
- m_IntersectList.clear();
- throw clipperException("ProcessIntersections error");
- }
- m_SortedEdges = 0;
- return true;
-}
-//------------------------------------------------------------------------------
-
-void Clipper::BuildIntersectList(const cInt topY)
-{
- if ( !m_ActiveEdges ) return;
-
- //prepare for sorting ...
- TEdge* e = m_ActiveEdges;
- m_SortedEdges = e;
- while( e )
- {
- e->PrevInSEL = e->PrevInAEL;
- e->NextInSEL = e->NextInAEL;
- e->Curr.X = TopX( *e, topY );
- e = e->NextInAEL;
- }
-
- //bubblesort ...
- bool isModified;
- do
- {
- isModified = false;
- e = m_SortedEdges;
- while( e->NextInSEL )
- {
- TEdge *eNext = e->NextInSEL;
- IntPoint Pt;
- if(e->Curr.X > eNext->Curr.X)
- {
- IntersectPoint(*e, *eNext, Pt);
- m_IntersectList.emplace_back(IntersectNode(e, eNext, Pt));
- SwapPositionsInSEL(e, eNext);
- isModified = true;
- }
- else
- e = eNext;
- }
- if( e->PrevInSEL ) e->PrevInSEL->NextInSEL = 0;
- else break;
- }
- while ( isModified );
- m_SortedEdges = 0; //important
-}
-//------------------------------------------------------------------------------
-
-
-inline bool EdgesAdjacent(const IntersectNode &inode)
-{
- return (inode.Edge1->NextInSEL == inode.Edge2) ||
- (inode.Edge1->PrevInSEL == inode.Edge2);
-}
-//------------------------------------------------------------------------------
-
-bool Clipper::FixupIntersectionOrder()
-{
- //pre-condition: intersections are sorted Bottom-most first.
- //Now it's crucial that intersections are made only between adjacent edges,
- //so to ensure this the order of intersections may need adjusting ...
- CopyAELToSEL();
- std::sort(m_IntersectList.begin(), m_IntersectList.end(), [](const IntersectNode &node1, const IntersectNode &node2) { return node2.Pt.Y < node1.Pt.Y; });
-
- size_t cnt = m_IntersectList.size();
- for (size_t i = 0; i < cnt; ++i)
- {
- if (!EdgesAdjacent(m_IntersectList[i]))
- {
- size_t j = i + 1;
- while (j < cnt && !EdgesAdjacent(m_IntersectList[j])) j++;
- if (j == cnt) return false;
- std::swap(m_IntersectList[i], m_IntersectList[j]);
- }
- SwapPositionsInSEL(m_IntersectList[i].Edge1, m_IntersectList[i].Edge2);
- }
- return true;
-}
-//------------------------------------------------------------------------------
-
-void Clipper::DoMaxima(TEdge *e)
-{
- TEdge* eMaxPair = GetMaximaPair(e);
- if (!eMaxPair)
- {
- if (e->OutIdx >= 0)
- AddOutPt(e, e->Top);
- DeleteFromAEL(e);
- return;
- }
-
- TEdge* eNext = e->NextInAEL;
- while(eNext && eNext != eMaxPair)
- {
- IntersectEdges(e, eNext, e->Top);
- SwapPositionsInAEL(e, eNext);
- eNext = e->NextInAEL;
- }
-
- if(e->OutIdx == Unassigned && eMaxPair->OutIdx == Unassigned)
- {
- DeleteFromAEL(e);
- DeleteFromAEL(eMaxPair);
- }
- else if( e->OutIdx >= 0 && eMaxPair->OutIdx >= 0 )
- {
- if (e->OutIdx >= 0) AddLocalMaxPoly(e, eMaxPair, e->Top);
- DeleteFromAEL(e);
- DeleteFromAEL(eMaxPair);
- }
-#ifdef use_lines
- else if (e->WindDelta == 0)
- {
- if (e->OutIdx >= 0)
- {
- AddOutPt(e, e->Top);
- e->OutIdx = Unassigned;
- }
- DeleteFromAEL(e);
-
- if (eMaxPair->OutIdx >= 0)
- {
- AddOutPt(eMaxPair, e->Top);
- eMaxPair->OutIdx = Unassigned;
- }
- DeleteFromAEL(eMaxPair);
- }
-#endif
- else throw clipperException("DoMaxima error");
-}
-//------------------------------------------------------------------------------
-
-void Clipper::ProcessEdgesAtTopOfScanbeam(const cInt topY)
-{
- PROFILE_FUNC();
- TEdge* e = m_ActiveEdges;
- while( e )
- {
- //1. process maxima, treating them as if they're 'bent' horizontal edges,
- // but exclude maxima with horizontal edges. nb: e can't be a horizontal.
- bool IsMaximaEdge = IsMaxima(e, topY);
-
- if(IsMaximaEdge)
- {
- TEdge* eMaxPair = GetMaximaPair(e);
- IsMaximaEdge = (!eMaxPair || !IsHorizontal(*eMaxPair));
- }
-
- if(IsMaximaEdge)
- {
- if (m_StrictSimple) m_Maxima.push_back(e->Top.X);
- TEdge* ePrev = e->PrevInAEL;
- DoMaxima(e);
- if( !ePrev ) e = m_ActiveEdges;
- else e = ePrev->NextInAEL;
- }
- else
- {
- //2. promote horizontal edges, otherwise update Curr.X and Curr.Y ...
- if (IsIntermediate(e, topY) && IsHorizontal(*e->NextInLML))
- {
- UpdateEdgeIntoAEL(e);
- if (e->OutIdx >= 0)
- AddOutPt(e, e->Bot);
- AddEdgeToSEL(e);
- }
- else
- {
- e->Curr.X = TopX( *e, topY );
- e->Curr.Y = topY;
- }
-
- //When StrictlySimple and 'e' is being touched by another edge, then
- //make sure both edges have a vertex here ...
- if (m_StrictSimple)
- {
- TEdge* ePrev = e->PrevInAEL;
- if ((e->OutIdx >= 0) && (e->WindDelta != 0) && ePrev && (ePrev->OutIdx >= 0) &&
- (ePrev->Curr.X == e->Curr.X) && (ePrev->WindDelta != 0))
- {
- IntPoint pt = e->Curr;
-#ifdef use_xyz
- SetZ(pt, *ePrev, *e);
-#endif
- OutPt* op = AddOutPt(ePrev, pt);
- OutPt* op2 = AddOutPt(e, pt);
- m_Joins.emplace_back(Join(op, op2, pt)); //StrictlySimple (type-3) join
- }
- }
-
- e = e->NextInAEL;
- }
- }
-
- //3. Process horizontals at the Top of the scanbeam ...
- std::sort(m_Maxima.begin(), m_Maxima.end());
- ProcessHorizontals();
- m_Maxima.clear();
-
- //4. Promote intermediate vertices ...
- e = m_ActiveEdges;
- while(e)
- {
- if(IsIntermediate(e, topY))
- {
- OutPt* op = 0;
- if( e->OutIdx >= 0 )
- op = AddOutPt(e, e->Top);
- UpdateEdgeIntoAEL(e);
-
- //if output polygons share an edge, they'll need joining later ...
- TEdge* ePrev = e->PrevInAEL;
- TEdge* eNext = e->NextInAEL;
- if (ePrev && ePrev->Curr.X == e->Bot.X &&
- ePrev->Curr.Y == e->Bot.Y && op &&
- ePrev->OutIdx >= 0 && ePrev->Curr.Y > ePrev->Top.Y &&
- SlopesEqual(*e, *ePrev, m_UseFullRange) &&
- (e->WindDelta != 0) && (ePrev->WindDelta != 0))
- {
- OutPt* op2 = AddOutPt(ePrev, e->Bot);
- m_Joins.emplace_back(Join(op, op2, e->Top));
- }
- else if (eNext && eNext->Curr.X == e->Bot.X &&
- eNext->Curr.Y == e->Bot.Y && op &&
- eNext->OutIdx >= 0 && eNext->Curr.Y > eNext->Top.Y &&
- SlopesEqual(*e, *eNext, m_UseFullRange) &&
- (e->WindDelta != 0) && (eNext->WindDelta != 0))
- {
- OutPt* op2 = AddOutPt(eNext, e->Bot);
- m_Joins.emplace_back(Join(op, op2, e->Top));
- }
- }
- e = e->NextInAEL;
- }
-}
-//------------------------------------------------------------------------------
-
-void Clipper::FixupOutPolyline(OutRec &outrec)
-{
- OutPt *pp = outrec.Pts;
- OutPt *lastPP = pp->Prev;
- while (pp != lastPP)
- {
- pp = pp->Next;
- if (pp->Pt == pp->Prev->Pt)
- {
- if (pp == lastPP) lastPP = pp->Prev;
- OutPt *tmpPP = pp->Prev;
- tmpPP->Next = pp->Next;
- pp->Next->Prev = tmpPP;
- this->DisposeOutPt(pp);
- pp = tmpPP;
- }
- }
-
- if (pp == pp->Prev)
- {
- this->DisposeOutPts(pp);
- outrec.Pts = 0;
- return;
- }
-}
-//------------------------------------------------------------------------------
-
-void Clipper::FixupOutPolygon(OutRec &outrec)
-{
- //FixupOutPolygon() - removes duplicate points and simplifies consecutive
- //parallel edges by removing the middle vertex.
- OutPt *lastOK = nullptr;
- outrec.BottomPt = nullptr;
- OutPt *pp = outrec.Pts;
- bool preserveCol = m_PreserveCollinear || m_StrictSimple;
-
- for (;;)
- {
- if (pp->Prev == pp || pp->Prev == pp->Next)
- {
- // Empty loop or a stick. Release the polygon.
- this->DisposeOutPts(pp);
- outrec.Pts = nullptr;
- return;
- }
-
- //test for duplicate points and collinear edges ...
- if ((pp->Pt == pp->Next->Pt) || (pp->Pt == pp->Prev->Pt) ||
- (SlopesEqual(pp->Prev->Pt, pp->Pt, pp->Next->Pt, m_UseFullRange) &&
- (!preserveCol || !Pt2IsBetweenPt1AndPt3(pp->Prev->Pt, pp->Pt, pp->Next->Pt))))
- {
- lastOK = nullptr;
- OutPt *tmp = pp;
- pp->Prev->Next = pp->Next;
- pp->Next->Prev = pp->Prev;
- pp = pp->Prev;
- this->DisposeOutPt(tmp);
- }
- else if (pp == lastOK) break;
- else
- {
- if (!lastOK) lastOK = pp;
- pp = pp->Next;
- }
- }
- outrec.Pts = pp;
-}
-//------------------------------------------------------------------------------
-
-// Count the number of points in a closed linked loop starting with Pts.
-int PointCount(OutPt *Pts)
-{
- if (!Pts) return 0;
- int result = 0;
- OutPt* p = Pts;
- do
- {
- result++;
- p = p->Next;
- }
- while (p != Pts);
- return result;
-}
-//------------------------------------------------------------------------------
-
-void Clipper::BuildResult(Paths &polys)
-{
- polys.reserve(m_PolyOuts.size());
- for (OutRec* outRec : m_PolyOuts)
- {
- assert(! outRec->IsOpen);
- if (!outRec->Pts) continue;
- Path pg;
- OutPt* p = outRec->Pts->Prev;
- int cnt = PointCount(p);
- if (cnt < 2) continue;
- pg.reserve(cnt);
- for (int i = 0; i < cnt; ++i)
- {
- pg.emplace_back(p->Pt);
- p = p->Prev;
- }
- polys.emplace_back(std::move(pg));
- }
-}
-//------------------------------------------------------------------------------
-
-void Clipper::BuildResult2(PolyTree& polytree)
-{
- polytree.Clear();
- polytree.AllNodes.reserve(m_PolyOuts.size());
- //add each output polygon/contour to polytree ...
- for (OutRec* outRec : m_PolyOuts)
- {
- int cnt = PointCount(outRec->Pts);
- if ((outRec->IsOpen && cnt < 2) || (!outRec->IsOpen && cnt < 3))
- // Ignore an invalid output loop or a polyline.
- continue;
-
- //skip OutRecs that (a) contain outermost polygons or
- //(b) already have the correct owner/child linkage ...
- if (outRec->FirstLeft &&
- (outRec->IsHole == outRec->FirstLeft->IsHole || ! outRec->FirstLeft->Pts)) {
- OutRec* orfl = outRec->FirstLeft;
- while (orfl && ((orfl->IsHole == outRec->IsHole) || !orfl->Pts))
- orfl = orfl->FirstLeft;
- outRec->FirstLeft = orfl;
- }
-
- //nb: polytree takes ownership of all the PolyNodes
- polytree.AllNodes.emplace_back(PolyNode());
- PolyNode* pn = &polytree.AllNodes.back();
- outRec->PolyNd = pn;
- pn->Parent = 0;
- pn->Index = 0;
- pn->Contour.reserve(cnt);
- OutPt *op = outRec->Pts->Prev;
- for (int j = 0; j < cnt; j++)
- {
- pn->Contour.emplace_back(op->Pt);
- op = op->Prev;
- }
- }
-
- //fixup PolyNode links etc ...
- polytree.Childs.reserve(m_PolyOuts.size());
- for (OutRec* outRec : m_PolyOuts)
- {
- if (!outRec->PolyNd) continue;
- if (outRec->IsOpen)
- {
- outRec->PolyNd->m_IsOpen = true;
- polytree.AddChild(*outRec->PolyNd);
- }
- else if (outRec->FirstLeft && outRec->FirstLeft->PolyNd)
- outRec->FirstLeft->PolyNd->AddChild(*outRec->PolyNd);
- else
- polytree.AddChild(*outRec->PolyNd);
- }
-}
-//------------------------------------------------------------------------------
-
-inline bool E2InsertsBeforeE1(TEdge &e1, TEdge &e2)
-{
- if (e2.Curr.X == e1.Curr.X)
- {
- if (e2.Top.Y > e1.Top.Y)
- return e2.Top.X < TopX(e1, e2.Top.Y);
- else return e1.Top.X > TopX(e2, e1.Top.Y);
- }
- else return e2.Curr.X < e1.Curr.X;
-}
-//------------------------------------------------------------------------------
-
-bool GetOverlap(const cInt a1, const cInt a2, const cInt b1, const cInt b2,
- cInt& Left, cInt& Right)
-{
- if (a1 < a2)
- {
- if (b1 < b2) {Left = std::max(a1,b1); Right = std::min(a2,b2);}
- else {Left = std::max(a1,b2); Right = std::min(a2,b1);}
- }
- else
- {
- if (b1 < b2) {Left = std::max(a2,b1); Right = std::min(a1,b2);}
- else {Left = std::max(a2,b2); Right = std::min(a1,b1);}
- }
- return Left < Right;
-}
-//------------------------------------------------------------------------------
-
-// Make all points of outrec point to outrec.Idx
-inline void UpdateOutPtIdxs(OutRec& outrec)
-{
- OutPt* op = outrec.Pts;
- do
- {
- op->Idx = outrec.Idx;
- op = op->Prev;
- }
- while(op != outrec.Pts);
-}
-//------------------------------------------------------------------------------
-
-void Clipper::InsertEdgeIntoAEL(TEdge *edge, TEdge* startEdge)
-{
- if(!m_ActiveEdges)
- {
- edge->PrevInAEL = 0;
- edge->NextInAEL = 0;
- m_ActiveEdges = edge;
- }
- else if(!startEdge && E2InsertsBeforeE1(*m_ActiveEdges, *edge))
- {
- edge->PrevInAEL = 0;
- edge->NextInAEL = m_ActiveEdges;
- m_ActiveEdges->PrevInAEL = edge;
- m_ActiveEdges = edge;
- }
- else
- {
- if(!startEdge) startEdge = m_ActiveEdges;
- while(startEdge->NextInAEL &&
- !E2InsertsBeforeE1(*startEdge->NextInAEL , *edge))
- startEdge = startEdge->NextInAEL;
- edge->NextInAEL = startEdge->NextInAEL;
- if(startEdge->NextInAEL) startEdge->NextInAEL->PrevInAEL = edge;
- edge->PrevInAEL = startEdge;
- startEdge->NextInAEL = edge;
- }
-}
-//----------------------------------------------------------------------
-
-OutPt* Clipper::DupOutPt(OutPt* outPt, bool InsertAfter)
-{
- OutPt* result = this->AllocateOutPt();
- result->Pt = outPt->Pt;
- result->Idx = outPt->Idx;
- if (InsertAfter)
- {
- result->Next = outPt->Next;
- result->Prev = outPt;
- outPt->Next->Prev = result;
- outPt->Next = result;
- }
- else
- {
- result->Prev = outPt->Prev;
- result->Next = outPt;
- outPt->Prev->Next = result;
- outPt->Prev = result;
- }
- return result;
-}
-//------------------------------------------------------------------------------
-
-bool Clipper::JoinHorz(OutPt* op1, OutPt* op1b, OutPt* op2, OutPt* op2b,
- const IntPoint &Pt, bool DiscardLeft)
-{
- Direction Dir1 = (op1->Pt.X > op1b->Pt.X ? dRightToLeft : dLeftToRight);
- Direction Dir2 = (op2->Pt.X > op2b->Pt.X ? dRightToLeft : dLeftToRight);
- if (Dir1 == Dir2) return false;
-
- //When DiscardLeft, we want Op1b to be on the Left of Op1, otherwise we
- //want Op1b to be on the Right. (And likewise with Op2 and Op2b.)
- //So, to facilitate this while inserting Op1b and Op2b ...
- //when DiscardLeft, make sure we're AT or RIGHT of Pt before adding Op1b,
- //otherwise make sure we're AT or LEFT of Pt. (Likewise with Op2b.)
- if (Dir1 == dLeftToRight)
- {
- while (op1->Next->Pt.X <= Pt.X &&
- op1->Next->Pt.X >= op1->Pt.X && op1->Next->Pt.Y == Pt.Y)
- op1 = op1->Next;
- if (DiscardLeft && (op1->Pt.X != Pt.X)) op1 = op1->Next;
- op1b = this->DupOutPt(op1, !DiscardLeft);
- if (op1b->Pt != Pt)
- {
- op1 = op1b;
- op1->Pt = Pt;
- op1b = this->DupOutPt(op1, !DiscardLeft);
- }
- }
- else
- {
- while (op1->Next->Pt.X >= Pt.X &&
- op1->Next->Pt.X <= op1->Pt.X && op1->Next->Pt.Y == Pt.Y)
- op1 = op1->Next;
- if (!DiscardLeft && (op1->Pt.X != Pt.X)) op1 = op1->Next;
- op1b = this->DupOutPt(op1, DiscardLeft);
- if (op1b->Pt != Pt)
- {
- op1 = op1b;
- op1->Pt = Pt;
- op1b = this->DupOutPt(op1, DiscardLeft);
- }
- }
-
- if (Dir2 == dLeftToRight)
- {
- while (op2->Next->Pt.X <= Pt.X &&
- op2->Next->Pt.X >= op2->Pt.X && op2->Next->Pt.Y == Pt.Y)
- op2 = op2->Next;
- if (DiscardLeft && (op2->Pt.X != Pt.X)) op2 = op2->Next;
- op2b = this->DupOutPt(op2, !DiscardLeft);
- if (op2b->Pt != Pt)
- {
- op2 = op2b;
- op2->Pt = Pt;
- op2b = this->DupOutPt(op2, !DiscardLeft);
- };
- } else
- {
- while (op2->Next->Pt.X >= Pt.X &&
- op2->Next->Pt.X <= op2->Pt.X && op2->Next->Pt.Y == Pt.Y)
- op2 = op2->Next;
- if (!DiscardLeft && (op2->Pt.X != Pt.X)) op2 = op2->Next;
- op2b = this->DupOutPt(op2, DiscardLeft);
- if (op2b->Pt != Pt)
- {
- op2 = op2b;
- op2->Pt = Pt;
- op2b = this->DupOutPt(op2, DiscardLeft);
- };
- };
-
- if ((Dir1 == dLeftToRight) == DiscardLeft)
- {
- op1->Prev = op2;
- op2->Next = op1;
- op1b->Next = op2b;
- op2b->Prev = op1b;
- }
- else
- {
- op1->Next = op2;
- op2->Prev = op1;
- op1b->Prev = op2b;
- op2b->Next = op1b;
- }
- return true;
-}
-//------------------------------------------------------------------------------
-
-bool Clipper::JoinPoints(Join *j, OutRec* outRec1, OutRec* outRec2)
-{
- OutPt *op1 = j->OutPt1, *op1b;
- OutPt *op2 = j->OutPt2, *op2b;
-
- //There are 3 kinds of joins for output polygons ...
- //1. Horizontal joins where Join.OutPt1 & Join.OutPt2 are vertices anywhere
- //along (horizontal) collinear edges (& Join.OffPt is on the same horizontal).
- //2. Non-horizontal joins where Join.OutPt1 & Join.OutPt2 are at the same
- //location at the Bottom of the overlapping segment (& Join.OffPt is above).
- //3. StrictSimple joins where edges touch but are not collinear and where
- //Join.OutPt1, Join.OutPt2 & Join.OffPt all share the same point.
- bool isHorizontal = (j->OutPt1->Pt.Y == j->OffPt.Y);
-
- if (isHorizontal && (j->OffPt == j->OutPt1->Pt) &&
- (j->OffPt == j->OutPt2->Pt))
- {
- //Strictly Simple join ...
- if (outRec1 != outRec2) return false;
- op1b = j->OutPt1->Next;
- while (op1b != op1 && (op1b->Pt == j->OffPt))
- op1b = op1b->Next;
- bool reverse1 = (op1b->Pt.Y > j->OffPt.Y);
- op2b = j->OutPt2->Next;
- while (op2b != op2 && (op2b->Pt == j->OffPt))
- op2b = op2b->Next;
- bool reverse2 = (op2b->Pt.Y > j->OffPt.Y);
- if (reverse1 == reverse2) return false;
- if (reverse1)
- {
- op1b = this->DupOutPt(op1, false);
- op2b = this->DupOutPt(op2, true);
- op1->Prev = op2;
- op2->Next = op1;
- op1b->Next = op2b;
- op2b->Prev = op1b;
- j->OutPt1 = op1;
- j->OutPt2 = op1b;
- return true;
- } else
- {
- op1b = this->DupOutPt(op1, true);
- op2b = this->DupOutPt(op2, false);
- op1->Next = op2;
- op2->Prev = op1;
- op1b->Prev = op2b;
- op2b->Next = op1b;
- j->OutPt1 = op1;
- j->OutPt2 = op1b;
- return true;
- }
- }
- else if (isHorizontal)
- {
- //treat horizontal joins differently to non-horizontal joins since with
- //them we're not yet sure where the overlapping is. OutPt1.Pt & OutPt2.Pt
- //may be anywhere along the horizontal edge.
- op1b = op1;
- while (op1->Prev->Pt.Y == op1->Pt.Y && op1->Prev != op1b && op1->Prev != op2)
- op1 = op1->Prev;
- while (op1b->Next->Pt.Y == op1b->Pt.Y && op1b->Next != op1 && op1b->Next != op2)
- op1b = op1b->Next;
- if (op1b->Next == op1 || op1b->Next == op2) return false; //a flat 'polygon'
-
- op2b = op2;
- while (op2->Prev->Pt.Y == op2->Pt.Y && op2->Prev != op2b && op2->Prev != op1b)
- op2 = op2->Prev;
- while (op2b->Next->Pt.Y == op2b->Pt.Y && op2b->Next != op2 && op2b->Next != op1)
- op2b = op2b->Next;
- if (op2b->Next == op2 || op2b->Next == op1) return false; //a flat 'polygon'
-
- cInt Left, Right;
- //Op1 --> Op1b & Op2 --> Op2b are the extremites of the horizontal edges
- if (!GetOverlap(op1->Pt.X, op1b->Pt.X, op2->Pt.X, op2b->Pt.X, Left, Right))
- return false;
-
- //DiscardLeftSide: when overlapping edges are joined, a spike will created
- //which needs to be cleaned up. However, we don't want Op1 or Op2 caught up
- //on the discard Side as either may still be needed for other joins ...
- IntPoint Pt;
- bool DiscardLeftSide;
- if (op1->Pt.X >= Left && op1->Pt.X <= Right)
- {
- Pt = op1->Pt; DiscardLeftSide = (op1->Pt.X > op1b->Pt.X);
- }
- else if (op2->Pt.X >= Left&& op2->Pt.X <= Right)
- {
- Pt = op2->Pt; DiscardLeftSide = (op2->Pt.X > op2b->Pt.X);
- }
- else if (op1b->Pt.X >= Left && op1b->Pt.X <= Right)
- {
- Pt = op1b->Pt; DiscardLeftSide = op1b->Pt.X > op1->Pt.X;
- }
- else
- {
- Pt = op2b->Pt; DiscardLeftSide = (op2b->Pt.X > op2->Pt.X);
- }
- j->OutPt1 = op1; j->OutPt2 = op2;
- return JoinHorz(op1, op1b, op2, op2b, Pt, DiscardLeftSide);
- } else
- {
- //nb: For non-horizontal joins ...
- // 1. Jr.OutPt1.Pt.Y == Jr.OutPt2.Pt.Y
- // 2. Jr.OutPt1.Pt > Jr.OffPt.Y
-
- //make sure the polygons are correctly oriented ...
- op1b = op1->Next;
- while ((op1b->Pt == op1->Pt) && (op1b != op1)) op1b = op1b->Next;
- bool Reverse1 = ((op1b->Pt.Y > op1->Pt.Y) ||
- !SlopesEqual(op1->Pt, op1b->Pt, j->OffPt, m_UseFullRange));
- if (Reverse1)
- {
- op1b = op1->Prev;
- while ((op1b->Pt == op1->Pt) && (op1b != op1)) op1b = op1b->Prev;
- if ((op1b->Pt.Y > op1->Pt.Y) ||
- !SlopesEqual(op1->Pt, op1b->Pt, j->OffPt, m_UseFullRange)) return false;
- };
- op2b = op2->Next;
- while ((op2b->Pt == op2->Pt) && (op2b != op2))op2b = op2b->Next;
- bool Reverse2 = ((op2b->Pt.Y > op2->Pt.Y) ||
- !SlopesEqual(op2->Pt, op2b->Pt, j->OffPt, m_UseFullRange));
- if (Reverse2)
- {
- op2b = op2->Prev;
- while ((op2b->Pt == op2->Pt) && (op2b != op2)) op2b = op2b->Prev;
- if ((op2b->Pt.Y > op2->Pt.Y) ||
- !SlopesEqual(op2->Pt, op2b->Pt, j->OffPt, m_UseFullRange)) return false;
- }
-
- if ((op1b == op1) || (op2b == op2) || (op1b == op2b) ||
- ((outRec1 == outRec2) && (Reverse1 == Reverse2))) return false;
-
- if (Reverse1)
- {
- op1b = this->DupOutPt(op1, false);
- op2b = this->DupOutPt(op2, true);
- op1->Prev = op2;
- op2->Next = op1;
- op1b->Next = op2b;
- op2b->Prev = op1b;
- j->OutPt1 = op1;
- j->OutPt2 = op1b;
- return true;
- } else
- {
- op1b = this->DupOutPt(op1, true);
- op2b = this->DupOutPt(op2, false);
- op1->Next = op2;
- op2->Prev = op1;
- op1b->Prev = op2b;
- op2b->Next = op1b;
- j->OutPt1 = op1;
- j->OutPt2 = op1b;
- return true;
- }
- }
-}
-//----------------------------------------------------------------------
-
-// This is potentially very expensive! O(n^3)!
-void Clipper::FixupFirstLefts1(OutRec* OldOutRec, OutRec* NewOutRec) const
-{
- PROFILE_FUNC();
- //tests if NewOutRec contains the polygon before reassigning FirstLeft
- for (OutRec *outRec : m_PolyOuts)
- {
- if (!outRec->Pts || !outRec->FirstLeft) continue;
- OutRec* firstLeft = outRec->FirstLeft;
- // Skip empty polygons.
- while (firstLeft && !firstLeft->Pts) firstLeft = firstLeft->FirstLeft;
- if (firstLeft == OldOutRec && Poly2ContainsPoly1(outRec->Pts, NewOutRec->Pts))
- outRec->FirstLeft = NewOutRec;
- }
-}
-//----------------------------------------------------------------------
-
-void Clipper::FixupFirstLefts2(OutRec* OldOutRec, OutRec* NewOutRec) const
-{
- //reassigns FirstLeft WITHOUT testing if NewOutRec contains the polygon
- for (OutRec *outRec : m_PolyOuts)
- if (outRec->FirstLeft == OldOutRec) outRec->FirstLeft = NewOutRec;
-}
-//----------------------------------------------------------------------
-
-void Clipper::JoinCommonEdges()
-{
- PROFILE_FUNC();
- for (Join &join : m_Joins)
- {
- OutRec *outRec1 = GetOutRec(join.OutPt1->Idx);
- OutRec *outRec2 = GetOutRec(join.OutPt2->Idx);
-
- if (!outRec1->Pts || !outRec2->Pts) continue;
- if (outRec1->IsOpen || outRec2->IsOpen) continue;
-
- //get the polygon fragment with the correct hole state (FirstLeft)
- //before calling JoinPoints() ...
- OutRec *holeStateRec;
- if (outRec1 == outRec2) holeStateRec = outRec1;
- else if (Param1RightOfParam2(outRec1, outRec2)) holeStateRec = outRec2;
- else if (Param1RightOfParam2(outRec2, outRec1)) holeStateRec = outRec1;
- else holeStateRec = GetLowermostRec(outRec1, outRec2);
-
- if (!JoinPoints(&join, outRec1, outRec2)) continue;
-
- if (outRec1 == outRec2)
- {
- //instead of joining two polygons, we've just created a new one by
- //splitting one polygon into two.
- outRec1->Pts = join.OutPt1;
- outRec1->BottomPt = 0;
- outRec2 = CreateOutRec();
- outRec2->Pts = join.OutPt2;
-
- //update all OutRec2.Pts Idx's ...
- UpdateOutPtIdxs(*outRec2);
-
- //We now need to check every OutRec.FirstLeft pointer. If it points
- //to OutRec1 it may need to point to OutRec2 instead ...
- if (m_UsingPolyTree)
- for (size_t j = 0; j < m_PolyOuts.size() - 1; j++)
- {
- OutRec* oRec = m_PolyOuts[j];
- OutRec* firstLeft = oRec->FirstLeft;
- while (firstLeft && !firstLeft->Pts) firstLeft = firstLeft->FirstLeft;
- if (!oRec->Pts || firstLeft != outRec1 ||
- oRec->IsHole == outRec1->IsHole) continue;
- if (Poly2ContainsPoly1(oRec->Pts, join.OutPt2))
- oRec->FirstLeft = outRec2;
- }
-
- if (Poly2ContainsPoly1(outRec2->Pts, outRec1->Pts))
- {
- //outRec2 is contained by outRec1 ...
- outRec2->IsHole = !outRec1->IsHole;
- outRec2->FirstLeft = outRec1;
-
- // For each m_PolyOuts, replace FirstLeft from outRec2 to outRec1.
- if (m_UsingPolyTree) FixupFirstLefts2(outRec2, outRec1);
-
- if ((outRec2->IsHole ^ m_ReverseOutput) == (Area(*outRec2) > 0))
- ReversePolyPtLinks(outRec2->Pts);
-
- } else if (Poly2ContainsPoly1(outRec1->Pts, outRec2->Pts))
- {
- //outRec1 is contained by outRec2 ...
- outRec2->IsHole = outRec1->IsHole;
- outRec1->IsHole = !outRec2->IsHole;
- outRec2->FirstLeft = outRec1->FirstLeft;
- outRec1->FirstLeft = outRec2;
-
- // For each m_PolyOuts, replace FirstLeft from outRec1 to outRec2.
- if (m_UsingPolyTree) FixupFirstLefts2(outRec1, outRec2);
-
- if ((outRec1->IsHole ^ m_ReverseOutput) == (Area(*outRec1) > 0))
- ReversePolyPtLinks(outRec1->Pts);
- }
- else
- {
- //the 2 polygons are completely separate ...
- outRec2->IsHole = outRec1->IsHole;
- outRec2->FirstLeft = outRec1->FirstLeft;
-
- //fixup FirstLeft pointers that may need reassigning to OutRec2
- // For each polygon of m_PolyOuts, replace FirstLeft from outRec1 to outRec2 if the polygon is inside outRec2.
- //FIXME This is potentially very expensive! O(n^3)!
- if (m_UsingPolyTree) FixupFirstLefts1(outRec1, outRec2);
- }
-
- } else
- {
- //joined 2 polygons together ...
-
- outRec2->Pts = 0;
- outRec2->BottomPt = 0;
- outRec2->Idx = outRec1->Idx;
-
- outRec1->IsHole = holeStateRec->IsHole;
- if (holeStateRec == outRec2)
- outRec1->FirstLeft = outRec2->FirstLeft;
- outRec2->FirstLeft = outRec1;
-
- // For each m_PolyOuts, replace FirstLeft from outRec2 to outRec1.
- if (m_UsingPolyTree) FixupFirstLefts2(outRec2, outRec1);
- }
- }
-}
-
-//------------------------------------------------------------------------------
-// ClipperOffset support functions ...
-//------------------------------------------------------------------------------
-
-DoublePoint GetUnitNormal(const IntPoint &pt1, const IntPoint &pt2)
-{
- if(pt2.X == pt1.X && pt2.Y == pt1.Y)
- return DoublePoint(0, 0);
-
- double Dx = (double)(pt2.X - pt1.X);
- double dy = (double)(pt2.Y - pt1.Y);
- double f = 1 *1.0/ std::sqrt( Dx*Dx + dy*dy );
- Dx *= f;
- dy *= f;
- return DoublePoint(dy, -Dx);
-}
-
-//------------------------------------------------------------------------------
-// ClipperOffset class
-//------------------------------------------------------------------------------
-
-void ClipperOffset::Clear()
-{
- for (int i = 0; i < m_polyNodes.ChildCount(); ++i)
- delete m_polyNodes.Childs[i];
- m_polyNodes.Childs.clear();
- m_lowest.X = -1;
-}
-//------------------------------------------------------------------------------
-
-void ClipperOffset::AddPath(const Path& path, JoinType joinType, EndType endType)
-{
- int highI = (int)path.size() - 1;
- if (highI < 0) return;
- PolyNode* newNode = new PolyNode();
- newNode->m_jointype = joinType;
- newNode->m_endtype = endType;
-
- //strip duplicate points from path and also get index to the lowest point ...
- bool has_shortest_edge_length = ShortestEdgeLength > 0.;
- double shortest_edge_length2 = has_shortest_edge_length ? ShortestEdgeLength * ShortestEdgeLength : 0.;
- if (endType == etClosedLine || endType == etClosedPolygon)
- for (; highI > 0; -- highI) {
- bool same = false;
- if (has_shortest_edge_length) {
- double dx = double(path[highI].X - path[0].X);
- double dy = double(path[highI].Y - path[0].Y);
- same = dx*dx + dy*dy < shortest_edge_length2;
- } else
- same = path[0] == path[highI];
- if (! same)
- break;
- }
- newNode->Contour.reserve(highI + 1);
- newNode->Contour.push_back(path[0]);
- int j = 0, k = 0;
- for (int i = 1; i <= highI; i++) {
- bool same = false;
- if (has_shortest_edge_length) {
- double dx = double(path[i].X - newNode->Contour[j].X);
- double dy = double(path[i].Y - newNode->Contour[j].Y);
- same = dx*dx + dy*dy < shortest_edge_length2;
- } else
- same = newNode->Contour[j] == path[i];
- if (same)
- continue;
- j++;
- newNode->Contour.push_back(path[i]);
- if (path[i].Y > newNode->Contour[k].Y ||
- (path[i].Y == newNode->Contour[k].Y &&
- path[i].X < newNode->Contour[k].X)) k = j;
- }
- if (endType == etClosedPolygon && j < 2)
- {
- delete newNode;
- return;
- }
- m_polyNodes.AddChild(*newNode);
-
- //if this path's lowest pt is lower than all the others then update m_lowest
- if (endType != etClosedPolygon) return;
- if (m_lowest.X < 0)
- m_lowest = IntPoint(m_polyNodes.ChildCount() - 1, k);
- else
- {
- IntPoint ip = m_polyNodes.Childs[(int)m_lowest.X]->Contour[(int)m_lowest.Y];
- if (newNode->Contour[k].Y > ip.Y ||
- (newNode->Contour[k].Y == ip.Y &&
- newNode->Contour[k].X < ip.X))
- m_lowest = IntPoint(m_polyNodes.ChildCount() - 1, k);
- }
-}
-//------------------------------------------------------------------------------
-
-void ClipperOffset::AddPaths(const Paths& paths, JoinType joinType, EndType endType)
-{
- for (const Path &path : paths)
- AddPath(path, joinType, endType);
-}
-//------------------------------------------------------------------------------
-
-void ClipperOffset::FixOrientations()
-{
- //fixup orientations of all closed paths if the orientation of the
- //closed path with the lowermost vertex is wrong ...
- if (m_lowest.X >= 0 &&
- !Orientation(m_polyNodes.Childs[(int)m_lowest.X]->Contour))
- {
- for (int i = 0; i < m_polyNodes.ChildCount(); ++i)
- {
- PolyNode& node = *m_polyNodes.Childs[i];
- if (node.m_endtype == etClosedPolygon ||
- (node.m_endtype == etClosedLine && Orientation(node.Contour)))
- ReversePath(node.Contour);
- }
- } else
- {
- for (int i = 0; i < m_polyNodes.ChildCount(); ++i)
- {
- PolyNode& node = *m_polyNodes.Childs[i];
- if (node.m_endtype == etClosedLine && !Orientation(node.Contour))
- ReversePath(node.Contour);
- }
- }
-}
-//------------------------------------------------------------------------------
-
-void ClipperOffset::Execute(Paths& solution, double delta)
-{
- solution.clear();
- FixOrientations();
- DoOffset(delta);
-
- //now clean up 'corners' ...
- Clipper clpr;
- clpr.AddPaths(m_destPolys, ptSubject, true);
- if (delta > 0)
- {
- clpr.Execute(ctUnion, solution, pftPositive, pftPositive);
- }
- else
- {
- IntRect r = clpr.GetBounds();
- Path outer(4);
- outer[0] = IntPoint(r.left - 10, r.bottom + 10);
- outer[1] = IntPoint(r.right + 10, r.bottom + 10);
- outer[2] = IntPoint(r.right + 10, r.top - 10);
- outer[3] = IntPoint(r.left - 10, r.top - 10);
-
- clpr.AddPath(outer, ptSubject, true);
- clpr.ReverseSolution(true);
- clpr.Execute(ctUnion, solution, pftNegative, pftNegative);
- if (solution.size() > 0) solution.erase(solution.begin());
- }
-}
-//------------------------------------------------------------------------------
-
-void ClipperOffset::Execute(PolyTree& solution, double delta)
-{
- solution.Clear();
- FixOrientations();
- DoOffset(delta);
-
- //now clean up 'corners' ...
- Clipper clpr;
- clpr.AddPaths(m_destPolys, ptSubject, true);
- if (delta > 0)
- {
- clpr.Execute(ctUnion, solution, pftPositive, pftPositive);
- }
- else
- {
- IntRect r = clpr.GetBounds();
- Path outer(4);
- outer[0] = IntPoint(r.left - 10, r.bottom + 10);
- outer[1] = IntPoint(r.right + 10, r.bottom + 10);
- outer[2] = IntPoint(r.right + 10, r.top - 10);
- outer[3] = IntPoint(r.left - 10, r.top - 10);
-
- clpr.AddPath(outer, ptSubject, true);
- clpr.ReverseSolution(true);
- clpr.Execute(ctUnion, solution, pftNegative, pftNegative);
- //remove the outer PolyNode rectangle ...
- if (solution.ChildCount() == 1 && solution.Childs[0]->ChildCount() > 0)
- {
- PolyNode* outerNode = solution.Childs[0];
- solution.Childs.reserve(outerNode->ChildCount());
- solution.Childs[0] = outerNode->Childs[0];
- solution.Childs[0]->Parent = outerNode->Parent;
- for (int i = 1; i < outerNode->ChildCount(); ++i)
- solution.AddChild(*outerNode->Childs[i]);
- }
- else
- solution.Clear();
- }
-}
-//------------------------------------------------------------------------------
-
-void ClipperOffset::DoOffset(double delta)
-{
- m_destPolys.clear();
- m_delta = delta;
-
- //if Zero offset, just copy any CLOSED polygons to m_p and return ...
- if (NEAR_ZERO(delta))
- {
- m_destPolys.reserve(m_polyNodes.ChildCount());
- for (int i = 0; i < m_polyNodes.ChildCount(); i++)
- {
- PolyNode& node = *m_polyNodes.Childs[i];
- if (node.m_endtype == etClosedPolygon)
- m_destPolys.push_back(node.Contour);
- }
- return;
- }
-
- //see offset_triginometry3.svg in the documentation folder ...
- if (MiterLimit > 2) m_miterLim = 2/(MiterLimit * MiterLimit);
- else m_miterLim = 0.5;
-
- double y;
- if (ArcTolerance <= 0.0) y = def_arc_tolerance;
- else if (ArcTolerance > std::fabs(delta) * def_arc_tolerance)
- y = std::fabs(delta) * def_arc_tolerance;
- else y = ArcTolerance;
- //see offset_triginometry2.svg in the documentation folder ...
- double steps = pi / std::acos(1 - y / std::fabs(delta));
- if (steps > std::fabs(delta) * pi)
- steps = std::fabs(delta) * pi; //ie excessive precision check
- m_sin = std::sin(two_pi / steps);
- m_cos = std::cos(two_pi / steps);
- m_StepsPerRad = steps / two_pi;
- if (delta < 0.0) m_sin = -m_sin;
-
- m_destPolys.reserve(m_polyNodes.ChildCount() * 2);
- for (int i = 0; i < m_polyNodes.ChildCount(); i++)
- {
- PolyNode& node = *m_polyNodes.Childs[i];
- m_srcPoly = node.Contour;
-
- int len = (int)m_srcPoly.size();
- if (len == 0 || (delta <= 0 && (len < 3 || node.m_endtype != etClosedPolygon)))
- continue;
-
- m_destPoly.clear();
- if (len == 1)
- {
- if (node.m_jointype == jtRound)
- {
- double X = 1.0, Y = 0.0;
- for (cInt j = 1; j <= steps; j++)
- {
- m_destPoly.push_back(IntPoint(
- Round(m_srcPoly[0].X + X * delta),
- Round(m_srcPoly[0].Y + Y * delta)));
- double X2 = X;
- X = X * m_cos - m_sin * Y;
- Y = X2 * m_sin + Y * m_cos;
- }
- }
- else
- {
- double X = -1.0, Y = -1.0;
- for (int j = 0; j < 4; ++j)
- {
- m_destPoly.push_back(IntPoint(
- Round(m_srcPoly[0].X + X * delta),
- Round(m_srcPoly[0].Y + Y * delta)));
- if (X < 0) X = 1;
- else if (Y < 0) Y = 1;
- else X = -1;
- }
- }
- m_destPolys.push_back(m_destPoly);
- continue;
- }
- //build m_normals ...
- m_normals.clear();
- m_normals.reserve(len);
- for (int j = 0; j < len - 1; ++j)
- m_normals.push_back(GetUnitNormal(m_srcPoly[j], m_srcPoly[j + 1]));
- if (node.m_endtype == etClosedLine || node.m_endtype == etClosedPolygon)
- m_normals.push_back(GetUnitNormal(m_srcPoly[len - 1], m_srcPoly[0]));
- else
- m_normals.push_back(DoublePoint(m_normals[len - 2]));
-
- if (node.m_endtype == etClosedPolygon)
- {
- int k = len - 1;
- for (int j = 0; j < len; ++j)
- OffsetPoint(j, k, node.m_jointype);
- m_destPolys.push_back(m_destPoly);
- }
- else if (node.m_endtype == etClosedLine)
- {
- int k = len - 1;
- for (int j = 0; j < len; ++j)
- OffsetPoint(j, k, node.m_jointype);
- m_destPolys.push_back(m_destPoly);
- m_destPoly.clear();
- //re-build m_normals ...
- DoublePoint n = m_normals[len -1];
- for (int j = len - 1; j > 0; j--)
- m_normals[j] = DoublePoint(-m_normals[j - 1].X, -m_normals[j - 1].Y);
- m_normals[0] = DoublePoint(-n.X, -n.Y);
- k = 0;
- for (int j = len - 1; j >= 0; j--)
- OffsetPoint(j, k, node.m_jointype);
- m_destPolys.push_back(m_destPoly);
- }
- else
- {
- int k = 0;
- for (int j = 1; j < len - 1; ++j)
- OffsetPoint(j, k, node.m_jointype);
-
- IntPoint pt1;
- if (node.m_endtype == etOpenButt)
- {
- int j = len - 1;
- pt1 = IntPoint(Round(m_srcPoly[j].X + m_normals[j].X *
- delta), Round(m_srcPoly[j].Y + m_normals[j].Y * delta));
- m_destPoly.push_back(pt1);
- pt1 = IntPoint(Round(m_srcPoly[j].X - m_normals[j].X *
- delta), Round(m_srcPoly[j].Y - m_normals[j].Y * delta));
- m_destPoly.push_back(pt1);
- }
- else
- {
- int j = len - 1;
- k = len - 2;
- m_sinA = 0;
- m_normals[j] = DoublePoint(-m_normals[j].X, -m_normals[j].Y);
- if (node.m_endtype == etOpenSquare)
- DoSquare(j, k);
- else
- DoRound(j, k);
- }
-
- //re-build m_normals ...
- for (int j = len - 1; j > 0; j--)
- m_normals[j] = DoublePoint(-m_normals[j - 1].X, -m_normals[j - 1].Y);
- m_normals[0] = DoublePoint(-m_normals[1].X, -m_normals[1].Y);
-
- k = len - 1;
- for (int j = k - 1; j > 0; --j) OffsetPoint(j, k, node.m_jointype);
-
- if (node.m_endtype == etOpenButt)
- {
- pt1 = IntPoint(Round(m_srcPoly[0].X - m_normals[0].X * delta),
- Round(m_srcPoly[0].Y - m_normals[0].Y * delta));
- m_destPoly.push_back(pt1);
- pt1 = IntPoint(Round(m_srcPoly[0].X + m_normals[0].X * delta),
- Round(m_srcPoly[0].Y + m_normals[0].Y * delta));
- m_destPoly.push_back(pt1);
- }
- else
- {
- k = 1;
- m_sinA = 0;
- if (node.m_endtype == etOpenSquare)
- DoSquare(0, 1);
- else
- DoRound(0, 1);
- }
- m_destPolys.push_back(m_destPoly);
- }
- }
-}
-//------------------------------------------------------------------------------
-
-void ClipperOffset::OffsetPoint(int j, int& k, JoinType jointype)
-{
- //cross product ...
- m_sinA = (m_normals[k].X * m_normals[j].Y - m_normals[j].X * m_normals[k].Y);
- if (std::fabs(m_sinA * m_delta) < 1.0)
- {
- //dot product ...
- double cosA = (m_normals[k].X * m_normals[j].X + m_normals[j].Y * m_normals[k].Y );
- if (cosA > 0) // angle => 0 degrees
- {
- m_destPoly.push_back(IntPoint(Round(m_srcPoly[j].X + m_normals[k].X * m_delta),
- Round(m_srcPoly[j].Y + m_normals[k].Y * m_delta)));
- return;
- }
- //else angle => 180 degrees
- }
- else if (m_sinA > 1.0) m_sinA = 1.0;
- else if (m_sinA < -1.0) m_sinA = -1.0;
-
- if (m_sinA * m_delta < 0)
- {
- m_destPoly.push_back(IntPoint(Round(m_srcPoly[j].X + m_normals[k].X * m_delta),
- Round(m_srcPoly[j].Y + m_normals[k].Y * m_delta)));
- m_destPoly.push_back(m_srcPoly[j]);
- m_destPoly.push_back(IntPoint(Round(m_srcPoly[j].X + m_normals[j].X * m_delta),
- Round(m_srcPoly[j].Y + m_normals[j].Y * m_delta)));
- }
- else
- switch (jointype)
- {
- case jtMiter:
- {
- double r = 1 + (m_normals[j].X * m_normals[k].X +
- m_normals[j].Y * m_normals[k].Y);
- if (r >= m_miterLim) DoMiter(j, k, r); else DoSquare(j, k);
- break;
- }
- case jtSquare: DoSquare(j, k); break;
- case jtRound: DoRound(j, k); break;
- }
- k = j;
-}
-//------------------------------------------------------------------------------
-
-void ClipperOffset::DoSquare(int j, int k)
-{
- double dx = std::tan(std::atan2(m_sinA,
- m_normals[k].X * m_normals[j].X + m_normals[k].Y * m_normals[j].Y) / 4);
- m_destPoly.push_back(IntPoint(
- Round(m_srcPoly[j].X + m_delta * (m_normals[k].X - m_normals[k].Y * dx)),
- Round(m_srcPoly[j].Y + m_delta * (m_normals[k].Y + m_normals[k].X * dx))));
- m_destPoly.push_back(IntPoint(
- Round(m_srcPoly[j].X + m_delta * (m_normals[j].X + m_normals[j].Y * dx)),
- Round(m_srcPoly[j].Y + m_delta * (m_normals[j].Y - m_normals[j].X * dx))));
-}
-//------------------------------------------------------------------------------
-
-void ClipperOffset::DoMiter(int j, int k, double r)
-{
- double q = m_delta / r;
- m_destPoly.push_back(IntPoint(Round(m_srcPoly[j].X + (m_normals[k].X + m_normals[j].X) * q),
- Round(m_srcPoly[j].Y + (m_normals[k].Y + m_normals[j].Y) * q)));
-}
-//------------------------------------------------------------------------------
-
-void ClipperOffset::DoRound(int j, int k)
-{
- double a = std::atan2(m_sinA,
- m_normals[k].X * m_normals[j].X + m_normals[k].Y * m_normals[j].Y);
- int steps = std::max((int)Round(m_StepsPerRad * std::fabs(a)), 1);
-
- double X = m_normals[k].X, Y = m_normals[k].Y, X2;
- for (int i = 0; i < steps; ++i)
- {
- m_destPoly.push_back(IntPoint(
- Round(m_srcPoly[j].X + X * m_delta),
- Round(m_srcPoly[j].Y + Y * m_delta)));
- X2 = X;
- X = X * m_cos - m_sin * Y;
- Y = X2 * m_sin + Y * m_cos;
- }
- m_destPoly.push_back(IntPoint(
- Round(m_srcPoly[j].X + m_normals[j].X * m_delta),
- Round(m_srcPoly[j].Y + m_normals[j].Y * m_delta)));
-}
-
-//------------------------------------------------------------------------------
-// Miscellaneous public functions
-//------------------------------------------------------------------------------
-
-// Called by Clipper::ExecuteInternal()
-// For each polygon, search for exactly duplicate non-successive points.
-// If such a point is found, the loop is split into two pieces.
-// Search for the duplicate points is O(n^2)!
-// http://www.angusj.com/delphi/clipper/documentation/Docs/Units/ClipperLib/Classes/Clipper/Properties/StrictlySimple.htm
-void Clipper::DoSimplePolygons()
-{
- PROFILE_FUNC();
- size_t i = 0;
- while (i < m_PolyOuts.size())
- {
- OutRec* outrec = m_PolyOuts[i++];
- OutPt* op = outrec->Pts;
- if (!op || outrec->IsOpen) continue;
- do //for each Pt in Polygon until duplicate found do ...
- {
- OutPt* op2 = op->Next;
- while (op2 != outrec->Pts)
- {
- if ((op->Pt == op2->Pt) && op2->Next != op && op2->Prev != op)
- {
- //split the polygon into two ...
- OutPt* op3 = op->Prev;
- OutPt* op4 = op2->Prev;
- op->Prev = op4;
- op4->Next = op;
- op2->Prev = op3;
- op3->Next = op2;
-
- outrec->Pts = op;
- OutRec* outrec2 = CreateOutRec();
- outrec2->Pts = op2;
- UpdateOutPtIdxs(*outrec2);
- if (Poly2ContainsPoly1(outrec2->Pts, outrec->Pts))
- {
- //OutRec2 is contained by OutRec1 ...
- outrec2->IsHole = !outrec->IsHole;
- outrec2->FirstLeft = outrec;
- // For each m_PolyOuts, replace FirstLeft from outRec2 to outrec.
- if (m_UsingPolyTree) FixupFirstLefts2(outrec2, outrec);
- }
- else
- if (Poly2ContainsPoly1(outrec->Pts, outrec2->Pts))
- {
- //OutRec1 is contained by OutRec2 ...
- outrec2->IsHole = outrec->IsHole;
- outrec->IsHole = !outrec2->IsHole;
- outrec2->FirstLeft = outrec->FirstLeft;
- outrec->FirstLeft = outrec2;
- // For each m_PolyOuts, replace FirstLeft from outrec to outrec2.
- if (m_UsingPolyTree) FixupFirstLefts2(outrec, outrec2);
- }
- else
- {
- //the 2 polygons are separate ...
- outrec2->IsHole = outrec->IsHole;
- outrec2->FirstLeft = outrec->FirstLeft;
- // For each polygon of m_PolyOuts, replace FirstLeft from outrec to outrec2 if the polygon is inside outRec2.
- //FIXME This is potentially very expensive! O(n^3)!
- if (m_UsingPolyTree) FixupFirstLefts1(outrec, outrec2);
- }
- op2 = op; //ie get ready for the Next iteration
- }
- op2 = op2->Next;
- }
- op = op->Next;
- }
- while (op != outrec->Pts);
- }
-}
-//------------------------------------------------------------------------------
-
-void ReversePath(Path& p)
-{
- std::reverse(p.begin(), p.end());
-}
-//------------------------------------------------------------------------------
-
-void ReversePaths(Paths& p)
-{
- for (Paths::size_type i = 0; i < p.size(); ++i)
- ReversePath(p[i]);
-}
-//------------------------------------------------------------------------------
-
-void SimplifyPolygon(const Path &in_poly, Paths &out_polys, PolyFillType fillType)
-{
- Clipper c;
- c.StrictlySimple(true);
- c.AddPath(in_poly, ptSubject, true);
- c.Execute(ctUnion, out_polys, fillType, fillType);
-}
-//------------------------------------------------------------------------------
-
-void SimplifyPolygons(const Paths &in_polys, Paths &out_polys, PolyFillType fillType)
-{
- Clipper c;
- c.StrictlySimple(true);
- c.AddPaths(in_polys, ptSubject, true);
- c.Execute(ctUnion, out_polys, fillType, fillType);
-}
-//------------------------------------------------------------------------------
-
-void SimplifyPolygons(Paths &polys, PolyFillType fillType)
-{
- SimplifyPolygons(polys, polys, fillType);
-}
-//------------------------------------------------------------------------------
-
-inline double DistanceSqrd(const IntPoint& pt1, const IntPoint& pt2)
-{
- double Dx = ((double)pt1.X - pt2.X);
- double dy = ((double)pt1.Y - pt2.Y);
- return (Dx*Dx + dy*dy);
-}
-//------------------------------------------------------------------------------
-
-double DistanceFromLineSqrd(
- const IntPoint& pt, const IntPoint& ln1, const IntPoint& ln2)
-{
- //The equation of a line in general form (Ax + By + C = 0)
- //given 2 points (x¹,y¹) & (x²,y²) is ...
- //(y¹ - y²)x + (x² - x¹)y + (y² - y¹)x¹ - (x² - x¹)y¹ = 0
- //A = (y¹ - y²); B = (x² - x¹); C = (y² - y¹)x¹ - (x² - x¹)y¹
- //perpendicular distance of point (x³,y³) = (Ax³ + By³ + C)/Sqrt(A² + B²)
- //see http://en.wikipedia.org/wiki/Perpendicular_distance
- double A = double(ln1.Y - ln2.Y);
- double B = double(ln2.X - ln1.X);
- double C = A * ln1.X + B * ln1.Y;
- C = A * pt.X + B * pt.Y - C;
- return (C * C) / (A * A + B * B);
-}
-//---------------------------------------------------------------------------
-
-bool SlopesNearCollinear(const IntPoint& pt1,
- const IntPoint& pt2, const IntPoint& pt3, double distSqrd)
-{
- //this function is more accurate when the point that's geometrically
- //between the other 2 points is the one that's tested for distance.
- //ie makes it more likely to pick up 'spikes' ...
- if (std::abs(pt1.X - pt2.X) > std::abs(pt1.Y - pt2.Y))
- {
- if ((pt1.X > pt2.X) == (pt1.X < pt3.X))
- return DistanceFromLineSqrd(pt1, pt2, pt3) < distSqrd;
- else if ((pt2.X > pt1.X) == (pt2.X < pt3.X))
- return DistanceFromLineSqrd(pt2, pt1, pt3) < distSqrd;
- else
- return DistanceFromLineSqrd(pt3, pt1, pt2) < distSqrd;
- }
- else
- {
- if ((pt1.Y > pt2.Y) == (pt1.Y < pt3.Y))
- return DistanceFromLineSqrd(pt1, pt2, pt3) < distSqrd;
- else if ((pt2.Y > pt1.Y) == (pt2.Y < pt3.Y))
- return DistanceFromLineSqrd(pt2, pt1, pt3) < distSqrd;
- else
- return DistanceFromLineSqrd(pt3, pt1, pt2) < distSqrd;
- }
-}
-//------------------------------------------------------------------------------
-
-bool PointsAreClose(IntPoint pt1, IntPoint pt2, double distSqrd)
-{
- double Dx = (double)pt1.X - pt2.X;
- double dy = (double)pt1.Y - pt2.Y;
- return ((Dx * Dx) + (dy * dy) <= distSqrd);
-}
-//------------------------------------------------------------------------------
-
-OutPt* ExcludeOp(OutPt* op)
-{
- OutPt* result = op->Prev;
- result->Next = op->Next;
- op->Next->Prev = result;
- result->Idx = 0;
- return result;
-}
-//------------------------------------------------------------------------------
-
-// Simplify a polygon using a linked list of points.
-void CleanPolygon(const Path& in_poly, Path& out_poly, double distance)
-{
- //distance = proximity in units/pixels below which vertices
- //will be stripped. Default ~= sqrt(2).
-
- size_t size = in_poly.size();
-
- if (size == 0)
- {
- out_poly.clear();
- return;
- }
-
- std::vector<OutPt> outPts(size);
- for (size_t i = 0; i < size; ++i)
- {
- outPts[i].Pt = in_poly[i];
- outPts[i].Next = &outPts[(i + 1) % size];
- outPts[i].Next->Prev = &outPts[i];
- outPts[i].Idx = 0;
- }
-
- double distSqrd = distance * distance;
- OutPt* op = &outPts[0];
- while (op->Idx == 0 && op->Next != op->Prev)
- {
- if (PointsAreClose(op->Pt, op->Prev->Pt, distSqrd))
- {
- op = ExcludeOp(op);
- size--;
- }
- else if (PointsAreClose(op->Prev->Pt, op->Next->Pt, distSqrd))
- {
- ExcludeOp(op->Next);
- op = ExcludeOp(op);
- size -= 2;
- }
- else if (SlopesNearCollinear(op->Prev->Pt, op->Pt, op->Next->Pt, distSqrd))
- {
- op = ExcludeOp(op);
- size--;
- }
- else
- {
- op->Idx = 1;
- op = op->Next;
- }
- }
-
- if (size < 3) size = 0;
- out_poly.resize(size);
- for (size_t i = 0; i < size; ++i)
- {
- out_poly[i] = op->Pt;
- op = op->Next;
- }
-}
-//------------------------------------------------------------------------------
-
-void CleanPolygon(Path& poly, double distance)
-{
- CleanPolygon(poly, poly, distance);
-}
-//------------------------------------------------------------------------------
-
-void CleanPolygons(const Paths& in_polys, Paths& out_polys, double distance)
-{
- for (Paths::size_type i = 0; i < in_polys.size(); ++i)
- CleanPolygon(in_polys[i], out_polys[i], distance);
-}
-//------------------------------------------------------------------------------
-
-void CleanPolygons(Paths& polys, double distance)
-{
- CleanPolygons(polys, polys, distance);
-}
-//------------------------------------------------------------------------------
-
-void Minkowski(const Path& poly, const Path& path,
- Paths& solution, bool isSum, bool isClosed)
-{
- int delta = (isClosed ? 1 : 0);
- size_t polyCnt = poly.size();
- size_t pathCnt = path.size();
- Paths pp;
- pp.reserve(pathCnt);
- if (isSum)
- for (size_t i = 0; i < pathCnt; ++i)
- {
- Path p;
- p.reserve(polyCnt);
- for (size_t j = 0; j < poly.size(); ++j)
- p.push_back(IntPoint(path[i].X + poly[j].X, path[i].Y + poly[j].Y));
- pp.push_back(p);
- }
- else
- for (size_t i = 0; i < pathCnt; ++i)
- {
- Path p;
- p.reserve(polyCnt);
- for (size_t j = 0; j < poly.size(); ++j)
- p.push_back(IntPoint(path[i].X - poly[j].X, path[i].Y - poly[j].Y));
- pp.push_back(p);
- }
-
- solution.clear();
- solution.reserve((pathCnt + delta) * (polyCnt + 1));
- for (size_t i = 0; i < pathCnt - 1 + delta; ++i)
- for (size_t j = 0; j < polyCnt; ++j)
- {
- Path quad;
- quad.reserve(4);
- quad.push_back(pp[i % pathCnt][j % polyCnt]);
- quad.push_back(pp[(i + 1) % pathCnt][j % polyCnt]);
- quad.push_back(pp[(i + 1) % pathCnt][(j + 1) % polyCnt]);
- quad.push_back(pp[i % pathCnt][(j + 1) % polyCnt]);
- if (!Orientation(quad)) ReversePath(quad);
- solution.push_back(quad);
- }
-}
-//------------------------------------------------------------------------------
-
-void MinkowskiSum(const Path& pattern, const Path& path, Paths& solution, bool pathIsClosed)
-{
- Minkowski(pattern, path, solution, true, pathIsClosed);
- Clipper c;
- c.AddPaths(solution, ptSubject, true);
- c.Execute(ctUnion, solution, pftNonZero, pftNonZero);
-}
-//------------------------------------------------------------------------------
-
-void TranslatePath(const Path& input, Path& output, const IntPoint& delta)
-{
- //precondition: input != output
- output.resize(input.size());
- for (size_t i = 0; i < input.size(); ++i)
- output[i] = IntPoint(input[i].X + delta.X, input[i].Y + delta.Y);
-}
-//------------------------------------------------------------------------------
-
-void MinkowskiSum(const Path& pattern, const Paths& paths, Paths& solution, bool pathIsClosed)
-{
- Clipper c;
- for (size_t i = 0; i < paths.size(); ++i)
- {
- Paths tmp;
- Minkowski(pattern, paths[i], tmp, true, pathIsClosed);
- c.AddPaths(tmp, ptSubject, true);
- if (pathIsClosed)
- {
- Path tmp2;
- TranslatePath(paths[i], tmp2, pattern[0]);
- c.AddPath(tmp2, ptClip, true);
- }
- }
- c.Execute(ctUnion, solution, pftNonZero, pftNonZero);
-}
-//------------------------------------------------------------------------------
-
-void MinkowskiDiff(const Path& poly1, const Path& poly2, Paths& solution)
-{
- Minkowski(poly1, poly2, solution, false, true);
- Clipper c;
- c.AddPaths(solution, ptSubject, true);
- c.Execute(ctUnion, solution, pftNonZero, pftNonZero);
-}
-//------------------------------------------------------------------------------
-
-enum NodeType {ntAny, ntOpen, ntClosed};
-
-void AddPolyNodeToPaths(const PolyNode& polynode, NodeType nodetype, Paths& paths)
-{
- bool match = true;
- if (nodetype == ntClosed) match = !polynode.IsOpen();
- else if (nodetype == ntOpen) return;
-
- if (!polynode.Contour.empty() && match)
- paths.push_back(polynode.Contour);
- for (int i = 0; i < polynode.ChildCount(); ++i)
- AddPolyNodeToPaths(*polynode.Childs[i], nodetype, paths);
-}
-//------------------------------------------------------------------------------
-
-void PolyTreeToPaths(const PolyTree& polytree, Paths& paths)
-{
- paths.resize(0);
- paths.reserve(polytree.Total());
- AddPolyNodeToPaths(polytree, ntAny, paths);
-}
-//------------------------------------------------------------------------------
-
-void ClosedPathsFromPolyTree(const PolyTree& polytree, Paths& paths)
-{
- paths.resize(0);
- paths.reserve(polytree.Total());
- AddPolyNodeToPaths(polytree, ntClosed, paths);
-}
-//------------------------------------------------------------------------------
-
-void OpenPathsFromPolyTree(PolyTree& polytree, Paths& paths)
-{
- paths.resize(0);
- paths.reserve(polytree.Total());
- //Open paths are top level only, so ...
- for (int i = 0; i < polytree.ChildCount(); ++i)
- if (polytree.Childs[i]->IsOpen())
- paths.push_back(polytree.Childs[i]->Contour);
-}
-//------------------------------------------------------------------------------
-
-std::ostream& operator <<(std::ostream &s, const IntPoint &p)
-{
- s << "(" << p.X << "," << p.Y << ")";
- return s;
-}
-//------------------------------------------------------------------------------
-
-std::ostream& operator <<(std::ostream &s, const Path &p)
-{
- if (p.empty()) return s;
- Path::size_type last = p.size() -1;
- for (Path::size_type i = 0; i < last; i++)
- s << "(" << p[i].X << "," << p[i].Y << "), ";
- s << "(" << p[last].X << "," << p[last].Y << ")\n";
- return s;
-}
-//------------------------------------------------------------------------------
-
-std::ostream& operator <<(std::ostream &s, const Paths &p)
-{
- for (Paths::size_type i = 0; i < p.size(); i++)
- s << p[i];
- s << "\n";
- return s;
-}
-//------------------------------------------------------------------------------
-
-} //ClipperLib namespace
+/******************************************************************************* +* * +* Author : Angus Johnson * +* Version : 6.2.9 * +* Date : 16 February 2015 * +* Website : http://www.angusj.com * +* Copyright : Angus Johnson 2010-2015 * +* * +* License: * +* Use, modification & distribution is subject to Boost Software License Ver 1. * +* http://www.boost.org/LICENSE_1_0.txt * +* * +* Attributions: * +* The code in this library is an extension of Bala Vatti's clipping algorithm: * +* "A generic solution to polygon clipping" * +* Communications of the ACM, Vol 35, Issue 7 (July 1992) pp 56-63. * +* http://portal.acm.org/citation.cfm?id=129906 * +* * +* Computer graphics and geometric modeling: implementation and algorithms * +* By Max K. Agoston * +* Springer; 1 edition (January 4, 2005) * +* http://books.google.com/books?q=vatti+clipping+agoston * +* * +* See also: * +* "Polygon Offsetting by Computing Winding Numbers" * +* Paper no. DETC2005-85513 pp. 565-575 * +* ASME 2005 International Design Engineering Technical Conferences * +* and Computers and Information in Engineering Conference (IDETC/CIE2005) * +* September 24-28, 2005 , Long Beach, California, USA * +* http://www.me.berkeley.edu/~mcmains/pubs/DAC05OffsetPolygon.pdf * +* * +*******************************************************************************/ + +/******************************************************************************* +* * +* This is a translation of the Delphi Clipper library and the naming style * +* used has retained a Delphi flavour. * +* * +*******************************************************************************/ + +#include "clipper.hpp" +#include <cmath> +#include <vector> +#include <algorithm> +#include <stdexcept> +#include <cstring> +#include <cstdlib> +#include <ostream> +#include <functional> +#include <assert.h> +#include <Shiny/Shiny.h> +#include <libslic3r/Int128.hpp> + +namespace ClipperLib { + +static double const pi = 3.141592653589793238; +static double const two_pi = pi *2; +static double const def_arc_tolerance = 0.25; + +enum Direction { dRightToLeft, dLeftToRight }; + +static int const Unassigned = -1; //edge not currently 'owning' a solution +static int const Skip = -2; //edge that would otherwise close a path + +#define HORIZONTAL (-1.0E+40) +#define TOLERANCE (1.0e-20) +#define NEAR_ZERO(val) (((val) > -TOLERANCE) && ((val) < TOLERANCE)) + +// Output polygon. +struct OutRec { + int Idx; + bool IsHole; + bool IsOpen; + //The 'FirstLeft' field points to another OutRec that contains or is the + //'parent' of OutRec. It is 'first left' because the ActiveEdgeList (AEL) is + //parsed left from the current edge (owning OutRec) until the owner OutRec + //is found. This field simplifies sorting the polygons into a tree structure + //which reflects the parent/child relationships of all polygons. + //This field should be renamed Parent, and will be later. + OutRec *FirstLeft; + // Used only by void Clipper::BuildResult2(PolyTree& polytree) + PolyNode *PolyNd; + // Linked list of output points, dynamically allocated. + OutPt *Pts; + OutPt *BottomPt; +}; + +//------------------------------------------------------------------------------ + +inline cInt Round(double val) +{ + return static_cast<cInt>((val < 0) ? (val - 0.5) : (val + 0.5)); +} + +//------------------------------------------------------------------------------ +// PolyTree methods ... +//------------------------------------------------------------------------------ + +int PolyTree::Total() const +{ + int result = (int)AllNodes.size(); + //with negative offsets, ignore the hidden outer polygon ... + if (result > 0 && Childs.front() != &AllNodes.front()) result--; + return result; +} + +//------------------------------------------------------------------------------ +// PolyNode methods ... +//------------------------------------------------------------------------------ + +void PolyNode::AddChild(PolyNode& child) +{ + unsigned cnt = (unsigned)Childs.size(); + Childs.push_back(&child); + child.Parent = this; + child.Index = cnt; +} +//------------------------------------------------------------------------------ + +// Edge delimits a hole if it has an odd number of parent loops. +bool PolyNode::IsHole() const +{ + bool result = true; + PolyNode* node = Parent; + while (node) + { + result = !result; + node = node->Parent; + } + return result; +} + +//------------------------------------------------------------------------------ +// Miscellaneous global functions +//------------------------------------------------------------------------------ + +double Area(const Path &poly) +{ + int size = (int)poly.size(); + if (size < 3) return 0; + + double a = 0; + for (int i = 0, j = size -1; i < size; ++i) + { + a += ((double)poly[j].X + poly[i].X) * ((double)poly[j].Y - poly[i].Y); + j = i; + } + return -a * 0.5; +} +//------------------------------------------------------------------------------ + +double Area(const OutRec &outRec) +{ + OutPt *op = outRec.Pts; + if (!op) return 0; + double a = 0; + do { + a += (double)(op->Prev->Pt.X + op->Pt.X) * (double)(op->Prev->Pt.Y - op->Pt.Y); + op = op->Next; + } while (op != outRec.Pts); + return a * 0.5; +} +//------------------------------------------------------------------------------ + +bool PointIsVertex(const IntPoint &Pt, OutPt *pp) +{ + OutPt *pp2 = pp; + do + { + if (pp2->Pt == Pt) return true; + pp2 = pp2->Next; + } + while (pp2 != pp); + return false; +} +//------------------------------------------------------------------------------ + +//See "The Point in Polygon Problem for Arbitrary Polygons" by Hormann & Agathos +//http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.88.5498&rep=rep1&type=pdf +int PointInPolygon(const IntPoint &pt, const Path &path) +{ + //returns 0 if false, +1 if true, -1 if pt ON polygon boundary + int result = 0; + size_t cnt = path.size(); + if (cnt < 3) return 0; + IntPoint ip = path[0]; + for(size_t i = 1; i <= cnt; ++i) + { + IntPoint ipNext = (i == cnt ? path[0] : path[i]); + if (ipNext.Y == pt.Y && ((ipNext.X == pt.X) || (ip.Y == pt.Y && ((ipNext.X > pt.X) == (ip.X < pt.X))))) + return -1; + if ((ip.Y < pt.Y) != (ipNext.Y < pt.Y)) + { + if (ip.X >= pt.X) + { + if (ipNext.X > pt.X) result = 1 - result; + else + { + double d = (double)(ip.X - pt.X) * (ipNext.Y - pt.Y) - (double)(ipNext.X - pt.X) * (ip.Y - pt.Y); + if (!d) return -1; + if ((d > 0) == (ipNext.Y > ip.Y)) result = 1 - result; + } + } else + { + if (ipNext.X > pt.X) + { + double d = (double)(ip.X - pt.X) * (ipNext.Y - pt.Y) - (double)(ipNext.X - pt.X) * (ip.Y - pt.Y); + if (!d) return -1; + if ((d > 0) == (ipNext.Y > ip.Y)) result = 1 - result; + } + } + } + ip = ipNext; + } + return result; +} +//------------------------------------------------------------------------------ + +// Called by Poly2ContainsPoly1() +int PointInPolygon (const IntPoint &pt, OutPt *op) +{ + //returns 0 if false, +1 if true, -1 if pt ON polygon boundary + int result = 0; + OutPt* startOp = op; + do + { + if (op->Next->Pt.Y == pt.Y) + { + if ((op->Next->Pt.X == pt.X) || (op->Pt.Y == pt.Y && + ((op->Next->Pt.X > pt.X) == (op->Pt.X < pt.X)))) return -1; + } + if ((op->Pt.Y < pt.Y) != (op->Next->Pt.Y < pt.Y)) + { + if (op->Pt.X >= pt.X) + { + if (op->Next->Pt.X > pt.X) result = 1 - result; + else + { + double d = (double)(op->Pt.X - pt.X) * (op->Next->Pt.Y - pt.Y) - (double)(op->Next->Pt.X - pt.X) * (op->Pt.Y - pt.Y); + if (!d) return -1; + if ((d > 0) == (op->Next->Pt.Y > op->Pt.Y)) result = 1 - result; + } + } else + { + if (op->Next->Pt.X > pt.X) + { + double d = (double)(op->Pt.X - pt.X) * (op->Next->Pt.Y - pt.Y) - (double)(op->Next->Pt.X - pt.X) * (op->Pt.Y - pt.Y); + if (!d) return -1; + if ((d > 0) == (op->Next->Pt.Y > op->Pt.Y)) result = 1 - result; + } + } + } + op = op->Next; + } while (startOp != op); + return result; +} +//------------------------------------------------------------------------------ + +// This is potentially very expensive! O(n^2)! +bool Poly2ContainsPoly1(OutPt *OutPt1, OutPt *OutPt2) +{ + PROFILE_FUNC(); + OutPt* op = OutPt1; + do + { + //nb: PointInPolygon returns 0 if false, +1 if true, -1 if pt on polygon + int res = PointInPolygon(op->Pt, OutPt2); + if (res >= 0) return res > 0; + op = op->Next; + } + while (op != OutPt1); + return true; +} +//---------------------------------------------------------------------- + +inline bool SlopesEqual(const cInt dx1, const cInt dy1, const cInt dx2, const cInt dy2, bool UseFullInt64Range) { + return (UseFullInt64Range) ? + // |dx1| < 2^63, |dx2| < 2^63 etc, + Int128::sign_determinant_2x2_filtered(dx1, dy1, dx2, dy2) == 0 : +// Int128::sign_determinant_2x2(dx1, dy1, dx2, dy2) == 0 : + // |dx1| < 2^31, |dx2| < 2^31 etc, + // therefore the following computation could be done with 64bit arithmetics. + dy1 * dx2 == dx1 * dy2; +} +inline bool SlopesEqual(const TEdge &e1, const TEdge &e2, bool UseFullInt64Range) + { return SlopesEqual(e1.Delta.X, e1.Delta.Y, e2.Delta.X, e2.Delta.Y, UseFullInt64Range); } +inline bool SlopesEqual(const IntPoint &pt1, const IntPoint &pt2, const IntPoint &pt3, bool UseFullInt64Range) + { return SlopesEqual(pt1.X-pt2.X, pt1.Y-pt2.Y, pt2.X-pt3.X, pt2.Y-pt3.Y, UseFullInt64Range); } +inline bool SlopesEqual(const IntPoint &pt1, const IntPoint &pt2, const IntPoint &pt3, const IntPoint &pt4, bool UseFullInt64Range) + { return SlopesEqual(pt1.X-pt2.X, pt1.Y-pt2.Y, pt3.X-pt4.X, pt3.Y-pt4.Y, UseFullInt64Range); } + +//------------------------------------------------------------------------------ + +inline bool IsHorizontal(TEdge &e) +{ + return e.Delta.Y == 0; +} +//------------------------------------------------------------------------------ + +inline double GetDx(const IntPoint &pt1, const IntPoint &pt2) +{ + return (pt1.Y == pt2.Y) ? + HORIZONTAL : (double)(pt2.X - pt1.X) / (pt2.Y - pt1.Y); +} +//--------------------------------------------------------------------------- + +inline cInt TopX(TEdge &edge, const cInt currentY) +{ + return (currentY == edge.Top.Y) ? + edge.Top.X : + edge.Bot.X + Round(edge.Dx *(currentY - edge.Bot.Y)); +} +//------------------------------------------------------------------------------ + +void IntersectPoint(TEdge &Edge1, TEdge &Edge2, IntPoint &ip) +{ +#ifdef use_xyz + ip.Z = 0; +#endif + + double b1, b2; + if (Edge1.Dx == Edge2.Dx) + { + ip.Y = Edge1.Curr.Y; + ip.X = TopX(Edge1, ip.Y); + return; + } + else if (Edge1.Delta.X == 0) + { + ip.X = Edge1.Bot.X; + if (IsHorizontal(Edge2)) + ip.Y = Edge2.Bot.Y; + else + { + b2 = Edge2.Bot.Y - (Edge2.Bot.X / Edge2.Dx); + ip.Y = Round(ip.X / Edge2.Dx + b2); + } + } + else if (Edge2.Delta.X == 0) + { + ip.X = Edge2.Bot.X; + if (IsHorizontal(Edge1)) + ip.Y = Edge1.Bot.Y; + else + { + b1 = Edge1.Bot.Y - (Edge1.Bot.X / Edge1.Dx); + ip.Y = Round(ip.X / Edge1.Dx + b1); + } + } + else + { + b1 = Edge1.Bot.X - Edge1.Bot.Y * Edge1.Dx; + b2 = Edge2.Bot.X - Edge2.Bot.Y * Edge2.Dx; + double q = (b2-b1) / (Edge1.Dx - Edge2.Dx); + ip.Y = Round(q); + ip.X = (std::fabs(Edge1.Dx) < std::fabs(Edge2.Dx)) ? + Round(Edge1.Dx * q + b1) : + Round(Edge2.Dx * q + b2); + } + + if (ip.Y < Edge1.Top.Y || ip.Y < Edge2.Top.Y) + { + if (Edge1.Top.Y > Edge2.Top.Y) + ip.Y = Edge1.Top.Y; + else + ip.Y = Edge2.Top.Y; + if (std::fabs(Edge1.Dx) < std::fabs(Edge2.Dx)) + ip.X = TopX(Edge1, ip.Y); + else + ip.X = TopX(Edge2, ip.Y); + } + //finally, don't allow 'ip' to be BELOW curr.Y (ie bottom of scanbeam) ... + if (ip.Y > Edge1.Curr.Y) + { + ip.Y = Edge1.Curr.Y; + //use the more vertical edge to derive X ... + if (std::fabs(Edge1.Dx) > std::fabs(Edge2.Dx)) + ip.X = TopX(Edge2, ip.Y); else + ip.X = TopX(Edge1, ip.Y); + } +} +//------------------------------------------------------------------------------ + +// Reverse a linked loop of points representing a closed polygon. +// This has a time complexity of O(n) +void ReversePolyPtLinks(OutPt *pp) +{ + if (!pp) return; + OutPt *pp1 = pp; + do { + OutPt *pp2 = pp1->Next; + pp1->Next = pp1->Prev; + pp1->Prev = pp2; + pp1 = pp2; + } while( pp1 != pp ); +} +//------------------------------------------------------------------------------ + +inline void InitEdge(TEdge* e, TEdge* eNext, TEdge* ePrev, const IntPoint& Pt) +{ + std::memset(e, 0, sizeof(TEdge)); + e->Next = eNext; + e->Prev = ePrev; + e->Curr = Pt; + e->OutIdx = Unassigned; +} +//------------------------------------------------------------------------------ + +void InitEdge2(TEdge& e, PolyType Pt) +{ + if (e.Curr.Y >= e.Next->Curr.Y) + { + e.Bot = e.Curr; + e.Top = e.Next->Curr; + } else + { + e.Top = e.Curr; + e.Bot = e.Next->Curr; + } + + e.Delta.X = (e.Top.X - e.Bot.X); + e.Delta.Y = (e.Top.Y - e.Bot.Y); + + if (e.Delta.Y == 0) e.Dx = HORIZONTAL; + else e.Dx = (double)(e.Delta.X) / e.Delta.Y; + + e.PolyTyp = Pt; +} +//------------------------------------------------------------------------------ + +// Called from ClipperBase::AddPathInternal() to remove collinear and duplicate points. +inline TEdge* RemoveEdge(TEdge* e) +{ + //removes e from double_linked_list (but without removing from memory) + e->Prev->Next = e->Next; + e->Next->Prev = e->Prev; + TEdge* result = e->Next; + e->Prev = 0; //flag as removed (see ClipperBase.Clear) + return result; +} +//------------------------------------------------------------------------------ + +inline void ReverseHorizontal(TEdge &e) +{ + //swap horizontal edges' Top and Bottom x's so they follow the natural + //progression of the bounds - ie so their xbots will align with the + //adjoining lower edge. [Helpful in the ProcessHorizontal() method.] + std::swap(e.Top.X, e.Bot.X); +#ifdef use_xyz + std::swap(e.Top.Z, e.Bot.Z); +#endif +} +//------------------------------------------------------------------------------ + +bool GetOverlapSegment(IntPoint pt1a, IntPoint pt1b, IntPoint pt2a, + IntPoint pt2b, IntPoint &pt1, IntPoint &pt2) +{ + //precondition: segments are Collinear. + if (std::abs(pt1a.X - pt1b.X) > std::abs(pt1a.Y - pt1b.Y)) + { + if (pt1a.X > pt1b.X) std::swap(pt1a, pt1b); + if (pt2a.X > pt2b.X) std::swap(pt2a, pt2b); + if (pt1a.X > pt2a.X) pt1 = pt1a; else pt1 = pt2a; + if (pt1b.X < pt2b.X) pt2 = pt1b; else pt2 = pt2b; + return pt1.X < pt2.X; + } else + { + if (pt1a.Y < pt1b.Y) std::swap(pt1a, pt1b); + if (pt2a.Y < pt2b.Y) std::swap(pt2a, pt2b); + if (pt1a.Y < pt2a.Y) pt1 = pt1a; else pt1 = pt2a; + if (pt1b.Y > pt2b.Y) pt2 = pt1b; else pt2 = pt2b; + return pt1.Y > pt2.Y; + } +} +//------------------------------------------------------------------------------ + +bool FirstIsBottomPt(const OutPt* btmPt1, const OutPt* btmPt2) +{ + OutPt *p = btmPt1->Prev; + while ((p->Pt == btmPt1->Pt) && (p != btmPt1)) p = p->Prev; + double dx1p = std::fabs(GetDx(btmPt1->Pt, p->Pt)); + p = btmPt1->Next; + while ((p->Pt == btmPt1->Pt) && (p != btmPt1)) p = p->Next; + double dx1n = std::fabs(GetDx(btmPt1->Pt, p->Pt)); + + p = btmPt2->Prev; + while ((p->Pt == btmPt2->Pt) && (p != btmPt2)) p = p->Prev; + double dx2p = std::fabs(GetDx(btmPt2->Pt, p->Pt)); + p = btmPt2->Next; + while ((p->Pt == btmPt2->Pt) && (p != btmPt2)) p = p->Next; + double dx2n = std::fabs(GetDx(btmPt2->Pt, p->Pt)); + return (dx1p >= dx2p && dx1p >= dx2n) || (dx1n >= dx2p && dx1n >= dx2n); +} +//------------------------------------------------------------------------------ + +// Called by GetLowermostRec() +OutPt* GetBottomPt(OutPt *pp) +{ + OutPt* dups = 0; + OutPt* p = pp->Next; + while (p != pp) + { + if (p->Pt.Y > pp->Pt.Y) + { + pp = p; + dups = 0; + } + else if (p->Pt.Y == pp->Pt.Y && p->Pt.X <= pp->Pt.X) + { + if (p->Pt.X < pp->Pt.X) + { + dups = 0; + pp = p; + } else + { + if (p->Next != pp && p->Prev != pp) dups = p; + } + } + p = p->Next; + } + if (dups) + { + //there appears to be at least 2 vertices at BottomPt so ... + while (dups != p) + { + if (!FirstIsBottomPt(p, dups)) pp = dups; + dups = dups->Next; + while (dups->Pt != pp->Pt) dups = dups->Next; + } + } + return pp; +} +//------------------------------------------------------------------------------ + +bool Pt2IsBetweenPt1AndPt3(const IntPoint &pt1, + const IntPoint &pt2, const IntPoint &pt3) +{ + if ((pt1 == pt3) || (pt1 == pt2) || (pt3 == pt2)) + return false; + else if (pt1.X != pt3.X) + return (pt2.X > pt1.X) == (pt2.X < pt3.X); + else + return (pt2.Y > pt1.Y) == (pt2.Y < pt3.Y); +} +//------------------------------------------------------------------------------ + +bool HorzSegmentsOverlap(cInt seg1a, cInt seg1b, cInt seg2a, cInt seg2b) +{ + if (seg1a > seg1b) std::swap(seg1a, seg1b); + if (seg2a > seg2b) std::swap(seg2a, seg2b); + return (seg1a < seg2b) && (seg2a < seg1b); +} + +//------------------------------------------------------------------------------ +// ClipperBase class methods ... +//------------------------------------------------------------------------------ + +// Called from ClipperBase::AddPath() to verify the scale of the input polygon coordinates. +inline void RangeTest(const IntPoint& Pt, bool& useFullRange) +{ + if (useFullRange) + { + if (Pt.X > hiRange || Pt.Y > hiRange || -Pt.X > hiRange || -Pt.Y > hiRange) + throw clipperException("Coordinate outside allowed range"); + } + else if (Pt.X > loRange|| Pt.Y > loRange || -Pt.X > loRange || -Pt.Y > loRange) + { + useFullRange = true; + RangeTest(Pt, useFullRange); + } +} +//------------------------------------------------------------------------------ + +// Called from ClipperBase::AddPath() to construct the Local Minima List. +// Find a local minimum edge on the path starting with E. +inline TEdge* FindNextLocMin(TEdge* E) +{ + for (;;) + { + while (E->Bot != E->Prev->Bot || E->Curr == E->Top) E = E->Next; + if (!IsHorizontal(*E) && !IsHorizontal(*E->Prev)) break; + while (IsHorizontal(*E->Prev)) E = E->Prev; + TEdge* E2 = E; + while (IsHorizontal(*E)) E = E->Next; + if (E->Top.Y == E->Prev->Bot.Y) continue; //ie just an intermediate horz. + if (E2->Prev->Bot.X < E->Bot.X) E = E2; + break; + } + return E; +} +//------------------------------------------------------------------------------ + +// Called from ClipperBase::AddPath(). +TEdge* ClipperBase::ProcessBound(TEdge* E, bool NextIsForward) +{ + TEdge *Result = E; + TEdge *Horz = 0; + + if (E->OutIdx == Skip) + { + //if edges still remain in the current bound beyond the skip edge then + //create another LocMin and call ProcessBound once more + if (NextIsForward) + { + while (E->Top.Y == E->Next->Bot.Y) E = E->Next; + //don't include top horizontals when parsing a bound a second time, + //they will be contained in the opposite bound ... + while (E != Result && IsHorizontal(*E)) E = E->Prev; + } + else + { + while (E->Top.Y == E->Prev->Bot.Y) E = E->Prev; + while (E != Result && IsHorizontal(*E)) E = E->Next; + } + + if (E == Result) + { + if (NextIsForward) Result = E->Next; + else Result = E->Prev; + } + else + { + //there are more edges in the bound beyond result starting with E + if (NextIsForward) + E = Result->Next; + else + E = Result->Prev; + LocalMinimum locMin; + locMin.Y = E->Bot.Y; + locMin.LeftBound = 0; + locMin.RightBound = E; + E->WindDelta = 0; + Result = ProcessBound(E, NextIsForward); + m_MinimaList.push_back(locMin); + } + return Result; + } + + TEdge *EStart; + + if (IsHorizontal(*E)) + { + //We need to be careful with open paths because this may not be a + //true local minima (ie E may be following a skip edge). + //Also, consecutive horz. edges may start heading left before going right. + if (NextIsForward) + EStart = E->Prev; + else + EStart = E->Next; + if (IsHorizontal(*EStart)) //ie an adjoining horizontal skip edge + { + if (EStart->Bot.X != E->Bot.X && EStart->Top.X != E->Bot.X) + ReverseHorizontal(*E); + } + else if (EStart->Bot.X != E->Bot.X) + ReverseHorizontal(*E); + } + + EStart = E; + if (NextIsForward) + { + while (Result->Top.Y == Result->Next->Bot.Y && Result->Next->OutIdx != Skip) + Result = Result->Next; + if (IsHorizontal(*Result) && Result->Next->OutIdx != Skip) + { + //nb: at the top of a bound, horizontals are added to the bound + //only when the preceding edge attaches to the horizontal's left vertex + //unless a Skip edge is encountered when that becomes the top divide + Horz = Result; + while (IsHorizontal(*Horz->Prev)) Horz = Horz->Prev; + if (Horz->Prev->Top.X > Result->Next->Top.X) Result = Horz->Prev; + } + while (E != Result) + { + E->NextInLML = E->Next; + if (IsHorizontal(*E) && E != EStart && + E->Bot.X != E->Prev->Top.X) ReverseHorizontal(*E); + E = E->Next; + } + if (IsHorizontal(*E) && E != EStart && E->Bot.X != E->Prev->Top.X) + ReverseHorizontal(*E); + Result = Result->Next; //move to the edge just beyond current bound + } else + { + while (Result->Top.Y == Result->Prev->Bot.Y && Result->Prev->OutIdx != Skip) + Result = Result->Prev; + if (IsHorizontal(*Result) && Result->Prev->OutIdx != Skip) + { + Horz = Result; + while (IsHorizontal(*Horz->Next)) Horz = Horz->Next; + if (Horz->Next->Top.X == Result->Prev->Top.X || + Horz->Next->Top.X > Result->Prev->Top.X) Result = Horz->Next; + } + + while (E != Result) + { + E->NextInLML = E->Prev; + if (IsHorizontal(*E) && E != EStart && E->Bot.X != E->Next->Top.X) + ReverseHorizontal(*E); + E = E->Prev; + } + if (IsHorizontal(*E) && E != EStart && E->Bot.X != E->Next->Top.X) + ReverseHorizontal(*E); + Result = Result->Prev; //move to the edge just beyond current bound + } + + return Result; +} +//------------------------------------------------------------------------------ + +bool ClipperBase::AddPath(const Path &pg, PolyType PolyTyp, bool Closed) +{ + PROFILE_FUNC(); + // Remove duplicate end point from a closed input path. + // Remove duplicate points from the end of the input path. + int highI = (int)pg.size() -1; + if (Closed) + while (highI > 0 && (pg[highI] == pg[0])) + --highI; + while (highI > 0 && (pg[highI] == pg[highI -1])) + --highI; + if ((Closed && highI < 2) || (!Closed && highI < 1)) + return false; + + // Allocate a new edge array. + std::vector<TEdge> edges(highI + 1); + // Fill in the edge array. + bool result = AddPathInternal(pg, highI, PolyTyp, Closed, edges.data()); + if (result) + // Success, remember the edge array. + m_edges.emplace_back(std::move(edges)); + return result; +} + +bool ClipperBase::AddPaths(const Paths &ppg, PolyType PolyTyp, bool Closed) +{ + PROFILE_FUNC(); + std::vector<int> num_edges(ppg.size(), 0); + int num_edges_total = 0; + for (size_t i = 0; i < ppg.size(); ++ i) { + const Path &pg = ppg[i]; + // Remove duplicate end point from a closed input path. + // Remove duplicate points from the end of the input path. + int highI = (int)pg.size() -1; + if (Closed) + while (highI > 0 && (pg[highI] == pg[0])) + --highI; + while (highI > 0 && (pg[highI] == pg[highI -1])) + --highI; + if ((Closed && highI < 2) || (!Closed && highI < 1)) + highI = -1; + num_edges[i] = highI + 1; + num_edges_total += highI + 1; + } + if (num_edges_total == 0) + return false; + + // Allocate a new edge array. + std::vector<TEdge> edges(num_edges_total); + // Fill in the edge array. + bool result = false; + TEdge *p_edge = edges.data(); + for (Paths::size_type i = 0; i < ppg.size(); ++i) + if (num_edges[i]) { + bool res = AddPathInternal(ppg[i], num_edges[i] - 1, PolyTyp, Closed, p_edge); + if (res) { + p_edge += num_edges[i]; + result = true; + } + } + if (result) + // At least some edges were generated. Remember the edge array. + m_edges.emplace_back(std::move(edges)); + return result; +} + +bool ClipperBase::AddPathInternal(const Path &pg, int highI, PolyType PolyTyp, bool Closed, TEdge* edges) +{ + PROFILE_FUNC(); +#ifdef use_lines + if (!Closed && PolyTyp == ptClip) + throw clipperException("AddPath: Open paths must be subject."); +#else + if (!Closed) + throw clipperException("AddPath: Open paths have been disabled."); +#endif + + assert(highI >= 0 && highI < pg.size()); + + //1. Basic (first) edge initialization ... + try + { + edges[1].Curr = pg[1]; + RangeTest(pg[0], m_UseFullRange); + RangeTest(pg[highI], m_UseFullRange); + InitEdge(&edges[0], &edges[1], &edges[highI], pg[0]); + InitEdge(&edges[highI], &edges[0], &edges[highI-1], pg[highI]); + for (int i = highI - 1; i >= 1; --i) + { + RangeTest(pg[i], m_UseFullRange); + InitEdge(&edges[i], &edges[i+1], &edges[i-1], pg[i]); + } + } + catch(...) + { + throw; //range test fails + } + TEdge *eStart = &edges[0]; + + //2. Remove duplicate vertices, and (when closed) collinear edges ... + TEdge *E = eStart, *eLoopStop = eStart; + for (;;) + { + //nb: allows matching start and end points when not Closed ... + if (E->Curr == E->Next->Curr && (Closed || E->Next != eStart)) + { + if (E == E->Next) break; + if (E == eStart) eStart = E->Next; + E = RemoveEdge(E); + eLoopStop = E; + continue; + } + if (E->Prev == E->Next) + break; //only two vertices + else if (Closed && + SlopesEqual(E->Prev->Curr, E->Curr, E->Next->Curr, m_UseFullRange) && + (!m_PreserveCollinear || + !Pt2IsBetweenPt1AndPt3(E->Prev->Curr, E->Curr, E->Next->Curr))) + { + //Collinear edges are allowed for open paths but in closed paths + //the default is to merge adjacent collinear edges into a single edge. + //However, if the PreserveCollinear property is enabled, only overlapping + //collinear edges (ie spikes) will be removed from closed paths. + if (E == eStart) eStart = E->Next; + E = RemoveEdge(E); + E = E->Prev; + eLoopStop = E; + continue; + } + E = E->Next; + if ((E == eLoopStop) || (!Closed && E->Next == eStart)) break; + } + + if ((!Closed && (E == E->Next)) || (Closed && (E->Prev == E->Next))) + { + return false; + } + + if (!Closed) + { + m_HasOpenPaths = true; + eStart->Prev->OutIdx = Skip; + } + + //3. Do second stage of edge initialization ... + // IsFlat means all vertices have the same Y coordinate. + bool IsFlat = true; + E = eStart; + do + { + InitEdge2(*E, PolyTyp); + E = E->Next; + if (IsFlat && E->Curr.Y != eStart->Curr.Y) IsFlat = false; + } + while (E != eStart); + + //4. Finally, add edge bounds to LocalMinima list ... + + //Totally flat paths must be handled differently when adding them + //to LocalMinima list to avoid endless loops etc ... + if (IsFlat) + { + if (Closed) + { + return false; + } + E->Prev->OutIdx = Skip; + LocalMinimum locMin; + locMin.Y = E->Bot.Y; + locMin.LeftBound = 0; + locMin.RightBound = E; + locMin.RightBound->Side = esRight; + locMin.RightBound->WindDelta = 0; + for (;;) + { + if (E->Bot.X != E->Prev->Top.X) ReverseHorizontal(*E); + if (E->Next->OutIdx == Skip) break; + E->NextInLML = E->Next; + E = E->Next; + } + m_MinimaList.push_back(locMin); + return true; + } + + bool leftBoundIsForward; + TEdge* EMin = 0; + + //workaround to avoid an endless loop in the while loop below when + //open paths have matching start and end points ... + if (E->Prev->Bot == E->Prev->Top) E = E->Next; + + // Find local minima and store them into a Local Minima List. + // Multiple Local Minima could be created for a single path. + for (;;) + { + E = FindNextLocMin(E); + if (E == EMin) break; + else if (!EMin) EMin = E; + + //E and E.Prev now share a local minima (left aligned if horizontal). + //Compare their slopes to find which starts which bound ... + LocalMinimum locMin; + locMin.Y = E->Bot.Y; + if (E->Dx < E->Prev->Dx) + { + locMin.LeftBound = E->Prev; + locMin.RightBound = E; + leftBoundIsForward = false; //Q.nextInLML = Q.prev + } else + { + locMin.LeftBound = E; + locMin.RightBound = E->Prev; + leftBoundIsForward = true; //Q.nextInLML = Q.next + } + locMin.LeftBound->Side = esLeft; + locMin.RightBound->Side = esRight; + + if (!Closed) locMin.LeftBound->WindDelta = 0; + else if (locMin.LeftBound->Next == locMin.RightBound) + locMin.LeftBound->WindDelta = -1; + else locMin.LeftBound->WindDelta = 1; + locMin.RightBound->WindDelta = -locMin.LeftBound->WindDelta; + + E = ProcessBound(locMin.LeftBound, leftBoundIsForward); + if (E->OutIdx == Skip) E = ProcessBound(E, leftBoundIsForward); + + TEdge* E2 = ProcessBound(locMin.RightBound, !leftBoundIsForward); + if (E2->OutIdx == Skip) E2 = ProcessBound(E2, !leftBoundIsForward); + + if (locMin.LeftBound->OutIdx == Skip) + locMin.LeftBound = 0; + else if (locMin.RightBound->OutIdx == Skip) + locMin.RightBound = 0; + m_MinimaList.push_back(locMin); + if (!leftBoundIsForward) E = E2; + } + return true; +} +//------------------------------------------------------------------------------ + +void ClipperBase::Clear() +{ + PROFILE_FUNC(); + m_MinimaList.clear(); + m_edges.clear(); + m_UseFullRange = false; + m_HasOpenPaths = false; +} +//------------------------------------------------------------------------------ + +// Initialize the Local Minima List: +// Sort the LML entries, initialize the left / right bound edges of each Local Minima. +void ClipperBase::Reset() +{ + PROFILE_FUNC(); + if (m_MinimaList.empty()) return; //ie nothing to process + std::sort(m_MinimaList.begin(), m_MinimaList.end(), [](const LocalMinimum& lm1, const LocalMinimum& lm2){ return lm1.Y < lm2.Y; }); + + //reset all edges ... + for (LocalMinimum &lm : m_MinimaList) { + TEdge* e = lm.LeftBound; + if (e) + { + e->Curr = e->Bot; + e->Side = esLeft; + e->OutIdx = Unassigned; + } + + e = lm.RightBound; + if (e) + { + e->Curr = e->Bot; + e->Side = esRight; + e->OutIdx = Unassigned; + } + } +} +//------------------------------------------------------------------------------ + +// Get bounds of the edges referenced by the Local Minima List. +// Returns (0,0,0,0) for an empty rectangle. +IntRect ClipperBase::GetBounds() +{ + PROFILE_FUNC(); + IntRect result; + auto lm = m_MinimaList.begin(); + if (lm == m_MinimaList.end()) + { + result.left = result.top = result.right = result.bottom = 0; + return result; + } + result.left = lm->LeftBound->Bot.X; + result.top = lm->LeftBound->Bot.Y; + result.right = lm->LeftBound->Bot.X; + result.bottom = lm->LeftBound->Bot.Y; + while (lm != m_MinimaList.end()) + { + result.bottom = std::max(result.bottom, lm->LeftBound->Bot.Y); + TEdge* e = lm->LeftBound; + for (;;) { + TEdge* bottomE = e; + while (e->NextInLML) + { + if (e->Bot.X < result.left) result.left = e->Bot.X; + if (e->Bot.X > result.right) result.right = e->Bot.X; + e = e->NextInLML; + } + result.left = std::min(result.left, e->Bot.X); + result.right = std::max(result.right, e->Bot.X); + result.left = std::min(result.left, e->Top.X); + result.right = std::max(result.right, e->Top.X); + result.top = std::min(result.top, e->Top.Y); + if (bottomE == lm->LeftBound) e = lm->RightBound; + else break; + } + ++lm; + } + return result; +} + +//------------------------------------------------------------------------------ +// TClipper methods ... +//------------------------------------------------------------------------------ + +Clipper::Clipper(int initOptions) : + ClipperBase(), + m_OutPtsFree(nullptr), + m_OutPtsChunkSize(32), + m_OutPtsChunkLast(32), + m_ActiveEdges(nullptr), + m_SortedEdges(nullptr) +{ + m_ReverseOutput = ((initOptions & ioReverseSolution) != 0); + m_StrictSimple = ((initOptions & ioStrictlySimple) != 0); + m_PreserveCollinear = ((initOptions & ioPreserveCollinear) != 0); + m_HasOpenPaths = false; +#ifdef use_xyz + m_ZFill = 0; +#endif +} +//------------------------------------------------------------------------------ + +void Clipper::Reset() +{ + PROFILE_FUNC(); + ClipperBase::Reset(); + m_Scanbeam = std::priority_queue<cInt>(); + m_Maxima.clear(); + m_ActiveEdges = 0; + m_SortedEdges = 0; + for (auto lm = m_MinimaList.rbegin(); lm != m_MinimaList.rend(); ++lm) + m_Scanbeam.push(lm->Y); +} + +//------------------------------------------------------------------------------ + +bool Clipper::Execute(ClipType clipType, Paths &solution, + PolyFillType subjFillType, PolyFillType clipFillType) +{ + PROFILE_FUNC(); + if (m_HasOpenPaths) + throw clipperException("Error: PolyTree struct is needed for open path clipping."); + solution.resize(0); + m_SubjFillType = subjFillType; + m_ClipFillType = clipFillType; + m_ClipType = clipType; + m_UsingPolyTree = false; + bool succeeded = ExecuteInternal(); + if (succeeded) BuildResult(solution); + DisposeAllOutRecs(); + return succeeded; +} +//------------------------------------------------------------------------------ + +bool Clipper::Execute(ClipType clipType, PolyTree& polytree, + PolyFillType subjFillType, PolyFillType clipFillType) +{ + PROFILE_FUNC(); + m_SubjFillType = subjFillType; + m_ClipFillType = clipFillType; + m_ClipType = clipType; + m_UsingPolyTree = true; + bool succeeded = ExecuteInternal(); + if (succeeded) BuildResult2(polytree); + DisposeAllOutRecs(); + return succeeded; +} +//------------------------------------------------------------------------------ + +bool Clipper::ExecuteInternal() +{ + PROFILE_FUNC(); + bool succeeded = true; + try { + PROFILE_BLOCK(Clipper_ExecuteInternal_Process); + Reset(); + if (m_MinimaList.empty()) return true; + cInt botY = m_Scanbeam.top(); + do { m_Scanbeam.pop(); } while (! m_Scanbeam.empty() && botY == m_Scanbeam.top()); + do { + InsertLocalMinimaIntoAEL(botY); + ProcessHorizontals(); + m_GhostJoins.clear(); + if (m_Scanbeam.empty()) break; + cInt topY = m_Scanbeam.top(); + do { m_Scanbeam.pop(); } while (! m_Scanbeam.empty() && topY == m_Scanbeam.top()); + succeeded = ProcessIntersections(topY); + if (!succeeded) break; + ProcessEdgesAtTopOfScanbeam(topY); + botY = topY; + } while (!m_Scanbeam.empty() || !m_MinimaList.empty()); + } + catch(...) + { + succeeded = false; + } + + if (succeeded) + { + PROFILE_BLOCK(Clipper_ExecuteInternal_Fix); + + //fix orientations ... + //FIXME Vojtech: Does it not invalidate the loop hierarchy maintained as OutRec::FirstLeft pointers? + //FIXME Vojtech: The area is calculated with floats, it may not be numerically stable! + { + PROFILE_BLOCK(Clipper_ExecuteInternal_Fix_orientations); + for (OutRec *outRec : m_PolyOuts) + if (outRec->Pts && !outRec->IsOpen && (outRec->IsHole ^ m_ReverseOutput) == (Area(*outRec) > 0)) + ReversePolyPtLinks(outRec->Pts); + } + + JoinCommonEdges(); + + //unfortunately FixupOutPolygon() must be done after JoinCommonEdges() + { + PROFILE_BLOCK(Clipper_ExecuteInternal_Fix_fixup); + for (OutRec *outRec : m_PolyOuts) + if (outRec->Pts) { + if (outRec->IsOpen) + // Removes duplicate points. + FixupOutPolyline(*outRec); + else + // Removes duplicate points and simplifies consecutive parallel edges by removing the middle vertex. + FixupOutPolygon(*outRec); + } + } + // For each polygon, search for exactly duplicate non-successive points. + // If such a point is found, the loop is split into two pieces. + // Search for the duplicate points is O(n^2)! + // http://www.angusj.com/delphi/clipper/documentation/Docs/Units/ClipperLib/Classes/Clipper/Properties/StrictlySimple.htm + if (m_StrictSimple) DoSimplePolygons(); + } + + m_Joins.clear(); + m_GhostJoins.clear(); + return succeeded; +} +//------------------------------------------------------------------------------ + +OutPt* Clipper::AllocateOutPt() +{ + OutPt *pt; + if (m_OutPtsFree) { + // Recycle some of the already released points. + pt = m_OutPtsFree; + m_OutPtsFree = pt->Next; + } else if (m_OutPtsChunkLast < m_OutPtsChunkSize) { + // Get a point from the last chunk. + pt = m_OutPts.back() + (m_OutPtsChunkLast ++); + } else { + // The last chunk is full. Allocate a new one. + m_OutPts.push_back(new OutPt[m_OutPtsChunkSize]); + m_OutPtsChunkLast = 1; + pt = m_OutPts.back(); + } + return pt; +} + +void Clipper::DisposeAllOutRecs() +{ + for (OutPt *pts : m_OutPts) + delete[] pts; + for (OutRec *rec : m_PolyOuts) + delete rec; + m_OutPts.clear(); + m_OutPtsFree = nullptr; + m_OutPtsChunkLast = m_OutPtsChunkSize; + m_PolyOuts.clear(); +} +//------------------------------------------------------------------------------ + +void Clipper::SetWindingCount(TEdge &edge) const +{ + TEdge *e = edge.PrevInAEL; + //find the edge of the same polytype that immediately preceeds 'edge' in AEL + while (e && ((e->PolyTyp != edge.PolyTyp) || (e->WindDelta == 0))) e = e->PrevInAEL; + if (!e) + { + edge.WindCnt = (edge.WindDelta == 0 ? 1 : edge.WindDelta); + edge.WindCnt2 = 0; + e = m_ActiveEdges; //ie get ready to calc WindCnt2 + } + else if (edge.WindDelta == 0 && m_ClipType != ctUnion) + { + edge.WindCnt = 1; + edge.WindCnt2 = e->WindCnt2; + e = e->NextInAEL; //ie get ready to calc WindCnt2 + } + else if (IsEvenOddFillType(edge)) + { + //EvenOdd filling ... + if (edge.WindDelta == 0) + { + //are we inside a subj polygon ... + bool Inside = true; + TEdge *e2 = e->PrevInAEL; + while (e2) + { + if (e2->PolyTyp == e->PolyTyp && e2->WindDelta != 0) + Inside = !Inside; + e2 = e2->PrevInAEL; + } + edge.WindCnt = (Inside ? 0 : 1); + } + else + { + edge.WindCnt = edge.WindDelta; + } + edge.WindCnt2 = e->WindCnt2; + e = e->NextInAEL; //ie get ready to calc WindCnt2 + } + else + { + //nonZero, Positive or Negative filling ... + if (e->WindCnt * e->WindDelta < 0) + { + //prev edge is 'decreasing' WindCount (WC) toward zero + //so we're outside the previous polygon ... + if (std::abs(e->WindCnt) > 1) + { + //outside prev poly but still inside another. + //when reversing direction of prev poly use the same WC + if (e->WindDelta * edge.WindDelta < 0) edge.WindCnt = e->WindCnt; + //otherwise continue to 'decrease' WC ... + else edge.WindCnt = e->WindCnt + edge.WindDelta; + } + else + //now outside all polys of same polytype so set own WC ... + edge.WindCnt = (edge.WindDelta == 0 ? 1 : edge.WindDelta); + } else + { + //prev edge is 'increasing' WindCount (WC) away from zero + //so we're inside the previous polygon ... + if (edge.WindDelta == 0) + edge.WindCnt = (e->WindCnt < 0 ? e->WindCnt - 1 : e->WindCnt + 1); + //if wind direction is reversing prev then use same WC + else if (e->WindDelta * edge.WindDelta < 0) edge.WindCnt = e->WindCnt; + //otherwise add to WC ... + else edge.WindCnt = e->WindCnt + edge.WindDelta; + } + edge.WindCnt2 = e->WindCnt2; + e = e->NextInAEL; //ie get ready to calc WindCnt2 + } + + //update WindCnt2 ... + if (IsEvenOddAltFillType(edge)) + { + //EvenOdd filling ... + while (e != &edge) + { + if (e->WindDelta != 0) + edge.WindCnt2 = (edge.WindCnt2 == 0 ? 1 : 0); + e = e->NextInAEL; + } + } else + { + //nonZero, Positive or Negative filling ... + while ( e != &edge ) + { + edge.WindCnt2 += e->WindDelta; + e = e->NextInAEL; + } + } +} +//------------------------------------------------------------------------------ + +bool Clipper::IsContributing(const TEdge& edge) const +{ + PolyFillType pft, pft2; + if (edge.PolyTyp == ptSubject) + { + pft = m_SubjFillType; + pft2 = m_ClipFillType; + } else + { + pft = m_ClipFillType; + pft2 = m_SubjFillType; + } + + switch(pft) + { + case pftEvenOdd: + //return false if a subj line has been flagged as inside a subj polygon + if (edge.WindDelta == 0 && edge.WindCnt != 1) return false; + break; + case pftNonZero: + if (std::abs(edge.WindCnt) != 1) return false; + break; + case pftPositive: + if (edge.WindCnt != 1) return false; + break; + default: //pftNegative + if (edge.WindCnt != -1) return false; + } + + switch(m_ClipType) + { + case ctIntersection: + switch(pft2) + { + case pftEvenOdd: + case pftNonZero: + return (edge.WindCnt2 != 0); + case pftPositive: + return (edge.WindCnt2 > 0); + default: + return (edge.WindCnt2 < 0); + } + break; + case ctUnion: + switch(pft2) + { + case pftEvenOdd: + case pftNonZero: + return (edge.WindCnt2 == 0); + case pftPositive: + return (edge.WindCnt2 <= 0); + default: + return (edge.WindCnt2 >= 0); + } + break; + case ctDifference: + if (edge.PolyTyp == ptSubject) + switch(pft2) + { + case pftEvenOdd: + case pftNonZero: + return (edge.WindCnt2 == 0); + case pftPositive: + return (edge.WindCnt2 <= 0); + default: + return (edge.WindCnt2 >= 0); + } + else + switch(pft2) + { + case pftEvenOdd: + case pftNonZero: + return (edge.WindCnt2 != 0); + case pftPositive: + return (edge.WindCnt2 > 0); + default: + return (edge.WindCnt2 < 0); + } + break; + case ctXor: + if (edge.WindDelta == 0) //XOr always contributing unless open + switch(pft2) + { + case pftEvenOdd: + case pftNonZero: + return (edge.WindCnt2 == 0); + case pftPositive: + return (edge.WindCnt2 <= 0); + default: + return (edge.WindCnt2 >= 0); + } + else + return true; + break; + default: + return true; + } +} +//------------------------------------------------------------------------------ + +// Called from Clipper::InsertLocalMinimaIntoAEL() and Clipper::IntersectEdges(). +OutPt* Clipper::AddLocalMinPoly(TEdge *e1, TEdge *e2, const IntPoint &Pt) +{ + PROFILE_FUNC(); + OutPt* result; + TEdge *e, *prevE; + if (IsHorizontal(*e2) || ( e1->Dx > e2->Dx )) + { + result = AddOutPt(e1, Pt); + e2->OutIdx = e1->OutIdx; + e1->Side = esLeft; + e2->Side = esRight; + e = e1; + if (e->PrevInAEL == e2) + prevE = e2->PrevInAEL; + else + prevE = e->PrevInAEL; + } else + { + result = AddOutPt(e2, Pt); + e1->OutIdx = e2->OutIdx; + e1->Side = esRight; + e2->Side = esLeft; + e = e2; + if (e->PrevInAEL == e1) + prevE = e1->PrevInAEL; + else + prevE = e->PrevInAEL; + } + + if (prevE && prevE->OutIdx >= 0 && + (TopX(*prevE, Pt.Y) == TopX(*e, Pt.Y)) && + SlopesEqual(*e, *prevE, m_UseFullRange) && + (e->WindDelta != 0) && (prevE->WindDelta != 0)) + { + OutPt* outPt = AddOutPt(prevE, Pt); + m_Joins.emplace_back(Join(result, outPt, e->Top)); + } + return result; +} +//------------------------------------------------------------------------------ + +void Clipper::AddLocalMaxPoly(TEdge *e1, TEdge *e2, const IntPoint &Pt) +{ + AddOutPt( e1, Pt ); + if (e2->WindDelta == 0) AddOutPt(e2, Pt); + if( e1->OutIdx == e2->OutIdx ) + { + e1->OutIdx = Unassigned; + e2->OutIdx = Unassigned; + } + else if (e1->OutIdx < e2->OutIdx) + AppendPolygon(e1, e2); + else + AppendPolygon(e2, e1); +} +//------------------------------------------------------------------------------ + +void Clipper::AddEdgeToSEL(TEdge *edge) +{ + //SEL pointers in PEdge are reused to build a list of horizontal edges. + //However, we don't need to worry about order with horizontal edge processing. + if( !m_SortedEdges ) + { + m_SortedEdges = edge; + edge->PrevInSEL = 0; + edge->NextInSEL = 0; + } + else + { + edge->NextInSEL = m_SortedEdges; + edge->PrevInSEL = 0; + m_SortedEdges->PrevInSEL = edge; + m_SortedEdges = edge; + } +} +//------------------------------------------------------------------------------ + +void Clipper::CopyAELToSEL() +{ + TEdge* e = m_ActiveEdges; + m_SortedEdges = e; + while ( e ) + { + e->PrevInSEL = e->PrevInAEL; + e->NextInSEL = e->NextInAEL; + e = e->NextInAEL; + } +} + +//------------------------------------------------------------------------------ + +// Called from Clipper::ExecuteInternal() +void Clipper::InsertLocalMinimaIntoAEL(const cInt botY) +{ + PROFILE_FUNC(); + while (!m_MinimaList.empty() && m_MinimaList.back().Y == botY) + { + TEdge* lb = m_MinimaList.back().LeftBound; + TEdge* rb = m_MinimaList.back().RightBound; + m_MinimaList.pop_back(); + + OutPt *Op1 = 0; + if (!lb) + { + //nb: don't insert LB into either AEL or SEL + InsertEdgeIntoAEL(rb, 0); + SetWindingCount(*rb); + if (IsContributing(*rb)) + Op1 = AddOutPt(rb, rb->Bot); + } + else if (!rb) + { + InsertEdgeIntoAEL(lb, 0); + SetWindingCount(*lb); + if (IsContributing(*lb)) + Op1 = AddOutPt(lb, lb->Bot); + m_Scanbeam.push(lb->Top.Y); + } + else + { + InsertEdgeIntoAEL(lb, 0); + InsertEdgeIntoAEL(rb, lb); + SetWindingCount( *lb ); + rb->WindCnt = lb->WindCnt; + rb->WindCnt2 = lb->WindCnt2; + if (IsContributing(*lb)) + Op1 = AddLocalMinPoly(lb, rb, lb->Bot); + m_Scanbeam.push(lb->Top.Y); + } + + if (rb) + { + if(IsHorizontal(*rb)) AddEdgeToSEL(rb); + else m_Scanbeam.push(rb->Top.Y); + } + + if (!lb || !rb) continue; + + //if any output polygons share an edge, they'll need joining later ... + if (Op1 && IsHorizontal(*rb) && + m_GhostJoins.size() > 0 && (rb->WindDelta != 0)) + { + for (Join &jr : m_GhostJoins) + //if the horizontal Rb and a 'ghost' horizontal overlap, then convert + //the 'ghost' join to a real join ready for later ... + if (HorzSegmentsOverlap(jr.OutPt1->Pt.X, jr.OffPt.X, rb->Bot.X, rb->Top.X)) + m_Joins.emplace_back(Join(jr.OutPt1, Op1, jr.OffPt)); + } + + if (lb->OutIdx >= 0 && lb->PrevInAEL && + lb->PrevInAEL->Curr.X == lb->Bot.X && + lb->PrevInAEL->OutIdx >= 0 && + SlopesEqual(*lb->PrevInAEL, *lb, m_UseFullRange) && + (lb->WindDelta != 0) && (lb->PrevInAEL->WindDelta != 0)) + { + OutPt *Op2 = AddOutPt(lb->PrevInAEL, lb->Bot); + m_Joins.emplace_back(Join(Op1, Op2, lb->Top)); + } + + if(lb->NextInAEL != rb) + { + + if (rb->OutIdx >= 0 && rb->PrevInAEL->OutIdx >= 0 && + SlopesEqual(*rb->PrevInAEL, *rb, m_UseFullRange) && + (rb->WindDelta != 0) && (rb->PrevInAEL->WindDelta != 0)) + { + OutPt *Op2 = AddOutPt(rb->PrevInAEL, rb->Bot); + m_Joins.emplace_back(Join(Op1, Op2, rb->Top)); + } + + TEdge* e = lb->NextInAEL; + if (e) + { + while( e != rb ) + { + //nb: For calculating winding counts etc, IntersectEdges() assumes + //that param1 will be to the Right of param2 ABOVE the intersection ... + IntersectEdges(rb , e , lb->Curr); //order important here + e = e->NextInAEL; + } + } + } + + } +} +//------------------------------------------------------------------------------ + +void Clipper::DeleteFromAEL(TEdge *e) +{ + TEdge* AelPrev = e->PrevInAEL; + TEdge* AelNext = e->NextInAEL; + if( !AelPrev && !AelNext && (e != m_ActiveEdges) ) return; //already deleted + if( AelPrev ) AelPrev->NextInAEL = AelNext; + else m_ActiveEdges = AelNext; + if( AelNext ) AelNext->PrevInAEL = AelPrev; + e->NextInAEL = 0; + e->PrevInAEL = 0; +} +//------------------------------------------------------------------------------ + +void Clipper::DeleteFromSEL(TEdge *e) +{ + TEdge* SelPrev = e->PrevInSEL; + TEdge* SelNext = e->NextInSEL; + if( !SelPrev && !SelNext && (e != m_SortedEdges) ) return; //already deleted + if( SelPrev ) SelPrev->NextInSEL = SelNext; + else m_SortedEdges = SelNext; + if( SelNext ) SelNext->PrevInSEL = SelPrev; + e->NextInSEL = 0; + e->PrevInSEL = 0; +} +//------------------------------------------------------------------------------ + +#ifdef use_xyz +void Clipper::SetZ(IntPoint& pt, TEdge& e1, TEdge& e2) +{ + if (pt.Z != 0 || !m_ZFill) return; + else if (pt == e1.Bot) pt.Z = e1.Bot.Z; + else if (pt == e1.Top) pt.Z = e1.Top.Z; + else if (pt == e2.Bot) pt.Z = e2.Bot.Z; + else if (pt == e2.Top) pt.Z = e2.Top.Z; + else (*m_ZFill)(e1.Bot, e1.Top, e2.Bot, e2.Top, pt); +} +//------------------------------------------------------------------------------ +#endif + +void Clipper::IntersectEdges(TEdge *e1, TEdge *e2, IntPoint &Pt) +{ + bool e1Contributing = ( e1->OutIdx >= 0 ); + bool e2Contributing = ( e2->OutIdx >= 0 ); + +#ifdef use_xyz + SetZ(Pt, *e1, *e2); +#endif + +#ifdef use_lines + //if either edge is on an OPEN path ... + if (e1->WindDelta == 0 || e2->WindDelta == 0) + { + //ignore subject-subject open path intersections UNLESS they + //are both open paths, AND they are both 'contributing maximas' ... + if (e1->WindDelta == 0 && e2->WindDelta == 0) return; + + //if intersecting a subj line with a subj poly ... + else if (e1->PolyTyp == e2->PolyTyp && + e1->WindDelta != e2->WindDelta && m_ClipType == ctUnion) + { + if (e1->WindDelta == 0) + { + if (e2Contributing) + { + AddOutPt(e1, Pt); + if (e1Contributing) e1->OutIdx = Unassigned; + } + } + else + { + if (e1Contributing) + { + AddOutPt(e2, Pt); + if (e2Contributing) e2->OutIdx = Unassigned; + } + } + } + else if (e1->PolyTyp != e2->PolyTyp) + { + //toggle subj open path OutIdx on/off when Abs(clip.WndCnt) == 1 ... + if ((e1->WindDelta == 0) && std::abs(e2->WindCnt) == 1 && + (m_ClipType != ctUnion || e2->WindCnt2 == 0)) + { + AddOutPt(e1, Pt); + if (e1Contributing) e1->OutIdx = Unassigned; + } + else if ((e2->WindDelta == 0) && (std::abs(e1->WindCnt) == 1) && + (m_ClipType != ctUnion || e1->WindCnt2 == 0)) + { + AddOutPt(e2, Pt); + if (e2Contributing) e2->OutIdx = Unassigned; + } + } + return; + } +#endif + + //update winding counts... + //assumes that e1 will be to the Right of e2 ABOVE the intersection + if ( e1->PolyTyp == e2->PolyTyp ) + { + if ( IsEvenOddFillType( *e1) ) + { + int oldE1WindCnt = e1->WindCnt; + e1->WindCnt = e2->WindCnt; + e2->WindCnt = oldE1WindCnt; + } else + { + if (e1->WindCnt + e2->WindDelta == 0 ) e1->WindCnt = -e1->WindCnt; + else e1->WindCnt += e2->WindDelta; + if ( e2->WindCnt - e1->WindDelta == 0 ) e2->WindCnt = -e2->WindCnt; + else e2->WindCnt -= e1->WindDelta; + } + } else + { + if (!IsEvenOddFillType(*e2)) e1->WindCnt2 += e2->WindDelta; + else e1->WindCnt2 = ( e1->WindCnt2 == 0 ) ? 1 : 0; + if (!IsEvenOddFillType(*e1)) e2->WindCnt2 -= e1->WindDelta; + else e2->WindCnt2 = ( e2->WindCnt2 == 0 ) ? 1 : 0; + } + + PolyFillType e1FillType, e2FillType, e1FillType2, e2FillType2; + if (e1->PolyTyp == ptSubject) + { + e1FillType = m_SubjFillType; + e1FillType2 = m_ClipFillType; + } else + { + e1FillType = m_ClipFillType; + e1FillType2 = m_SubjFillType; + } + if (e2->PolyTyp == ptSubject) + { + e2FillType = m_SubjFillType; + e2FillType2 = m_ClipFillType; + } else + { + e2FillType = m_ClipFillType; + e2FillType2 = m_SubjFillType; + } + + cInt e1Wc, e2Wc; + switch (e1FillType) + { + case pftPositive: e1Wc = e1->WindCnt; break; + case pftNegative: e1Wc = -e1->WindCnt; break; + default: e1Wc = std::abs(e1->WindCnt); + } + switch(e2FillType) + { + case pftPositive: e2Wc = e2->WindCnt; break; + case pftNegative: e2Wc = -e2->WindCnt; break; + default: e2Wc = std::abs(e2->WindCnt); + } + + if ( e1Contributing && e2Contributing ) + { + if ((e1Wc != 0 && e1Wc != 1) || (e2Wc != 0 && e2Wc != 1) || + (e1->PolyTyp != e2->PolyTyp && m_ClipType != ctXor) ) + { + AddLocalMaxPoly(e1, e2, Pt); + } + else + { + AddOutPt(e1, Pt); + AddOutPt(e2, Pt); + std::swap(e1->Side, e2->Side); + std::swap(e1->OutIdx, e2->OutIdx); + } + } + else if ( e1Contributing ) + { + if (e2Wc == 0 || e2Wc == 1) + { + AddOutPt(e1, Pt); + std::swap(e1->Side, e2->Side); + std::swap(e1->OutIdx, e2->OutIdx); + } + } + else if ( e2Contributing ) + { + if (e1Wc == 0 || e1Wc == 1) + { + AddOutPt(e2, Pt); + std::swap(e1->Side, e2->Side); + std::swap(e1->OutIdx, e2->OutIdx); + } + } + else if ( (e1Wc == 0 || e1Wc == 1) && (e2Wc == 0 || e2Wc == 1)) + { + //neither edge is currently contributing ... + + cInt e1Wc2, e2Wc2; + switch (e1FillType2) + { + case pftPositive: e1Wc2 = e1->WindCnt2; break; + case pftNegative : e1Wc2 = -e1->WindCnt2; break; + default: e1Wc2 = std::abs(e1->WindCnt2); + } + switch (e2FillType2) + { + case pftPositive: e2Wc2 = e2->WindCnt2; break; + case pftNegative: e2Wc2 = -e2->WindCnt2; break; + default: e2Wc2 = std::abs(e2->WindCnt2); + } + + if (e1->PolyTyp != e2->PolyTyp) + { + AddLocalMinPoly(e1, e2, Pt); + } + else if (e1Wc == 1 && e2Wc == 1) + switch( m_ClipType ) { + case ctIntersection: + if (e1Wc2 > 0 && e2Wc2 > 0) + AddLocalMinPoly(e1, e2, Pt); + break; + case ctUnion: + if ( e1Wc2 <= 0 && e2Wc2 <= 0 ) + AddLocalMinPoly(e1, e2, Pt); + break; + case ctDifference: + if (((e1->PolyTyp == ptClip) && (e1Wc2 > 0) && (e2Wc2 > 0)) || + ((e1->PolyTyp == ptSubject) && (e1Wc2 <= 0) && (e2Wc2 <= 0))) + AddLocalMinPoly(e1, e2, Pt); + break; + case ctXor: + AddLocalMinPoly(e1, e2, Pt); + } + else + std::swap(e1->Side, e2->Side); + } +} +//------------------------------------------------------------------------------ + +void Clipper::SetHoleState(TEdge *e, OutRec *outrec) const +{ + bool IsHole = false; + TEdge *e2 = e->PrevInAEL; + while (e2) + { + if (e2->OutIdx >= 0 && e2->WindDelta != 0) + { + IsHole = !IsHole; + if (! outrec->FirstLeft) + outrec->FirstLeft = m_PolyOuts[e2->OutIdx]; + } + e2 = e2->PrevInAEL; + } + if (IsHole) outrec->IsHole = true; +} +//------------------------------------------------------------------------------ + +OutRec* GetLowermostRec(OutRec *outRec1, OutRec *outRec2) +{ + //work out which polygon fragment has the correct hole state ... + if (!outRec1->BottomPt) + outRec1->BottomPt = GetBottomPt(outRec1->Pts); + if (!outRec2->BottomPt) + outRec2->BottomPt = GetBottomPt(outRec2->Pts); + OutPt *OutPt1 = outRec1->BottomPt; + OutPt *OutPt2 = outRec2->BottomPt; + if (OutPt1->Pt.Y > OutPt2->Pt.Y) return outRec1; + else if (OutPt1->Pt.Y < OutPt2->Pt.Y) return outRec2; + else if (OutPt1->Pt.X < OutPt2->Pt.X) return outRec1; + else if (OutPt1->Pt.X > OutPt2->Pt.X) return outRec2; + else if (OutPt1->Next == OutPt1) return outRec2; + else if (OutPt2->Next == OutPt2) return outRec1; + else if (FirstIsBottomPt(OutPt1, OutPt2)) return outRec1; + else return outRec2; +} +//------------------------------------------------------------------------------ + +bool Param1RightOfParam2(OutRec* outRec1, OutRec* outRec2) +{ + do + { + outRec1 = outRec1->FirstLeft; + if (outRec1 == outRec2) return true; + } while (outRec1); + return false; +} +//------------------------------------------------------------------------------ + +OutRec* Clipper::GetOutRec(int Idx) +{ + OutRec* outrec = m_PolyOuts[Idx]; + while (outrec != m_PolyOuts[outrec->Idx]) + outrec = m_PolyOuts[outrec->Idx]; + return outrec; +} +//------------------------------------------------------------------------------ + +void Clipper::AppendPolygon(TEdge *e1, TEdge *e2) const +{ + //get the start and ends of both output polygons ... + OutRec *outRec1 = m_PolyOuts[e1->OutIdx]; + OutRec *outRec2 = m_PolyOuts[e2->OutIdx]; + + OutRec *holeStateRec; + if (Param1RightOfParam2(outRec1, outRec2)) + holeStateRec = outRec2; + else if (Param1RightOfParam2(outRec2, outRec1)) + holeStateRec = outRec1; + else + holeStateRec = GetLowermostRec(outRec1, outRec2); + + //get the start and ends of both output polygons and + //join e2 poly onto e1 poly and delete pointers to e2 ... + + OutPt* p1_lft = outRec1->Pts; + OutPt* p1_rt = p1_lft->Prev; + OutPt* p2_lft = outRec2->Pts; + OutPt* p2_rt = p2_lft->Prev; + + EdgeSide Side; + //join e2 poly onto e1 poly and delete pointers to e2 ... + if( e1->Side == esLeft ) + { + if( e2->Side == esLeft ) + { + //z y x a b c + ReversePolyPtLinks(p2_lft); + p2_lft->Next = p1_lft; + p1_lft->Prev = p2_lft; + p1_rt->Next = p2_rt; + p2_rt->Prev = p1_rt; + outRec1->Pts = p2_rt; + } else + { + //x y z a b c + p2_rt->Next = p1_lft; + p1_lft->Prev = p2_rt; + p2_lft->Prev = p1_rt; + p1_rt->Next = p2_lft; + outRec1->Pts = p2_lft; + } + Side = esLeft; + } else + { + if( e2->Side == esRight ) + { + //a b c z y x + ReversePolyPtLinks(p2_lft); + p1_rt->Next = p2_rt; + p2_rt->Prev = p1_rt; + p2_lft->Next = p1_lft; + p1_lft->Prev = p2_lft; + } else + { + //a b c x y z + p1_rt->Next = p2_lft; + p2_lft->Prev = p1_rt; + p1_lft->Prev = p2_rt; + p2_rt->Next = p1_lft; + } + Side = esRight; + } + + outRec1->BottomPt = 0; + if (holeStateRec == outRec2) + { + if (outRec2->FirstLeft != outRec1) + outRec1->FirstLeft = outRec2->FirstLeft; + outRec1->IsHole = outRec2->IsHole; + } + outRec2->Pts = 0; + outRec2->BottomPt = 0; + outRec2->FirstLeft = outRec1; + + int OKIdx = e1->OutIdx; + int ObsoleteIdx = e2->OutIdx; + + e1->OutIdx = Unassigned; //nb: safe because we only get here via AddLocalMaxPoly + e2->OutIdx = Unassigned; + + TEdge* e = m_ActiveEdges; + while( e ) + { + if( e->OutIdx == ObsoleteIdx ) + { + e->OutIdx = OKIdx; + e->Side = Side; + break; + } + e = e->NextInAEL; + } + + outRec2->Idx = outRec1->Idx; +} +//------------------------------------------------------------------------------ + +OutRec* Clipper::CreateOutRec() +{ + OutRec* result = new OutRec; + result->IsHole = false; + result->IsOpen = false; + result->FirstLeft = 0; + result->Pts = 0; + result->BottomPt = 0; + result->PolyNd = 0; + m_PolyOuts.push_back(result); + result->Idx = (int)m_PolyOuts.size()-1; + return result; +} +//------------------------------------------------------------------------------ + +OutPt* Clipper::AddOutPt(TEdge *e, const IntPoint &pt) +{ + if( e->OutIdx < 0 ) + { + OutRec *outRec = CreateOutRec(); + outRec->IsOpen = (e->WindDelta == 0); + OutPt* newOp = this->AllocateOutPt(); + outRec->Pts = newOp; + newOp->Idx = outRec->Idx; + newOp->Pt = pt; + newOp->Next = newOp; + newOp->Prev = newOp; + if (!outRec->IsOpen) + SetHoleState(e, outRec); + e->OutIdx = outRec->Idx; + return newOp; + } else + { + OutRec *outRec = m_PolyOuts[e->OutIdx]; + //OutRec.Pts is the 'Left-most' point & OutRec.Pts.Prev is the 'Right-most' + OutPt* op = outRec->Pts; + + bool ToFront = (e->Side == esLeft); + if (ToFront && (pt == op->Pt)) return op; + else if (!ToFront && (pt == op->Prev->Pt)) return op->Prev; + + OutPt* newOp = this->AllocateOutPt(); + newOp->Idx = outRec->Idx; + newOp->Pt = pt; + newOp->Next = op; + newOp->Prev = op->Prev; + newOp->Prev->Next = newOp; + op->Prev = newOp; + if (ToFront) outRec->Pts = newOp; + return newOp; + } +} +//------------------------------------------------------------------------------ + +OutPt* Clipper::GetLastOutPt(TEdge *e) +{ + OutRec *outRec = m_PolyOuts[e->OutIdx]; + if (e->Side == esLeft) + return outRec->Pts; + else + return outRec->Pts->Prev; +} +//------------------------------------------------------------------------------ + +void Clipper::ProcessHorizontals() +{ + PROFILE_FUNC(); + TEdge* horzEdge = m_SortedEdges; + while(horzEdge) + { + DeleteFromSEL(horzEdge); + ProcessHorizontal(horzEdge); + horzEdge = m_SortedEdges; + } +} +//------------------------------------------------------------------------------ + +inline bool IsMaxima(TEdge *e, const cInt Y) +{ + return e && e->Top.Y == Y && !e->NextInLML; +} +//------------------------------------------------------------------------------ + +inline bool IsIntermediate(TEdge *e, const cInt Y) +{ + return e->Top.Y == Y && e->NextInLML; +} +//------------------------------------------------------------------------------ + +inline TEdge *GetMaximaPair(TEdge *e) +{ + TEdge* result = 0; + if ((e->Next->Top == e->Top) && !e->Next->NextInLML) + result = e->Next; + else if ((e->Prev->Top == e->Top) && !e->Prev->NextInLML) + result = e->Prev; + + if (result && (result->OutIdx == Skip || + //result is false if both NextInAEL & PrevInAEL are nil & not horizontal ... + (result->NextInAEL == result->PrevInAEL && !IsHorizontal(*result)))) + return 0; + return result; +} +//------------------------------------------------------------------------------ + +void Clipper::SwapPositionsInAEL(TEdge *Edge1, TEdge *Edge2) +{ + //check that one or other edge hasn't already been removed from AEL ... + if (Edge1->NextInAEL == Edge1->PrevInAEL || + Edge2->NextInAEL == Edge2->PrevInAEL) return; + + if( Edge1->NextInAEL == Edge2 ) + { + TEdge* Next = Edge2->NextInAEL; + if( Next ) Next->PrevInAEL = Edge1; + TEdge* Prev = Edge1->PrevInAEL; + if( Prev ) Prev->NextInAEL = Edge2; + Edge2->PrevInAEL = Prev; + Edge2->NextInAEL = Edge1; + Edge1->PrevInAEL = Edge2; + Edge1->NextInAEL = Next; + } + else if( Edge2->NextInAEL == Edge1 ) + { + TEdge* Next = Edge1->NextInAEL; + if( Next ) Next->PrevInAEL = Edge2; + TEdge* Prev = Edge2->PrevInAEL; + if( Prev ) Prev->NextInAEL = Edge1; + Edge1->PrevInAEL = Prev; + Edge1->NextInAEL = Edge2; + Edge2->PrevInAEL = Edge1; + Edge2->NextInAEL = Next; + } + else + { + TEdge* Next = Edge1->NextInAEL; + TEdge* Prev = Edge1->PrevInAEL; + Edge1->NextInAEL = Edge2->NextInAEL; + if( Edge1->NextInAEL ) Edge1->NextInAEL->PrevInAEL = Edge1; + Edge1->PrevInAEL = Edge2->PrevInAEL; + if( Edge1->PrevInAEL ) Edge1->PrevInAEL->NextInAEL = Edge1; + Edge2->NextInAEL = Next; + if( Edge2->NextInAEL ) Edge2->NextInAEL->PrevInAEL = Edge2; + Edge2->PrevInAEL = Prev; + if( Edge2->PrevInAEL ) Edge2->PrevInAEL->NextInAEL = Edge2; + } + + if( !Edge1->PrevInAEL ) m_ActiveEdges = Edge1; + else if( !Edge2->PrevInAEL ) m_ActiveEdges = Edge2; +} +//------------------------------------------------------------------------------ + +void Clipper::SwapPositionsInSEL(TEdge *Edge1, TEdge *Edge2) +{ + if( !( Edge1->NextInSEL ) && !( Edge1->PrevInSEL ) ) return; + if( !( Edge2->NextInSEL ) && !( Edge2->PrevInSEL ) ) return; + + if( Edge1->NextInSEL == Edge2 ) + { + TEdge* Next = Edge2->NextInSEL; + if( Next ) Next->PrevInSEL = Edge1; + TEdge* Prev = Edge1->PrevInSEL; + if( Prev ) Prev->NextInSEL = Edge2; + Edge2->PrevInSEL = Prev; + Edge2->NextInSEL = Edge1; + Edge1->PrevInSEL = Edge2; + Edge1->NextInSEL = Next; + } + else if( Edge2->NextInSEL == Edge1 ) + { + TEdge* Next = Edge1->NextInSEL; + if( Next ) Next->PrevInSEL = Edge2; + TEdge* Prev = Edge2->PrevInSEL; + if( Prev ) Prev->NextInSEL = Edge1; + Edge1->PrevInSEL = Prev; + Edge1->NextInSEL = Edge2; + Edge2->PrevInSEL = Edge1; + Edge2->NextInSEL = Next; + } + else + { + TEdge* Next = Edge1->NextInSEL; + TEdge* Prev = Edge1->PrevInSEL; + Edge1->NextInSEL = Edge2->NextInSEL; + if( Edge1->NextInSEL ) Edge1->NextInSEL->PrevInSEL = Edge1; + Edge1->PrevInSEL = Edge2->PrevInSEL; + if( Edge1->PrevInSEL ) Edge1->PrevInSEL->NextInSEL = Edge1; + Edge2->NextInSEL = Next; + if( Edge2->NextInSEL ) Edge2->NextInSEL->PrevInSEL = Edge2; + Edge2->PrevInSEL = Prev; + if( Edge2->PrevInSEL ) Edge2->PrevInSEL->NextInSEL = Edge2; + } + + if( !Edge1->PrevInSEL ) m_SortedEdges = Edge1; + else if( !Edge2->PrevInSEL ) m_SortedEdges = Edge2; +} +//------------------------------------------------------------------------------ + +inline void GetHorzDirection(TEdge& HorzEdge, Direction& Dir, cInt& Left, cInt& Right) +{ + if (HorzEdge.Bot.X < HorzEdge.Top.X) + { + Left = HorzEdge.Bot.X; + Right = HorzEdge.Top.X; + Dir = dLeftToRight; + } else + { + Left = HorzEdge.Top.X; + Right = HorzEdge.Bot.X; + Dir = dRightToLeft; + } +} +//------------------------------------------------------------------------ + +/******************************************************************************* +* Notes: Horizontal edges (HEs) at scanline intersections (ie at the Top or * +* Bottom of a scanbeam) are processed as if layered. The order in which HEs * +* are processed doesn't matter. HEs intersect with other HE Bot.Xs only [#] * +* (or they could intersect with Top.Xs only, ie EITHER Bot.Xs OR Top.Xs), * +* and with other non-horizontal edges [*]. Once these intersections are * +* processed, intermediate HEs then 'promote' the Edge above (NextInLML) into * +* the AEL. These 'promoted' edges may in turn intersect [%] with other HEs. * +*******************************************************************************/ + +void Clipper::ProcessHorizontal(TEdge *horzEdge) +{ + Direction dir; + cInt horzLeft, horzRight; + bool IsOpen = (horzEdge->OutIdx >= 0 && m_PolyOuts[horzEdge->OutIdx]->IsOpen); + + GetHorzDirection(*horzEdge, dir, horzLeft, horzRight); + + TEdge* eLastHorz = horzEdge, *eMaxPair = 0; + while (eLastHorz->NextInLML && IsHorizontal(*eLastHorz->NextInLML)) + eLastHorz = eLastHorz->NextInLML; + if (!eLastHorz->NextInLML) + eMaxPair = GetMaximaPair(eLastHorz); + + std::vector<cInt>::const_iterator maxIt; + std::vector<cInt>::const_reverse_iterator maxRit; + if (!m_Maxima.empty()) + { + //get the first maxima in range (X) ... + if (dir == dLeftToRight) + { + maxIt = m_Maxima.begin(); + while (maxIt != m_Maxima.end() && *maxIt <= horzEdge->Bot.X) ++maxIt; + if (maxIt != m_Maxima.end() && *maxIt >= eLastHorz->Top.X) + maxIt = m_Maxima.end(); + } + else + { + maxRit = m_Maxima.rbegin(); + while (maxRit != m_Maxima.rend() && *maxRit > horzEdge->Bot.X) ++maxRit; + if (maxRit != m_Maxima.rend() && *maxRit <= eLastHorz->Top.X) + maxRit = m_Maxima.rend(); + } + } + + OutPt* op1 = 0; + + for (;;) //loop through consec. horizontal edges + { + + bool IsLastHorz = (horzEdge == eLastHorz); + TEdge* e = (dir == dLeftToRight) ? horzEdge->NextInAEL : horzEdge->PrevInAEL; + while(e) + { + + //this code block inserts extra coords into horizontal edges (in output + //polygons) whereever maxima touch these horizontal edges. This helps + //'simplifying' polygons (ie if the Simplify property is set). + if (!m_Maxima.empty()) + { + if (dir == dLeftToRight) + { + while (maxIt != m_Maxima.end() && *maxIt < e->Curr.X) + { + if (horzEdge->OutIdx >= 0 && !IsOpen) + AddOutPt(horzEdge, IntPoint(*maxIt, horzEdge->Bot.Y)); + ++maxIt; + } + } + else + { + while (maxRit != m_Maxima.rend() && *maxRit > e->Curr.X) + { + if (horzEdge->OutIdx >= 0 && !IsOpen) + AddOutPt(horzEdge, IntPoint(*maxRit, horzEdge->Bot.Y)); + ++maxRit; + } + } + }; + + if ((dir == dLeftToRight && e->Curr.X > horzRight) || + (dir == dRightToLeft && e->Curr.X < horzLeft)) break; + + //Also break if we've got to the end of an intermediate horizontal edge ... + //nb: Smaller Dx's are to the right of larger Dx's ABOVE the horizontal. + if (e->Curr.X == horzEdge->Top.X && horzEdge->NextInLML && + e->Dx < horzEdge->NextInLML->Dx) break; + + if (horzEdge->OutIdx >= 0 && !IsOpen) //note: may be done multiple times + { + op1 = AddOutPt(horzEdge, e->Curr); + TEdge* eNextHorz = m_SortedEdges; + while (eNextHorz) + { + if (eNextHorz->OutIdx >= 0 && + HorzSegmentsOverlap(horzEdge->Bot.X, + horzEdge->Top.X, eNextHorz->Bot.X, eNextHorz->Top.X)) + { + OutPt* op2 = GetLastOutPt(eNextHorz); + m_Joins.emplace_back(Join(op2, op1, eNextHorz->Top)); + } + eNextHorz = eNextHorz->NextInSEL; + } + m_GhostJoins.emplace_back(Join(op1, 0, horzEdge->Bot)); + } + + //OK, so far we're still in range of the horizontal Edge but make sure + //we're at the last of consec. horizontals when matching with eMaxPair + if(e == eMaxPair && IsLastHorz) + { + if (horzEdge->OutIdx >= 0) + AddLocalMaxPoly(horzEdge, eMaxPair, horzEdge->Top); + DeleteFromAEL(horzEdge); + DeleteFromAEL(eMaxPair); + return; + } + + if(dir == dLeftToRight) + { + IntPoint Pt = IntPoint(e->Curr.X, horzEdge->Curr.Y); + IntersectEdges(horzEdge, e, Pt); + } + else + { + IntPoint Pt = IntPoint(e->Curr.X, horzEdge->Curr.Y); + IntersectEdges( e, horzEdge, Pt); + } + TEdge* eNext = (dir == dLeftToRight) ? e->NextInAEL : e->PrevInAEL; + SwapPositionsInAEL( horzEdge, e ); + e = eNext; + } //end while(e) + + //Break out of loop if HorzEdge.NextInLML is not also horizontal ... + if (!horzEdge->NextInLML || !IsHorizontal(*horzEdge->NextInLML)) break; + + UpdateEdgeIntoAEL(horzEdge); + if (horzEdge->OutIdx >= 0) AddOutPt(horzEdge, horzEdge->Bot); + GetHorzDirection(*horzEdge, dir, horzLeft, horzRight); + + } //end for (;;) + + if (horzEdge->OutIdx >= 0 && !op1) + { + op1 = GetLastOutPt(horzEdge); + TEdge* eNextHorz = m_SortedEdges; + while (eNextHorz) + { + if (eNextHorz->OutIdx >= 0 && + HorzSegmentsOverlap(horzEdge->Bot.X, + horzEdge->Top.X, eNextHorz->Bot.X, eNextHorz->Top.X)) + { + OutPt* op2 = GetLastOutPt(eNextHorz); + m_Joins.emplace_back(Join(op2, op1, eNextHorz->Top)); + } + eNextHorz = eNextHorz->NextInSEL; + } + m_GhostJoins.emplace_back(Join(op1, 0, horzEdge->Top)); + } + + if (horzEdge->NextInLML) + { + if(horzEdge->OutIdx >= 0) + { + op1 = AddOutPt( horzEdge, horzEdge->Top); + UpdateEdgeIntoAEL(horzEdge); + if (horzEdge->WindDelta == 0) return; + //nb: HorzEdge is no longer horizontal here + TEdge* ePrev = horzEdge->PrevInAEL; + TEdge* eNext = horzEdge->NextInAEL; + if (ePrev && ePrev->Curr.X == horzEdge->Bot.X && + ePrev->Curr.Y == horzEdge->Bot.Y && ePrev->WindDelta != 0 && + (ePrev->OutIdx >= 0 && ePrev->Curr.Y > ePrev->Top.Y && + SlopesEqual(*horzEdge, *ePrev, m_UseFullRange))) + { + OutPt* op2 = AddOutPt(ePrev, horzEdge->Bot); + m_Joins.emplace_back(Join(op1, op2, horzEdge->Top)); + } + else if (eNext && eNext->Curr.X == horzEdge->Bot.X && + eNext->Curr.Y == horzEdge->Bot.Y && eNext->WindDelta != 0 && + eNext->OutIdx >= 0 && eNext->Curr.Y > eNext->Top.Y && + SlopesEqual(*horzEdge, *eNext, m_UseFullRange)) + { + OutPt* op2 = AddOutPt(eNext, horzEdge->Bot); + m_Joins.emplace_back(Join(op1, op2, horzEdge->Top)); + } + } + else + UpdateEdgeIntoAEL(horzEdge); + } + else + { + if (horzEdge->OutIdx >= 0) AddOutPt(horzEdge, horzEdge->Top); + DeleteFromAEL(horzEdge); + } +} +//------------------------------------------------------------------------------ + +void Clipper::UpdateEdgeIntoAEL(TEdge *&e) +{ + if( !e->NextInLML ) + throw clipperException("UpdateEdgeIntoAEL: invalid call"); + + e->NextInLML->OutIdx = e->OutIdx; + TEdge* AelPrev = e->PrevInAEL; + TEdge* AelNext = e->NextInAEL; + if (AelPrev) AelPrev->NextInAEL = e->NextInLML; + else m_ActiveEdges = e->NextInLML; + if (AelNext) AelNext->PrevInAEL = e->NextInLML; + e->NextInLML->Side = e->Side; + e->NextInLML->WindDelta = e->WindDelta; + e->NextInLML->WindCnt = e->WindCnt; + e->NextInLML->WindCnt2 = e->WindCnt2; + e = e->NextInLML; + e->Curr = e->Bot; + e->PrevInAEL = AelPrev; + e->NextInAEL = AelNext; + if (!IsHorizontal(*e)) + m_Scanbeam.push(e->Top.Y); +} +//------------------------------------------------------------------------------ + +bool Clipper::ProcessIntersections(const cInt topY) +{ + PROFILE_FUNC(); + if( !m_ActiveEdges ) return true; + try { + BuildIntersectList(topY); + size_t IlSize = m_IntersectList.size(); + if (IlSize == 0) return true; + if (IlSize == 1 || FixupIntersectionOrder()) { + for (IntersectNode &iNode : m_IntersectList) { + IntersectEdges( iNode.Edge1, iNode.Edge2, iNode.Pt); + SwapPositionsInAEL( iNode.Edge1 , iNode.Edge2 ); + } + m_IntersectList.clear(); + } + else return false; + } + catch(...) + { + m_SortedEdges = 0; + m_IntersectList.clear(); + throw clipperException("ProcessIntersections error"); + } + m_SortedEdges = 0; + return true; +} +//------------------------------------------------------------------------------ + +void Clipper::BuildIntersectList(const cInt topY) +{ + if ( !m_ActiveEdges ) return; + + //prepare for sorting ... + TEdge* e = m_ActiveEdges; + m_SortedEdges = e; + while( e ) + { + e->PrevInSEL = e->PrevInAEL; + e->NextInSEL = e->NextInAEL; + e->Curr.X = TopX( *e, topY ); + e = e->NextInAEL; + } + + //bubblesort ... + bool isModified; + do + { + isModified = false; + e = m_SortedEdges; + while( e->NextInSEL ) + { + TEdge *eNext = e->NextInSEL; + IntPoint Pt; + if(e->Curr.X > eNext->Curr.X) + { + IntersectPoint(*e, *eNext, Pt); + m_IntersectList.emplace_back(IntersectNode(e, eNext, Pt)); + SwapPositionsInSEL(e, eNext); + isModified = true; + } + else + e = eNext; + } + if( e->PrevInSEL ) e->PrevInSEL->NextInSEL = 0; + else break; + } + while ( isModified ); + m_SortedEdges = 0; //important +} +//------------------------------------------------------------------------------ + + +inline bool EdgesAdjacent(const IntersectNode &inode) +{ + return (inode.Edge1->NextInSEL == inode.Edge2) || + (inode.Edge1->PrevInSEL == inode.Edge2); +} +//------------------------------------------------------------------------------ + +bool Clipper::FixupIntersectionOrder() +{ + //pre-condition: intersections are sorted Bottom-most first. + //Now it's crucial that intersections are made only between adjacent edges, + //so to ensure this the order of intersections may need adjusting ... + CopyAELToSEL(); + std::sort(m_IntersectList.begin(), m_IntersectList.end(), [](const IntersectNode &node1, const IntersectNode &node2) { return node2.Pt.Y < node1.Pt.Y; }); + + size_t cnt = m_IntersectList.size(); + for (size_t i = 0; i < cnt; ++i) + { + if (!EdgesAdjacent(m_IntersectList[i])) + { + size_t j = i + 1; + while (j < cnt && !EdgesAdjacent(m_IntersectList[j])) j++; + if (j == cnt) return false; + std::swap(m_IntersectList[i], m_IntersectList[j]); + } + SwapPositionsInSEL(m_IntersectList[i].Edge1, m_IntersectList[i].Edge2); + } + return true; +} +//------------------------------------------------------------------------------ + +void Clipper::DoMaxima(TEdge *e) +{ + TEdge* eMaxPair = GetMaximaPair(e); + if (!eMaxPair) + { + if (e->OutIdx >= 0) + AddOutPt(e, e->Top); + DeleteFromAEL(e); + return; + } + + TEdge* eNext = e->NextInAEL; + while(eNext && eNext != eMaxPair) + { + IntersectEdges(e, eNext, e->Top); + SwapPositionsInAEL(e, eNext); + eNext = e->NextInAEL; + } + + if(e->OutIdx == Unassigned && eMaxPair->OutIdx == Unassigned) + { + DeleteFromAEL(e); + DeleteFromAEL(eMaxPair); + } + else if( e->OutIdx >= 0 && eMaxPair->OutIdx >= 0 ) + { + if (e->OutIdx >= 0) AddLocalMaxPoly(e, eMaxPair, e->Top); + DeleteFromAEL(e); + DeleteFromAEL(eMaxPair); + } +#ifdef use_lines + else if (e->WindDelta == 0) + { + if (e->OutIdx >= 0) + { + AddOutPt(e, e->Top); + e->OutIdx = Unassigned; + } + DeleteFromAEL(e); + + if (eMaxPair->OutIdx >= 0) + { + AddOutPt(eMaxPair, e->Top); + eMaxPair->OutIdx = Unassigned; + } + DeleteFromAEL(eMaxPair); + } +#endif + else throw clipperException("DoMaxima error"); +} +//------------------------------------------------------------------------------ + +void Clipper::ProcessEdgesAtTopOfScanbeam(const cInt topY) +{ + PROFILE_FUNC(); + TEdge* e = m_ActiveEdges; + while( e ) + { + //1. process maxima, treating them as if they're 'bent' horizontal edges, + // but exclude maxima with horizontal edges. nb: e can't be a horizontal. + bool IsMaximaEdge = IsMaxima(e, topY); + + if(IsMaximaEdge) + { + TEdge* eMaxPair = GetMaximaPair(e); + IsMaximaEdge = (!eMaxPair || !IsHorizontal(*eMaxPair)); + } + + if(IsMaximaEdge) + { + if (m_StrictSimple) m_Maxima.push_back(e->Top.X); + TEdge* ePrev = e->PrevInAEL; + DoMaxima(e); + if( !ePrev ) e = m_ActiveEdges; + else e = ePrev->NextInAEL; + } + else + { + //2. promote horizontal edges, otherwise update Curr.X and Curr.Y ... + if (IsIntermediate(e, topY) && IsHorizontal(*e->NextInLML)) + { + UpdateEdgeIntoAEL(e); + if (e->OutIdx >= 0) + AddOutPt(e, e->Bot); + AddEdgeToSEL(e); + } + else + { + e->Curr.X = TopX( *e, topY ); + e->Curr.Y = topY; + } + + //When StrictlySimple and 'e' is being touched by another edge, then + //make sure both edges have a vertex here ... + if (m_StrictSimple) + { + TEdge* ePrev = e->PrevInAEL; + if ((e->OutIdx >= 0) && (e->WindDelta != 0) && ePrev && (ePrev->OutIdx >= 0) && + (ePrev->Curr.X == e->Curr.X) && (ePrev->WindDelta != 0)) + { + IntPoint pt = e->Curr; +#ifdef use_xyz + SetZ(pt, *ePrev, *e); +#endif + OutPt* op = AddOutPt(ePrev, pt); + OutPt* op2 = AddOutPt(e, pt); + m_Joins.emplace_back(Join(op, op2, pt)); //StrictlySimple (type-3) join + } + } + + e = e->NextInAEL; + } + } + + //3. Process horizontals at the Top of the scanbeam ... + std::sort(m_Maxima.begin(), m_Maxima.end()); + ProcessHorizontals(); + m_Maxima.clear(); + + //4. Promote intermediate vertices ... + e = m_ActiveEdges; + while(e) + { + if(IsIntermediate(e, topY)) + { + OutPt* op = 0; + if( e->OutIdx >= 0 ) + op = AddOutPt(e, e->Top); + UpdateEdgeIntoAEL(e); + + //if output polygons share an edge, they'll need joining later ... + TEdge* ePrev = e->PrevInAEL; + TEdge* eNext = e->NextInAEL; + if (ePrev && ePrev->Curr.X == e->Bot.X && + ePrev->Curr.Y == e->Bot.Y && op && + ePrev->OutIdx >= 0 && ePrev->Curr.Y > ePrev->Top.Y && + SlopesEqual(*e, *ePrev, m_UseFullRange) && + (e->WindDelta != 0) && (ePrev->WindDelta != 0)) + { + OutPt* op2 = AddOutPt(ePrev, e->Bot); + m_Joins.emplace_back(Join(op, op2, e->Top)); + } + else if (eNext && eNext->Curr.X == e->Bot.X && + eNext->Curr.Y == e->Bot.Y && op && + eNext->OutIdx >= 0 && eNext->Curr.Y > eNext->Top.Y && + SlopesEqual(*e, *eNext, m_UseFullRange) && + (e->WindDelta != 0) && (eNext->WindDelta != 0)) + { + OutPt* op2 = AddOutPt(eNext, e->Bot); + m_Joins.emplace_back(Join(op, op2, e->Top)); + } + } + e = e->NextInAEL; + } +} +//------------------------------------------------------------------------------ + +void Clipper::FixupOutPolyline(OutRec &outrec) +{ + OutPt *pp = outrec.Pts; + OutPt *lastPP = pp->Prev; + while (pp != lastPP) + { + pp = pp->Next; + if (pp->Pt == pp->Prev->Pt) + { + if (pp == lastPP) lastPP = pp->Prev; + OutPt *tmpPP = pp->Prev; + tmpPP->Next = pp->Next; + pp->Next->Prev = tmpPP; + this->DisposeOutPt(pp); + pp = tmpPP; + } + } + + if (pp == pp->Prev) + { + this->DisposeOutPts(pp); + outrec.Pts = 0; + return; + } +} +//------------------------------------------------------------------------------ + +void Clipper::FixupOutPolygon(OutRec &outrec) +{ + //FixupOutPolygon() - removes duplicate points and simplifies consecutive + //parallel edges by removing the middle vertex. + OutPt *lastOK = nullptr; + outrec.BottomPt = nullptr; + OutPt *pp = outrec.Pts; + bool preserveCol = m_PreserveCollinear || m_StrictSimple; + + for (;;) + { + if (pp->Prev == pp || pp->Prev == pp->Next) + { + // Empty loop or a stick. Release the polygon. + this->DisposeOutPts(pp); + outrec.Pts = nullptr; + return; + } + + //test for duplicate points and collinear edges ... + if ((pp->Pt == pp->Next->Pt) || (pp->Pt == pp->Prev->Pt) || + (SlopesEqual(pp->Prev->Pt, pp->Pt, pp->Next->Pt, m_UseFullRange) && + (!preserveCol || !Pt2IsBetweenPt1AndPt3(pp->Prev->Pt, pp->Pt, pp->Next->Pt)))) + { + lastOK = nullptr; + OutPt *tmp = pp; + pp->Prev->Next = pp->Next; + pp->Next->Prev = pp->Prev; + pp = pp->Prev; + this->DisposeOutPt(tmp); + } + else if (pp == lastOK) break; + else + { + if (!lastOK) lastOK = pp; + pp = pp->Next; + } + } + outrec.Pts = pp; +} +//------------------------------------------------------------------------------ + +// Count the number of points in a closed linked loop starting with Pts. +int PointCount(OutPt *Pts) +{ + if (!Pts) return 0; + int result = 0; + OutPt* p = Pts; + do + { + result++; + p = p->Next; + } + while (p != Pts); + return result; +} +//------------------------------------------------------------------------------ + +void Clipper::BuildResult(Paths &polys) +{ + polys.reserve(m_PolyOuts.size()); + for (OutRec* outRec : m_PolyOuts) + { + assert(! outRec->IsOpen); + if (!outRec->Pts) continue; + Path pg; + OutPt* p = outRec->Pts->Prev; + int cnt = PointCount(p); + if (cnt < 2) continue; + pg.reserve(cnt); + for (int i = 0; i < cnt; ++i) + { + pg.emplace_back(p->Pt); + p = p->Prev; + } + polys.emplace_back(std::move(pg)); + } +} +//------------------------------------------------------------------------------ + +void Clipper::BuildResult2(PolyTree& polytree) +{ + polytree.Clear(); + polytree.AllNodes.reserve(m_PolyOuts.size()); + //add each output polygon/contour to polytree ... + for (OutRec* outRec : m_PolyOuts) + { + int cnt = PointCount(outRec->Pts); + if ((outRec->IsOpen && cnt < 2) || (!outRec->IsOpen && cnt < 3)) + // Ignore an invalid output loop or a polyline. + continue; + + //skip OutRecs that (a) contain outermost polygons or + //(b) already have the correct owner/child linkage ... + if (outRec->FirstLeft && + (outRec->IsHole == outRec->FirstLeft->IsHole || ! outRec->FirstLeft->Pts)) { + OutRec* orfl = outRec->FirstLeft; + while (orfl && ((orfl->IsHole == outRec->IsHole) || !orfl->Pts)) + orfl = orfl->FirstLeft; + outRec->FirstLeft = orfl; + } + + //nb: polytree takes ownership of all the PolyNodes + polytree.AllNodes.emplace_back(PolyNode()); + PolyNode* pn = &polytree.AllNodes.back(); + outRec->PolyNd = pn; + pn->Parent = 0; + pn->Index = 0; + pn->Contour.reserve(cnt); + OutPt *op = outRec->Pts->Prev; + for (int j = 0; j < cnt; j++) + { + pn->Contour.emplace_back(op->Pt); + op = op->Prev; + } + } + + //fixup PolyNode links etc ... + polytree.Childs.reserve(m_PolyOuts.size()); + for (OutRec* outRec : m_PolyOuts) + { + if (!outRec->PolyNd) continue; + if (outRec->IsOpen) + { + outRec->PolyNd->m_IsOpen = true; + polytree.AddChild(*outRec->PolyNd); + } + else if (outRec->FirstLeft && outRec->FirstLeft->PolyNd) + outRec->FirstLeft->PolyNd->AddChild(*outRec->PolyNd); + else + polytree.AddChild(*outRec->PolyNd); + } +} +//------------------------------------------------------------------------------ + +inline bool E2InsertsBeforeE1(TEdge &e1, TEdge &e2) +{ + if (e2.Curr.X == e1.Curr.X) + { + if (e2.Top.Y > e1.Top.Y) + return e2.Top.X < TopX(e1, e2.Top.Y); + else return e1.Top.X > TopX(e2, e1.Top.Y); + } + else return e2.Curr.X < e1.Curr.X; +} +//------------------------------------------------------------------------------ + +bool GetOverlap(const cInt a1, const cInt a2, const cInt b1, const cInt b2, + cInt& Left, cInt& Right) +{ + if (a1 < a2) + { + if (b1 < b2) {Left = std::max(a1,b1); Right = std::min(a2,b2);} + else {Left = std::max(a1,b2); Right = std::min(a2,b1);} + } + else + { + if (b1 < b2) {Left = std::max(a2,b1); Right = std::min(a1,b2);} + else {Left = std::max(a2,b2); Right = std::min(a1,b1);} + } + return Left < Right; +} +//------------------------------------------------------------------------------ + +// Make all points of outrec point to outrec.Idx +inline void UpdateOutPtIdxs(OutRec& outrec) +{ + OutPt* op = outrec.Pts; + do + { + op->Idx = outrec.Idx; + op = op->Prev; + } + while(op != outrec.Pts); +} +//------------------------------------------------------------------------------ + +void Clipper::InsertEdgeIntoAEL(TEdge *edge, TEdge* startEdge) +{ + if(!m_ActiveEdges) + { + edge->PrevInAEL = 0; + edge->NextInAEL = 0; + m_ActiveEdges = edge; + } + else if(!startEdge && E2InsertsBeforeE1(*m_ActiveEdges, *edge)) + { + edge->PrevInAEL = 0; + edge->NextInAEL = m_ActiveEdges; + m_ActiveEdges->PrevInAEL = edge; + m_ActiveEdges = edge; + } + else + { + if(!startEdge) startEdge = m_ActiveEdges; + while(startEdge->NextInAEL && + !E2InsertsBeforeE1(*startEdge->NextInAEL , *edge)) + startEdge = startEdge->NextInAEL; + edge->NextInAEL = startEdge->NextInAEL; + if(startEdge->NextInAEL) startEdge->NextInAEL->PrevInAEL = edge; + edge->PrevInAEL = startEdge; + startEdge->NextInAEL = edge; + } +} +//---------------------------------------------------------------------- + +OutPt* Clipper::DupOutPt(OutPt* outPt, bool InsertAfter) +{ + OutPt* result = this->AllocateOutPt(); + result->Pt = outPt->Pt; + result->Idx = outPt->Idx; + if (InsertAfter) + { + result->Next = outPt->Next; + result->Prev = outPt; + outPt->Next->Prev = result; + outPt->Next = result; + } + else + { + result->Prev = outPt->Prev; + result->Next = outPt; + outPt->Prev->Next = result; + outPt->Prev = result; + } + return result; +} +//------------------------------------------------------------------------------ + +bool Clipper::JoinHorz(OutPt* op1, OutPt* op1b, OutPt* op2, OutPt* op2b, + const IntPoint &Pt, bool DiscardLeft) +{ + Direction Dir1 = (op1->Pt.X > op1b->Pt.X ? dRightToLeft : dLeftToRight); + Direction Dir2 = (op2->Pt.X > op2b->Pt.X ? dRightToLeft : dLeftToRight); + if (Dir1 == Dir2) return false; + + //When DiscardLeft, we want Op1b to be on the Left of Op1, otherwise we + //want Op1b to be on the Right. (And likewise with Op2 and Op2b.) + //So, to facilitate this while inserting Op1b and Op2b ... + //when DiscardLeft, make sure we're AT or RIGHT of Pt before adding Op1b, + //otherwise make sure we're AT or LEFT of Pt. (Likewise with Op2b.) + if (Dir1 == dLeftToRight) + { + while (op1->Next->Pt.X <= Pt.X && + op1->Next->Pt.X >= op1->Pt.X && op1->Next->Pt.Y == Pt.Y) + op1 = op1->Next; + if (DiscardLeft && (op1->Pt.X != Pt.X)) op1 = op1->Next; + op1b = this->DupOutPt(op1, !DiscardLeft); + if (op1b->Pt != Pt) + { + op1 = op1b; + op1->Pt = Pt; + op1b = this->DupOutPt(op1, !DiscardLeft); + } + } + else + { + while (op1->Next->Pt.X >= Pt.X && + op1->Next->Pt.X <= op1->Pt.X && op1->Next->Pt.Y == Pt.Y) + op1 = op1->Next; + if (!DiscardLeft && (op1->Pt.X != Pt.X)) op1 = op1->Next; + op1b = this->DupOutPt(op1, DiscardLeft); + if (op1b->Pt != Pt) + { + op1 = op1b; + op1->Pt = Pt; + op1b = this->DupOutPt(op1, DiscardLeft); + } + } + + if (Dir2 == dLeftToRight) + { + while (op2->Next->Pt.X <= Pt.X && + op2->Next->Pt.X >= op2->Pt.X && op2->Next->Pt.Y == Pt.Y) + op2 = op2->Next; + if (DiscardLeft && (op2->Pt.X != Pt.X)) op2 = op2->Next; + op2b = this->DupOutPt(op2, !DiscardLeft); + if (op2b->Pt != Pt) + { + op2 = op2b; + op2->Pt = Pt; + op2b = this->DupOutPt(op2, !DiscardLeft); + }; + } else + { + while (op2->Next->Pt.X >= Pt.X && + op2->Next->Pt.X <= op2->Pt.X && op2->Next->Pt.Y == Pt.Y) + op2 = op2->Next; + if (!DiscardLeft && (op2->Pt.X != Pt.X)) op2 = op2->Next; + op2b = this->DupOutPt(op2, DiscardLeft); + if (op2b->Pt != Pt) + { + op2 = op2b; + op2->Pt = Pt; + op2b = this->DupOutPt(op2, DiscardLeft); + }; + }; + + if ((Dir1 == dLeftToRight) == DiscardLeft) + { + op1->Prev = op2; + op2->Next = op1; + op1b->Next = op2b; + op2b->Prev = op1b; + } + else + { + op1->Next = op2; + op2->Prev = op1; + op1b->Prev = op2b; + op2b->Next = op1b; + } + return true; +} +//------------------------------------------------------------------------------ + +bool Clipper::JoinPoints(Join *j, OutRec* outRec1, OutRec* outRec2) +{ + OutPt *op1 = j->OutPt1, *op1b; + OutPt *op2 = j->OutPt2, *op2b; + + //There are 3 kinds of joins for output polygons ... + //1. Horizontal joins where Join.OutPt1 & Join.OutPt2 are vertices anywhere + //along (horizontal) collinear edges (& Join.OffPt is on the same horizontal). + //2. Non-horizontal joins where Join.OutPt1 & Join.OutPt2 are at the same + //location at the Bottom of the overlapping segment (& Join.OffPt is above). + //3. StrictSimple joins where edges touch but are not collinear and where + //Join.OutPt1, Join.OutPt2 & Join.OffPt all share the same point. + bool isHorizontal = (j->OutPt1->Pt.Y == j->OffPt.Y); + + if (isHorizontal && (j->OffPt == j->OutPt1->Pt) && + (j->OffPt == j->OutPt2->Pt)) + { + //Strictly Simple join ... + if (outRec1 != outRec2) return false; + op1b = j->OutPt1->Next; + while (op1b != op1 && (op1b->Pt == j->OffPt)) + op1b = op1b->Next; + bool reverse1 = (op1b->Pt.Y > j->OffPt.Y); + op2b = j->OutPt2->Next; + while (op2b != op2 && (op2b->Pt == j->OffPt)) + op2b = op2b->Next; + bool reverse2 = (op2b->Pt.Y > j->OffPt.Y); + if (reverse1 == reverse2) return false; + if (reverse1) + { + op1b = this->DupOutPt(op1, false); + op2b = this->DupOutPt(op2, true); + op1->Prev = op2; + op2->Next = op1; + op1b->Next = op2b; + op2b->Prev = op1b; + j->OutPt1 = op1; + j->OutPt2 = op1b; + return true; + } else + { + op1b = this->DupOutPt(op1, true); + op2b = this->DupOutPt(op2, false); + op1->Next = op2; + op2->Prev = op1; + op1b->Prev = op2b; + op2b->Next = op1b; + j->OutPt1 = op1; + j->OutPt2 = op1b; + return true; + } + } + else if (isHorizontal) + { + //treat horizontal joins differently to non-horizontal joins since with + //them we're not yet sure where the overlapping is. OutPt1.Pt & OutPt2.Pt + //may be anywhere along the horizontal edge. + op1b = op1; + while (op1->Prev->Pt.Y == op1->Pt.Y && op1->Prev != op1b && op1->Prev != op2) + op1 = op1->Prev; + while (op1b->Next->Pt.Y == op1b->Pt.Y && op1b->Next != op1 && op1b->Next != op2) + op1b = op1b->Next; + if (op1b->Next == op1 || op1b->Next == op2) return false; //a flat 'polygon' + + op2b = op2; + while (op2->Prev->Pt.Y == op2->Pt.Y && op2->Prev != op2b && op2->Prev != op1b) + op2 = op2->Prev; + while (op2b->Next->Pt.Y == op2b->Pt.Y && op2b->Next != op2 && op2b->Next != op1) + op2b = op2b->Next; + if (op2b->Next == op2 || op2b->Next == op1) return false; //a flat 'polygon' + + cInt Left, Right; + //Op1 --> Op1b & Op2 --> Op2b are the extremites of the horizontal edges + if (!GetOverlap(op1->Pt.X, op1b->Pt.X, op2->Pt.X, op2b->Pt.X, Left, Right)) + return false; + + //DiscardLeftSide: when overlapping edges are joined, a spike will created + //which needs to be cleaned up. However, we don't want Op1 or Op2 caught up + //on the discard Side as either may still be needed for other joins ... + IntPoint Pt; + bool DiscardLeftSide; + if (op1->Pt.X >= Left && op1->Pt.X <= Right) + { + Pt = op1->Pt; DiscardLeftSide = (op1->Pt.X > op1b->Pt.X); + } + else if (op2->Pt.X >= Left&& op2->Pt.X <= Right) + { + Pt = op2->Pt; DiscardLeftSide = (op2->Pt.X > op2b->Pt.X); + } + else if (op1b->Pt.X >= Left && op1b->Pt.X <= Right) + { + Pt = op1b->Pt; DiscardLeftSide = op1b->Pt.X > op1->Pt.X; + } + else + { + Pt = op2b->Pt; DiscardLeftSide = (op2b->Pt.X > op2->Pt.X); + } + j->OutPt1 = op1; j->OutPt2 = op2; + return JoinHorz(op1, op1b, op2, op2b, Pt, DiscardLeftSide); + } else + { + //nb: For non-horizontal joins ... + // 1. Jr.OutPt1.Pt.Y == Jr.OutPt2.Pt.Y + // 2. Jr.OutPt1.Pt > Jr.OffPt.Y + + //make sure the polygons are correctly oriented ... + op1b = op1->Next; + while ((op1b->Pt == op1->Pt) && (op1b != op1)) op1b = op1b->Next; + bool Reverse1 = ((op1b->Pt.Y > op1->Pt.Y) || + !SlopesEqual(op1->Pt, op1b->Pt, j->OffPt, m_UseFullRange)); + if (Reverse1) + { + op1b = op1->Prev; + while ((op1b->Pt == op1->Pt) && (op1b != op1)) op1b = op1b->Prev; + if ((op1b->Pt.Y > op1->Pt.Y) || + !SlopesEqual(op1->Pt, op1b->Pt, j->OffPt, m_UseFullRange)) return false; + }; + op2b = op2->Next; + while ((op2b->Pt == op2->Pt) && (op2b != op2))op2b = op2b->Next; + bool Reverse2 = ((op2b->Pt.Y > op2->Pt.Y) || + !SlopesEqual(op2->Pt, op2b->Pt, j->OffPt, m_UseFullRange)); + if (Reverse2) + { + op2b = op2->Prev; + while ((op2b->Pt == op2->Pt) && (op2b != op2)) op2b = op2b->Prev; + if ((op2b->Pt.Y > op2->Pt.Y) || + !SlopesEqual(op2->Pt, op2b->Pt, j->OffPt, m_UseFullRange)) return false; + } + + if ((op1b == op1) || (op2b == op2) || (op1b == op2b) || + ((outRec1 == outRec2) && (Reverse1 == Reverse2))) return false; + + if (Reverse1) + { + op1b = this->DupOutPt(op1, false); + op2b = this->DupOutPt(op2, true); + op1->Prev = op2; + op2->Next = op1; + op1b->Next = op2b; + op2b->Prev = op1b; + j->OutPt1 = op1; + j->OutPt2 = op1b; + return true; + } else + { + op1b = this->DupOutPt(op1, true); + op2b = this->DupOutPt(op2, false); + op1->Next = op2; + op2->Prev = op1; + op1b->Prev = op2b; + op2b->Next = op1b; + j->OutPt1 = op1; + j->OutPt2 = op1b; + return true; + } + } +} +//---------------------------------------------------------------------- + +// This is potentially very expensive! O(n^3)! +void Clipper::FixupFirstLefts1(OutRec* OldOutRec, OutRec* NewOutRec) const +{ + PROFILE_FUNC(); + //tests if NewOutRec contains the polygon before reassigning FirstLeft + for (OutRec *outRec : m_PolyOuts) + { + if (!outRec->Pts || !outRec->FirstLeft) continue; + OutRec* firstLeft = outRec->FirstLeft; + // Skip empty polygons. + while (firstLeft && !firstLeft->Pts) firstLeft = firstLeft->FirstLeft; + if (firstLeft == OldOutRec && Poly2ContainsPoly1(outRec->Pts, NewOutRec->Pts)) + outRec->FirstLeft = NewOutRec; + } +} +//---------------------------------------------------------------------- + +void Clipper::FixupFirstLefts2(OutRec* OldOutRec, OutRec* NewOutRec) const +{ + //reassigns FirstLeft WITHOUT testing if NewOutRec contains the polygon + for (OutRec *outRec : m_PolyOuts) + if (outRec->FirstLeft == OldOutRec) outRec->FirstLeft = NewOutRec; +} +//---------------------------------------------------------------------- + +void Clipper::JoinCommonEdges() +{ + PROFILE_FUNC(); + for (Join &join : m_Joins) + { + OutRec *outRec1 = GetOutRec(join.OutPt1->Idx); + OutRec *outRec2 = GetOutRec(join.OutPt2->Idx); + + if (!outRec1->Pts || !outRec2->Pts) continue; + if (outRec1->IsOpen || outRec2->IsOpen) continue; + + //get the polygon fragment with the correct hole state (FirstLeft) + //before calling JoinPoints() ... + OutRec *holeStateRec; + if (outRec1 == outRec2) holeStateRec = outRec1; + else if (Param1RightOfParam2(outRec1, outRec2)) holeStateRec = outRec2; + else if (Param1RightOfParam2(outRec2, outRec1)) holeStateRec = outRec1; + else holeStateRec = GetLowermostRec(outRec1, outRec2); + + if (!JoinPoints(&join, outRec1, outRec2)) continue; + + if (outRec1 == outRec2) + { + //instead of joining two polygons, we've just created a new one by + //splitting one polygon into two. + outRec1->Pts = join.OutPt1; + outRec1->BottomPt = 0; + outRec2 = CreateOutRec(); + outRec2->Pts = join.OutPt2; + + //update all OutRec2.Pts Idx's ... + UpdateOutPtIdxs(*outRec2); + + //We now need to check every OutRec.FirstLeft pointer. If it points + //to OutRec1 it may need to point to OutRec2 instead ... + if (m_UsingPolyTree) + for (size_t j = 0; j < m_PolyOuts.size() - 1; j++) + { + OutRec* oRec = m_PolyOuts[j]; + OutRec* firstLeft = oRec->FirstLeft; + while (firstLeft && !firstLeft->Pts) firstLeft = firstLeft->FirstLeft; + if (!oRec->Pts || firstLeft != outRec1 || + oRec->IsHole == outRec1->IsHole) continue; + if (Poly2ContainsPoly1(oRec->Pts, join.OutPt2)) + oRec->FirstLeft = outRec2; + } + + if (Poly2ContainsPoly1(outRec2->Pts, outRec1->Pts)) + { + //outRec2 is contained by outRec1 ... + outRec2->IsHole = !outRec1->IsHole; + outRec2->FirstLeft = outRec1; + + // For each m_PolyOuts, replace FirstLeft from outRec2 to outRec1. + if (m_UsingPolyTree) FixupFirstLefts2(outRec2, outRec1); + + if ((outRec2->IsHole ^ m_ReverseOutput) == (Area(*outRec2) > 0)) + ReversePolyPtLinks(outRec2->Pts); + + } else if (Poly2ContainsPoly1(outRec1->Pts, outRec2->Pts)) + { + //outRec1 is contained by outRec2 ... + outRec2->IsHole = outRec1->IsHole; + outRec1->IsHole = !outRec2->IsHole; + outRec2->FirstLeft = outRec1->FirstLeft; + outRec1->FirstLeft = outRec2; + + // For each m_PolyOuts, replace FirstLeft from outRec1 to outRec2. + if (m_UsingPolyTree) FixupFirstLefts2(outRec1, outRec2); + + if ((outRec1->IsHole ^ m_ReverseOutput) == (Area(*outRec1) > 0)) + ReversePolyPtLinks(outRec1->Pts); + } + else + { + //the 2 polygons are completely separate ... + outRec2->IsHole = outRec1->IsHole; + outRec2->FirstLeft = outRec1->FirstLeft; + + //fixup FirstLeft pointers that may need reassigning to OutRec2 + // For each polygon of m_PolyOuts, replace FirstLeft from outRec1 to outRec2 if the polygon is inside outRec2. + //FIXME This is potentially very expensive! O(n^3)! + if (m_UsingPolyTree) FixupFirstLefts1(outRec1, outRec2); + } + + } else + { + //joined 2 polygons together ... + + outRec2->Pts = 0; + outRec2->BottomPt = 0; + outRec2->Idx = outRec1->Idx; + + outRec1->IsHole = holeStateRec->IsHole; + if (holeStateRec == outRec2) + outRec1->FirstLeft = outRec2->FirstLeft; + outRec2->FirstLeft = outRec1; + + // For each m_PolyOuts, replace FirstLeft from outRec2 to outRec1. + if (m_UsingPolyTree) FixupFirstLefts2(outRec2, outRec1); + } + } +} + +//------------------------------------------------------------------------------ +// ClipperOffset support functions ... +//------------------------------------------------------------------------------ + +DoublePoint GetUnitNormal(const IntPoint &pt1, const IntPoint &pt2) +{ + if(pt2.X == pt1.X && pt2.Y == pt1.Y) + return DoublePoint(0, 0); + + double Dx = (double)(pt2.X - pt1.X); + double dy = (double)(pt2.Y - pt1.Y); + double f = 1 *1.0/ std::sqrt( Dx*Dx + dy*dy ); + Dx *= f; + dy *= f; + return DoublePoint(dy, -Dx); +} + +//------------------------------------------------------------------------------ +// ClipperOffset class +//------------------------------------------------------------------------------ + +void ClipperOffset::Clear() +{ + for (int i = 0; i < m_polyNodes.ChildCount(); ++i) + delete m_polyNodes.Childs[i]; + m_polyNodes.Childs.clear(); + m_lowest.X = -1; +} +//------------------------------------------------------------------------------ + +void ClipperOffset::AddPath(const Path& path, JoinType joinType, EndType endType) +{ + int highI = (int)path.size() - 1; + if (highI < 0) return; + PolyNode* newNode = new PolyNode(); + newNode->m_jointype = joinType; + newNode->m_endtype = endType; + + //strip duplicate points from path and also get index to the lowest point ... + bool has_shortest_edge_length = ShortestEdgeLength > 0.; + double shortest_edge_length2 = has_shortest_edge_length ? ShortestEdgeLength * ShortestEdgeLength : 0.; + if (endType == etClosedLine || endType == etClosedPolygon) + for (; highI > 0; -- highI) { + bool same = false; + if (has_shortest_edge_length) { + double dx = double(path[highI].X - path[0].X); + double dy = double(path[highI].Y - path[0].Y); + same = dx*dx + dy*dy < shortest_edge_length2; + } else + same = path[0] == path[highI]; + if (! same) + break; + } + newNode->Contour.reserve(highI + 1); + newNode->Contour.push_back(path[0]); + int j = 0, k = 0; + for (int i = 1; i <= highI; i++) { + bool same = false; + if (has_shortest_edge_length) { + double dx = double(path[i].X - newNode->Contour[j].X); + double dy = double(path[i].Y - newNode->Contour[j].Y); + same = dx*dx + dy*dy < shortest_edge_length2; + } else + same = newNode->Contour[j] == path[i]; + if (same) + continue; + j++; + newNode->Contour.push_back(path[i]); + if (path[i].Y > newNode->Contour[k].Y || + (path[i].Y == newNode->Contour[k].Y && + path[i].X < newNode->Contour[k].X)) k = j; + } + if (endType == etClosedPolygon && j < 2) + { + delete newNode; + return; + } + m_polyNodes.AddChild(*newNode); + + //if this path's lowest pt is lower than all the others then update m_lowest + if (endType != etClosedPolygon) return; + if (m_lowest.X < 0) + m_lowest = IntPoint(m_polyNodes.ChildCount() - 1, k); + else + { + IntPoint ip = m_polyNodes.Childs[(int)m_lowest.X]->Contour[(int)m_lowest.Y]; + if (newNode->Contour[k].Y > ip.Y || + (newNode->Contour[k].Y == ip.Y && + newNode->Contour[k].X < ip.X)) + m_lowest = IntPoint(m_polyNodes.ChildCount() - 1, k); + } +} +//------------------------------------------------------------------------------ + +void ClipperOffset::AddPaths(const Paths& paths, JoinType joinType, EndType endType) +{ + for (const Path &path : paths) + AddPath(path, joinType, endType); +} +//------------------------------------------------------------------------------ + +void ClipperOffset::FixOrientations() +{ + //fixup orientations of all closed paths if the orientation of the + //closed path with the lowermost vertex is wrong ... + if (m_lowest.X >= 0 && + !Orientation(m_polyNodes.Childs[(int)m_lowest.X]->Contour)) + { + for (int i = 0; i < m_polyNodes.ChildCount(); ++i) + { + PolyNode& node = *m_polyNodes.Childs[i]; + if (node.m_endtype == etClosedPolygon || + (node.m_endtype == etClosedLine && Orientation(node.Contour))) + ReversePath(node.Contour); + } + } else + { + for (int i = 0; i < m_polyNodes.ChildCount(); ++i) + { + PolyNode& node = *m_polyNodes.Childs[i]; + if (node.m_endtype == etClosedLine && !Orientation(node.Contour)) + ReversePath(node.Contour); + } + } +} +//------------------------------------------------------------------------------ + +void ClipperOffset::Execute(Paths& solution, double delta) +{ + solution.clear(); + FixOrientations(); + DoOffset(delta); + + //now clean up 'corners' ... + Clipper clpr; + clpr.AddPaths(m_destPolys, ptSubject, true); + if (delta > 0) + { + clpr.Execute(ctUnion, solution, pftPositive, pftPositive); + } + else + { + IntRect r = clpr.GetBounds(); + Path outer(4); + outer[0] = IntPoint(r.left - 10, r.bottom + 10); + outer[1] = IntPoint(r.right + 10, r.bottom + 10); + outer[2] = IntPoint(r.right + 10, r.top - 10); + outer[3] = IntPoint(r.left - 10, r.top - 10); + + clpr.AddPath(outer, ptSubject, true); + clpr.ReverseSolution(true); + clpr.Execute(ctUnion, solution, pftNegative, pftNegative); + if (solution.size() > 0) solution.erase(solution.begin()); + } +} +//------------------------------------------------------------------------------ + +void ClipperOffset::Execute(PolyTree& solution, double delta) +{ + solution.Clear(); + FixOrientations(); + DoOffset(delta); + + //now clean up 'corners' ... + Clipper clpr; + clpr.AddPaths(m_destPolys, ptSubject, true); + if (delta > 0) + { + clpr.Execute(ctUnion, solution, pftPositive, pftPositive); + } + else + { + IntRect r = clpr.GetBounds(); + Path outer(4); + outer[0] = IntPoint(r.left - 10, r.bottom + 10); + outer[1] = IntPoint(r.right + 10, r.bottom + 10); + outer[2] = IntPoint(r.right + 10, r.top - 10); + outer[3] = IntPoint(r.left - 10, r.top - 10); + + clpr.AddPath(outer, ptSubject, true); + clpr.ReverseSolution(true); + clpr.Execute(ctUnion, solution, pftNegative, pftNegative); + //remove the outer PolyNode rectangle ... + if (solution.ChildCount() == 1 && solution.Childs[0]->ChildCount() > 0) + { + PolyNode* outerNode = solution.Childs[0]; + solution.Childs.reserve(outerNode->ChildCount()); + solution.Childs[0] = outerNode->Childs[0]; + solution.Childs[0]->Parent = outerNode->Parent; + for (int i = 1; i < outerNode->ChildCount(); ++i) + solution.AddChild(*outerNode->Childs[i]); + } + else + solution.Clear(); + } +} +//------------------------------------------------------------------------------ + +void ClipperOffset::DoOffset(double delta) +{ + m_destPolys.clear(); + m_delta = delta; + + //if Zero offset, just copy any CLOSED polygons to m_p and return ... + if (NEAR_ZERO(delta)) + { + m_destPolys.reserve(m_polyNodes.ChildCount()); + for (int i = 0; i < m_polyNodes.ChildCount(); i++) + { + PolyNode& node = *m_polyNodes.Childs[i]; + if (node.m_endtype == etClosedPolygon) + m_destPolys.push_back(node.Contour); + } + return; + } + + //see offset_triginometry3.svg in the documentation folder ... + if (MiterLimit > 2) m_miterLim = 2/(MiterLimit * MiterLimit); + else m_miterLim = 0.5; + + double y; + if (ArcTolerance <= 0.0) y = def_arc_tolerance; + else if (ArcTolerance > std::fabs(delta) * def_arc_tolerance) + y = std::fabs(delta) * def_arc_tolerance; + else y = ArcTolerance; + //see offset_triginometry2.svg in the documentation folder ... + double steps = pi / std::acos(1 - y / std::fabs(delta)); + if (steps > std::fabs(delta) * pi) + steps = std::fabs(delta) * pi; //ie excessive precision check + m_sin = std::sin(two_pi / steps); + m_cos = std::cos(two_pi / steps); + m_StepsPerRad = steps / two_pi; + if (delta < 0.0) m_sin = -m_sin; + + m_destPolys.reserve(m_polyNodes.ChildCount() * 2); + for (int i = 0; i < m_polyNodes.ChildCount(); i++) + { + PolyNode& node = *m_polyNodes.Childs[i]; + m_srcPoly = node.Contour; + + int len = (int)m_srcPoly.size(); + if (len == 0 || (delta <= 0 && (len < 3 || node.m_endtype != etClosedPolygon))) + continue; + + m_destPoly.clear(); + if (len == 1) + { + if (node.m_jointype == jtRound) + { + double X = 1.0, Y = 0.0; + for (cInt j = 1; j <= steps; j++) + { + m_destPoly.push_back(IntPoint( + Round(m_srcPoly[0].X + X * delta), + Round(m_srcPoly[0].Y + Y * delta))); + double X2 = X; + X = X * m_cos - m_sin * Y; + Y = X2 * m_sin + Y * m_cos; + } + } + else + { + double X = -1.0, Y = -1.0; + for (int j = 0; j < 4; ++j) + { + m_destPoly.push_back(IntPoint( + Round(m_srcPoly[0].X + X * delta), + Round(m_srcPoly[0].Y + Y * delta))); + if (X < 0) X = 1; + else if (Y < 0) Y = 1; + else X = -1; + } + } + m_destPolys.push_back(m_destPoly); + continue; + } + //build m_normals ... + m_normals.clear(); + m_normals.reserve(len); + for (int j = 0; j < len - 1; ++j) + m_normals.push_back(GetUnitNormal(m_srcPoly[j], m_srcPoly[j + 1])); + if (node.m_endtype == etClosedLine || node.m_endtype == etClosedPolygon) + m_normals.push_back(GetUnitNormal(m_srcPoly[len - 1], m_srcPoly[0])); + else + m_normals.push_back(DoublePoint(m_normals[len - 2])); + + if (node.m_endtype == etClosedPolygon) + { + int k = len - 1; + for (int j = 0; j < len; ++j) + OffsetPoint(j, k, node.m_jointype); + m_destPolys.push_back(m_destPoly); + } + else if (node.m_endtype == etClosedLine) + { + int k = len - 1; + for (int j = 0; j < len; ++j) + OffsetPoint(j, k, node.m_jointype); + m_destPolys.push_back(m_destPoly); + m_destPoly.clear(); + //re-build m_normals ... + DoublePoint n = m_normals[len -1]; + for (int j = len - 1; j > 0; j--) + m_normals[j] = DoublePoint(-m_normals[j - 1].X, -m_normals[j - 1].Y); + m_normals[0] = DoublePoint(-n.X, -n.Y); + k = 0; + for (int j = len - 1; j >= 0; j--) + OffsetPoint(j, k, node.m_jointype); + m_destPolys.push_back(m_destPoly); + } + else + { + int k = 0; + for (int j = 1; j < len - 1; ++j) + OffsetPoint(j, k, node.m_jointype); + + IntPoint pt1; + if (node.m_endtype == etOpenButt) + { + int j = len - 1; + pt1 = IntPoint(Round(m_srcPoly[j].X + m_normals[j].X * + delta), Round(m_srcPoly[j].Y + m_normals[j].Y * delta)); + m_destPoly.push_back(pt1); + pt1 = IntPoint(Round(m_srcPoly[j].X - m_normals[j].X * + delta), Round(m_srcPoly[j].Y - m_normals[j].Y * delta)); + m_destPoly.push_back(pt1); + } + else + { + int j = len - 1; + k = len - 2; + m_sinA = 0; + m_normals[j] = DoublePoint(-m_normals[j].X, -m_normals[j].Y); + if (node.m_endtype == etOpenSquare) + DoSquare(j, k); + else + DoRound(j, k); + } + + //re-build m_normals ... + for (int j = len - 1; j > 0; j--) + m_normals[j] = DoublePoint(-m_normals[j - 1].X, -m_normals[j - 1].Y); + m_normals[0] = DoublePoint(-m_normals[1].X, -m_normals[1].Y); + + k = len - 1; + for (int j = k - 1; j > 0; --j) OffsetPoint(j, k, node.m_jointype); + + if (node.m_endtype == etOpenButt) + { + pt1 = IntPoint(Round(m_srcPoly[0].X - m_normals[0].X * delta), + Round(m_srcPoly[0].Y - m_normals[0].Y * delta)); + m_destPoly.push_back(pt1); + pt1 = IntPoint(Round(m_srcPoly[0].X + m_normals[0].X * delta), + Round(m_srcPoly[0].Y + m_normals[0].Y * delta)); + m_destPoly.push_back(pt1); + } + else + { + k = 1; + m_sinA = 0; + if (node.m_endtype == etOpenSquare) + DoSquare(0, 1); + else + DoRound(0, 1); + } + m_destPolys.push_back(m_destPoly); + } + } +} +//------------------------------------------------------------------------------ + +void ClipperOffset::OffsetPoint(int j, int& k, JoinType jointype) +{ + //cross product ... + m_sinA = (m_normals[k].X * m_normals[j].Y - m_normals[j].X * m_normals[k].Y); + if (std::fabs(m_sinA * m_delta) < 1.0) + { + //dot product ... + double cosA = (m_normals[k].X * m_normals[j].X + m_normals[j].Y * m_normals[k].Y ); + if (cosA > 0) // angle => 0 degrees + { + m_destPoly.push_back(IntPoint(Round(m_srcPoly[j].X + m_normals[k].X * m_delta), + Round(m_srcPoly[j].Y + m_normals[k].Y * m_delta))); + return; + } + //else angle => 180 degrees + } + else if (m_sinA > 1.0) m_sinA = 1.0; + else if (m_sinA < -1.0) m_sinA = -1.0; + + if (m_sinA * m_delta < 0) + { + m_destPoly.push_back(IntPoint(Round(m_srcPoly[j].X + m_normals[k].X * m_delta), + Round(m_srcPoly[j].Y + m_normals[k].Y * m_delta))); + m_destPoly.push_back(m_srcPoly[j]); + m_destPoly.push_back(IntPoint(Round(m_srcPoly[j].X + m_normals[j].X * m_delta), + Round(m_srcPoly[j].Y + m_normals[j].Y * m_delta))); + } + else + switch (jointype) + { + case jtMiter: + { + double r = 1 + (m_normals[j].X * m_normals[k].X + + m_normals[j].Y * m_normals[k].Y); + if (r >= m_miterLim) DoMiter(j, k, r); else DoSquare(j, k); + break; + } + case jtSquare: DoSquare(j, k); break; + case jtRound: DoRound(j, k); break; + } + k = j; +} +//------------------------------------------------------------------------------ + +void ClipperOffset::DoSquare(int j, int k) +{ + double dx = std::tan(std::atan2(m_sinA, + m_normals[k].X * m_normals[j].X + m_normals[k].Y * m_normals[j].Y) / 4); + m_destPoly.push_back(IntPoint( + Round(m_srcPoly[j].X + m_delta * (m_normals[k].X - m_normals[k].Y * dx)), + Round(m_srcPoly[j].Y + m_delta * (m_normals[k].Y + m_normals[k].X * dx)))); + m_destPoly.push_back(IntPoint( + Round(m_srcPoly[j].X + m_delta * (m_normals[j].X + m_normals[j].Y * dx)), + Round(m_srcPoly[j].Y + m_delta * (m_normals[j].Y - m_normals[j].X * dx)))); +} +//------------------------------------------------------------------------------ + +void ClipperOffset::DoMiter(int j, int k, double r) +{ + double q = m_delta / r; + m_destPoly.push_back(IntPoint(Round(m_srcPoly[j].X + (m_normals[k].X + m_normals[j].X) * q), + Round(m_srcPoly[j].Y + (m_normals[k].Y + m_normals[j].Y) * q))); +} +//------------------------------------------------------------------------------ + +void ClipperOffset::DoRound(int j, int k) +{ + double a = std::atan2(m_sinA, + m_normals[k].X * m_normals[j].X + m_normals[k].Y * m_normals[j].Y); + int steps = std::max((int)Round(m_StepsPerRad * std::fabs(a)), 1); + + double X = m_normals[k].X, Y = m_normals[k].Y, X2; + for (int i = 0; i < steps; ++i) + { + m_destPoly.push_back(IntPoint( + Round(m_srcPoly[j].X + X * m_delta), + Round(m_srcPoly[j].Y + Y * m_delta))); + X2 = X; + X = X * m_cos - m_sin * Y; + Y = X2 * m_sin + Y * m_cos; + } + m_destPoly.push_back(IntPoint( + Round(m_srcPoly[j].X + m_normals[j].X * m_delta), + Round(m_srcPoly[j].Y + m_normals[j].Y * m_delta))); +} + +//------------------------------------------------------------------------------ +// Miscellaneous public functions +//------------------------------------------------------------------------------ + +// Called by Clipper::ExecuteInternal() +// For each polygon, search for exactly duplicate non-successive points. +// If such a point is found, the loop is split into two pieces. +// Search for the duplicate points is O(n^2)! +// http://www.angusj.com/delphi/clipper/documentation/Docs/Units/ClipperLib/Classes/Clipper/Properties/StrictlySimple.htm +void Clipper::DoSimplePolygons() +{ + PROFILE_FUNC(); + size_t i = 0; + while (i < m_PolyOuts.size()) + { + OutRec* outrec = m_PolyOuts[i++]; + OutPt* op = outrec->Pts; + if (!op || outrec->IsOpen) continue; + do //for each Pt in Polygon until duplicate found do ... + { + OutPt* op2 = op->Next; + while (op2 != outrec->Pts) + { + if ((op->Pt == op2->Pt) && op2->Next != op && op2->Prev != op) + { + //split the polygon into two ... + OutPt* op3 = op->Prev; + OutPt* op4 = op2->Prev; + op->Prev = op4; + op4->Next = op; + op2->Prev = op3; + op3->Next = op2; + + outrec->Pts = op; + OutRec* outrec2 = CreateOutRec(); + outrec2->Pts = op2; + UpdateOutPtIdxs(*outrec2); + if (Poly2ContainsPoly1(outrec2->Pts, outrec->Pts)) + { + //OutRec2 is contained by OutRec1 ... + outrec2->IsHole = !outrec->IsHole; + outrec2->FirstLeft = outrec; + // For each m_PolyOuts, replace FirstLeft from outRec2 to outrec. + if (m_UsingPolyTree) FixupFirstLefts2(outrec2, outrec); + } + else + if (Poly2ContainsPoly1(outrec->Pts, outrec2->Pts)) + { + //OutRec1 is contained by OutRec2 ... + outrec2->IsHole = outrec->IsHole; + outrec->IsHole = !outrec2->IsHole; + outrec2->FirstLeft = outrec->FirstLeft; + outrec->FirstLeft = outrec2; + // For each m_PolyOuts, replace FirstLeft from outrec to outrec2. + if (m_UsingPolyTree) FixupFirstLefts2(outrec, outrec2); + } + else + { + //the 2 polygons are separate ... + outrec2->IsHole = outrec->IsHole; + outrec2->FirstLeft = outrec->FirstLeft; + // For each polygon of m_PolyOuts, replace FirstLeft from outrec to outrec2 if the polygon is inside outRec2. + //FIXME This is potentially very expensive! O(n^3)! + if (m_UsingPolyTree) FixupFirstLefts1(outrec, outrec2); + } + op2 = op; //ie get ready for the Next iteration + } + op2 = op2->Next; + } + op = op->Next; + } + while (op != outrec->Pts); + } +} +//------------------------------------------------------------------------------ + +void ReversePath(Path& p) +{ + std::reverse(p.begin(), p.end()); +} +//------------------------------------------------------------------------------ + +void ReversePaths(Paths& p) +{ + for (Paths::size_type i = 0; i < p.size(); ++i) + ReversePath(p[i]); +} +//------------------------------------------------------------------------------ + +void SimplifyPolygon(const Path &in_poly, Paths &out_polys, PolyFillType fillType) +{ + Clipper c; + c.StrictlySimple(true); + c.AddPath(in_poly, ptSubject, true); + c.Execute(ctUnion, out_polys, fillType, fillType); +} +//------------------------------------------------------------------------------ + +void SimplifyPolygons(const Paths &in_polys, Paths &out_polys, PolyFillType fillType) +{ + Clipper c; + c.StrictlySimple(true); + c.AddPaths(in_polys, ptSubject, true); + c.Execute(ctUnion, out_polys, fillType, fillType); +} +//------------------------------------------------------------------------------ + +void SimplifyPolygons(Paths &polys, PolyFillType fillType) +{ + SimplifyPolygons(polys, polys, fillType); +} +//------------------------------------------------------------------------------ + +inline double DistanceSqrd(const IntPoint& pt1, const IntPoint& pt2) +{ + double Dx = ((double)pt1.X - pt2.X); + double dy = ((double)pt1.Y - pt2.Y); + return (Dx*Dx + dy*dy); +} +//------------------------------------------------------------------------------ + +double DistanceFromLineSqrd( + const IntPoint& pt, const IntPoint& ln1, const IntPoint& ln2) +{ + //The equation of a line in general form (Ax + By + C = 0) + //given 2 points (x¹,y¹) & (x²,y²) is ... + //(y¹ - y²)x + (x² - x¹)y + (y² - y¹)x¹ - (x² - x¹)y¹ = 0 + //A = (y¹ - y²); B = (x² - x¹); C = (y² - y¹)x¹ - (x² - x¹)y¹ + //perpendicular distance of point (x³,y³) = (Ax³ + By³ + C)/Sqrt(A² + B²) + //see http://en.wikipedia.org/wiki/Perpendicular_distance + double A = double(ln1.Y - ln2.Y); + double B = double(ln2.X - ln1.X); + double C = A * ln1.X + B * ln1.Y; + C = A * pt.X + B * pt.Y - C; + return (C * C) / (A * A + B * B); +} +//--------------------------------------------------------------------------- + +bool SlopesNearCollinear(const IntPoint& pt1, + const IntPoint& pt2, const IntPoint& pt3, double distSqrd) +{ + //this function is more accurate when the point that's geometrically + //between the other 2 points is the one that's tested for distance. + //ie makes it more likely to pick up 'spikes' ... + if (std::abs(pt1.X - pt2.X) > std::abs(pt1.Y - pt2.Y)) + { + if ((pt1.X > pt2.X) == (pt1.X < pt3.X)) + return DistanceFromLineSqrd(pt1, pt2, pt3) < distSqrd; + else if ((pt2.X > pt1.X) == (pt2.X < pt3.X)) + return DistanceFromLineSqrd(pt2, pt1, pt3) < distSqrd; + else + return DistanceFromLineSqrd(pt3, pt1, pt2) < distSqrd; + } + else + { + if ((pt1.Y > pt2.Y) == (pt1.Y < pt3.Y)) + return DistanceFromLineSqrd(pt1, pt2, pt3) < distSqrd; + else if ((pt2.Y > pt1.Y) == (pt2.Y < pt3.Y)) + return DistanceFromLineSqrd(pt2, pt1, pt3) < distSqrd; + else + return DistanceFromLineSqrd(pt3, pt1, pt2) < distSqrd; + } +} +//------------------------------------------------------------------------------ + +bool PointsAreClose(IntPoint pt1, IntPoint pt2, double distSqrd) +{ + double Dx = (double)pt1.X - pt2.X; + double dy = (double)pt1.Y - pt2.Y; + return ((Dx * Dx) + (dy * dy) <= distSqrd); +} +//------------------------------------------------------------------------------ + +OutPt* ExcludeOp(OutPt* op) +{ + OutPt* result = op->Prev; + result->Next = op->Next; + op->Next->Prev = result; + result->Idx = 0; + return result; +} +//------------------------------------------------------------------------------ + +// Simplify a polygon using a linked list of points. +void CleanPolygon(const Path& in_poly, Path& out_poly, double distance) +{ + //distance = proximity in units/pixels below which vertices + //will be stripped. Default ~= sqrt(2). + + size_t size = in_poly.size(); + + if (size == 0) + { + out_poly.clear(); + return; + } + + std::vector<OutPt> outPts(size); + for (size_t i = 0; i < size; ++i) + { + outPts[i].Pt = in_poly[i]; + outPts[i].Next = &outPts[(i + 1) % size]; + outPts[i].Next->Prev = &outPts[i]; + outPts[i].Idx = 0; + } + + double distSqrd = distance * distance; + OutPt* op = &outPts[0]; + while (op->Idx == 0 && op->Next != op->Prev) + { + if (PointsAreClose(op->Pt, op->Prev->Pt, distSqrd)) + { + op = ExcludeOp(op); + size--; + } + else if (PointsAreClose(op->Prev->Pt, op->Next->Pt, distSqrd)) + { + ExcludeOp(op->Next); + op = ExcludeOp(op); + size -= 2; + } + else if (SlopesNearCollinear(op->Prev->Pt, op->Pt, op->Next->Pt, distSqrd)) + { + op = ExcludeOp(op); + size--; + } + else + { + op->Idx = 1; + op = op->Next; + } + } + + if (size < 3) size = 0; + out_poly.resize(size); + for (size_t i = 0; i < size; ++i) + { + out_poly[i] = op->Pt; + op = op->Next; + } +} +//------------------------------------------------------------------------------ + +void CleanPolygon(Path& poly, double distance) +{ + CleanPolygon(poly, poly, distance); +} +//------------------------------------------------------------------------------ + +void CleanPolygons(const Paths& in_polys, Paths& out_polys, double distance) +{ + for (Paths::size_type i = 0; i < in_polys.size(); ++i) + CleanPolygon(in_polys[i], out_polys[i], distance); +} +//------------------------------------------------------------------------------ + +void CleanPolygons(Paths& polys, double distance) +{ + CleanPolygons(polys, polys, distance); +} +//------------------------------------------------------------------------------ + +void Minkowski(const Path& poly, const Path& path, + Paths& solution, bool isSum, bool isClosed) +{ + int delta = (isClosed ? 1 : 0); + size_t polyCnt = poly.size(); + size_t pathCnt = path.size(); + Paths pp; + pp.reserve(pathCnt); + if (isSum) + for (size_t i = 0; i < pathCnt; ++i) + { + Path p; + p.reserve(polyCnt); + for (size_t j = 0; j < poly.size(); ++j) + p.push_back(IntPoint(path[i].X + poly[j].X, path[i].Y + poly[j].Y)); + pp.push_back(p); + } + else + for (size_t i = 0; i < pathCnt; ++i) + { + Path p; + p.reserve(polyCnt); + for (size_t j = 0; j < poly.size(); ++j) + p.push_back(IntPoint(path[i].X - poly[j].X, path[i].Y - poly[j].Y)); + pp.push_back(p); + } + + solution.clear(); + solution.reserve((pathCnt + delta) * (polyCnt + 1)); + for (size_t i = 0; i < pathCnt - 1 + delta; ++i) + for (size_t j = 0; j < polyCnt; ++j) + { + Path quad; + quad.reserve(4); + quad.push_back(pp[i % pathCnt][j % polyCnt]); + quad.push_back(pp[(i + 1) % pathCnt][j % polyCnt]); + quad.push_back(pp[(i + 1) % pathCnt][(j + 1) % polyCnt]); + quad.push_back(pp[i % pathCnt][(j + 1) % polyCnt]); + if (!Orientation(quad)) ReversePath(quad); + solution.push_back(quad); + } +} +//------------------------------------------------------------------------------ + +void MinkowskiSum(const Path& pattern, const Path& path, Paths& solution, bool pathIsClosed) +{ + Minkowski(pattern, path, solution, true, pathIsClosed); + Clipper c; + c.AddPaths(solution, ptSubject, true); + c.Execute(ctUnion, solution, pftNonZero, pftNonZero); +} +//------------------------------------------------------------------------------ + +void TranslatePath(const Path& input, Path& output, const IntPoint& delta) +{ + //precondition: input != output + output.resize(input.size()); + for (size_t i = 0; i < input.size(); ++i) + output[i] = IntPoint(input[i].X + delta.X, input[i].Y + delta.Y); +} +//------------------------------------------------------------------------------ + +void MinkowskiSum(const Path& pattern, const Paths& paths, Paths& solution, bool pathIsClosed) +{ + Clipper c; + for (size_t i = 0; i < paths.size(); ++i) + { + Paths tmp; + Minkowski(pattern, paths[i], tmp, true, pathIsClosed); + c.AddPaths(tmp, ptSubject, true); + if (pathIsClosed) + { + Path tmp2; + TranslatePath(paths[i], tmp2, pattern[0]); + c.AddPath(tmp2, ptClip, true); + } + } + c.Execute(ctUnion, solution, pftNonZero, pftNonZero); +} +//------------------------------------------------------------------------------ + +void MinkowskiDiff(const Path& poly1, const Path& poly2, Paths& solution) +{ + Minkowski(poly1, poly2, solution, false, true); + Clipper c; + c.AddPaths(solution, ptSubject, true); + c.Execute(ctUnion, solution, pftNonZero, pftNonZero); +} +//------------------------------------------------------------------------------ + +enum NodeType {ntAny, ntOpen, ntClosed}; + +void AddPolyNodeToPaths(const PolyNode& polynode, NodeType nodetype, Paths& paths) +{ + bool match = true; + if (nodetype == ntClosed) match = !polynode.IsOpen(); + else if (nodetype == ntOpen) return; + + if (!polynode.Contour.empty() && match) + paths.push_back(polynode.Contour); + for (int i = 0; i < polynode.ChildCount(); ++i) + AddPolyNodeToPaths(*polynode.Childs[i], nodetype, paths); +} +//------------------------------------------------------------------------------ + +void PolyTreeToPaths(const PolyTree& polytree, Paths& paths) +{ + paths.resize(0); + paths.reserve(polytree.Total()); + AddPolyNodeToPaths(polytree, ntAny, paths); +} +//------------------------------------------------------------------------------ + +void ClosedPathsFromPolyTree(const PolyTree& polytree, Paths& paths) +{ + paths.resize(0); + paths.reserve(polytree.Total()); + AddPolyNodeToPaths(polytree, ntClosed, paths); +} +//------------------------------------------------------------------------------ + +void OpenPathsFromPolyTree(PolyTree& polytree, Paths& paths) +{ + paths.resize(0); + paths.reserve(polytree.Total()); + //Open paths are top level only, so ... + for (int i = 0; i < polytree.ChildCount(); ++i) + if (polytree.Childs[i]->IsOpen()) + paths.push_back(polytree.Childs[i]->Contour); +} +//------------------------------------------------------------------------------ + +std::ostream& operator <<(std::ostream &s, const IntPoint &p) +{ + s << "(" << p.X << "," << p.Y << ")"; + return s; +} +//------------------------------------------------------------------------------ + +std::ostream& operator <<(std::ostream &s, const Path &p) +{ + if (p.empty()) return s; + Path::size_type last = p.size() -1; + for (Path::size_type i = 0; i < last; i++) + s << "(" << p[i].X << "," << p[i].Y << "), "; + s << "(" << p[last].X << "," << p[last].Y << ")\n"; + return s; +} +//------------------------------------------------------------------------------ + +std::ostream& operator <<(std::ostream &s, const Paths &p) +{ + for (Paths::size_type i = 0; i < p.size(); i++) + s << p[i]; + s << "\n"; + return s; +} +//------------------------------------------------------------------------------ + +} //ClipperLib namespace diff --git a/xs/src/clipper.hpp b/src/clipper/clipper.hpp index 2e7069619..8a28fe46f 100644 --- a/xs/src/clipper.hpp +++ b/src/clipper/clipper.hpp @@ -1,487 +1,487 @@ -/*******************************************************************************
-* *
-* Author : Angus Johnson *
-* Version : 6.2.9 *
-* Date : 16 February 2015 *
-* Website : http://www.angusj.com *
-* Copyright : Angus Johnson 2010-2015 *
-* *
-* License: *
-* Use, modification & distribution is subject to Boost Software License Ver 1. *
-* http://www.boost.org/LICENSE_1_0.txt *
-* *
-* Attributions: *
-* The code in this library is an extension of Bala Vatti's clipping algorithm: *
-* "A generic solution to polygon clipping" *
-* Communications of the ACM, Vol 35, Issue 7 (July 1992) pp 56-63. *
-* http://portal.acm.org/citation.cfm?id=129906 *
-* *
-* Computer graphics and geometric modeling: implementation and algorithms *
-* By Max K. Agoston *
-* Springer; 1 edition (January 4, 2005) *
-* http://books.google.com/books?q=vatti+clipping+agoston *
-* *
-* See also: *
-* "Polygon Offsetting by Computing Winding Numbers" *
-* Paper no. DETC2005-85513 pp. 565-575 *
-* ASME 2005 International Design Engineering Technical Conferences *
-* and Computers and Information in Engineering Conference (IDETC/CIE2005) *
-* September 24-28, 2005 , Long Beach, California, USA *
-* http://www.me.berkeley.edu/~mcmains/pubs/DAC05OffsetPolygon.pdf *
-* *
-*******************************************************************************/
-
-#ifndef clipper_hpp
-#define clipper_hpp
-
-#include <inttypes.h>
-
-#define CLIPPER_VERSION "6.2.6"
-
-//use_xyz: adds a Z member to IntPoint. Adds a minor cost to perfomance.
-//#define use_xyz
-
-//use_lines: Enables line clipping. Adds a very minor cost to performance.
-#define use_lines
-
-//use_deprecated: Enables temporary support for the obsolete functions
-//#define use_deprecated
-
-#include <vector>
-#include <deque>
-#include <stdexcept>
-#include <cstring>
-#include <cstdlib>
-#include <ostream>
-#include <functional>
-#include <queue>
-
-namespace ClipperLib {
-
-enum ClipType { ctIntersection, ctUnion, ctDifference, ctXor };
-enum PolyType { ptSubject, ptClip };
-//By far the most widely used winding rules for polygon filling are
-//EvenOdd & NonZero (GDI, GDI+, XLib, OpenGL, Cairo, AGG, Quartz, SVG, Gr32)
-//Others rules include Positive, Negative and ABS_GTR_EQ_TWO (only in OpenGL)
-//see http://glprogramming.com/red/chapter11.html
-enum PolyFillType { pftEvenOdd, pftNonZero, pftPositive, pftNegative };
-
-// Point coordinate type
-typedef int64_t cInt;
-// Maximum cInt value to allow a cross product calculation using 32bit expressions.
-static cInt const loRange = 0x3FFFFFFF;
-// Maximum allowed cInt value.
-static cInt const hiRange = 0x3FFFFFFFFFFFFFFFLL;
-
-struct IntPoint {
- cInt X;
- cInt Y;
-#ifdef use_xyz
- cInt Z;
- IntPoint(cInt x = 0, cInt y = 0, cInt z = 0): X(x), Y(y), Z(z) {};
-#else
- IntPoint(cInt x = 0, cInt y = 0): X(x), Y(y) {};
-#endif
-
- friend inline bool operator== (const IntPoint& a, const IntPoint& b)
- {
- return a.X == b.X && a.Y == b.Y;
- }
- friend inline bool operator!= (const IntPoint& a, const IntPoint& b)
- {
- return a.X != b.X || a.Y != b.Y;
- }
-};
-//------------------------------------------------------------------------------
-
-typedef std::vector< IntPoint > Path;
-typedef std::vector< Path > Paths;
-
-inline Path& operator <<(Path& poly, const IntPoint& p) {poly.push_back(p); return poly;}
-inline Paths& operator <<(Paths& polys, const Path& p) {polys.push_back(p); return polys;}
-
-std::ostream& operator <<(std::ostream &s, const IntPoint &p);
-std::ostream& operator <<(std::ostream &s, const Path &p);
-std::ostream& operator <<(std::ostream &s, const Paths &p);
-
-struct DoublePoint
-{
- double X;
- double Y;
- DoublePoint(double x = 0, double y = 0) : X(x), Y(y) {}
- DoublePoint(IntPoint ip) : X((double)ip.X), Y((double)ip.Y) {}
-};
-//------------------------------------------------------------------------------
-
-#ifdef use_xyz
-typedef void (*ZFillCallback)(IntPoint& e1bot, IntPoint& e1top, IntPoint& e2bot, IntPoint& e2top, IntPoint& pt);
-#endif
-
-enum InitOptions {ioReverseSolution = 1, ioStrictlySimple = 2, ioPreserveCollinear = 4};
-enum JoinType {jtSquare, jtRound, jtMiter};
-enum EndType {etClosedPolygon, etClosedLine, etOpenButt, etOpenSquare, etOpenRound};
-
-class PolyNode;
-typedef std::vector< PolyNode* > PolyNodes;
-
-class PolyNode
-{
-public:
- PolyNode() : Childs(), Parent(0), Index(0), m_IsOpen(false) {}
- virtual ~PolyNode(){};
- Path Contour;
- PolyNodes Childs;
- PolyNode* Parent;
- // Traversal of the polygon tree in a depth first fashion.
- PolyNode* GetNext() const { return Childs.empty() ? GetNextSiblingUp() : Childs.front(); }
- bool IsHole() const;
- bool IsOpen() const { return m_IsOpen; }
- int ChildCount() const { return (int)Childs.size(); }
-private:
- unsigned Index; //node index in Parent.Childs
- bool m_IsOpen;
- JoinType m_jointype;
- EndType m_endtype;
- PolyNode* GetNextSiblingUp() const { return Parent ? ((Index == Parent->Childs.size() - 1) ? Parent->GetNextSiblingUp() : Parent->Childs[Index + 1]) : nullptr; }
- void AddChild(PolyNode& child);
- friend class Clipper; //to access Index
- friend class ClipperOffset;
- friend class PolyTree; //to implement the PolyTree::move operator
-};
-
-class PolyTree: public PolyNode
-{
-public:
- PolyTree() {}
- PolyTree(PolyTree &&src) { *this = std::move(src); }
- virtual ~PolyTree(){Clear();};
- PolyTree& operator=(PolyTree &&src) {
- AllNodes = std::move(src.AllNodes);
- Contour = std::move(src.Contour);
- Childs = std::move(src.Childs);
- Parent = nullptr;
- Index = src.Index;
- m_IsOpen = src.m_IsOpen;
- m_jointype = src.m_jointype;
- m_endtype = src.m_endtype;
- for (size_t i = 0; i < Childs.size(); ++ i)
- Childs[i]->Parent = this;
- return *this;
- }
- PolyNode* GetFirst() const { return Childs.empty() ? nullptr : Childs.front(); }
- void Clear() { AllNodes.clear(); Childs.clear(); }
- int Total() const;
-private:
- PolyTree(const PolyTree &src) = delete;
- PolyTree& operator=(const PolyTree &src) = delete;
- std::vector<PolyNode> AllNodes;
- friend class Clipper; //to access AllNodes
-};
-
-double Area(const Path &poly);
-inline bool Orientation(const Path &poly) { return Area(poly) >= 0; }
-int PointInPolygon(const IntPoint &pt, const Path &path);
-
-void SimplifyPolygon(const Path &in_poly, Paths &out_polys, PolyFillType fillType = pftEvenOdd);
-void SimplifyPolygons(const Paths &in_polys, Paths &out_polys, PolyFillType fillType = pftEvenOdd);
-void SimplifyPolygons(Paths &polys, PolyFillType fillType = pftEvenOdd);
-
-void CleanPolygon(const Path& in_poly, Path& out_poly, double distance = 1.415);
-void CleanPolygon(Path& poly, double distance = 1.415);
-void CleanPolygons(const Paths& in_polys, Paths& out_polys, double distance = 1.415);
-void CleanPolygons(Paths& polys, double distance = 1.415);
-
-void MinkowskiSum(const Path& pattern, const Path& path, Paths& solution, bool pathIsClosed);
-void MinkowskiSum(const Path& pattern, const Paths& paths, Paths& solution, bool pathIsClosed);
-void MinkowskiDiff(const Path& poly1, const Path& poly2, Paths& solution);
-
-void PolyTreeToPaths(const PolyTree& polytree, Paths& paths);
-void ClosedPathsFromPolyTree(const PolyTree& polytree, Paths& paths);
-void OpenPathsFromPolyTree(PolyTree& polytree, Paths& paths);
-
-void ReversePath(Path& p);
-void ReversePaths(Paths& p);
-
-struct IntRect { cInt left; cInt top; cInt right; cInt bottom; };
-
-//enums that are used internally ...
-enum EdgeSide { esLeft = 1, esRight = 2};
-
-// namespace Internal {
- //forward declarations (for stuff used internally) ...
- struct TEdge {
- // Bottom point of this edge (with minimum Y).
- IntPoint Bot;
- // Current position.
- IntPoint Curr;
- // Top point of this edge (with maximum Y).
- IntPoint Top;
- // Vector from Bot to Top.
- IntPoint Delta;
- // Slope (dx/dy). For horiontal edges, the slope is set to HORIZONTAL (-1.0E+40).
- double Dx;
- PolyType PolyTyp;
- EdgeSide Side;
- // Winding number delta. 1 or -1 depending on winding direction, 0 for open paths and flat closed paths.
- int WindDelta;
- int WindCnt;
- int WindCnt2; //winding count of the opposite polytype
- int OutIdx;
- // Next edge in the input path.
- TEdge *Next;
- // Previous edge in the input path.
- TEdge *Prev;
- // Next edge in the Local Minima List chain.
- TEdge *NextInLML;
- TEdge *NextInAEL;
- TEdge *PrevInAEL;
- TEdge *NextInSEL;
- TEdge *PrevInSEL;
- };
-
- struct IntersectNode {
- IntersectNode(TEdge *Edge1, TEdge *Edge2, IntPoint Pt) :
- Edge1(Edge1), Edge2(Edge2), Pt(Pt) {}
- TEdge *Edge1;
- TEdge *Edge2;
- IntPoint Pt;
- };
-
- struct LocalMinimum {
- cInt Y;
- TEdge *LeftBound;
- TEdge *RightBound;
- };
-
- // Point of an output polygon.
- // 36B on 64bit system without use_xyz.
- struct OutPt {
- // 4B
- int Idx;
- // 16B without use_xyz / 24B with use_xyz
- IntPoint Pt;
- // 4B on 32bit system, 8B on 64bit system
- OutPt *Next;
- // 4B on 32bit system, 8B on 64bit system
- OutPt *Prev;
- };
-
- struct OutRec;
- struct Join {
- Join(OutPt *OutPt1, OutPt *OutPt2, IntPoint OffPt) :
- OutPt1(OutPt1), OutPt2(OutPt2), OffPt(OffPt) {}
- OutPt *OutPt1;
- OutPt *OutPt2;
- IntPoint OffPt;
- };
-// }; // namespace Internal
-
-//------------------------------------------------------------------------------
-
-//ClipperBase is the ancestor to the Clipper class. It should not be
-//instantiated directly. This class simply abstracts the conversion of sets of
-//polygon coordinates into edge objects that are stored in a LocalMinima list.
-class ClipperBase
-{
-public:
- ClipperBase() : m_UseFullRange(false), m_HasOpenPaths(false) {}
- ~ClipperBase() { Clear(); }
- bool AddPath(const Path &pg, PolyType PolyTyp, bool Closed);
- bool AddPaths(const Paths &ppg, PolyType PolyTyp, bool Closed);
- void Clear();
- IntRect GetBounds();
- // By default, when three or more vertices are collinear in input polygons (subject or clip), the Clipper object removes the 'inner' vertices before clipping.
- // When enabled the PreserveCollinear property prevents this default behavior to allow these inner vertices to appear in the solution.
- bool PreserveCollinear() const {return m_PreserveCollinear;};
- void PreserveCollinear(bool value) {m_PreserveCollinear = value;};
-protected:
- bool AddPathInternal(const Path &pg, int highI, PolyType PolyTyp, bool Closed, TEdge* edges);
- TEdge* AddBoundsToLML(TEdge *e, bool IsClosed);
- void Reset();
- TEdge* ProcessBound(TEdge* E, bool IsClockwise);
- TEdge* DescendToMin(TEdge *&E);
- void AscendToMax(TEdge *&E, bool Appending, bool IsClosed);
-
- // Local minima (Y, left edge, right edge) sorted by ascending Y.
- std::vector<LocalMinimum> m_MinimaList;
-
- // True if the input polygons have abs values higher than loRange, but lower than hiRange.
- // False if the input polygons have abs values lower or equal to loRange.
- bool m_UseFullRange;
- // A vector of edges per each input path.
- std::vector<std::vector<TEdge>> m_edges;
- // Don't remove intermediate vertices of a collinear sequence of points.
- bool m_PreserveCollinear;
- // Is any of the paths inserted by AddPath() or AddPaths() open?
- bool m_HasOpenPaths;
-};
-//------------------------------------------------------------------------------
-
-class Clipper : public ClipperBase
-{
-public:
- Clipper(int initOptions = 0);
- ~Clipper() { Clear(); }
- void Clear() { ClipperBase::Clear(); DisposeAllOutRecs(); }
- bool Execute(ClipType clipType,
- Paths &solution,
- PolyFillType fillType = pftEvenOdd)
- { return Execute(clipType, solution, fillType, fillType); }
- bool Execute(ClipType clipType,
- Paths &solution,
- PolyFillType subjFillType,
- PolyFillType clipFillType);
- bool Execute(ClipType clipType,
- PolyTree &polytree,
- PolyFillType fillType = pftEvenOdd)
- { return Execute(clipType, polytree, fillType, fillType); }
- bool Execute(ClipType clipType,
- PolyTree &polytree,
- PolyFillType subjFillType,
- PolyFillType clipFillType);
- bool ReverseSolution() const { return m_ReverseOutput; };
- void ReverseSolution(bool value) {m_ReverseOutput = value;};
- bool StrictlySimple() const {return m_StrictSimple;};
- void StrictlySimple(bool value) {m_StrictSimple = value;};
- //set the callback function for z value filling on intersections (otherwise Z is 0)
-#ifdef use_xyz
- void ZFillFunction(ZFillCallback zFillFunc) { m_ZFill = zFillFunc; }
-#endif
-protected:
- void Reset();
- virtual bool ExecuteInternal();
-private:
-
- // Output polygons.
- std::vector<OutRec*> m_PolyOuts;
- // Output points, allocated by a continuous sets of m_OutPtsChunkSize.
- std::vector<OutPt*> m_OutPts;
- // List of free output points, to be used before taking a point from m_OutPts or allocating a new chunk.
- OutPt *m_OutPtsFree;
- size_t m_OutPtsChunkSize;
- size_t m_OutPtsChunkLast;
-
- std::vector<Join> m_Joins;
- std::vector<Join> m_GhostJoins;
- std::vector<IntersectNode> m_IntersectList;
- ClipType m_ClipType;
- // A priority queue (a binary heap) of Y coordinates.
- std::priority_queue<cInt> m_Scanbeam;
- // Maxima are collected by ProcessEdgesAtTopOfScanbeam(), consumed by ProcessHorizontal().
- std::vector<cInt> m_Maxima;
- TEdge *m_ActiveEdges;
- TEdge *m_SortedEdges;
- PolyFillType m_ClipFillType;
- PolyFillType m_SubjFillType;
- bool m_ReverseOutput;
- // Does the result go to a PolyTree or Paths?
- bool m_UsingPolyTree;
- bool m_StrictSimple;
-#ifdef use_xyz
- ZFillCallback m_ZFill; //custom callback
-#endif
- void SetWindingCount(TEdge& edge) const;
- bool IsEvenOddFillType(const TEdge& edge) const
- { return (edge.PolyTyp == ptSubject) ? m_SubjFillType == pftEvenOdd : m_ClipFillType == pftEvenOdd; }
- bool IsEvenOddAltFillType(const TEdge& edge) const
- { return (edge.PolyTyp == ptSubject) ? m_ClipFillType == pftEvenOdd : m_SubjFillType == pftEvenOdd; }
- void InsertLocalMinimaIntoAEL(const cInt botY);
- void InsertEdgeIntoAEL(TEdge *edge, TEdge* startEdge);
- void AddEdgeToSEL(TEdge *edge);
- void CopyAELToSEL();
- void DeleteFromSEL(TEdge *e);
- void DeleteFromAEL(TEdge *e);
- void UpdateEdgeIntoAEL(TEdge *&e);
- void SwapPositionsInSEL(TEdge *edge1, TEdge *edge2);
- bool IsContributing(const TEdge& edge) const;
- bool IsTopHorz(const cInt XPos);
- void SwapPositionsInAEL(TEdge *edge1, TEdge *edge2);
- void DoMaxima(TEdge *e);
- void ProcessHorizontals();
- void ProcessHorizontal(TEdge *horzEdge);
- void AddLocalMaxPoly(TEdge *e1, TEdge *e2, const IntPoint &pt);
- OutPt* AddLocalMinPoly(TEdge *e1, TEdge *e2, const IntPoint &pt);
- OutRec* GetOutRec(int idx);
- void AppendPolygon(TEdge *e1, TEdge *e2) const;
- void IntersectEdges(TEdge *e1, TEdge *e2, IntPoint &pt);
- OutRec* CreateOutRec();
- OutPt* AddOutPt(TEdge *e, const IntPoint &pt);
- OutPt* GetLastOutPt(TEdge *e);
- OutPt* AllocateOutPt();
- OutPt* DupOutPt(OutPt* outPt, bool InsertAfter);
- // Add the point to a list of free points.
- void DisposeOutPt(OutPt *pt) { pt->Next = m_OutPtsFree; m_OutPtsFree = pt; }
- void DisposeOutPts(OutPt*& pp) { if (pp != nullptr) { pp->Prev->Next = m_OutPtsFree; m_OutPtsFree = pp; } }
- void DisposeAllOutRecs();
- bool ProcessIntersections(const cInt topY);
- void BuildIntersectList(const cInt topY);
- void ProcessEdgesAtTopOfScanbeam(const cInt topY);
- void BuildResult(Paths& polys);
- void BuildResult2(PolyTree& polytree);
- void SetHoleState(TEdge *e, OutRec *outrec) const;
- bool FixupIntersectionOrder();
- void FixupOutPolygon(OutRec &outrec);
- void FixupOutPolyline(OutRec &outrec);
- bool FindOwnerFromSplitRecs(OutRec &outRec, OutRec *&currOrfl);
- void FixHoleLinkage(OutRec &outrec);
- bool JoinPoints(Join *j, OutRec* outRec1, OutRec* outRec2);
- bool JoinHorz(OutPt* op1, OutPt* op1b, OutPt* op2, OutPt* op2b, const IntPoint &Pt, bool DiscardLeft);
- void JoinCommonEdges();
- void DoSimplePolygons();
- void FixupFirstLefts1(OutRec* OldOutRec, OutRec* NewOutRec) const;
- void FixupFirstLefts2(OutRec* OldOutRec, OutRec* NewOutRec) const;
-#ifdef use_xyz
- void SetZ(IntPoint& pt, TEdge& e1, TEdge& e2);
-#endif
-};
-//------------------------------------------------------------------------------
-
-class ClipperOffset
-{
-public:
- ClipperOffset(double miterLimit = 2.0, double roundPrecision = 0.25, double shortestEdgeLength = 0.) :
- MiterLimit(miterLimit), ArcTolerance(roundPrecision), ShortestEdgeLength(shortestEdgeLength), m_lowest(-1, 0) {}
- ~ClipperOffset() { Clear(); }
- void AddPath(const Path& path, JoinType joinType, EndType endType);
- void AddPaths(const Paths& paths, JoinType joinType, EndType endType);
- void Execute(Paths& solution, double delta);
- void Execute(PolyTree& solution, double delta);
- void Clear();
- double MiterLimit;
- double ArcTolerance;
- double ShortestEdgeLength;
-private:
- Paths m_destPolys;
- Path m_srcPoly;
- Path m_destPoly;
- std::vector<DoublePoint> m_normals;
- double m_delta, m_sinA, m_sin, m_cos;
- double m_miterLim, m_StepsPerRad;
- IntPoint m_lowest;
- PolyNode m_polyNodes;
-
- void FixOrientations();
- void DoOffset(double delta);
- void OffsetPoint(int j, int& k, JoinType jointype);
- void DoSquare(int j, int k);
- void DoMiter(int j, int k, double r);
- void DoRound(int j, int k);
-};
-//------------------------------------------------------------------------------
-
-class clipperException : public std::exception
-{
- public:
- clipperException(const char* description): m_descr(description) {}
- virtual ~clipperException() throw() {}
- virtual const char* what() const throw() {return m_descr.c_str();}
- private:
- std::string m_descr;
-};
-//------------------------------------------------------------------------------
-
-} //ClipperLib namespace
-
-#endif //clipper_hpp
-
-
+/******************************************************************************* +* * +* Author : Angus Johnson * +* Version : 6.2.9 * +* Date : 16 February 2015 * +* Website : http://www.angusj.com * +* Copyright : Angus Johnson 2010-2015 * +* * +* License: * +* Use, modification & distribution is subject to Boost Software License Ver 1. * +* http://www.boost.org/LICENSE_1_0.txt * +* * +* Attributions: * +* The code in this library is an extension of Bala Vatti's clipping algorithm: * +* "A generic solution to polygon clipping" * +* Communications of the ACM, Vol 35, Issue 7 (July 1992) pp 56-63. * +* http://portal.acm.org/citation.cfm?id=129906 * +* * +* Computer graphics and geometric modeling: implementation and algorithms * +* By Max K. Agoston * +* Springer; 1 edition (January 4, 2005) * +* http://books.google.com/books?q=vatti+clipping+agoston * +* * +* See also: * +* "Polygon Offsetting by Computing Winding Numbers" * +* Paper no. DETC2005-85513 pp. 565-575 * +* ASME 2005 International Design Engineering Technical Conferences * +* and Computers and Information in Engineering Conference (IDETC/CIE2005) * +* September 24-28, 2005 , Long Beach, California, USA * +* http://www.me.berkeley.edu/~mcmains/pubs/DAC05OffsetPolygon.pdf * +* * +*******************************************************************************/ + +#ifndef clipper_hpp +#define clipper_hpp + +#include <inttypes.h> + +#define CLIPPER_VERSION "6.2.6" + +//use_xyz: adds a Z member to IntPoint. Adds a minor cost to perfomance. +//#define use_xyz + +//use_lines: Enables line clipping. Adds a very minor cost to performance. +#define use_lines + +//use_deprecated: Enables temporary support for the obsolete functions +//#define use_deprecated + +#include <vector> +#include <deque> +#include <stdexcept> +#include <cstring> +#include <cstdlib> +#include <ostream> +#include <functional> +#include <queue> + +namespace ClipperLib { + +enum ClipType { ctIntersection, ctUnion, ctDifference, ctXor }; +enum PolyType { ptSubject, ptClip }; +//By far the most widely used winding rules for polygon filling are +//EvenOdd & NonZero (GDI, GDI+, XLib, OpenGL, Cairo, AGG, Quartz, SVG, Gr32) +//Others rules include Positive, Negative and ABS_GTR_EQ_TWO (only in OpenGL) +//see http://glprogramming.com/red/chapter11.html +enum PolyFillType { pftEvenOdd, pftNonZero, pftPositive, pftNegative }; + +// Point coordinate type +typedef int64_t cInt; +// Maximum cInt value to allow a cross product calculation using 32bit expressions. +static cInt const loRange = 0x3FFFFFFF; +// Maximum allowed cInt value. +static cInt const hiRange = 0x3FFFFFFFFFFFFFFFLL; + +struct IntPoint { + cInt X; + cInt Y; +#ifdef use_xyz + cInt Z; + IntPoint(cInt x = 0, cInt y = 0, cInt z = 0): X(x), Y(y), Z(z) {}; +#else + IntPoint(cInt x = 0, cInt y = 0): X(x), Y(y) {}; +#endif + + friend inline bool operator== (const IntPoint& a, const IntPoint& b) + { + return a.X == b.X && a.Y == b.Y; + } + friend inline bool operator!= (const IntPoint& a, const IntPoint& b) + { + return a.X != b.X || a.Y != b.Y; + } +}; +//------------------------------------------------------------------------------ + +typedef std::vector< IntPoint > Path; +typedef std::vector< Path > Paths; + +inline Path& operator <<(Path& poly, const IntPoint& p) {poly.push_back(p); return poly;} +inline Paths& operator <<(Paths& polys, const Path& p) {polys.push_back(p); return polys;} + +std::ostream& operator <<(std::ostream &s, const IntPoint &p); +std::ostream& operator <<(std::ostream &s, const Path &p); +std::ostream& operator <<(std::ostream &s, const Paths &p); + +struct DoublePoint +{ + double X; + double Y; + DoublePoint(double x = 0, double y = 0) : X(x), Y(y) {} + DoublePoint(IntPoint ip) : X((double)ip.X), Y((double)ip.Y) {} +}; +//------------------------------------------------------------------------------ + +#ifdef use_xyz +typedef void (*ZFillCallback)(IntPoint& e1bot, IntPoint& e1top, IntPoint& e2bot, IntPoint& e2top, IntPoint& pt); +#endif + +enum InitOptions {ioReverseSolution = 1, ioStrictlySimple = 2, ioPreserveCollinear = 4}; +enum JoinType {jtSquare, jtRound, jtMiter}; +enum EndType {etClosedPolygon, etClosedLine, etOpenButt, etOpenSquare, etOpenRound}; + +class PolyNode; +typedef std::vector< PolyNode* > PolyNodes; + +class PolyNode +{ +public: + PolyNode() : Childs(), Parent(0), Index(0), m_IsOpen(false) {} + virtual ~PolyNode(){}; + Path Contour; + PolyNodes Childs; + PolyNode* Parent; + // Traversal of the polygon tree in a depth first fashion. + PolyNode* GetNext() const { return Childs.empty() ? GetNextSiblingUp() : Childs.front(); } + bool IsHole() const; + bool IsOpen() const { return m_IsOpen; } + int ChildCount() const { return (int)Childs.size(); } +private: + unsigned Index; //node index in Parent.Childs + bool m_IsOpen; + JoinType m_jointype; + EndType m_endtype; + PolyNode* GetNextSiblingUp() const { return Parent ? ((Index == Parent->Childs.size() - 1) ? Parent->GetNextSiblingUp() : Parent->Childs[Index + 1]) : nullptr; } + void AddChild(PolyNode& child); + friend class Clipper; //to access Index + friend class ClipperOffset; + friend class PolyTree; //to implement the PolyTree::move operator +}; + +class PolyTree: public PolyNode +{ +public: + PolyTree() {} + PolyTree(PolyTree &&src) { *this = std::move(src); } + virtual ~PolyTree(){Clear();}; + PolyTree& operator=(PolyTree &&src) { + AllNodes = std::move(src.AllNodes); + Contour = std::move(src.Contour); + Childs = std::move(src.Childs); + Parent = nullptr; + Index = src.Index; + m_IsOpen = src.m_IsOpen; + m_jointype = src.m_jointype; + m_endtype = src.m_endtype; + for (size_t i = 0; i < Childs.size(); ++ i) + Childs[i]->Parent = this; + return *this; + } + PolyNode* GetFirst() const { return Childs.empty() ? nullptr : Childs.front(); } + void Clear() { AllNodes.clear(); Childs.clear(); } + int Total() const; +private: + PolyTree(const PolyTree &src) = delete; + PolyTree& operator=(const PolyTree &src) = delete; + std::vector<PolyNode> AllNodes; + friend class Clipper; //to access AllNodes +}; + +double Area(const Path &poly); +inline bool Orientation(const Path &poly) { return Area(poly) >= 0; } +int PointInPolygon(const IntPoint &pt, const Path &path); + +void SimplifyPolygon(const Path &in_poly, Paths &out_polys, PolyFillType fillType = pftEvenOdd); +void SimplifyPolygons(const Paths &in_polys, Paths &out_polys, PolyFillType fillType = pftEvenOdd); +void SimplifyPolygons(Paths &polys, PolyFillType fillType = pftEvenOdd); + +void CleanPolygon(const Path& in_poly, Path& out_poly, double distance = 1.415); +void CleanPolygon(Path& poly, double distance = 1.415); +void CleanPolygons(const Paths& in_polys, Paths& out_polys, double distance = 1.415); +void CleanPolygons(Paths& polys, double distance = 1.415); + +void MinkowskiSum(const Path& pattern, const Path& path, Paths& solution, bool pathIsClosed); +void MinkowskiSum(const Path& pattern, const Paths& paths, Paths& solution, bool pathIsClosed); +void MinkowskiDiff(const Path& poly1, const Path& poly2, Paths& solution); + +void PolyTreeToPaths(const PolyTree& polytree, Paths& paths); +void ClosedPathsFromPolyTree(const PolyTree& polytree, Paths& paths); +void OpenPathsFromPolyTree(PolyTree& polytree, Paths& paths); + +void ReversePath(Path& p); +void ReversePaths(Paths& p); + +struct IntRect { cInt left; cInt top; cInt right; cInt bottom; }; + +//enums that are used internally ... +enum EdgeSide { esLeft = 1, esRight = 2}; + +// namespace Internal { + //forward declarations (for stuff used internally) ... + struct TEdge { + // Bottom point of this edge (with minimum Y). + IntPoint Bot; + // Current position. + IntPoint Curr; + // Top point of this edge (with maximum Y). + IntPoint Top; + // Vector from Bot to Top. + IntPoint Delta; + // Slope (dx/dy). For horiontal edges, the slope is set to HORIZONTAL (-1.0E+40). + double Dx; + PolyType PolyTyp; + EdgeSide Side; + // Winding number delta. 1 or -1 depending on winding direction, 0 for open paths and flat closed paths. + int WindDelta; + int WindCnt; + int WindCnt2; //winding count of the opposite polytype + int OutIdx; + // Next edge in the input path. + TEdge *Next; + // Previous edge in the input path. + TEdge *Prev; + // Next edge in the Local Minima List chain. + TEdge *NextInLML; + TEdge *NextInAEL; + TEdge *PrevInAEL; + TEdge *NextInSEL; + TEdge *PrevInSEL; + }; + + struct IntersectNode { + IntersectNode(TEdge *Edge1, TEdge *Edge2, IntPoint Pt) : + Edge1(Edge1), Edge2(Edge2), Pt(Pt) {} + TEdge *Edge1; + TEdge *Edge2; + IntPoint Pt; + }; + + struct LocalMinimum { + cInt Y; + TEdge *LeftBound; + TEdge *RightBound; + }; + + // Point of an output polygon. + // 36B on 64bit system without use_xyz. + struct OutPt { + // 4B + int Idx; + // 16B without use_xyz / 24B with use_xyz + IntPoint Pt; + // 4B on 32bit system, 8B on 64bit system + OutPt *Next; + // 4B on 32bit system, 8B on 64bit system + OutPt *Prev; + }; + + struct OutRec; + struct Join { + Join(OutPt *OutPt1, OutPt *OutPt2, IntPoint OffPt) : + OutPt1(OutPt1), OutPt2(OutPt2), OffPt(OffPt) {} + OutPt *OutPt1; + OutPt *OutPt2; + IntPoint OffPt; + }; +// }; // namespace Internal + +//------------------------------------------------------------------------------ + +//ClipperBase is the ancestor to the Clipper class. It should not be +//instantiated directly. This class simply abstracts the conversion of sets of +//polygon coordinates into edge objects that are stored in a LocalMinima list. +class ClipperBase +{ +public: + ClipperBase() : m_UseFullRange(false), m_HasOpenPaths(false) {} + ~ClipperBase() { Clear(); } + bool AddPath(const Path &pg, PolyType PolyTyp, bool Closed); + bool AddPaths(const Paths &ppg, PolyType PolyTyp, bool Closed); + void Clear(); + IntRect GetBounds(); + // By default, when three or more vertices are collinear in input polygons (subject or clip), the Clipper object removes the 'inner' vertices before clipping. + // When enabled the PreserveCollinear property prevents this default behavior to allow these inner vertices to appear in the solution. + bool PreserveCollinear() const {return m_PreserveCollinear;}; + void PreserveCollinear(bool value) {m_PreserveCollinear = value;}; +protected: + bool AddPathInternal(const Path &pg, int highI, PolyType PolyTyp, bool Closed, TEdge* edges); + TEdge* AddBoundsToLML(TEdge *e, bool IsClosed); + void Reset(); + TEdge* ProcessBound(TEdge* E, bool IsClockwise); + TEdge* DescendToMin(TEdge *&E); + void AscendToMax(TEdge *&E, bool Appending, bool IsClosed); + + // Local minima (Y, left edge, right edge) sorted by ascending Y. + std::vector<LocalMinimum> m_MinimaList; + + // True if the input polygons have abs values higher than loRange, but lower than hiRange. + // False if the input polygons have abs values lower or equal to loRange. + bool m_UseFullRange; + // A vector of edges per each input path. + std::vector<std::vector<TEdge>> m_edges; + // Don't remove intermediate vertices of a collinear sequence of points. + bool m_PreserveCollinear; + // Is any of the paths inserted by AddPath() or AddPaths() open? + bool m_HasOpenPaths; +}; +//------------------------------------------------------------------------------ + +class Clipper : public ClipperBase +{ +public: + Clipper(int initOptions = 0); + ~Clipper() { Clear(); } + void Clear() { ClipperBase::Clear(); DisposeAllOutRecs(); } + bool Execute(ClipType clipType, + Paths &solution, + PolyFillType fillType = pftEvenOdd) + { return Execute(clipType, solution, fillType, fillType); } + bool Execute(ClipType clipType, + Paths &solution, + PolyFillType subjFillType, + PolyFillType clipFillType); + bool Execute(ClipType clipType, + PolyTree &polytree, + PolyFillType fillType = pftEvenOdd) + { return Execute(clipType, polytree, fillType, fillType); } + bool Execute(ClipType clipType, + PolyTree &polytree, + PolyFillType subjFillType, + PolyFillType clipFillType); + bool ReverseSolution() const { return m_ReverseOutput; }; + void ReverseSolution(bool value) {m_ReverseOutput = value;}; + bool StrictlySimple() const {return m_StrictSimple;}; + void StrictlySimple(bool value) {m_StrictSimple = value;}; + //set the callback function for z value filling on intersections (otherwise Z is 0) +#ifdef use_xyz + void ZFillFunction(ZFillCallback zFillFunc) { m_ZFill = zFillFunc; } +#endif +protected: + void Reset(); + virtual bool ExecuteInternal(); +private: + + // Output polygons. + std::vector<OutRec*> m_PolyOuts; + // Output points, allocated by a continuous sets of m_OutPtsChunkSize. + std::vector<OutPt*> m_OutPts; + // List of free output points, to be used before taking a point from m_OutPts or allocating a new chunk. + OutPt *m_OutPtsFree; + size_t m_OutPtsChunkSize; + size_t m_OutPtsChunkLast; + + std::vector<Join> m_Joins; + std::vector<Join> m_GhostJoins; + std::vector<IntersectNode> m_IntersectList; + ClipType m_ClipType; + // A priority queue (a binary heap) of Y coordinates. + std::priority_queue<cInt> m_Scanbeam; + // Maxima are collected by ProcessEdgesAtTopOfScanbeam(), consumed by ProcessHorizontal(). + std::vector<cInt> m_Maxima; + TEdge *m_ActiveEdges; + TEdge *m_SortedEdges; + PolyFillType m_ClipFillType; + PolyFillType m_SubjFillType; + bool m_ReverseOutput; + // Does the result go to a PolyTree or Paths? + bool m_UsingPolyTree; + bool m_StrictSimple; +#ifdef use_xyz + ZFillCallback m_ZFill; //custom callback +#endif + void SetWindingCount(TEdge& edge) const; + bool IsEvenOddFillType(const TEdge& edge) const + { return (edge.PolyTyp == ptSubject) ? m_SubjFillType == pftEvenOdd : m_ClipFillType == pftEvenOdd; } + bool IsEvenOddAltFillType(const TEdge& edge) const + { return (edge.PolyTyp == ptSubject) ? m_ClipFillType == pftEvenOdd : m_SubjFillType == pftEvenOdd; } + void InsertLocalMinimaIntoAEL(const cInt botY); + void InsertEdgeIntoAEL(TEdge *edge, TEdge* startEdge); + void AddEdgeToSEL(TEdge *edge); + void CopyAELToSEL(); + void DeleteFromSEL(TEdge *e); + void DeleteFromAEL(TEdge *e); + void UpdateEdgeIntoAEL(TEdge *&e); + void SwapPositionsInSEL(TEdge *edge1, TEdge *edge2); + bool IsContributing(const TEdge& edge) const; + bool IsTopHorz(const cInt XPos); + void SwapPositionsInAEL(TEdge *edge1, TEdge *edge2); + void DoMaxima(TEdge *e); + void ProcessHorizontals(); + void ProcessHorizontal(TEdge *horzEdge); + void AddLocalMaxPoly(TEdge *e1, TEdge *e2, const IntPoint &pt); + OutPt* AddLocalMinPoly(TEdge *e1, TEdge *e2, const IntPoint &pt); + OutRec* GetOutRec(int idx); + void AppendPolygon(TEdge *e1, TEdge *e2) const; + void IntersectEdges(TEdge *e1, TEdge *e2, IntPoint &pt); + OutRec* CreateOutRec(); + OutPt* AddOutPt(TEdge *e, const IntPoint &pt); + OutPt* GetLastOutPt(TEdge *e); + OutPt* AllocateOutPt(); + OutPt* DupOutPt(OutPt* outPt, bool InsertAfter); + // Add the point to a list of free points. + void DisposeOutPt(OutPt *pt) { pt->Next = m_OutPtsFree; m_OutPtsFree = pt; } + void DisposeOutPts(OutPt*& pp) { if (pp != nullptr) { pp->Prev->Next = m_OutPtsFree; m_OutPtsFree = pp; } } + void DisposeAllOutRecs(); + bool ProcessIntersections(const cInt topY); + void BuildIntersectList(const cInt topY); + void ProcessEdgesAtTopOfScanbeam(const cInt topY); + void BuildResult(Paths& polys); + void BuildResult2(PolyTree& polytree); + void SetHoleState(TEdge *e, OutRec *outrec) const; + bool FixupIntersectionOrder(); + void FixupOutPolygon(OutRec &outrec); + void FixupOutPolyline(OutRec &outrec); + bool FindOwnerFromSplitRecs(OutRec &outRec, OutRec *&currOrfl); + void FixHoleLinkage(OutRec &outrec); + bool JoinPoints(Join *j, OutRec* outRec1, OutRec* outRec2); + bool JoinHorz(OutPt* op1, OutPt* op1b, OutPt* op2, OutPt* op2b, const IntPoint &Pt, bool DiscardLeft); + void JoinCommonEdges(); + void DoSimplePolygons(); + void FixupFirstLefts1(OutRec* OldOutRec, OutRec* NewOutRec) const; + void FixupFirstLefts2(OutRec* OldOutRec, OutRec* NewOutRec) const; +#ifdef use_xyz + void SetZ(IntPoint& pt, TEdge& e1, TEdge& e2); +#endif +}; +//------------------------------------------------------------------------------ + +class ClipperOffset +{ +public: + ClipperOffset(double miterLimit = 2.0, double roundPrecision = 0.25, double shortestEdgeLength = 0.) : + MiterLimit(miterLimit), ArcTolerance(roundPrecision), ShortestEdgeLength(shortestEdgeLength), m_lowest(-1, 0) {} + ~ClipperOffset() { Clear(); } + void AddPath(const Path& path, JoinType joinType, EndType endType); + void AddPaths(const Paths& paths, JoinType joinType, EndType endType); + void Execute(Paths& solution, double delta); + void Execute(PolyTree& solution, double delta); + void Clear(); + double MiterLimit; + double ArcTolerance; + double ShortestEdgeLength; +private: + Paths m_destPolys; + Path m_srcPoly; + Path m_destPoly; + std::vector<DoublePoint> m_normals; + double m_delta, m_sinA, m_sin, m_cos; + double m_miterLim, m_StepsPerRad; + IntPoint m_lowest; + PolyNode m_polyNodes; + + void FixOrientations(); + void DoOffset(double delta); + void OffsetPoint(int j, int& k, JoinType jointype); + void DoSquare(int j, int k); + void DoMiter(int j, int k, double r); + void DoRound(int j, int k); +}; +//------------------------------------------------------------------------------ + +class clipperException : public std::exception +{ + public: + clipperException(const char* description): m_descr(description) {} + virtual ~clipperException() throw() {} + virtual const char* what() const throw() {return m_descr.c_str();} + private: + std::string m_descr; +}; +//------------------------------------------------------------------------------ + +} //ClipperLib namespace + +#endif //clipper_hpp + + diff --git a/xs/src/eigen/COPYING.README b/src/eigen/COPYING.README index de5b63215..de5b63215 100644 --- a/xs/src/eigen/COPYING.README +++ b/src/eigen/COPYING.README diff --git a/xs/src/eigen/Eigen/CMakeLists.txt b/src/eigen/Eigen/CMakeLists.txt index 9eb502b79..9eb502b79 100644 --- a/xs/src/eigen/Eigen/CMakeLists.txt +++ b/src/eigen/Eigen/CMakeLists.txt diff --git a/xs/src/eigen/Eigen/Cholesky b/src/eigen/Eigen/Cholesky index 1332b540d..1332b540d 100644 --- a/xs/src/eigen/Eigen/Cholesky +++ b/src/eigen/Eigen/Cholesky diff --git a/xs/src/eigen/Eigen/CholmodSupport b/src/eigen/Eigen/CholmodSupport index bed8924d3..bed8924d3 100644 --- a/xs/src/eigen/Eigen/CholmodSupport +++ b/src/eigen/Eigen/CholmodSupport diff --git a/xs/src/eigen/Eigen/Core b/src/eigen/Eigen/Core index 4d4901e03..4d4901e03 100644 --- a/xs/src/eigen/Eigen/Core +++ b/src/eigen/Eigen/Core diff --git a/xs/src/eigen/Eigen/Dense b/src/eigen/Eigen/Dense index 5768910bd..5768910bd 100644 --- a/xs/src/eigen/Eigen/Dense +++ b/src/eigen/Eigen/Dense diff --git a/xs/src/eigen/Eigen/Eigen b/src/eigen/Eigen/Eigen index 654c8dc63..654c8dc63 100644 --- a/xs/src/eigen/Eigen/Eigen +++ b/src/eigen/Eigen/Eigen diff --git a/xs/src/eigen/Eigen/Eigenvalues b/src/eigen/Eigen/Eigenvalues index f3f661b07..f3f661b07 100644 --- a/xs/src/eigen/Eigen/Eigenvalues +++ b/src/eigen/Eigen/Eigenvalues diff --git a/xs/src/eigen/Eigen/Geometry b/src/eigen/Eigen/Geometry index 716d52952..716d52952 100644 --- a/xs/src/eigen/Eigen/Geometry +++ b/src/eigen/Eigen/Geometry diff --git a/xs/src/eigen/Eigen/Householder b/src/eigen/Eigen/Householder index 89cd81b1a..89cd81b1a 100644 --- a/xs/src/eigen/Eigen/Householder +++ b/src/eigen/Eigen/Householder diff --git a/xs/src/eigen/Eigen/IterativeLinearSolvers b/src/eigen/Eigen/IterativeLinearSolvers index 957d5750b..957d5750b 100644 --- a/xs/src/eigen/Eigen/IterativeLinearSolvers +++ b/src/eigen/Eigen/IterativeLinearSolvers diff --git a/xs/src/eigen/Eigen/Jacobi b/src/eigen/Eigen/Jacobi index 17c1d785a..17c1d785a 100644 --- a/xs/src/eigen/Eigen/Jacobi +++ b/src/eigen/Eigen/Jacobi diff --git a/xs/src/eigen/Eigen/LU b/src/eigen/Eigen/LU index 6418a86e1..6418a86e1 100644 --- a/xs/src/eigen/Eigen/LU +++ b/src/eigen/Eigen/LU diff --git a/xs/src/eigen/Eigen/MetisSupport b/src/eigen/Eigen/MetisSupport index 85c41bf34..85c41bf34 100644 --- a/xs/src/eigen/Eigen/MetisSupport +++ b/src/eigen/Eigen/MetisSupport diff --git a/xs/src/eigen/Eigen/OrderingMethods b/src/eigen/Eigen/OrderingMethods index d8ea36193..d8ea36193 100644 --- a/xs/src/eigen/Eigen/OrderingMethods +++ b/src/eigen/Eigen/OrderingMethods diff --git a/xs/src/eigen/Eigen/PaStiXSupport b/src/eigen/Eigen/PaStiXSupport index de3a63b4d..de3a63b4d 100644 --- a/xs/src/eigen/Eigen/PaStiXSupport +++ b/src/eigen/Eigen/PaStiXSupport diff --git a/xs/src/eigen/Eigen/PardisoSupport b/src/eigen/Eigen/PardisoSupport index 340edf51f..340edf51f 100644 --- a/xs/src/eigen/Eigen/PardisoSupport +++ b/src/eigen/Eigen/PardisoSupport diff --git a/xs/src/eigen/Eigen/QR b/src/eigen/Eigen/QR index c7e914469..c7e914469 100644 --- a/xs/src/eigen/Eigen/QR +++ b/src/eigen/Eigen/QR diff --git a/xs/src/eigen/Eigen/QtAlignedMalloc b/src/eigen/Eigen/QtAlignedMalloc index 4f07df02a..4f07df02a 100644 --- a/xs/src/eigen/Eigen/QtAlignedMalloc +++ b/src/eigen/Eigen/QtAlignedMalloc diff --git a/xs/src/eigen/Eigen/SPQRSupport b/src/eigen/Eigen/SPQRSupport index f70390c17..f70390c17 100644 --- a/xs/src/eigen/Eigen/SPQRSupport +++ b/src/eigen/Eigen/SPQRSupport diff --git a/xs/src/eigen/Eigen/SVD b/src/eigen/Eigen/SVD index 5d0e75f7f..5d0e75f7f 100644 --- a/xs/src/eigen/Eigen/SVD +++ b/src/eigen/Eigen/SVD diff --git a/xs/src/eigen/Eigen/Sparse b/src/eigen/Eigen/Sparse index 136e681a1..136e681a1 100644 --- a/xs/src/eigen/Eigen/Sparse +++ b/src/eigen/Eigen/Sparse diff --git a/xs/src/eigen/Eigen/SparseCholesky b/src/eigen/Eigen/SparseCholesky index b6a320c40..b6a320c40 100644 --- a/xs/src/eigen/Eigen/SparseCholesky +++ b/src/eigen/Eigen/SparseCholesky diff --git a/xs/src/eigen/Eigen/SparseCore b/src/eigen/Eigen/SparseCore index 76966c4c4..76966c4c4 100644 --- a/xs/src/eigen/Eigen/SparseCore +++ b/src/eigen/Eigen/SparseCore diff --git a/xs/src/eigen/Eigen/SparseLU b/src/eigen/Eigen/SparseLU index 38b38b531..38b38b531 100644 --- a/xs/src/eigen/Eigen/SparseLU +++ b/src/eigen/Eigen/SparseLU diff --git a/xs/src/eigen/Eigen/SparseQR b/src/eigen/Eigen/SparseQR index a6f3b7f7d..a6f3b7f7d 100644 --- a/xs/src/eigen/Eigen/SparseQR +++ b/src/eigen/Eigen/SparseQR diff --git a/xs/src/eigen/Eigen/StdDeque b/src/eigen/Eigen/StdDeque index bc68397be..bc68397be 100644 --- a/xs/src/eigen/Eigen/StdDeque +++ b/src/eigen/Eigen/StdDeque diff --git a/xs/src/eigen/Eigen/StdList b/src/eigen/Eigen/StdList index 4c6262c08..4c6262c08 100644 --- a/xs/src/eigen/Eigen/StdList +++ b/src/eigen/Eigen/StdList diff --git a/xs/src/eigen/Eigen/StdVector b/src/eigen/Eigen/StdVector index 0c4697ad5..0c4697ad5 100644 --- a/xs/src/eigen/Eigen/StdVector +++ b/src/eigen/Eigen/StdVector diff --git a/xs/src/eigen/Eigen/SuperLUSupport b/src/eigen/Eigen/SuperLUSupport index 59312a82d..59312a82d 100644 --- a/xs/src/eigen/Eigen/SuperLUSupport +++ b/src/eigen/Eigen/SuperLUSupport diff --git a/xs/src/eigen/Eigen/UmfPackSupport b/src/eigen/Eigen/UmfPackSupport index 00eec8087..00eec8087 100644 --- a/xs/src/eigen/Eigen/UmfPackSupport +++ b/src/eigen/Eigen/UmfPackSupport diff --git a/xs/src/eigen/Eigen/src/Cholesky/LDLT.h b/src/eigen/Eigen/src/Cholesky/LDLT.h index 0313a54bf..0313a54bf 100644 --- a/xs/src/eigen/Eigen/src/Cholesky/LDLT.h +++ b/src/eigen/Eigen/src/Cholesky/LDLT.h diff --git a/xs/src/eigen/Eigen/src/Cholesky/LLT.h b/src/eigen/Eigen/src/Cholesky/LLT.h index e1624d21b..e1624d21b 100644 --- a/xs/src/eigen/Eigen/src/Cholesky/LLT.h +++ b/src/eigen/Eigen/src/Cholesky/LLT.h diff --git a/xs/src/eigen/Eigen/src/Cholesky/LLT_LAPACKE.h b/src/eigen/Eigen/src/Cholesky/LLT_LAPACKE.h index bc6489e69..bc6489e69 100644 --- a/xs/src/eigen/Eigen/src/Cholesky/LLT_LAPACKE.h +++ b/src/eigen/Eigen/src/Cholesky/LLT_LAPACKE.h diff --git a/xs/src/eigen/Eigen/src/CholmodSupport/CholmodSupport.h b/src/eigen/Eigen/src/CholmodSupport/CholmodSupport.h index 571972023..571972023 100644 --- a/xs/src/eigen/Eigen/src/CholmodSupport/CholmodSupport.h +++ b/src/eigen/Eigen/src/CholmodSupport/CholmodSupport.h diff --git a/xs/src/eigen/Eigen/src/Core/Array.h b/src/eigen/Eigen/src/Core/Array.h index e10020d4f..e10020d4f 100644 --- a/xs/src/eigen/Eigen/src/Core/Array.h +++ b/src/eigen/Eigen/src/Core/Array.h diff --git a/xs/src/eigen/Eigen/src/Core/ArrayBase.h b/src/eigen/Eigen/src/Core/ArrayBase.h index 3dbc7084c..3dbc7084c 100644 --- a/xs/src/eigen/Eigen/src/Core/ArrayBase.h +++ b/src/eigen/Eigen/src/Core/ArrayBase.h diff --git a/xs/src/eigen/Eigen/src/Core/ArrayWrapper.h b/src/eigen/Eigen/src/Core/ArrayWrapper.h index 688aadd62..688aadd62 100644 --- a/xs/src/eigen/Eigen/src/Core/ArrayWrapper.h +++ b/src/eigen/Eigen/src/Core/ArrayWrapper.h diff --git a/xs/src/eigen/Eigen/src/Core/Assign.h b/src/eigen/Eigen/src/Core/Assign.h index 53806ba33..53806ba33 100644 --- a/xs/src/eigen/Eigen/src/Core/Assign.h +++ b/src/eigen/Eigen/src/Core/Assign.h diff --git a/xs/src/eigen/Eigen/src/Core/AssignEvaluator.h b/src/eigen/Eigen/src/Core/AssignEvaluator.h index dbe435d86..dbe435d86 100644 --- a/xs/src/eigen/Eigen/src/Core/AssignEvaluator.h +++ b/src/eigen/Eigen/src/Core/AssignEvaluator.h diff --git a/xs/src/eigen/Eigen/src/Core/Assign_MKL.h b/src/eigen/Eigen/src/Core/Assign_MKL.h index 6866095bf..6866095bf 100644 --- a/xs/src/eigen/Eigen/src/Core/Assign_MKL.h +++ b/src/eigen/Eigen/src/Core/Assign_MKL.h diff --git a/xs/src/eigen/Eigen/src/Core/BandMatrix.h b/src/eigen/Eigen/src/Core/BandMatrix.h index 4978c9140..4978c9140 100644 --- a/xs/src/eigen/Eigen/src/Core/BandMatrix.h +++ b/src/eigen/Eigen/src/Core/BandMatrix.h diff --git a/xs/src/eigen/Eigen/src/Core/Block.h b/src/eigen/Eigen/src/Core/Block.h index 11de45c2e..11de45c2e 100644 --- a/xs/src/eigen/Eigen/src/Core/Block.h +++ b/src/eigen/Eigen/src/Core/Block.h diff --git a/xs/src/eigen/Eigen/src/Core/BooleanRedux.h b/src/eigen/Eigen/src/Core/BooleanRedux.h index 8409d8749..8409d8749 100644 --- a/xs/src/eigen/Eigen/src/Core/BooleanRedux.h +++ b/src/eigen/Eigen/src/Core/BooleanRedux.h diff --git a/xs/src/eigen/Eigen/src/Core/CommaInitializer.h b/src/eigen/Eigen/src/Core/CommaInitializer.h index d218e9814..d218e9814 100644 --- a/xs/src/eigen/Eigen/src/Core/CommaInitializer.h +++ b/src/eigen/Eigen/src/Core/CommaInitializer.h diff --git a/xs/src/eigen/Eigen/src/Core/ConditionEstimator.h b/src/eigen/Eigen/src/Core/ConditionEstimator.h index aa7efdc76..aa7efdc76 100644 --- a/xs/src/eigen/Eigen/src/Core/ConditionEstimator.h +++ b/src/eigen/Eigen/src/Core/ConditionEstimator.h diff --git a/xs/src/eigen/Eigen/src/Core/CoreEvaluators.h b/src/eigen/Eigen/src/Core/CoreEvaluators.h index 910889efa..910889efa 100644 --- a/xs/src/eigen/Eigen/src/Core/CoreEvaluators.h +++ b/src/eigen/Eigen/src/Core/CoreEvaluators.h diff --git a/xs/src/eigen/Eigen/src/Core/CoreIterators.h b/src/eigen/Eigen/src/Core/CoreIterators.h index 4eb42b93a..4eb42b93a 100644 --- a/xs/src/eigen/Eigen/src/Core/CoreIterators.h +++ b/src/eigen/Eigen/src/Core/CoreIterators.h diff --git a/xs/src/eigen/Eigen/src/Core/CwiseBinaryOp.h b/src/eigen/Eigen/src/Core/CwiseBinaryOp.h index a36765e39..a36765e39 100644 --- a/xs/src/eigen/Eigen/src/Core/CwiseBinaryOp.h +++ b/src/eigen/Eigen/src/Core/CwiseBinaryOp.h diff --git a/xs/src/eigen/Eigen/src/Core/CwiseNullaryOp.h b/src/eigen/Eigen/src/Core/CwiseNullaryOp.h index ddd607e38..ddd607e38 100644 --- a/xs/src/eigen/Eigen/src/Core/CwiseNullaryOp.h +++ b/src/eigen/Eigen/src/Core/CwiseNullaryOp.h diff --git a/xs/src/eigen/Eigen/src/Core/CwiseTernaryOp.h b/src/eigen/Eigen/src/Core/CwiseTernaryOp.h index 9f3576fec..9f3576fec 100644 --- a/xs/src/eigen/Eigen/src/Core/CwiseTernaryOp.h +++ b/src/eigen/Eigen/src/Core/CwiseTernaryOp.h diff --git a/xs/src/eigen/Eigen/src/Core/CwiseUnaryOp.h b/src/eigen/Eigen/src/Core/CwiseUnaryOp.h index 1d2dd19f2..1d2dd19f2 100644 --- a/xs/src/eigen/Eigen/src/Core/CwiseUnaryOp.h +++ b/src/eigen/Eigen/src/Core/CwiseUnaryOp.h diff --git a/xs/src/eigen/Eigen/src/Core/CwiseUnaryView.h b/src/eigen/Eigen/src/Core/CwiseUnaryView.h index 271033056..271033056 100644 --- a/xs/src/eigen/Eigen/src/Core/CwiseUnaryView.h +++ b/src/eigen/Eigen/src/Core/CwiseUnaryView.h diff --git a/xs/src/eigen/Eigen/src/Core/DenseBase.h b/src/eigen/Eigen/src/Core/DenseBase.h index 90066ae73..90066ae73 100644 --- a/xs/src/eigen/Eigen/src/Core/DenseBase.h +++ b/src/eigen/Eigen/src/Core/DenseBase.h diff --git a/xs/src/eigen/Eigen/src/Core/DenseCoeffsBase.h b/src/eigen/Eigen/src/Core/DenseCoeffsBase.h index c4af48ab6..c4af48ab6 100644 --- a/xs/src/eigen/Eigen/src/Core/DenseCoeffsBase.h +++ b/src/eigen/Eigen/src/Core/DenseCoeffsBase.h diff --git a/xs/src/eigen/Eigen/src/Core/DenseStorage.h b/src/eigen/Eigen/src/Core/DenseStorage.h index 7958feeb9..7958feeb9 100644 --- a/xs/src/eigen/Eigen/src/Core/DenseStorage.h +++ b/src/eigen/Eigen/src/Core/DenseStorage.h diff --git a/xs/src/eigen/Eigen/src/Core/Diagonal.h b/src/eigen/Eigen/src/Core/Diagonal.h index afcaf3575..afcaf3575 100644 --- a/xs/src/eigen/Eigen/src/Core/Diagonal.h +++ b/src/eigen/Eigen/src/Core/Diagonal.h diff --git a/xs/src/eigen/Eigen/src/Core/DiagonalMatrix.h b/src/eigen/Eigen/src/Core/DiagonalMatrix.h index ecfdce8ef..ecfdce8ef 100644 --- a/xs/src/eigen/Eigen/src/Core/DiagonalMatrix.h +++ b/src/eigen/Eigen/src/Core/DiagonalMatrix.h diff --git a/xs/src/eigen/Eigen/src/Core/DiagonalProduct.h b/src/eigen/Eigen/src/Core/DiagonalProduct.h index d372b938f..d372b938f 100644 --- a/xs/src/eigen/Eigen/src/Core/DiagonalProduct.h +++ b/src/eigen/Eigen/src/Core/DiagonalProduct.h diff --git a/xs/src/eigen/Eigen/src/Core/Dot.h b/src/eigen/Eigen/src/Core/Dot.h index 1fe7a84a4..1fe7a84a4 100644 --- a/xs/src/eigen/Eigen/src/Core/Dot.h +++ b/src/eigen/Eigen/src/Core/Dot.h diff --git a/xs/src/eigen/Eigen/src/Core/EigenBase.h b/src/eigen/Eigen/src/Core/EigenBase.h index b195506a9..b195506a9 100644 --- a/xs/src/eigen/Eigen/src/Core/EigenBase.h +++ b/src/eigen/Eigen/src/Core/EigenBase.h diff --git a/xs/src/eigen/Eigen/src/Core/ForceAlignedAccess.h b/src/eigen/Eigen/src/Core/ForceAlignedAccess.h index 7b08b45e6..7b08b45e6 100644 --- a/xs/src/eigen/Eigen/src/Core/ForceAlignedAccess.h +++ b/src/eigen/Eigen/src/Core/ForceAlignedAccess.h diff --git a/xs/src/eigen/Eigen/src/Core/Fuzzy.h b/src/eigen/Eigen/src/Core/Fuzzy.h index 3e403a09d..3e403a09d 100644 --- a/xs/src/eigen/Eigen/src/Core/Fuzzy.h +++ b/src/eigen/Eigen/src/Core/Fuzzy.h diff --git a/xs/src/eigen/Eigen/src/Core/GeneralProduct.h b/src/eigen/Eigen/src/Core/GeneralProduct.h index 6f0cc80e9..6f0cc80e9 100644 --- a/xs/src/eigen/Eigen/src/Core/GeneralProduct.h +++ b/src/eigen/Eigen/src/Core/GeneralProduct.h diff --git a/xs/src/eigen/Eigen/src/Core/GenericPacketMath.h b/src/eigen/Eigen/src/Core/GenericPacketMath.h index 029f8ac36..029f8ac36 100644 --- a/xs/src/eigen/Eigen/src/Core/GenericPacketMath.h +++ b/src/eigen/Eigen/src/Core/GenericPacketMath.h diff --git a/xs/src/eigen/Eigen/src/Core/GlobalFunctions.h b/src/eigen/Eigen/src/Core/GlobalFunctions.h index 769dc255c..769dc255c 100644 --- a/xs/src/eigen/Eigen/src/Core/GlobalFunctions.h +++ b/src/eigen/Eigen/src/Core/GlobalFunctions.h diff --git a/xs/src/eigen/Eigen/src/Core/IO.h b/src/eigen/Eigen/src/Core/IO.h index da7fd6cce..da7fd6cce 100644 --- a/xs/src/eigen/Eigen/src/Core/IO.h +++ b/src/eigen/Eigen/src/Core/IO.h diff --git a/xs/src/eigen/Eigen/src/Core/Inverse.h b/src/eigen/Eigen/src/Core/Inverse.h index b76f0439d..b76f0439d 100644 --- a/xs/src/eigen/Eigen/src/Core/Inverse.h +++ b/src/eigen/Eigen/src/Core/Inverse.h diff --git a/xs/src/eigen/Eigen/src/Core/Map.h b/src/eigen/Eigen/src/Core/Map.h index 548bf9a2d..548bf9a2d 100644 --- a/xs/src/eigen/Eigen/src/Core/Map.h +++ b/src/eigen/Eigen/src/Core/Map.h diff --git a/xs/src/eigen/Eigen/src/Core/MapBase.h b/src/eigen/Eigen/src/Core/MapBase.h index 020f939ad..020f939ad 100644 --- a/xs/src/eigen/Eigen/src/Core/MapBase.h +++ b/src/eigen/Eigen/src/Core/MapBase.h diff --git a/xs/src/eigen/Eigen/src/Core/MathFunctions.h b/src/eigen/Eigen/src/Core/MathFunctions.h index 6eb974d41..6eb974d41 100644 --- a/xs/src/eigen/Eigen/src/Core/MathFunctions.h +++ b/src/eigen/Eigen/src/Core/MathFunctions.h diff --git a/xs/src/eigen/Eigen/src/Core/MathFunctionsImpl.h b/src/eigen/Eigen/src/Core/MathFunctionsImpl.h index 9c1ceb0eb..9c1ceb0eb 100644 --- a/xs/src/eigen/Eigen/src/Core/MathFunctionsImpl.h +++ b/src/eigen/Eigen/src/Core/MathFunctionsImpl.h diff --git a/xs/src/eigen/Eigen/src/Core/Matrix.h b/src/eigen/Eigen/src/Core/Matrix.h index 90c336d8c..90c336d8c 100644 --- a/xs/src/eigen/Eigen/src/Core/Matrix.h +++ b/src/eigen/Eigen/src/Core/Matrix.h diff --git a/xs/src/eigen/Eigen/src/Core/MatrixBase.h b/src/eigen/Eigen/src/Core/MatrixBase.h index 05db48813..05db48813 100644 --- a/xs/src/eigen/Eigen/src/Core/MatrixBase.h +++ b/src/eigen/Eigen/src/Core/MatrixBase.h diff --git a/xs/src/eigen/Eigen/src/Core/NestByValue.h b/src/eigen/Eigen/src/Core/NestByValue.h index 13adf070e..13adf070e 100644 --- a/xs/src/eigen/Eigen/src/Core/NestByValue.h +++ b/src/eigen/Eigen/src/Core/NestByValue.h diff --git a/xs/src/eigen/Eigen/src/Core/NoAlias.h b/src/eigen/Eigen/src/Core/NoAlias.h index 33908010b..33908010b 100644 --- a/xs/src/eigen/Eigen/src/Core/NoAlias.h +++ b/src/eigen/Eigen/src/Core/NoAlias.h diff --git a/xs/src/eigen/Eigen/src/Core/NumTraits.h b/src/eigen/Eigen/src/Core/NumTraits.h index daf489878..daf489878 100644 --- a/xs/src/eigen/Eigen/src/Core/NumTraits.h +++ b/src/eigen/Eigen/src/Core/NumTraits.h diff --git a/xs/src/eigen/Eigen/src/Core/PermutationMatrix.h b/src/eigen/Eigen/src/Core/PermutationMatrix.h index b1fb455b9..b1fb455b9 100644 --- a/xs/src/eigen/Eigen/src/Core/PermutationMatrix.h +++ b/src/eigen/Eigen/src/Core/PermutationMatrix.h diff --git a/xs/src/eigen/Eigen/src/Core/PlainObjectBase.h b/src/eigen/Eigen/src/Core/PlainObjectBase.h index 1dc7e223a..1dc7e223a 100644 --- a/xs/src/eigen/Eigen/src/Core/PlainObjectBase.h +++ b/src/eigen/Eigen/src/Core/PlainObjectBase.h diff --git a/xs/src/eigen/Eigen/src/Core/Product.h b/src/eigen/Eigen/src/Core/Product.h index 676c48027..676c48027 100644 --- a/xs/src/eigen/Eigen/src/Core/Product.h +++ b/src/eigen/Eigen/src/Core/Product.h diff --git a/xs/src/eigen/Eigen/src/Core/ProductEvaluators.h b/src/eigen/Eigen/src/Core/ProductEvaluators.h index 9b99bd769..9b99bd769 100644 --- a/xs/src/eigen/Eigen/src/Core/ProductEvaluators.h +++ b/src/eigen/Eigen/src/Core/ProductEvaluators.h diff --git a/xs/src/eigen/Eigen/src/Core/Random.h b/src/eigen/Eigen/src/Core/Random.h index 6faf789c7..6faf789c7 100644 --- a/xs/src/eigen/Eigen/src/Core/Random.h +++ b/src/eigen/Eigen/src/Core/Random.h diff --git a/xs/src/eigen/Eigen/src/Core/Redux.h b/src/eigen/Eigen/src/Core/Redux.h index 760e9f861..760e9f861 100644 --- a/xs/src/eigen/Eigen/src/Core/Redux.h +++ b/src/eigen/Eigen/src/Core/Redux.h diff --git a/xs/src/eigen/Eigen/src/Core/Ref.h b/src/eigen/Eigen/src/Core/Ref.h index 9c6e3c5d9..9c6e3c5d9 100644 --- a/xs/src/eigen/Eigen/src/Core/Ref.h +++ b/src/eigen/Eigen/src/Core/Ref.h diff --git a/xs/src/eigen/Eigen/src/Core/Replicate.h b/src/eigen/Eigen/src/Core/Replicate.h index 9960ef884..9960ef884 100644 --- a/xs/src/eigen/Eigen/src/Core/Replicate.h +++ b/src/eigen/Eigen/src/Core/Replicate.h diff --git a/xs/src/eigen/Eigen/src/Core/ReturnByValue.h b/src/eigen/Eigen/src/Core/ReturnByValue.h index c44b7673b..c44b7673b 100644 --- a/xs/src/eigen/Eigen/src/Core/ReturnByValue.h +++ b/src/eigen/Eigen/src/Core/ReturnByValue.h diff --git a/xs/src/eigen/Eigen/src/Core/Reverse.h b/src/eigen/Eigen/src/Core/Reverse.h index 0640cda2a..0640cda2a 100644 --- a/xs/src/eigen/Eigen/src/Core/Reverse.h +++ b/src/eigen/Eigen/src/Core/Reverse.h diff --git a/xs/src/eigen/Eigen/src/Core/Select.h b/src/eigen/Eigen/src/Core/Select.h index 79eec1b5b..79eec1b5b 100644 --- a/xs/src/eigen/Eigen/src/Core/Select.h +++ b/src/eigen/Eigen/src/Core/Select.h diff --git a/xs/src/eigen/Eigen/src/Core/SelfAdjointView.h b/src/eigen/Eigen/src/Core/SelfAdjointView.h index b2e51f37a..b2e51f37a 100644 --- a/xs/src/eigen/Eigen/src/Core/SelfAdjointView.h +++ b/src/eigen/Eigen/src/Core/SelfAdjointView.h diff --git a/xs/src/eigen/Eigen/src/Core/SelfCwiseBinaryOp.h b/src/eigen/Eigen/src/Core/SelfCwiseBinaryOp.h index 7c89c2e23..7c89c2e23 100644 --- a/xs/src/eigen/Eigen/src/Core/SelfCwiseBinaryOp.h +++ b/src/eigen/Eigen/src/Core/SelfCwiseBinaryOp.h diff --git a/xs/src/eigen/Eigen/src/Core/Solve.h b/src/eigen/Eigen/src/Core/Solve.h index a8daea511..a8daea511 100644 --- a/xs/src/eigen/Eigen/src/Core/Solve.h +++ b/src/eigen/Eigen/src/Core/Solve.h diff --git a/xs/src/eigen/Eigen/src/Core/SolveTriangular.h b/src/eigen/Eigen/src/Core/SolveTriangular.h index 049890b25..049890b25 100644 --- a/xs/src/eigen/Eigen/src/Core/SolveTriangular.h +++ b/src/eigen/Eigen/src/Core/SolveTriangular.h diff --git a/xs/src/eigen/Eigen/src/Core/SolverBase.h b/src/eigen/Eigen/src/Core/SolverBase.h index 8a4adc229..8a4adc229 100644 --- a/xs/src/eigen/Eigen/src/Core/SolverBase.h +++ b/src/eigen/Eigen/src/Core/SolverBase.h diff --git a/xs/src/eigen/Eigen/src/Core/StableNorm.h b/src/eigen/Eigen/src/Core/StableNorm.h index 88c8d9890..88c8d9890 100644 --- a/xs/src/eigen/Eigen/src/Core/StableNorm.h +++ b/src/eigen/Eigen/src/Core/StableNorm.h diff --git a/xs/src/eigen/Eigen/src/Core/Stride.h b/src/eigen/Eigen/src/Core/Stride.h index 513742f34..513742f34 100644 --- a/xs/src/eigen/Eigen/src/Core/Stride.h +++ b/src/eigen/Eigen/src/Core/Stride.h diff --git a/xs/src/eigen/Eigen/src/Core/Swap.h b/src/eigen/Eigen/src/Core/Swap.h index d70200918..d70200918 100644 --- a/xs/src/eigen/Eigen/src/Core/Swap.h +++ b/src/eigen/Eigen/src/Core/Swap.h diff --git a/xs/src/eigen/Eigen/src/Core/Transpose.h b/src/eigen/Eigen/src/Core/Transpose.h index 79b767bcc..79b767bcc 100644 --- a/xs/src/eigen/Eigen/src/Core/Transpose.h +++ b/src/eigen/Eigen/src/Core/Transpose.h diff --git a/xs/src/eigen/Eigen/src/Core/Transpositions.h b/src/eigen/Eigen/src/Core/Transpositions.h index 86da5af59..86da5af59 100644 --- a/xs/src/eigen/Eigen/src/Core/Transpositions.h +++ b/src/eigen/Eigen/src/Core/Transpositions.h diff --git a/xs/src/eigen/Eigen/src/Core/TriangularMatrix.h b/src/eigen/Eigen/src/Core/TriangularMatrix.h index 667ef09dc..667ef09dc 100644 --- a/xs/src/eigen/Eigen/src/Core/TriangularMatrix.h +++ b/src/eigen/Eigen/src/Core/TriangularMatrix.h diff --git a/xs/src/eigen/Eigen/src/Core/VectorBlock.h b/src/eigen/Eigen/src/Core/VectorBlock.h index d72fbf7e9..d72fbf7e9 100644 --- a/xs/src/eigen/Eigen/src/Core/VectorBlock.h +++ b/src/eigen/Eigen/src/Core/VectorBlock.h diff --git a/xs/src/eigen/Eigen/src/Core/VectorwiseOp.h b/src/eigen/Eigen/src/Core/VectorwiseOp.h index 4fe267e9f..4fe267e9f 100644 --- a/xs/src/eigen/Eigen/src/Core/VectorwiseOp.h +++ b/src/eigen/Eigen/src/Core/VectorwiseOp.h diff --git a/xs/src/eigen/Eigen/src/Core/Visitor.h b/src/eigen/Eigen/src/Core/Visitor.h index 54c1883d9..54c1883d9 100644 --- a/xs/src/eigen/Eigen/src/Core/Visitor.h +++ b/src/eigen/Eigen/src/Core/Visitor.h diff --git a/xs/src/eigen/Eigen/src/Core/arch/AVX/Complex.h b/src/eigen/Eigen/src/Core/arch/AVX/Complex.h index 7fa61969d..7fa61969d 100644 --- a/xs/src/eigen/Eigen/src/Core/arch/AVX/Complex.h +++ b/src/eigen/Eigen/src/Core/arch/AVX/Complex.h diff --git a/xs/src/eigen/Eigen/src/Core/arch/AVX/MathFunctions.h b/src/eigen/Eigen/src/Core/arch/AVX/MathFunctions.h index 6af67ce2d..6af67ce2d 100644 --- a/xs/src/eigen/Eigen/src/Core/arch/AVX/MathFunctions.h +++ b/src/eigen/Eigen/src/Core/arch/AVX/MathFunctions.h diff --git a/xs/src/eigen/Eigen/src/Core/arch/AVX/PacketMath.h b/src/eigen/Eigen/src/Core/arch/AVX/PacketMath.h index 61c3dfcab..61c3dfcab 100644 --- a/xs/src/eigen/Eigen/src/Core/arch/AVX/PacketMath.h +++ b/src/eigen/Eigen/src/Core/arch/AVX/PacketMath.h diff --git a/xs/src/eigen/Eigen/src/Core/arch/AVX/TypeCasting.h b/src/eigen/Eigen/src/Core/arch/AVX/TypeCasting.h index 83bfdc604..83bfdc604 100644 --- a/xs/src/eigen/Eigen/src/Core/arch/AVX/TypeCasting.h +++ b/src/eigen/Eigen/src/Core/arch/AVX/TypeCasting.h diff --git a/xs/src/eigen/Eigen/src/Core/arch/AVX512/MathFunctions.h b/src/eigen/Eigen/src/Core/arch/AVX512/MathFunctions.h index 9c1717f76..9c1717f76 100644 --- a/xs/src/eigen/Eigen/src/Core/arch/AVX512/MathFunctions.h +++ b/src/eigen/Eigen/src/Core/arch/AVX512/MathFunctions.h diff --git a/xs/src/eigen/Eigen/src/Core/arch/AVX512/PacketMath.h b/src/eigen/Eigen/src/Core/arch/AVX512/PacketMath.h index 89705248a..89705248a 100644 --- a/xs/src/eigen/Eigen/src/Core/arch/AVX512/PacketMath.h +++ b/src/eigen/Eigen/src/Core/arch/AVX512/PacketMath.h diff --git a/xs/src/eigen/Eigen/src/Core/arch/AltiVec/Complex.h b/src/eigen/Eigen/src/Core/arch/AltiVec/Complex.h index 3e665730c..3e665730c 100644 --- a/xs/src/eigen/Eigen/src/Core/arch/AltiVec/Complex.h +++ b/src/eigen/Eigen/src/Core/arch/AltiVec/Complex.h diff --git a/xs/src/eigen/Eigen/src/Core/arch/AltiVec/MathFunctions.h b/src/eigen/Eigen/src/Core/arch/AltiVec/MathFunctions.h index c5e4bede7..c5e4bede7 100644 --- a/xs/src/eigen/Eigen/src/Core/arch/AltiVec/MathFunctions.h +++ b/src/eigen/Eigen/src/Core/arch/AltiVec/MathFunctions.h diff --git a/xs/src/eigen/Eigen/src/Core/arch/AltiVec/PacketMath.h b/src/eigen/Eigen/src/Core/arch/AltiVec/PacketMath.h index 08a27d153..08a27d153 100644 --- a/xs/src/eigen/Eigen/src/Core/arch/AltiVec/PacketMath.h +++ b/src/eigen/Eigen/src/Core/arch/AltiVec/PacketMath.h diff --git a/xs/src/eigen/Eigen/src/Core/arch/CUDA/Complex.h b/src/eigen/Eigen/src/Core/arch/CUDA/Complex.h index 9c2536509..9c2536509 100644 --- a/xs/src/eigen/Eigen/src/Core/arch/CUDA/Complex.h +++ b/src/eigen/Eigen/src/Core/arch/CUDA/Complex.h diff --git a/xs/src/eigen/Eigen/src/Core/arch/CUDA/Half.h b/src/eigen/Eigen/src/Core/arch/CUDA/Half.h index 02ac0c23a..02ac0c23a 100644 --- a/xs/src/eigen/Eigen/src/Core/arch/CUDA/Half.h +++ b/src/eigen/Eigen/src/Core/arch/CUDA/Half.h diff --git a/xs/src/eigen/Eigen/src/Core/arch/CUDA/MathFunctions.h b/src/eigen/Eigen/src/Core/arch/CUDA/MathFunctions.h index 0348b41db..0348b41db 100644 --- a/xs/src/eigen/Eigen/src/Core/arch/CUDA/MathFunctions.h +++ b/src/eigen/Eigen/src/Core/arch/CUDA/MathFunctions.h diff --git a/xs/src/eigen/Eigen/src/Core/arch/CUDA/PacketMath.h b/src/eigen/Eigen/src/Core/arch/CUDA/PacketMath.h index 4dda63188..4dda63188 100644 --- a/xs/src/eigen/Eigen/src/Core/arch/CUDA/PacketMath.h +++ b/src/eigen/Eigen/src/Core/arch/CUDA/PacketMath.h diff --git a/xs/src/eigen/Eigen/src/Core/arch/CUDA/PacketMathHalf.h b/src/eigen/Eigen/src/Core/arch/CUDA/PacketMathHalf.h index 943e0b06d..943e0b06d 100644 --- a/xs/src/eigen/Eigen/src/Core/arch/CUDA/PacketMathHalf.h +++ b/src/eigen/Eigen/src/Core/arch/CUDA/PacketMathHalf.h diff --git a/xs/src/eigen/Eigen/src/Core/arch/CUDA/TypeCasting.h b/src/eigen/Eigen/src/Core/arch/CUDA/TypeCasting.h index aa5fbce8e..aa5fbce8e 100644 --- a/xs/src/eigen/Eigen/src/Core/arch/CUDA/TypeCasting.h +++ b/src/eigen/Eigen/src/Core/arch/CUDA/TypeCasting.h diff --git a/xs/src/eigen/Eigen/src/Core/arch/Default/ConjHelper.h b/src/eigen/Eigen/src/Core/arch/Default/ConjHelper.h index 4cfe34e05..4cfe34e05 100644 --- a/xs/src/eigen/Eigen/src/Core/arch/Default/ConjHelper.h +++ b/src/eigen/Eigen/src/Core/arch/Default/ConjHelper.h diff --git a/xs/src/eigen/Eigen/src/Core/arch/Default/Settings.h b/src/eigen/Eigen/src/Core/arch/Default/Settings.h index 097373c84..097373c84 100644 --- a/xs/src/eigen/Eigen/src/Core/arch/Default/Settings.h +++ b/src/eigen/Eigen/src/Core/arch/Default/Settings.h diff --git a/xs/src/eigen/Eigen/src/Core/arch/NEON/Complex.h b/src/eigen/Eigen/src/Core/arch/NEON/Complex.h index 306a309be..306a309be 100644 --- a/xs/src/eigen/Eigen/src/Core/arch/NEON/Complex.h +++ b/src/eigen/Eigen/src/Core/arch/NEON/Complex.h diff --git a/xs/src/eigen/Eigen/src/Core/arch/NEON/MathFunctions.h b/src/eigen/Eigen/src/Core/arch/NEON/MathFunctions.h index 6bb05bb92..6bb05bb92 100644 --- a/xs/src/eigen/Eigen/src/Core/arch/NEON/MathFunctions.h +++ b/src/eigen/Eigen/src/Core/arch/NEON/MathFunctions.h diff --git a/xs/src/eigen/Eigen/src/Core/arch/NEON/PacketMath.h b/src/eigen/Eigen/src/Core/arch/NEON/PacketMath.h index 3d5ed0d24..3d5ed0d24 100644 --- a/xs/src/eigen/Eigen/src/Core/arch/NEON/PacketMath.h +++ b/src/eigen/Eigen/src/Core/arch/NEON/PacketMath.h diff --git a/xs/src/eigen/Eigen/src/Core/arch/SSE/Complex.h b/src/eigen/Eigen/src/Core/arch/SSE/Complex.h index d075043ce..d075043ce 100644 --- a/xs/src/eigen/Eigen/src/Core/arch/SSE/Complex.h +++ b/src/eigen/Eigen/src/Core/arch/SSE/Complex.h diff --git a/xs/src/eigen/Eigen/src/Core/arch/SSE/MathFunctions.h b/src/eigen/Eigen/src/Core/arch/SSE/MathFunctions.h index 7b5f948e1..7b5f948e1 100644 --- a/xs/src/eigen/Eigen/src/Core/arch/SSE/MathFunctions.h +++ b/src/eigen/Eigen/src/Core/arch/SSE/MathFunctions.h diff --git a/xs/src/eigen/Eigen/src/Core/arch/SSE/PacketMath.h b/src/eigen/Eigen/src/Core/arch/SSE/PacketMath.h index 5e652cc79..5e652cc79 100644 --- a/xs/src/eigen/Eigen/src/Core/arch/SSE/PacketMath.h +++ b/src/eigen/Eigen/src/Core/arch/SSE/PacketMath.h diff --git a/xs/src/eigen/Eigen/src/Core/arch/SSE/TypeCasting.h b/src/eigen/Eigen/src/Core/arch/SSE/TypeCasting.h index c6ca8c716..c6ca8c716 100644 --- a/xs/src/eigen/Eigen/src/Core/arch/SSE/TypeCasting.h +++ b/src/eigen/Eigen/src/Core/arch/SSE/TypeCasting.h diff --git a/xs/src/eigen/Eigen/src/Core/arch/ZVector/Complex.h b/src/eigen/Eigen/src/Core/arch/ZVector/Complex.h index 1bfb73397..1bfb73397 100644 --- a/xs/src/eigen/Eigen/src/Core/arch/ZVector/Complex.h +++ b/src/eigen/Eigen/src/Core/arch/ZVector/Complex.h diff --git a/xs/src/eigen/Eigen/src/Core/arch/ZVector/MathFunctions.h b/src/eigen/Eigen/src/Core/arch/ZVector/MathFunctions.h index 5c7aa7256..5c7aa7256 100644 --- a/xs/src/eigen/Eigen/src/Core/arch/ZVector/MathFunctions.h +++ b/src/eigen/Eigen/src/Core/arch/ZVector/MathFunctions.h diff --git a/xs/src/eigen/Eigen/src/Core/arch/ZVector/PacketMath.h b/src/eigen/Eigen/src/Core/arch/ZVector/PacketMath.h index 57b01fc63..57b01fc63 100644 --- a/xs/src/eigen/Eigen/src/Core/arch/ZVector/PacketMath.h +++ b/src/eigen/Eigen/src/Core/arch/ZVector/PacketMath.h diff --git a/xs/src/eigen/Eigen/src/Core/functors/AssignmentFunctors.h b/src/eigen/Eigen/src/Core/functors/AssignmentFunctors.h index 4153b877c..4153b877c 100644 --- a/xs/src/eigen/Eigen/src/Core/functors/AssignmentFunctors.h +++ b/src/eigen/Eigen/src/Core/functors/AssignmentFunctors.h diff --git a/xs/src/eigen/Eigen/src/Core/functors/BinaryFunctors.h b/src/eigen/Eigen/src/Core/functors/BinaryFunctors.h index 3eae6b8ca..3eae6b8ca 100644 --- a/xs/src/eigen/Eigen/src/Core/functors/BinaryFunctors.h +++ b/src/eigen/Eigen/src/Core/functors/BinaryFunctors.h diff --git a/xs/src/eigen/Eigen/src/Core/functors/NullaryFunctors.h b/src/eigen/Eigen/src/Core/functors/NullaryFunctors.h index b03be0269..b03be0269 100644 --- a/xs/src/eigen/Eigen/src/Core/functors/NullaryFunctors.h +++ b/src/eigen/Eigen/src/Core/functors/NullaryFunctors.h diff --git a/xs/src/eigen/Eigen/src/Core/functors/StlFunctors.h b/src/eigen/Eigen/src/Core/functors/StlFunctors.h index 9c1d75850..9c1d75850 100644 --- a/xs/src/eigen/Eigen/src/Core/functors/StlFunctors.h +++ b/src/eigen/Eigen/src/Core/functors/StlFunctors.h diff --git a/xs/src/eigen/Eigen/src/Core/functors/TernaryFunctors.h b/src/eigen/Eigen/src/Core/functors/TernaryFunctors.h index b254e96c6..b254e96c6 100644 --- a/xs/src/eigen/Eigen/src/Core/functors/TernaryFunctors.h +++ b/src/eigen/Eigen/src/Core/functors/TernaryFunctors.h diff --git a/xs/src/eigen/Eigen/src/Core/functors/UnaryFunctors.h b/src/eigen/Eigen/src/Core/functors/UnaryFunctors.h index 2e6a00ffd..2e6a00ffd 100644 --- a/xs/src/eigen/Eigen/src/Core/functors/UnaryFunctors.h +++ b/src/eigen/Eigen/src/Core/functors/UnaryFunctors.h diff --git a/xs/src/eigen/Eigen/src/Core/products/GeneralBlockPanelKernel.h b/src/eigen/Eigen/src/Core/products/GeneralBlockPanelKernel.h index 45230bce5..45230bce5 100644 --- a/xs/src/eigen/Eigen/src/Core/products/GeneralBlockPanelKernel.h +++ b/src/eigen/Eigen/src/Core/products/GeneralBlockPanelKernel.h diff --git a/xs/src/eigen/Eigen/src/Core/products/GeneralMatrixMatrix.h b/src/eigen/Eigen/src/Core/products/GeneralMatrixMatrix.h index 6440e1d09..6440e1d09 100644 --- a/xs/src/eigen/Eigen/src/Core/products/GeneralMatrixMatrix.h +++ b/src/eigen/Eigen/src/Core/products/GeneralMatrixMatrix.h diff --git a/xs/src/eigen/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h b/src/eigen/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h index e844e37d1..e844e37d1 100644 --- a/xs/src/eigen/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h +++ b/src/eigen/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h diff --git a/xs/src/eigen/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h b/src/eigen/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h index 9176a1382..9176a1382 100644 --- a/xs/src/eigen/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h +++ b/src/eigen/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h diff --git a/xs/src/eigen/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h b/src/eigen/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h index b0f6b0d5b..b0f6b0d5b 100644 --- a/xs/src/eigen/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h +++ b/src/eigen/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h diff --git a/xs/src/eigen/Eigen/src/Core/products/GeneralMatrixVector.h b/src/eigen/Eigen/src/Core/products/GeneralMatrixVector.h index a597c1f4e..a597c1f4e 100644 --- a/xs/src/eigen/Eigen/src/Core/products/GeneralMatrixVector.h +++ b/src/eigen/Eigen/src/Core/products/GeneralMatrixVector.h diff --git a/xs/src/eigen/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h b/src/eigen/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h index 6e36c2b3c..6e36c2b3c 100644 --- a/xs/src/eigen/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h +++ b/src/eigen/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h diff --git a/xs/src/eigen/Eigen/src/Core/products/Parallelizer.h b/src/eigen/Eigen/src/Core/products/Parallelizer.h index c2f084c82..c2f084c82 100644 --- a/xs/src/eigen/Eigen/src/Core/products/Parallelizer.h +++ b/src/eigen/Eigen/src/Core/products/Parallelizer.h diff --git a/xs/src/eigen/Eigen/src/Core/products/SelfadjointMatrixMatrix.h b/src/eigen/Eigen/src/Core/products/SelfadjointMatrixMatrix.h index da6f82abc..da6f82abc 100644 --- a/xs/src/eigen/Eigen/src/Core/products/SelfadjointMatrixMatrix.h +++ b/src/eigen/Eigen/src/Core/products/SelfadjointMatrixMatrix.h diff --git a/xs/src/eigen/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h b/src/eigen/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h index 9a5318507..9a5318507 100644 --- a/xs/src/eigen/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h +++ b/src/eigen/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h diff --git a/xs/src/eigen/Eigen/src/Core/products/SelfadjointMatrixVector.h b/src/eigen/Eigen/src/Core/products/SelfadjointMatrixVector.h index 3fd180e6c..3fd180e6c 100644 --- a/xs/src/eigen/Eigen/src/Core/products/SelfadjointMatrixVector.h +++ b/src/eigen/Eigen/src/Core/products/SelfadjointMatrixVector.h diff --git a/xs/src/eigen/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h b/src/eigen/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h index 1238345e3..1238345e3 100644 --- a/xs/src/eigen/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h +++ b/src/eigen/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h diff --git a/xs/src/eigen/Eigen/src/Core/products/SelfadjointProduct.h b/src/eigen/Eigen/src/Core/products/SelfadjointProduct.h index f038d686f..f038d686f 100644 --- a/xs/src/eigen/Eigen/src/Core/products/SelfadjointProduct.h +++ b/src/eigen/Eigen/src/Core/products/SelfadjointProduct.h diff --git a/xs/src/eigen/Eigen/src/Core/products/SelfadjointRank2Update.h b/src/eigen/Eigen/src/Core/products/SelfadjointRank2Update.h index 2ae364111..2ae364111 100644 --- a/xs/src/eigen/Eigen/src/Core/products/SelfadjointRank2Update.h +++ b/src/eigen/Eigen/src/Core/products/SelfadjointRank2Update.h diff --git a/xs/src/eigen/Eigen/src/Core/products/TriangularMatrixMatrix.h b/src/eigen/Eigen/src/Core/products/TriangularMatrixMatrix.h index f784507e7..f784507e7 100644 --- a/xs/src/eigen/Eigen/src/Core/products/TriangularMatrixMatrix.h +++ b/src/eigen/Eigen/src/Core/products/TriangularMatrixMatrix.h diff --git a/xs/src/eigen/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h b/src/eigen/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h index a25197ab0..a25197ab0 100644 --- a/xs/src/eigen/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h +++ b/src/eigen/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h diff --git a/xs/src/eigen/Eigen/src/Core/products/TriangularMatrixVector.h b/src/eigen/Eigen/src/Core/products/TriangularMatrixVector.h index 76bfa159c..76bfa159c 100644 --- a/xs/src/eigen/Eigen/src/Core/products/TriangularMatrixVector.h +++ b/src/eigen/Eigen/src/Core/products/TriangularMatrixVector.h diff --git a/xs/src/eigen/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h b/src/eigen/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h index 3d47a2b94..3d47a2b94 100644 --- a/xs/src/eigen/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h +++ b/src/eigen/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h diff --git a/xs/src/eigen/Eigen/src/Core/products/TriangularSolverMatrix.h b/src/eigen/Eigen/src/Core/products/TriangularSolverMatrix.h index 223c38b86..223c38b86 100644 --- a/xs/src/eigen/Eigen/src/Core/products/TriangularSolverMatrix.h +++ b/src/eigen/Eigen/src/Core/products/TriangularSolverMatrix.h diff --git a/xs/src/eigen/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h b/src/eigen/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h index f0775116a..f0775116a 100644 --- a/xs/src/eigen/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h +++ b/src/eigen/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h diff --git a/xs/src/eigen/Eigen/src/Core/products/TriangularSolverVector.h b/src/eigen/Eigen/src/Core/products/TriangularSolverVector.h index b994759b2..b994759b2 100644 --- a/xs/src/eigen/Eigen/src/Core/products/TriangularSolverVector.h +++ b/src/eigen/Eigen/src/Core/products/TriangularSolverVector.h diff --git a/xs/src/eigen/Eigen/src/Core/util/BlasUtil.h b/src/eigen/Eigen/src/Core/util/BlasUtil.h index 6e6ee119b..6e6ee119b 100644 --- a/xs/src/eigen/Eigen/src/Core/util/BlasUtil.h +++ b/src/eigen/Eigen/src/Core/util/BlasUtil.h diff --git a/xs/src/eigen/Eigen/src/Core/util/Constants.h b/src/eigen/Eigen/src/Core/util/Constants.h index 7587d6842..7587d6842 100644 --- a/xs/src/eigen/Eigen/src/Core/util/Constants.h +++ b/src/eigen/Eigen/src/Core/util/Constants.h diff --git a/xs/src/eigen/Eigen/src/Core/util/DisableStupidWarnings.h b/src/eigen/Eigen/src/Core/util/DisableStupidWarnings.h index 7559e129c..7559e129c 100644 --- a/xs/src/eigen/Eigen/src/Core/util/DisableStupidWarnings.h +++ b/src/eigen/Eigen/src/Core/util/DisableStupidWarnings.h diff --git a/xs/src/eigen/Eigen/src/Core/util/ForwardDeclarations.h b/src/eigen/Eigen/src/Core/util/ForwardDeclarations.h index ea107393a..ea107393a 100644 --- a/xs/src/eigen/Eigen/src/Core/util/ForwardDeclarations.h +++ b/src/eigen/Eigen/src/Core/util/ForwardDeclarations.h diff --git a/xs/src/eigen/Eigen/src/Core/util/MKL_support.h b/src/eigen/Eigen/src/Core/util/MKL_support.h index b7d6ecc76..b7d6ecc76 100644 --- a/xs/src/eigen/Eigen/src/Core/util/MKL_support.h +++ b/src/eigen/Eigen/src/Core/util/MKL_support.h diff --git a/xs/src/eigen/Eigen/src/Core/util/Macros.h b/src/eigen/Eigen/src/Core/util/Macros.h index 02d21d2cd..02d21d2cd 100644 --- a/xs/src/eigen/Eigen/src/Core/util/Macros.h +++ b/src/eigen/Eigen/src/Core/util/Macros.h diff --git a/xs/src/eigen/Eigen/src/Core/util/Memory.h b/src/eigen/Eigen/src/Core/util/Memory.h index 66cdbd8dd..66cdbd8dd 100644 --- a/xs/src/eigen/Eigen/src/Core/util/Memory.h +++ b/src/eigen/Eigen/src/Core/util/Memory.h diff --git a/xs/src/eigen/Eigen/src/Core/util/Meta.h b/src/eigen/Eigen/src/Core/util/Meta.h index 1d73f05d6..1d73f05d6 100644 --- a/xs/src/eigen/Eigen/src/Core/util/Meta.h +++ b/src/eigen/Eigen/src/Core/util/Meta.h diff --git a/xs/src/eigen/Eigen/src/Core/util/NonMPL2.h b/src/eigen/Eigen/src/Core/util/NonMPL2.h index 1af67cf18..1af67cf18 100644 --- a/xs/src/eigen/Eigen/src/Core/util/NonMPL2.h +++ b/src/eigen/Eigen/src/Core/util/NonMPL2.h diff --git a/xs/src/eigen/Eigen/src/Core/util/ReenableStupidWarnings.h b/src/eigen/Eigen/src/Core/util/ReenableStupidWarnings.h index 86b60f52f..86b60f52f 100644 --- a/xs/src/eigen/Eigen/src/Core/util/ReenableStupidWarnings.h +++ b/src/eigen/Eigen/src/Core/util/ReenableStupidWarnings.h diff --git a/xs/src/eigen/Eigen/src/Core/util/StaticAssert.h b/src/eigen/Eigen/src/Core/util/StaticAssert.h index 500e47792..500e47792 100644 --- a/xs/src/eigen/Eigen/src/Core/util/StaticAssert.h +++ b/src/eigen/Eigen/src/Core/util/StaticAssert.h diff --git a/xs/src/eigen/Eigen/src/Core/util/XprHelper.h b/src/eigen/Eigen/src/Core/util/XprHelper.h index ba5bd186d..ba5bd186d 100644 --- a/xs/src/eigen/Eigen/src/Core/util/XprHelper.h +++ b/src/eigen/Eigen/src/Core/util/XprHelper.h diff --git a/xs/src/eigen/Eigen/src/Eigenvalues/ComplexEigenSolver.h b/src/eigen/Eigen/src/Eigenvalues/ComplexEigenSolver.h index dc5fae06a..dc5fae06a 100644 --- a/xs/src/eigen/Eigen/src/Eigenvalues/ComplexEigenSolver.h +++ b/src/eigen/Eigen/src/Eigenvalues/ComplexEigenSolver.h diff --git a/xs/src/eigen/Eigen/src/Eigenvalues/ComplexSchur.h b/src/eigen/Eigen/src/Eigenvalues/ComplexSchur.h index 7f38919f7..7f38919f7 100644 --- a/xs/src/eigen/Eigen/src/Eigenvalues/ComplexSchur.h +++ b/src/eigen/Eigen/src/Eigenvalues/ComplexSchur.h diff --git a/xs/src/eigen/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h b/src/eigen/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h index 4980a3ede..4980a3ede 100644 --- a/xs/src/eigen/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h +++ b/src/eigen/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h diff --git a/xs/src/eigen/Eigen/src/Eigenvalues/EigenSolver.h b/src/eigen/Eigen/src/Eigenvalues/EigenSolver.h index f205b185d..f205b185d 100644 --- a/xs/src/eigen/Eigen/src/Eigenvalues/EigenSolver.h +++ b/src/eigen/Eigen/src/Eigenvalues/EigenSolver.h diff --git a/xs/src/eigen/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h b/src/eigen/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h index 87d789b3f..87d789b3f 100644 --- a/xs/src/eigen/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h +++ b/src/eigen/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h diff --git a/xs/src/eigen/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h b/src/eigen/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h index 5f6bb8289..5f6bb8289 100644 --- a/xs/src/eigen/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h +++ b/src/eigen/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h diff --git a/xs/src/eigen/Eigen/src/Eigenvalues/HessenbergDecomposition.h b/src/eigen/Eigen/src/Eigenvalues/HessenbergDecomposition.h index f647f69b0..f647f69b0 100644 --- a/xs/src/eigen/Eigen/src/Eigenvalues/HessenbergDecomposition.h +++ b/src/eigen/Eigen/src/Eigenvalues/HessenbergDecomposition.h diff --git a/xs/src/eigen/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h b/src/eigen/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h index 4fec8af0a..4fec8af0a 100644 --- a/xs/src/eigen/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h +++ b/src/eigen/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h diff --git a/xs/src/eigen/Eigen/src/Eigenvalues/RealQZ.h b/src/eigen/Eigen/src/Eigenvalues/RealQZ.h index b3a910dd9..b3a910dd9 100644 --- a/xs/src/eigen/Eigen/src/Eigenvalues/RealQZ.h +++ b/src/eigen/Eigen/src/Eigenvalues/RealQZ.h diff --git a/xs/src/eigen/Eigen/src/Eigenvalues/RealSchur.h b/src/eigen/Eigen/src/Eigenvalues/RealSchur.h index 17ea903f5..17ea903f5 100644 --- a/xs/src/eigen/Eigen/src/Eigenvalues/RealSchur.h +++ b/src/eigen/Eigen/src/Eigenvalues/RealSchur.h diff --git a/xs/src/eigen/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h b/src/eigen/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h index 2c2251715..2c2251715 100644 --- a/xs/src/eigen/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h +++ b/src/eigen/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h diff --git a/xs/src/eigen/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h b/src/eigen/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h index 9ddd553f2..9ddd553f2 100644 --- a/xs/src/eigen/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h +++ b/src/eigen/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h diff --git a/xs/src/eigen/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h b/src/eigen/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h index b0c947dc0..b0c947dc0 100644 --- a/xs/src/eigen/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h +++ b/src/eigen/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h diff --git a/xs/src/eigen/Eigen/src/Eigenvalues/Tridiagonalization.h b/src/eigen/Eigen/src/Eigenvalues/Tridiagonalization.h index 1d102c17b..1d102c17b 100644 --- a/xs/src/eigen/Eigen/src/Eigenvalues/Tridiagonalization.h +++ b/src/eigen/Eigen/src/Eigenvalues/Tridiagonalization.h diff --git a/xs/src/eigen/Eigen/src/Geometry/AlignedBox.h b/src/eigen/Eigen/src/Geometry/AlignedBox.h index 066eae4f9..066eae4f9 100644 --- a/xs/src/eigen/Eigen/src/Geometry/AlignedBox.h +++ b/src/eigen/Eigen/src/Geometry/AlignedBox.h diff --git a/xs/src/eigen/Eigen/src/Geometry/AngleAxis.h b/src/eigen/Eigen/src/Geometry/AngleAxis.h index 83ee1be46..83ee1be46 100644 --- a/xs/src/eigen/Eigen/src/Geometry/AngleAxis.h +++ b/src/eigen/Eigen/src/Geometry/AngleAxis.h diff --git a/xs/src/eigen/Eigen/src/Geometry/EulerAngles.h b/src/eigen/Eigen/src/Geometry/EulerAngles.h index c633268af..c633268af 100644 --- a/xs/src/eigen/Eigen/src/Geometry/EulerAngles.h +++ b/src/eigen/Eigen/src/Geometry/EulerAngles.h diff --git a/xs/src/eigen/Eigen/src/Geometry/Homogeneous.h b/src/eigen/Eigen/src/Geometry/Homogeneous.h index 5f0da1a9e..5f0da1a9e 100644 --- a/xs/src/eigen/Eigen/src/Geometry/Homogeneous.h +++ b/src/eigen/Eigen/src/Geometry/Homogeneous.h diff --git a/xs/src/eigen/Eigen/src/Geometry/Hyperplane.h b/src/eigen/Eigen/src/Geometry/Hyperplane.h index 05929b299..05929b299 100644 --- a/xs/src/eigen/Eigen/src/Geometry/Hyperplane.h +++ b/src/eigen/Eigen/src/Geometry/Hyperplane.h diff --git a/xs/src/eigen/Eigen/src/Geometry/OrthoMethods.h b/src/eigen/Eigen/src/Geometry/OrthoMethods.h index a035e6310..a035e6310 100644 --- a/xs/src/eigen/Eigen/src/Geometry/OrthoMethods.h +++ b/src/eigen/Eigen/src/Geometry/OrthoMethods.h diff --git a/xs/src/eigen/Eigen/src/Geometry/ParametrizedLine.h b/src/eigen/Eigen/src/Geometry/ParametrizedLine.h index 1e985d8cd..1e985d8cd 100644 --- a/xs/src/eigen/Eigen/src/Geometry/ParametrizedLine.h +++ b/src/eigen/Eigen/src/Geometry/ParametrizedLine.h diff --git a/xs/src/eigen/Eigen/src/Geometry/Quaternion.h b/src/eigen/Eigen/src/Geometry/Quaternion.h index c3fd8c3e0..c3fd8c3e0 100644 --- a/xs/src/eigen/Eigen/src/Geometry/Quaternion.h +++ b/src/eigen/Eigen/src/Geometry/Quaternion.h diff --git a/xs/src/eigen/Eigen/src/Geometry/Rotation2D.h b/src/eigen/Eigen/src/Geometry/Rotation2D.h index 884b7d0ee..884b7d0ee 100644 --- a/xs/src/eigen/Eigen/src/Geometry/Rotation2D.h +++ b/src/eigen/Eigen/src/Geometry/Rotation2D.h diff --git a/xs/src/eigen/Eigen/src/Geometry/RotationBase.h b/src/eigen/Eigen/src/Geometry/RotationBase.h index f0ee0bd03..f0ee0bd03 100644 --- a/xs/src/eigen/Eigen/src/Geometry/RotationBase.h +++ b/src/eigen/Eigen/src/Geometry/RotationBase.h diff --git a/xs/src/eigen/Eigen/src/Geometry/Scaling.h b/src/eigen/Eigen/src/Geometry/Scaling.h index f58ca03d9..f58ca03d9 100644 --- a/xs/src/eigen/Eigen/src/Geometry/Scaling.h +++ b/src/eigen/Eigen/src/Geometry/Scaling.h diff --git a/xs/src/eigen/Eigen/src/Geometry/Transform.h b/src/eigen/Eigen/src/Geometry/Transform.h index 3f31ee45d..3f31ee45d 100644 --- a/xs/src/eigen/Eigen/src/Geometry/Transform.h +++ b/src/eigen/Eigen/src/Geometry/Transform.h diff --git a/xs/src/eigen/Eigen/src/Geometry/Translation.h b/src/eigen/Eigen/src/Geometry/Translation.h index 51d9a82eb..51d9a82eb 100644 --- a/xs/src/eigen/Eigen/src/Geometry/Translation.h +++ b/src/eigen/Eigen/src/Geometry/Translation.h diff --git a/xs/src/eigen/Eigen/src/Geometry/Umeyama.h b/src/eigen/Eigen/src/Geometry/Umeyama.h index 7e933fca1..7e933fca1 100644 --- a/xs/src/eigen/Eigen/src/Geometry/Umeyama.h +++ b/src/eigen/Eigen/src/Geometry/Umeyama.h diff --git a/xs/src/eigen/Eigen/src/Geometry/arch/Geometry_SSE.h b/src/eigen/Eigen/src/Geometry/arch/Geometry_SSE.h index f68cab583..f68cab583 100644 --- a/xs/src/eigen/Eigen/src/Geometry/arch/Geometry_SSE.h +++ b/src/eigen/Eigen/src/Geometry/arch/Geometry_SSE.h diff --git a/xs/src/eigen/Eigen/src/Householder/BlockHouseholder.h b/src/eigen/Eigen/src/Householder/BlockHouseholder.h index 01a7ed188..01a7ed188 100644 --- a/xs/src/eigen/Eigen/src/Householder/BlockHouseholder.h +++ b/src/eigen/Eigen/src/Householder/BlockHouseholder.h diff --git a/xs/src/eigen/Eigen/src/Householder/Householder.h b/src/eigen/Eigen/src/Householder/Householder.h index 80de2c305..80de2c305 100644 --- a/xs/src/eigen/Eigen/src/Householder/Householder.h +++ b/src/eigen/Eigen/src/Householder/Householder.h diff --git a/xs/src/eigen/Eigen/src/Householder/HouseholderSequence.h b/src/eigen/Eigen/src/Householder/HouseholderSequence.h index 3ce0a693d..3ce0a693d 100644 --- a/xs/src/eigen/Eigen/src/Householder/HouseholderSequence.h +++ b/src/eigen/Eigen/src/Householder/HouseholderSequence.h diff --git a/xs/src/eigen/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h b/src/eigen/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h index f66c846ef..f66c846ef 100644 --- a/xs/src/eigen/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h +++ b/src/eigen/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h diff --git a/xs/src/eigen/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h b/src/eigen/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h index 454f46814..454f46814 100644 --- a/xs/src/eigen/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h +++ b/src/eigen/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h diff --git a/xs/src/eigen/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h b/src/eigen/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h index 395daa8e4..395daa8e4 100644 --- a/xs/src/eigen/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h +++ b/src/eigen/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h diff --git a/xs/src/eigen/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h b/src/eigen/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h index e45c272b4..e45c272b4 100644 --- a/xs/src/eigen/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h +++ b/src/eigen/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h diff --git a/xs/src/eigen/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h b/src/eigen/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h index 338e6f10a..338e6f10a 100644 --- a/xs/src/eigen/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h +++ b/src/eigen/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h diff --git a/xs/src/eigen/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h b/src/eigen/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h index 7c2326eb7..7c2326eb7 100644 --- a/xs/src/eigen/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h +++ b/src/eigen/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h diff --git a/xs/src/eigen/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h b/src/eigen/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h index 0aea0e099..0aea0e099 100644 --- a/xs/src/eigen/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h +++ b/src/eigen/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h diff --git a/xs/src/eigen/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h b/src/eigen/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h index 0ace45177..0ace45177 100644 --- a/xs/src/eigen/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h +++ b/src/eigen/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h diff --git a/xs/src/eigen/Eigen/src/Jacobi/Jacobi.h b/src/eigen/Eigen/src/Jacobi/Jacobi.h index 437e666a3..437e666a3 100644 --- a/xs/src/eigen/Eigen/src/Jacobi/Jacobi.h +++ b/src/eigen/Eigen/src/Jacobi/Jacobi.h diff --git a/xs/src/eigen/Eigen/src/LU/Determinant.h b/src/eigen/Eigen/src/LU/Determinant.h index d6a3c1e5a..d6a3c1e5a 100644 --- a/xs/src/eigen/Eigen/src/LU/Determinant.h +++ b/src/eigen/Eigen/src/LU/Determinant.h diff --git a/xs/src/eigen/Eigen/src/LU/FullPivLU.h b/src/eigen/Eigen/src/LU/FullPivLU.h index 03b6af706..03b6af706 100644 --- a/xs/src/eigen/Eigen/src/LU/FullPivLU.h +++ b/src/eigen/Eigen/src/LU/FullPivLU.h diff --git a/xs/src/eigen/Eigen/src/LU/InverseImpl.h b/src/eigen/Eigen/src/LU/InverseImpl.h index f49f23360..f49f23360 100644 --- a/xs/src/eigen/Eigen/src/LU/InverseImpl.h +++ b/src/eigen/Eigen/src/LU/InverseImpl.h diff --git a/xs/src/eigen/Eigen/src/LU/PartialPivLU.h b/src/eigen/Eigen/src/LU/PartialPivLU.h index d43961887..d43961887 100644 --- a/xs/src/eigen/Eigen/src/LU/PartialPivLU.h +++ b/src/eigen/Eigen/src/LU/PartialPivLU.h diff --git a/xs/src/eigen/Eigen/src/LU/PartialPivLU_LAPACKE.h b/src/eigen/Eigen/src/LU/PartialPivLU_LAPACKE.h index 755168a94..755168a94 100644 --- a/xs/src/eigen/Eigen/src/LU/PartialPivLU_LAPACKE.h +++ b/src/eigen/Eigen/src/LU/PartialPivLU_LAPACKE.h diff --git a/xs/src/eigen/Eigen/src/LU/arch/Inverse_SSE.h b/src/eigen/Eigen/src/LU/arch/Inverse_SSE.h index ebb64a62b..ebb64a62b 100644 --- a/xs/src/eigen/Eigen/src/LU/arch/Inverse_SSE.h +++ b/src/eigen/Eigen/src/LU/arch/Inverse_SSE.h diff --git a/xs/src/eigen/Eigen/src/MetisSupport/MetisSupport.h b/src/eigen/Eigen/src/MetisSupport/MetisSupport.h index 4c15304ad..4c15304ad 100644 --- a/xs/src/eigen/Eigen/src/MetisSupport/MetisSupport.h +++ b/src/eigen/Eigen/src/MetisSupport/MetisSupport.h diff --git a/xs/src/eigen/Eigen/src/OrderingMethods/Amd.h b/src/eigen/Eigen/src/OrderingMethods/Amd.h index f91ecb24e..f91ecb24e 100644 --- a/xs/src/eigen/Eigen/src/OrderingMethods/Amd.h +++ b/src/eigen/Eigen/src/OrderingMethods/Amd.h diff --git a/xs/src/eigen/Eigen/src/OrderingMethods/Eigen_Colamd.h b/src/eigen/Eigen/src/OrderingMethods/Eigen_Colamd.h index da85b4d6e..da85b4d6e 100644 --- a/xs/src/eigen/Eigen/src/OrderingMethods/Eigen_Colamd.h +++ b/src/eigen/Eigen/src/OrderingMethods/Eigen_Colamd.h diff --git a/xs/src/eigen/Eigen/src/OrderingMethods/Ordering.h b/src/eigen/Eigen/src/OrderingMethods/Ordering.h index 7ea9b14d7..7ea9b14d7 100644 --- a/xs/src/eigen/Eigen/src/OrderingMethods/Ordering.h +++ b/src/eigen/Eigen/src/OrderingMethods/Ordering.h diff --git a/xs/src/eigen/Eigen/src/PaStiXSupport/PaStiXSupport.h b/src/eigen/Eigen/src/PaStiXSupport/PaStiXSupport.h index 160d8a523..160d8a523 100644 --- a/xs/src/eigen/Eigen/src/PaStiXSupport/PaStiXSupport.h +++ b/src/eigen/Eigen/src/PaStiXSupport/PaStiXSupport.h diff --git a/xs/src/eigen/Eigen/src/PardisoSupport/PardisoSupport.h b/src/eigen/Eigen/src/PardisoSupport/PardisoSupport.h index 091c3970e..091c3970e 100644 --- a/xs/src/eigen/Eigen/src/PardisoSupport/PardisoSupport.h +++ b/src/eigen/Eigen/src/PardisoSupport/PardisoSupport.h diff --git a/xs/src/eigen/Eigen/src/QR/ColPivHouseholderQR.h b/src/eigen/Eigen/src/QR/ColPivHouseholderQR.h index a7b47d55d..a7b47d55d 100644 --- a/xs/src/eigen/Eigen/src/QR/ColPivHouseholderQR.h +++ b/src/eigen/Eigen/src/QR/ColPivHouseholderQR.h diff --git a/xs/src/eigen/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h b/src/eigen/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h index 4e9651f83..4e9651f83 100644 --- a/xs/src/eigen/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h +++ b/src/eigen/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h diff --git a/xs/src/eigen/Eigen/src/QR/CompleteOrthogonalDecomposition.h b/src/eigen/Eigen/src/QR/CompleteOrthogonalDecomposition.h index 34c637b70..34c637b70 100644 --- a/xs/src/eigen/Eigen/src/QR/CompleteOrthogonalDecomposition.h +++ b/src/eigen/Eigen/src/QR/CompleteOrthogonalDecomposition.h diff --git a/xs/src/eigen/Eigen/src/QR/FullPivHouseholderQR.h b/src/eigen/Eigen/src/QR/FullPivHouseholderQR.h index e489bddc2..e489bddc2 100644 --- a/xs/src/eigen/Eigen/src/QR/FullPivHouseholderQR.h +++ b/src/eigen/Eigen/src/QR/FullPivHouseholderQR.h diff --git a/xs/src/eigen/Eigen/src/QR/HouseholderQR.h b/src/eigen/Eigen/src/QR/HouseholderQR.h index 3513d995c..3513d995c 100644 --- a/xs/src/eigen/Eigen/src/QR/HouseholderQR.h +++ b/src/eigen/Eigen/src/QR/HouseholderQR.h diff --git a/xs/src/eigen/Eigen/src/QR/HouseholderQR_LAPACKE.h b/src/eigen/Eigen/src/QR/HouseholderQR_LAPACKE.h index 1dc7d5363..1dc7d5363 100644 --- a/xs/src/eigen/Eigen/src/QR/HouseholderQR_LAPACKE.h +++ b/src/eigen/Eigen/src/QR/HouseholderQR_LAPACKE.h diff --git a/xs/src/eigen/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h b/src/eigen/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h index 953d57c9d..953d57c9d 100644 --- a/xs/src/eigen/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h +++ b/src/eigen/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h diff --git a/xs/src/eigen/Eigen/src/SVD/BDCSVD.h b/src/eigen/Eigen/src/SVD/BDCSVD.h index 1134d66e7..1134d66e7 100644 --- a/xs/src/eigen/Eigen/src/SVD/BDCSVD.h +++ b/src/eigen/Eigen/src/SVD/BDCSVD.h diff --git a/xs/src/eigen/Eigen/src/SVD/JacobiSVD.h b/src/eigen/Eigen/src/SVD/JacobiSVD.h index 43488b1e0..43488b1e0 100644 --- a/xs/src/eigen/Eigen/src/SVD/JacobiSVD.h +++ b/src/eigen/Eigen/src/SVD/JacobiSVD.h diff --git a/xs/src/eigen/Eigen/src/SVD/JacobiSVD_LAPACKE.h b/src/eigen/Eigen/src/SVD/JacobiSVD_LAPACKE.h index ff0516f61..ff0516f61 100644 --- a/xs/src/eigen/Eigen/src/SVD/JacobiSVD_LAPACKE.h +++ b/src/eigen/Eigen/src/SVD/JacobiSVD_LAPACKE.h diff --git a/xs/src/eigen/Eigen/src/SVD/SVDBase.h b/src/eigen/Eigen/src/SVD/SVDBase.h index cc90a3b75..cc90a3b75 100644 --- a/xs/src/eigen/Eigen/src/SVD/SVDBase.h +++ b/src/eigen/Eigen/src/SVD/SVDBase.h diff --git a/xs/src/eigen/Eigen/src/SVD/UpperBidiagonalization.h b/src/eigen/Eigen/src/SVD/UpperBidiagonalization.h index 11ac847e1..11ac847e1 100644 --- a/xs/src/eigen/Eigen/src/SVD/UpperBidiagonalization.h +++ b/src/eigen/Eigen/src/SVD/UpperBidiagonalization.h diff --git a/xs/src/eigen/Eigen/src/SparseCholesky/SimplicialCholesky.h b/src/eigen/Eigen/src/SparseCholesky/SimplicialCholesky.h index 2907f6529..2907f6529 100644 --- a/xs/src/eigen/Eigen/src/SparseCholesky/SimplicialCholesky.h +++ b/src/eigen/Eigen/src/SparseCholesky/SimplicialCholesky.h diff --git a/xs/src/eigen/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h b/src/eigen/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h index 31e06995b..31e06995b 100644 --- a/xs/src/eigen/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h +++ b/src/eigen/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h diff --git a/xs/src/eigen/Eigen/src/SparseCore/AmbiVector.h b/src/eigen/Eigen/src/SparseCore/AmbiVector.h index e0295f2af..e0295f2af 100644 --- a/xs/src/eigen/Eigen/src/SparseCore/AmbiVector.h +++ b/src/eigen/Eigen/src/SparseCore/AmbiVector.h diff --git a/xs/src/eigen/Eigen/src/SparseCore/CompressedStorage.h b/src/eigen/Eigen/src/SparseCore/CompressedStorage.h index d89fa0dae..d89fa0dae 100644 --- a/xs/src/eigen/Eigen/src/SparseCore/CompressedStorage.h +++ b/src/eigen/Eigen/src/SparseCore/CompressedStorage.h diff --git a/xs/src/eigen/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h b/src/eigen/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h index 9db119b67..9db119b67 100644 --- a/xs/src/eigen/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h +++ b/src/eigen/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h diff --git a/xs/src/eigen/Eigen/src/SparseCore/MappedSparseMatrix.h b/src/eigen/Eigen/src/SparseCore/MappedSparseMatrix.h index 67718c85b..67718c85b 100644 --- a/xs/src/eigen/Eigen/src/SparseCore/MappedSparseMatrix.h +++ b/src/eigen/Eigen/src/SparseCore/MappedSparseMatrix.h diff --git a/xs/src/eigen/Eigen/src/SparseCore/SparseAssign.h b/src/eigen/Eigen/src/SparseCore/SparseAssign.h index 18352a847..18352a847 100644 --- a/xs/src/eigen/Eigen/src/SparseCore/SparseAssign.h +++ b/src/eigen/Eigen/src/SparseCore/SparseAssign.h diff --git a/xs/src/eigen/Eigen/src/SparseCore/SparseBlock.h b/src/eigen/Eigen/src/SparseCore/SparseBlock.h index 511e92b2f..511e92b2f 100644 --- a/xs/src/eigen/Eigen/src/SparseCore/SparseBlock.h +++ b/src/eigen/Eigen/src/SparseCore/SparseBlock.h diff --git a/xs/src/eigen/Eigen/src/SparseCore/SparseColEtree.h b/src/eigen/Eigen/src/SparseCore/SparseColEtree.h index ebe02d1ab..ebe02d1ab 100644 --- a/xs/src/eigen/Eigen/src/SparseCore/SparseColEtree.h +++ b/src/eigen/Eigen/src/SparseCore/SparseColEtree.h diff --git a/xs/src/eigen/Eigen/src/SparseCore/SparseCompressedBase.h b/src/eigen/Eigen/src/SparseCore/SparseCompressedBase.h index 5ccb46656..5ccb46656 100644 --- a/xs/src/eigen/Eigen/src/SparseCore/SparseCompressedBase.h +++ b/src/eigen/Eigen/src/SparseCore/SparseCompressedBase.h diff --git a/xs/src/eigen/Eigen/src/SparseCore/SparseCwiseBinaryOp.h b/src/eigen/Eigen/src/SparseCore/SparseCwiseBinaryOp.h index e315e3550..e315e3550 100644 --- a/xs/src/eigen/Eigen/src/SparseCore/SparseCwiseBinaryOp.h +++ b/src/eigen/Eigen/src/SparseCore/SparseCwiseBinaryOp.h diff --git a/xs/src/eigen/Eigen/src/SparseCore/SparseCwiseUnaryOp.h b/src/eigen/Eigen/src/SparseCore/SparseCwiseUnaryOp.h index ea7973790..ea7973790 100644 --- a/xs/src/eigen/Eigen/src/SparseCore/SparseCwiseUnaryOp.h +++ b/src/eigen/Eigen/src/SparseCore/SparseCwiseUnaryOp.h diff --git a/xs/src/eigen/Eigen/src/SparseCore/SparseDenseProduct.h b/src/eigen/Eigen/src/SparseCore/SparseDenseProduct.h index 0547db596..0547db596 100644 --- a/xs/src/eigen/Eigen/src/SparseCore/SparseDenseProduct.h +++ b/src/eigen/Eigen/src/SparseCore/SparseDenseProduct.h diff --git a/xs/src/eigen/Eigen/src/SparseCore/SparseDiagonalProduct.h b/src/eigen/Eigen/src/SparseCore/SparseDiagonalProduct.h index 941c03be3..941c03be3 100644 --- a/xs/src/eigen/Eigen/src/SparseCore/SparseDiagonalProduct.h +++ b/src/eigen/Eigen/src/SparseCore/SparseDiagonalProduct.h diff --git a/xs/src/eigen/Eigen/src/SparseCore/SparseDot.h b/src/eigen/Eigen/src/SparseCore/SparseDot.h index 38bc4aa9e..38bc4aa9e 100644 --- a/xs/src/eigen/Eigen/src/SparseCore/SparseDot.h +++ b/src/eigen/Eigen/src/SparseCore/SparseDot.h diff --git a/xs/src/eigen/Eigen/src/SparseCore/SparseFuzzy.h b/src/eigen/Eigen/src/SparseCore/SparseFuzzy.h index 7d47eb94d..7d47eb94d 100644 --- a/xs/src/eigen/Eigen/src/SparseCore/SparseFuzzy.h +++ b/src/eigen/Eigen/src/SparseCore/SparseFuzzy.h diff --git a/xs/src/eigen/Eigen/src/SparseCore/SparseMap.h b/src/eigen/Eigen/src/SparseCore/SparseMap.h index f99be3379..f99be3379 100644 --- a/xs/src/eigen/Eigen/src/SparseCore/SparseMap.h +++ b/src/eigen/Eigen/src/SparseCore/SparseMap.h diff --git a/xs/src/eigen/Eigen/src/SparseCore/SparseMatrix.h b/src/eigen/Eigen/src/SparseCore/SparseMatrix.h index 323c2323b..323c2323b 100644 --- a/xs/src/eigen/Eigen/src/SparseCore/SparseMatrix.h +++ b/src/eigen/Eigen/src/SparseCore/SparseMatrix.h diff --git a/xs/src/eigen/Eigen/src/SparseCore/SparseMatrixBase.h b/src/eigen/Eigen/src/SparseCore/SparseMatrixBase.h index c6b548f11..c6b548f11 100644 --- a/xs/src/eigen/Eigen/src/SparseCore/SparseMatrixBase.h +++ b/src/eigen/Eigen/src/SparseCore/SparseMatrixBase.h diff --git a/xs/src/eigen/Eigen/src/SparseCore/SparsePermutation.h b/src/eigen/Eigen/src/SparseCore/SparsePermutation.h index ef38357ae..ef38357ae 100644 --- a/xs/src/eigen/Eigen/src/SparseCore/SparsePermutation.h +++ b/src/eigen/Eigen/src/SparseCore/SparsePermutation.h diff --git a/xs/src/eigen/Eigen/src/SparseCore/SparseProduct.h b/src/eigen/Eigen/src/SparseCore/SparseProduct.h index 4cbf68781..4cbf68781 100644 --- a/xs/src/eigen/Eigen/src/SparseCore/SparseProduct.h +++ b/src/eigen/Eigen/src/SparseCore/SparseProduct.h diff --git a/xs/src/eigen/Eigen/src/SparseCore/SparseRedux.h b/src/eigen/Eigen/src/SparseCore/SparseRedux.h index 458774962..458774962 100644 --- a/xs/src/eigen/Eigen/src/SparseCore/SparseRedux.h +++ b/src/eigen/Eigen/src/SparseCore/SparseRedux.h diff --git a/xs/src/eigen/Eigen/src/SparseCore/SparseRef.h b/src/eigen/Eigen/src/SparseCore/SparseRef.h index d91f38f97..d91f38f97 100644 --- a/xs/src/eigen/Eigen/src/SparseCore/SparseRef.h +++ b/src/eigen/Eigen/src/SparseCore/SparseRef.h diff --git a/xs/src/eigen/Eigen/src/SparseCore/SparseSelfAdjointView.h b/src/eigen/Eigen/src/SparseCore/SparseSelfAdjointView.h index 65611b3d4..65611b3d4 100644 --- a/xs/src/eigen/Eigen/src/SparseCore/SparseSelfAdjointView.h +++ b/src/eigen/Eigen/src/SparseCore/SparseSelfAdjointView.h diff --git a/xs/src/eigen/Eigen/src/SparseCore/SparseSolverBase.h b/src/eigen/Eigen/src/SparseCore/SparseSolverBase.h index b4c9a422f..b4c9a422f 100644 --- a/xs/src/eigen/Eigen/src/SparseCore/SparseSolverBase.h +++ b/src/eigen/Eigen/src/SparseCore/SparseSolverBase.h diff --git a/xs/src/eigen/Eigen/src/SparseCore/SparseSparseProductWithPruning.h b/src/eigen/Eigen/src/SparseCore/SparseSparseProductWithPruning.h index 88820a48f..88820a48f 100644 --- a/xs/src/eigen/Eigen/src/SparseCore/SparseSparseProductWithPruning.h +++ b/src/eigen/Eigen/src/SparseCore/SparseSparseProductWithPruning.h diff --git a/xs/src/eigen/Eigen/src/SparseCore/SparseTranspose.h b/src/eigen/Eigen/src/SparseCore/SparseTranspose.h index 3757d4c6b..3757d4c6b 100644 --- a/xs/src/eigen/Eigen/src/SparseCore/SparseTranspose.h +++ b/src/eigen/Eigen/src/SparseCore/SparseTranspose.h diff --git a/xs/src/eigen/Eigen/src/SparseCore/SparseTriangularView.h b/src/eigen/Eigen/src/SparseCore/SparseTriangularView.h index 9ac120266..9ac120266 100644 --- a/xs/src/eigen/Eigen/src/SparseCore/SparseTriangularView.h +++ b/src/eigen/Eigen/src/SparseCore/SparseTriangularView.h diff --git a/xs/src/eigen/Eigen/src/SparseCore/SparseUtil.h b/src/eigen/Eigen/src/SparseCore/SparseUtil.h index 74df0d496..74df0d496 100644 --- a/xs/src/eigen/Eigen/src/SparseCore/SparseUtil.h +++ b/src/eigen/Eigen/src/SparseCore/SparseUtil.h diff --git a/xs/src/eigen/Eigen/src/SparseCore/SparseVector.h b/src/eigen/Eigen/src/SparseCore/SparseVector.h index 19b0fbc9d..19b0fbc9d 100644 --- a/xs/src/eigen/Eigen/src/SparseCore/SparseVector.h +++ b/src/eigen/Eigen/src/SparseCore/SparseVector.h diff --git a/xs/src/eigen/Eigen/src/SparseCore/SparseView.h b/src/eigen/Eigen/src/SparseCore/SparseView.h index 7c4aea743..7c4aea743 100644 --- a/xs/src/eigen/Eigen/src/SparseCore/SparseView.h +++ b/src/eigen/Eigen/src/SparseCore/SparseView.h diff --git a/xs/src/eigen/Eigen/src/SparseCore/TriangularSolver.h b/src/eigen/Eigen/src/SparseCore/TriangularSolver.h index f9c56ba79..f9c56ba79 100644 --- a/xs/src/eigen/Eigen/src/SparseCore/TriangularSolver.h +++ b/src/eigen/Eigen/src/SparseCore/TriangularSolver.h diff --git a/xs/src/eigen/Eigen/src/SparseLU/SparseLU.h b/src/eigen/Eigen/src/SparseLU/SparseLU.h index f883ab383..f883ab383 100644 --- a/xs/src/eigen/Eigen/src/SparseLU/SparseLU.h +++ b/src/eigen/Eigen/src/SparseLU/SparseLU.h diff --git a/xs/src/eigen/Eigen/src/SparseLU/SparseLUImpl.h b/src/eigen/Eigen/src/SparseLU/SparseLUImpl.h index fc0cfc4de..fc0cfc4de 100644 --- a/xs/src/eigen/Eigen/src/SparseLU/SparseLUImpl.h +++ b/src/eigen/Eigen/src/SparseLU/SparseLUImpl.h diff --git a/xs/src/eigen/Eigen/src/SparseLU/SparseLU_Memory.h b/src/eigen/Eigen/src/SparseLU/SparseLU_Memory.h index 4dc42e87b..4dc42e87b 100644 --- a/xs/src/eigen/Eigen/src/SparseLU/SparseLU_Memory.h +++ b/src/eigen/Eigen/src/SparseLU/SparseLU_Memory.h diff --git a/xs/src/eigen/Eigen/src/SparseLU/SparseLU_Structs.h b/src/eigen/Eigen/src/SparseLU/SparseLU_Structs.h index cf5ec449b..cf5ec449b 100644 --- a/xs/src/eigen/Eigen/src/SparseLU/SparseLU_Structs.h +++ b/src/eigen/Eigen/src/SparseLU/SparseLU_Structs.h diff --git a/xs/src/eigen/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h b/src/eigen/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h index 721e1883b..721e1883b 100644 --- a/xs/src/eigen/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h +++ b/src/eigen/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h diff --git a/xs/src/eigen/Eigen/src/SparseLU/SparseLU_Utils.h b/src/eigen/Eigen/src/SparseLU/SparseLU_Utils.h index 9e3dab44d..9e3dab44d 100644 --- a/xs/src/eigen/Eigen/src/SparseLU/SparseLU_Utils.h +++ b/src/eigen/Eigen/src/SparseLU/SparseLU_Utils.h diff --git a/xs/src/eigen/Eigen/src/SparseLU/SparseLU_column_bmod.h b/src/eigen/Eigen/src/SparseLU/SparseLU_column_bmod.h index b57f06802..b57f06802 100644 --- a/xs/src/eigen/Eigen/src/SparseLU/SparseLU_column_bmod.h +++ b/src/eigen/Eigen/src/SparseLU/SparseLU_column_bmod.h diff --git a/xs/src/eigen/Eigen/src/SparseLU/SparseLU_column_dfs.h b/src/eigen/Eigen/src/SparseLU/SparseLU_column_dfs.h index c98b30e32..c98b30e32 100644 --- a/xs/src/eigen/Eigen/src/SparseLU/SparseLU_column_dfs.h +++ b/src/eigen/Eigen/src/SparseLU/SparseLU_column_dfs.h diff --git a/xs/src/eigen/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h b/src/eigen/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h index c32d8d8b1..c32d8d8b1 100644 --- a/xs/src/eigen/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h +++ b/src/eigen/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h diff --git a/xs/src/eigen/Eigen/src/SparseLU/SparseLU_gemm_kernel.h b/src/eigen/Eigen/src/SparseLU/SparseLU_gemm_kernel.h index 95ba7413f..95ba7413f 100644 --- a/xs/src/eigen/Eigen/src/SparseLU/SparseLU_gemm_kernel.h +++ b/src/eigen/Eigen/src/SparseLU/SparseLU_gemm_kernel.h diff --git a/xs/src/eigen/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h b/src/eigen/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h index 6f75d500e..6f75d500e 100644 --- a/xs/src/eigen/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h +++ b/src/eigen/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h diff --git a/xs/src/eigen/Eigen/src/SparseLU/SparseLU_kernel_bmod.h b/src/eigen/Eigen/src/SparseLU/SparseLU_kernel_bmod.h index 8c1b3e8bc..8c1b3e8bc 100644 --- a/xs/src/eigen/Eigen/src/SparseLU/SparseLU_kernel_bmod.h +++ b/src/eigen/Eigen/src/SparseLU/SparseLU_kernel_bmod.h diff --git a/xs/src/eigen/Eigen/src/SparseLU/SparseLU_panel_bmod.h b/src/eigen/Eigen/src/SparseLU/SparseLU_panel_bmod.h index 822cf32c3..822cf32c3 100644 --- a/xs/src/eigen/Eigen/src/SparseLU/SparseLU_panel_bmod.h +++ b/src/eigen/Eigen/src/SparseLU/SparseLU_panel_bmod.h diff --git a/xs/src/eigen/Eigen/src/SparseLU/SparseLU_panel_dfs.h b/src/eigen/Eigen/src/SparseLU/SparseLU_panel_dfs.h index 155df7336..155df7336 100644 --- a/xs/src/eigen/Eigen/src/SparseLU/SparseLU_panel_dfs.h +++ b/src/eigen/Eigen/src/SparseLU/SparseLU_panel_dfs.h diff --git a/xs/src/eigen/Eigen/src/SparseLU/SparseLU_pivotL.h b/src/eigen/Eigen/src/SparseLU/SparseLU_pivotL.h index a86dac93f..a86dac93f 100644 --- a/xs/src/eigen/Eigen/src/SparseLU/SparseLU_pivotL.h +++ b/src/eigen/Eigen/src/SparseLU/SparseLU_pivotL.h diff --git a/xs/src/eigen/Eigen/src/SparseLU/SparseLU_pruneL.h b/src/eigen/Eigen/src/SparseLU/SparseLU_pruneL.h index ad32fed5e..ad32fed5e 100644 --- a/xs/src/eigen/Eigen/src/SparseLU/SparseLU_pruneL.h +++ b/src/eigen/Eigen/src/SparseLU/SparseLU_pruneL.h diff --git a/xs/src/eigen/Eigen/src/SparseLU/SparseLU_relax_snode.h b/src/eigen/Eigen/src/SparseLU/SparseLU_relax_snode.h index c408d01b4..c408d01b4 100644 --- a/xs/src/eigen/Eigen/src/SparseLU/SparseLU_relax_snode.h +++ b/src/eigen/Eigen/src/SparseLU/SparseLU_relax_snode.h diff --git a/xs/src/eigen/Eigen/src/SparseQR/SparseQR.h b/src/eigen/Eigen/src/SparseQR/SparseQR.h index 7409fcae9..7409fcae9 100644 --- a/xs/src/eigen/Eigen/src/SparseQR/SparseQR.h +++ b/src/eigen/Eigen/src/SparseQR/SparseQR.h diff --git a/xs/src/eigen/Eigen/src/StlSupport/StdDeque.h b/src/eigen/Eigen/src/StlSupport/StdDeque.h index cf1fedf92..cf1fedf92 100644 --- a/xs/src/eigen/Eigen/src/StlSupport/StdDeque.h +++ b/src/eigen/Eigen/src/StlSupport/StdDeque.h diff --git a/xs/src/eigen/Eigen/src/StlSupport/StdList.h b/src/eigen/Eigen/src/StlSupport/StdList.h index e1eba4985..e1eba4985 100644 --- a/xs/src/eigen/Eigen/src/StlSupport/StdList.h +++ b/src/eigen/Eigen/src/StlSupport/StdList.h diff --git a/xs/src/eigen/Eigen/src/StlSupport/StdVector.h b/src/eigen/Eigen/src/StlSupport/StdVector.h index ec22821d2..ec22821d2 100644 --- a/xs/src/eigen/Eigen/src/StlSupport/StdVector.h +++ b/src/eigen/Eigen/src/StlSupport/StdVector.h diff --git a/xs/src/eigen/Eigen/src/StlSupport/details.h b/src/eigen/Eigen/src/StlSupport/details.h index 2cfd13e03..2cfd13e03 100644 --- a/xs/src/eigen/Eigen/src/StlSupport/details.h +++ b/src/eigen/Eigen/src/StlSupport/details.h diff --git a/xs/src/eigen/Eigen/src/SuperLUSupport/SuperLUSupport.h b/src/eigen/Eigen/src/SuperLUSupport/SuperLUSupport.h index 50a69f306..50a69f306 100644 --- a/xs/src/eigen/Eigen/src/SuperLUSupport/SuperLUSupport.h +++ b/src/eigen/Eigen/src/SuperLUSupport/SuperLUSupport.h diff --git a/xs/src/eigen/Eigen/src/UmfPackSupport/UmfPackSupport.h b/src/eigen/Eigen/src/UmfPackSupport/UmfPackSupport.h index 91c09ab13..91c09ab13 100644 --- a/xs/src/eigen/Eigen/src/UmfPackSupport/UmfPackSupport.h +++ b/src/eigen/Eigen/src/UmfPackSupport/UmfPackSupport.h diff --git a/xs/src/eigen/Eigen/src/misc/Image.h b/src/eigen/Eigen/src/misc/Image.h index b8b8a0455..b8b8a0455 100644 --- a/xs/src/eigen/Eigen/src/misc/Image.h +++ b/src/eigen/Eigen/src/misc/Image.h diff --git a/xs/src/eigen/Eigen/src/misc/Kernel.h b/src/eigen/Eigen/src/misc/Kernel.h index bef5d6ff5..bef5d6ff5 100644 --- a/xs/src/eigen/Eigen/src/misc/Kernel.h +++ b/src/eigen/Eigen/src/misc/Kernel.h diff --git a/xs/src/eigen/Eigen/src/misc/RealSvd2x2.h b/src/eigen/Eigen/src/misc/RealSvd2x2.h index abb4d3c2f..abb4d3c2f 100644 --- a/xs/src/eigen/Eigen/src/misc/RealSvd2x2.h +++ b/src/eigen/Eigen/src/misc/RealSvd2x2.h diff --git a/xs/src/eigen/Eigen/src/misc/blas.h b/src/eigen/Eigen/src/misc/blas.h index 25215b15e..25215b15e 100644 --- a/xs/src/eigen/Eigen/src/misc/blas.h +++ b/src/eigen/Eigen/src/misc/blas.h diff --git a/xs/src/eigen/Eigen/src/misc/lapack.h b/src/eigen/Eigen/src/misc/lapack.h index 249f3575c..249f3575c 100644 --- a/xs/src/eigen/Eigen/src/misc/lapack.h +++ b/src/eigen/Eigen/src/misc/lapack.h diff --git a/xs/src/eigen/Eigen/src/misc/lapacke.h b/src/eigen/Eigen/src/misc/lapacke.h index 8c7e79b03..8c7e79b03 100644 --- a/xs/src/eigen/Eigen/src/misc/lapacke.h +++ b/src/eigen/Eigen/src/misc/lapacke.h diff --git a/xs/src/eigen/Eigen/src/misc/lapacke_mangling.h b/src/eigen/Eigen/src/misc/lapacke_mangling.h index 6211fd144..6211fd144 100644 --- a/xs/src/eigen/Eigen/src/misc/lapacke_mangling.h +++ b/src/eigen/Eigen/src/misc/lapacke_mangling.h diff --git a/xs/src/eigen/Eigen/src/plugins/ArrayCwiseBinaryOps.h b/src/eigen/Eigen/src/plugins/ArrayCwiseBinaryOps.h index 1f8a531af..1f8a531af 100644 --- a/xs/src/eigen/Eigen/src/plugins/ArrayCwiseBinaryOps.h +++ b/src/eigen/Eigen/src/plugins/ArrayCwiseBinaryOps.h diff --git a/xs/src/eigen/Eigen/src/plugins/ArrayCwiseUnaryOps.h b/src/eigen/Eigen/src/plugins/ArrayCwiseUnaryOps.h index ebaa3f192..ebaa3f192 100644 --- a/xs/src/eigen/Eigen/src/plugins/ArrayCwiseUnaryOps.h +++ b/src/eigen/Eigen/src/plugins/ArrayCwiseUnaryOps.h diff --git a/xs/src/eigen/Eigen/src/plugins/BlockMethods.h b/src/eigen/Eigen/src/plugins/BlockMethods.h index ac35a0086..ac35a0086 100644 --- a/xs/src/eigen/Eigen/src/plugins/BlockMethods.h +++ b/src/eigen/Eigen/src/plugins/BlockMethods.h diff --git a/xs/src/eigen/Eigen/src/plugins/CommonCwiseBinaryOps.h b/src/eigen/Eigen/src/plugins/CommonCwiseBinaryOps.h index 8b6730ede..8b6730ede 100644 --- a/xs/src/eigen/Eigen/src/plugins/CommonCwiseBinaryOps.h +++ b/src/eigen/Eigen/src/plugins/CommonCwiseBinaryOps.h diff --git a/xs/src/eigen/Eigen/src/plugins/CommonCwiseUnaryOps.h b/src/eigen/Eigen/src/plugins/CommonCwiseUnaryOps.h index 89f4faaac..89f4faaac 100644 --- a/xs/src/eigen/Eigen/src/plugins/CommonCwiseUnaryOps.h +++ b/src/eigen/Eigen/src/plugins/CommonCwiseUnaryOps.h diff --git a/xs/src/eigen/Eigen/src/plugins/MatrixCwiseBinaryOps.h b/src/eigen/Eigen/src/plugins/MatrixCwiseBinaryOps.h index f1084abef..f1084abef 100644 --- a/xs/src/eigen/Eigen/src/plugins/MatrixCwiseBinaryOps.h +++ b/src/eigen/Eigen/src/plugins/MatrixCwiseBinaryOps.h diff --git a/xs/src/eigen/Eigen/src/plugins/MatrixCwiseUnaryOps.h b/src/eigen/Eigen/src/plugins/MatrixCwiseUnaryOps.h index b1be3d566..b1be3d566 100644 --- a/xs/src/eigen/Eigen/src/plugins/MatrixCwiseUnaryOps.h +++ b/src/eigen/Eigen/src/plugins/MatrixCwiseUnaryOps.h diff --git a/xs/src/eigen/README.md b/src/eigen/README.md index 39892c00b..39892c00b 100644 --- a/xs/src/eigen/README.md +++ b/src/eigen/README.md diff --git a/xs/src/expat/COPYING b/src/expat/COPYING index 092c83bae..092c83bae 100644 --- a/xs/src/expat/COPYING +++ b/src/expat/COPYING diff --git a/xs/src/expat/README b/src/expat/README index 40873a6f8..40873a6f8 100644 --- a/xs/src/expat/README +++ b/src/expat/README diff --git a/xs/src/expat/ascii.h b/src/expat/ascii.h index d10530b09..d10530b09 100644 --- a/xs/src/expat/ascii.h +++ b/src/expat/ascii.h diff --git a/xs/src/expat/asciitab.h b/src/expat/asciitab.h index 79a15c28c..79a15c28c 100644 --- a/xs/src/expat/asciitab.h +++ b/src/expat/asciitab.h diff --git a/xs/src/expat/expat.h b/src/expat/expat.h index 086e24b39..086e24b39 100644 --- a/xs/src/expat/expat.h +++ b/src/expat/expat.h diff --git a/xs/src/expat/expat_config.h b/src/expat/expat_config.h index 8aa80db0d..8aa80db0d 100644 --- a/xs/src/expat/expat_config.h +++ b/src/expat/expat_config.h diff --git a/xs/src/expat/expat_external.h b/src/expat/expat_external.h index 56cd84367..56cd84367 100644 --- a/xs/src/expat/expat_external.h +++ b/src/expat/expat_external.h diff --git a/xs/src/expat/iasciitab.h b/src/expat/iasciitab.h index 24a1d5ccc..24a1d5ccc 100644 --- a/xs/src/expat/iasciitab.h +++ b/src/expat/iasciitab.h diff --git a/xs/src/expat/internal.h b/src/expat/internal.h index 94cb98e15..94cb98e15 100644 --- a/xs/src/expat/internal.h +++ b/src/expat/internal.h diff --git a/xs/src/expat/latin1tab.h b/src/expat/latin1tab.h index 53c25d76b..53c25d76b 100644 --- a/xs/src/expat/latin1tab.h +++ b/src/expat/latin1tab.h diff --git a/xs/src/expat/nametab.h b/src/expat/nametab.h index b05e62c77..b05e62c77 100644 --- a/xs/src/expat/nametab.h +++ b/src/expat/nametab.h diff --git a/xs/src/expat/utf8tab.h b/src/expat/utf8tab.h index 7bb3e7760..7bb3e7760 100644 --- a/xs/src/expat/utf8tab.h +++ b/src/expat/utf8tab.h diff --git a/xs/src/expat/xmlparse.c b/src/expat/xmlparse.c index fbe5e0200..fbe5e0200 100644 --- a/xs/src/expat/xmlparse.c +++ b/src/expat/xmlparse.c diff --git a/xs/src/expat/xmlrole.c b/src/expat/xmlrole.c index 8475238d3..8475238d3 100644 --- a/xs/src/expat/xmlrole.c +++ b/src/expat/xmlrole.c diff --git a/xs/src/expat/xmlrole.h b/src/expat/xmlrole.h index 4dd9f06f9..4dd9f06f9 100644 --- a/xs/src/expat/xmlrole.h +++ b/src/expat/xmlrole.h diff --git a/xs/src/expat/xmltok.c b/src/expat/xmltok.c index f10b459ff..f10b459ff 100644 --- a/xs/src/expat/xmltok.c +++ b/src/expat/xmltok.c diff --git a/xs/src/expat/xmltok.h b/src/expat/xmltok.h index 752007e8b..752007e8b 100644 --- a/xs/src/expat/xmltok.h +++ b/src/expat/xmltok.h diff --git a/xs/src/expat/xmltok_impl.h b/src/expat/xmltok_impl.h index da0ea60a6..da0ea60a6 100644 --- a/xs/src/expat/xmltok_impl.h +++ b/src/expat/xmltok_impl.h diff --git a/xs/src/expat/xmltok_impl.inc b/src/expat/xmltok_impl.inc index 5f779c057..5f779c057 100644 --- a/xs/src/expat/xmltok_impl.inc +++ b/src/expat/xmltok_impl.inc diff --git a/xs/src/expat/xmltok_ns.inc b/src/expat/xmltok_ns.inc index c3b88fdf4..c3b88fdf4 100644 --- a/xs/src/expat/xmltok_ns.inc +++ b/src/expat/xmltok_ns.inc diff --git a/xs/src/glew/LICENSE.txt b/src/glew/LICENSE.txt index f7078042e..f7078042e 100644 --- a/xs/src/glew/LICENSE.txt +++ b/src/glew/LICENSE.txt diff --git a/xs/src/glew/README.md b/src/glew/README.md index f31cd0ce2..f31cd0ce2 100644 --- a/xs/src/glew/README.md +++ b/src/glew/README.md diff --git a/xs/src/glew/include/GL/glew.h b/src/glew/include/GL/glew.h index 702265c38..702265c38 100644 --- a/xs/src/glew/include/GL/glew.h +++ b/src/glew/include/GL/glew.h diff --git a/xs/src/glew/include/GL/glxew.h b/src/glew/include/GL/glxew.h index d803d260b..d803d260b 100644 --- a/xs/src/glew/include/GL/glxew.h +++ b/src/glew/include/GL/glxew.h diff --git a/xs/src/glew/include/GL/wglew.h b/src/glew/include/GL/wglew.h index c13c54a5f..c13c54a5f 100644 --- a/xs/src/glew/include/GL/wglew.h +++ b/src/glew/include/GL/wglew.h diff --git a/xs/src/glew/src/glew.c b/src/glew/src/glew.c index 2ed1c74a5..2ed1c74a5 100644 --- a/xs/src/glew/src/glew.c +++ b/src/glew/src/glew.c diff --git a/xs/src/libnest2d/CMakeLists.txt b/src/libnest2d/CMakeLists.txt index f81355012..f81355012 100644 --- a/xs/src/libnest2d/CMakeLists.txt +++ b/src/libnest2d/CMakeLists.txt diff --git a/xs/src/libnest2d/LICENSE.txt b/src/libnest2d/LICENSE.txt index dba13ed2d..dba13ed2d 100644 --- a/xs/src/libnest2d/LICENSE.txt +++ b/src/libnest2d/LICENSE.txt diff --git a/xs/src/libnest2d/README.md b/src/libnest2d/README.md index 61a7ac7d0..61a7ac7d0 100644 --- a/xs/src/libnest2d/README.md +++ b/src/libnest2d/README.md diff --git a/xs/src/libnest2d/cmake_modules/DownloadNLopt.cmake b/src/libnest2d/cmake_modules/DownloadNLopt.cmake index 0f5392596..0f5392596 100644 --- a/xs/src/libnest2d/cmake_modules/DownloadNLopt.cmake +++ b/src/libnest2d/cmake_modules/DownloadNLopt.cmake diff --git a/xs/src/libnest2d/cmake_modules/DownloadProject.CMakeLists.cmake.in b/src/libnest2d/cmake_modules/DownloadProject.CMakeLists.cmake.in index d5cf3c1d9..d5cf3c1d9 100644 --- a/xs/src/libnest2d/cmake_modules/DownloadProject.CMakeLists.cmake.in +++ b/src/libnest2d/cmake_modules/DownloadProject.CMakeLists.cmake.in diff --git a/xs/src/libnest2d/cmake_modules/DownloadProject.cmake b/src/libnest2d/cmake_modules/DownloadProject.cmake index 1709e09ad..1709e09ad 100644 --- a/xs/src/libnest2d/cmake_modules/DownloadProject.cmake +++ b/src/libnest2d/cmake_modules/DownloadProject.cmake diff --git a/xs/src/libnest2d/cmake_modules/FindClipper.cmake b/src/libnest2d/cmake_modules/FindClipper.cmake index f6b973440..f6b973440 100644 --- a/xs/src/libnest2d/cmake_modules/FindClipper.cmake +++ b/src/libnest2d/cmake_modules/FindClipper.cmake diff --git a/xs/src/libnest2d/cmake_modules/FindNLopt.cmake b/src/libnest2d/cmake_modules/FindNLopt.cmake index 4b93be7b6..4b93be7b6 100644 --- a/xs/src/libnest2d/cmake_modules/FindNLopt.cmake +++ b/src/libnest2d/cmake_modules/FindNLopt.cmake diff --git a/xs/src/libnest2d/cmake_modules/FindTBB.cmake b/src/libnest2d/cmake_modules/FindTBB.cmake index 8b498d3ab..8b498d3ab 100644 --- a/xs/src/libnest2d/cmake_modules/FindTBB.cmake +++ b/src/libnest2d/cmake_modules/FindTBB.cmake diff --git a/xs/src/libnest2d/examples/main.cpp b/src/libnest2d/examples/main.cpp index ebc3fb15c..ebc3fb15c 100644 --- a/xs/src/libnest2d/examples/main.cpp +++ b/src/libnest2d/examples/main.cpp diff --git a/xs/src/libnest2d/libnest2d.h b/src/libnest2d/libnest2d.h index bfd88f4f5..bfd88f4f5 100644 --- a/xs/src/libnest2d/libnest2d.h +++ b/src/libnest2d/libnest2d.h diff --git a/xs/src/libnest2d/libnest2d/boost_alg.hpp b/src/libnest2d/libnest2d/boost_alg.hpp index bb0403b06..bb0403b06 100644 --- a/xs/src/libnest2d/libnest2d/boost_alg.hpp +++ b/src/libnest2d/libnest2d/boost_alg.hpp diff --git a/xs/src/libnest2d/libnest2d/clipper_backend/CMakeLists.txt b/src/libnest2d/libnest2d/clipper_backend/CMakeLists.txt index b6f2de439..b6f2de439 100644 --- a/xs/src/libnest2d/libnest2d/clipper_backend/CMakeLists.txt +++ b/src/libnest2d/libnest2d/clipper_backend/CMakeLists.txt diff --git a/xs/src/libnest2d/libnest2d/clipper_backend/clipper_backend.hpp b/src/libnest2d/libnest2d/clipper_backend/clipper_backend.hpp index 745fd2108..745fd2108 100644 --- a/xs/src/libnest2d/libnest2d/clipper_backend/clipper_backend.hpp +++ b/src/libnest2d/libnest2d/clipper_backend/clipper_backend.hpp diff --git a/xs/src/libnest2d/libnest2d/common.hpp b/src/libnest2d/libnest2d/common.hpp index 6867f76f3..6867f76f3 100644 --- a/xs/src/libnest2d/libnest2d/common.hpp +++ b/src/libnest2d/libnest2d/common.hpp diff --git a/xs/src/libnest2d/libnest2d/geometry_traits.hpp b/src/libnest2d/libnest2d/geometry_traits.hpp index a78a03b3a..a78a03b3a 100644 --- a/xs/src/libnest2d/libnest2d/geometry_traits.hpp +++ b/src/libnest2d/libnest2d/geometry_traits.hpp diff --git a/xs/src/libnest2d/libnest2d/geometry_traits_nfp.hpp b/src/libnest2d/libnest2d/geometry_traits_nfp.hpp index 2982454cd..2982454cd 100644 --- a/xs/src/libnest2d/libnest2d/geometry_traits_nfp.hpp +++ b/src/libnest2d/libnest2d/geometry_traits_nfp.hpp diff --git a/xs/src/libnest2d/libnest2d/libnest2d.hpp b/src/libnest2d/libnest2d/libnest2d.hpp index 8841d1b73..8841d1b73 100644 --- a/xs/src/libnest2d/libnest2d/libnest2d.hpp +++ b/src/libnest2d/libnest2d/libnest2d.hpp diff --git a/xs/src/libnest2d/libnest2d/metaloop.hpp b/src/libnest2d/libnest2d/metaloop.hpp index d88988ba1..d88988ba1 100644 --- a/xs/src/libnest2d/libnest2d/metaloop.hpp +++ b/src/libnest2d/libnest2d/metaloop.hpp diff --git a/xs/src/libnest2d/libnest2d/optimizer.hpp b/src/libnest2d/libnest2d/optimizer.hpp index 90d2f2ff9..90d2f2ff9 100644 --- a/xs/src/libnest2d/libnest2d/optimizer.hpp +++ b/src/libnest2d/libnest2d/optimizer.hpp diff --git a/xs/src/libnest2d/libnest2d/optimizers/genetic.hpp b/src/libnest2d/libnest2d/optimizers/genetic.hpp index 276854a12..276854a12 100644 --- a/xs/src/libnest2d/libnest2d/optimizers/genetic.hpp +++ b/src/libnest2d/libnest2d/optimizers/genetic.hpp diff --git a/xs/src/libnest2d/libnest2d/optimizers/nlopt_boilerplate.hpp b/src/libnest2d/libnest2d/optimizers/nlopt_boilerplate.hpp index 1a0f06e02..1a0f06e02 100644 --- a/xs/src/libnest2d/libnest2d/optimizers/nlopt_boilerplate.hpp +++ b/src/libnest2d/libnest2d/optimizers/nlopt_boilerplate.hpp diff --git a/xs/src/libnest2d/libnest2d/optimizers/simplex.hpp b/src/libnest2d/libnest2d/optimizers/simplex.hpp index 78b09b89a..78b09b89a 100644 --- a/xs/src/libnest2d/libnest2d/optimizers/simplex.hpp +++ b/src/libnest2d/libnest2d/optimizers/simplex.hpp diff --git a/xs/src/libnest2d/libnest2d/optimizers/subplex.hpp b/src/libnest2d/libnest2d/optimizers/subplex.hpp index 841b04057..841b04057 100644 --- a/xs/src/libnest2d/libnest2d/optimizers/subplex.hpp +++ b/src/libnest2d/libnest2d/optimizers/subplex.hpp diff --git a/xs/src/libnest2d/libnest2d/placers/bottomleftplacer.hpp b/src/libnest2d/libnest2d/placers/bottomleftplacer.hpp index 18c27c40c..18c27c40c 100644 --- a/xs/src/libnest2d/libnest2d/placers/bottomleftplacer.hpp +++ b/src/libnest2d/libnest2d/placers/bottomleftplacer.hpp diff --git a/xs/src/libnest2d/libnest2d/placers/nfpplacer.hpp b/src/libnest2d/libnest2d/placers/nfpplacer.hpp index c86fb507e..c86fb507e 100644 --- a/xs/src/libnest2d/libnest2d/placers/nfpplacer.hpp +++ b/src/libnest2d/libnest2d/placers/nfpplacer.hpp diff --git a/xs/src/libnest2d/libnest2d/placers/placer_boilerplate.hpp b/src/libnest2d/libnest2d/placers/placer_boilerplate.hpp index 0df1b8c91..0df1b8c91 100644 --- a/xs/src/libnest2d/libnest2d/placers/placer_boilerplate.hpp +++ b/src/libnest2d/libnest2d/placers/placer_boilerplate.hpp diff --git a/xs/src/libnest2d/libnest2d/rotfinder.hpp b/src/libnest2d/libnest2d/rotfinder.hpp index 525fd8759..525fd8759 100644 --- a/xs/src/libnest2d/libnest2d/rotfinder.hpp +++ b/src/libnest2d/libnest2d/rotfinder.hpp diff --git a/xs/src/libnest2d/libnest2d/selections/djd_heuristic.hpp b/src/libnest2d/libnest2d/selections/djd_heuristic.hpp index 39761f557..39761f557 100644 --- a/xs/src/libnest2d/libnest2d/selections/djd_heuristic.hpp +++ b/src/libnest2d/libnest2d/selections/djd_heuristic.hpp diff --git a/xs/src/libnest2d/libnest2d/selections/filler.hpp b/src/libnest2d/libnest2d/selections/filler.hpp index 5f95a6eff..5f95a6eff 100644 --- a/xs/src/libnest2d/libnest2d/selections/filler.hpp +++ b/src/libnest2d/libnest2d/selections/filler.hpp diff --git a/xs/src/libnest2d/libnest2d/selections/firstfit.hpp b/src/libnest2d/libnest2d/selections/firstfit.hpp index 6bb9c60e4..6bb9c60e4 100644 --- a/xs/src/libnest2d/libnest2d/selections/firstfit.hpp +++ b/src/libnest2d/libnest2d/selections/firstfit.hpp diff --git a/xs/src/libnest2d/libnest2d/selections/selection_boilerplate.hpp b/src/libnest2d/libnest2d/selections/selection_boilerplate.hpp index cfb98a9c8..cfb98a9c8 100644 --- a/xs/src/libnest2d/libnest2d/selections/selection_boilerplate.hpp +++ b/src/libnest2d/libnest2d/selections/selection_boilerplate.hpp diff --git a/xs/src/libnest2d/tests/CMakeLists.txt b/src/libnest2d/tests/CMakeLists.txt index 3777f3c56..3777f3c56 100644 --- a/xs/src/libnest2d/tests/CMakeLists.txt +++ b/src/libnest2d/tests/CMakeLists.txt diff --git a/xs/src/libnest2d/tests/printer_parts.cpp b/src/libnest2d/tests/printer_parts.cpp index bdc2a3d43..bdc2a3d43 100644 --- a/xs/src/libnest2d/tests/printer_parts.cpp +++ b/src/libnest2d/tests/printer_parts.cpp diff --git a/xs/src/libnest2d/tests/printer_parts.h b/src/libnest2d/tests/printer_parts.h index b9a4eb8fa..b9a4eb8fa 100644 --- a/xs/src/libnest2d/tests/printer_parts.h +++ b/src/libnest2d/tests/printer_parts.h diff --git a/xs/src/libnest2d/tests/test.cpp b/src/libnest2d/tests/test.cpp index 323fb8d31..323fb8d31 100644 --- a/xs/src/libnest2d/tests/test.cpp +++ b/src/libnest2d/tests/test.cpp diff --git a/xs/src/benchmark.h b/src/libnest2d/tools/benchmark.h index 19870b37b..19870b37b 100644 --- a/xs/src/benchmark.h +++ b/src/libnest2d/tools/benchmark.h diff --git a/xs/src/libnest2d/tools/libnfpglue.cpp b/src/libnest2d/tools/libnfpglue.cpp index 31733acf9..31733acf9 100644 --- a/xs/src/libnest2d/tools/libnfpglue.cpp +++ b/src/libnest2d/tools/libnfpglue.cpp diff --git a/xs/src/libnest2d/tools/libnfpglue.hpp b/src/libnest2d/tools/libnfpglue.hpp index 1ff033cb9..1ff033cb9 100644 --- a/xs/src/libnest2d/tools/libnfpglue.hpp +++ b/src/libnest2d/tools/libnfpglue.hpp diff --git a/xs/src/libnest2d/tools/libnfporb/LICENSE b/src/libnest2d/tools/libnfporb/LICENSE index 94a9ed024..94a9ed024 100644 --- a/xs/src/libnest2d/tools/libnfporb/LICENSE +++ b/src/libnest2d/tools/libnfporb/LICENSE diff --git a/xs/src/libnest2d/tools/libnfporb/ORIGIN b/src/libnest2d/tools/libnfporb/ORIGIN index 788bfd9af..788bfd9af 100644 --- a/xs/src/libnest2d/tools/libnfporb/ORIGIN +++ b/src/libnest2d/tools/libnfporb/ORIGIN diff --git a/xs/src/libnest2d/tools/libnfporb/README.md b/src/libnest2d/tools/libnfporb/README.md index 9698972be..9698972be 100644 --- a/xs/src/libnest2d/tools/libnfporb/README.md +++ b/src/libnest2d/tools/libnfporb/README.md diff --git a/xs/src/libnest2d/tools/libnfporb/libnfporb.hpp b/src/libnest2d/tools/libnfporb/libnfporb.hpp index 8cb34567e..8cb34567e 100644 --- a/xs/src/libnest2d/tools/libnfporb/libnfporb.hpp +++ b/src/libnest2d/tools/libnfporb/libnfporb.hpp diff --git a/xs/src/libnest2d/tools/nfp_svgnest.hpp b/src/libnest2d/tools/nfp_svgnest.hpp index ac5700c10..ac5700c10 100644 --- a/xs/src/libnest2d/tools/nfp_svgnest.hpp +++ b/src/libnest2d/tools/nfp_svgnest.hpp diff --git a/xs/src/libnest2d/tools/nfp_svgnest_glue.hpp b/src/libnest2d/tools/nfp_svgnest_glue.hpp index ea1fb4d07..ea1fb4d07 100644 --- a/xs/src/libnest2d/tools/nfp_svgnest_glue.hpp +++ b/src/libnest2d/tools/nfp_svgnest_glue.hpp diff --git a/xs/src/libnest2d/tools/svgtools.hpp b/src/libnest2d/tools/svgtools.hpp index 776dd5a1a..776dd5a1a 100644 --- a/xs/src/libnest2d/tools/svgtools.hpp +++ b/src/libnest2d/tools/svgtools.hpp diff --git a/xs/src/libslic3r/BoundingBox.cpp b/src/libslic3r/BoundingBox.cpp index d3cca7ff2..d3cca7ff2 100644 --- a/xs/src/libslic3r/BoundingBox.cpp +++ b/src/libslic3r/BoundingBox.cpp diff --git a/xs/src/libslic3r/BoundingBox.hpp b/src/libslic3r/BoundingBox.hpp index b3a1c2f5c..b3a1c2f5c 100644 --- a/xs/src/libslic3r/BoundingBox.hpp +++ b/src/libslic3r/BoundingBox.hpp diff --git a/xs/src/libslic3r/BridgeDetector.cpp b/src/libslic3r/BridgeDetector.cpp index ccc3505ce..ccc3505ce 100644 --- a/xs/src/libslic3r/BridgeDetector.cpp +++ b/src/libslic3r/BridgeDetector.cpp diff --git a/xs/src/libslic3r/BridgeDetector.hpp b/src/libslic3r/BridgeDetector.hpp index 5c55276be..5c55276be 100644 --- a/xs/src/libslic3r/BridgeDetector.hpp +++ b/src/libslic3r/BridgeDetector.hpp diff --git a/src/libslic3r/CMakeLists.txt b/src/libslic3r/CMakeLists.txt new file mode 100644 index 000000000..6955dd1e7 --- /dev/null +++ b/src/libslic3r/CMakeLists.txt @@ -0,0 +1,173 @@ +project(libslic3r) +cmake_minimum_required(VERSION 2.6) + +add_library(libslic3r STATIC + BoundingBox.cpp + BoundingBox.hpp + BridgeDetector.cpp + BridgeDetector.hpp + ClipperUtils.cpp + ClipperUtils.hpp + Config.cpp + Config.hpp + EdgeGrid.cpp + EdgeGrid.hpp + ExPolygon.cpp + ExPolygon.hpp + ExPolygonCollection.cpp + ExPolygonCollection.hpp + Extruder.cpp + Extruder.hpp + ExtrusionEntity.cpp + ExtrusionEntity.hpp + ExtrusionEntityCollection.cpp + ExtrusionEntityCollection.hpp + ExtrusionSimulator.cpp + ExtrusionSimulator.hpp + FileParserError.hpp + Fill/Fill.cpp + Fill/Fill.hpp + Fill/Fill3DHoneycomb.cpp + Fill/Fill3DHoneycomb.hpp + Fill/FillBase.cpp + Fill/FillBase.hpp + Fill/FillConcentric.cpp + Fill/FillConcentric.hpp + Fill/FillHoneycomb.cpp + Fill/FillHoneycomb.hpp + Fill/FillGyroid.cpp + Fill/FillGyroid.hpp + Fill/FillPlanePath.cpp + Fill/FillPlanePath.hpp + Fill/FillRectilinear.cpp + Fill/FillRectilinear.hpp + Fill/FillRectilinear2.cpp + Fill/FillRectilinear2.hpp + Fill/FillRectilinear3.cpp + Fill/FillRectilinear3.hpp + Flow.cpp + Flow.hpp + Format/3mf.cpp + Format/3mf.hpp + Format/AMF.cpp + Format/AMF.hpp + Format/OBJ.cpp + Format/OBJ.hpp + Format/objparser.cpp + Format/objparser.hpp + Format/PRUS.cpp + Format/PRUS.hpp + Format/STL.cpp + Format/STL.hpp + GCode/Analyzer.cpp + GCode/Analyzer.hpp + GCode/CoolingBuffer.cpp + GCode/CoolingBuffer.hpp + GCode/PostProcessor.cpp + GCode/PostProcessor.hpp + GCode/PressureEqualizer.cpp + GCode/PressureEqualizer.hpp + GCode/PreviewData.cpp + GCode/PreviewData.hpp + GCode/PrintExtents.cpp + GCode/PrintExtents.hpp + GCode/SpiralVase.cpp + GCode/SpiralVase.hpp + GCode/ToolOrdering.cpp + GCode/ToolOrdering.hpp + GCode/WipeTower.hpp + GCode/WipeTowerPrusaMM.cpp + GCode/WipeTowerPrusaMM.hpp + GCode.cpp + GCode.hpp + GCodeReader.cpp + GCodeReader.hpp + GCodeSender.cpp + GCodeSender.hpp + GCodeTimeEstimator.cpp + GCodeTimeEstimator.hpp + GCodeWriter.cpp + GCodeWriter.hpp + Geometry.cpp + Geometry.hpp + Int128.hpp +# KdTree.hpp + Layer.cpp + Layer.hpp + LayerRegion.cpp + libslic3r.h + Line.cpp + Line.hpp + Model.cpp + Model.hpp + ModelArrange.hpp + MotionPlanner.cpp + MotionPlanner.hpp + MultiPoint.cpp + MultiPoint.hpp + MutablePriorityQueue.hpp + PerimeterGenerator.cpp + PerimeterGenerator.hpp + PlaceholderParser.cpp + PlaceholderParser.hpp + Point.cpp + Point.hpp + Polygon.cpp + Polygon.hpp + Polyline.cpp + Polyline.hpp + PolylineCollection.cpp + PolylineCollection.hpp + Print.cpp + Print.hpp + PrintExport.hpp + PrintConfig.cpp + PrintConfig.hpp + PrintObject.cpp + PrintRegion.cpp + Rasterizer/Rasterizer.hpp + Rasterizer/Rasterizer.cpp + Slicing.cpp + Slicing.hpp + SlicingAdaptive.cpp + SlicingAdaptive.hpp + SupportMaterial.cpp + SupportMaterial.hpp + Surface.cpp + Surface.hpp + SurfaceCollection.cpp + SurfaceCollection.hpp + SVG.cpp + SVG.hpp + Technologies.hpp + TriangleMesh.cpp + TriangleMesh.hpp + SLABasePool.hpp + SLABasePool.cpp + utils.cpp + Utils.hpp +) + +target_compile_definitions(libslic3r PUBLIC -DUSE_TBB ${PNG_DEFINITIONS}) +target_include_directories(libslic3r PUBLIC BEFORE ${LIBNEST2D_INCLUDES} ${PNG_INCLUDE_DIRS}) +target_link_libraries(libslic3r + ${LIBNEST2D_LIBRARIES} + admesh + miniz + ${Boost_LIBRARIES} + clipper + nowide + ${EXPAT_LIBRARIES} + ${GLEW_LIBRARIES} + ${PNG_LIBRARIES} + polypartition + poly2tri + qhull + semver + ${TBB_LIBRARIES} +# ${wxWidgets_LIBRARIES} + ) + +if(SLIC3R_PROFILE) + target_link_libraries(slic3r Shiny) +endif() diff --git a/xs/src/libslic3r/ClipperUtils.cpp b/src/libslic3r/ClipperUtils.cpp index f00e908ce..f00e908ce 100644 --- a/xs/src/libslic3r/ClipperUtils.cpp +++ b/src/libslic3r/ClipperUtils.cpp diff --git a/xs/src/libslic3r/ClipperUtils.hpp b/src/libslic3r/ClipperUtils.hpp index b065cfe07..b065cfe07 100644 --- a/xs/src/libslic3r/ClipperUtils.hpp +++ b/src/libslic3r/ClipperUtils.hpp diff --git a/xs/src/libslic3r/Config.cpp b/src/libslic3r/Config.cpp index e7442d773..e7442d773 100644 --- a/xs/src/libslic3r/Config.cpp +++ b/src/libslic3r/Config.cpp diff --git a/xs/src/libslic3r/Config.hpp b/src/libslic3r/Config.hpp index e3cd14335..e3cd14335 100644 --- a/xs/src/libslic3r/Config.hpp +++ b/src/libslic3r/Config.hpp diff --git a/xs/src/libslic3r/EdgeGrid.cpp b/src/libslic3r/EdgeGrid.cpp index 2b2893c80..2b2893c80 100644 --- a/xs/src/libslic3r/EdgeGrid.cpp +++ b/src/libslic3r/EdgeGrid.cpp diff --git a/xs/src/libslic3r/EdgeGrid.hpp b/src/libslic3r/EdgeGrid.hpp index ab1aa4ed0..ab1aa4ed0 100644 --- a/xs/src/libslic3r/EdgeGrid.hpp +++ b/src/libslic3r/EdgeGrid.hpp diff --git a/xs/src/libslic3r/ExPolygon.cpp b/src/libslic3r/ExPolygon.cpp index 00bb4ffe4..00bb4ffe4 100644 --- a/xs/src/libslic3r/ExPolygon.cpp +++ b/src/libslic3r/ExPolygon.cpp diff --git a/xs/src/libslic3r/ExPolygon.hpp b/src/libslic3r/ExPolygon.hpp index 4833ee49e..4833ee49e 100644 --- a/xs/src/libslic3r/ExPolygon.hpp +++ b/src/libslic3r/ExPolygon.hpp diff --git a/xs/src/libslic3r/ExPolygonCollection.cpp b/src/libslic3r/ExPolygonCollection.cpp index 6933544b6..6933544b6 100644 --- a/xs/src/libslic3r/ExPolygonCollection.cpp +++ b/src/libslic3r/ExPolygonCollection.cpp diff --git a/xs/src/libslic3r/ExPolygonCollection.hpp b/src/libslic3r/ExPolygonCollection.hpp index 4c181cd6a..4c181cd6a 100644 --- a/xs/src/libslic3r/ExPolygonCollection.hpp +++ b/src/libslic3r/ExPolygonCollection.hpp diff --git a/xs/src/libslic3r/Extruder.cpp b/src/libslic3r/Extruder.cpp index 74d900825..74d900825 100644 --- a/xs/src/libslic3r/Extruder.cpp +++ b/src/libslic3r/Extruder.cpp diff --git a/xs/src/libslic3r/Extruder.hpp b/src/libslic3r/Extruder.hpp index df92bf84b..df92bf84b 100644 --- a/xs/src/libslic3r/Extruder.hpp +++ b/src/libslic3r/Extruder.hpp diff --git a/xs/src/libslic3r/ExtrusionEntity.cpp b/src/libslic3r/ExtrusionEntity.cpp index 92f0d3669..92f0d3669 100644 --- a/xs/src/libslic3r/ExtrusionEntity.cpp +++ b/src/libslic3r/ExtrusionEntity.cpp diff --git a/xs/src/libslic3r/ExtrusionEntity.hpp b/src/libslic3r/ExtrusionEntity.hpp index cce3020f8..cce3020f8 100644 --- a/xs/src/libslic3r/ExtrusionEntity.hpp +++ b/src/libslic3r/ExtrusionEntity.hpp diff --git a/xs/src/libslic3r/ExtrusionEntityCollection.cpp b/src/libslic3r/ExtrusionEntityCollection.cpp index 7a086bcbf..7a086bcbf 100644 --- a/xs/src/libslic3r/ExtrusionEntityCollection.cpp +++ b/src/libslic3r/ExtrusionEntityCollection.cpp diff --git a/xs/src/libslic3r/ExtrusionEntityCollection.hpp b/src/libslic3r/ExtrusionEntityCollection.hpp index 230c04160..230c04160 100644 --- a/xs/src/libslic3r/ExtrusionEntityCollection.hpp +++ b/src/libslic3r/ExtrusionEntityCollection.hpp diff --git a/xs/src/libslic3r/ExtrusionSimulator.cpp b/src/libslic3r/ExtrusionSimulator.cpp index fcb2fe825..fcb2fe825 100644 --- a/xs/src/libslic3r/ExtrusionSimulator.cpp +++ b/src/libslic3r/ExtrusionSimulator.cpp diff --git a/xs/src/libslic3r/ExtrusionSimulator.hpp b/src/libslic3r/ExtrusionSimulator.hpp index 040406766..040406766 100644 --- a/xs/src/libslic3r/ExtrusionSimulator.hpp +++ b/src/libslic3r/ExtrusionSimulator.hpp diff --git a/xs/src/libslic3r/FileParserError.hpp b/src/libslic3r/FileParserError.hpp index 3f560fa4f..3f560fa4f 100644 --- a/xs/src/libslic3r/FileParserError.hpp +++ b/src/libslic3r/FileParserError.hpp diff --git a/xs/src/libslic3r/Fill/Fill.cpp b/src/libslic3r/Fill/Fill.cpp index f1436c931..f1436c931 100644 --- a/xs/src/libslic3r/Fill/Fill.cpp +++ b/src/libslic3r/Fill/Fill.cpp diff --git a/xs/src/libslic3r/Fill/Fill.hpp b/src/libslic3r/Fill/Fill.hpp index c04305c04..c04305c04 100644 --- a/xs/src/libslic3r/Fill/Fill.hpp +++ b/src/libslic3r/Fill/Fill.hpp diff --git a/xs/src/libslic3r/Fill/Fill3DHoneycomb.cpp b/src/libslic3r/Fill/Fill3DHoneycomb.cpp index 6a37e4369..6a37e4369 100644 --- a/xs/src/libslic3r/Fill/Fill3DHoneycomb.cpp +++ b/src/libslic3r/Fill/Fill3DHoneycomb.cpp diff --git a/xs/src/libslic3r/Fill/Fill3DHoneycomb.hpp b/src/libslic3r/Fill/Fill3DHoneycomb.hpp index 52b792251..52b792251 100644 --- a/xs/src/libslic3r/Fill/Fill3DHoneycomb.hpp +++ b/src/libslic3r/Fill/Fill3DHoneycomb.hpp diff --git a/xs/src/libslic3r/Fill/FillBase.cpp b/src/libslic3r/Fill/FillBase.cpp index 7a99e84f7..7a99e84f7 100644 --- a/xs/src/libslic3r/Fill/FillBase.cpp +++ b/src/libslic3r/Fill/FillBase.cpp diff --git a/xs/src/libslic3r/Fill/FillBase.hpp b/src/libslic3r/Fill/FillBase.hpp index b67d14339..b67d14339 100644 --- a/xs/src/libslic3r/Fill/FillBase.hpp +++ b/src/libslic3r/Fill/FillBase.hpp diff --git a/xs/src/libslic3r/Fill/FillConcentric.cpp b/src/libslic3r/Fill/FillConcentric.cpp index 8a3a7ea89..8a3a7ea89 100644 --- a/xs/src/libslic3r/Fill/FillConcentric.cpp +++ b/src/libslic3r/Fill/FillConcentric.cpp diff --git a/xs/src/libslic3r/Fill/FillConcentric.hpp b/src/libslic3r/Fill/FillConcentric.hpp index 1286858ea..1286858ea 100644 --- a/xs/src/libslic3r/Fill/FillConcentric.hpp +++ b/src/libslic3r/Fill/FillConcentric.hpp diff --git a/xs/src/libslic3r/Fill/FillGyroid.cpp b/src/libslic3r/Fill/FillGyroid.cpp index d6bf03ce6..d6bf03ce6 100644 --- a/xs/src/libslic3r/Fill/FillGyroid.cpp +++ b/src/libslic3r/Fill/FillGyroid.cpp diff --git a/xs/src/libslic3r/Fill/FillGyroid.hpp b/src/libslic3r/Fill/FillGyroid.hpp index 17924b5ab..17924b5ab 100644 --- a/xs/src/libslic3r/Fill/FillGyroid.hpp +++ b/src/libslic3r/Fill/FillGyroid.hpp diff --git a/xs/src/libslic3r/Fill/FillHoneycomb.cpp b/src/libslic3r/Fill/FillHoneycomb.cpp index cbfe926f2..cbfe926f2 100644 --- a/xs/src/libslic3r/Fill/FillHoneycomb.cpp +++ b/src/libslic3r/Fill/FillHoneycomb.cpp diff --git a/xs/src/libslic3r/Fill/FillHoneycomb.hpp b/src/libslic3r/Fill/FillHoneycomb.hpp index 4717602d4..4717602d4 100644 --- a/xs/src/libslic3r/Fill/FillHoneycomb.hpp +++ b/src/libslic3r/Fill/FillHoneycomb.hpp diff --git a/xs/src/libslic3r/Fill/FillPlanePath.cpp b/src/libslic3r/Fill/FillPlanePath.cpp index 615cc6efe..615cc6efe 100644 --- a/xs/src/libslic3r/Fill/FillPlanePath.cpp +++ b/src/libslic3r/Fill/FillPlanePath.cpp diff --git a/xs/src/libslic3r/Fill/FillPlanePath.hpp b/src/libslic3r/Fill/FillPlanePath.hpp index 49fb2b387..49fb2b387 100644 --- a/xs/src/libslic3r/Fill/FillPlanePath.hpp +++ b/src/libslic3r/Fill/FillPlanePath.hpp diff --git a/xs/src/libslic3r/Fill/FillRectilinear.cpp b/src/libslic3r/Fill/FillRectilinear.cpp index 205eb1b66..205eb1b66 100644 --- a/xs/src/libslic3r/Fill/FillRectilinear.cpp +++ b/src/libslic3r/Fill/FillRectilinear.cpp diff --git a/xs/src/libslic3r/Fill/FillRectilinear.hpp b/src/libslic3r/Fill/FillRectilinear.hpp index 1be85f755..1be85f755 100644 --- a/xs/src/libslic3r/Fill/FillRectilinear.hpp +++ b/src/libslic3r/Fill/FillRectilinear.hpp diff --git a/xs/src/libslic3r/Fill/FillRectilinear2.cpp b/src/libslic3r/Fill/FillRectilinear2.cpp index 65440d0ef..65440d0ef 100644 --- a/xs/src/libslic3r/Fill/FillRectilinear2.cpp +++ b/src/libslic3r/Fill/FillRectilinear2.cpp diff --git a/xs/src/libslic3r/Fill/FillRectilinear2.hpp b/src/libslic3r/Fill/FillRectilinear2.hpp index 4459919b0..4459919b0 100644 --- a/xs/src/libslic3r/Fill/FillRectilinear2.hpp +++ b/src/libslic3r/Fill/FillRectilinear2.hpp diff --git a/xs/src/libslic3r/Fill/FillRectilinear3.cpp b/src/libslic3r/Fill/FillRectilinear3.cpp index 8fc129eac..8fc129eac 100644 --- a/xs/src/libslic3r/Fill/FillRectilinear3.cpp +++ b/src/libslic3r/Fill/FillRectilinear3.cpp diff --git a/xs/src/libslic3r/Fill/FillRectilinear3.hpp b/src/libslic3r/Fill/FillRectilinear3.hpp index 2023a25b7..2023a25b7 100644 --- a/xs/src/libslic3r/Fill/FillRectilinear3.hpp +++ b/src/libslic3r/Fill/FillRectilinear3.hpp diff --git a/xs/src/libslic3r/Flow.cpp b/src/libslic3r/Flow.cpp index e71b935db..e71b935db 100644 --- a/xs/src/libslic3r/Flow.cpp +++ b/src/libslic3r/Flow.cpp diff --git a/xs/src/libslic3r/Flow.hpp b/src/libslic3r/Flow.hpp index 516490b35..516490b35 100644 --- a/xs/src/libslic3r/Flow.hpp +++ b/src/libslic3r/Flow.hpp diff --git a/xs/src/libslic3r/Format/3mf.cpp b/src/libslic3r/Format/3mf.cpp index 43c99f19f..43c99f19f 100644 --- a/xs/src/libslic3r/Format/3mf.cpp +++ b/src/libslic3r/Format/3mf.cpp diff --git a/xs/src/libslic3r/Format/3mf.hpp b/src/libslic3r/Format/3mf.hpp index 85bc812e3..85bc812e3 100644 --- a/xs/src/libslic3r/Format/3mf.hpp +++ b/src/libslic3r/Format/3mf.hpp diff --git a/xs/src/libslic3r/Format/AMF.cpp b/src/libslic3r/Format/AMF.cpp index 458ce79de..458ce79de 100644 --- a/xs/src/libslic3r/Format/AMF.cpp +++ b/src/libslic3r/Format/AMF.cpp diff --git a/xs/src/libslic3r/Format/AMF.hpp b/src/libslic3r/Format/AMF.hpp index 4779e9a51..4779e9a51 100644 --- a/xs/src/libslic3r/Format/AMF.hpp +++ b/src/libslic3r/Format/AMF.hpp diff --git a/xs/src/libslic3r/Format/OBJ.cpp b/src/libslic3r/Format/OBJ.cpp index ee5756083..ee5756083 100644 --- a/xs/src/libslic3r/Format/OBJ.cpp +++ b/src/libslic3r/Format/OBJ.cpp diff --git a/xs/src/libslic3r/Format/OBJ.hpp b/src/libslic3r/Format/OBJ.hpp index 9a8790bff..9a8790bff 100644 --- a/xs/src/libslic3r/Format/OBJ.hpp +++ b/src/libslic3r/Format/OBJ.hpp diff --git a/xs/src/libslic3r/Format/PRUS.cpp b/src/libslic3r/Format/PRUS.cpp index 45eb56c63..45eb56c63 100644 --- a/xs/src/libslic3r/Format/PRUS.cpp +++ b/src/libslic3r/Format/PRUS.cpp diff --git a/xs/src/libslic3r/Format/PRUS.hpp b/src/libslic3r/Format/PRUS.hpp index 8559a70d6..8559a70d6 100644 --- a/xs/src/libslic3r/Format/PRUS.hpp +++ b/src/libslic3r/Format/PRUS.hpp diff --git a/xs/src/libslic3r/Format/STL.cpp b/src/libslic3r/Format/STL.cpp index 99e2ff193..99e2ff193 100644 --- a/xs/src/libslic3r/Format/STL.cpp +++ b/src/libslic3r/Format/STL.cpp diff --git a/xs/src/libslic3r/Format/STL.hpp b/src/libslic3r/Format/STL.hpp index 2fd32324c..2fd32324c 100644 --- a/xs/src/libslic3r/Format/STL.hpp +++ b/src/libslic3r/Format/STL.hpp diff --git a/xs/src/libslic3r/Format/objparser.cpp b/src/libslic3r/Format/objparser.cpp index 88dfae695..88dfae695 100644 --- a/xs/src/libslic3r/Format/objparser.cpp +++ b/src/libslic3r/Format/objparser.cpp diff --git a/xs/src/libslic3r/Format/objparser.hpp b/src/libslic3r/Format/objparser.hpp index 5fc25e297..5fc25e297 100644 --- a/xs/src/libslic3r/Format/objparser.hpp +++ b/src/libslic3r/Format/objparser.hpp diff --git a/xs/src/libslic3r/GCode.cpp b/src/libslic3r/GCode.cpp index d10705c18..d10705c18 100644 --- a/xs/src/libslic3r/GCode.cpp +++ b/src/libslic3r/GCode.cpp diff --git a/xs/src/libslic3r/GCode.hpp b/src/libslic3r/GCode.hpp index 45f17a68a..45f17a68a 100644 --- a/xs/src/libslic3r/GCode.hpp +++ b/src/libslic3r/GCode.hpp diff --git a/xs/src/libslic3r/GCode/Analyzer.cpp b/src/libslic3r/GCode/Analyzer.cpp index 51d5b1a06..51d5b1a06 100644 --- a/xs/src/libslic3r/GCode/Analyzer.cpp +++ b/src/libslic3r/GCode/Analyzer.cpp diff --git a/xs/src/libslic3r/GCode/Analyzer.hpp b/src/libslic3r/GCode/Analyzer.hpp index 27a49b869..27a49b869 100644 --- a/xs/src/libslic3r/GCode/Analyzer.hpp +++ b/src/libslic3r/GCode/Analyzer.hpp diff --git a/xs/src/libslic3r/GCode/CoolingBuffer.cpp b/src/libslic3r/GCode/CoolingBuffer.cpp index 40ccc7b09..40ccc7b09 100644 --- a/xs/src/libslic3r/GCode/CoolingBuffer.cpp +++ b/src/libslic3r/GCode/CoolingBuffer.cpp diff --git a/xs/src/libslic3r/GCode/CoolingBuffer.hpp b/src/libslic3r/GCode/CoolingBuffer.hpp index bf4b082e2..bf4b082e2 100644 --- a/xs/src/libslic3r/GCode/CoolingBuffer.hpp +++ b/src/libslic3r/GCode/CoolingBuffer.hpp diff --git a/xs/src/libslic3r/GCode/PostProcessor.cpp b/src/libslic3r/GCode/PostProcessor.cpp index c04aeae3c..c04aeae3c 100644 --- a/xs/src/libslic3r/GCode/PostProcessor.cpp +++ b/src/libslic3r/GCode/PostProcessor.cpp diff --git a/xs/src/libslic3r/GCode/PostProcessor.hpp b/src/libslic3r/GCode/PostProcessor.hpp index ce47374cb..ce47374cb 100644 --- a/xs/src/libslic3r/GCode/PostProcessor.hpp +++ b/src/libslic3r/GCode/PostProcessor.hpp diff --git a/xs/src/libslic3r/GCode/PressureEqualizer.cpp b/src/libslic3r/GCode/PressureEqualizer.cpp index 3b2a58a88..3b2a58a88 100644 --- a/xs/src/libslic3r/GCode/PressureEqualizer.cpp +++ b/src/libslic3r/GCode/PressureEqualizer.cpp diff --git a/xs/src/libslic3r/GCode/PressureEqualizer.hpp b/src/libslic3r/GCode/PressureEqualizer.hpp index 13cdc9418..13cdc9418 100644 --- a/xs/src/libslic3r/GCode/PressureEqualizer.hpp +++ b/src/libslic3r/GCode/PressureEqualizer.hpp diff --git a/xs/src/libslic3r/GCode/PreviewData.cpp b/src/libslic3r/GCode/PreviewData.cpp index 9cf9716e0..9cf9716e0 100644 --- a/xs/src/libslic3r/GCode/PreviewData.cpp +++ b/src/libslic3r/GCode/PreviewData.cpp diff --git a/xs/src/libslic3r/GCode/PreviewData.hpp b/src/libslic3r/GCode/PreviewData.hpp index ab74993f5..ab74993f5 100644 --- a/xs/src/libslic3r/GCode/PreviewData.hpp +++ b/src/libslic3r/GCode/PreviewData.hpp diff --git a/xs/src/libslic3r/GCode/PrintExtents.cpp b/src/libslic3r/GCode/PrintExtents.cpp index 92a58fdf0..92a58fdf0 100644 --- a/xs/src/libslic3r/GCode/PrintExtents.cpp +++ b/src/libslic3r/GCode/PrintExtents.cpp diff --git a/xs/src/libslic3r/GCode/PrintExtents.hpp b/src/libslic3r/GCode/PrintExtents.hpp index db507689d..db507689d 100644 --- a/xs/src/libslic3r/GCode/PrintExtents.hpp +++ b/src/libslic3r/GCode/PrintExtents.hpp diff --git a/xs/src/libslic3r/GCode/SpiralVase.cpp b/src/libslic3r/GCode/SpiralVase.cpp index 8e8ae3075..8e8ae3075 100644 --- a/xs/src/libslic3r/GCode/SpiralVase.cpp +++ b/src/libslic3r/GCode/SpiralVase.cpp diff --git a/xs/src/libslic3r/GCode/SpiralVase.hpp b/src/libslic3r/GCode/SpiralVase.hpp index 60aa668d8..60aa668d8 100644 --- a/xs/src/libslic3r/GCode/SpiralVase.hpp +++ b/src/libslic3r/GCode/SpiralVase.hpp diff --git a/xs/src/libslic3r/GCode/ToolOrdering.cpp b/src/libslic3r/GCode/ToolOrdering.cpp index 175b69447..175b69447 100644 --- a/xs/src/libslic3r/GCode/ToolOrdering.cpp +++ b/src/libslic3r/GCode/ToolOrdering.cpp diff --git a/xs/src/libslic3r/GCode/ToolOrdering.hpp b/src/libslic3r/GCode/ToolOrdering.hpp index 4dcf6516a..4dcf6516a 100644 --- a/xs/src/libslic3r/GCode/ToolOrdering.hpp +++ b/src/libslic3r/GCode/ToolOrdering.hpp diff --git a/xs/src/libslic3r/GCode/WipeTower.hpp b/src/libslic3r/GCode/WipeTower.hpp index 5cbbc1ca9..5cbbc1ca9 100644 --- a/xs/src/libslic3r/GCode/WipeTower.hpp +++ b/src/libslic3r/GCode/WipeTower.hpp diff --git a/xs/src/libslic3r/GCode/WipeTowerPrusaMM.cpp b/src/libslic3r/GCode/WipeTowerPrusaMM.cpp index 54bdfdfd6..54bdfdfd6 100644 --- a/xs/src/libslic3r/GCode/WipeTowerPrusaMM.cpp +++ b/src/libslic3r/GCode/WipeTowerPrusaMM.cpp diff --git a/xs/src/libslic3r/GCode/WipeTowerPrusaMM.hpp b/src/libslic3r/GCode/WipeTowerPrusaMM.hpp index 06625d189..06625d189 100644 --- a/xs/src/libslic3r/GCode/WipeTowerPrusaMM.hpp +++ b/src/libslic3r/GCode/WipeTowerPrusaMM.hpp diff --git a/xs/src/libslic3r/GCodeReader.cpp b/src/libslic3r/GCodeReader.cpp index 51853e9fa..51853e9fa 100644 --- a/xs/src/libslic3r/GCodeReader.cpp +++ b/src/libslic3r/GCodeReader.cpp diff --git a/xs/src/libslic3r/GCodeReader.hpp b/src/libslic3r/GCodeReader.hpp index 84ed89a7c..84ed89a7c 100644 --- a/xs/src/libslic3r/GCodeReader.hpp +++ b/src/libslic3r/GCodeReader.hpp diff --git a/xs/src/libslic3r/GCodeSender.cpp b/src/libslic3r/GCodeSender.cpp index 0988091ce..0988091ce 100644 --- a/xs/src/libslic3r/GCodeSender.cpp +++ b/src/libslic3r/GCodeSender.cpp diff --git a/xs/src/libslic3r/GCodeSender.hpp b/src/libslic3r/GCodeSender.hpp index d7663ca55..d7663ca55 100644 --- a/xs/src/libslic3r/GCodeSender.hpp +++ b/src/libslic3r/GCodeSender.hpp diff --git a/xs/src/libslic3r/GCodeTimeEstimator.cpp b/src/libslic3r/GCodeTimeEstimator.cpp index f97265ee3..f97265ee3 100644 --- a/xs/src/libslic3r/GCodeTimeEstimator.cpp +++ b/src/libslic3r/GCodeTimeEstimator.cpp diff --git a/xs/src/libslic3r/GCodeTimeEstimator.hpp b/src/libslic3r/GCodeTimeEstimator.hpp index e9da584c3..e9da584c3 100644 --- a/xs/src/libslic3r/GCodeTimeEstimator.hpp +++ b/src/libslic3r/GCodeTimeEstimator.hpp diff --git a/xs/src/libslic3r/GCodeWriter.cpp b/src/libslic3r/GCodeWriter.cpp index 6ef17f4f4..6ef17f4f4 100644 --- a/xs/src/libslic3r/GCodeWriter.cpp +++ b/src/libslic3r/GCodeWriter.cpp diff --git a/xs/src/libslic3r/GCodeWriter.hpp b/src/libslic3r/GCodeWriter.hpp index 664b0e3a1..664b0e3a1 100644 --- a/xs/src/libslic3r/GCodeWriter.hpp +++ b/src/libslic3r/GCodeWriter.hpp diff --git a/xs/src/libslic3r/Geometry.cpp b/src/libslic3r/Geometry.cpp index 87b4e223d..87b4e223d 100644 --- a/xs/src/libslic3r/Geometry.cpp +++ b/src/libslic3r/Geometry.cpp diff --git a/xs/src/libslic3r/Geometry.hpp b/src/libslic3r/Geometry.hpp index 3698b996f..3698b996f 100644 --- a/xs/src/libslic3r/Geometry.hpp +++ b/src/libslic3r/Geometry.hpp diff --git a/xs/src/libslic3r/I18N.hpp b/src/libslic3r/I18N.hpp index db4fd22df..db4fd22df 100644 --- a/xs/src/libslic3r/I18N.hpp +++ b/src/libslic3r/I18N.hpp diff --git a/xs/src/libslic3r/Int128.hpp b/src/libslic3r/Int128.hpp index d54b75342..d54b75342 100644 --- a/xs/src/libslic3r/Int128.hpp +++ b/src/libslic3r/Int128.hpp diff --git a/xs/src/libslic3r/Layer.cpp b/src/libslic3r/Layer.cpp index 6c2bd0da9..6c2bd0da9 100644 --- a/xs/src/libslic3r/Layer.cpp +++ b/src/libslic3r/Layer.cpp diff --git a/xs/src/libslic3r/Layer.hpp b/src/libslic3r/Layer.hpp index 8dbe850cc..8dbe850cc 100644 --- a/xs/src/libslic3r/Layer.hpp +++ b/src/libslic3r/Layer.hpp diff --git a/xs/src/libslic3r/LayerRegion.cpp b/src/libslic3r/LayerRegion.cpp index e0f97703c..e0f97703c 100644 --- a/xs/src/libslic3r/LayerRegion.cpp +++ b/src/libslic3r/LayerRegion.cpp diff --git a/xs/src/libslic3r/Line.cpp b/src/libslic3r/Line.cpp index 35cfa2b76..35cfa2b76 100644 --- a/xs/src/libslic3r/Line.cpp +++ b/src/libslic3r/Line.cpp diff --git a/xs/src/libslic3r/Line.hpp b/src/libslic3r/Line.hpp index 36e02247c..36e02247c 100644 --- a/xs/src/libslic3r/Line.hpp +++ b/src/libslic3r/Line.hpp diff --git a/xs/src/libslic3r/Model.cpp b/src/libslic3r/Model.cpp index ec7447352..ec7447352 100644 --- a/xs/src/libslic3r/Model.cpp +++ b/src/libslic3r/Model.cpp diff --git a/xs/src/libslic3r/Model.hpp b/src/libslic3r/Model.hpp index 4c2356429..4c2356429 100644 --- a/xs/src/libslic3r/Model.hpp +++ b/src/libslic3r/Model.hpp diff --git a/xs/src/libslic3r/ModelArrange.hpp b/src/libslic3r/ModelArrange.hpp index 372689c39..372689c39 100644 --- a/xs/src/libslic3r/ModelArrange.hpp +++ b/src/libslic3r/ModelArrange.hpp diff --git a/xs/src/libslic3r/MotionPlanner.cpp b/src/libslic3r/MotionPlanner.cpp index ff3475ed8..ff3475ed8 100644 --- a/xs/src/libslic3r/MotionPlanner.cpp +++ b/src/libslic3r/MotionPlanner.cpp diff --git a/xs/src/libslic3r/MotionPlanner.hpp b/src/libslic3r/MotionPlanner.hpp index e912f2fb4..e912f2fb4 100644 --- a/xs/src/libslic3r/MotionPlanner.hpp +++ b/src/libslic3r/MotionPlanner.hpp diff --git a/xs/src/libslic3r/MultiPoint.cpp b/src/libslic3r/MultiPoint.cpp index f44897a04..f44897a04 100644 --- a/xs/src/libslic3r/MultiPoint.cpp +++ b/src/libslic3r/MultiPoint.cpp diff --git a/xs/src/libslic3r/MultiPoint.hpp b/src/libslic3r/MultiPoint.hpp index 03b89df51..03b89df51 100644 --- a/xs/src/libslic3r/MultiPoint.hpp +++ b/src/libslic3r/MultiPoint.hpp diff --git a/xs/src/libslic3r/MutablePriorityQueue.hpp b/src/libslic3r/MutablePriorityQueue.hpp index 82e992fd6..82e992fd6 100644 --- a/xs/src/libslic3r/MutablePriorityQueue.hpp +++ b/src/libslic3r/MutablePriorityQueue.hpp diff --git a/xs/src/libslic3r/PerimeterGenerator.cpp b/src/libslic3r/PerimeterGenerator.cpp index de8aeeb2a..de8aeeb2a 100644 --- a/xs/src/libslic3r/PerimeterGenerator.cpp +++ b/src/libslic3r/PerimeterGenerator.cpp diff --git a/xs/src/libslic3r/PerimeterGenerator.hpp b/src/libslic3r/PerimeterGenerator.hpp index 44af8c8be..44af8c8be 100644 --- a/xs/src/libslic3r/PerimeterGenerator.hpp +++ b/src/libslic3r/PerimeterGenerator.hpp diff --git a/xs/src/libslic3r/PlaceholderParser.cpp b/src/libslic3r/PlaceholderParser.cpp index cc6f1c75e..cc6f1c75e 100644 --- a/xs/src/libslic3r/PlaceholderParser.cpp +++ b/src/libslic3r/PlaceholderParser.cpp diff --git a/xs/src/libslic3r/PlaceholderParser.hpp b/src/libslic3r/PlaceholderParser.hpp index 49d53ec9e..49d53ec9e 100644 --- a/xs/src/libslic3r/PlaceholderParser.hpp +++ b/src/libslic3r/PlaceholderParser.hpp diff --git a/xs/src/libslic3r/Point.cpp b/src/libslic3r/Point.cpp index c2417d0dc..c2417d0dc 100644 --- a/xs/src/libslic3r/Point.cpp +++ b/src/libslic3r/Point.cpp diff --git a/xs/src/libslic3r/Point.hpp b/src/libslic3r/Point.hpp index 6d9d82d25..6d9d82d25 100644 --- a/xs/src/libslic3r/Point.hpp +++ b/src/libslic3r/Point.hpp diff --git a/xs/src/libslic3r/Polygon.cpp b/src/libslic3r/Polygon.cpp index cf0783bae..cf0783bae 100644 --- a/xs/src/libslic3r/Polygon.cpp +++ b/src/libslic3r/Polygon.cpp diff --git a/xs/src/libslic3r/Polygon.hpp b/src/libslic3r/Polygon.hpp index 63162d953..63162d953 100644 --- a/xs/src/libslic3r/Polygon.hpp +++ b/src/libslic3r/Polygon.hpp diff --git a/xs/src/libslic3r/Polyline.cpp b/src/libslic3r/Polyline.cpp index af155468a..af155468a 100644 --- a/xs/src/libslic3r/Polyline.cpp +++ b/src/libslic3r/Polyline.cpp diff --git a/xs/src/libslic3r/Polyline.hpp b/src/libslic3r/Polyline.hpp index 925b88aca..925b88aca 100644 --- a/xs/src/libslic3r/Polyline.hpp +++ b/src/libslic3r/Polyline.hpp diff --git a/xs/src/libslic3r/PolylineCollection.cpp b/src/libslic3r/PolylineCollection.cpp index 1304161c3..1304161c3 100644 --- a/xs/src/libslic3r/PolylineCollection.cpp +++ b/src/libslic3r/PolylineCollection.cpp diff --git a/xs/src/libslic3r/PolylineCollection.hpp b/src/libslic3r/PolylineCollection.hpp index 87fc1985b..87fc1985b 100644 --- a/xs/src/libslic3r/PolylineCollection.hpp +++ b/src/libslic3r/PolylineCollection.hpp diff --git a/xs/src/libslic3r/Print.cpp b/src/libslic3r/Print.cpp index f8f6537ca..cdc12d2d1 100644 --- a/xs/src/libslic3r/Print.cpp +++ b/src/libslic3r/Print.cpp @@ -1341,22 +1341,22 @@ std::string Print::output_filepath(const std::string &path) const void Print::export_png(const std::string &dirpath) { - size_t idx = 0; - for (PrintObject *obj : m_objects) { - obj->slice(); - this->set_status(int(floor(idx * 100. / m_objects.size() + 0.5)), "Slicing..."); - ++ idx; - } - this->set_status(90, "Exporting zipped archive..."); - print_to<FilePrinterFormat::PNG>(*this, - dirpath, - float(m_config.bed_size_x.value), - float(m_config.bed_size_y.value), - int(m_config.pixel_width.value), - int(m_config.pixel_height.value), - float(m_config.exp_time.value), - float(m_config.exp_time_first.value)); - this->set_status(100, "Done."); +// size_t idx = 0; +// for (PrintObject *obj : m_objects) { +// obj->slice(); +// this->set_status(int(floor(idx * 100. / m_objects.size() + 0.5)), "Slicing..."); +// ++ idx; +// } +// this->set_status(90, "Exporting zipped archive..."); +// print_to<FilePrinterFormat::PNG>(*this, +// dirpath, +// float(m_config.bed_size_x.value), +// float(m_config.bed_size_y.value), +// int(m_config.pixel_width.value), +// int(m_config.pixel_height.value), +// float(m_config.exp_time.value), +// float(m_config.exp_time_first.value)); +// this->set_status(100, "Done."); } // Returns extruder this eec should be printed with, according to PrintRegion config diff --git a/xs/src/libslic3r/Print.hpp b/src/libslic3r/Print.hpp index 7f88110bc..7f88110bc 100644 --- a/xs/src/libslic3r/Print.hpp +++ b/src/libslic3r/Print.hpp diff --git a/xs/src/libslic3r/PrintConfig.cpp b/src/libslic3r/PrintConfig.cpp index ed02f6d43..ed02f6d43 100644 --- a/xs/src/libslic3r/PrintConfig.cpp +++ b/src/libslic3r/PrintConfig.cpp diff --git a/xs/src/libslic3r/PrintConfig.hpp b/src/libslic3r/PrintConfig.hpp index bc3b0ef49..bc3b0ef49 100644 --- a/xs/src/libslic3r/PrintConfig.hpp +++ b/src/libslic3r/PrintConfig.hpp diff --git a/xs/src/libslic3r/PrintExport.hpp b/src/libslic3r/PrintExport.hpp index 7c3871251..7c3871251 100644 --- a/xs/src/libslic3r/PrintExport.hpp +++ b/src/libslic3r/PrintExport.hpp diff --git a/xs/src/libslic3r/PrintObject.cpp b/src/libslic3r/PrintObject.cpp index ef2364dc4..ef2364dc4 100644 --- a/xs/src/libslic3r/PrintObject.cpp +++ b/src/libslic3r/PrintObject.cpp diff --git a/xs/src/libslic3r/PrintRegion.cpp b/src/libslic3r/PrintRegion.cpp index 4ea777b4a..4ea777b4a 100644 --- a/xs/src/libslic3r/PrintRegion.cpp +++ b/src/libslic3r/PrintRegion.cpp diff --git a/xs/src/libslic3r/Rasterizer/Rasterizer.cpp b/src/libslic3r/Rasterizer/Rasterizer.cpp index b0bf04343..b0bf04343 100644 --- a/xs/src/libslic3r/Rasterizer/Rasterizer.cpp +++ b/src/libslic3r/Rasterizer/Rasterizer.cpp diff --git a/xs/src/libslic3r/Rasterizer/Rasterizer.hpp b/src/libslic3r/Rasterizer/Rasterizer.hpp index cbb39bc6b..cbb39bc6b 100644 --- a/xs/src/libslic3r/Rasterizer/Rasterizer.hpp +++ b/src/libslic3r/Rasterizer/Rasterizer.hpp diff --git a/xs/src/libslic3r/SLABasePool.cpp b/src/libslic3r/SLABasePool.cpp index f3683865c..f3683865c 100644 --- a/xs/src/libslic3r/SLABasePool.cpp +++ b/src/libslic3r/SLABasePool.cpp diff --git a/xs/src/libslic3r/SLABasePool.hpp b/src/libslic3r/SLABasePool.hpp index 55c94df07..55c94df07 100644 --- a/xs/src/libslic3r/SLABasePool.hpp +++ b/src/libslic3r/SLABasePool.hpp diff --git a/xs/src/libslic3r/SVG.cpp b/src/libslic3r/SVG.cpp index 03f55802e..03f55802e 100644 --- a/xs/src/libslic3r/SVG.cpp +++ b/src/libslic3r/SVG.cpp diff --git a/xs/src/libslic3r/SVG.hpp b/src/libslic3r/SVG.hpp index 3a5602196..3a5602196 100644 --- a/xs/src/libslic3r/SVG.hpp +++ b/src/libslic3r/SVG.hpp diff --git a/xs/src/libslic3r/Slicing.cpp b/src/libslic3r/Slicing.cpp index b3e314549..b3e314549 100644 --- a/xs/src/libslic3r/Slicing.cpp +++ b/src/libslic3r/Slicing.cpp diff --git a/xs/src/libslic3r/Slicing.hpp b/src/libslic3r/Slicing.hpp index b4a074bb5..b4a074bb5 100644 --- a/xs/src/libslic3r/Slicing.hpp +++ b/src/libslic3r/Slicing.hpp diff --git a/xs/src/libslic3r/SlicingAdaptive.cpp b/src/libslic3r/SlicingAdaptive.cpp index 2ef4aec8c..2ef4aec8c 100644 --- a/xs/src/libslic3r/SlicingAdaptive.cpp +++ b/src/libslic3r/SlicingAdaptive.cpp diff --git a/xs/src/libslic3r/SlicingAdaptive.hpp b/src/libslic3r/SlicingAdaptive.hpp index bfd081d81..bfd081d81 100644 --- a/xs/src/libslic3r/SlicingAdaptive.hpp +++ b/src/libslic3r/SlicingAdaptive.hpp diff --git a/xs/src/libslic3r/SupportMaterial.cpp b/src/libslic3r/SupportMaterial.cpp index 2bcf597e6..2bcf597e6 100644 --- a/xs/src/libslic3r/SupportMaterial.cpp +++ b/src/libslic3r/SupportMaterial.cpp diff --git a/xs/src/libslic3r/SupportMaterial.hpp b/src/libslic3r/SupportMaterial.hpp index 2e1a05946..2e1a05946 100644 --- a/xs/src/libslic3r/SupportMaterial.hpp +++ b/src/libslic3r/SupportMaterial.hpp diff --git a/xs/src/libslic3r/Surface.cpp b/src/libslic3r/Surface.cpp index 0e9eca7fd..0e9eca7fd 100644 --- a/xs/src/libslic3r/Surface.cpp +++ b/src/libslic3r/Surface.cpp diff --git a/xs/src/libslic3r/Surface.hpp b/src/libslic3r/Surface.hpp index c2cec3793..c2cec3793 100644 --- a/xs/src/libslic3r/Surface.hpp +++ b/src/libslic3r/Surface.hpp diff --git a/xs/src/libslic3r/SurfaceCollection.cpp b/src/libslic3r/SurfaceCollection.cpp index 6db599306..6db599306 100644 --- a/xs/src/libslic3r/SurfaceCollection.cpp +++ b/src/libslic3r/SurfaceCollection.cpp diff --git a/xs/src/libslic3r/SurfaceCollection.hpp b/src/libslic3r/SurfaceCollection.hpp index 9544748e9..9544748e9 100644 --- a/xs/src/libslic3r/SurfaceCollection.hpp +++ b/src/libslic3r/SurfaceCollection.hpp diff --git a/xs/src/libslic3r/Technologies.hpp b/src/libslic3r/Technologies.hpp index 5c4f8617d..5c4f8617d 100644 --- a/xs/src/libslic3r/Technologies.hpp +++ b/src/libslic3r/Technologies.hpp diff --git a/xs/src/libslic3r/TriangleMesh.cpp b/src/libslic3r/TriangleMesh.cpp index 4bf13330f..4bf13330f 100644 --- a/xs/src/libslic3r/TriangleMesh.cpp +++ b/src/libslic3r/TriangleMesh.cpp diff --git a/xs/src/libslic3r/TriangleMesh.hpp b/src/libslic3r/TriangleMesh.hpp index f6e0baea9..f6e0baea9 100644 --- a/xs/src/libslic3r/TriangleMesh.hpp +++ b/src/libslic3r/TriangleMesh.hpp diff --git a/xs/src/libslic3r/Utils.hpp b/src/libslic3r/Utils.hpp index c90ad7650..c90ad7650 100644 --- a/xs/src/libslic3r/Utils.hpp +++ b/src/libslic3r/Utils.hpp diff --git a/xs/src/libslic3r/libslic3r.h b/src/libslic3r/libslic3r.h index 5f2f3fba1..5f2f3fba1 100644 --- a/xs/src/libslic3r/libslic3r.h +++ b/src/libslic3r/libslic3r.h diff --git a/xs/src/libslic3r/utils.cpp b/src/libslic3r/utils.cpp index 4ff15175b..4ff15175b 100644 --- a/xs/src/libslic3r/utils.cpp +++ b/src/libslic3r/utils.cpp diff --git a/src/miniz/CMakeLists.txt b/src/miniz/CMakeLists.txt new file mode 100644 index 000000000..da92b1252 --- /dev/null +++ b/src/miniz/CMakeLists.txt @@ -0,0 +1,14 @@ +project(miniz) +cmake_minimum_required(VERSION 2.6) + +add_library(miniz STATIC + miniz.h + miniz_common.h + miniz_tdef.h + miniz_tinfl.h + miniz_zip.h + miniz.cpp + miniz_tdef.cpp + miniz_tinfl.cpp + miniz_zip.cpp +) diff --git a/xs/src/miniz/miniz.cpp b/src/miniz/miniz.cpp index 318a86da9..318a86da9 100644 --- a/xs/src/miniz/miniz.cpp +++ b/src/miniz/miniz.cpp diff --git a/xs/src/miniz/miniz.h b/src/miniz/miniz.h index 6e7d5fde0..6e7d5fde0 100644 --- a/xs/src/miniz/miniz.h +++ b/src/miniz/miniz.h diff --git a/xs/src/miniz/miniz_common.h b/src/miniz/miniz_common.h index d45bdfcb4..d45bdfcb4 100644 --- a/xs/src/miniz/miniz_common.h +++ b/src/miniz/miniz_common.h diff --git a/xs/src/miniz/miniz_tdef.cpp b/src/miniz/miniz_tdef.cpp index 36207e64a..36207e64a 100644 --- a/xs/src/miniz/miniz_tdef.cpp +++ b/src/miniz/miniz_tdef.cpp diff --git a/xs/src/miniz/miniz_tdef.h b/src/miniz/miniz_tdef.h index ca63cfd42..ca63cfd42 100644 --- a/xs/src/miniz/miniz_tdef.h +++ b/src/miniz/miniz_tdef.h diff --git a/xs/src/miniz/miniz_tinfl.cpp b/src/miniz/miniz_tinfl.cpp index 59b24d73f..59b24d73f 100644 --- a/xs/src/miniz/miniz_tinfl.cpp +++ b/src/miniz/miniz_tinfl.cpp diff --git a/xs/src/miniz/miniz_tinfl.h b/src/miniz/miniz_tinfl.h index b90f22749..b90f22749 100644 --- a/xs/src/miniz/miniz_tinfl.h +++ b/src/miniz/miniz_tinfl.h diff --git a/xs/src/miniz/miniz_zip.cpp b/src/miniz/miniz_zip.cpp index 463660c1c..463660c1c 100644 --- a/xs/src/miniz/miniz_zip.cpp +++ b/src/miniz/miniz_zip.cpp diff --git a/xs/src/miniz/miniz_zip.h b/src/miniz/miniz_zip.h index 71ecb4ae2..71ecb4ae2 100644 --- a/xs/src/miniz/miniz_zip.h +++ b/src/miniz/miniz_zip.h diff --git a/xs/src/png/AUTHORS b/src/png/AUTHORS index 25aad54dc..25aad54dc 100644 --- a/xs/src/png/AUTHORS +++ b/src/png/AUTHORS diff --git a/xs/src/png/COPYING b/src/png/COPYING index 04889ba11..04889ba11 100644 --- a/xs/src/png/COPYING +++ b/src/png/COPYING diff --git a/xs/src/png/NEWS b/src/png/NEWS index cc006fbf5..cc006fbf5 100644 --- a/xs/src/png/NEWS +++ b/src/png/NEWS diff --git a/xs/src/png/color.hpp b/src/png/color.hpp index b5ffde2c4..b5ffde2c4 100644 --- a/xs/src/png/color.hpp +++ b/src/png/color.hpp diff --git a/xs/src/png/end_info.hpp b/src/png/end_info.hpp index 09590596d..09590596d 100644 --- a/xs/src/png/end_info.hpp +++ b/src/png/end_info.hpp diff --git a/xs/src/png/error.hpp b/src/png/error.hpp index c67f97630..c67f97630 100644 --- a/xs/src/png/error.hpp +++ b/src/png/error.hpp diff --git a/xs/src/png/image_info.hpp b/src/png/image_info.hpp index 8407bc18b..8407bc18b 100644 --- a/xs/src/png/image_info.hpp +++ b/src/png/image_info.hpp diff --git a/xs/src/png/info.hpp b/src/png/info.hpp index 3f3cf09c3..3f3cf09c3 100644 --- a/xs/src/png/info.hpp +++ b/src/png/info.hpp diff --git a/xs/src/png/info_base.hpp b/src/png/info_base.hpp index 45e154296..45e154296 100644 --- a/xs/src/png/info_base.hpp +++ b/src/png/info_base.hpp diff --git a/xs/src/png/io_base.hpp b/src/png/io_base.hpp index 3c2d83043..3c2d83043 100644 --- a/xs/src/png/io_base.hpp +++ b/src/png/io_base.hpp diff --git a/xs/src/png/libpng/ANNOUNCE b/src/png/libpng/ANNOUNCE index 0f66c0d1d..0f66c0d1d 100644 --- a/xs/src/png/libpng/ANNOUNCE +++ b/src/png/libpng/ANNOUNCE diff --git a/xs/src/png/libpng/CMakeLists.txt b/src/png/libpng/CMakeLists.txt index 266b67d0e..7697110c7 100644 --- a/xs/src/png/libpng/CMakeLists.txt +++ b/src/png/libpng/CMakeLists.txt @@ -107,7 +107,7 @@ endif() # set definitions and sources for powerpc if(CMAKE_SYSTEM_PROCESSOR MATCHES "^powerpc*" OR - CMAKE_SYSTEM_PROCESSOR MATCHES "^ppc64*" ) + CMAKE_SYSTEM_PROCESSOR MATCHES "^ppc64*" ) set(PNG_POWERPC_VSX_POSSIBLE_VALUES on off) set(PNG_POWERPC_VSX "on" CACHE STRING "Enable POWERPC VSX optimizations: off: disable the optimizations.") @@ -131,7 +131,7 @@ endif() # set definitions and sources for intel if(CMAKE_SYSTEM_PROCESSOR MATCHES "^i?86" OR - CMAKE_SYSTEM_PROCESSOR MATCHES "^x86_64*" ) + CMAKE_SYSTEM_PROCESSOR MATCHES "^x86_64*" ) set(PNG_INTEL_SSE_POSSIBLE_VALUES on off) set(PNG_INTEL_SSE "on" CACHE STRING "Enable INTEL_SSE optimizations: off: disable the optimizations") @@ -155,7 +155,7 @@ endif() # set definitions and sources for MIPS if(CMAKE_SYSTEM_PROCESSOR MATCHES "mipsel*" OR - CMAKE_SYSTEM_PROCESSOR MATCHES "mips64el*" ) + CMAKE_SYSTEM_PROCESSOR MATCHES "mips64el*" ) set(PNG_MIPS_MSA_POSSIBLE_VALUES on off) set(PNG_MIPS_MSA "on" CACHE STRING "Enable MIPS_MSA optimizations: off: disable the optimizations") @@ -770,14 +770,14 @@ function(CREATE_SYMLINK DEST_FILE) if(CMAKE_HOST_WIN32 AND NOT CYGWIN AND NOT MSYS) execute_process( - COMMAND "${CMAKE_COMMAND}" -E copy_if_different ${S_FILE} ${DEST_FILE} - WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}" - ) + COMMAND "${CMAKE_COMMAND}" -E copy_if_different ${S_FILE} ${DEST_FILE} + WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}" + ) else(CMAKE_HOST_WIN32 AND NOT CYGWIN AND NOT MSYS) execute_process( - COMMAND ${CMAKE_COMMAND} -E create_symlink ${S_FILE} ${DEST_FILE} - WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}" - ) + COMMAND ${CMAKE_COMMAND} -E create_symlink ${S_FILE} ${DEST_FILE} + WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}" + ) endif(CMAKE_HOST_WIN32 AND NOT CYGWIN AND NOT MSYS) endif(S_FILE) @@ -788,12 +788,12 @@ function(CREATE_SYMLINK DEST_FILE) if(CMAKE_HOST_WIN32 AND NOT CYGWIN AND NOT MSYS) add_custom_command(TARGET ${S_TARGET} POST_BUILD - COMMAND "${CMAKE_COMMAND}" -E copy_if_different $<TARGET_LINKER_FILE_NAME:${S_TARGET}> $<TARGET_LINKER_FILE_DIR:${S_TARGET}>/${DEST_FILE} - ) + COMMAND "${CMAKE_COMMAND}" -E copy_if_different $<TARGET_LINKER_FILE_NAME:${S_TARGET}> $<TARGET_LINKER_FILE_DIR:${S_TARGET}>/${DEST_FILE} + ) else(CMAKE_HOST_WIN32 AND NOT CYGWIN AND NOT MSYS) add_custom_command(TARGET ${S_TARGET} POST_BUILD - COMMAND "${CMAKE_COMMAND}" -E create_symlink $<TARGET_LINKER_FILE_NAME:${S_TARGET}> $<TARGET_LINKER_FILE_DIR:${S_TARGET}>/${DEST_FILE} - ) + COMMAND "${CMAKE_COMMAND}" -E create_symlink $<TARGET_LINKER_FILE_NAME:${S_TARGET}> $<TARGET_LINKER_FILE_DIR:${S_TARGET}>/${DEST_FILE} + ) endif(CMAKE_HOST_WIN32 AND NOT CYGWIN AND NOT MSYS) endif(S_TARGET) diff --git a/xs/src/png/libpng/LICENSE b/src/png/libpng/LICENSE index 4cda4fa0a..4cda4fa0a 100644 --- a/xs/src/png/libpng/LICENSE +++ b/src/png/libpng/LICENSE diff --git a/xs/src/png/libpng/arm/arm_init.c b/src/png/libpng/arm/arm_init.c index 02df812e7..02df812e7 100644 --- a/xs/src/png/libpng/arm/arm_init.c +++ b/src/png/libpng/arm/arm_init.c diff --git a/xs/src/png/libpng/arm/filter_neon.S b/src/png/libpng/arm/filter_neon.S index 000764cd2..000764cd2 100644 --- a/xs/src/png/libpng/arm/filter_neon.S +++ b/src/png/libpng/arm/filter_neon.S diff --git a/xs/src/png/libpng/arm/filter_neon_intrinsics.c b/src/png/libpng/arm/filter_neon_intrinsics.c index ea7e356bc..ea7e356bc 100644 --- a/xs/src/png/libpng/arm/filter_neon_intrinsics.c +++ b/src/png/libpng/arm/filter_neon_intrinsics.c diff --git a/xs/src/png/libpng/intel/filter_sse2_intrinsics.c b/src/png/libpng/intel/filter_sse2_intrinsics.c index 5e8553fbb..5e8553fbb 100644 --- a/xs/src/png/libpng/intel/filter_sse2_intrinsics.c +++ b/src/png/libpng/intel/filter_sse2_intrinsics.c diff --git a/xs/src/png/libpng/intel/intel_init.c b/src/png/libpng/intel/intel_init.c index 8f08baf8c..8f08baf8c 100644 --- a/xs/src/png/libpng/intel/intel_init.c +++ b/src/png/libpng/intel/intel_init.c diff --git a/xs/src/png/libpng/libpng-config.in b/src/png/libpng/libpng-config.in index 69bf8e33f..69bf8e33f 100644 --- a/xs/src/png/libpng/libpng-config.in +++ b/src/png/libpng/libpng-config.in diff --git a/xs/src/png/libpng/libpng.pc.in b/src/png/libpng/libpng.pc.in index 9708e9af2..9708e9af2 100644 --- a/xs/src/png/libpng/libpng.pc.in +++ b/src/png/libpng/libpng.pc.in diff --git a/xs/src/png/libpng/mips/filter_msa_intrinsics.c b/src/png/libpng/mips/filter_msa_intrinsics.c index 943bb3d05..943bb3d05 100644 --- a/xs/src/png/libpng/mips/filter_msa_intrinsics.c +++ b/src/png/libpng/mips/filter_msa_intrinsics.c diff --git a/xs/src/png/libpng/mips/mips_init.c b/src/png/libpng/mips/mips_init.c index 0bfb7a32e..0bfb7a32e 100644 --- a/xs/src/png/libpng/mips/mips_init.c +++ b/src/png/libpng/mips/mips_init.c diff --git a/xs/src/png/libpng/png.c b/src/png/libpng/png.c index ff02c5651..ff02c5651 100644 --- a/xs/src/png/libpng/png.c +++ b/src/png/libpng/png.c diff --git a/xs/src/png/libpng/png.h b/src/png/libpng/png.h index 4c873f5c2..4c873f5c2 100644 --- a/xs/src/png/libpng/png.h +++ b/src/png/libpng/png.h diff --git a/xs/src/png/libpng/pngconf.h b/src/png/libpng/pngconf.h index d13b13e57..d13b13e57 100644 --- a/xs/src/png/libpng/pngconf.h +++ b/src/png/libpng/pngconf.h diff --git a/xs/src/png/libpng/pngdebug.h b/src/png/libpng/pngdebug.h index 15a7ed0c9..15a7ed0c9 100644 --- a/xs/src/png/libpng/pngdebug.h +++ b/src/png/libpng/pngdebug.h diff --git a/xs/src/png/libpng/pngerror.c b/src/png/libpng/pngerror.c index ad48bfb98..ad48bfb98 100644 --- a/xs/src/png/libpng/pngerror.c +++ b/src/png/libpng/pngerror.c diff --git a/xs/src/png/libpng/pngget.c b/src/png/libpng/pngget.c index 26e9fb1c3..26e9fb1c3 100644 --- a/xs/src/png/libpng/pngget.c +++ b/src/png/libpng/pngget.c diff --git a/xs/src/png/libpng/pnginfo.h b/src/png/libpng/pnginfo.h index d5f6149db..d5f6149db 100644 --- a/xs/src/png/libpng/pnginfo.h +++ b/src/png/libpng/pnginfo.h diff --git a/xs/src/png/libpng/pngmem.c b/src/png/libpng/pngmem.c index ff3ef7e88..ff3ef7e88 100644 --- a/xs/src/png/libpng/pngmem.c +++ b/src/png/libpng/pngmem.c diff --git a/xs/src/png/libpng/pngpread.c b/src/png/libpng/pngpread.c index fbe361dc3..fbe361dc3 100644 --- a/xs/src/png/libpng/pngpread.c +++ b/src/png/libpng/pngpread.c diff --git a/xs/src/png/libpng/pngpriv.h b/src/png/libpng/pngpriv.h index 1f2e90f2b..1f2e90f2b 100644 --- a/xs/src/png/libpng/pngpriv.h +++ b/src/png/libpng/pngpriv.h diff --git a/xs/src/png/libpng/pngread.c b/src/png/libpng/pngread.c index da32e9ad9..da32e9ad9 100644 --- a/xs/src/png/libpng/pngread.c +++ b/src/png/libpng/pngread.c diff --git a/xs/src/png/libpng/pngrio.c b/src/png/libpng/pngrio.c index 7e26e855c..7e26e855c 100644 --- a/xs/src/png/libpng/pngrio.c +++ b/src/png/libpng/pngrio.c diff --git a/xs/src/png/libpng/pngrtran.c b/src/png/libpng/pngrtran.c index c18965031..c18965031 100644 --- a/xs/src/png/libpng/pngrtran.c +++ b/src/png/libpng/pngrtran.c diff --git a/xs/src/png/libpng/pngrutil.c b/src/png/libpng/pngrutil.c index 8692933bd..8692933bd 100644 --- a/xs/src/png/libpng/pngrutil.c +++ b/src/png/libpng/pngrutil.c diff --git a/xs/src/png/libpng/pngset.c b/src/png/libpng/pngset.c index 6f3a1ee11..6f3a1ee11 100644 --- a/xs/src/png/libpng/pngset.c +++ b/src/png/libpng/pngset.c diff --git a/xs/src/png/libpng/pngstruct.h b/src/png/libpng/pngstruct.h index d83f97125..d83f97125 100644 --- a/xs/src/png/libpng/pngstruct.h +++ b/src/png/libpng/pngstruct.h diff --git a/xs/src/png/libpng/pngtest.c b/src/png/libpng/pngtest.c index 9d5075791..9d5075791 100644 --- a/xs/src/png/libpng/pngtest.c +++ b/src/png/libpng/pngtest.c diff --git a/xs/src/png/libpng/pngtrans.c b/src/png/libpng/pngtrans.c index 6882f0fd7..6882f0fd7 100644 --- a/xs/src/png/libpng/pngtrans.c +++ b/src/png/libpng/pngtrans.c diff --git a/xs/src/png/libpng/pngusr.dfa b/src/png/libpng/pngusr.dfa index 83067c38c..83067c38c 100644 --- a/xs/src/png/libpng/pngusr.dfa +++ b/src/png/libpng/pngusr.dfa diff --git a/xs/src/png/libpng/pngwio.c b/src/png/libpng/pngwio.c index 37c7c3a7f..37c7c3a7f 100644 --- a/xs/src/png/libpng/pngwio.c +++ b/src/png/libpng/pngwio.c diff --git a/xs/src/png/libpng/pngwrite.c b/src/png/libpng/pngwrite.c index a16d77ce0..a16d77ce0 100644 --- a/xs/src/png/libpng/pngwrite.c +++ b/src/png/libpng/pngwrite.c diff --git a/xs/src/png/libpng/pngwtran.c b/src/png/libpng/pngwtran.c index 377b43e5c..377b43e5c 100644 --- a/xs/src/png/libpng/pngwtran.c +++ b/src/png/libpng/pngwtran.c diff --git a/xs/src/png/libpng/pngwutil.c b/src/png/libpng/pngwutil.c index 0d4fb1336..0d4fb1336 100644 --- a/xs/src/png/libpng/pngwutil.c +++ b/src/png/libpng/pngwutil.c diff --git a/xs/src/png/libpng/powerpc/filter_vsx_intrinsics.c b/src/png/libpng/powerpc/filter_vsx_intrinsics.c index e3de496bd..e3de496bd 100644 --- a/xs/src/png/libpng/powerpc/filter_vsx_intrinsics.c +++ b/src/png/libpng/powerpc/filter_vsx_intrinsics.c diff --git a/xs/src/png/libpng/powerpc/powerpc_init.c b/src/png/libpng/powerpc/powerpc_init.c index 07016177c..07016177c 100644 --- a/xs/src/png/libpng/powerpc/powerpc_init.c +++ b/src/png/libpng/powerpc/powerpc_init.c diff --git a/xs/src/png/libpng/scripts/checksym.awk b/src/png/libpng/scripts/checksym.awk index fe3af55e0..fe3af55e0 100755..100644 --- a/xs/src/png/libpng/scripts/checksym.awk +++ b/src/png/libpng/scripts/checksym.awk diff --git a/xs/src/png/libpng/scripts/def.c b/src/png/libpng/scripts/def.c index 0ffcbeb0c..0ffcbeb0c 100644 --- a/xs/src/png/libpng/scripts/def.c +++ b/src/png/libpng/scripts/def.c diff --git a/xs/src/png/libpng/scripts/dfn.awk b/src/png/libpng/scripts/dfn.awk index 346b9db7d..346b9db7d 100755..100644 --- a/xs/src/png/libpng/scripts/dfn.awk +++ b/src/png/libpng/scripts/dfn.awk diff --git a/xs/src/png/libpng/scripts/genchk.cmake.in b/src/png/libpng/scripts/genchk.cmake.in index ab3b9d746..ab3b9d746 100644 --- a/xs/src/png/libpng/scripts/genchk.cmake.in +++ b/src/png/libpng/scripts/genchk.cmake.in diff --git a/xs/src/png/libpng/scripts/genout.cmake.in b/src/png/libpng/scripts/genout.cmake.in index 01f12de2f..01f12de2f 100644 --- a/xs/src/png/libpng/scripts/genout.cmake.in +++ b/src/png/libpng/scripts/genout.cmake.in diff --git a/xs/src/png/libpng/scripts/gensrc.cmake.in b/src/png/libpng/scripts/gensrc.cmake.in index f28a62266..f28a62266 100644 --- a/xs/src/png/libpng/scripts/gensrc.cmake.in +++ b/src/png/libpng/scripts/gensrc.cmake.in diff --git a/xs/src/png/libpng/scripts/intprefix.c b/src/png/libpng/scripts/intprefix.c index 254f8e94b..254f8e94b 100644 --- a/xs/src/png/libpng/scripts/intprefix.c +++ b/src/png/libpng/scripts/intprefix.c diff --git a/xs/src/png/libpng/scripts/libpng-config-body.in b/src/png/libpng/scripts/libpng-config-body.in index b466432d5..b466432d5 100644 --- a/xs/src/png/libpng/scripts/libpng-config-body.in +++ b/src/png/libpng/scripts/libpng-config-body.in diff --git a/xs/src/png/libpng/scripts/libpng-config-head.in b/src/png/libpng/scripts/libpng-config-head.in index 64dd3987d..64dd3987d 100644 --- a/xs/src/png/libpng/scripts/libpng-config-head.in +++ b/src/png/libpng/scripts/libpng-config-head.in diff --git a/xs/src/png/libpng/scripts/libpng.pc.in b/src/png/libpng/scripts/libpng.pc.in index 33c65767b..33c65767b 100644 --- a/xs/src/png/libpng/scripts/libpng.pc.in +++ b/src/png/libpng/scripts/libpng.pc.in diff --git a/xs/src/png/libpng/scripts/options.awk b/src/png/libpng/scripts/options.awk index fef5dfd78..fef5dfd78 100755..100644 --- a/xs/src/png/libpng/scripts/options.awk +++ b/src/png/libpng/scripts/options.awk diff --git a/xs/src/png/libpng/scripts/pnglibconf.dfa b/src/png/libpng/scripts/pnglibconf.dfa index b298a72f3..b298a72f3 100644 --- a/xs/src/png/libpng/scripts/pnglibconf.dfa +++ b/src/png/libpng/scripts/pnglibconf.dfa diff --git a/xs/src/png/libpng/scripts/pnglibconf.h.prebuilt b/src/png/libpng/scripts/pnglibconf.h.prebuilt index 53b5e442c..53b5e442c 100644 --- a/xs/src/png/libpng/scripts/pnglibconf.h.prebuilt +++ b/src/png/libpng/scripts/pnglibconf.h.prebuilt diff --git a/xs/src/png/libpng/scripts/prefix.c b/src/png/libpng/scripts/prefix.c index 8b604a091..8b604a091 100644 --- a/xs/src/png/libpng/scripts/prefix.c +++ b/src/png/libpng/scripts/prefix.c diff --git a/xs/src/png/libpng/scripts/sym.c b/src/png/libpng/scripts/sym.c index ea9e4c507..ea9e4c507 100644 --- a/xs/src/png/libpng/scripts/sym.c +++ b/src/png/libpng/scripts/sym.c diff --git a/xs/src/png/libpng/scripts/symbols.c b/src/png/libpng/scripts/symbols.c index 28b841d8b..28b841d8b 100644 --- a/xs/src/png/libpng/scripts/symbols.c +++ b/src/png/libpng/scripts/symbols.c diff --git a/xs/src/png/libpng/scripts/symbols.def b/src/png/libpng/scripts/symbols.def index 4a3c3ff41..4a3c3ff41 100644 --- a/xs/src/png/libpng/scripts/symbols.def +++ b/src/png/libpng/scripts/symbols.def diff --git a/xs/src/png/libpng/scripts/test.cmake.in b/src/png/libpng/scripts/test.cmake.in index fa6a889bb..fa6a889bb 100644 --- a/xs/src/png/libpng/scripts/test.cmake.in +++ b/src/png/libpng/scripts/test.cmake.in diff --git a/xs/src/png/libpng/scripts/vers.c b/src/png/libpng/scripts/vers.c index de7319716..de7319716 100644 --- a/xs/src/png/libpng/scripts/vers.c +++ b/src/png/libpng/scripts/vers.c diff --git a/xs/src/png/palette.hpp b/src/png/palette.hpp index 917f28007..917f28007 100644 --- a/xs/src/png/palette.hpp +++ b/src/png/palette.hpp diff --git a/xs/src/png/pixel_traits.hpp b/src/png/pixel_traits.hpp index 8ffdfeedb..8ffdfeedb 100644 --- a/xs/src/png/pixel_traits.hpp +++ b/src/png/pixel_traits.hpp diff --git a/xs/src/png/tRNS.hpp b/src/png/tRNS.hpp index ff0181643..ff0181643 100644 --- a/xs/src/png/tRNS.hpp +++ b/src/png/tRNS.hpp diff --git a/xs/src/png/types.hpp b/src/png/types.hpp index 1538d6bd2..1538d6bd2 100644 --- a/xs/src/png/types.hpp +++ b/src/png/types.hpp diff --git a/xs/src/png/writer.hpp b/src/png/writer.hpp index 448dfd50b..448dfd50b 100644 --- a/xs/src/png/writer.hpp +++ b/src/png/writer.hpp diff --git a/xs/src/png/zlib/CMakeLists.txt b/src/png/zlib/CMakeLists.txt index 1ea38fef1..1ea38fef1 100644 --- a/xs/src/png/zlib/CMakeLists.txt +++ b/src/png/zlib/CMakeLists.txt diff --git a/xs/src/png/zlib/ChangeLog b/src/png/zlib/ChangeLog index 30199a65a..30199a65a 100644 --- a/xs/src/png/zlib/ChangeLog +++ b/src/png/zlib/ChangeLog diff --git a/xs/src/png/zlib/FAQ b/src/png/zlib/FAQ index 99b7cf92e..99b7cf92e 100644 --- a/xs/src/png/zlib/FAQ +++ b/src/png/zlib/FAQ diff --git a/xs/src/png/zlib/INDEX b/src/png/zlib/INDEX index 2ba064120..2ba064120 100644 --- a/xs/src/png/zlib/INDEX +++ b/src/png/zlib/INDEX diff --git a/xs/src/png/zlib/Makefile b/src/png/zlib/Makefile index 6bba86c73..6bba86c73 100644 --- a/xs/src/png/zlib/Makefile +++ b/src/png/zlib/Makefile diff --git a/xs/src/png/zlib/Makefile.in b/src/png/zlib/Makefile.in index 5a77949ff..5a77949ff 100644 --- a/xs/src/png/zlib/Makefile.in +++ b/src/png/zlib/Makefile.in diff --git a/xs/src/png/zlib/README b/src/png/zlib/README index 51106de47..51106de47 100644 --- a/xs/src/png/zlib/README +++ b/src/png/zlib/README diff --git a/xs/src/png/zlib/adler32.c b/src/png/zlib/adler32.c index d0be4380a..d0be4380a 100644 --- a/xs/src/png/zlib/adler32.c +++ b/src/png/zlib/adler32.c diff --git a/xs/src/png/zlib/amiga/Makefile.pup b/src/png/zlib/amiga/Makefile.pup index 8940c120f..8940c120f 100644 --- a/xs/src/png/zlib/amiga/Makefile.pup +++ b/src/png/zlib/amiga/Makefile.pup diff --git a/xs/src/png/zlib/amiga/Makefile.sas b/src/png/zlib/amiga/Makefile.sas index 749e29152..749e29152 100644 --- a/xs/src/png/zlib/amiga/Makefile.sas +++ b/src/png/zlib/amiga/Makefile.sas diff --git a/xs/src/png/zlib/compress.c b/src/png/zlib/compress.c index e2db404ab..e2db404ab 100644 --- a/xs/src/png/zlib/compress.c +++ b/src/png/zlib/compress.c diff --git a/xs/src/png/zlib/configure b/src/png/zlib/configure index e974d1fd7..e974d1fd7 100644 --- a/xs/src/png/zlib/configure +++ b/src/png/zlib/configure diff --git a/xs/src/png/zlib/contrib/README.contrib b/src/png/zlib/contrib/README.contrib index a411d5c39..a411d5c39 100644 --- a/xs/src/png/zlib/contrib/README.contrib +++ b/src/png/zlib/contrib/README.contrib diff --git a/xs/src/png/zlib/contrib/ada/buffer_demo.adb b/src/png/zlib/contrib/ada/buffer_demo.adb index 46b863810..46b863810 100644 --- a/xs/src/png/zlib/contrib/ada/buffer_demo.adb +++ b/src/png/zlib/contrib/ada/buffer_demo.adb diff --git a/xs/src/png/zlib/contrib/ada/mtest.adb b/src/png/zlib/contrib/ada/mtest.adb index c4dfd080f..c4dfd080f 100644 --- a/xs/src/png/zlib/contrib/ada/mtest.adb +++ b/src/png/zlib/contrib/ada/mtest.adb diff --git a/xs/src/png/zlib/contrib/ada/read.adb b/src/png/zlib/contrib/ada/read.adb index 1f2efbfeb..1f2efbfeb 100644 --- a/xs/src/png/zlib/contrib/ada/read.adb +++ b/src/png/zlib/contrib/ada/read.adb diff --git a/xs/src/png/zlib/contrib/ada/readme.txt b/src/png/zlib/contrib/ada/readme.txt index ce4d2cadf..ce4d2cadf 100644 --- a/xs/src/png/zlib/contrib/ada/readme.txt +++ b/src/png/zlib/contrib/ada/readme.txt diff --git a/xs/src/png/zlib/contrib/ada/test.adb b/src/png/zlib/contrib/ada/test.adb index 90773acfa..90773acfa 100644 --- a/xs/src/png/zlib/contrib/ada/test.adb +++ b/src/png/zlib/contrib/ada/test.adb diff --git a/xs/src/png/zlib/contrib/ada/zlib-streams.adb b/src/png/zlib/contrib/ada/zlib-streams.adb index b6497bae2..b6497bae2 100644 --- a/xs/src/png/zlib/contrib/ada/zlib-streams.adb +++ b/src/png/zlib/contrib/ada/zlib-streams.adb diff --git a/xs/src/png/zlib/contrib/ada/zlib-streams.ads b/src/png/zlib/contrib/ada/zlib-streams.ads index 8e26cd450..8e26cd450 100644 --- a/xs/src/png/zlib/contrib/ada/zlib-streams.ads +++ b/src/png/zlib/contrib/ada/zlib-streams.ads diff --git a/xs/src/png/zlib/contrib/ada/zlib-thin.adb b/src/png/zlib/contrib/ada/zlib-thin.adb index 0ca4a7120..0ca4a7120 100644 --- a/xs/src/png/zlib/contrib/ada/zlib-thin.adb +++ b/src/png/zlib/contrib/ada/zlib-thin.adb diff --git a/xs/src/png/zlib/contrib/ada/zlib-thin.ads b/src/png/zlib/contrib/ada/zlib-thin.ads index 810173cff..810173cff 100644 --- a/xs/src/png/zlib/contrib/ada/zlib-thin.ads +++ b/src/png/zlib/contrib/ada/zlib-thin.ads diff --git a/xs/src/png/zlib/contrib/ada/zlib.adb b/src/png/zlib/contrib/ada/zlib.adb index 8b6fd686a..8b6fd686a 100644 --- a/xs/src/png/zlib/contrib/ada/zlib.adb +++ b/src/png/zlib/contrib/ada/zlib.adb diff --git a/xs/src/png/zlib/contrib/ada/zlib.ads b/src/png/zlib/contrib/ada/zlib.ads index 79ffc4095..79ffc4095 100644 --- a/xs/src/png/zlib/contrib/ada/zlib.ads +++ b/src/png/zlib/contrib/ada/zlib.ads diff --git a/xs/src/png/zlib/contrib/ada/zlib.gpr b/src/png/zlib/contrib/ada/zlib.gpr index 296b22aa9..296b22aa9 100644 --- a/xs/src/png/zlib/contrib/ada/zlib.gpr +++ b/src/png/zlib/contrib/ada/zlib.gpr diff --git a/xs/src/png/zlib/contrib/amd64/amd64-match.S b/src/png/zlib/contrib/amd64/amd64-match.S index 81d4a1c94..81d4a1c94 100644 --- a/xs/src/png/zlib/contrib/amd64/amd64-match.S +++ b/src/png/zlib/contrib/amd64/amd64-match.S diff --git a/xs/src/png/zlib/contrib/asm686/README.686 b/src/png/zlib/contrib/asm686/README.686 index a0bf3bea4..a0bf3bea4 100644 --- a/xs/src/png/zlib/contrib/asm686/README.686 +++ b/src/png/zlib/contrib/asm686/README.686 diff --git a/xs/src/png/zlib/contrib/asm686/match.S b/src/png/zlib/contrib/asm686/match.S index fa4210927..fa4210927 100644 --- a/xs/src/png/zlib/contrib/asm686/match.S +++ b/src/png/zlib/contrib/asm686/match.S diff --git a/xs/src/png/zlib/contrib/blast/Makefile b/src/png/zlib/contrib/blast/Makefile index 9be80bafe..9be80bafe 100644 --- a/xs/src/png/zlib/contrib/blast/Makefile +++ b/src/png/zlib/contrib/blast/Makefile diff --git a/xs/src/png/zlib/contrib/blast/README b/src/png/zlib/contrib/blast/README index e3a60b3f5..e3a60b3f5 100644 --- a/xs/src/png/zlib/contrib/blast/README +++ b/src/png/zlib/contrib/blast/README diff --git a/xs/src/png/zlib/contrib/blast/blast.c b/src/png/zlib/contrib/blast/blast.c index e6e659073..e6e659073 100644 --- a/xs/src/png/zlib/contrib/blast/blast.c +++ b/src/png/zlib/contrib/blast/blast.c diff --git a/xs/src/png/zlib/contrib/blast/blast.h b/src/png/zlib/contrib/blast/blast.h index 6cf65eda1..6cf65eda1 100644 --- a/xs/src/png/zlib/contrib/blast/blast.h +++ b/src/png/zlib/contrib/blast/blast.h diff --git a/xs/src/png/zlib/contrib/blast/test.pk b/src/png/zlib/contrib/blast/test.pk Binary files differindex be10b2bbb..be10b2bbb 100644 --- a/xs/src/png/zlib/contrib/blast/test.pk +++ b/src/png/zlib/contrib/blast/test.pk diff --git a/xs/src/png/zlib/contrib/blast/test.txt b/src/png/zlib/contrib/blast/test.txt index bfdf1c5dc..bfdf1c5dc 100644 --- a/xs/src/png/zlib/contrib/blast/test.txt +++ b/src/png/zlib/contrib/blast/test.txt diff --git a/xs/src/png/zlib/contrib/delphi/ZLib.pas b/src/png/zlib/contrib/delphi/ZLib.pas index 060e19911..060e19911 100644 --- a/xs/src/png/zlib/contrib/delphi/ZLib.pas +++ b/src/png/zlib/contrib/delphi/ZLib.pas diff --git a/xs/src/png/zlib/contrib/delphi/ZLibConst.pas b/src/png/zlib/contrib/delphi/ZLibConst.pas index cdfe13671..cdfe13671 100644 --- a/xs/src/png/zlib/contrib/delphi/ZLibConst.pas +++ b/src/png/zlib/contrib/delphi/ZLibConst.pas diff --git a/xs/src/png/zlib/contrib/delphi/readme.txt b/src/png/zlib/contrib/delphi/readme.txt index 2dc9a8bba..2dc9a8bba 100644 --- a/xs/src/png/zlib/contrib/delphi/readme.txt +++ b/src/png/zlib/contrib/delphi/readme.txt diff --git a/xs/src/png/zlib/contrib/delphi/zlibd32.mak b/src/png/zlib/contrib/delphi/zlibd32.mak index 9bb00b7cc..9bb00b7cc 100644 --- a/xs/src/png/zlib/contrib/delphi/zlibd32.mak +++ b/src/png/zlib/contrib/delphi/zlibd32.mak diff --git a/xs/src/png/zlib/contrib/dotzlib/DotZLib.build b/src/png/zlib/contrib/dotzlib/DotZLib.build index e69630cec..e69630cec 100644 --- a/xs/src/png/zlib/contrib/dotzlib/DotZLib.build +++ b/src/png/zlib/contrib/dotzlib/DotZLib.build diff --git a/xs/src/png/zlib/contrib/dotzlib/DotZLib.chm b/src/png/zlib/contrib/dotzlib/DotZLib.chm Binary files differindex f214a444a..f214a444a 100644 --- a/xs/src/png/zlib/contrib/dotzlib/DotZLib.chm +++ b/src/png/zlib/contrib/dotzlib/DotZLib.chm diff --git a/xs/src/png/zlib/contrib/dotzlib/DotZLib.sln b/src/png/zlib/contrib/dotzlib/DotZLib.sln index 5d533d6bc..5d533d6bc 100644 --- a/xs/src/png/zlib/contrib/dotzlib/DotZLib.sln +++ b/src/png/zlib/contrib/dotzlib/DotZLib.sln diff --git a/xs/src/png/zlib/contrib/dotzlib/DotZLib/AssemblyInfo.cs b/src/png/zlib/contrib/dotzlib/DotZLib/AssemblyInfo.cs index 724c5347f..724c5347f 100644 --- a/xs/src/png/zlib/contrib/dotzlib/DotZLib/AssemblyInfo.cs +++ b/src/png/zlib/contrib/dotzlib/DotZLib/AssemblyInfo.cs diff --git a/xs/src/png/zlib/contrib/dotzlib/DotZLib/ChecksumImpl.cs b/src/png/zlib/contrib/dotzlib/DotZLib/ChecksumImpl.cs index b110dae6a..b110dae6a 100644 --- a/xs/src/png/zlib/contrib/dotzlib/DotZLib/ChecksumImpl.cs +++ b/src/png/zlib/contrib/dotzlib/DotZLib/ChecksumImpl.cs diff --git a/xs/src/png/zlib/contrib/dotzlib/DotZLib/CircularBuffer.cs b/src/png/zlib/contrib/dotzlib/DotZLib/CircularBuffer.cs index 9c8d60195..9c8d60195 100644 --- a/xs/src/png/zlib/contrib/dotzlib/DotZLib/CircularBuffer.cs +++ b/src/png/zlib/contrib/dotzlib/DotZLib/CircularBuffer.cs diff --git a/xs/src/png/zlib/contrib/dotzlib/DotZLib/CodecBase.cs b/src/png/zlib/contrib/dotzlib/DotZLib/CodecBase.cs index b0eb78a02..b0eb78a02 100644 --- a/xs/src/png/zlib/contrib/dotzlib/DotZLib/CodecBase.cs +++ b/src/png/zlib/contrib/dotzlib/DotZLib/CodecBase.cs diff --git a/xs/src/png/zlib/contrib/dotzlib/DotZLib/Deflater.cs b/src/png/zlib/contrib/dotzlib/DotZLib/Deflater.cs index 9039f41f6..9039f41f6 100644 --- a/xs/src/png/zlib/contrib/dotzlib/DotZLib/Deflater.cs +++ b/src/png/zlib/contrib/dotzlib/DotZLib/Deflater.cs diff --git a/xs/src/png/zlib/contrib/dotzlib/DotZLib/DotZLib.cs b/src/png/zlib/contrib/dotzlib/DotZLib/DotZLib.cs index 90c7c3b38..90c7c3b38 100644 --- a/xs/src/png/zlib/contrib/dotzlib/DotZLib/DotZLib.cs +++ b/src/png/zlib/contrib/dotzlib/DotZLib/DotZLib.cs diff --git a/xs/src/png/zlib/contrib/dotzlib/DotZLib/DotZLib.csproj b/src/png/zlib/contrib/dotzlib/DotZLib/DotZLib.csproj index dea7fb16a..dea7fb16a 100644 --- a/xs/src/png/zlib/contrib/dotzlib/DotZLib/DotZLib.csproj +++ b/src/png/zlib/contrib/dotzlib/DotZLib/DotZLib.csproj diff --git a/xs/src/png/zlib/contrib/dotzlib/DotZLib/GZipStream.cs b/src/png/zlib/contrib/dotzlib/DotZLib/GZipStream.cs index f0eada1d2..f0eada1d2 100644 --- a/xs/src/png/zlib/contrib/dotzlib/DotZLib/GZipStream.cs +++ b/src/png/zlib/contrib/dotzlib/DotZLib/GZipStream.cs diff --git a/xs/src/png/zlib/contrib/dotzlib/DotZLib/Inflater.cs b/src/png/zlib/contrib/dotzlib/DotZLib/Inflater.cs index d295f2680..d295f2680 100644 --- a/xs/src/png/zlib/contrib/dotzlib/DotZLib/Inflater.cs +++ b/src/png/zlib/contrib/dotzlib/DotZLib/Inflater.cs diff --git a/xs/src/png/zlib/contrib/dotzlib/DotZLib/UnitTests.cs b/src/png/zlib/contrib/dotzlib/DotZLib/UnitTests.cs index 6d8aebb79..6d8aebb79 100644 --- a/xs/src/png/zlib/contrib/dotzlib/DotZLib/UnitTests.cs +++ b/src/png/zlib/contrib/dotzlib/DotZLib/UnitTests.cs diff --git a/xs/src/png/zlib/contrib/dotzlib/LICENSE_1_0.txt b/src/png/zlib/contrib/dotzlib/LICENSE_1_0.txt index 127a5bc39..127a5bc39 100644 --- a/xs/src/png/zlib/contrib/dotzlib/LICENSE_1_0.txt +++ b/src/png/zlib/contrib/dotzlib/LICENSE_1_0.txt diff --git a/xs/src/png/zlib/contrib/dotzlib/readme.txt b/src/png/zlib/contrib/dotzlib/readme.txt index 4d8c2dd93..4d8c2dd93 100644 --- a/xs/src/png/zlib/contrib/dotzlib/readme.txt +++ b/src/png/zlib/contrib/dotzlib/readme.txt diff --git a/xs/src/png/zlib/contrib/gcc_gvmat64/gvmat64.S b/src/png/zlib/contrib/gcc_gvmat64/gvmat64.S index 23309fa28..23309fa28 100644 --- a/xs/src/png/zlib/contrib/gcc_gvmat64/gvmat64.S +++ b/src/png/zlib/contrib/gcc_gvmat64/gvmat64.S diff --git a/xs/src/png/zlib/contrib/infback9/README b/src/png/zlib/contrib/infback9/README index e75ed1329..e75ed1329 100644 --- a/xs/src/png/zlib/contrib/infback9/README +++ b/src/png/zlib/contrib/infback9/README diff --git a/xs/src/png/zlib/contrib/infback9/infback9.c b/src/png/zlib/contrib/infback9/infback9.c index 05fb3e338..05fb3e338 100644 --- a/xs/src/png/zlib/contrib/infback9/infback9.c +++ b/src/png/zlib/contrib/infback9/infback9.c diff --git a/xs/src/png/zlib/contrib/infback9/infback9.h b/src/png/zlib/contrib/infback9/infback9.h index 1073c0a38..1073c0a38 100644 --- a/xs/src/png/zlib/contrib/infback9/infback9.h +++ b/src/png/zlib/contrib/infback9/infback9.h diff --git a/xs/src/png/zlib/contrib/infback9/inffix9.h b/src/png/zlib/contrib/infback9/inffix9.h index ee5671d2d..ee5671d2d 100644 --- a/xs/src/png/zlib/contrib/infback9/inffix9.h +++ b/src/png/zlib/contrib/infback9/inffix9.h diff --git a/xs/src/png/zlib/contrib/infback9/inflate9.h b/src/png/zlib/contrib/infback9/inflate9.h index ee9a79394..ee9a79394 100644 --- a/xs/src/png/zlib/contrib/infback9/inflate9.h +++ b/src/png/zlib/contrib/infback9/inflate9.h diff --git a/xs/src/png/zlib/contrib/infback9/inftree9.c b/src/png/zlib/contrib/infback9/inftree9.c index 5f4a76798..5f4a76798 100644 --- a/xs/src/png/zlib/contrib/infback9/inftree9.c +++ b/src/png/zlib/contrib/infback9/inftree9.c diff --git a/xs/src/png/zlib/contrib/infback9/inftree9.h b/src/png/zlib/contrib/infback9/inftree9.h index 5ab21f0c6..5ab21f0c6 100644 --- a/xs/src/png/zlib/contrib/infback9/inftree9.h +++ b/src/png/zlib/contrib/infback9/inftree9.h diff --git a/xs/src/png/zlib/contrib/inflate86/inffas86.c b/src/png/zlib/contrib/inflate86/inffas86.c index 7292f67b7..7292f67b7 100644 --- a/xs/src/png/zlib/contrib/inflate86/inffas86.c +++ b/src/png/zlib/contrib/inflate86/inffas86.c diff --git a/xs/src/png/zlib/contrib/inflate86/inffast.S b/src/png/zlib/contrib/inflate86/inffast.S index 2245a2905..2245a2905 100644 --- a/xs/src/png/zlib/contrib/inflate86/inffast.S +++ b/src/png/zlib/contrib/inflate86/inffast.S diff --git a/xs/src/png/zlib/contrib/iostream/test.cpp b/src/png/zlib/contrib/iostream/test.cpp index 7d265b3b5..7d265b3b5 100644 --- a/xs/src/png/zlib/contrib/iostream/test.cpp +++ b/src/png/zlib/contrib/iostream/test.cpp diff --git a/xs/src/png/zlib/contrib/iostream/zfstream.cpp b/src/png/zlib/contrib/iostream/zfstream.cpp index d0cd85faa..d0cd85faa 100644 --- a/xs/src/png/zlib/contrib/iostream/zfstream.cpp +++ b/src/png/zlib/contrib/iostream/zfstream.cpp diff --git a/xs/src/png/zlib/contrib/iostream/zfstream.h b/src/png/zlib/contrib/iostream/zfstream.h index ed79098a3..ed79098a3 100644 --- a/xs/src/png/zlib/contrib/iostream/zfstream.h +++ b/src/png/zlib/contrib/iostream/zfstream.h diff --git a/xs/src/png/zlib/contrib/iostream2/zstream.h b/src/png/zlib/contrib/iostream2/zstream.h index 43d2332b7..43d2332b7 100644 --- a/xs/src/png/zlib/contrib/iostream2/zstream.h +++ b/src/png/zlib/contrib/iostream2/zstream.h diff --git a/xs/src/png/zlib/contrib/iostream2/zstream_test.cpp b/src/png/zlib/contrib/iostream2/zstream_test.cpp index 6273f62d6..6273f62d6 100644 --- a/xs/src/png/zlib/contrib/iostream2/zstream_test.cpp +++ b/src/png/zlib/contrib/iostream2/zstream_test.cpp diff --git a/xs/src/png/zlib/contrib/iostream3/README b/src/png/zlib/contrib/iostream3/README index f7b319ab9..f7b319ab9 100644 --- a/xs/src/png/zlib/contrib/iostream3/README +++ b/src/png/zlib/contrib/iostream3/README diff --git a/xs/src/png/zlib/contrib/iostream3/TODO b/src/png/zlib/contrib/iostream3/TODO index 7032f97be..7032f97be 100644 --- a/xs/src/png/zlib/contrib/iostream3/TODO +++ b/src/png/zlib/contrib/iostream3/TODO diff --git a/xs/src/png/zlib/contrib/iostream3/test.cc b/src/png/zlib/contrib/iostream3/test.cc index 94235334f..94235334f 100644 --- a/xs/src/png/zlib/contrib/iostream3/test.cc +++ b/src/png/zlib/contrib/iostream3/test.cc diff --git a/xs/src/png/zlib/contrib/iostream3/zfstream.cc b/src/png/zlib/contrib/iostream3/zfstream.cc index 94eb93344..94eb93344 100644 --- a/xs/src/png/zlib/contrib/iostream3/zfstream.cc +++ b/src/png/zlib/contrib/iostream3/zfstream.cc diff --git a/xs/src/png/zlib/contrib/iostream3/zfstream.h b/src/png/zlib/contrib/iostream3/zfstream.h index 8574479ae..8574479ae 100644 --- a/xs/src/png/zlib/contrib/iostream3/zfstream.h +++ b/src/png/zlib/contrib/iostream3/zfstream.h diff --git a/xs/src/png/zlib/contrib/masmx64/bld_ml64.bat b/src/png/zlib/contrib/masmx64/bld_ml64.bat index f74bcef5b..f74bcef5b 100644 --- a/xs/src/png/zlib/contrib/masmx64/bld_ml64.bat +++ b/src/png/zlib/contrib/masmx64/bld_ml64.bat diff --git a/xs/src/png/zlib/contrib/masmx64/gvmat64.asm b/src/png/zlib/contrib/masmx64/gvmat64.asm index c1817f1be..c1817f1be 100644 --- a/xs/src/png/zlib/contrib/masmx64/gvmat64.asm +++ b/src/png/zlib/contrib/masmx64/gvmat64.asm diff --git a/xs/src/png/zlib/contrib/masmx64/inffas8664.c b/src/png/zlib/contrib/masmx64/inffas8664.c index aa861a333..aa861a333 100644 --- a/xs/src/png/zlib/contrib/masmx64/inffas8664.c +++ b/src/png/zlib/contrib/masmx64/inffas8664.c diff --git a/xs/src/png/zlib/contrib/masmx64/inffasx64.asm b/src/png/zlib/contrib/masmx64/inffasx64.asm index 41ec82392..41ec82392 100644 --- a/xs/src/png/zlib/contrib/masmx64/inffasx64.asm +++ b/src/png/zlib/contrib/masmx64/inffasx64.asm diff --git a/xs/src/png/zlib/contrib/masmx64/readme.txt b/src/png/zlib/contrib/masmx64/readme.txt index 652571c7a..652571c7a 100644 --- a/xs/src/png/zlib/contrib/masmx64/readme.txt +++ b/src/png/zlib/contrib/masmx64/readme.txt diff --git a/xs/src/png/zlib/contrib/masmx86/bld_ml32.bat b/src/png/zlib/contrib/masmx86/bld_ml32.bat index fcf5755e4..fcf5755e4 100644 --- a/xs/src/png/zlib/contrib/masmx86/bld_ml32.bat +++ b/src/png/zlib/contrib/masmx86/bld_ml32.bat diff --git a/xs/src/png/zlib/contrib/masmx86/inffas32.asm b/src/png/zlib/contrib/masmx86/inffas32.asm index cb37a81e4..cb37a81e4 100644 --- a/xs/src/png/zlib/contrib/masmx86/inffas32.asm +++ b/src/png/zlib/contrib/masmx86/inffas32.asm diff --git a/xs/src/png/zlib/contrib/masmx86/match686.asm b/src/png/zlib/contrib/masmx86/match686.asm index 69e0eed01..69e0eed01 100644 --- a/xs/src/png/zlib/contrib/masmx86/match686.asm +++ b/src/png/zlib/contrib/masmx86/match686.asm diff --git a/xs/src/png/zlib/contrib/masmx86/readme.txt b/src/png/zlib/contrib/masmx86/readme.txt index 3f8888679..3f8888679 100644 --- a/xs/src/png/zlib/contrib/masmx86/readme.txt +++ b/src/png/zlib/contrib/masmx86/readme.txt diff --git a/xs/src/png/zlib/contrib/minizip/Makefile b/src/png/zlib/contrib/minizip/Makefile index 84eaad20d..84eaad20d 100644 --- a/xs/src/png/zlib/contrib/minizip/Makefile +++ b/src/png/zlib/contrib/minizip/Makefile diff --git a/xs/src/png/zlib/contrib/minizip/Makefile.am b/src/png/zlib/contrib/minizip/Makefile.am index d343011eb..d343011eb 100644 --- a/xs/src/png/zlib/contrib/minizip/Makefile.am +++ b/src/png/zlib/contrib/minizip/Makefile.am diff --git a/xs/src/png/zlib/contrib/minizip/MiniZip64_Changes.txt b/src/png/zlib/contrib/minizip/MiniZip64_Changes.txt index 13a1bd91a..13a1bd91a 100644 --- a/xs/src/png/zlib/contrib/minizip/MiniZip64_Changes.txt +++ b/src/png/zlib/contrib/minizip/MiniZip64_Changes.txt diff --git a/xs/src/png/zlib/contrib/minizip/MiniZip64_info.txt b/src/png/zlib/contrib/minizip/MiniZip64_info.txt index 57d715242..57d715242 100644 --- a/xs/src/png/zlib/contrib/minizip/MiniZip64_info.txt +++ b/src/png/zlib/contrib/minizip/MiniZip64_info.txt diff --git a/xs/src/png/zlib/contrib/minizip/configure.ac b/src/png/zlib/contrib/minizip/configure.ac index 5b1197097..5b1197097 100644 --- a/xs/src/png/zlib/contrib/minizip/configure.ac +++ b/src/png/zlib/contrib/minizip/configure.ac diff --git a/xs/src/png/zlib/contrib/minizip/crypt.h b/src/png/zlib/contrib/minizip/crypt.h index 1e9e8200b..1e9e8200b 100644 --- a/xs/src/png/zlib/contrib/minizip/crypt.h +++ b/src/png/zlib/contrib/minizip/crypt.h diff --git a/xs/src/png/zlib/contrib/minizip/ioapi.c b/src/png/zlib/contrib/minizip/ioapi.c index 7f5c191b2..7f5c191b2 100644 --- a/xs/src/png/zlib/contrib/minizip/ioapi.c +++ b/src/png/zlib/contrib/minizip/ioapi.c diff --git a/xs/src/png/zlib/contrib/minizip/ioapi.h b/src/png/zlib/contrib/minizip/ioapi.h index 8dcbdb06e..8dcbdb06e 100644 --- a/xs/src/png/zlib/contrib/minizip/ioapi.h +++ b/src/png/zlib/contrib/minizip/ioapi.h diff --git a/xs/src/png/zlib/contrib/minizip/iowin32.c b/src/png/zlib/contrib/minizip/iowin32.c index 274f39eb1..274f39eb1 100644 --- a/xs/src/png/zlib/contrib/minizip/iowin32.c +++ b/src/png/zlib/contrib/minizip/iowin32.c diff --git a/xs/src/png/zlib/contrib/minizip/iowin32.h b/src/png/zlib/contrib/minizip/iowin32.h index 0ca0969a7..0ca0969a7 100644 --- a/xs/src/png/zlib/contrib/minizip/iowin32.h +++ b/src/png/zlib/contrib/minizip/iowin32.h diff --git a/xs/src/png/zlib/contrib/minizip/make_vms.com b/src/png/zlib/contrib/minizip/make_vms.com index 9ac13a98f..9ac13a98f 100644 --- a/xs/src/png/zlib/contrib/minizip/make_vms.com +++ b/src/png/zlib/contrib/minizip/make_vms.com diff --git a/xs/src/png/zlib/contrib/minizip/miniunz.c b/src/png/zlib/contrib/minizip/miniunz.c index 3d65401be..3d65401be 100644 --- a/xs/src/png/zlib/contrib/minizip/miniunz.c +++ b/src/png/zlib/contrib/minizip/miniunz.c diff --git a/xs/src/png/zlib/contrib/minizip/miniunzip.1 b/src/png/zlib/contrib/minizip/miniunzip.1 index 111ac6919..111ac6919 100644 --- a/xs/src/png/zlib/contrib/minizip/miniunzip.1 +++ b/src/png/zlib/contrib/minizip/miniunzip.1 diff --git a/xs/src/png/zlib/contrib/minizip/minizip.1 b/src/png/zlib/contrib/minizip/minizip.1 index 1154484c1..1154484c1 100644 --- a/xs/src/png/zlib/contrib/minizip/minizip.1 +++ b/src/png/zlib/contrib/minizip/minizip.1 diff --git a/xs/src/png/zlib/contrib/minizip/minizip.c b/src/png/zlib/contrib/minizip/minizip.c index 4288962ec..4288962ec 100644 --- a/xs/src/png/zlib/contrib/minizip/minizip.c +++ b/src/png/zlib/contrib/minizip/minizip.c diff --git a/xs/src/png/zlib/contrib/minizip/minizip.pc.in b/src/png/zlib/contrib/minizip/minizip.pc.in index 69b5b7fdc..69b5b7fdc 100644 --- a/xs/src/png/zlib/contrib/minizip/minizip.pc.in +++ b/src/png/zlib/contrib/minizip/minizip.pc.in diff --git a/xs/src/png/zlib/contrib/minizip/mztools.c b/src/png/zlib/contrib/minizip/mztools.c index 96891c2e0..96891c2e0 100644 --- a/xs/src/png/zlib/contrib/minizip/mztools.c +++ b/src/png/zlib/contrib/minizip/mztools.c diff --git a/xs/src/png/zlib/contrib/minizip/mztools.h b/src/png/zlib/contrib/minizip/mztools.h index a49a426ec..a49a426ec 100644 --- a/xs/src/png/zlib/contrib/minizip/mztools.h +++ b/src/png/zlib/contrib/minizip/mztools.h diff --git a/xs/src/png/zlib/contrib/minizip/unzip.c b/src/png/zlib/contrib/minizip/unzip.c index bcfb9416e..bcfb9416e 100644 --- a/xs/src/png/zlib/contrib/minizip/unzip.c +++ b/src/png/zlib/contrib/minizip/unzip.c diff --git a/xs/src/png/zlib/contrib/minizip/unzip.h b/src/png/zlib/contrib/minizip/unzip.h index 2104e3915..2104e3915 100644 --- a/xs/src/png/zlib/contrib/minizip/unzip.h +++ b/src/png/zlib/contrib/minizip/unzip.h diff --git a/xs/src/png/zlib/contrib/minizip/zip.c b/src/png/zlib/contrib/minizip/zip.c index 44e88a9cb..44e88a9cb 100644 --- a/xs/src/png/zlib/contrib/minizip/zip.c +++ b/src/png/zlib/contrib/minizip/zip.c diff --git a/xs/src/png/zlib/contrib/minizip/zip.h b/src/png/zlib/contrib/minizip/zip.h index 8aaebb623..8aaebb623 100644 --- a/xs/src/png/zlib/contrib/minizip/zip.h +++ b/src/png/zlib/contrib/minizip/zip.h diff --git a/xs/src/png/zlib/contrib/pascal/example.pas b/src/png/zlib/contrib/pascal/example.pas index 5518b36a7..5518b36a7 100644 --- a/xs/src/png/zlib/contrib/pascal/example.pas +++ b/src/png/zlib/contrib/pascal/example.pas diff --git a/xs/src/png/zlib/contrib/pascal/readme.txt b/src/png/zlib/contrib/pascal/readme.txt index 60e87c8a3..60e87c8a3 100644 --- a/xs/src/png/zlib/contrib/pascal/readme.txt +++ b/src/png/zlib/contrib/pascal/readme.txt diff --git a/xs/src/png/zlib/contrib/pascal/zlibd32.mak b/src/png/zlib/contrib/pascal/zlibd32.mak index 9bb00b7cc..9bb00b7cc 100644 --- a/xs/src/png/zlib/contrib/pascal/zlibd32.mak +++ b/src/png/zlib/contrib/pascal/zlibd32.mak diff --git a/xs/src/png/zlib/contrib/pascal/zlibpas.pas b/src/png/zlib/contrib/pascal/zlibpas.pas index a0dff11b5..a0dff11b5 100644 --- a/xs/src/png/zlib/contrib/pascal/zlibpas.pas +++ b/src/png/zlib/contrib/pascal/zlibpas.pas diff --git a/xs/src/png/zlib/contrib/puff/Makefile b/src/png/zlib/contrib/puff/Makefile index 0e2594c80..0e2594c80 100644 --- a/xs/src/png/zlib/contrib/puff/Makefile +++ b/src/png/zlib/contrib/puff/Makefile diff --git a/xs/src/png/zlib/contrib/puff/README b/src/png/zlib/contrib/puff/README index bbc4cb595..bbc4cb595 100644 --- a/xs/src/png/zlib/contrib/puff/README +++ b/src/png/zlib/contrib/puff/README diff --git a/xs/src/png/zlib/contrib/puff/puff.c b/src/png/zlib/contrib/puff/puff.c index c6c90d714..c6c90d714 100644 --- a/xs/src/png/zlib/contrib/puff/puff.c +++ b/src/png/zlib/contrib/puff/puff.c diff --git a/xs/src/png/zlib/contrib/puff/puff.h b/src/png/zlib/contrib/puff/puff.h index e23a24543..e23a24543 100644 --- a/xs/src/png/zlib/contrib/puff/puff.h +++ b/src/png/zlib/contrib/puff/puff.h diff --git a/xs/src/png/zlib/contrib/puff/pufftest.c b/src/png/zlib/contrib/puff/pufftest.c index 776481488..776481488 100644 --- a/xs/src/png/zlib/contrib/puff/pufftest.c +++ b/src/png/zlib/contrib/puff/pufftest.c diff --git a/xs/src/png/zlib/contrib/puff/zeros.raw b/src/png/zlib/contrib/puff/zeros.raw Binary files differindex 0a90e76b3..0a90e76b3 100644 --- a/xs/src/png/zlib/contrib/puff/zeros.raw +++ b/src/png/zlib/contrib/puff/zeros.raw diff --git a/xs/src/png/zlib/contrib/testzlib/testzlib.c b/src/png/zlib/contrib/testzlib/testzlib.c index 8626c92ad..8626c92ad 100644 --- a/xs/src/png/zlib/contrib/testzlib/testzlib.c +++ b/src/png/zlib/contrib/testzlib/testzlib.c diff --git a/xs/src/png/zlib/contrib/testzlib/testzlib.txt b/src/png/zlib/contrib/testzlib/testzlib.txt index e508bb22f..e508bb22f 100644 --- a/xs/src/png/zlib/contrib/testzlib/testzlib.txt +++ b/src/png/zlib/contrib/testzlib/testzlib.txt diff --git a/xs/src/png/zlib/contrib/untgz/Makefile b/src/png/zlib/contrib/untgz/Makefile index b54266fba..b54266fba 100644 --- a/xs/src/png/zlib/contrib/untgz/Makefile +++ b/src/png/zlib/contrib/untgz/Makefile diff --git a/xs/src/png/zlib/contrib/untgz/Makefile.msc b/src/png/zlib/contrib/untgz/Makefile.msc index 77b860221..77b860221 100644 --- a/xs/src/png/zlib/contrib/untgz/Makefile.msc +++ b/src/png/zlib/contrib/untgz/Makefile.msc diff --git a/xs/src/png/zlib/contrib/untgz/untgz.c b/src/png/zlib/contrib/untgz/untgz.c index 2c391e598..2c391e598 100644 --- a/xs/src/png/zlib/contrib/untgz/untgz.c +++ b/src/png/zlib/contrib/untgz/untgz.c diff --git a/xs/src/png/zlib/contrib/vstudio/readme.txt b/src/png/zlib/contrib/vstudio/readme.txt index 48cccc0d2..48cccc0d2 100644 --- a/xs/src/png/zlib/contrib/vstudio/readme.txt +++ b/src/png/zlib/contrib/vstudio/readme.txt diff --git a/xs/src/png/zlib/contrib/vstudio/vc10/miniunz.vcxproj b/src/png/zlib/contrib/vstudio/vc10/miniunz.vcxproj index 1b3624215..1b3624215 100644 --- a/xs/src/png/zlib/contrib/vstudio/vc10/miniunz.vcxproj +++ b/src/png/zlib/contrib/vstudio/vc10/miniunz.vcxproj diff --git a/xs/src/png/zlib/contrib/vstudio/vc10/miniunz.vcxproj.filters b/src/png/zlib/contrib/vstudio/vc10/miniunz.vcxproj.filters index 0bd12210c..0bd12210c 100644 --- a/xs/src/png/zlib/contrib/vstudio/vc10/miniunz.vcxproj.filters +++ b/src/png/zlib/contrib/vstudio/vc10/miniunz.vcxproj.filters diff --git a/xs/src/png/zlib/contrib/vstudio/vc10/minizip.vcxproj b/src/png/zlib/contrib/vstudio/vc10/minizip.vcxproj index ccd3651df..ccd3651df 100644 --- a/xs/src/png/zlib/contrib/vstudio/vc10/minizip.vcxproj +++ b/src/png/zlib/contrib/vstudio/vc10/minizip.vcxproj diff --git a/xs/src/png/zlib/contrib/vstudio/vc10/minizip.vcxproj.filters b/src/png/zlib/contrib/vstudio/vc10/minizip.vcxproj.filters index 7076d76ff..7076d76ff 100644 --- a/xs/src/png/zlib/contrib/vstudio/vc10/minizip.vcxproj.filters +++ b/src/png/zlib/contrib/vstudio/vc10/minizip.vcxproj.filters diff --git a/xs/src/png/zlib/contrib/vstudio/vc10/testzlib.vcxproj b/src/png/zlib/contrib/vstudio/vc10/testzlib.vcxproj index 476b8ea45..476b8ea45 100644 --- a/xs/src/png/zlib/contrib/vstudio/vc10/testzlib.vcxproj +++ b/src/png/zlib/contrib/vstudio/vc10/testzlib.vcxproj diff --git a/xs/src/png/zlib/contrib/vstudio/vc10/testzlib.vcxproj.filters b/src/png/zlib/contrib/vstudio/vc10/testzlib.vcxproj.filters index 327649103..327649103 100644 --- a/xs/src/png/zlib/contrib/vstudio/vc10/testzlib.vcxproj.filters +++ b/src/png/zlib/contrib/vstudio/vc10/testzlib.vcxproj.filters diff --git a/xs/src/png/zlib/contrib/vstudio/vc10/testzlibdll.vcxproj b/src/png/zlib/contrib/vstudio/vc10/testzlibdll.vcxproj index 8e38876fa..8e38876fa 100644 --- a/xs/src/png/zlib/contrib/vstudio/vc10/testzlibdll.vcxproj +++ b/src/png/zlib/contrib/vstudio/vc10/testzlibdll.vcxproj diff --git a/xs/src/png/zlib/contrib/vstudio/vc10/testzlibdll.vcxproj.filters b/src/png/zlib/contrib/vstudio/vc10/testzlibdll.vcxproj.filters index ab87f09f4..ab87f09f4 100644 --- a/xs/src/png/zlib/contrib/vstudio/vc10/testzlibdll.vcxproj.filters +++ b/src/png/zlib/contrib/vstudio/vc10/testzlibdll.vcxproj.filters diff --git a/xs/src/png/zlib/contrib/vstudio/vc10/zlib.rc b/src/png/zlib/contrib/vstudio/vc10/zlib.rc index c4e4b016e..c4e4b016e 100644 --- a/xs/src/png/zlib/contrib/vstudio/vc10/zlib.rc +++ b/src/png/zlib/contrib/vstudio/vc10/zlib.rc diff --git a/xs/src/png/zlib/contrib/vstudio/vc10/zlibstat.vcxproj b/src/png/zlib/contrib/vstudio/vc10/zlibstat.vcxproj index 45389a352..45389a352 100644 --- a/xs/src/png/zlib/contrib/vstudio/vc10/zlibstat.vcxproj +++ b/src/png/zlib/contrib/vstudio/vc10/zlibstat.vcxproj diff --git a/xs/src/png/zlib/contrib/vstudio/vc10/zlibstat.vcxproj.filters b/src/png/zlib/contrib/vstudio/vc10/zlibstat.vcxproj.filters index 0c8b2501c..0c8b2501c 100644 --- a/xs/src/png/zlib/contrib/vstudio/vc10/zlibstat.vcxproj.filters +++ b/src/png/zlib/contrib/vstudio/vc10/zlibstat.vcxproj.filters diff --git a/xs/src/png/zlib/contrib/vstudio/vc10/zlibvc.def b/src/png/zlib/contrib/vstudio/vc10/zlibvc.def index f876c3bca..f876c3bca 100644 --- a/xs/src/png/zlib/contrib/vstudio/vc10/zlibvc.def +++ b/src/png/zlib/contrib/vstudio/vc10/zlibvc.def diff --git a/xs/src/png/zlib/contrib/vstudio/vc10/zlibvc.sln b/src/png/zlib/contrib/vstudio/vc10/zlibvc.sln index 649f40c7e..649f40c7e 100644 --- a/xs/src/png/zlib/contrib/vstudio/vc10/zlibvc.sln +++ b/src/png/zlib/contrib/vstudio/vc10/zlibvc.sln diff --git a/xs/src/png/zlib/contrib/vstudio/vc10/zlibvc.vcxproj b/src/png/zlib/contrib/vstudio/vc10/zlibvc.vcxproj index 7d7c49a6d..7d7c49a6d 100644 --- a/xs/src/png/zlib/contrib/vstudio/vc10/zlibvc.vcxproj +++ b/src/png/zlib/contrib/vstudio/vc10/zlibvc.vcxproj diff --git a/xs/src/png/zlib/contrib/vstudio/vc10/zlibvc.vcxproj.filters b/src/png/zlib/contrib/vstudio/vc10/zlibvc.vcxproj.filters index 22786824f..22786824f 100644 --- a/xs/src/png/zlib/contrib/vstudio/vc10/zlibvc.vcxproj.filters +++ b/src/png/zlib/contrib/vstudio/vc10/zlibvc.vcxproj.filters diff --git a/xs/src/png/zlib/contrib/vstudio/vc11/miniunz.vcxproj b/src/png/zlib/contrib/vstudio/vc11/miniunz.vcxproj index 99be63d69..99be63d69 100644 --- a/xs/src/png/zlib/contrib/vstudio/vc11/miniunz.vcxproj +++ b/src/png/zlib/contrib/vstudio/vc11/miniunz.vcxproj diff --git a/xs/src/png/zlib/contrib/vstudio/vc11/minizip.vcxproj b/src/png/zlib/contrib/vstudio/vc11/minizip.vcxproj index d6e98f4d5..d6e98f4d5 100644 --- a/xs/src/png/zlib/contrib/vstudio/vc11/minizip.vcxproj +++ b/src/png/zlib/contrib/vstudio/vc11/minizip.vcxproj diff --git a/xs/src/png/zlib/contrib/vstudio/vc11/testzlib.vcxproj b/src/png/zlib/contrib/vstudio/vc11/testzlib.vcxproj index 0115dd17b..0115dd17b 100644 --- a/xs/src/png/zlib/contrib/vstudio/vc11/testzlib.vcxproj +++ b/src/png/zlib/contrib/vstudio/vc11/testzlib.vcxproj diff --git a/xs/src/png/zlib/contrib/vstudio/vc11/testzlibdll.vcxproj b/src/png/zlib/contrib/vstudio/vc11/testzlibdll.vcxproj index 9d36336eb..9d36336eb 100644 --- a/xs/src/png/zlib/contrib/vstudio/vc11/testzlibdll.vcxproj +++ b/src/png/zlib/contrib/vstudio/vc11/testzlibdll.vcxproj diff --git a/xs/src/png/zlib/contrib/vstudio/vc11/zlib.rc b/src/png/zlib/contrib/vstudio/vc11/zlib.rc index c4e4b016e..c4e4b016e 100644 --- a/xs/src/png/zlib/contrib/vstudio/vc11/zlib.rc +++ b/src/png/zlib/contrib/vstudio/vc11/zlib.rc diff --git a/xs/src/png/zlib/contrib/vstudio/vc11/zlibstat.vcxproj b/src/png/zlib/contrib/vstudio/vc11/zlibstat.vcxproj index 64b4d869d..64b4d869d 100644 --- a/xs/src/png/zlib/contrib/vstudio/vc11/zlibstat.vcxproj +++ b/src/png/zlib/contrib/vstudio/vc11/zlibstat.vcxproj diff --git a/xs/src/png/zlib/contrib/vstudio/vc11/zlibvc.def b/src/png/zlib/contrib/vstudio/vc11/zlibvc.def index f876c3bca..f876c3bca 100644 --- a/xs/src/png/zlib/contrib/vstudio/vc11/zlibvc.def +++ b/src/png/zlib/contrib/vstudio/vc11/zlibvc.def diff --git a/xs/src/png/zlib/contrib/vstudio/vc11/zlibvc.sln b/src/png/zlib/contrib/vstudio/vc11/zlibvc.sln index b7e381266..b7e381266 100644 --- a/xs/src/png/zlib/contrib/vstudio/vc11/zlibvc.sln +++ b/src/png/zlib/contrib/vstudio/vc11/zlibvc.sln diff --git a/xs/src/png/zlib/contrib/vstudio/vc11/zlibvc.vcxproj b/src/png/zlib/contrib/vstudio/vc11/zlibvc.vcxproj index c4cffccf1..c4cffccf1 100644 --- a/xs/src/png/zlib/contrib/vstudio/vc11/zlibvc.vcxproj +++ b/src/png/zlib/contrib/vstudio/vc11/zlibvc.vcxproj diff --git a/xs/src/png/zlib/contrib/vstudio/vc12/miniunz.vcxproj b/src/png/zlib/contrib/vstudio/vc12/miniunz.vcxproj index d88ac7fc7..d88ac7fc7 100644 --- a/xs/src/png/zlib/contrib/vstudio/vc12/miniunz.vcxproj +++ b/src/png/zlib/contrib/vstudio/vc12/miniunz.vcxproj diff --git a/xs/src/png/zlib/contrib/vstudio/vc12/minizip.vcxproj b/src/png/zlib/contrib/vstudio/vc12/minizip.vcxproj index f1f239c9e..f1f239c9e 100644 --- a/xs/src/png/zlib/contrib/vstudio/vc12/minizip.vcxproj +++ b/src/png/zlib/contrib/vstudio/vc12/minizip.vcxproj diff --git a/xs/src/png/zlib/contrib/vstudio/vc12/testzlib.vcxproj b/src/png/zlib/contrib/vstudio/vc12/testzlib.vcxproj index 64b2cbe34..64b2cbe34 100644 --- a/xs/src/png/zlib/contrib/vstudio/vc12/testzlib.vcxproj +++ b/src/png/zlib/contrib/vstudio/vc12/testzlib.vcxproj diff --git a/xs/src/png/zlib/contrib/vstudio/vc12/testzlibdll.vcxproj b/src/png/zlib/contrib/vstudio/vc12/testzlibdll.vcxproj index c66573a8b..c66573a8b 100644 --- a/xs/src/png/zlib/contrib/vstudio/vc12/testzlibdll.vcxproj +++ b/src/png/zlib/contrib/vstudio/vc12/testzlibdll.vcxproj diff --git a/xs/src/png/zlib/contrib/vstudio/vc12/zlib.rc b/src/png/zlib/contrib/vstudio/vc12/zlib.rc index c4e4b016e..c4e4b016e 100644 --- a/xs/src/png/zlib/contrib/vstudio/vc12/zlib.rc +++ b/src/png/zlib/contrib/vstudio/vc12/zlib.rc diff --git a/xs/src/png/zlib/contrib/vstudio/vc12/zlibstat.vcxproj b/src/png/zlib/contrib/vstudio/vc12/zlibstat.vcxproj index 3fdee7c50..3fdee7c50 100644 --- a/xs/src/png/zlib/contrib/vstudio/vc12/zlibstat.vcxproj +++ b/src/png/zlib/contrib/vstudio/vc12/zlibstat.vcxproj diff --git a/xs/src/png/zlib/contrib/vstudio/vc12/zlibvc.def b/src/png/zlib/contrib/vstudio/vc12/zlibvc.def index f876c3bca..f876c3bca 100644 --- a/xs/src/png/zlib/contrib/vstudio/vc12/zlibvc.def +++ b/src/png/zlib/contrib/vstudio/vc12/zlibvc.def diff --git a/xs/src/png/zlib/contrib/vstudio/vc12/zlibvc.sln b/src/png/zlib/contrib/vstudio/vc12/zlibvc.sln index dcda22984..dcda22984 100644 --- a/xs/src/png/zlib/contrib/vstudio/vc12/zlibvc.sln +++ b/src/png/zlib/contrib/vstudio/vc12/zlibvc.sln diff --git a/xs/src/png/zlib/contrib/vstudio/vc12/zlibvc.vcxproj b/src/png/zlib/contrib/vstudio/vc12/zlibvc.vcxproj index ab2b6c360..ab2b6c360 100644 --- a/xs/src/png/zlib/contrib/vstudio/vc12/zlibvc.vcxproj +++ b/src/png/zlib/contrib/vstudio/vc12/zlibvc.vcxproj diff --git a/xs/src/png/zlib/contrib/vstudio/vc14/miniunz.vcxproj b/src/png/zlib/contrib/vstudio/vc14/miniunz.vcxproj index 9b5c07587..9b5c07587 100644 --- a/xs/src/png/zlib/contrib/vstudio/vc14/miniunz.vcxproj +++ b/src/png/zlib/contrib/vstudio/vc14/miniunz.vcxproj diff --git a/xs/src/png/zlib/contrib/vstudio/vc14/minizip.vcxproj b/src/png/zlib/contrib/vstudio/vc14/minizip.vcxproj index 968a410a1..968a410a1 100644 --- a/xs/src/png/zlib/contrib/vstudio/vc14/minizip.vcxproj +++ b/src/png/zlib/contrib/vstudio/vc14/minizip.vcxproj diff --git a/xs/src/png/zlib/contrib/vstudio/vc14/testzlib.vcxproj b/src/png/zlib/contrib/vstudio/vc14/testzlib.vcxproj index 2c371252a..2c371252a 100644 --- a/xs/src/png/zlib/contrib/vstudio/vc14/testzlib.vcxproj +++ b/src/png/zlib/contrib/vstudio/vc14/testzlib.vcxproj diff --git a/xs/src/png/zlib/contrib/vstudio/vc14/testzlibdll.vcxproj b/src/png/zlib/contrib/vstudio/vc14/testzlibdll.vcxproj index d87474dec..d87474dec 100644 --- a/xs/src/png/zlib/contrib/vstudio/vc14/testzlibdll.vcxproj +++ b/src/png/zlib/contrib/vstudio/vc14/testzlibdll.vcxproj diff --git a/xs/src/png/zlib/contrib/vstudio/vc14/zlib.rc b/src/png/zlib/contrib/vstudio/vc14/zlib.rc index c4e4b016e..c4e4b016e 100644 --- a/xs/src/png/zlib/contrib/vstudio/vc14/zlib.rc +++ b/src/png/zlib/contrib/vstudio/vc14/zlib.rc diff --git a/xs/src/png/zlib/contrib/vstudio/vc14/zlibstat.vcxproj b/src/png/zlib/contrib/vstudio/vc14/zlibstat.vcxproj index 3e4b98639..3e4b98639 100644 --- a/xs/src/png/zlib/contrib/vstudio/vc14/zlibstat.vcxproj +++ b/src/png/zlib/contrib/vstudio/vc14/zlibstat.vcxproj diff --git a/xs/src/png/zlib/contrib/vstudio/vc14/zlibvc.def b/src/png/zlib/contrib/vstudio/vc14/zlibvc.def index f876c3bca..f876c3bca 100644 --- a/xs/src/png/zlib/contrib/vstudio/vc14/zlibvc.def +++ b/src/png/zlib/contrib/vstudio/vc14/zlibvc.def diff --git a/xs/src/png/zlib/contrib/vstudio/vc14/zlibvc.sln b/src/png/zlib/contrib/vstudio/vc14/zlibvc.sln index 6f4a1076a..6f4a1076a 100644 --- a/xs/src/png/zlib/contrib/vstudio/vc14/zlibvc.sln +++ b/src/png/zlib/contrib/vstudio/vc14/zlibvc.sln diff --git a/xs/src/png/zlib/contrib/vstudio/vc14/zlibvc.vcxproj b/src/png/zlib/contrib/vstudio/vc14/zlibvc.vcxproj index f8f673cb0..f8f673cb0 100644 --- a/xs/src/png/zlib/contrib/vstudio/vc14/zlibvc.vcxproj +++ b/src/png/zlib/contrib/vstudio/vc14/zlibvc.vcxproj diff --git a/xs/src/png/zlib/contrib/vstudio/vc9/miniunz.vcproj b/src/png/zlib/contrib/vstudio/vc9/miniunz.vcproj index 038a9e5fa..038a9e5fa 100644 --- a/xs/src/png/zlib/contrib/vstudio/vc9/miniunz.vcproj +++ b/src/png/zlib/contrib/vstudio/vc9/miniunz.vcproj diff --git a/xs/src/png/zlib/contrib/vstudio/vc9/minizip.vcproj b/src/png/zlib/contrib/vstudio/vc9/minizip.vcproj index ad4023991..ad4023991 100644 --- a/xs/src/png/zlib/contrib/vstudio/vc9/minizip.vcproj +++ b/src/png/zlib/contrib/vstudio/vc9/minizip.vcproj diff --git a/xs/src/png/zlib/contrib/vstudio/vc9/testzlib.vcproj b/src/png/zlib/contrib/vstudio/vc9/testzlib.vcproj index c9f19d24e..c9f19d24e 100644 --- a/xs/src/png/zlib/contrib/vstudio/vc9/testzlib.vcproj +++ b/src/png/zlib/contrib/vstudio/vc9/testzlib.vcproj diff --git a/xs/src/png/zlib/contrib/vstudio/vc9/testzlibdll.vcproj b/src/png/zlib/contrib/vstudio/vc9/testzlibdll.vcproj index d7530fd7d..d7530fd7d 100644 --- a/xs/src/png/zlib/contrib/vstudio/vc9/testzlibdll.vcproj +++ b/src/png/zlib/contrib/vstudio/vc9/testzlibdll.vcproj diff --git a/xs/src/png/zlib/contrib/vstudio/vc9/zlib.rc b/src/png/zlib/contrib/vstudio/vc9/zlib.rc index c4e4b016e..c4e4b016e 100644 --- a/xs/src/png/zlib/contrib/vstudio/vc9/zlib.rc +++ b/src/png/zlib/contrib/vstudio/vc9/zlib.rc diff --git a/xs/src/png/zlib/contrib/vstudio/vc9/zlibstat.vcproj b/src/png/zlib/contrib/vstudio/vc9/zlibstat.vcproj index d4ffb46b2..d4ffb46b2 100644 --- a/xs/src/png/zlib/contrib/vstudio/vc9/zlibstat.vcproj +++ b/src/png/zlib/contrib/vstudio/vc9/zlibstat.vcproj diff --git a/xs/src/png/zlib/contrib/vstudio/vc9/zlibvc.def b/src/png/zlib/contrib/vstudio/vc9/zlibvc.def index f876c3bca..f876c3bca 100644 --- a/xs/src/png/zlib/contrib/vstudio/vc9/zlibvc.def +++ b/src/png/zlib/contrib/vstudio/vc9/zlibvc.def diff --git a/xs/src/png/zlib/contrib/vstudio/vc9/zlibvc.sln b/src/png/zlib/contrib/vstudio/vc9/zlibvc.sln index 75c64c3f4..75c64c3f4 100644 --- a/xs/src/png/zlib/contrib/vstudio/vc9/zlibvc.sln +++ b/src/png/zlib/contrib/vstudio/vc9/zlibvc.sln diff --git a/xs/src/png/zlib/contrib/vstudio/vc9/zlibvc.vcproj b/src/png/zlib/contrib/vstudio/vc9/zlibvc.vcproj index 95bb241f3..95bb241f3 100644 --- a/xs/src/png/zlib/contrib/vstudio/vc9/zlibvc.vcproj +++ b/src/png/zlib/contrib/vstudio/vc9/zlibvc.vcproj diff --git a/xs/src/png/zlib/crc32.c b/src/png/zlib/crc32.c index 9580440c0..9580440c0 100644 --- a/xs/src/png/zlib/crc32.c +++ b/src/png/zlib/crc32.c diff --git a/xs/src/png/zlib/crc32.h b/src/png/zlib/crc32.h index 9e0c77810..9e0c77810 100644 --- a/xs/src/png/zlib/crc32.h +++ b/src/png/zlib/crc32.h diff --git a/xs/src/png/zlib/deflate.c b/src/png/zlib/deflate.c index 1ec761448..1ec761448 100644 --- a/xs/src/png/zlib/deflate.c +++ b/src/png/zlib/deflate.c diff --git a/xs/src/png/zlib/deflate.h b/src/png/zlib/deflate.h index 23ecdd312..23ecdd312 100644 --- a/xs/src/png/zlib/deflate.h +++ b/src/png/zlib/deflate.h diff --git a/xs/src/png/zlib/gzclose.c b/src/png/zlib/gzclose.c index caeb99a31..caeb99a31 100644 --- a/xs/src/png/zlib/gzclose.c +++ b/src/png/zlib/gzclose.c diff --git a/xs/src/png/zlib/gzguts.h b/src/png/zlib/gzguts.h index 990a4d251..990a4d251 100644 --- a/xs/src/png/zlib/gzguts.h +++ b/src/png/zlib/gzguts.h diff --git a/xs/src/png/zlib/gzlib.c b/src/png/zlib/gzlib.c index 4105e6aff..4105e6aff 100644 --- a/xs/src/png/zlib/gzlib.c +++ b/src/png/zlib/gzlib.c diff --git a/xs/src/png/zlib/gzread.c b/src/png/zlib/gzread.c index 956b91ea7..956b91ea7 100644 --- a/xs/src/png/zlib/gzread.c +++ b/src/png/zlib/gzread.c diff --git a/xs/src/png/zlib/gzwrite.c b/src/png/zlib/gzwrite.c index c7b5651d7..c7b5651d7 100644 --- a/xs/src/png/zlib/gzwrite.c +++ b/src/png/zlib/gzwrite.c diff --git a/xs/src/png/zlib/infback.c b/src/png/zlib/infback.c index 59679ecbf..59679ecbf 100644 --- a/xs/src/png/zlib/infback.c +++ b/src/png/zlib/infback.c diff --git a/xs/src/png/zlib/inffast.c b/src/png/zlib/inffast.c index 0dbd1dbc0..0dbd1dbc0 100644 --- a/xs/src/png/zlib/inffast.c +++ b/src/png/zlib/inffast.c diff --git a/xs/src/png/zlib/inffast.h b/src/png/zlib/inffast.h index e5c1aa4ca..e5c1aa4ca 100644 --- a/xs/src/png/zlib/inffast.h +++ b/src/png/zlib/inffast.h diff --git a/xs/src/png/zlib/inffixed.h b/src/png/zlib/inffixed.h index d62832776..d62832776 100644 --- a/xs/src/png/zlib/inffixed.h +++ b/src/png/zlib/inffixed.h diff --git a/xs/src/png/zlib/inflate.c b/src/png/zlib/inflate.c index ac333e8c2..ac333e8c2 100644 --- a/xs/src/png/zlib/inflate.c +++ b/src/png/zlib/inflate.c diff --git a/xs/src/png/zlib/inflate.h b/src/png/zlib/inflate.h index a46cce6b6..a46cce6b6 100644 --- a/xs/src/png/zlib/inflate.h +++ b/src/png/zlib/inflate.h diff --git a/xs/src/png/zlib/inftrees.c b/src/png/zlib/inftrees.c index 2ea08fc13..2ea08fc13 100644 --- a/xs/src/png/zlib/inftrees.c +++ b/src/png/zlib/inftrees.c diff --git a/xs/src/png/zlib/inftrees.h b/src/png/zlib/inftrees.h index baa53a0b1..baa53a0b1 100644 --- a/xs/src/png/zlib/inftrees.h +++ b/src/png/zlib/inftrees.h diff --git a/xs/src/png/zlib/make_vms.com b/src/png/zlib/make_vms.com index 65e9d0cbc..65e9d0cbc 100644 --- a/xs/src/png/zlib/make_vms.com +++ b/src/png/zlib/make_vms.com diff --git a/xs/src/png/zlib/msdos/Makefile.bor b/src/png/zlib/msdos/Makefile.bor index 3d12a2c25..3d12a2c25 100644 --- a/xs/src/png/zlib/msdos/Makefile.bor +++ b/src/png/zlib/msdos/Makefile.bor diff --git a/xs/src/png/zlib/msdos/Makefile.dj2 b/src/png/zlib/msdos/Makefile.dj2 index 59d2037d6..59d2037d6 100644 --- a/xs/src/png/zlib/msdos/Makefile.dj2 +++ b/src/png/zlib/msdos/Makefile.dj2 diff --git a/xs/src/png/zlib/msdos/Makefile.emx b/src/png/zlib/msdos/Makefile.emx index e30f67bed..e30f67bed 100644 --- a/xs/src/png/zlib/msdos/Makefile.emx +++ b/src/png/zlib/msdos/Makefile.emx diff --git a/xs/src/png/zlib/msdos/Makefile.msc b/src/png/zlib/msdos/Makefile.msc index ae8378615..ae8378615 100644 --- a/xs/src/png/zlib/msdos/Makefile.msc +++ b/src/png/zlib/msdos/Makefile.msc diff --git a/xs/src/png/zlib/msdos/Makefile.tc b/src/png/zlib/msdos/Makefile.tc index 5aec82a9d..5aec82a9d 100644 --- a/xs/src/png/zlib/msdos/Makefile.tc +++ b/src/png/zlib/msdos/Makefile.tc diff --git a/xs/src/png/zlib/nintendods/Makefile b/src/png/zlib/nintendods/Makefile index 21337d01a..21337d01a 100644 --- a/xs/src/png/zlib/nintendods/Makefile +++ b/src/png/zlib/nintendods/Makefile diff --git a/xs/src/png/zlib/nintendods/README b/src/png/zlib/nintendods/README index ba7a37dbe..ba7a37dbe 100644 --- a/xs/src/png/zlib/nintendods/README +++ b/src/png/zlib/nintendods/README diff --git a/xs/src/png/zlib/old/Makefile.emx b/src/png/zlib/old/Makefile.emx index 612b03791..612b03791 100644 --- a/xs/src/png/zlib/old/Makefile.emx +++ b/src/png/zlib/old/Makefile.emx diff --git a/xs/src/png/zlib/old/Makefile.riscos b/src/png/zlib/old/Makefile.riscos index 57e29d3fb..57e29d3fb 100644 --- a/xs/src/png/zlib/old/Makefile.riscos +++ b/src/png/zlib/old/Makefile.riscos diff --git a/xs/src/png/zlib/old/README b/src/png/zlib/old/README index 800bf0798..800bf0798 100644 --- a/xs/src/png/zlib/old/README +++ b/src/png/zlib/old/README diff --git a/xs/src/png/zlib/old/descrip.mms b/src/png/zlib/old/descrip.mms index 7066da5b5..7066da5b5 100644 --- a/xs/src/png/zlib/old/descrip.mms +++ b/src/png/zlib/old/descrip.mms diff --git a/xs/src/png/zlib/old/os2/Makefile.os2 b/src/png/zlib/old/os2/Makefile.os2 index bb426c0d8..bb426c0d8 100644 --- a/xs/src/png/zlib/old/os2/Makefile.os2 +++ b/src/png/zlib/old/os2/Makefile.os2 diff --git a/xs/src/png/zlib/old/os2/zlib.def b/src/png/zlib/old/os2/zlib.def index 4c753f1a3..4c753f1a3 100644 --- a/xs/src/png/zlib/old/os2/zlib.def +++ b/src/png/zlib/old/os2/zlib.def diff --git a/xs/src/png/zlib/old/visual-basic.txt b/src/png/zlib/old/visual-basic.txt index 57efe5812..57efe5812 100644 --- a/xs/src/png/zlib/old/visual-basic.txt +++ b/src/png/zlib/old/visual-basic.txt diff --git a/xs/src/png/zlib/os400/README400 b/src/png/zlib/os400/README400 index 4f98334f5..4f98334f5 100644 --- a/xs/src/png/zlib/os400/README400 +++ b/src/png/zlib/os400/README400 diff --git a/xs/src/png/zlib/os400/bndsrc b/src/png/zlib/os400/bndsrc index 5e6e0a2f0..5e6e0a2f0 100644 --- a/xs/src/png/zlib/os400/bndsrc +++ b/src/png/zlib/os400/bndsrc diff --git a/xs/src/png/zlib/os400/make.sh b/src/png/zlib/os400/make.sh index 19eec117a..19eec117a 100644 --- a/xs/src/png/zlib/os400/make.sh +++ b/src/png/zlib/os400/make.sh diff --git a/xs/src/png/zlib/os400/zlib.inc b/src/png/zlib/os400/zlib.inc index c6aca2cbd..c6aca2cbd 100644 --- a/xs/src/png/zlib/os400/zlib.inc +++ b/src/png/zlib/os400/zlib.inc diff --git a/xs/src/png/zlib/qnx/package.qpg b/src/png/zlib/qnx/package.qpg index 31e8e90db..31e8e90db 100644 --- a/xs/src/png/zlib/qnx/package.qpg +++ b/src/png/zlib/qnx/package.qpg diff --git a/xs/src/png/zlib/treebuild.xml b/src/png/zlib/treebuild.xml index fd75525f9..fd75525f9 100644 --- a/xs/src/png/zlib/treebuild.xml +++ b/src/png/zlib/treebuild.xml diff --git a/xs/src/png/zlib/trees.c b/src/png/zlib/trees.c index 50cf4b457..50cf4b457 100644 --- a/xs/src/png/zlib/trees.c +++ b/src/png/zlib/trees.c diff --git a/xs/src/png/zlib/trees.h b/src/png/zlib/trees.h index d35639d82..d35639d82 100644 --- a/xs/src/png/zlib/trees.h +++ b/src/png/zlib/trees.h diff --git a/xs/src/png/zlib/uncompr.c b/src/png/zlib/uncompr.c index f03a1a865..f03a1a865 100644 --- a/xs/src/png/zlib/uncompr.c +++ b/src/png/zlib/uncompr.c diff --git a/xs/src/png/zlib/watcom/watcom_f.mak b/src/png/zlib/watcom/watcom_f.mak index 37f4d74c1..37f4d74c1 100644 --- a/xs/src/png/zlib/watcom/watcom_f.mak +++ b/src/png/zlib/watcom/watcom_f.mak diff --git a/xs/src/png/zlib/watcom/watcom_l.mak b/src/png/zlib/watcom/watcom_l.mak index 193eed7b3..193eed7b3 100644 --- a/xs/src/png/zlib/watcom/watcom_l.mak +++ b/src/png/zlib/watcom/watcom_l.mak diff --git a/xs/src/png/zlib/win32/DLL_FAQ.txt b/src/png/zlib/win32/DLL_FAQ.txt index 12c009018..12c009018 100644 --- a/xs/src/png/zlib/win32/DLL_FAQ.txt +++ b/src/png/zlib/win32/DLL_FAQ.txt diff --git a/xs/src/png/zlib/win32/Makefile.bor b/src/png/zlib/win32/Makefile.bor index d152bbb7f..d152bbb7f 100644 --- a/xs/src/png/zlib/win32/Makefile.bor +++ b/src/png/zlib/win32/Makefile.bor diff --git a/xs/src/png/zlib/win32/Makefile.gcc b/src/png/zlib/win32/Makefile.gcc index 305be50af..305be50af 100644 --- a/xs/src/png/zlib/win32/Makefile.gcc +++ b/src/png/zlib/win32/Makefile.gcc diff --git a/xs/src/png/zlib/win32/Makefile.msc b/src/png/zlib/win32/Makefile.msc index 6831882de..6831882de 100644 --- a/xs/src/png/zlib/win32/Makefile.msc +++ b/src/png/zlib/win32/Makefile.msc diff --git a/xs/src/png/zlib/win32/README-WIN32.txt b/src/png/zlib/win32/README-WIN32.txt index df7ab7f4b..df7ab7f4b 100644 --- a/xs/src/png/zlib/win32/README-WIN32.txt +++ b/src/png/zlib/win32/README-WIN32.txt diff --git a/xs/src/png/zlib/win32/VisualC.txt b/src/png/zlib/win32/VisualC.txt index 1005b2194..1005b2194 100644 --- a/xs/src/png/zlib/win32/VisualC.txt +++ b/src/png/zlib/win32/VisualC.txt diff --git a/xs/src/png/zlib/win32/zlib.def b/src/png/zlib/win32/zlib.def index a2188b000..a2188b000 100644 --- a/xs/src/png/zlib/win32/zlib.def +++ b/src/png/zlib/win32/zlib.def diff --git a/xs/src/png/zlib/win32/zlib1.rc b/src/png/zlib/win32/zlib1.rc index 234e641c3..234e641c3 100644 --- a/xs/src/png/zlib/win32/zlib1.rc +++ b/src/png/zlib/win32/zlib1.rc diff --git a/xs/src/png/zlib/zconf.h.cmakein b/src/png/zlib/zconf.h.cmakein index a7f24cce6..a7f24cce6 100644 --- a/xs/src/png/zlib/zconf.h.cmakein +++ b/src/png/zlib/zconf.h.cmakein diff --git a/xs/src/png/zlib/zconf.h.in b/src/png/zlib/zconf.h.in index 5e1d68a00..5e1d68a00 100644 --- a/xs/src/png/zlib/zconf.h.in +++ b/src/png/zlib/zconf.h.in diff --git a/xs/src/png/zlib/zconf.h.included b/src/png/zlib/zconf.h.included index 5e1d68a00..5e1d68a00 100644 --- a/xs/src/png/zlib/zconf.h.included +++ b/src/png/zlib/zconf.h.included diff --git a/xs/src/png/zlib/zlib.3 b/src/png/zlib/zlib.3 index bda4eb073..bda4eb073 100644 --- a/xs/src/png/zlib/zlib.3 +++ b/src/png/zlib/zlib.3 diff --git a/xs/src/png/zlib/zlib.3.pdf b/src/png/zlib/zlib.3.pdf Binary files differindex 6fa519c5b..6fa519c5b 100644 --- a/xs/src/png/zlib/zlib.3.pdf +++ b/src/png/zlib/zlib.3.pdf diff --git a/xs/src/png/zlib/zlib.h b/src/png/zlib/zlib.h index f09cdaf1e..f09cdaf1e 100644 --- a/xs/src/png/zlib/zlib.h +++ b/src/png/zlib/zlib.h diff --git a/xs/src/png/zlib/zlib.map b/src/png/zlib/zlib.map index 82ce98cf7..82ce98cf7 100644 --- a/xs/src/png/zlib/zlib.map +++ b/src/png/zlib/zlib.map diff --git a/xs/src/png/zlib/zlib.pc.cmakein b/src/png/zlib/zlib.pc.cmakein index a5e642938..a5e642938 100644 --- a/xs/src/png/zlib/zlib.pc.cmakein +++ b/src/png/zlib/zlib.pc.cmakein diff --git a/xs/src/png/zlib/zlib.pc.in b/src/png/zlib/zlib.pc.in index 7e5acf9c7..7e5acf9c7 100644 --- a/xs/src/png/zlib/zlib.pc.in +++ b/src/png/zlib/zlib.pc.in diff --git a/xs/src/png/zlib/zlib2ansi b/src/png/zlib/zlib2ansi index 15e3e165f..15e3e165f 100644 --- a/xs/src/png/zlib/zlib2ansi +++ b/src/png/zlib/zlib2ansi diff --git a/xs/src/png/zlib/zutil.c b/src/png/zlib/zutil.c index a76c6b0c7..a76c6b0c7 100644 --- a/xs/src/png/zlib/zutil.c +++ b/src/png/zlib/zutil.c diff --git a/xs/src/png/zlib/zutil.h b/src/png/zlib/zutil.h index b079ea6a8..b079ea6a8 100644 --- a/xs/src/png/zlib/zutil.h +++ b/src/png/zlib/zutil.h diff --git a/src/poly2tri/CMakeLists.txt b/src/poly2tri/CMakeLists.txt new file mode 100644 index 000000000..3cdff1221 --- /dev/null +++ b/src/poly2tri/CMakeLists.txt @@ -0,0 +1,17 @@ +project(poly2tri) +cmake_minimum_required(VERSION 2.6) + +add_library(poly2tri STATIC + common/shapes.cc + common/shapes.h + common/utils.h + poly2tri.h + sweep/advancing_front.cc + sweep/advancing_front.h + sweep/cdt.cc + sweep/cdt.h + sweep/sweep.cc + sweep/sweep.h + sweep/sweep_context.cc + sweep/sweep_context.h +) diff --git a/xs/src/poly2tri/common/shapes.cc b/src/poly2tri/common/shapes.cc index 54aeaba6a..54aeaba6a 100644 --- a/xs/src/poly2tri/common/shapes.cc +++ b/src/poly2tri/common/shapes.cc diff --git a/xs/src/poly2tri/common/shapes.h b/src/poly2tri/common/shapes.h index 3b8a5247e..3b8a5247e 100644 --- a/xs/src/poly2tri/common/shapes.h +++ b/src/poly2tri/common/shapes.h diff --git a/xs/src/poly2tri/common/utils.h b/src/poly2tri/common/utils.h index 4bcb76361..4bcb76361 100644 --- a/xs/src/poly2tri/common/utils.h +++ b/src/poly2tri/common/utils.h diff --git a/xs/src/poly2tri/poly2tri.h b/src/poly2tri/poly2tri.h index 29a08d052..29a08d052 100644 --- a/xs/src/poly2tri/poly2tri.h +++ b/src/poly2tri/poly2tri.h diff --git a/xs/src/poly2tri/sweep/advancing_front.cc b/src/poly2tri/sweep/advancing_front.cc index 38723beef..38723beef 100644 --- a/xs/src/poly2tri/sweep/advancing_front.cc +++ b/src/poly2tri/sweep/advancing_front.cc diff --git a/xs/src/poly2tri/sweep/advancing_front.h b/src/poly2tri/sweep/advancing_front.h index 645dcec97..645dcec97 100644 --- a/xs/src/poly2tri/sweep/advancing_front.h +++ b/src/poly2tri/sweep/advancing_front.h diff --git a/xs/src/poly2tri/sweep/cdt.cc b/src/poly2tri/sweep/cdt.cc index 09d088ae3..09d088ae3 100644 --- a/xs/src/poly2tri/sweep/cdt.cc +++ b/src/poly2tri/sweep/cdt.cc diff --git a/xs/src/poly2tri/sweep/cdt.h b/src/poly2tri/sweep/cdt.h index ea3286d9a..ea3286d9a 100644 --- a/xs/src/poly2tri/sweep/cdt.h +++ b/src/poly2tri/sweep/cdt.h diff --git a/xs/src/poly2tri/sweep/sweep.cc b/src/poly2tri/sweep/sweep.cc index 8d2b576e8..8d2b576e8 100644 --- a/xs/src/poly2tri/sweep/sweep.cc +++ b/src/poly2tri/sweep/sweep.cc diff --git a/xs/src/poly2tri/sweep/sweep.h b/src/poly2tri/sweep/sweep.h index 33e34a714..33e34a714 100644 --- a/xs/src/poly2tri/sweep/sweep.h +++ b/src/poly2tri/sweep/sweep.h diff --git a/xs/src/poly2tri/sweep/sweep_context.cc b/src/poly2tri/sweep/sweep_context.cc index a9f1fdf8e..a9f1fdf8e 100644 --- a/xs/src/poly2tri/sweep/sweep_context.cc +++ b/src/poly2tri/sweep/sweep_context.cc diff --git a/xs/src/poly2tri/sweep/sweep_context.h b/src/poly2tri/sweep/sweep_context.h index ba0d06581..ba0d06581 100644 --- a/xs/src/poly2tri/sweep/sweep_context.h +++ b/src/poly2tri/sweep/sweep_context.h diff --git a/src/polypartition/CMakeLists.txt b/src/polypartition/CMakeLists.txt new file mode 100644 index 000000000..07b92840b --- /dev/null +++ b/src/polypartition/CMakeLists.txt @@ -0,0 +1,7 @@ +project(polypartition) +cmake_minimum_required(VERSION 2.6) + +add_library(polypartition STATIC + polypartition.cpp + polypartition.h +) diff --git a/xs/src/polypartition.cpp b/src/polypartition/polypartition.cpp index 700cd0974..9c5917251 100644 --- a/xs/src/polypartition.cpp +++ b/src/polypartition/polypartition.cpp @@ -1,1563 +1,1563 @@ -//Copyright (C) 2011 by Ivan Fratric
-//
-//Permission is hereby granted, free of charge, to any person obtaining a copy
-//of this software and associated documentation files (the "Software"), to deal
-//in the Software without restriction, including without limitation the rights
-//to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-//copies of the Software, and to permit persons to whom the Software is
-//furnished to do so, subject to the following conditions:
-//
-//The above copyright notice and this permission notice shall be included in
-//all copies or substantial portions of the Software.
-//
-//THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-//IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-//FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-//AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-//LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-//OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-//THE SOFTWARE.
-
-
-#include <stdio.h>
-#include <string.h>
-#include <math.h>
-#include <list>
-#include <algorithm>
-#include <set>
-
-using namespace std;
-
-#include "polypartition.h"
-
-#define TPPL_VERTEXTYPE_REGULAR 0
-#define TPPL_VERTEXTYPE_START 1
-#define TPPL_VERTEXTYPE_END 2
-#define TPPL_VERTEXTYPE_SPLIT 3
-#define TPPL_VERTEXTYPE_MERGE 4
-
-TPPLPoly::TPPLPoly() {
- hole = false;
- numpoints = 0;
- points = NULL;
-}
-
-TPPLPoly::~TPPLPoly() {
- if(points) delete [] points;
-}
-
-void TPPLPoly::Clear() {
- if(points) delete [] points;
- hole = false;
- numpoints = 0;
- points = NULL;
-}
-
-void TPPLPoly::Init(long numpoints) {
- Clear();
- this->numpoints = numpoints;
- points = new TPPLPoint[numpoints];
-}
-
-void TPPLPoly::Triangle(TPPLPoint &p1, TPPLPoint &p2, TPPLPoint &p3) {
- Init(3);
- points[0] = p1;
- points[1] = p2;
- points[2] = p3;
-}
-
-TPPLPoly::TPPLPoly(const TPPLPoly &src) {
- hole = src.hole;
- numpoints = src.numpoints;
- points = new TPPLPoint[numpoints];
- memcpy(points, src.points, numpoints*sizeof(TPPLPoint));
-}
-
-TPPLPoly& TPPLPoly::operator=(const TPPLPoly &src) {
- if(&src != this) {
- Clear();
- hole = src.hole;
- numpoints = src.numpoints;
- points = new TPPLPoint[numpoints];
- memcpy(points, src.points, numpoints*sizeof(TPPLPoint));
- }
- return *this;
-}
-
-int TPPLPoly::GetOrientation() const {
- long i1,i2;
- tppl_float area = 0;
- for(i1=0; i1<numpoints; i1++) {
- i2 = i1+1;
- if(i2 == numpoints) i2 = 0;
- area += points[i1].x * points[i2].y - points[i1].y * points[i2].x;
- }
- if(area>0) return TPPL_CCW;
- if(area<0) return TPPL_CW;
- return 0;
-}
-
-void TPPLPoly::SetOrientation(int orientation) {
- int polyorientation = GetOrientation();
- if(polyorientation&&(polyorientation!=orientation)) {
- Invert();
- }
-}
-
-void TPPLPoly::Invert() {
- long i;
- TPPLPoint *invpoints;
-
- invpoints = new TPPLPoint[numpoints];
- for(i=0;i<numpoints;i++) {
- invpoints[i] = points[numpoints-i-1];
- }
-
- delete [] points;
- points = invpoints;
-}
-
-TPPLPoint TPPLPartition::Normalize(const TPPLPoint &p) {
- TPPLPoint r;
- tppl_float n = sqrt(p.x*p.x + p.y*p.y);
- if(n!=0) {
- r = p/n;
- } else {
- r.x = 0;
- r.y = 0;
- }
- return r;
-}
-
-tppl_float TPPLPartition::Distance(const TPPLPoint &p1, const TPPLPoint &p2) {
- tppl_float dx,dy;
- dx = p2.x - p1.x;
- dy = p2.y - p1.y;
- return(sqrt(dx*dx + dy*dy));
-}
-
-//checks if two lines intersect
-int TPPLPartition::Intersects(TPPLPoint &p11, TPPLPoint &p12, TPPLPoint &p21, TPPLPoint &p22) {
- if((p11.x == p21.x)&&(p11.y == p21.y)) return 0;
- if((p11.x == p22.x)&&(p11.y == p22.y)) return 0;
- if((p12.x == p21.x)&&(p12.y == p21.y)) return 0;
- if((p12.x == p22.x)&&(p12.y == p22.y)) return 0;
-
- TPPLPoint v1ort,v2ort,v;
- tppl_float dot11,dot12,dot21,dot22;
-
- v1ort.x = p12.y-p11.y;
- v1ort.y = p11.x-p12.x;
-
- v2ort.x = p22.y-p21.y;
- v2ort.y = p21.x-p22.x;
-
- v = p21-p11;
- dot21 = v.x*v1ort.x + v.y*v1ort.y;
- v = p22-p11;
- dot22 = v.x*v1ort.x + v.y*v1ort.y;
-
- v = p11-p21;
- dot11 = v.x*v2ort.x + v.y*v2ort.y;
- v = p12-p21;
- dot12 = v.x*v2ort.x + v.y*v2ort.y;
-
- if(dot11*dot12>0) return 0;
- if(dot21*dot22>0) return 0;
-
- return 1;
-}
-
-//removes holes from inpolys by merging them with non-holes
-int TPPLPartition::RemoveHoles(list<TPPLPoly> *inpolys, list<TPPLPoly> *outpolys) {
- list<TPPLPoly> polys;
- list<TPPLPoly>::iterator holeiter,polyiter,iter,iter2;
- long i,i2,holepointindex,polypointindex = 0;
- TPPLPoint holepoint,polypoint,bestpolypoint;
- TPPLPoint linep1,linep2;
- TPPLPoint v1,v2;
- TPPLPoly newpoly;
- bool hasholes;
- bool pointvisible;
- bool pointfound;
-
- //check for trivial case (no holes)
- hasholes = false;
- for(iter = inpolys->begin(); iter!=inpolys->end(); ++iter) {
- if(iter->IsHole()) {
- hasholes = true;
- break;
- }
- }
- if(!hasholes) {
- for(iter = inpolys->begin(); iter!=inpolys->end(); ++iter) {
- outpolys->push_back(*iter);
- }
- return 1;
- }
-
- polys = *inpolys;
-
- while(1) {
- //find the hole point with the largest x
- hasholes = false;
- for(iter = polys.begin(); iter!=polys.end(); ++iter) {
- if(!iter->IsHole()) continue;
-
- if(!hasholes) {
- hasholes = true;
- holeiter = iter;
- holepointindex = 0;
- }
-
- for(i=0; i < iter->GetNumPoints(); i++) {
- if(iter->GetPoint(i).x > holeiter->GetPoint(holepointindex).x) {
- holeiter = iter;
- holepointindex = i;
- }
- }
- }
- if(!hasholes) break;
- holepoint = holeiter->GetPoint(holepointindex);
-
- pointfound = false;
- for(iter = polys.begin(); iter!=polys.end(); ++iter) {
- if(iter->IsHole()) continue;
- for(i=0; i < iter->GetNumPoints(); i++) {
- if(iter->GetPoint(i).x <= holepoint.x) continue;
- if(!InCone(iter->GetPoint((i+iter->GetNumPoints()-1)%(iter->GetNumPoints())),
- iter->GetPoint(i),
- iter->GetPoint((i+1)%(iter->GetNumPoints())),
- holepoint))
- continue;
- polypoint = iter->GetPoint(i);
- if(pointfound) {
- v1 = Normalize(polypoint-holepoint);
- v2 = Normalize(bestpolypoint-holepoint);
- if(v2.x > v1.x) continue;
- }
- pointvisible = true;
- for(iter2 = polys.begin(); iter2!=polys.end(); ++iter2) {
- if(iter2->IsHole()) continue;
- for(i2=0; i2 < iter2->GetNumPoints(); i2++) {
- linep1 = iter2->GetPoint(i2);
- linep2 = iter2->GetPoint((i2+1)%(iter2->GetNumPoints()));
- if(Intersects(holepoint,polypoint,linep1,linep2)) {
- pointvisible = false;
- break;
- }
- }
- if(!pointvisible) break;
- }
- if(pointvisible) {
- pointfound = true;
- bestpolypoint = polypoint;
- polyiter = iter;
- polypointindex = i;
- }
- }
- }
-
- if(!pointfound) return 0;
-
- newpoly.Init(holeiter->GetNumPoints() + polyiter->GetNumPoints() + 2);
- i2 = 0;
- for(i=0;i<=polypointindex;i++) {
- newpoly[i2] = polyiter->GetPoint(i);
- i2++;
- }
- for(i=0;i<=holeiter->GetNumPoints();i++) {
- newpoly[i2] = holeiter->GetPoint((i+holepointindex)%holeiter->GetNumPoints());
- i2++;
- }
- for(i=polypointindex;i<polyiter->GetNumPoints();i++) {
- newpoly[i2] = polyiter->GetPoint(i);
- i2++;
- }
-
- polys.erase(holeiter);
- polys.erase(polyiter);
- polys.push_back(newpoly);
- }
-
- for(iter = polys.begin(); iter!=polys.end(); ++iter) {
- outpolys->push_back(*iter);
- }
-
- return 1;
-}
-
-bool TPPLPartition::IsConvex(TPPLPoint& p1, TPPLPoint& p2, TPPLPoint& p3) {
- tppl_float tmp;
- tmp = (p3.y-p1.y)*(p2.x-p1.x)-(p3.x-p1.x)*(p2.y-p1.y);
- if(tmp>0) return 1;
- else return 0;
-}
-
-bool TPPLPartition::IsReflex(TPPLPoint& p1, TPPLPoint& p2, TPPLPoint& p3) {
- tppl_float tmp;
- tmp = (p3.y-p1.y)*(p2.x-p1.x)-(p3.x-p1.x)*(p2.y-p1.y);
- if(tmp<0) return 1;
- else return 0;
-}
-
-bool TPPLPartition::IsInside(TPPLPoint& p1, TPPLPoint& p2, TPPLPoint& p3, TPPLPoint &p) {
- if(IsConvex(p1,p,p2)) return false;
- if(IsConvex(p2,p,p3)) return false;
- if(IsConvex(p3,p,p1)) return false;
- return true;
-}
-
-bool TPPLPartition::InCone(TPPLPoint &p1, TPPLPoint &p2, TPPLPoint &p3, TPPLPoint &p) {
- bool convex;
-
- convex = IsConvex(p1,p2,p3);
-
- if(convex) {
- if(!IsConvex(p1,p2,p)) return false;
- if(!IsConvex(p2,p3,p)) return false;
- return true;
- } else {
- if(IsConvex(p1,p2,p)) return true;
- if(IsConvex(p2,p3,p)) return true;
- return false;
- }
-}
-
-bool TPPLPartition::InCone(PartitionVertex *v, TPPLPoint &p) {
- TPPLPoint p1,p2,p3;
-
- p1 = v->previous->p;
- p2 = v->p;
- p3 = v->next->p;
-
- return InCone(p1,p2,p3,p);
-}
-
-void TPPLPartition::UpdateVertexReflexity(PartitionVertex *v) {
- PartitionVertex *v1,*v3;
- v1 = v->previous;
- v3 = v->next;
- v->isConvex = !IsReflex(v1->p,v->p,v3->p);
-}
-
-void TPPLPartition::UpdateVertex(PartitionVertex *v, PartitionVertex *vertices, long numvertices) {
- long i;
- PartitionVertex *v1,*v3;
- TPPLPoint vec1,vec3;
-
- v1 = v->previous;
- v3 = v->next;
-
- v->isConvex = IsConvex(v1->p,v->p,v3->p);
-
- vec1 = Normalize(v1->p - v->p);
- vec3 = Normalize(v3->p - v->p);
- v->angle = vec1.x*vec3.x + vec1.y*vec3.y;
-
- if(v->isConvex) {
- v->isEar = true;
- for(i=0;i<numvertices;i++) {
- if((vertices[i].p.x==v->p.x)&&(vertices[i].p.y==v->p.y)) continue;
- if((vertices[i].p.x==v1->p.x)&&(vertices[i].p.y==v1->p.y)) continue;
- if((vertices[i].p.x==v3->p.x)&&(vertices[i].p.y==v3->p.y)) continue;
- if(IsInside(v1->p,v->p,v3->p,vertices[i].p)) {
- v->isEar = false;
- break;
- }
- }
- } else {
- v->isEar = false;
- }
-}
-
-//triangulation by ear removal
-int TPPLPartition::Triangulate_EC(TPPLPoly *poly, list<TPPLPoly> *triangles) {
- long numvertices;
- PartitionVertex *vertices;
- PartitionVertex *ear;
- TPPLPoly triangle;
- long i,j;
- bool earfound;
-
- if(poly->GetNumPoints() < 3) return 0;
- if(poly->GetNumPoints() == 3) {
- triangles->push_back(*poly);
- return 1;
- }
-
- numvertices = poly->GetNumPoints();
-
- vertices = new PartitionVertex[numvertices];
- for(i=0;i<numvertices;i++) {
- vertices[i].isActive = true;
- vertices[i].p = poly->GetPoint(i);
- if(i==(numvertices-1)) vertices[i].next=&(vertices[0]);
- else vertices[i].next=&(vertices[i+1]);
- if(i==0) vertices[i].previous = &(vertices[numvertices-1]);
- else vertices[i].previous = &(vertices[i-1]);
- }
- for(i=0;i<numvertices;i++) {
- UpdateVertex(&vertices[i],vertices,numvertices);
- }
-
- for(i=0;i<numvertices-3;i++) {
- earfound = false;
- //find the most extruded ear
- for(j=0;j<numvertices;j++) {
- if(!vertices[j].isActive) continue;
- if(!vertices[j].isEar) continue;
- if(!earfound) {
- earfound = true;
- ear = &(vertices[j]);
- } else {
- if(vertices[j].angle > ear->angle) {
- ear = &(vertices[j]);
- }
- }
- }
- if(!earfound) {
- delete [] vertices;
- return 0;
- }
-
- triangle.Triangle(ear->previous->p,ear->p,ear->next->p);
- triangles->push_back(triangle);
-
- ear->isActive = false;
- ear->previous->next = ear->next;
- ear->next->previous = ear->previous;
-
- if(i==numvertices-4) break;
-
- UpdateVertex(ear->previous,vertices,numvertices);
- UpdateVertex(ear->next,vertices,numvertices);
- }
- for(i=0;i<numvertices;i++) {
- if(vertices[i].isActive) {
- triangle.Triangle(vertices[i].previous->p,vertices[i].p,vertices[i].next->p);
- triangles->push_back(triangle);
- break;
- }
- }
-
- delete [] vertices;
-
- return 1;
-}
-
-int TPPLPartition::Triangulate_EC(list<TPPLPoly> *inpolys, list<TPPLPoly> *triangles) {
- list<TPPLPoly> outpolys;
- list<TPPLPoly>::iterator iter;
-
- if(!RemoveHoles(inpolys,&outpolys)) return 0;
- for(iter=outpolys.begin();iter!=outpolys.end();++iter) {
- if(!Triangulate_EC(&(*iter),triangles)) return 0;
- }
- return 1;
-}
-
-int TPPLPartition::ConvexPartition_HM(TPPLPoly *poly, list<TPPLPoly> *parts) {
- list<TPPLPoly> triangles;
- list<TPPLPoly>::iterator iter1,iter2;
- TPPLPoly *poly1,*poly2;
- TPPLPoly newpoly;
- TPPLPoint d1,d2,p1,p2,p3;
- long i11,i12,i21,i22,i13,i23,j,k;
- bool isdiagonal;
- long numreflex;
-
- //check if the poly is already convex
- numreflex = 0;
- for(i11=0;i11<poly->GetNumPoints();i11++) {
- if(i11==0) i12 = poly->GetNumPoints()-1;
- else i12=i11-1;
- if(i11==(poly->GetNumPoints()-1)) i13=0;
- else i13=i11+1;
- if(IsReflex(poly->GetPoint(i12),poly->GetPoint(i11),poly->GetPoint(i13))) {
- numreflex = 1;
- break;
- }
- }
- if(numreflex == 0) {
- parts->push_back(*poly);
- return 1;
- }
-
- if(!Triangulate_EC(poly,&triangles)) return 0;
-
- for(iter1 = triangles.begin(); iter1 != triangles.end(); ++iter1) {
- poly1 = &(*iter1);
- for(i11=0;i11<poly1->GetNumPoints();i11++) {
- d1 = poly1->GetPoint(i11);
- i12 = (i11+1)%(poly1->GetNumPoints());
- d2 = poly1->GetPoint(i12);
-
- isdiagonal = false;
- for(iter2 = iter1; iter2 != triangles.end(); ++iter2) {
- if(iter1 == iter2) continue;
- poly2 = &(*iter2);
-
- for(i21=0;i21<poly2->GetNumPoints();i21++) {
- if((d2.x != poly2->GetPoint(i21).x)||(d2.y != poly2->GetPoint(i21).y)) continue;
- i22 = (i21+1)%(poly2->GetNumPoints());
- if((d1.x != poly2->GetPoint(i22).x)||(d1.y != poly2->GetPoint(i22).y)) continue;
- isdiagonal = true;
- break;
- }
- if(isdiagonal) break;
- }
-
- if(!isdiagonal) continue;
-
- p2 = poly1->GetPoint(i11);
- if(i11 == 0) i13 = poly1->GetNumPoints()-1;
- else i13 = i11-1;
- p1 = poly1->GetPoint(i13);
- if(i22 == (poly2->GetNumPoints()-1)) i23 = 0;
- else i23 = i22+1;
- p3 = poly2->GetPoint(i23);
-
- if(!IsConvex(p1,p2,p3)) continue;
-
- p2 = poly1->GetPoint(i12);
- if(i12 == (poly1->GetNumPoints()-1)) i13 = 0;
- else i13 = i12+1;
- p3 = poly1->GetPoint(i13);
- if(i21 == 0) i23 = poly2->GetNumPoints()-1;
- else i23 = i21-1;
- p1 = poly2->GetPoint(i23);
-
- if(!IsConvex(p1,p2,p3)) continue;
-
- newpoly.Init(poly1->GetNumPoints()+poly2->GetNumPoints()-2);
- k = 0;
- for(j=i12;j!=i11;j=(j+1)%(poly1->GetNumPoints())) {
- newpoly[k] = poly1->GetPoint(j);
- k++;
- }
- for(j=i22;j!=i21;j=(j+1)%(poly2->GetNumPoints())) {
- newpoly[k] = poly2->GetPoint(j);
- k++;
- }
-
- triangles.erase(iter2);
- *iter1 = newpoly;
- poly1 = &(*iter1);
- i11 = -1;
-
- continue;
- }
- }
-
- for(iter1 = triangles.begin(); iter1 != triangles.end(); ++iter1) {
- parts->push_back(*iter1);
- }
-
- return 1;
-}
-
-int TPPLPartition::ConvexPartition_HM(list<TPPLPoly> *inpolys, list<TPPLPoly> *parts) {
- list<TPPLPoly> outpolys;
- list<TPPLPoly>::iterator iter;
-
- if(!RemoveHoles(inpolys,&outpolys)) return 0;
- for(iter=outpolys.begin();iter!=outpolys.end();++iter) {
- if(!ConvexPartition_HM(&(*iter),parts)) return 0;
- }
- return 1;
-}
-
-//minimum-weight polygon triangulation by dynamic programming
-//O(n^3) time complexity
-//O(n^2) space complexity
-int TPPLPartition::Triangulate_OPT(TPPLPoly *poly, list<TPPLPoly> *triangles) {
- long i,j,k,gap,n;
- DPState **dpstates;
- TPPLPoint p1,p2,p3,p4;
- long bestvertex;
- tppl_float weight,minweight,d1,d2;
- Diagonal diagonal,newdiagonal;
- list<Diagonal> diagonals;
- TPPLPoly triangle;
- int ret = 1;
-
- n = poly->GetNumPoints();
- dpstates = new DPState *[n];
- for(i=1;i<n;i++) {
- dpstates[i] = new DPState[i];
- }
-
- //init states and visibility
- for(i=0;i<(n-1);i++) {
- p1 = poly->GetPoint(i);
- for(j=i+1;j<n;j++) {
- dpstates[j][i].visible = true;
- dpstates[j][i].weight = 0;
- dpstates[j][i].bestvertex = -1;
- if(j!=(i+1)) {
- p2 = poly->GetPoint(j);
-
- //visibility check
- if(i==0) p3 = poly->GetPoint(n-1);
- else p3 = poly->GetPoint(i-1);
- if(i==(n-1)) p4 = poly->GetPoint(0);
- else p4 = poly->GetPoint(i+1);
- if(!InCone(p3,p1,p4,p2)) {
- dpstates[j][i].visible = false;
- continue;
- }
-
- if(j==0) p3 = poly->GetPoint(n-1);
- else p3 = poly->GetPoint(j-1);
- if(j==(n-1)) p4 = poly->GetPoint(0);
- else p4 = poly->GetPoint(j+1);
- if(!InCone(p3,p2,p4,p1)) {
- dpstates[j][i].visible = false;
- continue;
- }
-
- for(k=0;k<n;k++) {
- p3 = poly->GetPoint(k);
- if(k==(n-1)) p4 = poly->GetPoint(0);
- else p4 = poly->GetPoint(k+1);
- if(Intersects(p1,p2,p3,p4)) {
- dpstates[j][i].visible = false;
- break;
- }
- }
- }
- }
- }
- dpstates[n-1][0].visible = true;
- dpstates[n-1][0].weight = 0;
- dpstates[n-1][0].bestvertex = -1;
-
- for(gap = 2; gap<n; gap++) {
- for(i=0; i<(n-gap); i++) {
- j = i+gap;
- if(!dpstates[j][i].visible) continue;
- bestvertex = -1;
- for(k=(i+1);k<j;k++) {
- if(!dpstates[k][i].visible) continue;
- if(!dpstates[j][k].visible) continue;
-
- if(k<=(i+1)) d1=0;
- else d1 = Distance(poly->GetPoint(i),poly->GetPoint(k));
- if(j<=(k+1)) d2=0;
- else d2 = Distance(poly->GetPoint(k),poly->GetPoint(j));
-
- weight = dpstates[k][i].weight + dpstates[j][k].weight + d1 + d2;
-
- if((bestvertex == -1)||(weight<minweight)) {
- bestvertex = k;
- minweight = weight;
- }
- }
- if(bestvertex == -1) {
- for(i=1;i<n;i++) {
- delete [] dpstates[i];
- }
- delete [] dpstates;
-
- return 0;
- }
-
- dpstates[j][i].bestvertex = bestvertex;
- dpstates[j][i].weight = minweight;
- }
- }
-
- newdiagonal.index1 = 0;
- newdiagonal.index2 = n-1;
- diagonals.push_back(newdiagonal);
- while(!diagonals.empty()) {
- diagonal = *(diagonals.begin());
- diagonals.pop_front();
- bestvertex = dpstates[diagonal.index2][diagonal.index1].bestvertex;
- if(bestvertex == -1) {
- ret = 0;
- break;
- }
- triangle.Triangle(poly->GetPoint(diagonal.index1),poly->GetPoint(bestvertex),poly->GetPoint(diagonal.index2));
- triangles->push_back(triangle);
- if(bestvertex > (diagonal.index1+1)) {
- newdiagonal.index1 = diagonal.index1;
- newdiagonal.index2 = bestvertex;
- diagonals.push_back(newdiagonal);
- }
- if(diagonal.index2 > (bestvertex+1)) {
- newdiagonal.index1 = bestvertex;
- newdiagonal.index2 = diagonal.index2;
- diagonals.push_back(newdiagonal);
- }
- }
-
- for(i=1;i<n;i++) {
- delete [] dpstates[i];
- }
- delete [] dpstates;
-
- return ret;
-}
-
-void TPPLPartition::UpdateState(long a, long b, long w, long i, long j, DPState2 **dpstates) {
- Diagonal newdiagonal;
- list<Diagonal> *pairs;
- long w2;
-
- w2 = dpstates[a][b].weight;
- if(w>w2) return;
-
- pairs = &(dpstates[a][b].pairs);
- newdiagonal.index1 = i;
- newdiagonal.index2 = j;
-
- if(w<w2) {
- pairs->clear();
- pairs->push_front(newdiagonal);
- dpstates[a][b].weight = w;
- } else {
- if((!pairs->empty())&&(i <= pairs->begin()->index1)) return;
- while((!pairs->empty())&&(pairs->begin()->index2 >= j)) pairs->pop_front();
- pairs->push_front(newdiagonal);
- }
-}
-
-void TPPLPartition::TypeA(long i, long j, long k, PartitionVertex *vertices, DPState2 **dpstates) {
- list<Diagonal> *pairs;
- list<Diagonal>::iterator iter,lastiter;
- long top;
- long w;
-
- if(!dpstates[i][j].visible) return;
- top = j;
- w = dpstates[i][j].weight;
- if(k-j > 1) {
- if (!dpstates[j][k].visible) return;
- w += dpstates[j][k].weight + 1;
- }
- if(j-i > 1) {
- pairs = &(dpstates[i][j].pairs);
- iter = pairs->end();
- lastiter = pairs->end();
- while(iter!=pairs->begin()) {
- --iter;
- if(!IsReflex(vertices[iter->index2].p,vertices[j].p,vertices[k].p)) lastiter = iter;
- else break;
- }
- if(lastiter == pairs->end()) w++;
- else {
- if(IsReflex(vertices[k].p,vertices[i].p,vertices[lastiter->index1].p)) w++;
- else top = lastiter->index1;
- }
- }
- UpdateState(i,k,w,top,j,dpstates);
-}
-
-void TPPLPartition::TypeB(long i, long j, long k, PartitionVertex *vertices, DPState2 **dpstates) {
- list<Diagonal> *pairs;
- list<Diagonal>::iterator iter,lastiter;
- long top;
- long w;
-
- if(!dpstates[j][k].visible) return;
- top = j;
- w = dpstates[j][k].weight;
-
- if (j-i > 1) {
- if (!dpstates[i][j].visible) return;
- w += dpstates[i][j].weight + 1;
- }
- if (k-j > 1) {
- pairs = &(dpstates[j][k].pairs);
-
- iter = pairs->begin();
- if((!pairs->empty())&&(!IsReflex(vertices[i].p,vertices[j].p,vertices[iter->index1].p))) {
- lastiter = iter;
- while(iter!=pairs->end()) {
- if(!IsReflex(vertices[i].p,vertices[j].p,vertices[iter->index1].p)) {
- lastiter = iter;
- ++iter;
- }
- else break;
- }
- if(IsReflex(vertices[lastiter->index2].p,vertices[k].p,vertices[i].p)) w++;
- else top = lastiter->index2;
- } else w++;
- }
- UpdateState(i,k,w,j,top,dpstates);
-}
-
-int TPPLPartition::ConvexPartition_OPT(TPPLPoly *poly, list<TPPLPoly> *parts) {
- TPPLPoint p1,p2,p3,p4;
- PartitionVertex *vertices;
- DPState2 **dpstates;
- long i,j,k,n,gap;
- list<Diagonal> diagonals,diagonals2;
- Diagonal diagonal,newdiagonal;
- list<Diagonal> *pairs,*pairs2;
- list<Diagonal>::iterator iter,iter2;
- int ret;
- TPPLPoly newpoly;
- list<long> indices;
- list<long>::iterator iiter;
- bool ijreal,jkreal;
-
- n = poly->GetNumPoints();
- vertices = new PartitionVertex[n];
-
- dpstates = new DPState2 *[n];
- for(i=0;i<n;i++) {
- dpstates[i] = new DPState2[n];
- }
-
- //init vertex information
- for(i=0;i<n;i++) {
- vertices[i].p = poly->GetPoint(i);
- vertices[i].isActive = true;
- if(i==0) vertices[i].previous = &(vertices[n-1]);
- else vertices[i].previous = &(vertices[i-1]);
- if(i==(poly->GetNumPoints()-1)) vertices[i].next = &(vertices[0]);
- else vertices[i].next = &(vertices[i+1]);
- }
- for(i=1;i<n;i++) {
- UpdateVertexReflexity(&(vertices[i]));
- }
-
- //init states and visibility
- for(i=0;i<(n-1);i++) {
- p1 = poly->GetPoint(i);
- for(j=i+1;j<n;j++) {
- dpstates[i][j].visible = true;
- if(j==i+1) {
- dpstates[i][j].weight = 0;
- } else {
- dpstates[i][j].weight = 2147483647;
- }
- if(j!=(i+1)) {
- p2 = poly->GetPoint(j);
-
- //visibility check
- if(!InCone(&vertices[i],p2)) {
- dpstates[i][j].visible = false;
- continue;
- }
- if(!InCone(&vertices[j],p1)) {
- dpstates[i][j].visible = false;
- continue;
- }
-
- for(k=0;k<n;k++) {
- p3 = poly->GetPoint(k);
- if(k==(n-1)) p4 = poly->GetPoint(0);
- else p4 = poly->GetPoint(k+1);
- if(Intersects(p1,p2,p3,p4)) {
- dpstates[i][j].visible = false;
- break;
- }
- }
- }
- }
- }
- for(i=0;i<(n-2);i++) {
- j = i+2;
- if(dpstates[i][j].visible) {
- dpstates[i][j].weight = 0;
- newdiagonal.index1 = i+1;
- newdiagonal.index2 = i+1;
- dpstates[i][j].pairs.push_back(newdiagonal);
- }
- }
-
- dpstates[0][n-1].visible = true;
- vertices[0].isConvex = false; //by convention
-
- for(gap=3; gap<n; gap++) {
- for(i=0;i<n-gap;i++) {
- if(vertices[i].isConvex) continue;
- k = i+gap;
- if(dpstates[i][k].visible) {
- if(!vertices[k].isConvex) {
- for(j=i+1;j<k;j++) TypeA(i,j,k,vertices,dpstates);
- } else {
- for(j=i+1;j<(k-1);j++) {
- if(vertices[j].isConvex) continue;
- TypeA(i,j,k,vertices,dpstates);
- }
- TypeA(i,k-1,k,vertices,dpstates);
- }
- }
- }
- for(k=gap;k<n;k++) {
- if(vertices[k].isConvex) continue;
- i = k-gap;
- if((vertices[i].isConvex)&&(dpstates[i][k].visible)) {
- TypeB(i,i+1,k,vertices,dpstates);
- for(j=i+2;j<k;j++) {
- if(vertices[j].isConvex) continue;
- TypeB(i,j,k,vertices,dpstates);
- }
- }
- }
- }
-
-
- //recover solution
- ret = 1;
- newdiagonal.index1 = 0;
- newdiagonal.index2 = n-1;
- diagonals.push_front(newdiagonal);
- while(!diagonals.empty()) {
- diagonal = *(diagonals.begin());
- diagonals.pop_front();
- if((diagonal.index2 - diagonal.index1) <=1) continue;
- pairs = &(dpstates[diagonal.index1][diagonal.index2].pairs);
- if(pairs->empty()) {
- ret = 0;
- break;
- }
- if(!vertices[diagonal.index1].isConvex) {
- iter = pairs->end();
- --iter;
- j = iter->index2;
- newdiagonal.index1 = j;
- newdiagonal.index2 = diagonal.index2;
- diagonals.push_front(newdiagonal);
- if((j - diagonal.index1)>1) {
- if(iter->index1 != iter->index2) {
- pairs2 = &(dpstates[diagonal.index1][j].pairs);
- while(1) {
- if(pairs2->empty()) {
- ret = 0;
- break;
- }
- iter2 = pairs2->end();
- --iter2;
- if(iter->index1 != iter2->index1) pairs2->pop_back();
- else break;
- }
- if(ret == 0) break;
- }
- newdiagonal.index1 = diagonal.index1;
- newdiagonal.index2 = j;
- diagonals.push_front(newdiagonal);
- }
- } else {
- iter = pairs->begin();
- j = iter->index1;
- newdiagonal.index1 = diagonal.index1;
- newdiagonal.index2 = j;
- diagonals.push_front(newdiagonal);
- if((diagonal.index2 - j) > 1) {
- if(iter->index1 != iter->index2) {
- pairs2 = &(dpstates[j][diagonal.index2].pairs);
- while(1) {
- if(pairs2->empty()) {
- ret = 0;
- break;
- }
- iter2 = pairs2->begin();
- if(iter->index2 != iter2->index2) pairs2->pop_front();
- else break;
- }
- if(ret == 0) break;
- }
- newdiagonal.index1 = j;
- newdiagonal.index2 = diagonal.index2;
- diagonals.push_front(newdiagonal);
- }
- }
- }
-
- if(ret == 0) {
- for(i=0;i<n;i++) {
- delete [] dpstates[i];
- }
- delete [] dpstates;
- delete [] vertices;
-
- return ret;
- }
-
- newdiagonal.index1 = 0;
- newdiagonal.index2 = n-1;
- diagonals.push_front(newdiagonal);
- while(!diagonals.empty()) {
- diagonal = *(diagonals.begin());
- diagonals.pop_front();
- if((diagonal.index2 - diagonal.index1) <= 1) continue;
-
- indices.clear();
- diagonals2.clear();
- indices.push_back(diagonal.index1);
- indices.push_back(diagonal.index2);
- diagonals2.push_front(diagonal);
-
- while(!diagonals2.empty()) {
- diagonal = *(diagonals2.begin());
- diagonals2.pop_front();
- if((diagonal.index2 - diagonal.index1) <= 1) continue;
- ijreal = true;
- jkreal = true;
- pairs = &(dpstates[diagonal.index1][diagonal.index2].pairs);
- if(!vertices[diagonal.index1].isConvex) {
- iter = pairs->end();
- --iter;
- j = iter->index2;
- if(iter->index1 != iter->index2) ijreal = false;
- } else {
- iter = pairs->begin();
- j = iter->index1;
- if(iter->index1 != iter->index2) jkreal = false;
- }
-
- newdiagonal.index1 = diagonal.index1;
- newdiagonal.index2 = j;
- if(ijreal) {
- diagonals.push_back(newdiagonal);
- } else {
- diagonals2.push_back(newdiagonal);
- }
-
- newdiagonal.index1 = j;
- newdiagonal.index2 = diagonal.index2;
- if(jkreal) {
- diagonals.push_back(newdiagonal);
- } else {
- diagonals2.push_back(newdiagonal);
- }
-
- indices.push_back(j);
- }
-
- indices.sort();
- newpoly.Init((long)indices.size());
- k=0;
- for(iiter = indices.begin();iiter!=indices.end(); ++iiter) {
- newpoly[k] = vertices[*iiter].p;
- k++;
- }
- parts->push_back(newpoly);
- }
-
- for(i=0;i<n;i++) {
- delete [] dpstates[i];
- }
- delete [] dpstates;
- delete [] vertices;
-
- return ret;
-}
-
-//triangulates a set of polygons by first partitioning them into monotone polygons
-//O(n*log(n)) time complexity, O(n) space complexity
-//the algorithm used here is outlined in the book
-//"Computational Geometry: Algorithms and Applications"
-//by Mark de Berg, Otfried Cheong, Marc van Kreveld and Mark Overmars
-int TPPLPartition::MonotonePartition(list<TPPLPoly> *inpolys, list<TPPLPoly> *monotonePolys) {
- list<TPPLPoly>::iterator iter;
- MonotoneVertex *vertices;
- long i,numvertices,vindex,vindex2,newnumvertices,maxnumvertices;
- long polystartindex, polyendindex;
- TPPLPoly *poly;
- MonotoneVertex *v,*v2,*vprev,*vnext;
- ScanLineEdge newedge;
- bool error = false;
-
- numvertices = 0;
- for(iter = inpolys->begin(); iter != inpolys->end(); ++iter) {
- numvertices += iter->GetNumPoints();
- }
-
- maxnumvertices = numvertices*3;
- vertices = new MonotoneVertex[maxnumvertices];
- newnumvertices = numvertices;
-
- polystartindex = 0;
- for(iter = inpolys->begin(); iter != inpolys->end(); ++iter) {
- poly = &(*iter);
- polyendindex = polystartindex + poly->GetNumPoints()-1;
- for(i=0;i<poly->GetNumPoints();i++) {
- vertices[i+polystartindex].p = poly->GetPoint(i);
- if(i==0) vertices[i+polystartindex].previous = polyendindex;
- else vertices[i+polystartindex].previous = i+polystartindex-1;
- if(i==(poly->GetNumPoints()-1)) vertices[i+polystartindex].next = polystartindex;
- else vertices[i+polystartindex].next = i+polystartindex+1;
- }
- polystartindex = polyendindex+1;
- }
-
- //construct the priority queue
- long *priority = new long [numvertices];
- for(i=0;i<numvertices;i++) priority[i] = i;
- std::sort(priority,&(priority[numvertices]),VertexSorter(vertices));
-
- //determine vertex types
- char *vertextypes = new char[maxnumvertices];
- for(i=0;i<numvertices;i++) {
- v = &(vertices[i]);
- vprev = &(vertices[v->previous]);
- vnext = &(vertices[v->next]);
-
- if(Below(vprev->p,v->p)&&Below(vnext->p,v->p)) {
- if(IsConvex(vnext->p,vprev->p,v->p)) {
- vertextypes[i] = TPPL_VERTEXTYPE_START;
- } else {
- vertextypes[i] = TPPL_VERTEXTYPE_SPLIT;
- }
- } else if(Below(v->p,vprev->p)&&Below(v->p,vnext->p)) {
- if(IsConvex(vnext->p,vprev->p,v->p))
- {
- vertextypes[i] = TPPL_VERTEXTYPE_END;
- } else {
- vertextypes[i] = TPPL_VERTEXTYPE_MERGE;
- }
- } else {
- vertextypes[i] = TPPL_VERTEXTYPE_REGULAR;
- }
- }
-
- //helpers
- long *helpers = new long[maxnumvertices];
-
- //binary search tree that holds edges intersecting the scanline
- //note that while set doesn't actually have to be implemented as a tree
- //complexity requirements for operations are the same as for the balanced binary search tree
- set<ScanLineEdge> edgeTree;
- //store iterators to the edge tree elements
- //this makes deleting existing edges much faster
- set<ScanLineEdge>::iterator *edgeTreeIterators,edgeIter;
- edgeTreeIterators = new set<ScanLineEdge>::iterator[maxnumvertices];
- pair<set<ScanLineEdge>::iterator,bool> edgeTreeRet;
-
- //for each vertex
- for(i=0;i<numvertices;i++) {
- vindex = priority[i];
- v = &(vertices[vindex]);
- vindex2 = vindex;
- v2 = v;
-
- //depending on the vertex type, do the appropriate action
- //comments in the following sections are copied from "Computational Geometry: Algorithms and Applications"
- switch(vertextypes[vindex]) {
- case TPPL_VERTEXTYPE_START:
- //Insert ei in T and set helper(ei) to vi.
- newedge.p1 = v->p;
- newedge.p2 = vertices[v->next].p;
- newedge.index = vindex;
- edgeTreeRet = edgeTree.insert(newedge);
- edgeTreeIterators[vindex] = edgeTreeRet.first;
- helpers[vindex] = vindex;
- break;
-
- case TPPL_VERTEXTYPE_END:
- //if helper(ei-1) is a merge vertex
- if(vertextypes[helpers[v->previous]]==TPPL_VERTEXTYPE_MERGE) {
- //Insert the diagonal connecting vi to helper(ei-1) in D.
- AddDiagonal(vertices,&newnumvertices,vindex,helpers[v->previous]);
- vertextypes[newnumvertices-2] = vertextypes[vindex];
- edgeTreeIterators[newnumvertices-2] = edgeTreeIterators[vindex];
- helpers[newnumvertices-2] = helpers[vindex];
- vertextypes[newnumvertices-1] = vertextypes[helpers[v->previous]];
- edgeTreeIterators[newnumvertices-1] = edgeTreeIterators[helpers[v->previous]];
- helpers[newnumvertices-1] = helpers[helpers[v->previous]];
- }
- //Delete ei-1 from T
- edgeTree.erase(edgeTreeIterators[v->previous]);
- break;
-
- case TPPL_VERTEXTYPE_SPLIT:
- //Search in T to find the edge e j directly left of vi.
- newedge.p1 = v->p;
- newedge.p2 = v->p;
- edgeIter = edgeTree.lower_bound(newedge);
- if(edgeIter == edgeTree.begin()) {
- error = true;
- break;
- }
- --edgeIter;
- //Insert the diagonal connecting vi to helper(ej) in D.
- AddDiagonal(vertices,&newnumvertices,vindex,helpers[edgeIter->index]);
- vertextypes[newnumvertices-2] = vertextypes[vindex];
- edgeTreeIterators[newnumvertices-2] = edgeTreeIterators[vindex];
- helpers[newnumvertices-2] = helpers[vindex];
- vertextypes[newnumvertices-1] = vertextypes[helpers[edgeIter->index]];
- edgeTreeIterators[newnumvertices-1] = edgeTreeIterators[helpers[edgeIter->index]];
- helpers[newnumvertices-1] = helpers[helpers[edgeIter->index]];
- vindex2 = newnumvertices-2;
- v2 = &(vertices[vindex2]);
- //helper(e j)�vi
- helpers[edgeIter->index] = vindex;
- //Insert ei in T and set helper(ei) to vi.
- newedge.p1 = v2->p;
- newedge.p2 = vertices[v2->next].p;
- newedge.index = vindex2;
- edgeTreeRet = edgeTree.insert(newedge);
- edgeTreeIterators[vindex2] = edgeTreeRet.first;
- helpers[vindex2] = vindex2;
- break;
-
- case TPPL_VERTEXTYPE_MERGE:
- //if helper(ei-1) is a merge vertex
- if(vertextypes[helpers[v->previous]]==TPPL_VERTEXTYPE_MERGE) {
- //Insert the diagonal connecting vi to helper(ei-1) in D.
- AddDiagonal(vertices,&newnumvertices,vindex,helpers[v->previous]);
- vertextypes[newnumvertices-2] = vertextypes[vindex];
- edgeTreeIterators[newnumvertices-2] = edgeTreeIterators[vindex];
- helpers[newnumvertices-2] = helpers[vindex];
- vertextypes[newnumvertices-1] = vertextypes[helpers[v->previous]];
- edgeTreeIterators[newnumvertices-1] = edgeTreeIterators[helpers[v->previous]];
- helpers[newnumvertices-1] = helpers[helpers[v->previous]];
- vindex2 = newnumvertices-2;
- v2 = &(vertices[vindex2]);
- }
- //Delete ei-1 from T.
- edgeTree.erase(edgeTreeIterators[v->previous]);
- //Search in T to find the edge e j directly left of vi.
- newedge.p1 = v->p;
- newedge.p2 = v->p;
- edgeIter = edgeTree.lower_bound(newedge);
- if(edgeIter == edgeTree.begin()) {
- error = true;
- break;
- }
- --edgeIter;
- //if helper(ej) is a merge vertex
- if(vertextypes[helpers[edgeIter->index]]==TPPL_VERTEXTYPE_MERGE) {
- //Insert the diagonal connecting vi to helper(e j) in D.
- AddDiagonal(vertices,&newnumvertices,vindex2,helpers[edgeIter->index]);
- vertextypes[newnumvertices-2] = vertextypes[vindex2];
- edgeTreeIterators[newnumvertices-2] = edgeTreeIterators[vindex2];
- helpers[newnumvertices-2] = helpers[vindex2];
- vertextypes[newnumvertices-1] = vertextypes[helpers[edgeIter->index]];
- edgeTreeIterators[newnumvertices-1] = edgeTreeIterators[helpers[edgeIter->index]];
- helpers[newnumvertices-1] = helpers[helpers[edgeIter->index]];
- }
- //helper(e j)�vi
- helpers[edgeIter->index] = vindex2;
- break;
-
- case TPPL_VERTEXTYPE_REGULAR:
- //if the interior of P lies to the right of vi
- if(Below(v->p,vertices[v->previous].p)) {
- //if helper(ei-1) is a merge vertex
- if(vertextypes[helpers[v->previous]]==TPPL_VERTEXTYPE_MERGE) {
- //Insert the diagonal connecting vi to helper(ei-1) in D.
- AddDiagonal(vertices,&newnumvertices,vindex,helpers[v->previous]);
- vertextypes[newnumvertices-2] = vertextypes[vindex];
- edgeTreeIterators[newnumvertices-2] = edgeTreeIterators[vindex];
- helpers[newnumvertices-2] = helpers[vindex];
- vertextypes[newnumvertices-1] = vertextypes[helpers[v->previous]];
- edgeTreeIterators[newnumvertices-1] = edgeTreeIterators[helpers[v->previous]];
- helpers[newnumvertices-1] = helpers[helpers[v->previous]];
- vindex2 = newnumvertices-2;
- v2 = &(vertices[vindex2]);
- }
- //Delete ei-1 from T.
- edgeTree.erase(edgeTreeIterators[v->previous]);
- //Insert ei in T and set helper(ei) to vi.
- newedge.p1 = v2->p;
- newedge.p2 = vertices[v2->next].p;
- newedge.index = vindex2;
- edgeTreeRet = edgeTree.insert(newedge);
- edgeTreeIterators[vindex2] = edgeTreeRet.first;
- helpers[vindex2] = vindex;
- } else {
- //Search in T to find the edge ej directly left of vi.
- newedge.p1 = v->p;
- newedge.p2 = v->p;
- edgeIter = edgeTree.lower_bound(newedge);
- if(edgeIter == edgeTree.begin()) {
- error = true;
- break;
- }
- --edgeIter;
- //if helper(ej) is a merge vertex
- if(vertextypes[helpers[edgeIter->index]]==TPPL_VERTEXTYPE_MERGE) {
- //Insert the diagonal connecting vi to helper(e j) in D.
- AddDiagonal(vertices,&newnumvertices,vindex,helpers[edgeIter->index]);
- vertextypes[newnumvertices-2] = vertextypes[vindex];
- edgeTreeIterators[newnumvertices-2] = edgeTreeIterators[vindex];
- helpers[newnumvertices-2] = helpers[vindex];
- vertextypes[newnumvertices-1] = vertextypes[helpers[edgeIter->index]];
- edgeTreeIterators[newnumvertices-1] = edgeTreeIterators[helpers[edgeIter->index]];
- helpers[newnumvertices-1] = helpers[helpers[edgeIter->index]];
- }
- //helper(e j)�vi
- helpers[edgeIter->index] = vindex;
- }
- break;
- }
-
- if(error) break;
- }
-
- char *used = new char[newnumvertices];
- memset(used,0,newnumvertices*sizeof(char));
-
- if(!error) {
- //return result
- long size;
- TPPLPoly mpoly;
- for(i=0;i<newnumvertices;i++) {
- if(used[i]) continue;
- v = &(vertices[i]);
- vnext = &(vertices[v->next]);
- size = 1;
- while(vnext!=v) {
- vnext = &(vertices[vnext->next]);
- size++;
- }
- mpoly.Init(size);
- v = &(vertices[i]);
- mpoly[0] = v->p;
- vnext = &(vertices[v->next]);
- size = 1;
- used[i] = 1;
- used[v->next] = 1;
- while(vnext!=v) {
- mpoly[size] = vnext->p;
- used[vnext->next] = 1;
- vnext = &(vertices[vnext->next]);
- size++;
- }
- monotonePolys->push_back(mpoly);
- }
- }
-
- //cleanup
- delete [] vertices;
- delete [] priority;
- delete [] vertextypes;
- delete [] edgeTreeIterators;
- delete [] helpers;
- delete [] used;
-
- if(error) {
- return 0;
- } else {
- return 1;
- }
-}
-
-//adds a diagonal to the doubly-connected list of vertices
-void TPPLPartition::AddDiagonal(MonotoneVertex *vertices, long *numvertices, long index1, long index2) {
- long newindex1,newindex2;
-
- newindex1 = *numvertices;
- (*numvertices)++;
- newindex2 = *numvertices;
- (*numvertices)++;
-
- vertices[newindex1].p = vertices[index1].p;
- vertices[newindex2].p = vertices[index2].p;
-
- vertices[newindex2].next = vertices[index2].next;
- vertices[newindex1].next = vertices[index1].next;
-
- vertices[vertices[index2].next].previous = newindex2;
- vertices[vertices[index1].next].previous = newindex1;
-
- vertices[index1].next = newindex2;
- vertices[newindex2].previous = index1;
-
- vertices[index2].next = newindex1;
- vertices[newindex1].previous = index2;
-}
-
-bool TPPLPartition::Below(TPPLPoint &p1, TPPLPoint &p2) {
- if(p1.y < p2.y) return true;
- else if(p1.y == p2.y) {
- if(p1.x < p2.x) return true;
- }
- return false;
-}
-
-//sorts in the falling order of y values, if y is equal, x is used instead
-bool TPPLPartition::VertexSorter::operator() (long index1, long index2) const {
- if(vertices[index1].p.y > vertices[index2].p.y) return true;
- else if(vertices[index1].p.y == vertices[index2].p.y) {
- if(vertices[index1].p.x > vertices[index2].p.x) return true;
- }
- return false;
-}
-
-bool TPPLPartition::ScanLineEdge::IsConvex(const TPPLPoint& p1, const TPPLPoint& p2, const TPPLPoint& p3) const {
- tppl_float tmp;
- tmp = (p3.y-p1.y)*(p2.x-p1.x)-(p3.x-p1.x)*(p2.y-p1.y);
- if(tmp>0) return 1;
- else return 0;
-}
-
-bool TPPLPartition::ScanLineEdge::operator < (const ScanLineEdge & other) const {
- if(other.p1.y == other.p2.y) {
- if(p1.y == p2.y) {
- if(p1.y < other.p1.y) return true;
- else return false;
- }
- if(IsConvex(p1,p2,other.p1)) return true;
- else return false;
- } else if(p1.y == p2.y) {
- if(IsConvex(other.p1,other.p2,p1)) return false;
- else return true;
- } else if(p1.y < other.p1.y) {
- if(IsConvex(other.p1,other.p2,p1)) return false;
- else return true;
- } else {
- if(IsConvex(p1,p2,other.p1)) return true;
- else return false;
- }
-}
-
-//triangulates monotone polygon
-//O(n) time, O(n) space complexity
-int TPPLPartition::TriangulateMonotone(TPPLPoly *inPoly, list<TPPLPoly> *triangles) {
- long i,i2,j,topindex,bottomindex,leftindex,rightindex,vindex;
- TPPLPoint *points;
- long numpoints;
- TPPLPoly triangle;
-
- numpoints = inPoly->GetNumPoints();
- points = inPoly->GetPoints();
-
- //trivial calses
- if(numpoints < 3) return 0;
- if(numpoints == 3) {
- triangles->push_back(*inPoly);
- }
-
- topindex = 0; bottomindex=0;
- for(i=1;i<numpoints;i++) {
- if(Below(points[i],points[bottomindex])) bottomindex = i;
- if(Below(points[topindex],points[i])) topindex = i;
- }
-
- //check if the poly is really monotone
- i = topindex;
- while(i!=bottomindex) {
- i2 = i+1; if(i2>=numpoints) i2 = 0;
- if(!Below(points[i2],points[i])) return 0;
- i = i2;
- }
- i = bottomindex;
- while(i!=topindex) {
- i2 = i+1; if(i2>=numpoints) i2 = 0;
- if(!Below(points[i],points[i2])) return 0;
- i = i2;
- }
-
- char *vertextypes = new char[numpoints];
- long *priority = new long[numpoints];
-
- //merge left and right vertex chains
- priority[0] = topindex;
- vertextypes[topindex] = 0;
- leftindex = topindex+1; if(leftindex>=numpoints) leftindex = 0;
- rightindex = topindex-1; if(rightindex<0) rightindex = numpoints-1;
- for(i=1;i<(numpoints-1);i++) {
- if(leftindex==bottomindex) {
- priority[i] = rightindex;
- rightindex--; if(rightindex<0) rightindex = numpoints-1;
- vertextypes[priority[i]] = -1;
- } else if(rightindex==bottomindex) {
- priority[i] = leftindex;
- leftindex++; if(leftindex>=numpoints) leftindex = 0;
- vertextypes[priority[i]] = 1;
- } else {
- if(Below(points[leftindex],points[rightindex])) {
- priority[i] = rightindex;
- rightindex--; if(rightindex<0) rightindex = numpoints-1;
- vertextypes[priority[i]] = -1;
- } else {
- priority[i] = leftindex;
- leftindex++; if(leftindex>=numpoints) leftindex = 0;
- vertextypes[priority[i]] = 1;
- }
- }
- }
- priority[i] = bottomindex;
- vertextypes[bottomindex] = 0;
-
- long *stack = new long[numpoints];
- long stackptr = 0;
-
- stack[0] = priority[0];
- stack[1] = priority[1];
- stackptr = 2;
-
- //for each vertex from top to bottom trim as many triangles as possible
- for(i=2;i<(numpoints-1);i++) {
- vindex = priority[i];
- if(vertextypes[vindex]!=vertextypes[stack[stackptr-1]]) {
- for(j=0;j<(stackptr-1);j++) {
- if(vertextypes[vindex]==1) {
- triangle.Triangle(points[stack[j+1]],points[stack[j]],points[vindex]);
- } else {
- triangle.Triangle(points[stack[j]],points[stack[j+1]],points[vindex]);
- }
- triangles->push_back(triangle);
- }
- stack[0] = priority[i-1];
- stack[1] = priority[i];
- stackptr = 2;
- } else {
- stackptr--;
- while(stackptr>0) {
- if(vertextypes[vindex]==1) {
- if(IsConvex(points[vindex],points[stack[stackptr-1]],points[stack[stackptr]])) {
- triangle.Triangle(points[vindex],points[stack[stackptr-1]],points[stack[stackptr]]);
- triangles->push_back(triangle);
- stackptr--;
- } else {
- break;
- }
- } else {
- if(IsConvex(points[vindex],points[stack[stackptr]],points[stack[stackptr-1]])) {
- triangle.Triangle(points[vindex],points[stack[stackptr]],points[stack[stackptr-1]]);
- triangles->push_back(triangle);
- stackptr--;
- } else {
- break;
- }
- }
- }
- stackptr++;
- stack[stackptr] = vindex;
- stackptr++;
- }
- }
- vindex = priority[i];
- for(j=0;j<(stackptr-1);j++) {
- if(vertextypes[stack[j+1]]==1) {
- triangle.Triangle(points[stack[j]],points[stack[j+1]],points[vindex]);
- } else {
- triangle.Triangle(points[stack[j+1]],points[stack[j]],points[vindex]);
- }
- triangles->push_back(triangle);
- }
-
- delete [] priority;
- delete [] vertextypes;
- delete [] stack;
-
- return 1;
-}
-
-int TPPLPartition::Triangulate_MONO(list<TPPLPoly> *inpolys, list<TPPLPoly> *triangles) {
- list<TPPLPoly> monotone;
- list<TPPLPoly>::iterator iter;
-
- if(!MonotonePartition(inpolys,&monotone)) return 0;
- for(iter = monotone.begin(); iter!=monotone.end(); ++iter) {
- if(!TriangulateMonotone(&(*iter),triangles)) return 0;
- }
- return 1;
-}
-
-int TPPLPartition::Triangulate_MONO(TPPLPoly *poly, list<TPPLPoly> *triangles) {
- list<TPPLPoly> polys;
- polys.push_back(*poly);
-
- return Triangulate_MONO(&polys, triangles);
-}
+//Copyright (C) 2011 by Ivan Fratric +// +//Permission is hereby granted, free of charge, to any person obtaining a copy +//of this software and associated documentation files (the "Software"), to deal +//in the Software without restriction, including without limitation the rights +//to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +//copies of the Software, and to permit persons to whom the Software is +//furnished to do so, subject to the following conditions: +// +//The above copyright notice and this permission notice shall be included in +//all copies or substantial portions of the Software. +// +//THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +//IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +//FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +//AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +//LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +//OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +//THE SOFTWARE. + + +#include <stdio.h> +#include <string.h> +#include <math.h> +#include <list> +#include <algorithm> +#include <set> + +using namespace std; + +#include "polypartition.h" + +#define TPPL_VERTEXTYPE_REGULAR 0 +#define TPPL_VERTEXTYPE_START 1 +#define TPPL_VERTEXTYPE_END 2 +#define TPPL_VERTEXTYPE_SPLIT 3 +#define TPPL_VERTEXTYPE_MERGE 4 + +TPPLPoly::TPPLPoly() { + hole = false; + numpoints = 0; + points = NULL; +} + +TPPLPoly::~TPPLPoly() { + if(points) delete [] points; +} + +void TPPLPoly::Clear() { + if(points) delete [] points; + hole = false; + numpoints = 0; + points = NULL; +} + +void TPPLPoly::Init(long numpoints) { + Clear(); + this->numpoints = numpoints; + points = new TPPLPoint[numpoints]; +} + +void TPPLPoly::Triangle(TPPLPoint &p1, TPPLPoint &p2, TPPLPoint &p3) { + Init(3); + points[0] = p1; + points[1] = p2; + points[2] = p3; +} + +TPPLPoly::TPPLPoly(const TPPLPoly &src) { + hole = src.hole; + numpoints = src.numpoints; + points = new TPPLPoint[numpoints]; + memcpy(points, src.points, numpoints*sizeof(TPPLPoint)); +} + +TPPLPoly& TPPLPoly::operator=(const TPPLPoly &src) { + if(&src != this) { + Clear(); + hole = src.hole; + numpoints = src.numpoints; + points = new TPPLPoint[numpoints]; + memcpy(points, src.points, numpoints*sizeof(TPPLPoint)); + } + return *this; +} + +int TPPLPoly::GetOrientation() const { + long i1,i2; + tppl_float area = 0; + for(i1=0; i1<numpoints; i1++) { + i2 = i1+1; + if(i2 == numpoints) i2 = 0; + area += points[i1].x * points[i2].y - points[i1].y * points[i2].x; + } + if(area>0) return TPPL_CCW; + if(area<0) return TPPL_CW; + return 0; +} + +void TPPLPoly::SetOrientation(int orientation) { + int polyorientation = GetOrientation(); + if(polyorientation&&(polyorientation!=orientation)) { + Invert(); + } +} + +void TPPLPoly::Invert() { + long i; + TPPLPoint *invpoints; + + invpoints = new TPPLPoint[numpoints]; + for(i=0;i<numpoints;i++) { + invpoints[i] = points[numpoints-i-1]; + } + + delete [] points; + points = invpoints; +} + +TPPLPoint TPPLPartition::Normalize(const TPPLPoint &p) { + TPPLPoint r; + tppl_float n = sqrt(p.x*p.x + p.y*p.y); + if(n!=0) { + r = p/n; + } else { + r.x = 0; + r.y = 0; + } + return r; +} + +tppl_float TPPLPartition::Distance(const TPPLPoint &p1, const TPPLPoint &p2) { + tppl_float dx,dy; + dx = p2.x - p1.x; + dy = p2.y - p1.y; + return(sqrt(dx*dx + dy*dy)); +} + +//checks if two lines intersect +int TPPLPartition::Intersects(TPPLPoint &p11, TPPLPoint &p12, TPPLPoint &p21, TPPLPoint &p22) { + if((p11.x == p21.x)&&(p11.y == p21.y)) return 0; + if((p11.x == p22.x)&&(p11.y == p22.y)) return 0; + if((p12.x == p21.x)&&(p12.y == p21.y)) return 0; + if((p12.x == p22.x)&&(p12.y == p22.y)) return 0; + + TPPLPoint v1ort,v2ort,v; + tppl_float dot11,dot12,dot21,dot22; + + v1ort.x = p12.y-p11.y; + v1ort.y = p11.x-p12.x; + + v2ort.x = p22.y-p21.y; + v2ort.y = p21.x-p22.x; + + v = p21-p11; + dot21 = v.x*v1ort.x + v.y*v1ort.y; + v = p22-p11; + dot22 = v.x*v1ort.x + v.y*v1ort.y; + + v = p11-p21; + dot11 = v.x*v2ort.x + v.y*v2ort.y; + v = p12-p21; + dot12 = v.x*v2ort.x + v.y*v2ort.y; + + if(dot11*dot12>0) return 0; + if(dot21*dot22>0) return 0; + + return 1; +} + +//removes holes from inpolys by merging them with non-holes +int TPPLPartition::RemoveHoles(list<TPPLPoly> *inpolys, list<TPPLPoly> *outpolys) { + list<TPPLPoly> polys; + list<TPPLPoly>::iterator holeiter,polyiter,iter,iter2; + long i,i2,holepointindex,polypointindex = 0; + TPPLPoint holepoint,polypoint,bestpolypoint; + TPPLPoint linep1,linep2; + TPPLPoint v1,v2; + TPPLPoly newpoly; + bool hasholes; + bool pointvisible; + bool pointfound; + + //check for trivial case (no holes) + hasholes = false; + for(iter = inpolys->begin(); iter!=inpolys->end(); ++iter) { + if(iter->IsHole()) { + hasholes = true; + break; + } + } + if(!hasholes) { + for(iter = inpolys->begin(); iter!=inpolys->end(); ++iter) { + outpolys->push_back(*iter); + } + return 1; + } + + polys = *inpolys; + + while(1) { + //find the hole point with the largest x + hasholes = false; + for(iter = polys.begin(); iter!=polys.end(); ++iter) { + if(!iter->IsHole()) continue; + + if(!hasholes) { + hasholes = true; + holeiter = iter; + holepointindex = 0; + } + + for(i=0; i < iter->GetNumPoints(); i++) { + if(iter->GetPoint(i).x > holeiter->GetPoint(holepointindex).x) { + holeiter = iter; + holepointindex = i; + } + } + } + if(!hasholes) break; + holepoint = holeiter->GetPoint(holepointindex); + + pointfound = false; + for(iter = polys.begin(); iter!=polys.end(); ++iter) { + if(iter->IsHole()) continue; + for(i=0; i < iter->GetNumPoints(); i++) { + if(iter->GetPoint(i).x <= holepoint.x) continue; + if(!InCone(iter->GetPoint((i+iter->GetNumPoints()-1)%(iter->GetNumPoints())), + iter->GetPoint(i), + iter->GetPoint((i+1)%(iter->GetNumPoints())), + holepoint)) + continue; + polypoint = iter->GetPoint(i); + if(pointfound) { + v1 = Normalize(polypoint-holepoint); + v2 = Normalize(bestpolypoint-holepoint); + if(v2.x > v1.x) continue; + } + pointvisible = true; + for(iter2 = polys.begin(); iter2!=polys.end(); ++iter2) { + if(iter2->IsHole()) continue; + for(i2=0; i2 < iter2->GetNumPoints(); i2++) { + linep1 = iter2->GetPoint(i2); + linep2 = iter2->GetPoint((i2+1)%(iter2->GetNumPoints())); + if(Intersects(holepoint,polypoint,linep1,linep2)) { + pointvisible = false; + break; + } + } + if(!pointvisible) break; + } + if(pointvisible) { + pointfound = true; + bestpolypoint = polypoint; + polyiter = iter; + polypointindex = i; + } + } + } + + if(!pointfound) return 0; + + newpoly.Init(holeiter->GetNumPoints() + polyiter->GetNumPoints() + 2); + i2 = 0; + for(i=0;i<=polypointindex;i++) { + newpoly[i2] = polyiter->GetPoint(i); + i2++; + } + for(i=0;i<=holeiter->GetNumPoints();i++) { + newpoly[i2] = holeiter->GetPoint((i+holepointindex)%holeiter->GetNumPoints()); + i2++; + } + for(i=polypointindex;i<polyiter->GetNumPoints();i++) { + newpoly[i2] = polyiter->GetPoint(i); + i2++; + } + + polys.erase(holeiter); + polys.erase(polyiter); + polys.push_back(newpoly); + } + + for(iter = polys.begin(); iter!=polys.end(); ++iter) { + outpolys->push_back(*iter); + } + + return 1; +} + +bool TPPLPartition::IsConvex(TPPLPoint& p1, TPPLPoint& p2, TPPLPoint& p3) { + tppl_float tmp; + tmp = (p3.y-p1.y)*(p2.x-p1.x)-(p3.x-p1.x)*(p2.y-p1.y); + if(tmp>0) return 1; + else return 0; +} + +bool TPPLPartition::IsReflex(TPPLPoint& p1, TPPLPoint& p2, TPPLPoint& p3) { + tppl_float tmp; + tmp = (p3.y-p1.y)*(p2.x-p1.x)-(p3.x-p1.x)*(p2.y-p1.y); + if(tmp<0) return 1; + else return 0; +} + +bool TPPLPartition::IsInside(TPPLPoint& p1, TPPLPoint& p2, TPPLPoint& p3, TPPLPoint &p) { + if(IsConvex(p1,p,p2)) return false; + if(IsConvex(p2,p,p3)) return false; + if(IsConvex(p3,p,p1)) return false; + return true; +} + +bool TPPLPartition::InCone(TPPLPoint &p1, TPPLPoint &p2, TPPLPoint &p3, TPPLPoint &p) { + bool convex; + + convex = IsConvex(p1,p2,p3); + + if(convex) { + if(!IsConvex(p1,p2,p)) return false; + if(!IsConvex(p2,p3,p)) return false; + return true; + } else { + if(IsConvex(p1,p2,p)) return true; + if(IsConvex(p2,p3,p)) return true; + return false; + } +} + +bool TPPLPartition::InCone(PartitionVertex *v, TPPLPoint &p) { + TPPLPoint p1,p2,p3; + + p1 = v->previous->p; + p2 = v->p; + p3 = v->next->p; + + return InCone(p1,p2,p3,p); +} + +void TPPLPartition::UpdateVertexReflexity(PartitionVertex *v) { + PartitionVertex *v1,*v3; + v1 = v->previous; + v3 = v->next; + v->isConvex = !IsReflex(v1->p,v->p,v3->p); +} + +void TPPLPartition::UpdateVertex(PartitionVertex *v, PartitionVertex *vertices, long numvertices) { + long i; + PartitionVertex *v1,*v3; + TPPLPoint vec1,vec3; + + v1 = v->previous; + v3 = v->next; + + v->isConvex = IsConvex(v1->p,v->p,v3->p); + + vec1 = Normalize(v1->p - v->p); + vec3 = Normalize(v3->p - v->p); + v->angle = vec1.x*vec3.x + vec1.y*vec3.y; + + if(v->isConvex) { + v->isEar = true; + for(i=0;i<numvertices;i++) { + if((vertices[i].p.x==v->p.x)&&(vertices[i].p.y==v->p.y)) continue; + if((vertices[i].p.x==v1->p.x)&&(vertices[i].p.y==v1->p.y)) continue; + if((vertices[i].p.x==v3->p.x)&&(vertices[i].p.y==v3->p.y)) continue; + if(IsInside(v1->p,v->p,v3->p,vertices[i].p)) { + v->isEar = false; + break; + } + } + } else { + v->isEar = false; + } +} + +//triangulation by ear removal +int TPPLPartition::Triangulate_EC(TPPLPoly *poly, list<TPPLPoly> *triangles) { + long numvertices; + PartitionVertex *vertices; + PartitionVertex *ear; + TPPLPoly triangle; + long i,j; + bool earfound; + + if(poly->GetNumPoints() < 3) return 0; + if(poly->GetNumPoints() == 3) { + triangles->push_back(*poly); + return 1; + } + + numvertices = poly->GetNumPoints(); + + vertices = new PartitionVertex[numvertices]; + for(i=0;i<numvertices;i++) { + vertices[i].isActive = true; + vertices[i].p = poly->GetPoint(i); + if(i==(numvertices-1)) vertices[i].next=&(vertices[0]); + else vertices[i].next=&(vertices[i+1]); + if(i==0) vertices[i].previous = &(vertices[numvertices-1]); + else vertices[i].previous = &(vertices[i-1]); + } + for(i=0;i<numvertices;i++) { + UpdateVertex(&vertices[i],vertices,numvertices); + } + + for(i=0;i<numvertices-3;i++) { + earfound = false; + //find the most extruded ear + for(j=0;j<numvertices;j++) { + if(!vertices[j].isActive) continue; + if(!vertices[j].isEar) continue; + if(!earfound) { + earfound = true; + ear = &(vertices[j]); + } else { + if(vertices[j].angle > ear->angle) { + ear = &(vertices[j]); + } + } + } + if(!earfound) { + delete [] vertices; + return 0; + } + + triangle.Triangle(ear->previous->p,ear->p,ear->next->p); + triangles->push_back(triangle); + + ear->isActive = false; + ear->previous->next = ear->next; + ear->next->previous = ear->previous; + + if(i==numvertices-4) break; + + UpdateVertex(ear->previous,vertices,numvertices); + UpdateVertex(ear->next,vertices,numvertices); + } + for(i=0;i<numvertices;i++) { + if(vertices[i].isActive) { + triangle.Triangle(vertices[i].previous->p,vertices[i].p,vertices[i].next->p); + triangles->push_back(triangle); + break; + } + } + + delete [] vertices; + + return 1; +} + +int TPPLPartition::Triangulate_EC(list<TPPLPoly> *inpolys, list<TPPLPoly> *triangles) { + list<TPPLPoly> outpolys; + list<TPPLPoly>::iterator iter; + + if(!RemoveHoles(inpolys,&outpolys)) return 0; + for(iter=outpolys.begin();iter!=outpolys.end();++iter) { + if(!Triangulate_EC(&(*iter),triangles)) return 0; + } + return 1; +} + +int TPPLPartition::ConvexPartition_HM(TPPLPoly *poly, list<TPPLPoly> *parts) { + list<TPPLPoly> triangles; + list<TPPLPoly>::iterator iter1,iter2; + TPPLPoly *poly1,*poly2; + TPPLPoly newpoly; + TPPLPoint d1,d2,p1,p2,p3; + long i11,i12,i21,i22,i13,i23,j,k; + bool isdiagonal; + long numreflex; + + //check if the poly is already convex + numreflex = 0; + for(i11=0;i11<poly->GetNumPoints();i11++) { + if(i11==0) i12 = poly->GetNumPoints()-1; + else i12=i11-1; + if(i11==(poly->GetNumPoints()-1)) i13=0; + else i13=i11+1; + if(IsReflex(poly->GetPoint(i12),poly->GetPoint(i11),poly->GetPoint(i13))) { + numreflex = 1; + break; + } + } + if(numreflex == 0) { + parts->push_back(*poly); + return 1; + } + + if(!Triangulate_EC(poly,&triangles)) return 0; + + for(iter1 = triangles.begin(); iter1 != triangles.end(); ++iter1) { + poly1 = &(*iter1); + for(i11=0;i11<poly1->GetNumPoints();i11++) { + d1 = poly1->GetPoint(i11); + i12 = (i11+1)%(poly1->GetNumPoints()); + d2 = poly1->GetPoint(i12); + + isdiagonal = false; + for(iter2 = iter1; iter2 != triangles.end(); ++iter2) { + if(iter1 == iter2) continue; + poly2 = &(*iter2); + + for(i21=0;i21<poly2->GetNumPoints();i21++) { + if((d2.x != poly2->GetPoint(i21).x)||(d2.y != poly2->GetPoint(i21).y)) continue; + i22 = (i21+1)%(poly2->GetNumPoints()); + if((d1.x != poly2->GetPoint(i22).x)||(d1.y != poly2->GetPoint(i22).y)) continue; + isdiagonal = true; + break; + } + if(isdiagonal) break; + } + + if(!isdiagonal) continue; + + p2 = poly1->GetPoint(i11); + if(i11 == 0) i13 = poly1->GetNumPoints()-1; + else i13 = i11-1; + p1 = poly1->GetPoint(i13); + if(i22 == (poly2->GetNumPoints()-1)) i23 = 0; + else i23 = i22+1; + p3 = poly2->GetPoint(i23); + + if(!IsConvex(p1,p2,p3)) continue; + + p2 = poly1->GetPoint(i12); + if(i12 == (poly1->GetNumPoints()-1)) i13 = 0; + else i13 = i12+1; + p3 = poly1->GetPoint(i13); + if(i21 == 0) i23 = poly2->GetNumPoints()-1; + else i23 = i21-1; + p1 = poly2->GetPoint(i23); + + if(!IsConvex(p1,p2,p3)) continue; + + newpoly.Init(poly1->GetNumPoints()+poly2->GetNumPoints()-2); + k = 0; + for(j=i12;j!=i11;j=(j+1)%(poly1->GetNumPoints())) { + newpoly[k] = poly1->GetPoint(j); + k++; + } + for(j=i22;j!=i21;j=(j+1)%(poly2->GetNumPoints())) { + newpoly[k] = poly2->GetPoint(j); + k++; + } + + triangles.erase(iter2); + *iter1 = newpoly; + poly1 = &(*iter1); + i11 = -1; + + continue; + } + } + + for(iter1 = triangles.begin(); iter1 != triangles.end(); ++iter1) { + parts->push_back(*iter1); + } + + return 1; +} + +int TPPLPartition::ConvexPartition_HM(list<TPPLPoly> *inpolys, list<TPPLPoly> *parts) { + list<TPPLPoly> outpolys; + list<TPPLPoly>::iterator iter; + + if(!RemoveHoles(inpolys,&outpolys)) return 0; + for(iter=outpolys.begin();iter!=outpolys.end();++iter) { + if(!ConvexPartition_HM(&(*iter),parts)) return 0; + } + return 1; +} + +//minimum-weight polygon triangulation by dynamic programming +//O(n^3) time complexity +//O(n^2) space complexity +int TPPLPartition::Triangulate_OPT(TPPLPoly *poly, list<TPPLPoly> *triangles) { + long i,j,k,gap,n; + DPState **dpstates; + TPPLPoint p1,p2,p3,p4; + long bestvertex; + tppl_float weight,minweight,d1,d2; + Diagonal diagonal,newdiagonal; + list<Diagonal> diagonals; + TPPLPoly triangle; + int ret = 1; + + n = poly->GetNumPoints(); + dpstates = new DPState *[n]; + for(i=1;i<n;i++) { + dpstates[i] = new DPState[i]; + } + + //init states and visibility + for(i=0;i<(n-1);i++) { + p1 = poly->GetPoint(i); + for(j=i+1;j<n;j++) { + dpstates[j][i].visible = true; + dpstates[j][i].weight = 0; + dpstates[j][i].bestvertex = -1; + if(j!=(i+1)) { + p2 = poly->GetPoint(j); + + //visibility check + if(i==0) p3 = poly->GetPoint(n-1); + else p3 = poly->GetPoint(i-1); + if(i==(n-1)) p4 = poly->GetPoint(0); + else p4 = poly->GetPoint(i+1); + if(!InCone(p3,p1,p4,p2)) { + dpstates[j][i].visible = false; + continue; + } + + if(j==0) p3 = poly->GetPoint(n-1); + else p3 = poly->GetPoint(j-1); + if(j==(n-1)) p4 = poly->GetPoint(0); + else p4 = poly->GetPoint(j+1); + if(!InCone(p3,p2,p4,p1)) { + dpstates[j][i].visible = false; + continue; + } + + for(k=0;k<n;k++) { + p3 = poly->GetPoint(k); + if(k==(n-1)) p4 = poly->GetPoint(0); + else p4 = poly->GetPoint(k+1); + if(Intersects(p1,p2,p3,p4)) { + dpstates[j][i].visible = false; + break; + } + } + } + } + } + dpstates[n-1][0].visible = true; + dpstates[n-1][0].weight = 0; + dpstates[n-1][0].bestvertex = -1; + + for(gap = 2; gap<n; gap++) { + for(i=0; i<(n-gap); i++) { + j = i+gap; + if(!dpstates[j][i].visible) continue; + bestvertex = -1; + for(k=(i+1);k<j;k++) { + if(!dpstates[k][i].visible) continue; + if(!dpstates[j][k].visible) continue; + + if(k<=(i+1)) d1=0; + else d1 = Distance(poly->GetPoint(i),poly->GetPoint(k)); + if(j<=(k+1)) d2=0; + else d2 = Distance(poly->GetPoint(k),poly->GetPoint(j)); + + weight = dpstates[k][i].weight + dpstates[j][k].weight + d1 + d2; + + if((bestvertex == -1)||(weight<minweight)) { + bestvertex = k; + minweight = weight; + } + } + if(bestvertex == -1) { + for(i=1;i<n;i++) { + delete [] dpstates[i]; + } + delete [] dpstates; + + return 0; + } + + dpstates[j][i].bestvertex = bestvertex; + dpstates[j][i].weight = minweight; + } + } + + newdiagonal.index1 = 0; + newdiagonal.index2 = n-1; + diagonals.push_back(newdiagonal); + while(!diagonals.empty()) { + diagonal = *(diagonals.begin()); + diagonals.pop_front(); + bestvertex = dpstates[diagonal.index2][diagonal.index1].bestvertex; + if(bestvertex == -1) { + ret = 0; + break; + } + triangle.Triangle(poly->GetPoint(diagonal.index1),poly->GetPoint(bestvertex),poly->GetPoint(diagonal.index2)); + triangles->push_back(triangle); + if(bestvertex > (diagonal.index1+1)) { + newdiagonal.index1 = diagonal.index1; + newdiagonal.index2 = bestvertex; + diagonals.push_back(newdiagonal); + } + if(diagonal.index2 > (bestvertex+1)) { + newdiagonal.index1 = bestvertex; + newdiagonal.index2 = diagonal.index2; + diagonals.push_back(newdiagonal); + } + } + + for(i=1;i<n;i++) { + delete [] dpstates[i]; + } + delete [] dpstates; + + return ret; +} + +void TPPLPartition::UpdateState(long a, long b, long w, long i, long j, DPState2 **dpstates) { + Diagonal newdiagonal; + list<Diagonal> *pairs; + long w2; + + w2 = dpstates[a][b].weight; + if(w>w2) return; + + pairs = &(dpstates[a][b].pairs); + newdiagonal.index1 = i; + newdiagonal.index2 = j; + + if(w<w2) { + pairs->clear(); + pairs->push_front(newdiagonal); + dpstates[a][b].weight = w; + } else { + if((!pairs->empty())&&(i <= pairs->begin()->index1)) return; + while((!pairs->empty())&&(pairs->begin()->index2 >= j)) pairs->pop_front(); + pairs->push_front(newdiagonal); + } +} + +void TPPLPartition::TypeA(long i, long j, long k, PartitionVertex *vertices, DPState2 **dpstates) { + list<Diagonal> *pairs; + list<Diagonal>::iterator iter,lastiter; + long top; + long w; + + if(!dpstates[i][j].visible) return; + top = j; + w = dpstates[i][j].weight; + if(k-j > 1) { + if (!dpstates[j][k].visible) return; + w += dpstates[j][k].weight + 1; + } + if(j-i > 1) { + pairs = &(dpstates[i][j].pairs); + iter = pairs->end(); + lastiter = pairs->end(); + while(iter!=pairs->begin()) { + --iter; + if(!IsReflex(vertices[iter->index2].p,vertices[j].p,vertices[k].p)) lastiter = iter; + else break; + } + if(lastiter == pairs->end()) w++; + else { + if(IsReflex(vertices[k].p,vertices[i].p,vertices[lastiter->index1].p)) w++; + else top = lastiter->index1; + } + } + UpdateState(i,k,w,top,j,dpstates); +} + +void TPPLPartition::TypeB(long i, long j, long k, PartitionVertex *vertices, DPState2 **dpstates) { + list<Diagonal> *pairs; + list<Diagonal>::iterator iter,lastiter; + long top; + long w; + + if(!dpstates[j][k].visible) return; + top = j; + w = dpstates[j][k].weight; + + if (j-i > 1) { + if (!dpstates[i][j].visible) return; + w += dpstates[i][j].weight + 1; + } + if (k-j > 1) { + pairs = &(dpstates[j][k].pairs); + + iter = pairs->begin(); + if((!pairs->empty())&&(!IsReflex(vertices[i].p,vertices[j].p,vertices[iter->index1].p))) { + lastiter = iter; + while(iter!=pairs->end()) { + if(!IsReflex(vertices[i].p,vertices[j].p,vertices[iter->index1].p)) { + lastiter = iter; + ++iter; + } + else break; + } + if(IsReflex(vertices[lastiter->index2].p,vertices[k].p,vertices[i].p)) w++; + else top = lastiter->index2; + } else w++; + } + UpdateState(i,k,w,j,top,dpstates); +} + +int TPPLPartition::ConvexPartition_OPT(TPPLPoly *poly, list<TPPLPoly> *parts) { + TPPLPoint p1,p2,p3,p4; + PartitionVertex *vertices; + DPState2 **dpstates; + long i,j,k,n,gap; + list<Diagonal> diagonals,diagonals2; + Diagonal diagonal,newdiagonal; + list<Diagonal> *pairs,*pairs2; + list<Diagonal>::iterator iter,iter2; + int ret; + TPPLPoly newpoly; + list<long> indices; + list<long>::iterator iiter; + bool ijreal,jkreal; + + n = poly->GetNumPoints(); + vertices = new PartitionVertex[n]; + + dpstates = new DPState2 *[n]; + for(i=0;i<n;i++) { + dpstates[i] = new DPState2[n]; + } + + //init vertex information + for(i=0;i<n;i++) { + vertices[i].p = poly->GetPoint(i); + vertices[i].isActive = true; + if(i==0) vertices[i].previous = &(vertices[n-1]); + else vertices[i].previous = &(vertices[i-1]); + if(i==(poly->GetNumPoints()-1)) vertices[i].next = &(vertices[0]); + else vertices[i].next = &(vertices[i+1]); + } + for(i=1;i<n;i++) { + UpdateVertexReflexity(&(vertices[i])); + } + + //init states and visibility + for(i=0;i<(n-1);i++) { + p1 = poly->GetPoint(i); + for(j=i+1;j<n;j++) { + dpstates[i][j].visible = true; + if(j==i+1) { + dpstates[i][j].weight = 0; + } else { + dpstates[i][j].weight = 2147483647; + } + if(j!=(i+1)) { + p2 = poly->GetPoint(j); + + //visibility check + if(!InCone(&vertices[i],p2)) { + dpstates[i][j].visible = false; + continue; + } + if(!InCone(&vertices[j],p1)) { + dpstates[i][j].visible = false; + continue; + } + + for(k=0;k<n;k++) { + p3 = poly->GetPoint(k); + if(k==(n-1)) p4 = poly->GetPoint(0); + else p4 = poly->GetPoint(k+1); + if(Intersects(p1,p2,p3,p4)) { + dpstates[i][j].visible = false; + break; + } + } + } + } + } + for(i=0;i<(n-2);i++) { + j = i+2; + if(dpstates[i][j].visible) { + dpstates[i][j].weight = 0; + newdiagonal.index1 = i+1; + newdiagonal.index2 = i+1; + dpstates[i][j].pairs.push_back(newdiagonal); + } + } + + dpstates[0][n-1].visible = true; + vertices[0].isConvex = false; //by convention + + for(gap=3; gap<n; gap++) { + for(i=0;i<n-gap;i++) { + if(vertices[i].isConvex) continue; + k = i+gap; + if(dpstates[i][k].visible) { + if(!vertices[k].isConvex) { + for(j=i+1;j<k;j++) TypeA(i,j,k,vertices,dpstates); + } else { + for(j=i+1;j<(k-1);j++) { + if(vertices[j].isConvex) continue; + TypeA(i,j,k,vertices,dpstates); + } + TypeA(i,k-1,k,vertices,dpstates); + } + } + } + for(k=gap;k<n;k++) { + if(vertices[k].isConvex) continue; + i = k-gap; + if((vertices[i].isConvex)&&(dpstates[i][k].visible)) { + TypeB(i,i+1,k,vertices,dpstates); + for(j=i+2;j<k;j++) { + if(vertices[j].isConvex) continue; + TypeB(i,j,k,vertices,dpstates); + } + } + } + } + + + //recover solution + ret = 1; + newdiagonal.index1 = 0; + newdiagonal.index2 = n-1; + diagonals.push_front(newdiagonal); + while(!diagonals.empty()) { + diagonal = *(diagonals.begin()); + diagonals.pop_front(); + if((diagonal.index2 - diagonal.index1) <=1) continue; + pairs = &(dpstates[diagonal.index1][diagonal.index2].pairs); + if(pairs->empty()) { + ret = 0; + break; + } + if(!vertices[diagonal.index1].isConvex) { + iter = pairs->end(); + --iter; + j = iter->index2; + newdiagonal.index1 = j; + newdiagonal.index2 = diagonal.index2; + diagonals.push_front(newdiagonal); + if((j - diagonal.index1)>1) { + if(iter->index1 != iter->index2) { + pairs2 = &(dpstates[diagonal.index1][j].pairs); + while(1) { + if(pairs2->empty()) { + ret = 0; + break; + } + iter2 = pairs2->end(); + --iter2; + if(iter->index1 != iter2->index1) pairs2->pop_back(); + else break; + } + if(ret == 0) break; + } + newdiagonal.index1 = diagonal.index1; + newdiagonal.index2 = j; + diagonals.push_front(newdiagonal); + } + } else { + iter = pairs->begin(); + j = iter->index1; + newdiagonal.index1 = diagonal.index1; + newdiagonal.index2 = j; + diagonals.push_front(newdiagonal); + if((diagonal.index2 - j) > 1) { + if(iter->index1 != iter->index2) { + pairs2 = &(dpstates[j][diagonal.index2].pairs); + while(1) { + if(pairs2->empty()) { + ret = 0; + break; + } + iter2 = pairs2->begin(); + if(iter->index2 != iter2->index2) pairs2->pop_front(); + else break; + } + if(ret == 0) break; + } + newdiagonal.index1 = j; + newdiagonal.index2 = diagonal.index2; + diagonals.push_front(newdiagonal); + } + } + } + + if(ret == 0) { + for(i=0;i<n;i++) { + delete [] dpstates[i]; + } + delete [] dpstates; + delete [] vertices; + + return ret; + } + + newdiagonal.index1 = 0; + newdiagonal.index2 = n-1; + diagonals.push_front(newdiagonal); + while(!diagonals.empty()) { + diagonal = *(diagonals.begin()); + diagonals.pop_front(); + if((diagonal.index2 - diagonal.index1) <= 1) continue; + + indices.clear(); + diagonals2.clear(); + indices.push_back(diagonal.index1); + indices.push_back(diagonal.index2); + diagonals2.push_front(diagonal); + + while(!diagonals2.empty()) { + diagonal = *(diagonals2.begin()); + diagonals2.pop_front(); + if((diagonal.index2 - diagonal.index1) <= 1) continue; + ijreal = true; + jkreal = true; + pairs = &(dpstates[diagonal.index1][diagonal.index2].pairs); + if(!vertices[diagonal.index1].isConvex) { + iter = pairs->end(); + --iter; + j = iter->index2; + if(iter->index1 != iter->index2) ijreal = false; + } else { + iter = pairs->begin(); + j = iter->index1; + if(iter->index1 != iter->index2) jkreal = false; + } + + newdiagonal.index1 = diagonal.index1; + newdiagonal.index2 = j; + if(ijreal) { + diagonals.push_back(newdiagonal); + } else { + diagonals2.push_back(newdiagonal); + } + + newdiagonal.index1 = j; + newdiagonal.index2 = diagonal.index2; + if(jkreal) { + diagonals.push_back(newdiagonal); + } else { + diagonals2.push_back(newdiagonal); + } + + indices.push_back(j); + } + + indices.sort(); + newpoly.Init((long)indices.size()); + k=0; + for(iiter = indices.begin();iiter!=indices.end(); ++iiter) { + newpoly[k] = vertices[*iiter].p; + k++; + } + parts->push_back(newpoly); + } + + for(i=0;i<n;i++) { + delete [] dpstates[i]; + } + delete [] dpstates; + delete [] vertices; + + return ret; +} + +//triangulates a set of polygons by first partitioning them into monotone polygons +//O(n*log(n)) time complexity, O(n) space complexity +//the algorithm used here is outlined in the book +//"Computational Geometry: Algorithms and Applications" +//by Mark de Berg, Otfried Cheong, Marc van Kreveld and Mark Overmars +int TPPLPartition::MonotonePartition(list<TPPLPoly> *inpolys, list<TPPLPoly> *monotonePolys) { + list<TPPLPoly>::iterator iter; + MonotoneVertex *vertices; + long i,numvertices,vindex,vindex2,newnumvertices,maxnumvertices; + long polystartindex, polyendindex; + TPPLPoly *poly; + MonotoneVertex *v,*v2,*vprev,*vnext; + ScanLineEdge newedge; + bool error = false; + + numvertices = 0; + for(iter = inpolys->begin(); iter != inpolys->end(); ++iter) { + numvertices += iter->GetNumPoints(); + } + + maxnumvertices = numvertices*3; + vertices = new MonotoneVertex[maxnumvertices]; + newnumvertices = numvertices; + + polystartindex = 0; + for(iter = inpolys->begin(); iter != inpolys->end(); ++iter) { + poly = &(*iter); + polyendindex = polystartindex + poly->GetNumPoints()-1; + for(i=0;i<poly->GetNumPoints();i++) { + vertices[i+polystartindex].p = poly->GetPoint(i); + if(i==0) vertices[i+polystartindex].previous = polyendindex; + else vertices[i+polystartindex].previous = i+polystartindex-1; + if(i==(poly->GetNumPoints()-1)) vertices[i+polystartindex].next = polystartindex; + else vertices[i+polystartindex].next = i+polystartindex+1; + } + polystartindex = polyendindex+1; + } + + //construct the priority queue + long *priority = new long [numvertices]; + for(i=0;i<numvertices;i++) priority[i] = i; + std::sort(priority,&(priority[numvertices]),VertexSorter(vertices)); + + //determine vertex types + char *vertextypes = new char[maxnumvertices]; + for(i=0;i<numvertices;i++) { + v = &(vertices[i]); + vprev = &(vertices[v->previous]); + vnext = &(vertices[v->next]); + + if(Below(vprev->p,v->p)&&Below(vnext->p,v->p)) { + if(IsConvex(vnext->p,vprev->p,v->p)) { + vertextypes[i] = TPPL_VERTEXTYPE_START; + } else { + vertextypes[i] = TPPL_VERTEXTYPE_SPLIT; + } + } else if(Below(v->p,vprev->p)&&Below(v->p,vnext->p)) { + if(IsConvex(vnext->p,vprev->p,v->p)) + { + vertextypes[i] = TPPL_VERTEXTYPE_END; + } else { + vertextypes[i] = TPPL_VERTEXTYPE_MERGE; + } + } else { + vertextypes[i] = TPPL_VERTEXTYPE_REGULAR; + } + } + + //helpers + long *helpers = new long[maxnumvertices]; + + //binary search tree that holds edges intersecting the scanline + //note that while set doesn't actually have to be implemented as a tree + //complexity requirements for operations are the same as for the balanced binary search tree + set<ScanLineEdge> edgeTree; + //store iterators to the edge tree elements + //this makes deleting existing edges much faster + set<ScanLineEdge>::iterator *edgeTreeIterators,edgeIter; + edgeTreeIterators = new set<ScanLineEdge>::iterator[maxnumvertices]; + pair<set<ScanLineEdge>::iterator,bool> edgeTreeRet; + + //for each vertex + for(i=0;i<numvertices;i++) { + vindex = priority[i]; + v = &(vertices[vindex]); + vindex2 = vindex; + v2 = v; + + //depending on the vertex type, do the appropriate action + //comments in the following sections are copied from "Computational Geometry: Algorithms and Applications" + switch(vertextypes[vindex]) { + case TPPL_VERTEXTYPE_START: + //Insert ei in T and set helper(ei) to vi. + newedge.p1 = v->p; + newedge.p2 = vertices[v->next].p; + newedge.index = vindex; + edgeTreeRet = edgeTree.insert(newedge); + edgeTreeIterators[vindex] = edgeTreeRet.first; + helpers[vindex] = vindex; + break; + + case TPPL_VERTEXTYPE_END: + //if helper(ei-1) is a merge vertex + if(vertextypes[helpers[v->previous]]==TPPL_VERTEXTYPE_MERGE) { + //Insert the diagonal connecting vi to helper(ei-1) in D. + AddDiagonal(vertices,&newnumvertices,vindex,helpers[v->previous]); + vertextypes[newnumvertices-2] = vertextypes[vindex]; + edgeTreeIterators[newnumvertices-2] = edgeTreeIterators[vindex]; + helpers[newnumvertices-2] = helpers[vindex]; + vertextypes[newnumvertices-1] = vertextypes[helpers[v->previous]]; + edgeTreeIterators[newnumvertices-1] = edgeTreeIterators[helpers[v->previous]]; + helpers[newnumvertices-1] = helpers[helpers[v->previous]]; + } + //Delete ei-1 from T + edgeTree.erase(edgeTreeIterators[v->previous]); + break; + + case TPPL_VERTEXTYPE_SPLIT: + //Search in T to find the edge e j directly left of vi. + newedge.p1 = v->p; + newedge.p2 = v->p; + edgeIter = edgeTree.lower_bound(newedge); + if(edgeIter == edgeTree.begin()) { + error = true; + break; + } + --edgeIter; + //Insert the diagonal connecting vi to helper(ej) in D. + AddDiagonal(vertices,&newnumvertices,vindex,helpers[edgeIter->index]); + vertextypes[newnumvertices-2] = vertextypes[vindex]; + edgeTreeIterators[newnumvertices-2] = edgeTreeIterators[vindex]; + helpers[newnumvertices-2] = helpers[vindex]; + vertextypes[newnumvertices-1] = vertextypes[helpers[edgeIter->index]]; + edgeTreeIterators[newnumvertices-1] = edgeTreeIterators[helpers[edgeIter->index]]; + helpers[newnumvertices-1] = helpers[helpers[edgeIter->index]]; + vindex2 = newnumvertices-2; + v2 = &(vertices[vindex2]); + //helper(e j)�vi + helpers[edgeIter->index] = vindex; + //Insert ei in T and set helper(ei) to vi. + newedge.p1 = v2->p; + newedge.p2 = vertices[v2->next].p; + newedge.index = vindex2; + edgeTreeRet = edgeTree.insert(newedge); + edgeTreeIterators[vindex2] = edgeTreeRet.first; + helpers[vindex2] = vindex2; + break; + + case TPPL_VERTEXTYPE_MERGE: + //if helper(ei-1) is a merge vertex + if(vertextypes[helpers[v->previous]]==TPPL_VERTEXTYPE_MERGE) { + //Insert the diagonal connecting vi to helper(ei-1) in D. + AddDiagonal(vertices,&newnumvertices,vindex,helpers[v->previous]); + vertextypes[newnumvertices-2] = vertextypes[vindex]; + edgeTreeIterators[newnumvertices-2] = edgeTreeIterators[vindex]; + helpers[newnumvertices-2] = helpers[vindex]; + vertextypes[newnumvertices-1] = vertextypes[helpers[v->previous]]; + edgeTreeIterators[newnumvertices-1] = edgeTreeIterators[helpers[v->previous]]; + helpers[newnumvertices-1] = helpers[helpers[v->previous]]; + vindex2 = newnumvertices-2; + v2 = &(vertices[vindex2]); + } + //Delete ei-1 from T. + edgeTree.erase(edgeTreeIterators[v->previous]); + //Search in T to find the edge e j directly left of vi. + newedge.p1 = v->p; + newedge.p2 = v->p; + edgeIter = edgeTree.lower_bound(newedge); + if(edgeIter == edgeTree.begin()) { + error = true; + break; + } + --edgeIter; + //if helper(ej) is a merge vertex + if(vertextypes[helpers[edgeIter->index]]==TPPL_VERTEXTYPE_MERGE) { + //Insert the diagonal connecting vi to helper(e j) in D. + AddDiagonal(vertices,&newnumvertices,vindex2,helpers[edgeIter->index]); + vertextypes[newnumvertices-2] = vertextypes[vindex2]; + edgeTreeIterators[newnumvertices-2] = edgeTreeIterators[vindex2]; + helpers[newnumvertices-2] = helpers[vindex2]; + vertextypes[newnumvertices-1] = vertextypes[helpers[edgeIter->index]]; + edgeTreeIterators[newnumvertices-1] = edgeTreeIterators[helpers[edgeIter->index]]; + helpers[newnumvertices-1] = helpers[helpers[edgeIter->index]]; + } + //helper(e j)�vi + helpers[edgeIter->index] = vindex2; + break; + + case TPPL_VERTEXTYPE_REGULAR: + //if the interior of P lies to the right of vi + if(Below(v->p,vertices[v->previous].p)) { + //if helper(ei-1) is a merge vertex + if(vertextypes[helpers[v->previous]]==TPPL_VERTEXTYPE_MERGE) { + //Insert the diagonal connecting vi to helper(ei-1) in D. + AddDiagonal(vertices,&newnumvertices,vindex,helpers[v->previous]); + vertextypes[newnumvertices-2] = vertextypes[vindex]; + edgeTreeIterators[newnumvertices-2] = edgeTreeIterators[vindex]; + helpers[newnumvertices-2] = helpers[vindex]; + vertextypes[newnumvertices-1] = vertextypes[helpers[v->previous]]; + edgeTreeIterators[newnumvertices-1] = edgeTreeIterators[helpers[v->previous]]; + helpers[newnumvertices-1] = helpers[helpers[v->previous]]; + vindex2 = newnumvertices-2; + v2 = &(vertices[vindex2]); + } + //Delete ei-1 from T. + edgeTree.erase(edgeTreeIterators[v->previous]); + //Insert ei in T and set helper(ei) to vi. + newedge.p1 = v2->p; + newedge.p2 = vertices[v2->next].p; + newedge.index = vindex2; + edgeTreeRet = edgeTree.insert(newedge); + edgeTreeIterators[vindex2] = edgeTreeRet.first; + helpers[vindex2] = vindex; + } else { + //Search in T to find the edge ej directly left of vi. + newedge.p1 = v->p; + newedge.p2 = v->p; + edgeIter = edgeTree.lower_bound(newedge); + if(edgeIter == edgeTree.begin()) { + error = true; + break; + } + --edgeIter; + //if helper(ej) is a merge vertex + if(vertextypes[helpers[edgeIter->index]]==TPPL_VERTEXTYPE_MERGE) { + //Insert the diagonal connecting vi to helper(e j) in D. + AddDiagonal(vertices,&newnumvertices,vindex,helpers[edgeIter->index]); + vertextypes[newnumvertices-2] = vertextypes[vindex]; + edgeTreeIterators[newnumvertices-2] = edgeTreeIterators[vindex]; + helpers[newnumvertices-2] = helpers[vindex]; + vertextypes[newnumvertices-1] = vertextypes[helpers[edgeIter->index]]; + edgeTreeIterators[newnumvertices-1] = edgeTreeIterators[helpers[edgeIter->index]]; + helpers[newnumvertices-1] = helpers[helpers[edgeIter->index]]; + } + //helper(e j)�vi + helpers[edgeIter->index] = vindex; + } + break; + } + + if(error) break; + } + + char *used = new char[newnumvertices]; + memset(used,0,newnumvertices*sizeof(char)); + + if(!error) { + //return result + long size; + TPPLPoly mpoly; + for(i=0;i<newnumvertices;i++) { + if(used[i]) continue; + v = &(vertices[i]); + vnext = &(vertices[v->next]); + size = 1; + while(vnext!=v) { + vnext = &(vertices[vnext->next]); + size++; + } + mpoly.Init(size); + v = &(vertices[i]); + mpoly[0] = v->p; + vnext = &(vertices[v->next]); + size = 1; + used[i] = 1; + used[v->next] = 1; + while(vnext!=v) { + mpoly[size] = vnext->p; + used[vnext->next] = 1; + vnext = &(vertices[vnext->next]); + size++; + } + monotonePolys->push_back(mpoly); + } + } + + //cleanup + delete [] vertices; + delete [] priority; + delete [] vertextypes; + delete [] edgeTreeIterators; + delete [] helpers; + delete [] used; + + if(error) { + return 0; + } else { + return 1; + } +} + +//adds a diagonal to the doubly-connected list of vertices +void TPPLPartition::AddDiagonal(MonotoneVertex *vertices, long *numvertices, long index1, long index2) { + long newindex1,newindex2; + + newindex1 = *numvertices; + (*numvertices)++; + newindex2 = *numvertices; + (*numvertices)++; + + vertices[newindex1].p = vertices[index1].p; + vertices[newindex2].p = vertices[index2].p; + + vertices[newindex2].next = vertices[index2].next; + vertices[newindex1].next = vertices[index1].next; + + vertices[vertices[index2].next].previous = newindex2; + vertices[vertices[index1].next].previous = newindex1; + + vertices[index1].next = newindex2; + vertices[newindex2].previous = index1; + + vertices[index2].next = newindex1; + vertices[newindex1].previous = index2; +} + +bool TPPLPartition::Below(TPPLPoint &p1, TPPLPoint &p2) { + if(p1.y < p2.y) return true; + else if(p1.y == p2.y) { + if(p1.x < p2.x) return true; + } + return false; +} + +//sorts in the falling order of y values, if y is equal, x is used instead +bool TPPLPartition::VertexSorter::operator() (long index1, long index2) const { + if(vertices[index1].p.y > vertices[index2].p.y) return true; + else if(vertices[index1].p.y == vertices[index2].p.y) { + if(vertices[index1].p.x > vertices[index2].p.x) return true; + } + return false; +} + +bool TPPLPartition::ScanLineEdge::IsConvex(const TPPLPoint& p1, const TPPLPoint& p2, const TPPLPoint& p3) const { + tppl_float tmp; + tmp = (p3.y-p1.y)*(p2.x-p1.x)-(p3.x-p1.x)*(p2.y-p1.y); + if(tmp>0) return 1; + else return 0; +} + +bool TPPLPartition::ScanLineEdge::operator < (const ScanLineEdge & other) const { + if(other.p1.y == other.p2.y) { + if(p1.y == p2.y) { + if(p1.y < other.p1.y) return true; + else return false; + } + if(IsConvex(p1,p2,other.p1)) return true; + else return false; + } else if(p1.y == p2.y) { + if(IsConvex(other.p1,other.p2,p1)) return false; + else return true; + } else if(p1.y < other.p1.y) { + if(IsConvex(other.p1,other.p2,p1)) return false; + else return true; + } else { + if(IsConvex(p1,p2,other.p1)) return true; + else return false; + } +} + +//triangulates monotone polygon +//O(n) time, O(n) space complexity +int TPPLPartition::TriangulateMonotone(TPPLPoly *inPoly, list<TPPLPoly> *triangles) { + long i,i2,j,topindex,bottomindex,leftindex,rightindex,vindex; + TPPLPoint *points; + long numpoints; + TPPLPoly triangle; + + numpoints = inPoly->GetNumPoints(); + points = inPoly->GetPoints(); + + //trivial calses + if(numpoints < 3) return 0; + if(numpoints == 3) { + triangles->push_back(*inPoly); + } + + topindex = 0; bottomindex=0; + for(i=1;i<numpoints;i++) { + if(Below(points[i],points[bottomindex])) bottomindex = i; + if(Below(points[topindex],points[i])) topindex = i; + } + + //check if the poly is really monotone + i = topindex; + while(i!=bottomindex) { + i2 = i+1; if(i2>=numpoints) i2 = 0; + if(!Below(points[i2],points[i])) return 0; + i = i2; + } + i = bottomindex; + while(i!=topindex) { + i2 = i+1; if(i2>=numpoints) i2 = 0; + if(!Below(points[i],points[i2])) return 0; + i = i2; + } + + char *vertextypes = new char[numpoints]; + long *priority = new long[numpoints]; + + //merge left and right vertex chains + priority[0] = topindex; + vertextypes[topindex] = 0; + leftindex = topindex+1; if(leftindex>=numpoints) leftindex = 0; + rightindex = topindex-1; if(rightindex<0) rightindex = numpoints-1; + for(i=1;i<(numpoints-1);i++) { + if(leftindex==bottomindex) { + priority[i] = rightindex; + rightindex--; if(rightindex<0) rightindex = numpoints-1; + vertextypes[priority[i]] = -1; + } else if(rightindex==bottomindex) { + priority[i] = leftindex; + leftindex++; if(leftindex>=numpoints) leftindex = 0; + vertextypes[priority[i]] = 1; + } else { + if(Below(points[leftindex],points[rightindex])) { + priority[i] = rightindex; + rightindex--; if(rightindex<0) rightindex = numpoints-1; + vertextypes[priority[i]] = -1; + } else { + priority[i] = leftindex; + leftindex++; if(leftindex>=numpoints) leftindex = 0; + vertextypes[priority[i]] = 1; + } + } + } + priority[i] = bottomindex; + vertextypes[bottomindex] = 0; + + long *stack = new long[numpoints]; + long stackptr = 0; + + stack[0] = priority[0]; + stack[1] = priority[1]; + stackptr = 2; + + //for each vertex from top to bottom trim as many triangles as possible + for(i=2;i<(numpoints-1);i++) { + vindex = priority[i]; + if(vertextypes[vindex]!=vertextypes[stack[stackptr-1]]) { + for(j=0;j<(stackptr-1);j++) { + if(vertextypes[vindex]==1) { + triangle.Triangle(points[stack[j+1]],points[stack[j]],points[vindex]); + } else { + triangle.Triangle(points[stack[j]],points[stack[j+1]],points[vindex]); + } + triangles->push_back(triangle); + } + stack[0] = priority[i-1]; + stack[1] = priority[i]; + stackptr = 2; + } else { + stackptr--; + while(stackptr>0) { + if(vertextypes[vindex]==1) { + if(IsConvex(points[vindex],points[stack[stackptr-1]],points[stack[stackptr]])) { + triangle.Triangle(points[vindex],points[stack[stackptr-1]],points[stack[stackptr]]); + triangles->push_back(triangle); + stackptr--; + } else { + break; + } + } else { + if(IsConvex(points[vindex],points[stack[stackptr]],points[stack[stackptr-1]])) { + triangle.Triangle(points[vindex],points[stack[stackptr]],points[stack[stackptr-1]]); + triangles->push_back(triangle); + stackptr--; + } else { + break; + } + } + } + stackptr++; + stack[stackptr] = vindex; + stackptr++; + } + } + vindex = priority[i]; + for(j=0;j<(stackptr-1);j++) { + if(vertextypes[stack[j+1]]==1) { + triangle.Triangle(points[stack[j]],points[stack[j+1]],points[vindex]); + } else { + triangle.Triangle(points[stack[j+1]],points[stack[j]],points[vindex]); + } + triangles->push_back(triangle); + } + + delete [] priority; + delete [] vertextypes; + delete [] stack; + + return 1; +} + +int TPPLPartition::Triangulate_MONO(list<TPPLPoly> *inpolys, list<TPPLPoly> *triangles) { + list<TPPLPoly> monotone; + list<TPPLPoly>::iterator iter; + + if(!MonotonePartition(inpolys,&monotone)) return 0; + for(iter = monotone.begin(); iter!=monotone.end(); ++iter) { + if(!TriangulateMonotone(&(*iter),triangles)) return 0; + } + return 1; +} + +int TPPLPartition::Triangulate_MONO(TPPLPoly *poly, list<TPPLPoly> *triangles) { + list<TPPLPoly> polys; + polys.push_back(*poly); + + return Triangulate_MONO(&polys, triangles); +} diff --git a/xs/src/polypartition.h b/src/polypartition/polypartition.h index 2596243ae..20ec0e24f 100644 --- a/xs/src/polypartition.h +++ b/src/polypartition/polypartition.h @@ -1,343 +1,343 @@ -//Copyright (C) 2011 by Ivan Fratric
-//
-//Permission is hereby granted, free of charge, to any person obtaining a copy
-//of this software and associated documentation files (the "Software"), to deal
-//in the Software without restriction, including without limitation the rights
-//to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-//copies of the Software, and to permit persons to whom the Software is
-//furnished to do so, subject to the following conditions:
-//
-//The above copyright notice and this permission notice shall be included in
-//all copies or substantial portions of the Software.
-//
-//THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-//IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-//FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-//AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-//LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-//OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-//THE SOFTWARE.
-
-
-#include <list>
-using namespace std;
-
-typedef double tppl_float;
-
-#define TPPL_CCW 1
-#define TPPL_CW -1
-
-//2D point structure
-struct TPPLPoint {
- tppl_float x;
- tppl_float y;
-
- TPPLPoint operator + (const TPPLPoint& p) const {
- TPPLPoint r;
- r.x = x + p.x;
- r.y = y + p.y;
- return r;
- }
-
- TPPLPoint operator - (const TPPLPoint& p) const {
- TPPLPoint r;
- r.x = x - p.x;
- r.y = y - p.y;
- return r;
- }
-
- TPPLPoint operator * (const tppl_float f ) const {
- TPPLPoint r;
- r.x = x*f;
- r.y = y*f;
- return r;
- }
-
- TPPLPoint operator / (const tppl_float f ) const {
- TPPLPoint r;
- r.x = x/f;
- r.y = y/f;
- return r;
- }
-
- bool operator==(const TPPLPoint& p) const {
- if((x == p.x)&&(y==p.y)) return true;
- else return false;
- }
-
- bool operator!=(const TPPLPoint& p) const {
- if((x == p.x)&&(y==p.y)) return false;
- else return true;
- }
-};
-
-//Polygon implemented as an array of points with a 'hole' flag
-class TPPLPoly {
-protected:
-
- TPPLPoint *points;
- long numpoints;
- bool hole;
-
-public:
-
- //constructors/destructors
- TPPLPoly();
- ~TPPLPoly();
-
- TPPLPoly(const TPPLPoly &src);
- TPPLPoly& operator=(const TPPLPoly &src);
-
- //getters and setters
- long GetNumPoints() const {
- return numpoints;
- }
-
- bool IsHole() const {
- return hole;
- }
-
- void SetHole(bool hole) {
- this->hole = hole;
- }
-
- TPPLPoint &GetPoint(long i) {
- return points[i];
- }
-
- TPPLPoint *GetPoints() {
- return points;
- }
-
- TPPLPoint& operator[] (int i) {
- return points[i];
- }
-
- //clears the polygon points
- void Clear();
-
- //inits the polygon with numpoints vertices
- void Init(long numpoints);
-
- //creates a triangle with points p1,p2,p3
- void Triangle(TPPLPoint &p1, TPPLPoint &p2, TPPLPoint &p3);
-
- //inverts the orfer of vertices
- void Invert();
-
- //returns the orientation of the polygon
- //possible values:
- // TPPL_CCW : polygon vertices are in counter-clockwise order
- // TPPL_CW : polygon vertices are in clockwise order
- // 0 : the polygon has no (measurable) area
- int GetOrientation() const;
-
- //sets the polygon orientation
- //orientation can be
- // TPPL_CCW : sets vertices in counter-clockwise order
- // TPPL_CW : sets vertices in clockwise order
- void SetOrientation(int orientation);
-};
-
-class TPPLPartition {
-protected:
- struct PartitionVertex {
- bool isActive;
- bool isConvex;
- bool isEar;
-
- TPPLPoint p;
- tppl_float angle;
- PartitionVertex *previous;
- PartitionVertex *next;
- };
-
- struct MonotoneVertex {
- TPPLPoint p;
- long previous;
- long next;
- };
-
- class VertexSorter{
- MonotoneVertex *vertices;
- public:
- VertexSorter(MonotoneVertex *v) : vertices(v) {}
- bool operator() (long index1, long index2) const;
- };
-
- struct Diagonal {
- long index1;
- long index2;
- };
-
- //dynamic programming state for minimum-weight triangulation
- struct DPState {
- bool visible;
- tppl_float weight;
- long bestvertex;
- };
-
- //dynamic programming state for convex partitioning
- struct DPState2 {
- bool visible;
- long weight;
- list<Diagonal> pairs;
- };
-
- //edge that intersects the scanline
- struct ScanLineEdge {
- long index;
- TPPLPoint p1;
- TPPLPoint p2;
-
- //determines if the edge is to the left of another edge
- bool operator< (const ScanLineEdge & other) const;
-
- bool IsConvex(const TPPLPoint& p1, const TPPLPoint& p2, const TPPLPoint& p3) const;
- };
-
- //standard helper functions
- bool IsConvex(TPPLPoint& p1, TPPLPoint& p2, TPPLPoint& p3);
- bool IsReflex(TPPLPoint& p1, TPPLPoint& p2, TPPLPoint& p3);
- bool IsInside(TPPLPoint& p1, TPPLPoint& p2, TPPLPoint& p3, TPPLPoint &p);
-
- bool InCone(TPPLPoint &p1, TPPLPoint &p2, TPPLPoint &p3, TPPLPoint &p);
- bool InCone(PartitionVertex *v, TPPLPoint &p);
-
- int Intersects(TPPLPoint &p11, TPPLPoint &p12, TPPLPoint &p21, TPPLPoint &p22);
-
- TPPLPoint Normalize(const TPPLPoint &p);
- tppl_float Distance(const TPPLPoint &p1, const TPPLPoint &p2);
-
- //helper functions for Triangulate_EC
- void UpdateVertexReflexity(PartitionVertex *v);
- void UpdateVertex(PartitionVertex *v,PartitionVertex *vertices, long numvertices);
-
- //helper functions for ConvexPartition_OPT
- void UpdateState(long a, long b, long w, long i, long j, DPState2 **dpstates);
- void TypeA(long i, long j, long k, PartitionVertex *vertices, DPState2 **dpstates);
- void TypeB(long i, long j, long k, PartitionVertex *vertices, DPState2 **dpstates);
-
- //helper functions for MonotonePartition
- bool Below(TPPLPoint &p1, TPPLPoint &p2);
- void AddDiagonal(MonotoneVertex *vertices, long *numvertices, long index1, long index2);
-
- //triangulates a monotone polygon, used in Triangulate_MONO
- int TriangulateMonotone(TPPLPoly *inPoly, list<TPPLPoly> *triangles);
-
-public:
-
- //simple heuristic procedure for removing holes from a list of polygons
- //works by creating a diagonal from the rightmost hole vertex to some visible vertex
- //time complexity: O(h*(n^2)), h is the number of holes, n is the number of vertices
- //space complexity: O(n)
- //params:
- // inpolys : a list of polygons that can contain holes
- // vertices of all non-hole polys have to be in counter-clockwise order
- // vertices of all hole polys have to be in clockwise order
- // outpolys : a list of polygons without holes
- //returns 1 on success, 0 on failure
- int RemoveHoles(list<TPPLPoly> *inpolys, list<TPPLPoly> *outpolys);
-
- //triangulates a polygon by ear clipping
- //time complexity O(n^2), n is the number of vertices
- //space complexity: O(n)
- //params:
- // poly : an input polygon to be triangulated
- // vertices have to be in counter-clockwise order
- // triangles : a list of triangles (result)
- //returns 1 on success, 0 on failure
- int Triangulate_EC(TPPLPoly *poly, list<TPPLPoly> *triangles);
-
- //triangulates a list of polygons that may contain holes by ear clipping algorithm
- //first calls RemoveHoles to get rid of the holes, and then Triangulate_EC for each resulting polygon
- //time complexity: O(h*(n^2)), h is the number of holes, n is the number of vertices
- //space complexity: O(n)
- //params:
- // inpolys : a list of polygons to be triangulated (can contain holes)
- // vertices of all non-hole polys have to be in counter-clockwise order
- // vertices of all hole polys have to be in clockwise order
- // triangles : a list of triangles (result)
- //returns 1 on success, 0 on failure
- int Triangulate_EC(list<TPPLPoly> *inpolys, list<TPPLPoly> *triangles);
-
- //creates an optimal polygon triangulation in terms of minimal edge length
- //time complexity: O(n^3), n is the number of vertices
- //space complexity: O(n^2)
- //params:
- // poly : an input polygon to be triangulated
- // vertices have to be in counter-clockwise order
- // triangles : a list of triangles (result)
- //returns 1 on success, 0 on failure
- int Triangulate_OPT(TPPLPoly *poly, list<TPPLPoly> *triangles);
-
- //triangulates a polygons by firstly partitioning it into monotone polygons
- //time complexity: O(n*log(n)), n is the number of vertices
- //space complexity: O(n)
- //params:
- // poly : an input polygon to be triangulated
- // vertices have to be in counter-clockwise order
- // triangles : a list of triangles (result)
- //returns 1 on success, 0 on failure
- int Triangulate_MONO(TPPLPoly *poly, list<TPPLPoly> *triangles);
-
- //triangulates a list of polygons by firstly partitioning them into monotone polygons
- //time complexity: O(n*log(n)), n is the number of vertices
- //space complexity: O(n)
- //params:
- // inpolys : a list of polygons to be triangulated (can contain holes)
- // vertices of all non-hole polys have to be in counter-clockwise order
- // vertices of all hole polys have to be in clockwise order
- // triangles : a list of triangles (result)
- //returns 1 on success, 0 on failure
- int Triangulate_MONO(list<TPPLPoly> *inpolys, list<TPPLPoly> *triangles);
-
- //creates a monotone partition of a list of polygons that can contain holes
- //time complexity: O(n*log(n)), n is the number of vertices
- //space complexity: O(n)
- //params:
- // inpolys : a list of polygons to be triangulated (can contain holes)
- // vertices of all non-hole polys have to be in counter-clockwise order
- // vertices of all hole polys have to be in clockwise order
- // monotonePolys : a list of monotone polygons (result)
- //returns 1 on success, 0 on failure
- int MonotonePartition(list<TPPLPoly> *inpolys, list<TPPLPoly> *monotonePolys);
-
- //partitions a polygon into convex polygons by using Hertel-Mehlhorn algorithm
- //the algorithm gives at most four times the number of parts as the optimal algorithm
- //however, in practice it works much better than that and often gives optimal partition
- //uses triangulation obtained by ear clipping as intermediate result
- //time complexity O(n^2), n is the number of vertices
- //space complexity: O(n)
- //params:
- // poly : an input polygon to be partitioned
- // vertices have to be in counter-clockwise order
- // parts : resulting list of convex polygons
- //returns 1 on success, 0 on failure
- int ConvexPartition_HM(TPPLPoly *poly, list<TPPLPoly> *parts);
-
- //partitions a list of polygons into convex parts by using Hertel-Mehlhorn algorithm
- //the algorithm gives at most four times the number of parts as the optimal algorithm
- //however, in practice it works much better than that and often gives optimal partition
- //uses triangulation obtained by ear clipping as intermediate result
- //time complexity O(n^2), n is the number of vertices
- //space complexity: O(n)
- //params:
- // inpolys : an input list of polygons to be partitioned
- // vertices of all non-hole polys have to be in counter-clockwise order
- // vertices of all hole polys have to be in clockwise order
- // parts : resulting list of convex polygons
- //returns 1 on success, 0 on failure
- int ConvexPartition_HM(list<TPPLPoly> *inpolys, list<TPPLPoly> *parts);
-
- //optimal convex partitioning (in terms of number of resulting convex polygons)
- //using the Keil-Snoeyink algorithm
- //M. Keil, J. Snoeyink, "On the time bound for convex decomposition of simple polygons", 1998
- //time complexity O(n^3), n is the number of vertices
- //space complexity: O(n^3)
- // poly : an input polygon to be partitioned
- // vertices have to be in counter-clockwise order
- // parts : resulting list of convex polygons
- //returns 1 on success, 0 on failure
- int ConvexPartition_OPT(TPPLPoly *poly, list<TPPLPoly> *parts);
-};
+//Copyright (C) 2011 by Ivan Fratric +// +//Permission is hereby granted, free of charge, to any person obtaining a copy +//of this software and associated documentation files (the "Software"), to deal +//in the Software without restriction, including without limitation the rights +//to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +//copies of the Software, and to permit persons to whom the Software is +//furnished to do so, subject to the following conditions: +// +//The above copyright notice and this permission notice shall be included in +//all copies or substantial portions of the Software. +// +//THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +//IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +//FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +//AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +//LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +//OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +//THE SOFTWARE. + + +#include <list> +using namespace std; + +typedef double tppl_float; + +#define TPPL_CCW 1 +#define TPPL_CW -1 + +//2D point structure +struct TPPLPoint { + tppl_float x; + tppl_float y; + + TPPLPoint operator + (const TPPLPoint& p) const { + TPPLPoint r; + r.x = x + p.x; + r.y = y + p.y; + return r; + } + + TPPLPoint operator - (const TPPLPoint& p) const { + TPPLPoint r; + r.x = x - p.x; + r.y = y - p.y; + return r; + } + + TPPLPoint operator * (const tppl_float f ) const { + TPPLPoint r; + r.x = x*f; + r.y = y*f; + return r; + } + + TPPLPoint operator / (const tppl_float f ) const { + TPPLPoint r; + r.x = x/f; + r.y = y/f; + return r; + } + + bool operator==(const TPPLPoint& p) const { + if((x == p.x)&&(y==p.y)) return true; + else return false; + } + + bool operator!=(const TPPLPoint& p) const { + if((x == p.x)&&(y==p.y)) return false; + else return true; + } +}; + +//Polygon implemented as an array of points with a 'hole' flag +class TPPLPoly { +protected: + + TPPLPoint *points; + long numpoints; + bool hole; + +public: + + //constructors/destructors + TPPLPoly(); + ~TPPLPoly(); + + TPPLPoly(const TPPLPoly &src); + TPPLPoly& operator=(const TPPLPoly &src); + + //getters and setters + long GetNumPoints() const { + return numpoints; + } + + bool IsHole() const { + return hole; + } + + void SetHole(bool hole) { + this->hole = hole; + } + + TPPLPoint &GetPoint(long i) { + return points[i]; + } + + TPPLPoint *GetPoints() { + return points; + } + + TPPLPoint& operator[] (int i) { + return points[i]; + } + + //clears the polygon points + void Clear(); + + //inits the polygon with numpoints vertices + void Init(long numpoints); + + //creates a triangle with points p1,p2,p3 + void Triangle(TPPLPoint &p1, TPPLPoint &p2, TPPLPoint &p3); + + //inverts the orfer of vertices + void Invert(); + + //returns the orientation of the polygon + //possible values: + // TPPL_CCW : polygon vertices are in counter-clockwise order + // TPPL_CW : polygon vertices are in clockwise order + // 0 : the polygon has no (measurable) area + int GetOrientation() const; + + //sets the polygon orientation + //orientation can be + // TPPL_CCW : sets vertices in counter-clockwise order + // TPPL_CW : sets vertices in clockwise order + void SetOrientation(int orientation); +}; + +class TPPLPartition { +protected: + struct PartitionVertex { + bool isActive; + bool isConvex; + bool isEar; + + TPPLPoint p; + tppl_float angle; + PartitionVertex *previous; + PartitionVertex *next; + }; + + struct MonotoneVertex { + TPPLPoint p; + long previous; + long next; + }; + + class VertexSorter{ + MonotoneVertex *vertices; + public: + VertexSorter(MonotoneVertex *v) : vertices(v) {} + bool operator() (long index1, long index2) const; + }; + + struct Diagonal { + long index1; + long index2; + }; + + //dynamic programming state for minimum-weight triangulation + struct DPState { + bool visible; + tppl_float weight; + long bestvertex; + }; + + //dynamic programming state for convex partitioning + struct DPState2 { + bool visible; + long weight; + list<Diagonal> pairs; + }; + + //edge that intersects the scanline + struct ScanLineEdge { + long index; + TPPLPoint p1; + TPPLPoint p2; + + //determines if the edge is to the left of another edge + bool operator< (const ScanLineEdge & other) const; + + bool IsConvex(const TPPLPoint& p1, const TPPLPoint& p2, const TPPLPoint& p3) const; + }; + + //standard helper functions + bool IsConvex(TPPLPoint& p1, TPPLPoint& p2, TPPLPoint& p3); + bool IsReflex(TPPLPoint& p1, TPPLPoint& p2, TPPLPoint& p3); + bool IsInside(TPPLPoint& p1, TPPLPoint& p2, TPPLPoint& p3, TPPLPoint &p); + + bool InCone(TPPLPoint &p1, TPPLPoint &p2, TPPLPoint &p3, TPPLPoint &p); + bool InCone(PartitionVertex *v, TPPLPoint &p); + + int Intersects(TPPLPoint &p11, TPPLPoint &p12, TPPLPoint &p21, TPPLPoint &p22); + + TPPLPoint Normalize(const TPPLPoint &p); + tppl_float Distance(const TPPLPoint &p1, const TPPLPoint &p2); + + //helper functions for Triangulate_EC + void UpdateVertexReflexity(PartitionVertex *v); + void UpdateVertex(PartitionVertex *v,PartitionVertex *vertices, long numvertices); + + //helper functions for ConvexPartition_OPT + void UpdateState(long a, long b, long w, long i, long j, DPState2 **dpstates); + void TypeA(long i, long j, long k, PartitionVertex *vertices, DPState2 **dpstates); + void TypeB(long i, long j, long k, PartitionVertex *vertices, DPState2 **dpstates); + + //helper functions for MonotonePartition + bool Below(TPPLPoint &p1, TPPLPoint &p2); + void AddDiagonal(MonotoneVertex *vertices, long *numvertices, long index1, long index2); + + //triangulates a monotone polygon, used in Triangulate_MONO + int TriangulateMonotone(TPPLPoly *inPoly, list<TPPLPoly> *triangles); + +public: + + //simple heuristic procedure for removing holes from a list of polygons + //works by creating a diagonal from the rightmost hole vertex to some visible vertex + //time complexity: O(h*(n^2)), h is the number of holes, n is the number of vertices + //space complexity: O(n) + //params: + // inpolys : a list of polygons that can contain holes + // vertices of all non-hole polys have to be in counter-clockwise order + // vertices of all hole polys have to be in clockwise order + // outpolys : a list of polygons without holes + //returns 1 on success, 0 on failure + int RemoveHoles(list<TPPLPoly> *inpolys, list<TPPLPoly> *outpolys); + + //triangulates a polygon by ear clipping + //time complexity O(n^2), n is the number of vertices + //space complexity: O(n) + //params: + // poly : an input polygon to be triangulated + // vertices have to be in counter-clockwise order + // triangles : a list of triangles (result) + //returns 1 on success, 0 on failure + int Triangulate_EC(TPPLPoly *poly, list<TPPLPoly> *triangles); + + //triangulates a list of polygons that may contain holes by ear clipping algorithm + //first calls RemoveHoles to get rid of the holes, and then Triangulate_EC for each resulting polygon + //time complexity: O(h*(n^2)), h is the number of holes, n is the number of vertices + //space complexity: O(n) + //params: + // inpolys : a list of polygons to be triangulated (can contain holes) + // vertices of all non-hole polys have to be in counter-clockwise order + // vertices of all hole polys have to be in clockwise order + // triangles : a list of triangles (result) + //returns 1 on success, 0 on failure + int Triangulate_EC(list<TPPLPoly> *inpolys, list<TPPLPoly> *triangles); + + //creates an optimal polygon triangulation in terms of minimal edge length + //time complexity: O(n^3), n is the number of vertices + //space complexity: O(n^2) + //params: + // poly : an input polygon to be triangulated + // vertices have to be in counter-clockwise order + // triangles : a list of triangles (result) + //returns 1 on success, 0 on failure + int Triangulate_OPT(TPPLPoly *poly, list<TPPLPoly> *triangles); + + //triangulates a polygons by firstly partitioning it into monotone polygons + //time complexity: O(n*log(n)), n is the number of vertices + //space complexity: O(n) + //params: + // poly : an input polygon to be triangulated + // vertices have to be in counter-clockwise order + // triangles : a list of triangles (result) + //returns 1 on success, 0 on failure + int Triangulate_MONO(TPPLPoly *poly, list<TPPLPoly> *triangles); + + //triangulates a list of polygons by firstly partitioning them into monotone polygons + //time complexity: O(n*log(n)), n is the number of vertices + //space complexity: O(n) + //params: + // inpolys : a list of polygons to be triangulated (can contain holes) + // vertices of all non-hole polys have to be in counter-clockwise order + // vertices of all hole polys have to be in clockwise order + // triangles : a list of triangles (result) + //returns 1 on success, 0 on failure + int Triangulate_MONO(list<TPPLPoly> *inpolys, list<TPPLPoly> *triangles); + + //creates a monotone partition of a list of polygons that can contain holes + //time complexity: O(n*log(n)), n is the number of vertices + //space complexity: O(n) + //params: + // inpolys : a list of polygons to be triangulated (can contain holes) + // vertices of all non-hole polys have to be in counter-clockwise order + // vertices of all hole polys have to be in clockwise order + // monotonePolys : a list of monotone polygons (result) + //returns 1 on success, 0 on failure + int MonotonePartition(list<TPPLPoly> *inpolys, list<TPPLPoly> *monotonePolys); + + //partitions a polygon into convex polygons by using Hertel-Mehlhorn algorithm + //the algorithm gives at most four times the number of parts as the optimal algorithm + //however, in practice it works much better than that and often gives optimal partition + //uses triangulation obtained by ear clipping as intermediate result + //time complexity O(n^2), n is the number of vertices + //space complexity: O(n) + //params: + // poly : an input polygon to be partitioned + // vertices have to be in counter-clockwise order + // parts : resulting list of convex polygons + //returns 1 on success, 0 on failure + int ConvexPartition_HM(TPPLPoly *poly, list<TPPLPoly> *parts); + + //partitions a list of polygons into convex parts by using Hertel-Mehlhorn algorithm + //the algorithm gives at most four times the number of parts as the optimal algorithm + //however, in practice it works much better than that and often gives optimal partition + //uses triangulation obtained by ear clipping as intermediate result + //time complexity O(n^2), n is the number of vertices + //space complexity: O(n) + //params: + // inpolys : an input list of polygons to be partitioned + // vertices of all non-hole polys have to be in counter-clockwise order + // vertices of all hole polys have to be in clockwise order + // parts : resulting list of convex polygons + //returns 1 on success, 0 on failure + int ConvexPartition_HM(list<TPPLPoly> *inpolys, list<TPPLPoly> *parts); + + //optimal convex partitioning (in terms of number of resulting convex polygons) + //using the Keil-Snoeyink algorithm + //M. Keil, J. Snoeyink, "On the time bound for convex decomposition of simple polygons", 1998 + //time complexity O(n^3), n is the number of vertices + //space complexity: O(n^3) + // poly : an input polygon to be partitioned + // vertices have to be in counter-clockwise order + // parts : resulting list of convex polygons + //returns 1 on success, 0 on failure + int ConvexPartition_OPT(TPPLPoly *poly, list<TPPLPoly> *parts); +}; diff --git a/xs/src/qhull/Announce.txt b/src/qhull/Announce.txt index 635cff1af..635cff1af 100644 --- a/xs/src/qhull/Announce.txt +++ b/src/qhull/Announce.txt diff --git a/xs/src/qhull/CMakeLists.txt b/src/qhull/CMakeLists.txt index d798b018f..d798b018f 100644 --- a/xs/src/qhull/CMakeLists.txt +++ b/src/qhull/CMakeLists.txt diff --git a/xs/src/qhull/COPYING.txt b/src/qhull/COPYING.txt index 2895ec6a3..2895ec6a3 100644 --- a/xs/src/qhull/COPYING.txt +++ b/src/qhull/COPYING.txt diff --git a/xs/src/qhull/README.txt b/src/qhull/README.txt index f4c7a3b22..f4c7a3b22 100644 --- a/xs/src/qhull/README.txt +++ b/src/qhull/README.txt diff --git a/xs/src/qhull/REGISTER.txt b/src/qhull/REGISTER.txt index 16ccb1a58..16ccb1a58 100644 --- a/xs/src/qhull/REGISTER.txt +++ b/src/qhull/REGISTER.txt diff --git a/xs/src/qhull/html/index.htm b/src/qhull/html/index.htm index ca4789b47..ca4789b47 100644 --- a/xs/src/qhull/html/index.htm +++ b/src/qhull/html/index.htm diff --git a/xs/src/qhull/html/normal_voronoi_knauss_oesterle.jpg b/src/qhull/html/normal_voronoi_knauss_oesterle.jpg Binary files differindex f46d42127..f46d42127 100644 --- a/xs/src/qhull/html/normal_voronoi_knauss_oesterle.jpg +++ b/src/qhull/html/normal_voronoi_knauss_oesterle.jpg diff --git a/xs/src/qhull/html/qconvex.htm b/src/qhull/html/qconvex.htm index 38a363b08..38a363b08 100644 --- a/xs/src/qhull/html/qconvex.htm +++ b/src/qhull/html/qconvex.htm diff --git a/xs/src/qhull/html/qdelau_f.htm b/src/qhull/html/qdelau_f.htm index d8981e16b..d8981e16b 100644 --- a/xs/src/qhull/html/qdelau_f.htm +++ b/src/qhull/html/qdelau_f.htm diff --git a/xs/src/qhull/html/qdelaun.htm b/src/qhull/html/qdelaun.htm index a42223c66..a42223c66 100644 --- a/xs/src/qhull/html/qdelaun.htm +++ b/src/qhull/html/qdelaun.htm diff --git a/xs/src/qhull/html/qh--4d.gif b/src/qhull/html/qh--4d.gif Binary files differindex 08be18c8a..08be18c8a 100644 --- a/xs/src/qhull/html/qh--4d.gif +++ b/src/qhull/html/qh--4d.gif diff --git a/xs/src/qhull/html/qh--cone.gif b/src/qhull/html/qh--cone.gif Binary files differindex 78470ee8f..78470ee8f 100644 --- a/xs/src/qhull/html/qh--cone.gif +++ b/src/qhull/html/qh--cone.gif diff --git a/xs/src/qhull/html/qh--dt.gif b/src/qhull/html/qh--dt.gif Binary files differindex b6d4e2672..b6d4e2672 100644 --- a/xs/src/qhull/html/qh--dt.gif +++ b/src/qhull/html/qh--dt.gif diff --git a/xs/src/qhull/html/qh--geom.gif b/src/qhull/html/qh--geom.gif Binary files differindex 9c70b5499..9c70b5499 100644 --- a/xs/src/qhull/html/qh--geom.gif +++ b/src/qhull/html/qh--geom.gif diff --git a/xs/src/qhull/html/qh--half.gif b/src/qhull/html/qh--half.gif Binary files differindex 80a4d0883..80a4d0883 100644 --- a/xs/src/qhull/html/qh--half.gif +++ b/src/qhull/html/qh--half.gif diff --git a/xs/src/qhull/html/qh--rand.gif b/src/qhull/html/qh--rand.gif Binary files differindex 4d4e4daee..4d4e4daee 100644 --- a/xs/src/qhull/html/qh--rand.gif +++ b/src/qhull/html/qh--rand.gif diff --git a/xs/src/qhull/html/qh-code.htm b/src/qhull/html/qh-code.htm index fff7faddb..fff7faddb 100644 --- a/xs/src/qhull/html/qh-code.htm +++ b/src/qhull/html/qh-code.htm diff --git a/xs/src/qhull/html/qh-eg.htm b/src/qhull/html/qh-eg.htm index a08f0d13f..a08f0d13f 100644 --- a/xs/src/qhull/html/qh-eg.htm +++ b/src/qhull/html/qh-eg.htm diff --git a/xs/src/qhull/html/qh-faq.htm b/src/qhull/html/qh-faq.htm index feda544a7..feda544a7 100644 --- a/xs/src/qhull/html/qh-faq.htm +++ b/src/qhull/html/qh-faq.htm diff --git a/xs/src/qhull/html/qh-get.htm b/src/qhull/html/qh-get.htm index c39ed2256..c39ed2256 100644 --- a/xs/src/qhull/html/qh-get.htm +++ b/src/qhull/html/qh-get.htm diff --git a/xs/src/qhull/html/qh-impre.htm b/src/qhull/html/qh-impre.htm index cfbe0acb8..cfbe0acb8 100644 --- a/xs/src/qhull/html/qh-impre.htm +++ b/src/qhull/html/qh-impre.htm diff --git a/xs/src/qhull/html/qh-optc.htm b/src/qhull/html/qh-optc.htm index 87308180d..87308180d 100644 --- a/xs/src/qhull/html/qh-optc.htm +++ b/src/qhull/html/qh-optc.htm diff --git a/xs/src/qhull/html/qh-optf.htm b/src/qhull/html/qh-optf.htm index 3c7a2b1db..3c7a2b1db 100644 --- a/xs/src/qhull/html/qh-optf.htm +++ b/src/qhull/html/qh-optf.htm diff --git a/xs/src/qhull/html/qh-optg.htm b/src/qhull/html/qh-optg.htm index a56e29df1..a56e29df1 100644 --- a/xs/src/qhull/html/qh-optg.htm +++ b/src/qhull/html/qh-optg.htm diff --git a/xs/src/qhull/html/qh-opto.htm b/src/qhull/html/qh-opto.htm index e7b21745c..e7b21745c 100644 --- a/xs/src/qhull/html/qh-opto.htm +++ b/src/qhull/html/qh-opto.htm diff --git a/xs/src/qhull/html/qh-optp.htm b/src/qhull/html/qh-optp.htm index 9c6df90f5..9c6df90f5 100644 --- a/xs/src/qhull/html/qh-optp.htm +++ b/src/qhull/html/qh-optp.htm diff --git a/xs/src/qhull/html/qh-optq.htm b/src/qhull/html/qh-optq.htm index 2edbb1fd4..2edbb1fd4 100644 --- a/xs/src/qhull/html/qh-optq.htm +++ b/src/qhull/html/qh-optq.htm diff --git a/xs/src/qhull/html/qh-optt.htm b/src/qhull/html/qh-optt.htm index 0709f58c6..0709f58c6 100644 --- a/xs/src/qhull/html/qh-optt.htm +++ b/src/qhull/html/qh-optt.htm diff --git a/xs/src/qhull/html/qh-quick.htm b/src/qhull/html/qh-quick.htm index 9d52e7d75..9d52e7d75 100644 --- a/xs/src/qhull/html/qh-quick.htm +++ b/src/qhull/html/qh-quick.htm diff --git a/xs/src/qhull/html/qhalf.htm b/src/qhull/html/qhalf.htm index c87fe719e..c87fe719e 100644 --- a/xs/src/qhull/html/qhalf.htm +++ b/src/qhull/html/qhalf.htm diff --git a/xs/src/qhull/html/qhull-cpp.xml b/src/qhull/html/qhull-cpp.xml index ae755e826..ae755e826 100644 --- a/xs/src/qhull/html/qhull-cpp.xml +++ b/src/qhull/html/qhull-cpp.xml diff --git a/xs/src/qhull/html/qhull.htm b/src/qhull/html/qhull.htm index 0a2aa75e0..0a2aa75e0 100644 --- a/xs/src/qhull/html/qhull.htm +++ b/src/qhull/html/qhull.htm diff --git a/xs/src/qhull/html/qhull.man b/src/qhull/html/qhull.man index 8d1dc08ac..8d1dc08ac 100644 --- a/xs/src/qhull/html/qhull.man +++ b/src/qhull/html/qhull.man diff --git a/xs/src/qhull/html/qhull.txt b/src/qhull/html/qhull.txt index 03753547e..03753547e 100644 --- a/xs/src/qhull/html/qhull.txt +++ b/src/qhull/html/qhull.txt diff --git a/xs/src/qhull/html/qvoron_f.htm b/src/qhull/html/qvoron_f.htm index db538b5ab..db538b5ab 100644 --- a/xs/src/qhull/html/qvoron_f.htm +++ b/src/qhull/html/qvoron_f.htm diff --git a/xs/src/qhull/html/qvoronoi.htm b/src/qhull/html/qvoronoi.htm index 6d81d48c1..6d81d48c1 100644 --- a/xs/src/qhull/html/qvoronoi.htm +++ b/src/qhull/html/qvoronoi.htm diff --git a/xs/src/qhull/html/rbox.htm b/src/qhull/html/rbox.htm index 9c28face5..9c28face5 100644 --- a/xs/src/qhull/html/rbox.htm +++ b/src/qhull/html/rbox.htm diff --git a/xs/src/qhull/html/rbox.man b/src/qhull/html/rbox.man index 3ea6395e6..3ea6395e6 100644 --- a/xs/src/qhull/html/rbox.man +++ b/src/qhull/html/rbox.man diff --git a/xs/src/qhull/html/rbox.txt b/src/qhull/html/rbox.txt index e3cf72189..e3cf72189 100644 --- a/xs/src/qhull/html/rbox.txt +++ b/src/qhull/html/rbox.txt diff --git a/xs/src/qhull/index.htm b/src/qhull/index.htm index 4ea7806c9..4ea7806c9 100644 --- a/xs/src/qhull/index.htm +++ b/src/qhull/index.htm diff --git a/xs/src/qhull/origCMakeLists.txt b/src/qhull/origCMakeLists.txt index 1034d1dea..1034d1dea 100644 --- a/xs/src/qhull/origCMakeLists.txt +++ b/src/qhull/origCMakeLists.txt diff --git a/xs/src/qhull/src/Changes.txt b/src/qhull/src/Changes.txt index 2dbf41e39..2dbf41e39 100644 --- a/xs/src/qhull/src/Changes.txt +++ b/src/qhull/src/Changes.txt diff --git a/xs/src/qhull/src/libqhull/DEPRECATED.txt b/src/qhull/src/libqhull/DEPRECATED.txt index 617275c14..617275c14 100644 --- a/xs/src/qhull/src/libqhull/DEPRECATED.txt +++ b/src/qhull/src/libqhull/DEPRECATED.txt diff --git a/xs/src/qhull/src/libqhull/Makefile b/src/qhull/src/libqhull/Makefile index bcad65777..bcad65777 100644 --- a/xs/src/qhull/src/libqhull/Makefile +++ b/src/qhull/src/libqhull/Makefile diff --git a/xs/src/qhull/src/libqhull/Mborland b/src/qhull/src/libqhull/Mborland index 46d88dbd4..46d88dbd4 100644 --- a/xs/src/qhull/src/libqhull/Mborland +++ b/src/qhull/src/libqhull/Mborland diff --git a/xs/src/qhull/src/libqhull/geom.c b/src/qhull/src/libqhull/geom.c index 71444f05a..71444f05a 100644 --- a/xs/src/qhull/src/libqhull/geom.c +++ b/src/qhull/src/libqhull/geom.c diff --git a/xs/src/qhull/src/libqhull/geom.h b/src/qhull/src/libqhull/geom.h index 16ef48d2d..16ef48d2d 100644 --- a/xs/src/qhull/src/libqhull/geom.h +++ b/src/qhull/src/libqhull/geom.h diff --git a/xs/src/qhull/src/libqhull/geom2.c b/src/qhull/src/libqhull/geom2.c index 82ec4936e..82ec4936e 100644 --- a/xs/src/qhull/src/libqhull/geom2.c +++ b/src/qhull/src/libqhull/geom2.c diff --git a/xs/src/qhull/src/libqhull/global.c b/src/qhull/src/libqhull/global.c index 0328fea7b..0328fea7b 100644 --- a/xs/src/qhull/src/libqhull/global.c +++ b/src/qhull/src/libqhull/global.c diff --git a/xs/src/qhull/src/libqhull/index.htm b/src/qhull/src/libqhull/index.htm index 62b9d9970..62b9d9970 100644 --- a/xs/src/qhull/src/libqhull/index.htm +++ b/src/qhull/src/libqhull/index.htm diff --git a/xs/src/qhull/src/libqhull/io.c b/src/qhull/src/libqhull/io.c index 401987ec0..401987ec0 100644 --- a/xs/src/qhull/src/libqhull/io.c +++ b/src/qhull/src/libqhull/io.c diff --git a/xs/src/qhull/src/libqhull/io.h b/src/qhull/src/libqhull/io.h index eca0369d3..eca0369d3 100644 --- a/xs/src/qhull/src/libqhull/io.h +++ b/src/qhull/src/libqhull/io.h diff --git a/xs/src/qhull/src/libqhull/libqhull.c b/src/qhull/src/libqhull/libqhull.c index 7696a8a9f..7696a8a9f 100644 --- a/xs/src/qhull/src/libqhull/libqhull.c +++ b/src/qhull/src/libqhull/libqhull.c diff --git a/xs/src/qhull/src/libqhull/libqhull.h b/src/qhull/src/libqhull/libqhull.h index 677085808..677085808 100644 --- a/xs/src/qhull/src/libqhull/libqhull.h +++ b/src/qhull/src/libqhull/libqhull.h diff --git a/xs/src/qhull/src/libqhull/libqhull.pro b/src/qhull/src/libqhull/libqhull.pro index 18005da59..18005da59 100644 --- a/xs/src/qhull/src/libqhull/libqhull.pro +++ b/src/qhull/src/libqhull/libqhull.pro diff --git a/xs/src/qhull/src/libqhull/mem.c b/src/qhull/src/libqhull/mem.c index db72bb4e1..db72bb4e1 100644 --- a/xs/src/qhull/src/libqhull/mem.c +++ b/src/qhull/src/libqhull/mem.c diff --git a/xs/src/qhull/src/libqhull/mem.h b/src/qhull/src/libqhull/mem.h index 453f319df..453f319df 100644 --- a/xs/src/qhull/src/libqhull/mem.h +++ b/src/qhull/src/libqhull/mem.h diff --git a/xs/src/qhull/src/libqhull/merge.c b/src/qhull/src/libqhull/merge.c index 22104dc03..22104dc03 100644 --- a/xs/src/qhull/src/libqhull/merge.c +++ b/src/qhull/src/libqhull/merge.c diff --git a/xs/src/qhull/src/libqhull/merge.h b/src/qhull/src/libqhull/merge.h index 7f5ec3fb6..7f5ec3fb6 100644 --- a/xs/src/qhull/src/libqhull/merge.h +++ b/src/qhull/src/libqhull/merge.h diff --git a/xs/src/qhull/src/libqhull/poly.c b/src/qhull/src/libqhull/poly.c index b8db6a9ef..b8db6a9ef 100644 --- a/xs/src/qhull/src/libqhull/poly.c +++ b/src/qhull/src/libqhull/poly.c diff --git a/xs/src/qhull/src/libqhull/poly.h b/src/qhull/src/libqhull/poly.h index af8b42077..af8b42077 100644 --- a/xs/src/qhull/src/libqhull/poly.h +++ b/src/qhull/src/libqhull/poly.h diff --git a/xs/src/qhull/src/libqhull/poly2.c b/src/qhull/src/libqhull/poly2.c index de3e6ad0b..de3e6ad0b 100644 --- a/xs/src/qhull/src/libqhull/poly2.c +++ b/src/qhull/src/libqhull/poly2.c diff --git a/xs/src/qhull/src/libqhull/qh-geom.htm b/src/qhull/src/libqhull/qh-geom.htm index 6dc7465eb..6dc7465eb 100644 --- a/xs/src/qhull/src/libqhull/qh-geom.htm +++ b/src/qhull/src/libqhull/qh-geom.htm diff --git a/xs/src/qhull/src/libqhull/qh-globa.htm b/src/qhull/src/libqhull/qh-globa.htm index c87508b66..c87508b66 100644 --- a/xs/src/qhull/src/libqhull/qh-globa.htm +++ b/src/qhull/src/libqhull/qh-globa.htm diff --git a/xs/src/qhull/src/libqhull/qh-io.htm b/src/qhull/src/libqhull/qh-io.htm index 5cb591d87..5cb591d87 100644 --- a/xs/src/qhull/src/libqhull/qh-io.htm +++ b/src/qhull/src/libqhull/qh-io.htm diff --git a/xs/src/qhull/src/libqhull/qh-mem.htm b/src/qhull/src/libqhull/qh-mem.htm index b993b2229..b993b2229 100644 --- a/xs/src/qhull/src/libqhull/qh-mem.htm +++ b/src/qhull/src/libqhull/qh-mem.htm diff --git a/xs/src/qhull/src/libqhull/qh-merge.htm b/src/qhull/src/libqhull/qh-merge.htm index 54b97c88e..54b97c88e 100644 --- a/xs/src/qhull/src/libqhull/qh-merge.htm +++ b/src/qhull/src/libqhull/qh-merge.htm diff --git a/xs/src/qhull/src/libqhull/qh-poly.htm b/src/qhull/src/libqhull/qh-poly.htm index c8f6b38b0..c8f6b38b0 100644 --- a/xs/src/qhull/src/libqhull/qh-poly.htm +++ b/src/qhull/src/libqhull/qh-poly.htm diff --git a/xs/src/qhull/src/libqhull/qh-qhull.htm b/src/qhull/src/libqhull/qh-qhull.htm index 5212c6422..5212c6422 100644 --- a/xs/src/qhull/src/libqhull/qh-qhull.htm +++ b/src/qhull/src/libqhull/qh-qhull.htm diff --git a/xs/src/qhull/src/libqhull/qh-set.htm b/src/qhull/src/libqhull/qh-set.htm index 06e71bbc9..06e71bbc9 100644 --- a/xs/src/qhull/src/libqhull/qh-set.htm +++ b/src/qhull/src/libqhull/qh-set.htm diff --git a/xs/src/qhull/src/libqhull/qh-stat.htm b/src/qhull/src/libqhull/qh-stat.htm index b96854031..b96854031 100644 --- a/xs/src/qhull/src/libqhull/qh-stat.htm +++ b/src/qhull/src/libqhull/qh-stat.htm diff --git a/xs/src/qhull/src/libqhull/qh-user.htm b/src/qhull/src/libqhull/qh-user.htm index 6682f4b2f..6682f4b2f 100644 --- a/xs/src/qhull/src/libqhull/qh-user.htm +++ b/src/qhull/src/libqhull/qh-user.htm diff --git a/xs/src/qhull/src/libqhull/qhull-exports.def b/src/qhull/src/libqhull/qhull-exports.def index 11a42b57e..11a42b57e 100644 --- a/xs/src/qhull/src/libqhull/qhull-exports.def +++ b/src/qhull/src/libqhull/qhull-exports.def diff --git a/xs/src/qhull/src/libqhull/qhull_a.h b/src/qhull/src/libqhull/qhull_a.h index 729b72327..729b72327 100644 --- a/xs/src/qhull/src/libqhull/qhull_a.h +++ b/src/qhull/src/libqhull/qhull_a.h diff --git a/xs/src/qhull/src/libqhull/qhull_p-exports.def b/src/qhull/src/libqhull/qhull_p-exports.def index cadf8a4fa..cadf8a4fa 100644 --- a/xs/src/qhull/src/libqhull/qhull_p-exports.def +++ b/src/qhull/src/libqhull/qhull_p-exports.def diff --git a/xs/src/qhull/src/libqhull/qset.c b/src/qhull/src/libqhull/qset.c index a969252a7..a969252a7 100644 --- a/xs/src/qhull/src/libqhull/qset.c +++ b/src/qhull/src/libqhull/qset.c diff --git a/xs/src/qhull/src/libqhull/qset.h b/src/qhull/src/libqhull/qset.h index 7e4e7d14f..7e4e7d14f 100644 --- a/xs/src/qhull/src/libqhull/qset.h +++ b/src/qhull/src/libqhull/qset.h diff --git a/xs/src/qhull/src/libqhull/random.c b/src/qhull/src/libqhull/random.c index 176d697ae..176d697ae 100644 --- a/xs/src/qhull/src/libqhull/random.c +++ b/src/qhull/src/libqhull/random.c diff --git a/xs/src/qhull/src/libqhull/random.h b/src/qhull/src/libqhull/random.h index 0c6896b76..0c6896b76 100644 --- a/xs/src/qhull/src/libqhull/random.h +++ b/src/qhull/src/libqhull/random.h diff --git a/xs/src/qhull/src/libqhull/rboxlib.c b/src/qhull/src/libqhull/rboxlib.c index f945133fa..f945133fa 100644 --- a/xs/src/qhull/src/libqhull/rboxlib.c +++ b/src/qhull/src/libqhull/rboxlib.c diff --git a/xs/src/qhull/src/libqhull/stat.c b/src/qhull/src/libqhull/stat.c index 70196bbb0..70196bbb0 100644 --- a/xs/src/qhull/src/libqhull/stat.c +++ b/src/qhull/src/libqhull/stat.c diff --git a/xs/src/qhull/src/libqhull/stat.h b/src/qhull/src/libqhull/stat.h index d86fc0a87..d86fc0a87 100644 --- a/xs/src/qhull/src/libqhull/stat.h +++ b/src/qhull/src/libqhull/stat.h diff --git a/xs/src/qhull/src/libqhull/user.c b/src/qhull/src/libqhull/user.c index d4726eaa3..d4726eaa3 100644 --- a/xs/src/qhull/src/libqhull/user.c +++ b/src/qhull/src/libqhull/user.c diff --git a/xs/src/qhull/src/libqhull/user.h b/src/qhull/src/libqhull/user.h index 523aa7b4e..523aa7b4e 100644 --- a/xs/src/qhull/src/libqhull/user.h +++ b/src/qhull/src/libqhull/user.h diff --git a/xs/src/qhull/src/libqhull/usermem.c b/src/qhull/src/libqhull/usermem.c index 0e99e8f66..0e99e8f66 100644 --- a/xs/src/qhull/src/libqhull/usermem.c +++ b/src/qhull/src/libqhull/usermem.c diff --git a/xs/src/qhull/src/libqhull/userprintf.c b/src/qhull/src/libqhull/userprintf.c index 190d7cd79..190d7cd79 100644 --- a/xs/src/qhull/src/libqhull/userprintf.c +++ b/src/qhull/src/libqhull/userprintf.c diff --git a/xs/src/qhull/src/libqhull/userprintf_rbox.c b/src/qhull/src/libqhull/userprintf_rbox.c index 8edd2001a..8edd2001a 100644 --- a/xs/src/qhull/src/libqhull/userprintf_rbox.c +++ b/src/qhull/src/libqhull/userprintf_rbox.c diff --git a/xs/src/qhull/src/libqhull_r/Makefile b/src/qhull/src/libqhull_r/Makefile index 5c40969e0..5c40969e0 100644 --- a/xs/src/qhull/src/libqhull_r/Makefile +++ b/src/qhull/src/libqhull_r/Makefile diff --git a/xs/src/qhull/src/libqhull_r/geom2_r.c b/src/qhull/src/libqhull_r/geom2_r.c index 48addba1c..48addba1c 100644 --- a/xs/src/qhull/src/libqhull_r/geom2_r.c +++ b/src/qhull/src/libqhull_r/geom2_r.c diff --git a/xs/src/qhull/src/libqhull_r/geom_r.c b/src/qhull/src/libqhull_r/geom_r.c index 8104813ca..8104813ca 100644 --- a/xs/src/qhull/src/libqhull_r/geom_r.c +++ b/src/qhull/src/libqhull_r/geom_r.c diff --git a/xs/src/qhull/src/libqhull_r/geom_r.h b/src/qhull/src/libqhull_r/geom_r.h index d73e95345..d73e95345 100644 --- a/xs/src/qhull/src/libqhull_r/geom_r.h +++ b/src/qhull/src/libqhull_r/geom_r.h diff --git a/xs/src/qhull/src/libqhull_r/global_r.c b/src/qhull/src/libqhull_r/global_r.c index eef465ca1..eef465ca1 100644 --- a/xs/src/qhull/src/libqhull_r/global_r.c +++ b/src/qhull/src/libqhull_r/global_r.c diff --git a/xs/src/qhull/src/libqhull_r/index.htm b/src/qhull/src/libqhull_r/index.htm index c62030e06..c62030e06 100644 --- a/xs/src/qhull/src/libqhull_r/index.htm +++ b/src/qhull/src/libqhull_r/index.htm diff --git a/xs/src/qhull/src/libqhull_r/io_r.c b/src/qhull/src/libqhull_r/io_r.c index 9721a000d..9721a000d 100644 --- a/xs/src/qhull/src/libqhull_r/io_r.c +++ b/src/qhull/src/libqhull_r/io_r.c diff --git a/xs/src/qhull/src/libqhull_r/io_r.h b/src/qhull/src/libqhull_r/io_r.h index 12e05ae7a..12e05ae7a 100644 --- a/xs/src/qhull/src/libqhull_r/io_r.h +++ b/src/qhull/src/libqhull_r/io_r.h diff --git a/xs/src/qhull/src/libqhull_r/libqhull_r.c b/src/qhull/src/libqhull_r/libqhull_r.c index 0fe0c980d..0fe0c980d 100644 --- a/xs/src/qhull/src/libqhull_r/libqhull_r.c +++ b/src/qhull/src/libqhull_r/libqhull_r.c diff --git a/xs/src/qhull/src/libqhull_r/libqhull_r.h b/src/qhull/src/libqhull_r/libqhull_r.h index 363e6da6a..363e6da6a 100644 --- a/xs/src/qhull/src/libqhull_r/libqhull_r.h +++ b/src/qhull/src/libqhull_r/libqhull_r.h diff --git a/xs/src/qhull/src/libqhull_r/libqhull_r.pro b/src/qhull/src/libqhull_r/libqhull_r.pro index 6b8db44b7..6b8db44b7 100644 --- a/xs/src/qhull/src/libqhull_r/libqhull_r.pro +++ b/src/qhull/src/libqhull_r/libqhull_r.pro diff --git a/xs/src/qhull/src/libqhull_r/mem_r.c b/src/qhull/src/libqhull_r/mem_r.c index 801a8c76a..801a8c76a 100644 --- a/xs/src/qhull/src/libqhull_r/mem_r.c +++ b/src/qhull/src/libqhull_r/mem_r.c diff --git a/xs/src/qhull/src/libqhull_r/mem_r.h b/src/qhull/src/libqhull_r/mem_r.h index 25b551333..25b551333 100644 --- a/xs/src/qhull/src/libqhull_r/mem_r.h +++ b/src/qhull/src/libqhull_r/mem_r.h diff --git a/xs/src/qhull/src/libqhull_r/merge_r.c b/src/qhull/src/libqhull_r/merge_r.c index e5823de8d..e5823de8d 100644 --- a/xs/src/qhull/src/libqhull_r/merge_r.c +++ b/src/qhull/src/libqhull_r/merge_r.c diff --git a/xs/src/qhull/src/libqhull_r/merge_r.h b/src/qhull/src/libqhull_r/merge_r.h index 30a51815d..30a51815d 100644 --- a/xs/src/qhull/src/libqhull_r/merge_r.h +++ b/src/qhull/src/libqhull_r/merge_r.h diff --git a/xs/src/qhull/src/libqhull_r/poly2_r.c b/src/qhull/src/libqhull_r/poly2_r.c index b8ae9af9f..b8ae9af9f 100644 --- a/xs/src/qhull/src/libqhull_r/poly2_r.c +++ b/src/qhull/src/libqhull_r/poly2_r.c diff --git a/xs/src/qhull/src/libqhull_r/poly_r.c b/src/qhull/src/libqhull_r/poly_r.c index e5b479743..e5b479743 100644 --- a/xs/src/qhull/src/libqhull_r/poly_r.c +++ b/src/qhull/src/libqhull_r/poly_r.c diff --git a/xs/src/qhull/src/libqhull_r/poly_r.h b/src/qhull/src/libqhull_r/poly_r.h index c71511bd6..c71511bd6 100644 --- a/xs/src/qhull/src/libqhull_r/poly_r.h +++ b/src/qhull/src/libqhull_r/poly_r.h diff --git a/xs/src/qhull/src/libqhull_r/qh-geom_r.htm b/src/qhull/src/libqhull_r/qh-geom_r.htm index eeefc0c75..eeefc0c75 100644 --- a/xs/src/qhull/src/libqhull_r/qh-geom_r.htm +++ b/src/qhull/src/libqhull_r/qh-geom_r.htm diff --git a/xs/src/qhull/src/libqhull_r/qh-globa_r.htm b/src/qhull/src/libqhull_r/qh-globa_r.htm index 45437a059..45437a059 100644 --- a/xs/src/qhull/src/libqhull_r/qh-globa_r.htm +++ b/src/qhull/src/libqhull_r/qh-globa_r.htm diff --git a/xs/src/qhull/src/libqhull_r/qh-io_r.htm b/src/qhull/src/libqhull_r/qh-io_r.htm index 8a8a96300..8a8a96300 100644 --- a/xs/src/qhull/src/libqhull_r/qh-io_r.htm +++ b/src/qhull/src/libqhull_r/qh-io_r.htm diff --git a/xs/src/qhull/src/libqhull_r/qh-mem_r.htm b/src/qhull/src/libqhull_r/qh-mem_r.htm index db59119cb..db59119cb 100644 --- a/xs/src/qhull/src/libqhull_r/qh-mem_r.htm +++ b/src/qhull/src/libqhull_r/qh-mem_r.htm diff --git a/xs/src/qhull/src/libqhull_r/qh-merge_r.htm b/src/qhull/src/libqhull_r/qh-merge_r.htm index 63e5135be..63e5135be 100644 --- a/xs/src/qhull/src/libqhull_r/qh-merge_r.htm +++ b/src/qhull/src/libqhull_r/qh-merge_r.htm diff --git a/xs/src/qhull/src/libqhull_r/qh-poly_r.htm b/src/qhull/src/libqhull_r/qh-poly_r.htm index c5b6f2f83..c5b6f2f83 100644 --- a/xs/src/qhull/src/libqhull_r/qh-poly_r.htm +++ b/src/qhull/src/libqhull_r/qh-poly_r.htm diff --git a/xs/src/qhull/src/libqhull_r/qh-qhull_r.htm b/src/qhull/src/libqhull_r/qh-qhull_r.htm index 25d5e4972..25d5e4972 100644 --- a/xs/src/qhull/src/libqhull_r/qh-qhull_r.htm +++ b/src/qhull/src/libqhull_r/qh-qhull_r.htm diff --git a/xs/src/qhull/src/libqhull_r/qh-set_r.htm b/src/qhull/src/libqhull_r/qh-set_r.htm index cf8ab63af..cf8ab63af 100644 --- a/xs/src/qhull/src/libqhull_r/qh-set_r.htm +++ b/src/qhull/src/libqhull_r/qh-set_r.htm diff --git a/xs/src/qhull/src/libqhull_r/qh-stat_r.htm b/src/qhull/src/libqhull_r/qh-stat_r.htm index ea9d7fc56..ea9d7fc56 100644 --- a/xs/src/qhull/src/libqhull_r/qh-stat_r.htm +++ b/src/qhull/src/libqhull_r/qh-stat_r.htm diff --git a/xs/src/qhull/src/libqhull_r/qh-user_r.htm b/src/qhull/src/libqhull_r/qh-user_r.htm index 909fec656..909fec656 100644 --- a/xs/src/qhull/src/libqhull_r/qh-user_r.htm +++ b/src/qhull/src/libqhull_r/qh-user_r.htm diff --git a/xs/src/qhull/src/libqhull_r/qhull_r-exports.def b/src/qhull/src/libqhull_r/qhull_r-exports.def index 325d57c3b..325d57c3b 100644 --- a/xs/src/qhull/src/libqhull_r/qhull_r-exports.def +++ b/src/qhull/src/libqhull_r/qhull_r-exports.def diff --git a/xs/src/qhull/src/libqhull_r/qhull_ra.h b/src/qhull/src/libqhull_r/qhull_ra.h index 5c5bd8779..5c5bd8779 100644 --- a/xs/src/qhull/src/libqhull_r/qhull_ra.h +++ b/src/qhull/src/libqhull_r/qhull_ra.h diff --git a/xs/src/qhull/src/libqhull_r/qset_r.c b/src/qhull/src/libqhull_r/qset_r.c index 15cd3c0e2..15cd3c0e2 100644 --- a/xs/src/qhull/src/libqhull_r/qset_r.c +++ b/src/qhull/src/libqhull_r/qset_r.c diff --git a/xs/src/qhull/src/libqhull_r/qset_r.h b/src/qhull/src/libqhull_r/qset_r.h index 7ba199d6f..7ba199d6f 100644 --- a/xs/src/qhull/src/libqhull_r/qset_r.h +++ b/src/qhull/src/libqhull_r/qset_r.h diff --git a/xs/src/qhull/src/libqhull_r/random_r.c b/src/qhull/src/libqhull_r/random_r.c index 1fefb51c3..1fefb51c3 100644 --- a/xs/src/qhull/src/libqhull_r/random_r.c +++ b/src/qhull/src/libqhull_r/random_r.c diff --git a/xs/src/qhull/src/libqhull_r/random_r.h b/src/qhull/src/libqhull_r/random_r.h index dc884b33c..dc884b33c 100644 --- a/xs/src/qhull/src/libqhull_r/random_r.h +++ b/src/qhull/src/libqhull_r/random_r.h diff --git a/xs/src/qhull/src/libqhull_r/rboxlib_r.c b/src/qhull/src/libqhull_r/rboxlib_r.c index 6c0c7e35e..6c0c7e35e 100644 --- a/xs/src/qhull/src/libqhull_r/rboxlib_r.c +++ b/src/qhull/src/libqhull_r/rboxlib_r.c diff --git a/xs/src/qhull/src/libqhull_r/stat_r.c b/src/qhull/src/libqhull_r/stat_r.c index 0f3ff0d3d..0f3ff0d3d 100644 --- a/xs/src/qhull/src/libqhull_r/stat_r.c +++ b/src/qhull/src/libqhull_r/stat_r.c diff --git a/xs/src/qhull/src/libqhull_r/stat_r.h b/src/qhull/src/libqhull_r/stat_r.h index 75e7d1057..75e7d1057 100644 --- a/xs/src/qhull/src/libqhull_r/stat_r.h +++ b/src/qhull/src/libqhull_r/stat_r.h diff --git a/xs/src/qhull/src/libqhull_r/user_r.c b/src/qhull/src/libqhull_r/user_r.c index bf7ed1d8d..bf7ed1d8d 100644 --- a/xs/src/qhull/src/libqhull_r/user_r.c +++ b/src/qhull/src/libqhull_r/user_r.c diff --git a/xs/src/qhull/src/libqhull_r/user_r.h b/src/qhull/src/libqhull_r/user_r.h index 7cca65a80..7cca65a80 100644 --- a/xs/src/qhull/src/libqhull_r/user_r.h +++ b/src/qhull/src/libqhull_r/user_r.h diff --git a/xs/src/qhull/src/libqhull_r/usermem_r.c b/src/qhull/src/libqhull_r/usermem_r.c index 3297b0318..3297b0318 100644 --- a/xs/src/qhull/src/libqhull_r/usermem_r.c +++ b/src/qhull/src/libqhull_r/usermem_r.c diff --git a/xs/src/qhull/src/libqhull_r/userprintf_r.c b/src/qhull/src/libqhull_r/userprintf_r.c index 6004491a1..6004491a1 100644 --- a/xs/src/qhull/src/libqhull_r/userprintf_r.c +++ b/src/qhull/src/libqhull_r/userprintf_r.c diff --git a/xs/src/qhull/src/libqhull_r/userprintf_rbox_r.c b/src/qhull/src/libqhull_r/userprintf_rbox_r.c index 1e721a22a..1e721a22a 100644 --- a/xs/src/qhull/src/libqhull_r/userprintf_rbox_r.c +++ b/src/qhull/src/libqhull_r/userprintf_rbox_r.c diff --git a/xs/src/qhull/src/libqhullcpp/Coordinates.cpp b/src/qhull/src/libqhullcpp/Coordinates.cpp index 806b438ab..806b438ab 100644 --- a/xs/src/qhull/src/libqhullcpp/Coordinates.cpp +++ b/src/qhull/src/libqhullcpp/Coordinates.cpp diff --git a/xs/src/qhull/src/libqhullcpp/Coordinates.h b/src/qhull/src/libqhullcpp/Coordinates.h index df8bd1138..df8bd1138 100644 --- a/xs/src/qhull/src/libqhullcpp/Coordinates.h +++ b/src/qhull/src/libqhullcpp/Coordinates.h diff --git a/xs/src/qhull/src/libqhullcpp/PointCoordinates.cpp b/src/qhull/src/libqhullcpp/PointCoordinates.cpp index a5b71e901..a5b71e901 100644 --- a/xs/src/qhull/src/libqhullcpp/PointCoordinates.cpp +++ b/src/qhull/src/libqhullcpp/PointCoordinates.cpp diff --git a/xs/src/qhull/src/libqhullcpp/PointCoordinates.h b/src/qhull/src/libqhullcpp/PointCoordinates.h index 4c63cdfca..4c63cdfca 100644 --- a/xs/src/qhull/src/libqhullcpp/PointCoordinates.h +++ b/src/qhull/src/libqhullcpp/PointCoordinates.h diff --git a/xs/src/qhull/src/libqhullcpp/Qhull.cpp b/src/qhull/src/libqhullcpp/Qhull.cpp index 7124a15cd..7124a15cd 100644 --- a/xs/src/qhull/src/libqhullcpp/Qhull.cpp +++ b/src/qhull/src/libqhullcpp/Qhull.cpp diff --git a/xs/src/qhull/src/libqhullcpp/Qhull.h b/src/qhull/src/libqhullcpp/Qhull.h index e3ad9d8e1..e3ad9d8e1 100644 --- a/xs/src/qhull/src/libqhullcpp/Qhull.h +++ b/src/qhull/src/libqhullcpp/Qhull.h diff --git a/xs/src/qhull/src/libqhullcpp/QhullError.h b/src/qhull/src/libqhullcpp/QhullError.h index 08d50aa0f..08d50aa0f 100644 --- a/xs/src/qhull/src/libqhullcpp/QhullError.h +++ b/src/qhull/src/libqhullcpp/QhullError.h diff --git a/xs/src/qhull/src/libqhullcpp/QhullFacet.cpp b/src/qhull/src/libqhullcpp/QhullFacet.cpp index 40d3828a4..40d3828a4 100644 --- a/xs/src/qhull/src/libqhullcpp/QhullFacet.cpp +++ b/src/qhull/src/libqhullcpp/QhullFacet.cpp diff --git a/xs/src/qhull/src/libqhullcpp/QhullFacet.h b/src/qhull/src/libqhullcpp/QhullFacet.h index ae4f008fd..ae4f008fd 100644 --- a/xs/src/qhull/src/libqhullcpp/QhullFacet.h +++ b/src/qhull/src/libqhullcpp/QhullFacet.h diff --git a/xs/src/qhull/src/libqhullcpp/QhullFacetList.cpp b/src/qhull/src/libqhullcpp/QhullFacetList.cpp index 9e6ddfe9e..9e6ddfe9e 100644 --- a/xs/src/qhull/src/libqhullcpp/QhullFacetList.cpp +++ b/src/qhull/src/libqhullcpp/QhullFacetList.cpp diff --git a/xs/src/qhull/src/libqhullcpp/QhullFacetList.h b/src/qhull/src/libqhullcpp/QhullFacetList.h index e61e56840..e61e56840 100644 --- a/xs/src/qhull/src/libqhullcpp/QhullFacetList.h +++ b/src/qhull/src/libqhullcpp/QhullFacetList.h diff --git a/xs/src/qhull/src/libqhullcpp/QhullFacetSet.cpp b/src/qhull/src/libqhullcpp/QhullFacetSet.cpp index d30c21e26..d30c21e26 100644 --- a/xs/src/qhull/src/libqhullcpp/QhullFacetSet.cpp +++ b/src/qhull/src/libqhullcpp/QhullFacetSet.cpp diff --git a/xs/src/qhull/src/libqhullcpp/QhullFacetSet.h b/src/qhull/src/libqhullcpp/QhullFacetSet.h index ee3208559..ee3208559 100644 --- a/xs/src/qhull/src/libqhullcpp/QhullFacetSet.h +++ b/src/qhull/src/libqhullcpp/QhullFacetSet.h diff --git a/xs/src/qhull/src/libqhullcpp/QhullHyperplane.cpp b/src/qhull/src/libqhullcpp/QhullHyperplane.cpp index ed5cc4bae..ed5cc4bae 100644 --- a/xs/src/qhull/src/libqhullcpp/QhullHyperplane.cpp +++ b/src/qhull/src/libqhullcpp/QhullHyperplane.cpp diff --git a/xs/src/qhull/src/libqhullcpp/QhullHyperplane.h b/src/qhull/src/libqhullcpp/QhullHyperplane.h index 2868ce5c9..2868ce5c9 100644 --- a/xs/src/qhull/src/libqhullcpp/QhullHyperplane.h +++ b/src/qhull/src/libqhullcpp/QhullHyperplane.h diff --git a/xs/src/qhull/src/libqhullcpp/QhullIterator.h b/src/qhull/src/libqhullcpp/QhullIterator.h index ec60496bf..ec60496bf 100644 --- a/xs/src/qhull/src/libqhullcpp/QhullIterator.h +++ b/src/qhull/src/libqhullcpp/QhullIterator.h diff --git a/xs/src/qhull/src/libqhullcpp/QhullLinkedList.h b/src/qhull/src/libqhullcpp/QhullLinkedList.h index d4caf52c1..d4caf52c1 100644 --- a/xs/src/qhull/src/libqhullcpp/QhullLinkedList.h +++ b/src/qhull/src/libqhullcpp/QhullLinkedList.h diff --git a/xs/src/qhull/src/libqhullcpp/QhullPoint.cpp b/src/qhull/src/libqhullcpp/QhullPoint.cpp index f5e912460..f5e912460 100644 --- a/xs/src/qhull/src/libqhullcpp/QhullPoint.cpp +++ b/src/qhull/src/libqhullcpp/QhullPoint.cpp diff --git a/xs/src/qhull/src/libqhullcpp/QhullPoint.h b/src/qhull/src/libqhullcpp/QhullPoint.h index 17f94ab36..17f94ab36 100644 --- a/xs/src/qhull/src/libqhullcpp/QhullPoint.h +++ b/src/qhull/src/libqhullcpp/QhullPoint.h diff --git a/xs/src/qhull/src/libqhullcpp/QhullPointSet.cpp b/src/qhull/src/libqhullcpp/QhullPointSet.cpp index 561fd6c76..561fd6c76 100644 --- a/xs/src/qhull/src/libqhullcpp/QhullPointSet.cpp +++ b/src/qhull/src/libqhullcpp/QhullPointSet.cpp diff --git a/xs/src/qhull/src/libqhullcpp/QhullPointSet.h b/src/qhull/src/libqhullcpp/QhullPointSet.h index 8562e170e..8562e170e 100644 --- a/xs/src/qhull/src/libqhullcpp/QhullPointSet.h +++ b/src/qhull/src/libqhullcpp/QhullPointSet.h diff --git a/xs/src/qhull/src/libqhullcpp/QhullPoints.cpp b/src/qhull/src/libqhullcpp/QhullPoints.cpp index 2320b5007..2320b5007 100644 --- a/xs/src/qhull/src/libqhullcpp/QhullPoints.cpp +++ b/src/qhull/src/libqhullcpp/QhullPoints.cpp diff --git a/xs/src/qhull/src/libqhullcpp/QhullPoints.h b/src/qhull/src/libqhullcpp/QhullPoints.h index ce169a159..ce169a159 100644 --- a/xs/src/qhull/src/libqhullcpp/QhullPoints.h +++ b/src/qhull/src/libqhullcpp/QhullPoints.h diff --git a/xs/src/qhull/src/libqhullcpp/QhullQh.cpp b/src/qhull/src/libqhullcpp/QhullQh.cpp index 363533700..363533700 100644 --- a/xs/src/qhull/src/libqhullcpp/QhullQh.cpp +++ b/src/qhull/src/libqhullcpp/QhullQh.cpp diff --git a/xs/src/qhull/src/libqhullcpp/QhullQh.h b/src/qhull/src/libqhullcpp/QhullQh.h index c3b277ff0..c3b277ff0 100644 --- a/xs/src/qhull/src/libqhullcpp/QhullQh.h +++ b/src/qhull/src/libqhullcpp/QhullQh.h diff --git a/xs/src/qhull/src/libqhullcpp/QhullRidge.cpp b/src/qhull/src/libqhullcpp/QhullRidge.cpp index 7a0181280..7a0181280 100644 --- a/xs/src/qhull/src/libqhullcpp/QhullRidge.cpp +++ b/src/qhull/src/libqhullcpp/QhullRidge.cpp diff --git a/xs/src/qhull/src/libqhullcpp/QhullRidge.h b/src/qhull/src/libqhullcpp/QhullRidge.h index 924340fb0..924340fb0 100644 --- a/xs/src/qhull/src/libqhullcpp/QhullRidge.h +++ b/src/qhull/src/libqhullcpp/QhullRidge.h diff --git a/xs/src/qhull/src/libqhullcpp/QhullSet.cpp b/src/qhull/src/libqhullcpp/QhullSet.cpp index dfdc3c51f..dfdc3c51f 100644 --- a/xs/src/qhull/src/libqhullcpp/QhullSet.cpp +++ b/src/qhull/src/libqhullcpp/QhullSet.cpp diff --git a/xs/src/qhull/src/libqhullcpp/QhullSet.h b/src/qhull/src/libqhullcpp/QhullSet.h index afb6b51d9..afb6b51d9 100644 --- a/xs/src/qhull/src/libqhullcpp/QhullSet.h +++ b/src/qhull/src/libqhullcpp/QhullSet.h diff --git a/xs/src/qhull/src/libqhullcpp/QhullSets.h b/src/qhull/src/libqhullcpp/QhullSets.h index d0f200cbc..d0f200cbc 100644 --- a/xs/src/qhull/src/libqhullcpp/QhullSets.h +++ b/src/qhull/src/libqhullcpp/QhullSets.h diff --git a/xs/src/qhull/src/libqhullcpp/QhullStat.cpp b/src/qhull/src/libqhullcpp/QhullStat.cpp index c4fe6c491..c4fe6c491 100644 --- a/xs/src/qhull/src/libqhullcpp/QhullStat.cpp +++ b/src/qhull/src/libqhullcpp/QhullStat.cpp diff --git a/xs/src/qhull/src/libqhullcpp/QhullStat.h b/src/qhull/src/libqhullcpp/QhullStat.h index 54bde8fc7..54bde8fc7 100644 --- a/xs/src/qhull/src/libqhullcpp/QhullStat.h +++ b/src/qhull/src/libqhullcpp/QhullStat.h diff --git a/xs/src/qhull/src/libqhullcpp/QhullVertex.cpp b/src/qhull/src/libqhullcpp/QhullVertex.cpp index fd7aef089..fd7aef089 100644 --- a/xs/src/qhull/src/libqhullcpp/QhullVertex.cpp +++ b/src/qhull/src/libqhullcpp/QhullVertex.cpp diff --git a/xs/src/qhull/src/libqhullcpp/QhullVertex.h b/src/qhull/src/libqhullcpp/QhullVertex.h index 0137766db..0137766db 100644 --- a/xs/src/qhull/src/libqhullcpp/QhullVertex.h +++ b/src/qhull/src/libqhullcpp/QhullVertex.h diff --git a/xs/src/qhull/src/libqhullcpp/QhullVertexSet.cpp b/src/qhull/src/libqhullcpp/QhullVertexSet.cpp index 00ba62d19..00ba62d19 100644 --- a/xs/src/qhull/src/libqhullcpp/QhullVertexSet.cpp +++ b/src/qhull/src/libqhullcpp/QhullVertexSet.cpp diff --git a/xs/src/qhull/src/libqhullcpp/QhullVertexSet.h b/src/qhull/src/libqhullcpp/QhullVertexSet.h index a3a11c124..a3a11c124 100644 --- a/xs/src/qhull/src/libqhullcpp/QhullVertexSet.h +++ b/src/qhull/src/libqhullcpp/QhullVertexSet.h diff --git a/xs/src/qhull/src/libqhullcpp/RboxPoints.cpp b/src/qhull/src/libqhullcpp/RboxPoints.cpp index d7acd9fce..d7acd9fce 100644 --- a/xs/src/qhull/src/libqhullcpp/RboxPoints.cpp +++ b/src/qhull/src/libqhullcpp/RboxPoints.cpp diff --git a/xs/src/qhull/src/libqhullcpp/RboxPoints.h b/src/qhull/src/libqhullcpp/RboxPoints.h index e8ec72b14..e8ec72b14 100644 --- a/xs/src/qhull/src/libqhullcpp/RboxPoints.h +++ b/src/qhull/src/libqhullcpp/RboxPoints.h diff --git a/xs/src/qhull/src/libqhullcpp/RoadError.cpp b/src/qhull/src/libqhullcpp/RoadError.cpp index 1d41ec1bc..1d41ec1bc 100644 --- a/xs/src/qhull/src/libqhullcpp/RoadError.cpp +++ b/src/qhull/src/libqhullcpp/RoadError.cpp diff --git a/xs/src/qhull/src/libqhullcpp/RoadError.h b/src/qhull/src/libqhullcpp/RoadError.h index 1c9f6cdd5..1c9f6cdd5 100644 --- a/xs/src/qhull/src/libqhullcpp/RoadError.h +++ b/src/qhull/src/libqhullcpp/RoadError.h diff --git a/xs/src/qhull/src/libqhullcpp/RoadLogEvent.cpp b/src/qhull/src/libqhullcpp/RoadLogEvent.cpp index 9a9cf5960..9a9cf5960 100644 --- a/xs/src/qhull/src/libqhullcpp/RoadLogEvent.cpp +++ b/src/qhull/src/libqhullcpp/RoadLogEvent.cpp diff --git a/xs/src/qhull/src/libqhullcpp/RoadLogEvent.h b/src/qhull/src/libqhullcpp/RoadLogEvent.h index 7c4cfba0d..7c4cfba0d 100644 --- a/xs/src/qhull/src/libqhullcpp/RoadLogEvent.h +++ b/src/qhull/src/libqhullcpp/RoadLogEvent.h diff --git a/xs/src/qhull/src/libqhullcpp/functionObjects.h b/src/qhull/src/libqhullcpp/functionObjects.h index 3645c0713..3645c0713 100644 --- a/xs/src/qhull/src/libqhullcpp/functionObjects.h +++ b/src/qhull/src/libqhullcpp/functionObjects.h diff --git a/xs/src/qhull/src/libqhullcpp/libqhullcpp.pro b/src/qhull/src/libqhullcpp/libqhullcpp.pro index 89b967bef..89b967bef 100644 --- a/xs/src/qhull/src/libqhullcpp/libqhullcpp.pro +++ b/src/qhull/src/libqhullcpp/libqhullcpp.pro diff --git a/xs/src/qhull/src/libqhullcpp/qt-qhull.cpp b/src/qhull/src/libqhullcpp/qt-qhull.cpp index 895f591a8..895f591a8 100644 --- a/xs/src/qhull/src/libqhullcpp/qt-qhull.cpp +++ b/src/qhull/src/libqhullcpp/qt-qhull.cpp diff --git a/xs/src/qhull/src/libqhullcpp/usermem_r-cpp.cpp b/src/qhull/src/libqhullcpp/usermem_r-cpp.cpp index bb9534d09..bb9534d09 100644 --- a/xs/src/qhull/src/libqhullcpp/usermem_r-cpp.cpp +++ b/src/qhull/src/libqhullcpp/usermem_r-cpp.cpp diff --git a/xs/src/qhull/src/libqhullstatic/libqhullstatic.pro b/src/qhull/src/libqhullstatic/libqhullstatic.pro index 1a516db73..1a516db73 100644 --- a/xs/src/qhull/src/libqhullstatic/libqhullstatic.pro +++ b/src/qhull/src/libqhullstatic/libqhullstatic.pro diff --git a/xs/src/qhull/src/libqhullstatic_r/libqhullstatic_r.pro b/src/qhull/src/libqhullstatic_r/libqhullstatic_r.pro index 2f5bf4d07..2f5bf4d07 100644 --- a/xs/src/qhull/src/libqhullstatic_r/libqhullstatic_r.pro +++ b/src/qhull/src/libqhullstatic_r/libqhullstatic_r.pro diff --git a/xs/src/qhull/src/qconvex/qconvex.c b/src/qhull/src/qconvex/qconvex.c index 41bd666da..41bd666da 100644 --- a/xs/src/qhull/src/qconvex/qconvex.c +++ b/src/qhull/src/qconvex/qconvex.c diff --git a/xs/src/qhull/src/qconvex/qconvex.pro b/src/qhull/src/qconvex/qconvex.pro index 1bf631bff..1bf631bff 100644 --- a/xs/src/qhull/src/qconvex/qconvex.pro +++ b/src/qhull/src/qconvex/qconvex.pro diff --git a/xs/src/qhull/src/qconvex/qconvex_r.c b/src/qhull/src/qconvex/qconvex_r.c index abf68ce37..abf68ce37 100644 --- a/xs/src/qhull/src/qconvex/qconvex_r.c +++ b/src/qhull/src/qconvex/qconvex_r.c diff --git a/xs/src/qhull/src/qdelaunay/qdelaun.c b/src/qhull/src/qdelaunay/qdelaun.c index 9011d9fcc..9011d9fcc 100644 --- a/xs/src/qhull/src/qdelaunay/qdelaun.c +++ b/src/qhull/src/qdelaunay/qdelaun.c diff --git a/xs/src/qhull/src/qdelaunay/qdelaun_r.c b/src/qhull/src/qdelaunay/qdelaun_r.c index 0854b8bb9..0854b8bb9 100644 --- a/xs/src/qhull/src/qdelaunay/qdelaun_r.c +++ b/src/qhull/src/qdelaunay/qdelaun_r.c diff --git a/xs/src/qhull/src/qdelaunay/qdelaunay.pro b/src/qhull/src/qdelaunay/qdelaunay.pro index 138ac0589..138ac0589 100644 --- a/xs/src/qhull/src/qdelaunay/qdelaunay.pro +++ b/src/qhull/src/qdelaunay/qdelaunay.pro diff --git a/xs/src/qhull/src/qhalf/qhalf.c b/src/qhull/src/qhalf/qhalf.c index 4a5889ed7..4a5889ed7 100644 --- a/xs/src/qhull/src/qhalf/qhalf.c +++ b/src/qhull/src/qhalf/qhalf.c diff --git a/xs/src/qhull/src/qhalf/qhalf.pro b/src/qhull/src/qhalf/qhalf.pro index ebad38789..ebad38789 100644 --- a/xs/src/qhull/src/qhalf/qhalf.pro +++ b/src/qhull/src/qhalf/qhalf.pro diff --git a/xs/src/qhull/src/qhalf/qhalf_r.c b/src/qhull/src/qhalf/qhalf_r.c index c49d777f9..c49d777f9 100644 --- a/xs/src/qhull/src/qhalf/qhalf_r.c +++ b/src/qhull/src/qhalf/qhalf_r.c diff --git a/xs/src/qhull/src/qhull-all.pro b/src/qhull/src/qhull-all.pro index 1d3a0ac6f..1d3a0ac6f 100644 --- a/xs/src/qhull/src/qhull-all.pro +++ b/src/qhull/src/qhull-all.pro diff --git a/xs/src/qhull/src/qhull-app-c.pri b/src/qhull/src/qhull-app-c.pri index 05e5a00f2..05e5a00f2 100644 --- a/xs/src/qhull/src/qhull-app-c.pri +++ b/src/qhull/src/qhull-app-c.pri diff --git a/xs/src/qhull/src/qhull-app-c_r.pri b/src/qhull/src/qhull-app-c_r.pri index 9c2ef5600..9c2ef5600 100644 --- a/xs/src/qhull/src/qhull-app-c_r.pri +++ b/src/qhull/src/qhull-app-c_r.pri diff --git a/xs/src/qhull/src/qhull-app-cpp.pri b/src/qhull/src/qhull-app-cpp.pri index a6f17d8ec..a6f17d8ec 100644 --- a/xs/src/qhull/src/qhull-app-cpp.pri +++ b/src/qhull/src/qhull-app-cpp.pri diff --git a/xs/src/qhull/src/qhull-app-shared.pri b/src/qhull/src/qhull-app-shared.pri index 1f4026a6a..1f4026a6a 100644 --- a/xs/src/qhull/src/qhull-app-shared.pri +++ b/src/qhull/src/qhull-app-shared.pri diff --git a/xs/src/qhull/src/qhull-app-shared_r.pri b/src/qhull/src/qhull-app-shared_r.pri index e55c1a65f..e55c1a65f 100644 --- a/xs/src/qhull/src/qhull-app-shared_r.pri +++ b/src/qhull/src/qhull-app-shared_r.pri diff --git a/xs/src/qhull/src/qhull-libqhull-src.pri b/src/qhull/src/qhull-libqhull-src.pri index e7aff3f78..e7aff3f78 100644 --- a/xs/src/qhull/src/qhull-libqhull-src.pri +++ b/src/qhull/src/qhull-libqhull-src.pri diff --git a/xs/src/qhull/src/qhull-libqhull-src_r.pri b/src/qhull/src/qhull-libqhull-src_r.pri index 3b53291b1..3b53291b1 100644 --- a/xs/src/qhull/src/qhull-libqhull-src_r.pri +++ b/src/qhull/src/qhull-libqhull-src_r.pri diff --git a/xs/src/qhull/src/qhull-warn.pri b/src/qhull/src/qhull-warn.pri index 7d0e7fa2f..7d0e7fa2f 100644 --- a/xs/src/qhull/src/qhull-warn.pri +++ b/src/qhull/src/qhull-warn.pri diff --git a/xs/src/qhull/src/qhull/qhull.pro b/src/qhull/src/qhull/qhull.pro index 839372856..839372856 100644 --- a/xs/src/qhull/src/qhull/qhull.pro +++ b/src/qhull/src/qhull/qhull.pro diff --git a/xs/src/qhull/src/qhull/unix.c b/src/qhull/src/qhull/unix.c index 892a819c3..892a819c3 100644 --- a/xs/src/qhull/src/qhull/unix.c +++ b/src/qhull/src/qhull/unix.c diff --git a/xs/src/qhull/src/qhull/unix_r.c b/src/qhull/src/qhull/unix_r.c index 3f999f7fa..3f999f7fa 100644 --- a/xs/src/qhull/src/qhull/unix_r.c +++ b/src/qhull/src/qhull/unix_r.c diff --git a/xs/src/qhull/src/qhulltest/Coordinates_test.cpp b/src/qhull/src/qhulltest/Coordinates_test.cpp index 3e8658a5b..3e8658a5b 100644 --- a/xs/src/qhull/src/qhulltest/Coordinates_test.cpp +++ b/src/qhull/src/qhulltest/Coordinates_test.cpp diff --git a/xs/src/qhull/src/qhulltest/PointCoordinates_test.cpp b/src/qhull/src/qhulltest/PointCoordinates_test.cpp index 09285954d..09285954d 100644 --- a/xs/src/qhull/src/qhulltest/PointCoordinates_test.cpp +++ b/src/qhull/src/qhulltest/PointCoordinates_test.cpp diff --git a/xs/src/qhull/src/qhulltest/QhullFacetList_test.cpp b/src/qhull/src/qhulltest/QhullFacetList_test.cpp index 5a09d01da..5a09d01da 100644 --- a/xs/src/qhull/src/qhulltest/QhullFacetList_test.cpp +++ b/src/qhull/src/qhulltest/QhullFacetList_test.cpp diff --git a/xs/src/qhull/src/qhulltest/QhullFacetSet_test.cpp b/src/qhull/src/qhulltest/QhullFacetSet_test.cpp index a7fe123a2..a7fe123a2 100644 --- a/xs/src/qhull/src/qhulltest/QhullFacetSet_test.cpp +++ b/src/qhull/src/qhulltest/QhullFacetSet_test.cpp diff --git a/xs/src/qhull/src/qhulltest/QhullFacet_test.cpp b/src/qhull/src/qhulltest/QhullFacet_test.cpp index 271f63753..271f63753 100644 --- a/xs/src/qhull/src/qhulltest/QhullFacet_test.cpp +++ b/src/qhull/src/qhulltest/QhullFacet_test.cpp diff --git a/xs/src/qhull/src/qhulltest/QhullHyperplane_test.cpp b/src/qhull/src/qhulltest/QhullHyperplane_test.cpp index d016989a9..d016989a9 100644 --- a/xs/src/qhull/src/qhulltest/QhullHyperplane_test.cpp +++ b/src/qhull/src/qhulltest/QhullHyperplane_test.cpp diff --git a/xs/src/qhull/src/qhulltest/QhullLinkedList_test.cpp b/src/qhull/src/qhulltest/QhullLinkedList_test.cpp index e0cde4050..e0cde4050 100644 --- a/xs/src/qhull/src/qhulltest/QhullLinkedList_test.cpp +++ b/src/qhull/src/qhulltest/QhullLinkedList_test.cpp diff --git a/xs/src/qhull/src/qhulltest/QhullPointSet_test.cpp b/src/qhull/src/qhulltest/QhullPointSet_test.cpp index ff633a518..ff633a518 100644 --- a/xs/src/qhull/src/qhulltest/QhullPointSet_test.cpp +++ b/src/qhull/src/qhulltest/QhullPointSet_test.cpp diff --git a/xs/src/qhull/src/qhulltest/QhullPoint_test.cpp b/src/qhull/src/qhulltest/QhullPoint_test.cpp index 1528086a1..1528086a1 100644 --- a/xs/src/qhull/src/qhulltest/QhullPoint_test.cpp +++ b/src/qhull/src/qhulltest/QhullPoint_test.cpp diff --git a/xs/src/qhull/src/qhulltest/QhullPoints_test.cpp b/src/qhull/src/qhulltest/QhullPoints_test.cpp index c2d8347e2..c2d8347e2 100644 --- a/xs/src/qhull/src/qhulltest/QhullPoints_test.cpp +++ b/src/qhull/src/qhulltest/QhullPoints_test.cpp diff --git a/xs/src/qhull/src/qhulltest/QhullRidge_test.cpp b/src/qhull/src/qhulltest/QhullRidge_test.cpp index 420a7f06d..420a7f06d 100644 --- a/xs/src/qhull/src/qhulltest/QhullRidge_test.cpp +++ b/src/qhull/src/qhulltest/QhullRidge_test.cpp diff --git a/xs/src/qhull/src/qhulltest/QhullSet_test.cpp b/src/qhull/src/qhulltest/QhullSet_test.cpp index 87fcf4acf..87fcf4acf 100644 --- a/xs/src/qhull/src/qhulltest/QhullSet_test.cpp +++ b/src/qhull/src/qhulltest/QhullSet_test.cpp diff --git a/xs/src/qhull/src/qhulltest/QhullVertexSet_test.cpp b/src/qhull/src/qhulltest/QhullVertexSet_test.cpp index 41caacd29..41caacd29 100644 --- a/xs/src/qhull/src/qhulltest/QhullVertexSet_test.cpp +++ b/src/qhull/src/qhulltest/QhullVertexSet_test.cpp diff --git a/xs/src/qhull/src/qhulltest/QhullVertex_test.cpp b/src/qhull/src/qhulltest/QhullVertex_test.cpp index fb6ec9640..fb6ec9640 100644 --- a/xs/src/qhull/src/qhulltest/QhullVertex_test.cpp +++ b/src/qhull/src/qhulltest/QhullVertex_test.cpp diff --git a/xs/src/qhull/src/qhulltest/Qhull_test.cpp b/src/qhull/src/qhulltest/Qhull_test.cpp index cc3918a05..cc3918a05 100644 --- a/xs/src/qhull/src/qhulltest/Qhull_test.cpp +++ b/src/qhull/src/qhulltest/Qhull_test.cpp diff --git a/xs/src/qhull/src/qhulltest/RboxPoints_test.cpp b/src/qhull/src/qhulltest/RboxPoints_test.cpp index 4f4ea984f..4f4ea984f 100644 --- a/xs/src/qhull/src/qhulltest/RboxPoints_test.cpp +++ b/src/qhull/src/qhulltest/RboxPoints_test.cpp diff --git a/xs/src/qhull/src/qhulltest/RoadTest.cpp b/src/qhull/src/qhulltest/RoadTest.cpp index 05c87f3de..05c87f3de 100644 --- a/xs/src/qhull/src/qhulltest/RoadTest.cpp +++ b/src/qhull/src/qhulltest/RoadTest.cpp diff --git a/xs/src/qhull/src/qhulltest/RoadTest.h b/src/qhull/src/qhulltest/RoadTest.h index adfe0bf8c..adfe0bf8c 100644 --- a/xs/src/qhull/src/qhulltest/RoadTest.h +++ b/src/qhull/src/qhulltest/RoadTest.h diff --git a/xs/src/qhull/src/qhulltest/qhulltest.cpp b/src/qhull/src/qhulltest/qhulltest.cpp index 5bfe16e9c..5bfe16e9c 100644 --- a/xs/src/qhull/src/qhulltest/qhulltest.cpp +++ b/src/qhull/src/qhulltest/qhulltest.cpp diff --git a/xs/src/qhull/src/qhulltest/qhulltest.pro b/src/qhull/src/qhulltest/qhulltest.pro index 0da34d375..0da34d375 100644 --- a/xs/src/qhull/src/qhulltest/qhulltest.pro +++ b/src/qhull/src/qhulltest/qhulltest.pro diff --git a/xs/src/qhull/src/qvoronoi/qvoronoi.c b/src/qhull/src/qvoronoi/qvoronoi.c index b93d23711..b93d23711 100644 --- a/xs/src/qhull/src/qvoronoi/qvoronoi.c +++ b/src/qhull/src/qvoronoi/qvoronoi.c diff --git a/xs/src/qhull/src/qvoronoi/qvoronoi.pro b/src/qhull/src/qvoronoi/qvoronoi.pro index 4646c8447..4646c8447 100644 --- a/xs/src/qhull/src/qvoronoi/qvoronoi.pro +++ b/src/qhull/src/qvoronoi/qvoronoi.pro diff --git a/xs/src/qhull/src/qvoronoi/qvoronoi_r.c b/src/qhull/src/qvoronoi/qvoronoi_r.c index 6323c8b49..6323c8b49 100644 --- a/xs/src/qhull/src/qvoronoi/qvoronoi_r.c +++ b/src/qhull/src/qvoronoi/qvoronoi_r.c diff --git a/xs/src/qhull/src/rbox/rbox.c b/src/qhull/src/rbox/rbox.c index d7c51b1aa..d7c51b1aa 100644 --- a/xs/src/qhull/src/rbox/rbox.c +++ b/src/qhull/src/rbox/rbox.c diff --git a/xs/src/qhull/src/rbox/rbox.pro b/src/qhull/src/rbox/rbox.pro index 6c21bdb6d..6c21bdb6d 100644 --- a/xs/src/qhull/src/rbox/rbox.pro +++ b/src/qhull/src/rbox/rbox.pro diff --git a/xs/src/qhull/src/rbox/rbox_r.c b/src/qhull/src/rbox/rbox_r.c index 6ec74d914..6ec74d914 100644 --- a/xs/src/qhull/src/rbox/rbox_r.c +++ b/src/qhull/src/rbox/rbox_r.c diff --git a/xs/src/qhull/src/testqset/testqset.c b/src/qhull/src/testqset/testqset.c index 61057eef9..61057eef9 100644 --- a/xs/src/qhull/src/testqset/testqset.c +++ b/src/qhull/src/testqset/testqset.c diff --git a/xs/src/qhull/src/testqset/testqset.pro b/src/qhull/src/testqset/testqset.pro index 3f69048aa..3f69048aa 100644 --- a/xs/src/qhull/src/testqset/testqset.pro +++ b/src/qhull/src/testqset/testqset.pro diff --git a/xs/src/qhull/src/testqset_r/testqset_r.c b/src/qhull/src/testqset_r/testqset_r.c index 9a6d496e4..9a6d496e4 100644 --- a/xs/src/qhull/src/testqset_r/testqset_r.c +++ b/src/qhull/src/testqset_r/testqset_r.c diff --git a/xs/src/qhull/src/testqset_r/testqset_r.pro b/src/qhull/src/testqset_r/testqset_r.pro index 951e0624e..951e0624e 100644 --- a/xs/src/qhull/src/testqset_r/testqset_r.pro +++ b/src/qhull/src/testqset_r/testqset_r.pro diff --git a/xs/src/qhull/src/user_eg/user_eg.c b/src/qhull/src/user_eg/user_eg.c index 9c5fee51b..9c5fee51b 100644 --- a/xs/src/qhull/src/user_eg/user_eg.c +++ b/src/qhull/src/user_eg/user_eg.c diff --git a/xs/src/qhull/src/user_eg/user_eg.pro b/src/qhull/src/user_eg/user_eg.pro index 9dda01009..9dda01009 100644 --- a/xs/src/qhull/src/user_eg/user_eg.pro +++ b/src/qhull/src/user_eg/user_eg.pro diff --git a/xs/src/qhull/src/user_eg/user_eg_r.c b/src/qhull/src/user_eg/user_eg_r.c index 21b0ccf4e..21b0ccf4e 100644 --- a/xs/src/qhull/src/user_eg/user_eg_r.c +++ b/src/qhull/src/user_eg/user_eg_r.c diff --git a/xs/src/qhull/src/user_eg2/user_eg2.c b/src/qhull/src/user_eg2/user_eg2.c index a455f025d..a455f025d 100644 --- a/xs/src/qhull/src/user_eg2/user_eg2.c +++ b/src/qhull/src/user_eg2/user_eg2.c diff --git a/xs/src/qhull/src/user_eg2/user_eg2.pro b/src/qhull/src/user_eg2/user_eg2.pro index c841bfe13..c841bfe13 100644 --- a/xs/src/qhull/src/user_eg2/user_eg2.pro +++ b/src/qhull/src/user_eg2/user_eg2.pro diff --git a/xs/src/qhull/src/user_eg2/user_eg2_r.c b/src/qhull/src/user_eg2/user_eg2_r.c index 2f8b4e6c7..2f8b4e6c7 100644 --- a/xs/src/qhull/src/user_eg2/user_eg2_r.c +++ b/src/qhull/src/user_eg2/user_eg2_r.c diff --git a/xs/src/qhull/src/user_eg3/user_eg3.pro b/src/qhull/src/user_eg3/user_eg3.pro index 35372fbf9..35372fbf9 100644 --- a/xs/src/qhull/src/user_eg3/user_eg3.pro +++ b/src/qhull/src/user_eg3/user_eg3.pro diff --git a/xs/src/qhull/src/user_eg3/user_eg3_r.cpp b/src/qhull/src/user_eg3/user_eg3_r.cpp index 5257872ab..5257872ab 100644 --- a/xs/src/qhull/src/user_eg3/user_eg3_r.cpp +++ b/src/qhull/src/user_eg3/user_eg3_r.cpp diff --git a/src/semver/CMakeLists.txt b/src/semver/CMakeLists.txt new file mode 100644 index 000000000..e3457bf29 --- /dev/null +++ b/src/semver/CMakeLists.txt @@ -0,0 +1,7 @@ +project(semver) +cmake_minimum_required(VERSION 2.6) + +add_library(semver STATIC + semver.c + semver.h +) diff --git a/xs/src/semver/semver.c b/src/semver/semver.c index 527738644..527738644 100644 --- a/xs/src/semver/semver.c +++ b/src/semver/semver.c diff --git a/xs/src/semver/semver.h b/src/semver/semver.h index 01a15fc43..01a15fc43 100644 --- a/xs/src/semver/semver.h +++ b/src/semver/semver.h diff --git a/src/slic3r.cpp b/src/slic3r.cpp index 085b39686..8174ba0a2 100644 --- a/src/slic3r.cpp +++ b/src/slic3r.cpp @@ -12,8 +12,83 @@ #include <boost/nowide/args.hpp> #include <boost/nowide/iostream.hpp> +#include "slic3r/GUI/GUI.hpp" + using namespace Slic3r; +// wxWidgets "Hello world" Program +// For compilers that support precompilation, includes "wx/wx.h". +#include <wx/wxprec.h> +#ifndef WX_PRECOMP + #include <wx/wx.h> +#endif +class MyApp: public wxApp +{ +public: + virtual bool OnInit(); +}; +class MyFrame: public wxFrame +{ +public: + MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size); +private: + void OnHello(wxCommandEvent& event); + void OnExit(wxCommandEvent& event); + void OnAbout(wxCommandEvent& event); + wxDECLARE_EVENT_TABLE(); +}; +enum +{ + ID_Hello = 1 +}; +wxBEGIN_EVENT_TABLE(MyFrame, wxFrame) + EVT_MENU(ID_Hello, MyFrame::OnHello) + EVT_MENU(wxID_EXIT, MyFrame::OnExit) + EVT_MENU(wxID_ABOUT, MyFrame::OnAbout) +wxEND_EVENT_TABLE() +bool MyApp::OnInit() +{ + MyFrame *frame = new MyFrame( "Hello World", wxPoint(50, 50), wxSize(450, 340) ); + frame->Show( true ); + return true; +} +MyFrame::MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size) + : wxFrame(NULL, wxID_ANY, title, pos, size) +{ + wxMenu *menuFile = new wxMenu; + menuFile->Append(ID_Hello, "&Hello...\tCtrl-H", + "Help string shown in status bar for this menu item"); + menuFile->AppendSeparator(); + menuFile->Append(wxID_EXIT); + wxMenu *menuHelp = new wxMenu; + menuHelp->Append(wxID_ABOUT); + wxMenuBar *menuBar = new wxMenuBar; + menuBar->Append( menuFile, "&File" ); + menuBar->Append( menuHelp, "&Help" ); + SetMenuBar( menuBar ); + CreateStatusBar(); + SetStatusText( "Welcome to wxWidgets!" ); + Slic3r::Model model; + ModelObject *object = model.add_object(); + SetStatusText(Slic3r::GUI::from_u8("HHuhuh")); +} + +void MyFrame::OnExit(wxCommandEvent& event) +{ + Close( true ); +} +void MyFrame::OnAbout(wxCommandEvent& event) +{ + wxMessageBox( "This is a wxWidgets' Hello world sample", + "About Hello World", wxOK | wxICON_INFORMATION ); +} +void MyFrame::OnHello(wxCommandEvent& event) +{ + wxLogMessage("Hello world from wxWidgets!"); +} + + +#if 1 int main(int argc, char **argv) { @@ -176,5 +251,11 @@ main(int argc, char **argv) } #endif + + MyApp *gui = new MyApp(); + + MyApp::SetInstance(gui); + wxEntry(argc, argv); return 0; } +#endif diff --git a/xs/src/slic3r/AppController.cpp b/src/slic3r/AppController.cpp index 4a36b5d7f..4a36b5d7f 100644 --- a/xs/src/slic3r/AppController.cpp +++ b/src/slic3r/AppController.cpp diff --git a/xs/src/slic3r/AppController.hpp b/src/slic3r/AppController.hpp index 71472835e..71472835e 100644 --- a/xs/src/slic3r/AppController.hpp +++ b/src/slic3r/AppController.hpp diff --git a/xs/src/slic3r/AppControllerWx.cpp b/src/slic3r/AppControllerWx.cpp index 4d67d5f66..4d67d5f66 100644 --- a/xs/src/slic3r/AppControllerWx.cpp +++ b/src/slic3r/AppControllerWx.cpp diff --git a/src/slic3r/CMakeLists.txt b/src/slic3r/CMakeLists.txt new file mode 100644 index 000000000..e4dfd35ea --- /dev/null +++ b/src/slic3r/CMakeLists.txt @@ -0,0 +1,106 @@ +add_library(libslic3r_gui STATIC + ${LIBDIR}/slic3r/GUI/AboutDialog.cpp + ${LIBDIR}/slic3r/GUI/AboutDialog.hpp + ${LIBDIR}/slic3r/GUI/AppConfig.cpp + ${LIBDIR}/slic3r/GUI/AppConfig.hpp + ${LIBDIR}/slic3r/GUI/BackgroundSlicingProcess.cpp + ${LIBDIR}/slic3r/GUI/BackgroundSlicingProcess.hpp + ${LIBDIR}/slic3r/GUI/BitmapCache.cpp + ${LIBDIR}/slic3r/GUI/BitmapCache.hpp + ${LIBDIR}/slic3r/GUI/ConfigSnapshotDialog.cpp + ${LIBDIR}/slic3r/GUI/ConfigSnapshotDialog.hpp + ${LIBDIR}/slic3r/GUI/3DScene.cpp + ${LIBDIR}/slic3r/GUI/3DScene.hpp + ${LIBDIR}/slic3r/GUI/GLShader.cpp + ${LIBDIR}/slic3r/GUI/GLShader.hpp + ${LIBDIR}/slic3r/GUI/GLCanvas3D.hpp + ${LIBDIR}/slic3r/GUI/GLCanvas3D.cpp + ${LIBDIR}/slic3r/GUI/GLCanvas3DManager.hpp + ${LIBDIR}/slic3r/GUI/GLCanvas3DManager.cpp + ${LIBDIR}/slic3r/GUI/GLGizmo.hpp + ${LIBDIR}/slic3r/GUI/GLGizmo.cpp + ${LIBDIR}/slic3r/GUI/GLTexture.hpp + ${LIBDIR}/slic3r/GUI/GLTexture.cpp + ${LIBDIR}/slic3r/GUI/GLToolbar.hpp + ${LIBDIR}/slic3r/GUI/GLToolbar.cpp + ${LIBDIR}/slic3r/GUI/Preferences.cpp + ${LIBDIR}/slic3r/GUI/Preferences.hpp + ${LIBDIR}/slic3r/GUI/Preset.cpp + ${LIBDIR}/slic3r/GUI/Preset.hpp + ${LIBDIR}/slic3r/GUI/PresetBundle.cpp + ${LIBDIR}/slic3r/GUI/PresetBundle.hpp + ${LIBDIR}/slic3r/GUI/PresetHints.cpp + ${LIBDIR}/slic3r/GUI/PresetHints.hpp + ${LIBDIR}/slic3r/GUI/GUI.cpp + ${LIBDIR}/slic3r/GUI/GUI.hpp + ${LIBDIR}/slic3r/GUI/GUI_ObjectParts.cpp + ${LIBDIR}/slic3r/GUI/GUI_ObjectParts.hpp + ${LIBDIR}/slic3r/GUI/LambdaObjectDialog.cpp + ${LIBDIR}/slic3r/GUI/LambdaObjectDialog.hpp + ${LIBDIR}/slic3r/GUI/Tab.cpp + ${LIBDIR}/slic3r/GUI/Tab.hpp + ${LIBDIR}/slic3r/GUI/TabIface.cpp + ${LIBDIR}/slic3r/GUI/TabIface.hpp + ${LIBDIR}/slic3r/GUI/Field.cpp + ${LIBDIR}/slic3r/GUI/Field.hpp + ${LIBDIR}/slic3r/GUI/OptionsGroup.cpp + ${LIBDIR}/slic3r/GUI/OptionsGroup.hpp + ${LIBDIR}/slic3r/GUI/BedShapeDialog.cpp + ${LIBDIR}/slic3r/GUI/BedShapeDialog.hpp + ${LIBDIR}/slic3r/GUI/2DBed.cpp + ${LIBDIR}/slic3r/GUI/2DBed.hpp + ${LIBDIR}/slic3r/GUI/wxExtensions.cpp + ${LIBDIR}/slic3r/GUI/wxExtensions.hpp + ${LIBDIR}/slic3r/GUI/WipeTowerDialog.cpp + ${LIBDIR}/slic3r/GUI/WipeTowerDialog.hpp + ${LIBDIR}/slic3r/GUI/RammingChart.cpp + ${LIBDIR}/slic3r/GUI/RammingChart.hpp + ${LIBDIR}/slic3r/GUI/BonjourDialog.cpp + ${LIBDIR}/slic3r/GUI/BonjourDialog.hpp + ${LIBDIR}/slic3r/GUI/ButtonsDescription.cpp + ${LIBDIR}/slic3r/GUI/ButtonsDescription.hpp + ${LIBDIR}/slic3r/Config/Snapshot.cpp + ${LIBDIR}/slic3r/Config/Snapshot.hpp + ${LIBDIR}/slic3r/Config/Version.cpp + ${LIBDIR}/slic3r/Config/Version.hpp + ${LIBDIR}/slic3r/Utils/ASCIIFolding.cpp + ${LIBDIR}/slic3r/Utils/ASCIIFolding.hpp + ${LIBDIR}/slic3r/Utils/Serial.cpp + ${LIBDIR}/slic3r/Utils/Serial.hpp + ${LIBDIR}/slic3r/GUI/ConfigWizard.cpp + ${LIBDIR}/slic3r/GUI/ConfigWizard.hpp + ${LIBDIR}/slic3r/GUI/MsgDialog.cpp + ${LIBDIR}/slic3r/GUI/MsgDialog.hpp + ${LIBDIR}/slic3r/GUI/UpdateDialogs.cpp + ${LIBDIR}/slic3r/GUI/UpdateDialogs.hpp + ${LIBDIR}/slic3r/GUI/FirmwareDialog.cpp + ${LIBDIR}/slic3r/GUI/FirmwareDialog.hpp + ${LIBDIR}/slic3r/GUI/ProgressIndicator.hpp + ${LIBDIR}/slic3r/GUI/ProgressStatusBar.hpp + ${LIBDIR}/slic3r/GUI/ProgressStatusBar.cpp + ${LIBDIR}/slic3r/Utils/Http.cpp + ${LIBDIR}/slic3r/Utils/Http.hpp + ${LIBDIR}/slic3r/Utils/FixModelByWin10.cpp + ${LIBDIR}/slic3r/Utils/FixModelByWin10.hpp + ${LIBDIR}/slic3r/Utils/PrintHostSendDialog.cpp + ${LIBDIR}/slic3r/Utils/PrintHostSendDialog.hpp + ${LIBDIR}/slic3r/Utils/OctoPrint.cpp + ${LIBDIR}/slic3r/Utils/OctoPrint.hpp + ${LIBDIR}/slic3r/Utils/Duet.cpp + ${LIBDIR}/slic3r/Utils/Duet.hpp + ${LIBDIR}/slic3r/Utils/PrintHost.cpp + ${LIBDIR}/slic3r/Utils/PrintHost.hpp + ${LIBDIR}/slic3r/Utils/Bonjour.cpp + ${LIBDIR}/slic3r/Utils/Bonjour.hpp + ${LIBDIR}/slic3r/Utils/PresetUpdater.cpp + ${LIBDIR}/slic3r/Utils/PresetUpdater.hpp + ${LIBDIR}/slic3r/Utils/Time.cpp + ${LIBDIR}/slic3r/Utils/Time.hpp + ${LIBDIR}/slic3r/Utils/HexFile.cpp + ${LIBDIR}/slic3r/Utils/HexFile.hpp + ${LIBDIR}/slic3r/AppController.hpp + ${LIBDIR}/slic3r/AppController.cpp + ${LIBDIR}/slic3r/AppControllerWx.cpp +) + +target_link_libraries(libslic3r_gui libslic3r avrdude) diff --git a/xs/src/slic3r/Config/Snapshot.cpp b/src/slic3r/Config/Snapshot.cpp index 704fbcfa1..704fbcfa1 100644 --- a/xs/src/slic3r/Config/Snapshot.cpp +++ b/src/slic3r/Config/Snapshot.cpp diff --git a/xs/src/slic3r/Config/Snapshot.hpp b/src/slic3r/Config/Snapshot.hpp index a916dfe92..a916dfe92 100644 --- a/xs/src/slic3r/Config/Snapshot.hpp +++ b/src/slic3r/Config/Snapshot.hpp diff --git a/xs/src/slic3r/Config/Version.cpp b/src/slic3r/Config/Version.cpp index a85322eca..a85322eca 100644 --- a/xs/src/slic3r/Config/Version.cpp +++ b/src/slic3r/Config/Version.cpp diff --git a/xs/src/slic3r/Config/Version.hpp b/src/slic3r/Config/Version.hpp index acb0ae460..acb0ae460 100644 --- a/xs/src/slic3r/Config/Version.hpp +++ b/src/slic3r/Config/Version.hpp diff --git a/xs/src/slic3r/GUI/2DBed.cpp b/src/slic3r/GUI/2DBed.cpp index e19f839cd..e19f839cd 100644 --- a/xs/src/slic3r/GUI/2DBed.cpp +++ b/src/slic3r/GUI/2DBed.cpp diff --git a/xs/src/slic3r/GUI/2DBed.hpp b/src/slic3r/GUI/2DBed.hpp index d7a7f4260..d7a7f4260 100644 --- a/xs/src/slic3r/GUI/2DBed.hpp +++ b/src/slic3r/GUI/2DBed.hpp diff --git a/xs/src/slic3r/GUI/3DScene.cpp b/src/slic3r/GUI/3DScene.cpp index e6f038042..e6f038042 100644 --- a/xs/src/slic3r/GUI/3DScene.cpp +++ b/src/slic3r/GUI/3DScene.cpp diff --git a/xs/src/slic3r/GUI/3DScene.hpp b/src/slic3r/GUI/3DScene.hpp index f2d1c0786..f2d1c0786 100644 --- a/xs/src/slic3r/GUI/3DScene.hpp +++ b/src/slic3r/GUI/3DScene.hpp diff --git a/xs/src/slic3r/GUI/AboutDialog.cpp b/src/slic3r/GUI/AboutDialog.cpp index 0fed8d175..0fed8d175 100644 --- a/xs/src/slic3r/GUI/AboutDialog.cpp +++ b/src/slic3r/GUI/AboutDialog.cpp diff --git a/xs/src/slic3r/GUI/AboutDialog.hpp b/src/slic3r/GUI/AboutDialog.hpp index 01f7564c5..01f7564c5 100644 --- a/xs/src/slic3r/GUI/AboutDialog.hpp +++ b/src/slic3r/GUI/AboutDialog.hpp diff --git a/xs/src/slic3r/GUI/AppConfig.cpp b/src/slic3r/GUI/AppConfig.cpp index d7307cc32..d7307cc32 100644 --- a/xs/src/slic3r/GUI/AppConfig.cpp +++ b/src/slic3r/GUI/AppConfig.cpp diff --git a/xs/src/slic3r/GUI/AppConfig.hpp b/src/slic3r/GUI/AppConfig.hpp index 5af635a12..5af635a12 100644 --- a/xs/src/slic3r/GUI/AppConfig.hpp +++ b/src/slic3r/GUI/AppConfig.hpp diff --git a/xs/src/slic3r/GUI/BackgroundSlicingProcess.cpp b/src/slic3r/GUI/BackgroundSlicingProcess.cpp index 99997e390..99997e390 100644 --- a/xs/src/slic3r/GUI/BackgroundSlicingProcess.cpp +++ b/src/slic3r/GUI/BackgroundSlicingProcess.cpp diff --git a/xs/src/slic3r/GUI/BackgroundSlicingProcess.hpp b/src/slic3r/GUI/BackgroundSlicingProcess.hpp index cc7a6db30..cc7a6db30 100644 --- a/xs/src/slic3r/GUI/BackgroundSlicingProcess.hpp +++ b/src/slic3r/GUI/BackgroundSlicingProcess.hpp diff --git a/xs/src/slic3r/GUI/BedShapeDialog.cpp b/src/slic3r/GUI/BedShapeDialog.cpp index e04f2b370..e04f2b370 100644 --- a/xs/src/slic3r/GUI/BedShapeDialog.cpp +++ b/src/slic3r/GUI/BedShapeDialog.cpp diff --git a/xs/src/slic3r/GUI/BedShapeDialog.hpp b/src/slic3r/GUI/BedShapeDialog.hpp index d8ba5a912..d8ba5a912 100644 --- a/xs/src/slic3r/GUI/BedShapeDialog.hpp +++ b/src/slic3r/GUI/BedShapeDialog.hpp diff --git a/xs/src/slic3r/GUI/BitmapCache.cpp b/src/slic3r/GUI/BitmapCache.cpp index 93853458e..93853458e 100644 --- a/xs/src/slic3r/GUI/BitmapCache.cpp +++ b/src/slic3r/GUI/BitmapCache.cpp diff --git a/xs/src/slic3r/GUI/BitmapCache.hpp b/src/slic3r/GUI/BitmapCache.hpp index bec9a7ad2..bec9a7ad2 100644 --- a/xs/src/slic3r/GUI/BitmapCache.hpp +++ b/src/slic3r/GUI/BitmapCache.hpp diff --git a/xs/src/slic3r/GUI/BonjourDialog.cpp b/src/slic3r/GUI/BonjourDialog.cpp index 11cfea642..11cfea642 100644 --- a/xs/src/slic3r/GUI/BonjourDialog.cpp +++ b/src/slic3r/GUI/BonjourDialog.cpp diff --git a/xs/src/slic3r/GUI/BonjourDialog.hpp b/src/slic3r/GUI/BonjourDialog.hpp index e3f53790b..e3f53790b 100644 --- a/xs/src/slic3r/GUI/BonjourDialog.hpp +++ b/src/slic3r/GUI/BonjourDialog.hpp diff --git a/xs/src/slic3r/GUI/ButtonsDescription.cpp b/src/slic3r/GUI/ButtonsDescription.cpp index 5739fc90e..5739fc90e 100644 --- a/xs/src/slic3r/GUI/ButtonsDescription.cpp +++ b/src/slic3r/GUI/ButtonsDescription.cpp diff --git a/xs/src/slic3r/GUI/ButtonsDescription.hpp b/src/slic3r/GUI/ButtonsDescription.hpp index 4858eaaea..4858eaaea 100644 --- a/xs/src/slic3r/GUI/ButtonsDescription.hpp +++ b/src/slic3r/GUI/ButtonsDescription.hpp diff --git a/xs/src/slic3r/GUI/ConfigExceptions.hpp b/src/slic3r/GUI/ConfigExceptions.hpp index 9038d3445..9038d3445 100644 --- a/xs/src/slic3r/GUI/ConfigExceptions.hpp +++ b/src/slic3r/GUI/ConfigExceptions.hpp diff --git a/xs/src/slic3r/GUI/ConfigSnapshotDialog.cpp b/src/slic3r/GUI/ConfigSnapshotDialog.cpp index efcbf05bd..efcbf05bd 100644 --- a/xs/src/slic3r/GUI/ConfigSnapshotDialog.cpp +++ b/src/slic3r/GUI/ConfigSnapshotDialog.cpp diff --git a/xs/src/slic3r/GUI/ConfigSnapshotDialog.hpp b/src/slic3r/GUI/ConfigSnapshotDialog.hpp index f43fb8ed1..f43fb8ed1 100644 --- a/xs/src/slic3r/GUI/ConfigSnapshotDialog.hpp +++ b/src/slic3r/GUI/ConfigSnapshotDialog.hpp diff --git a/xs/src/slic3r/GUI/ConfigWizard.cpp b/src/slic3r/GUI/ConfigWizard.cpp index e784d8525..e784d8525 100644 --- a/xs/src/slic3r/GUI/ConfigWizard.cpp +++ b/src/slic3r/GUI/ConfigWizard.cpp diff --git a/xs/src/slic3r/GUI/ConfigWizard.hpp b/src/slic3r/GUI/ConfigWizard.hpp index 73fce7cd2..73fce7cd2 100644 --- a/xs/src/slic3r/GUI/ConfigWizard.hpp +++ b/src/slic3r/GUI/ConfigWizard.hpp diff --git a/xs/src/slic3r/GUI/ConfigWizard_private.hpp b/src/slic3r/GUI/ConfigWizard_private.hpp index 2c8f23cd3..2c8f23cd3 100644 --- a/xs/src/slic3r/GUI/ConfigWizard_private.hpp +++ b/src/slic3r/GUI/ConfigWizard_private.hpp diff --git a/xs/src/slic3r/GUI/Field.cpp b/src/slic3r/GUI/Field.cpp index f143e8bc6..f143e8bc6 100644 --- a/xs/src/slic3r/GUI/Field.cpp +++ b/src/slic3r/GUI/Field.cpp diff --git a/xs/src/slic3r/GUI/Field.hpp b/src/slic3r/GUI/Field.hpp index c38658e2b..c38658e2b 100644 --- a/xs/src/slic3r/GUI/Field.hpp +++ b/src/slic3r/GUI/Field.hpp diff --git a/xs/src/slic3r/GUI/FirmwareDialog.cpp b/src/slic3r/GUI/FirmwareDialog.cpp index d5ac64d90..d5ac64d90 100644 --- a/xs/src/slic3r/GUI/FirmwareDialog.cpp +++ b/src/slic3r/GUI/FirmwareDialog.cpp diff --git a/xs/src/slic3r/GUI/FirmwareDialog.hpp b/src/slic3r/GUI/FirmwareDialog.hpp index ad048bf5d..ad048bf5d 100644 --- a/xs/src/slic3r/GUI/FirmwareDialog.hpp +++ b/src/slic3r/GUI/FirmwareDialog.hpp diff --git a/xs/src/slic3r/GUI/GLCanvas3D.cpp b/src/slic3r/GUI/GLCanvas3D.cpp index cb3250916..cb3250916 100644 --- a/xs/src/slic3r/GUI/GLCanvas3D.cpp +++ b/src/slic3r/GUI/GLCanvas3D.cpp diff --git a/xs/src/slic3r/GUI/GLCanvas3D.hpp b/src/slic3r/GUI/GLCanvas3D.hpp index 528f73fc1..528f73fc1 100644 --- a/xs/src/slic3r/GUI/GLCanvas3D.hpp +++ b/src/slic3r/GUI/GLCanvas3D.hpp diff --git a/xs/src/slic3r/GUI/GLCanvas3DManager.cpp b/src/slic3r/GUI/GLCanvas3DManager.cpp index 495f49425..495f49425 100644 --- a/xs/src/slic3r/GUI/GLCanvas3DManager.cpp +++ b/src/slic3r/GUI/GLCanvas3DManager.cpp diff --git a/xs/src/slic3r/GUI/GLCanvas3DManager.hpp b/src/slic3r/GUI/GLCanvas3DManager.hpp index 4922b6171..4922b6171 100644 --- a/xs/src/slic3r/GUI/GLCanvas3DManager.hpp +++ b/src/slic3r/GUI/GLCanvas3DManager.hpp diff --git a/xs/src/slic3r/GUI/GLGizmo.cpp b/src/slic3r/GUI/GLGizmo.cpp index e23958c1d..e23958c1d 100644 --- a/xs/src/slic3r/GUI/GLGizmo.cpp +++ b/src/slic3r/GUI/GLGizmo.cpp diff --git a/xs/src/slic3r/GUI/GLGizmo.hpp b/src/slic3r/GUI/GLGizmo.hpp index 2430b5af5..2430b5af5 100644 --- a/xs/src/slic3r/GUI/GLGizmo.hpp +++ b/src/slic3r/GUI/GLGizmo.hpp diff --git a/xs/src/slic3r/GUI/GLShader.cpp b/src/slic3r/GUI/GLShader.cpp index e2995f7c3..e2995f7c3 100644 --- a/xs/src/slic3r/GUI/GLShader.cpp +++ b/src/slic3r/GUI/GLShader.cpp diff --git a/xs/src/slic3r/GUI/GLShader.hpp b/src/slic3r/GUI/GLShader.hpp index 803b2f154..803b2f154 100644 --- a/xs/src/slic3r/GUI/GLShader.hpp +++ b/src/slic3r/GUI/GLShader.hpp diff --git a/xs/src/slic3r/GUI/GLTexture.cpp b/src/slic3r/GUI/GLTexture.cpp index 235e3d93b..235e3d93b 100644 --- a/xs/src/slic3r/GUI/GLTexture.cpp +++ b/src/slic3r/GUI/GLTexture.cpp diff --git a/xs/src/slic3r/GUI/GLTexture.hpp b/src/slic3r/GUI/GLTexture.hpp index e027bd152..e027bd152 100644 --- a/xs/src/slic3r/GUI/GLTexture.hpp +++ b/src/slic3r/GUI/GLTexture.hpp diff --git a/xs/src/slic3r/GUI/GLToolbar.cpp b/src/slic3r/GUI/GLToolbar.cpp index 388868b12..388868b12 100644 --- a/xs/src/slic3r/GUI/GLToolbar.cpp +++ b/src/slic3r/GUI/GLToolbar.cpp diff --git a/xs/src/slic3r/GUI/GLToolbar.hpp b/src/slic3r/GUI/GLToolbar.hpp index 65d6748ff..65d6748ff 100644 --- a/xs/src/slic3r/GUI/GLToolbar.hpp +++ b/src/slic3r/GUI/GLToolbar.hpp diff --git a/xs/src/slic3r/GUI/GUI.cpp b/src/slic3r/GUI/GUI.cpp index decdb5691..24d459921 100644 --- a/xs/src/slic3r/GUI/GUI.cpp +++ b/src/slic3r/GUI/GUI.cpp @@ -46,6 +46,8 @@ #include "Tab.hpp" #include "TabIface.hpp" +#include "GUI_Preview.hpp" +#include "GUI_PreviewIface.hpp" #include "AboutDialog.hpp" #include "AppConfig.hpp" #include "ConfigSnapshotDialog.hpp" @@ -148,6 +150,8 @@ wxStaticBitmap *g_manifold_warning_icon = nullptr; bool g_show_print_info = false; bool g_show_manifold_warning_icon = false; +PreviewIface* g_preview = nullptr; + static void init_label_colours() { auto luma = get_colour_approx_luma(wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOW)); @@ -665,6 +669,17 @@ TabIface* get_preset_tab_iface(char *name) return new TabIface(nullptr); } +PreviewIface* create_preview_iface(wxNotebook* parent, DynamicPrintConfig* config, Print* print, GCodePreviewData* gcode_preview_data) +{ + if (g_preview == nullptr) + { + Preview* panel = new Preview(parent, config, print, gcode_preview_data); + g_preview = new PreviewIface(panel); + } + + return g_preview; +} + // opt_index = 0, by the reason of zero-index in ConfigOptionVector by default (in case only one element) void change_opt_value(DynamicPrintConfig& config, const t_config_option_key& opt_key, const boost::any& value, int opt_index /*= 0*/) { diff --git a/xs/src/slic3r/GUI/GUI.hpp b/src/slic3r/GUI/GUI.hpp index 998b572b9..8dfaf42c6 100644 --- a/xs/src/slic3r/GUI/GUI.hpp +++ b/src/slic3r/GUI/GUI.hpp @@ -39,6 +39,9 @@ class AppConfig; class PresetUpdater; class DynamicPrintConfig; class TabIface; +class PreviewIface; +class Print; +class GCodePreviewData; #define _(s) Slic3r::GUI::I18N::translate((s)) @@ -165,6 +168,8 @@ extern void open_preferences_dialog(int event_preferences); void create_preset_tabs(int event_value_change, int event_presets_changed); TabIface* get_preset_tab_iface(char *name); +PreviewIface* create_preview_iface(wxNotebook* notebook, DynamicPrintConfig* config, Print* print, GCodePreviewData* gcode_preview_data); + // add it at the end of the tab panel. void add_created_tab(Tab* panel, int event_value_change, int event_presets_changed); // Change option value in config diff --git a/xs/src/slic3r/GUI/GUI_ObjectParts.cpp b/src/slic3r/GUI/GUI_ObjectParts.cpp index ae34359ce..ae34359ce 100644 --- a/xs/src/slic3r/GUI/GUI_ObjectParts.cpp +++ b/src/slic3r/GUI/GUI_ObjectParts.cpp diff --git a/xs/src/slic3r/GUI/GUI_ObjectParts.hpp b/src/slic3r/GUI/GUI_ObjectParts.hpp index e66b4d1db..e66b4d1db 100644 --- a/xs/src/slic3r/GUI/GUI_ObjectParts.hpp +++ b/src/slic3r/GUI/GUI_ObjectParts.hpp diff --git a/xs/src/slic3r/GUI/LambdaObjectDialog.cpp b/src/slic3r/GUI/LambdaObjectDialog.cpp index 7d741be7f..7d741be7f 100644 --- a/xs/src/slic3r/GUI/LambdaObjectDialog.cpp +++ b/src/slic3r/GUI/LambdaObjectDialog.cpp diff --git a/xs/src/slic3r/GUI/LambdaObjectDialog.hpp b/src/slic3r/GUI/LambdaObjectDialog.hpp index 8f3e8cd80..8f3e8cd80 100644 --- a/xs/src/slic3r/GUI/LambdaObjectDialog.hpp +++ b/src/slic3r/GUI/LambdaObjectDialog.hpp diff --git a/xs/src/slic3r/GUI/MsgDialog.cpp b/src/slic3r/GUI/MsgDialog.cpp index 58679ed9e..58679ed9e 100644 --- a/xs/src/slic3r/GUI/MsgDialog.cpp +++ b/src/slic3r/GUI/MsgDialog.cpp diff --git a/xs/src/slic3r/GUI/MsgDialog.hpp b/src/slic3r/GUI/MsgDialog.hpp index ca349eb5c..ca349eb5c 100644 --- a/xs/src/slic3r/GUI/MsgDialog.hpp +++ b/src/slic3r/GUI/MsgDialog.hpp diff --git a/xs/src/slic3r/GUI/OptionsGroup.cpp b/src/slic3r/GUI/OptionsGroup.cpp index ea22b2cb5..ea22b2cb5 100644 --- a/xs/src/slic3r/GUI/OptionsGroup.cpp +++ b/src/slic3r/GUI/OptionsGroup.cpp diff --git a/xs/src/slic3r/GUI/OptionsGroup.hpp b/src/slic3r/GUI/OptionsGroup.hpp index 4941e5453..4941e5453 100644 --- a/xs/src/slic3r/GUI/OptionsGroup.hpp +++ b/src/slic3r/GUI/OptionsGroup.hpp diff --git a/xs/src/slic3r/GUI/Preferences.cpp b/src/slic3r/GUI/Preferences.cpp index 89a8ead92..89a8ead92 100644 --- a/xs/src/slic3r/GUI/Preferences.cpp +++ b/src/slic3r/GUI/Preferences.cpp diff --git a/xs/src/slic3r/GUI/Preferences.hpp b/src/slic3r/GUI/Preferences.hpp index d01d78b70..d01d78b70 100644 --- a/xs/src/slic3r/GUI/Preferences.hpp +++ b/src/slic3r/GUI/Preferences.hpp diff --git a/xs/src/slic3r/GUI/Preset.cpp b/src/slic3r/GUI/Preset.cpp index 9911caa5b..9911caa5b 100644 --- a/xs/src/slic3r/GUI/Preset.cpp +++ b/src/slic3r/GUI/Preset.cpp diff --git a/xs/src/slic3r/GUI/Preset.hpp b/src/slic3r/GUI/Preset.hpp index 821d7dc54..821d7dc54 100644 --- a/xs/src/slic3r/GUI/Preset.hpp +++ b/src/slic3r/GUI/Preset.hpp diff --git a/xs/src/slic3r/GUI/PresetBundle.cpp b/src/slic3r/GUI/PresetBundle.cpp index cd3924dd0..cd3924dd0 100644 --- a/xs/src/slic3r/GUI/PresetBundle.cpp +++ b/src/slic3r/GUI/PresetBundle.cpp diff --git a/xs/src/slic3r/GUI/PresetBundle.hpp b/src/slic3r/GUI/PresetBundle.hpp index 68ec534da..68ec534da 100644 --- a/xs/src/slic3r/GUI/PresetBundle.hpp +++ b/src/slic3r/GUI/PresetBundle.hpp diff --git a/xs/src/slic3r/GUI/PresetHints.cpp b/src/slic3r/GUI/PresetHints.cpp index d4c929c1c..d4c929c1c 100644 --- a/xs/src/slic3r/GUI/PresetHints.cpp +++ b/src/slic3r/GUI/PresetHints.cpp diff --git a/xs/src/slic3r/GUI/PresetHints.hpp b/src/slic3r/GUI/PresetHints.hpp index 39bf0b100..39bf0b100 100644 --- a/xs/src/slic3r/GUI/PresetHints.hpp +++ b/src/slic3r/GUI/PresetHints.hpp diff --git a/xs/src/slic3r/GUI/ProgressIndicator.hpp b/src/slic3r/GUI/ProgressIndicator.hpp index 0cf8b4a17..0cf8b4a17 100644 --- a/xs/src/slic3r/GUI/ProgressIndicator.hpp +++ b/src/slic3r/GUI/ProgressIndicator.hpp diff --git a/xs/src/slic3r/GUI/ProgressStatusBar.cpp b/src/slic3r/GUI/ProgressStatusBar.cpp index 363e34cb2..363e34cb2 100644 --- a/xs/src/slic3r/GUI/ProgressStatusBar.cpp +++ b/src/slic3r/GUI/ProgressStatusBar.cpp diff --git a/xs/src/slic3r/GUI/ProgressStatusBar.hpp b/src/slic3r/GUI/ProgressStatusBar.hpp index 9a7f58eee..7c2171a5e 100644 --- a/xs/src/slic3r/GUI/ProgressStatusBar.hpp +++ b/src/slic3r/GUI/ProgressStatusBar.hpp @@ -4,7 +4,7 @@ #include <memory> #include <functional> -#include "../../callback.hpp" +#include "callback.hpp" class wxTimer; class wxGauge; diff --git a/xs/src/slic3r/GUI/RammingChart.cpp b/src/slic3r/GUI/RammingChart.cpp index 8954ff93b..8954ff93b 100644 --- a/xs/src/slic3r/GUI/RammingChart.cpp +++ b/src/slic3r/GUI/RammingChart.cpp diff --git a/xs/src/slic3r/GUI/RammingChart.hpp b/src/slic3r/GUI/RammingChart.hpp index 7d3b9a962..7d3b9a962 100644 --- a/xs/src/slic3r/GUI/RammingChart.hpp +++ b/src/slic3r/GUI/RammingChart.hpp diff --git a/xs/src/slic3r/GUI/Tab.cpp b/src/slic3r/GUI/Tab.cpp index e0db63803..e0db63803 100644 --- a/xs/src/slic3r/GUI/Tab.cpp +++ b/src/slic3r/GUI/Tab.cpp diff --git a/xs/src/slic3r/GUI/Tab.hpp b/src/slic3r/GUI/Tab.hpp index e4e37d4eb..e4e37d4eb 100644 --- a/xs/src/slic3r/GUI/Tab.hpp +++ b/src/slic3r/GUI/Tab.hpp diff --git a/xs/src/slic3r/GUI/TabIface.cpp b/src/slic3r/GUI/TabIface.cpp index 29833322b..29833322b 100644 --- a/xs/src/slic3r/GUI/TabIface.cpp +++ b/src/slic3r/GUI/TabIface.cpp diff --git a/xs/src/slic3r/GUI/TabIface.hpp b/src/slic3r/GUI/TabIface.hpp index 2f7f4e8e7..2f7f4e8e7 100644 --- a/xs/src/slic3r/GUI/TabIface.hpp +++ b/src/slic3r/GUI/TabIface.hpp diff --git a/xs/src/slic3r/GUI/UpdateDialogs.cpp b/src/slic3r/GUI/UpdateDialogs.cpp index 70d9c851c..70d9c851c 100644 --- a/xs/src/slic3r/GUI/UpdateDialogs.cpp +++ b/src/slic3r/GUI/UpdateDialogs.cpp diff --git a/xs/src/slic3r/GUI/UpdateDialogs.hpp b/src/slic3r/GUI/UpdateDialogs.hpp index 62548b98b..62548b98b 100644 --- a/xs/src/slic3r/GUI/UpdateDialogs.hpp +++ b/src/slic3r/GUI/UpdateDialogs.hpp diff --git a/xs/src/slic3r/GUI/Widget.hpp b/src/slic3r/GUI/Widget.hpp index bcf772469..bcf772469 100644 --- a/xs/src/slic3r/GUI/Widget.hpp +++ b/src/slic3r/GUI/Widget.hpp diff --git a/xs/src/slic3r/GUI/WipeTowerDialog.cpp b/src/slic3r/GUI/WipeTowerDialog.cpp index eef4017c1..eef4017c1 100644 --- a/xs/src/slic3r/GUI/WipeTowerDialog.cpp +++ b/src/slic3r/GUI/WipeTowerDialog.cpp diff --git a/xs/src/slic3r/GUI/WipeTowerDialog.hpp b/src/slic3r/GUI/WipeTowerDialog.hpp index d858062da..d858062da 100644 --- a/xs/src/slic3r/GUI/WipeTowerDialog.hpp +++ b/src/slic3r/GUI/WipeTowerDialog.hpp diff --git a/src/slic3r/GUI/callback.hpp b/src/slic3r/GUI/callback.hpp new file mode 100644 index 000000000..ac92721a5 --- /dev/null +++ b/src/slic3r/GUI/callback.hpp @@ -0,0 +1,30 @@ +// I AM A PHONY PLACEHOLDER FOR THE PERL CALLBACK. +// GET RID OF ME! + +#ifndef slic3r_GUI_PerlCallback_phony_hpp_ +#define slic3r_GUI_PerlCallback_phony_hpp_ + +#include <vector> + +namespace Slic3r { + +class PerlCallback { +public: + PerlCallback(void *) {} + PerlCallback() {} + void register_callback(void *) {} + void deregister_callback() {} + void call() const {} + void call(int) const {} + void call(int, int) const {} + void call(const std::vector<int>&) const {} + void call(double) const {} + void call(double, double) const {} + void call(double, double, double) const {} + void call(double, double, double, double) const {} + void call(bool b) const {} +}; + +} // namespace Slic3r + +#endif /* slic3r_GUI_PerlCallback_phony_hpp_ */ diff --git a/xs/src/slic3r/GUI/wxExtensions.cpp b/src/slic3r/GUI/wxExtensions.cpp index 13730a497..13730a497 100644 --- a/xs/src/slic3r/GUI/wxExtensions.cpp +++ b/src/slic3r/GUI/wxExtensions.cpp diff --git a/xs/src/slic3r/GUI/wxExtensions.hpp b/src/slic3r/GUI/wxExtensions.hpp index 51c02035c..51c02035c 100644 --- a/xs/src/slic3r/GUI/wxExtensions.hpp +++ b/src/slic3r/GUI/wxExtensions.hpp diff --git a/xs/src/slic3r/GUI/wxinit.h b/src/slic3r/GUI/wxinit.h index b55681b92..b55681b92 100644 --- a/xs/src/slic3r/GUI/wxinit.h +++ b/src/slic3r/GUI/wxinit.h diff --git a/xs/src/slic3r/Utils/ASCIIFolding.cpp b/src/slic3r/Utils/ASCIIFolding.cpp index c61fe2902..c61fe2902 100644 --- a/xs/src/slic3r/Utils/ASCIIFolding.cpp +++ b/src/slic3r/Utils/ASCIIFolding.cpp diff --git a/xs/src/slic3r/Utils/ASCIIFolding.hpp b/src/slic3r/Utils/ASCIIFolding.hpp index 55f56482d..55f56482d 100644 --- a/xs/src/slic3r/Utils/ASCIIFolding.hpp +++ b/src/slic3r/Utils/ASCIIFolding.hpp diff --git a/xs/src/slic3r/Utils/Bonjour.cpp b/src/slic3r/Utils/Bonjour.cpp index 09d9b5873..09d9b5873 100644 --- a/xs/src/slic3r/Utils/Bonjour.cpp +++ b/src/slic3r/Utils/Bonjour.cpp diff --git a/xs/src/slic3r/Utils/Bonjour.hpp b/src/slic3r/Utils/Bonjour.hpp index 63f34638c..63f34638c 100644 --- a/xs/src/slic3r/Utils/Bonjour.hpp +++ b/src/slic3r/Utils/Bonjour.hpp diff --git a/xs/src/slic3r/Utils/Duet.cpp b/src/slic3r/Utils/Duet.cpp index f25327161..f25327161 100644 --- a/xs/src/slic3r/Utils/Duet.cpp +++ b/src/slic3r/Utils/Duet.cpp diff --git a/xs/src/slic3r/Utils/Duet.hpp b/src/slic3r/Utils/Duet.hpp index bc210d7a4..bc210d7a4 100644 --- a/xs/src/slic3r/Utils/Duet.hpp +++ b/src/slic3r/Utils/Duet.hpp diff --git a/xs/src/slic3r/Utils/FixModelByWin10.cpp b/src/slic3r/Utils/FixModelByWin10.cpp index 556035a5b..556035a5b 100644 --- a/xs/src/slic3r/Utils/FixModelByWin10.cpp +++ b/src/slic3r/Utils/FixModelByWin10.cpp diff --git a/xs/src/slic3r/Utils/FixModelByWin10.hpp b/src/slic3r/Utils/FixModelByWin10.hpp index c148a6970..c148a6970 100644 --- a/xs/src/slic3r/Utils/FixModelByWin10.hpp +++ b/src/slic3r/Utils/FixModelByWin10.hpp diff --git a/xs/src/slic3r/Utils/HexFile.cpp b/src/slic3r/Utils/HexFile.cpp index 282c647bd..282c647bd 100644 --- a/xs/src/slic3r/Utils/HexFile.cpp +++ b/src/slic3r/Utils/HexFile.cpp diff --git a/xs/src/slic3r/Utils/HexFile.hpp b/src/slic3r/Utils/HexFile.hpp index 1201d23a4..1201d23a4 100644 --- a/xs/src/slic3r/Utils/HexFile.hpp +++ b/src/slic3r/Utils/HexFile.hpp diff --git a/xs/src/slic3r/Utils/Http.cpp b/src/slic3r/Utils/Http.cpp index 9b67ceea8..9b67ceea8 100644 --- a/xs/src/slic3r/Utils/Http.cpp +++ b/src/slic3r/Utils/Http.cpp diff --git a/xs/src/slic3r/Utils/Http.hpp b/src/slic3r/Utils/Http.hpp index 44580b7ea..44580b7ea 100644 --- a/xs/src/slic3r/Utils/Http.hpp +++ b/src/slic3r/Utils/Http.hpp diff --git a/xs/src/slic3r/Utils/OctoPrint.cpp b/src/slic3r/Utils/OctoPrint.cpp index db86d7697..db86d7697 100644 --- a/xs/src/slic3r/Utils/OctoPrint.cpp +++ b/src/slic3r/Utils/OctoPrint.cpp diff --git a/xs/src/slic3r/Utils/OctoPrint.hpp b/src/slic3r/Utils/OctoPrint.hpp index f6c4d58c8..f6c4d58c8 100644 --- a/xs/src/slic3r/Utils/OctoPrint.hpp +++ b/src/slic3r/Utils/OctoPrint.hpp diff --git a/xs/src/slic3r/Utils/PresetUpdater.cpp b/src/slic3r/Utils/PresetUpdater.cpp index 2e423dc5e..2e423dc5e 100644 --- a/xs/src/slic3r/Utils/PresetUpdater.cpp +++ b/src/slic3r/Utils/PresetUpdater.cpp diff --git a/xs/src/slic3r/Utils/PresetUpdater.hpp b/src/slic3r/Utils/PresetUpdater.hpp index 6a53cca81..6a53cca81 100644 --- a/xs/src/slic3r/Utils/PresetUpdater.hpp +++ b/src/slic3r/Utils/PresetUpdater.hpp diff --git a/xs/src/slic3r/Utils/PrintHost.cpp b/src/slic3r/Utils/PrintHost.cpp index dd72bae40..dd72bae40 100644 --- a/xs/src/slic3r/Utils/PrintHost.cpp +++ b/src/slic3r/Utils/PrintHost.cpp diff --git a/xs/src/slic3r/Utils/PrintHost.hpp b/src/slic3r/Utils/PrintHost.hpp index bc828ea46..bc828ea46 100644 --- a/xs/src/slic3r/Utils/PrintHost.hpp +++ b/src/slic3r/Utils/PrintHost.hpp diff --git a/xs/src/slic3r/Utils/PrintHostSendDialog.cpp b/src/slic3r/Utils/PrintHostSendDialog.cpp index c5d441f87..c5d441f87 100644 --- a/xs/src/slic3r/Utils/PrintHostSendDialog.cpp +++ b/src/slic3r/Utils/PrintHostSendDialog.cpp diff --git a/xs/src/slic3r/Utils/PrintHostSendDialog.hpp b/src/slic3r/Utils/PrintHostSendDialog.hpp index dc4a8d6f7..dc4a8d6f7 100644 --- a/xs/src/slic3r/Utils/PrintHostSendDialog.hpp +++ b/src/slic3r/Utils/PrintHostSendDialog.hpp diff --git a/xs/src/slic3r/Utils/Semver.hpp b/src/slic3r/Utils/Semver.hpp index 736f9b891..736f9b891 100644 --- a/xs/src/slic3r/Utils/Semver.hpp +++ b/src/slic3r/Utils/Semver.hpp diff --git a/xs/src/slic3r/Utils/Serial.cpp b/src/slic3r/Utils/Serial.cpp index 601719b50..601719b50 100644 --- a/xs/src/slic3r/Utils/Serial.cpp +++ b/src/slic3r/Utils/Serial.cpp diff --git a/xs/src/slic3r/Utils/Serial.hpp b/src/slic3r/Utils/Serial.hpp index e4a28de09..e4a28de09 100644 --- a/xs/src/slic3r/Utils/Serial.hpp +++ b/src/slic3r/Utils/Serial.hpp diff --git a/xs/src/slic3r/Utils/Time.cpp b/src/slic3r/Utils/Time.cpp index f38c4b407..f38c4b407 100644 --- a/xs/src/slic3r/Utils/Time.cpp +++ b/src/slic3r/Utils/Time.cpp diff --git a/xs/src/slic3r/Utils/Time.hpp b/src/slic3r/Utils/Time.hpp index 7b670bd3e..7b670bd3e 100644 --- a/xs/src/slic3r/Utils/Time.hpp +++ b/src/slic3r/Utils/Time.hpp diff --git a/xs/CMakeLists.txt b/xs/CMakeLists.txt index 69e03779a..92964c900 100644 --- a/xs/CMakeLists.txt +++ b/xs/CMakeLists.txt @@ -1,435 +1,4 @@ -# Enable C++11 language standard. -set(CMAKE_CXX_STANDARD 11) -set(CMAKE_CXX_STANDARD_REQUIRED ON) - -# Enable C11 language standard. -set(CMAKE_C_STANDARD 11) -set(CMAKE_C_STANDARD_REQUIRED ON) - -# Add our own cmake module path. -list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake/modules/) - -if (CMAKE_SYSTEM_NAME STREQUAL "Linux") - # Workaround for an old CMake, which does not understand CMAKE_CXX_STANDARD. - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall -Wno-reorder" ) - find_package(PkgConfig REQUIRED) -endif() - -if (CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUXX) - # Adding -fext-numeric-literals to enable GCC extensions on definitions of quad float literals, which are required by Boost. - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fext-numeric-literals" ) -endif() - -# Where all the bundled libraries reside? -set(LIBDIR ${CMAKE_CURRENT_SOURCE_DIR}/src/) -# For the bundled boost libraries (boost::nowide) -include_directories(${LIBDIR}) -# For libslic3r.h -include_directories(${LIBDIR}/libslic3r) -#set(CMAKE_INCLUDE_CURRENT_DIR ON) - -if(WIN32) - # BOOST_ALL_NO_LIB: Avoid the automatic linking of Boost libraries on Windows. Rather rely on explicit linking. - add_definitions(-D_USE_MATH_DEFINES -D_WIN32 -DBOOST_ALL_NO_LIB -DBOOST_USE_WINAPI_VERSION=0x601) - # -D_ITERATOR_DEBUG_LEVEL) - if(WIN10SDK_PATH) - message("Building with Win10 Netfabb STL fixing service support") - add_definitions(-DHAS_WIN10SDK) - include_directories("${WIN10SDK_PATH}/Include") - else() - message("Building without Win10 Netfabb STL fixing service support") - endif() -endif() - -add_definitions(-DwxUSE_UNICODE -D_UNICODE -DUNICODE -DWXINTL_NO_GETTEXT_MACRO) - -add_library(libslic3r STATIC - ${LIBDIR}/libslic3r/BoundingBox.cpp - ${LIBDIR}/libslic3r/BoundingBox.hpp - ${LIBDIR}/libslic3r/BridgeDetector.cpp - ${LIBDIR}/libslic3r/BridgeDetector.hpp - ${LIBDIR}/libslic3r/ClipperUtils.cpp - ${LIBDIR}/libslic3r/ClipperUtils.hpp - ${LIBDIR}/libslic3r/Config.cpp - ${LIBDIR}/libslic3r/Config.hpp - ${LIBDIR}/libslic3r/EdgeGrid.cpp - ${LIBDIR}/libslic3r/EdgeGrid.hpp - ${LIBDIR}/libslic3r/ExPolygon.cpp - ${LIBDIR}/libslic3r/ExPolygon.hpp - ${LIBDIR}/libslic3r/ExPolygonCollection.cpp - ${LIBDIR}/libslic3r/ExPolygonCollection.hpp - ${LIBDIR}/libslic3r/Extruder.cpp - ${LIBDIR}/libslic3r/Extruder.hpp - ${LIBDIR}/libslic3r/ExtrusionEntity.cpp - ${LIBDIR}/libslic3r/ExtrusionEntity.hpp - ${LIBDIR}/libslic3r/ExtrusionEntityCollection.cpp - ${LIBDIR}/libslic3r/ExtrusionEntityCollection.hpp - ${LIBDIR}/libslic3r/ExtrusionSimulator.cpp - ${LIBDIR}/libslic3r/ExtrusionSimulator.hpp - ${LIBDIR}/libslic3r/FileParserError.hpp - ${LIBDIR}/libslic3r/Fill/Fill.cpp - ${LIBDIR}/libslic3r/Fill/Fill.hpp - ${LIBDIR}/libslic3r/Fill/Fill3DHoneycomb.cpp - ${LIBDIR}/libslic3r/Fill/Fill3DHoneycomb.hpp - ${LIBDIR}/libslic3r/Fill/FillBase.cpp - ${LIBDIR}/libslic3r/Fill/FillBase.hpp - ${LIBDIR}/libslic3r/Fill/FillConcentric.cpp - ${LIBDIR}/libslic3r/Fill/FillConcentric.hpp - ${LIBDIR}/libslic3r/Fill/FillHoneycomb.cpp - ${LIBDIR}/libslic3r/Fill/FillHoneycomb.hpp - ${LIBDIR}/libslic3r/Fill/FillGyroid.cpp - ${LIBDIR}/libslic3r/Fill/FillGyroid.hpp - ${LIBDIR}/libslic3r/Fill/FillPlanePath.cpp - ${LIBDIR}/libslic3r/Fill/FillPlanePath.hpp - ${LIBDIR}/libslic3r/Fill/FillRectilinear.cpp - ${LIBDIR}/libslic3r/Fill/FillRectilinear.hpp - ${LIBDIR}/libslic3r/Fill/FillRectilinear2.cpp - ${LIBDIR}/libslic3r/Fill/FillRectilinear2.hpp - ${LIBDIR}/libslic3r/Fill/FillRectilinear3.cpp - ${LIBDIR}/libslic3r/Fill/FillRectilinear3.hpp - ${LIBDIR}/libslic3r/Flow.cpp - ${LIBDIR}/libslic3r/Flow.hpp - ${LIBDIR}/libslic3r/Format/3mf.cpp - ${LIBDIR}/libslic3r/Format/3mf.hpp - ${LIBDIR}/libslic3r/Format/AMF.cpp - ${LIBDIR}/libslic3r/Format/AMF.hpp - ${LIBDIR}/libslic3r/Format/OBJ.cpp - ${LIBDIR}/libslic3r/Format/OBJ.hpp - ${LIBDIR}/libslic3r/Format/objparser.cpp - ${LIBDIR}/libslic3r/Format/objparser.hpp - ${LIBDIR}/libslic3r/Format/PRUS.cpp - ${LIBDIR}/libslic3r/Format/PRUS.hpp - ${LIBDIR}/libslic3r/Format/STL.cpp - ${LIBDIR}/libslic3r/Format/STL.hpp - ${LIBDIR}/libslic3r/GCode/Analyzer.cpp - ${LIBDIR}/libslic3r/GCode/Analyzer.hpp - ${LIBDIR}/libslic3r/GCode/CoolingBuffer.cpp - ${LIBDIR}/libslic3r/GCode/CoolingBuffer.hpp - ${LIBDIR}/libslic3r/GCode/PostProcessor.cpp - ${LIBDIR}/libslic3r/GCode/PostProcessor.hpp - ${LIBDIR}/libslic3r/GCode/PressureEqualizer.cpp - ${LIBDIR}/libslic3r/GCode/PressureEqualizer.hpp - ${LIBDIR}/libslic3r/GCode/PreviewData.cpp - ${LIBDIR}/libslic3r/GCode/PreviewData.hpp - ${LIBDIR}/libslic3r/GCode/PrintExtents.cpp - ${LIBDIR}/libslic3r/GCode/PrintExtents.hpp - ${LIBDIR}/libslic3r/GCode/SpiralVase.cpp - ${LIBDIR}/libslic3r/GCode/SpiralVase.hpp - ${LIBDIR}/libslic3r/GCode/ToolOrdering.cpp - ${LIBDIR}/libslic3r/GCode/ToolOrdering.hpp - ${LIBDIR}/libslic3r/GCode/WipeTower.hpp - ${LIBDIR}/libslic3r/GCode/WipeTowerPrusaMM.cpp - ${LIBDIR}/libslic3r/GCode/WipeTowerPrusaMM.hpp - ${LIBDIR}/libslic3r/GCode.cpp - ${LIBDIR}/libslic3r/GCode.hpp - ${LIBDIR}/libslic3r/GCodeReader.cpp - ${LIBDIR}/libslic3r/GCodeReader.hpp - ${LIBDIR}/libslic3r/GCodeSender.cpp - ${LIBDIR}/libslic3r/GCodeSender.hpp - ${LIBDIR}/libslic3r/GCodeTimeEstimator.cpp - ${LIBDIR}/libslic3r/GCodeTimeEstimator.hpp - ${LIBDIR}/libslic3r/GCodeWriter.cpp - ${LIBDIR}/libslic3r/GCodeWriter.hpp - ${LIBDIR}/libslic3r/Geometry.cpp - ${LIBDIR}/libslic3r/Geometry.hpp - ${LIBDIR}/libslic3r/Int128.hpp -# ${LIBDIR}/libslic3r/KdTree.hpp - ${LIBDIR}/libslic3r/Layer.cpp - ${LIBDIR}/libslic3r/Layer.hpp - ${LIBDIR}/libslic3r/LayerRegion.cpp - ${LIBDIR}/libslic3r/libslic3r.h - ${LIBDIR}/libslic3r/Line.cpp - ${LIBDIR}/libslic3r/Line.hpp - ${LIBDIR}/libslic3r/Model.cpp - ${LIBDIR}/libslic3r/Model.hpp - ${LIBDIR}/libslic3r/ModelArrange.hpp - ${LIBDIR}/libslic3r/MotionPlanner.cpp - ${LIBDIR}/libslic3r/MotionPlanner.hpp - ${LIBDIR}/libslic3r/MultiPoint.cpp - ${LIBDIR}/libslic3r/MultiPoint.hpp - ${LIBDIR}/libslic3r/MutablePriorityQueue.hpp - ${LIBDIR}/libslic3r/PerimeterGenerator.cpp - ${LIBDIR}/libslic3r/PerimeterGenerator.hpp - ${LIBDIR}/libslic3r/PlaceholderParser.cpp - ${LIBDIR}/libslic3r/PlaceholderParser.hpp - ${LIBDIR}/libslic3r/Point.cpp - ${LIBDIR}/libslic3r/Point.hpp - ${LIBDIR}/libslic3r/Polygon.cpp - ${LIBDIR}/libslic3r/Polygon.hpp - ${LIBDIR}/libslic3r/Polyline.cpp - ${LIBDIR}/libslic3r/Polyline.hpp - ${LIBDIR}/libslic3r/PolylineCollection.cpp - ${LIBDIR}/libslic3r/PolylineCollection.hpp - ${LIBDIR}/libslic3r/Print.cpp - ${LIBDIR}/libslic3r/Print.hpp - ${LIBDIR}/libslic3r/PrintExport.hpp - ${LIBDIR}/libslic3r/PrintConfig.cpp - ${LIBDIR}/libslic3r/PrintConfig.hpp - ${LIBDIR}/libslic3r/PrintObject.cpp - ${LIBDIR}/libslic3r/PrintRegion.cpp - ${LIBDIR}/libslic3r/Slicing.cpp - ${LIBDIR}/libslic3r/Slicing.hpp - ${LIBDIR}/libslic3r/SlicingAdaptive.cpp - ${LIBDIR}/libslic3r/SlicingAdaptive.hpp - ${LIBDIR}/libslic3r/SupportMaterial.cpp - ${LIBDIR}/libslic3r/SupportMaterial.hpp - ${LIBDIR}/libslic3r/Surface.cpp - ${LIBDIR}/libslic3r/Surface.hpp - ${LIBDIR}/libslic3r/SurfaceCollection.cpp - ${LIBDIR}/libslic3r/SurfaceCollection.hpp - ${LIBDIR}/libslic3r/SVG.cpp - ${LIBDIR}/libslic3r/SVG.hpp - ${LIBDIR}/libslic3r/Technologies.hpp - ${LIBDIR}/libslic3r/TriangleMesh.cpp - ${LIBDIR}/libslic3r/TriangleMesh.hpp - ${LIBDIR}/libslic3r/SLABasePool.hpp - ${LIBDIR}/libslic3r/SLABasePool.cpp -# ${LIBDIR}/libslic3r/utils.cpp - ${LIBDIR}/libslic3r/Utils.hpp - -) - -add_library(libslic3r_gui STATIC - ${LIBDIR}/slic3r/GUI/AboutDialog.cpp - ${LIBDIR}/slic3r/GUI/AboutDialog.hpp - ${LIBDIR}/slic3r/GUI/AppConfig.cpp - ${LIBDIR}/slic3r/GUI/AppConfig.hpp - ${LIBDIR}/slic3r/GUI/BackgroundSlicingProcess.cpp - ${LIBDIR}/slic3r/GUI/BackgroundSlicingProcess.hpp - ${LIBDIR}/slic3r/GUI/BitmapCache.cpp - ${LIBDIR}/slic3r/GUI/BitmapCache.hpp - ${LIBDIR}/slic3r/GUI/ConfigSnapshotDialog.cpp - ${LIBDIR}/slic3r/GUI/ConfigSnapshotDialog.hpp - ${LIBDIR}/slic3r/GUI/3DScene.cpp - ${LIBDIR}/slic3r/GUI/3DScene.hpp - ${LIBDIR}/slic3r/GUI/GLShader.cpp - ${LIBDIR}/slic3r/GUI/GLShader.hpp - ${LIBDIR}/slic3r/GUI/GLCanvas3D.hpp - ${LIBDIR}/slic3r/GUI/GLCanvas3D.cpp - ${LIBDIR}/slic3r/GUI/GLCanvas3DManager.hpp - ${LIBDIR}/slic3r/GUI/GLCanvas3DManager.cpp - ${LIBDIR}/slic3r/GUI/GLGizmo.hpp - ${LIBDIR}/slic3r/GUI/GLGizmo.cpp - ${LIBDIR}/slic3r/GUI/GLTexture.hpp - ${LIBDIR}/slic3r/GUI/GLTexture.cpp - ${LIBDIR}/slic3r/GUI/GLToolbar.hpp - ${LIBDIR}/slic3r/GUI/GLToolbar.cpp - ${LIBDIR}/slic3r/GUI/Preferences.cpp - ${LIBDIR}/slic3r/GUI/Preferences.hpp - ${LIBDIR}/slic3r/GUI/Preset.cpp - ${LIBDIR}/slic3r/GUI/Preset.hpp - ${LIBDIR}/slic3r/GUI/PresetBundle.cpp - ${LIBDIR}/slic3r/GUI/PresetBundle.hpp - ${LIBDIR}/slic3r/GUI/PresetHints.cpp - ${LIBDIR}/slic3r/GUI/PresetHints.hpp - ${LIBDIR}/slic3r/GUI/GUI.cpp - ${LIBDIR}/slic3r/GUI/GUI.hpp - ${LIBDIR}/slic3r/GUI/GUI_ObjectParts.cpp - ${LIBDIR}/slic3r/GUI/GUI_ObjectParts.hpp - ${LIBDIR}/slic3r/GUI/LambdaObjectDialog.cpp - ${LIBDIR}/slic3r/GUI/LambdaObjectDialog.hpp - ${LIBDIR}/slic3r/GUI/Tab.cpp - ${LIBDIR}/slic3r/GUI/Tab.hpp - ${LIBDIR}/slic3r/GUI/TabIface.cpp - ${LIBDIR}/slic3r/GUI/TabIface.hpp - ${LIBDIR}/slic3r/GUI/Field.cpp - ${LIBDIR}/slic3r/GUI/Field.hpp - ${LIBDIR}/slic3r/GUI/OptionsGroup.cpp - ${LIBDIR}/slic3r/GUI/OptionsGroup.hpp - ${LIBDIR}/slic3r/GUI/BedShapeDialog.cpp - ${LIBDIR}/slic3r/GUI/BedShapeDialog.hpp - ${LIBDIR}/slic3r/GUI/2DBed.cpp - ${LIBDIR}/slic3r/GUI/2DBed.hpp - ${LIBDIR}/slic3r/GUI/wxExtensions.cpp - ${LIBDIR}/slic3r/GUI/wxExtensions.hpp - ${LIBDIR}/slic3r/GUI/WipeTowerDialog.cpp - ${LIBDIR}/slic3r/GUI/WipeTowerDialog.hpp - ${LIBDIR}/slic3r/GUI/RammingChart.cpp - ${LIBDIR}/slic3r/GUI/RammingChart.hpp - ${LIBDIR}/slic3r/GUI/BonjourDialog.cpp - ${LIBDIR}/slic3r/GUI/BonjourDialog.hpp - ${LIBDIR}/slic3r/GUI/ButtonsDescription.cpp - ${LIBDIR}/slic3r/GUI/ButtonsDescription.hpp - ${LIBDIR}/slic3r/Config/Snapshot.cpp - ${LIBDIR}/slic3r/Config/Snapshot.hpp - ${LIBDIR}/slic3r/Config/Version.cpp - ${LIBDIR}/slic3r/Config/Version.hpp - ${LIBDIR}/slic3r/Utils/ASCIIFolding.cpp - ${LIBDIR}/slic3r/Utils/ASCIIFolding.hpp - ${LIBDIR}/slic3r/Utils/Serial.cpp - ${LIBDIR}/slic3r/Utils/Serial.hpp - ${LIBDIR}/slic3r/GUI/ConfigWizard.cpp - ${LIBDIR}/slic3r/GUI/ConfigWizard.hpp - ${LIBDIR}/slic3r/GUI/MsgDialog.cpp - ${LIBDIR}/slic3r/GUI/MsgDialog.hpp - ${LIBDIR}/slic3r/GUI/UpdateDialogs.cpp - ${LIBDIR}/slic3r/GUI/UpdateDialogs.hpp - ${LIBDIR}/slic3r/GUI/FirmwareDialog.cpp - ${LIBDIR}/slic3r/GUI/FirmwareDialog.hpp - ${LIBDIR}/slic3r/GUI/ProgressIndicator.hpp - ${LIBDIR}/slic3r/GUI/ProgressStatusBar.hpp - ${LIBDIR}/slic3r/GUI/ProgressStatusBar.cpp - ${LIBDIR}/slic3r/Utils/Http.cpp - ${LIBDIR}/slic3r/Utils/Http.hpp - ${LIBDIR}/slic3r/Utils/FixModelByWin10.cpp - ${LIBDIR}/slic3r/Utils/FixModelByWin10.hpp - ${LIBDIR}/slic3r/Utils/PrintHostSendDialog.cpp - ${LIBDIR}/slic3r/Utils/PrintHostSendDialog.hpp - ${LIBDIR}/slic3r/Utils/OctoPrint.cpp - ${LIBDIR}/slic3r/Utils/OctoPrint.hpp - ${LIBDIR}/slic3r/Utils/Duet.cpp - ${LIBDIR}/slic3r/Utils/Duet.hpp - ${LIBDIR}/slic3r/Utils/PrintHost.cpp - ${LIBDIR}/slic3r/Utils/PrintHost.hpp - ${LIBDIR}/slic3r/Utils/Bonjour.cpp - ${LIBDIR}/slic3r/Utils/Bonjour.hpp - ${LIBDIR}/slic3r/Utils/PresetUpdater.cpp - ${LIBDIR}/slic3r/Utils/PresetUpdater.hpp - ${LIBDIR}/slic3r/Utils/Time.cpp - ${LIBDIR}/slic3r/Utils/Time.hpp - ${LIBDIR}/slic3r/Utils/HexFile.cpp - ${LIBDIR}/slic3r/Utils/HexFile.hpp - ${LIBDIR}/slic3r/AppController.hpp - ${LIBDIR}/slic3r/AppController.cpp - ${LIBDIR}/slic3r/AppControllerWx.cpp -) - -add_library(admesh STATIC - ${LIBDIR}/admesh/connect.cpp - ${LIBDIR}/admesh/normals.cpp - ${LIBDIR}/admesh/shared.cpp - ${LIBDIR}/admesh/stl.h - ${LIBDIR}/admesh/stl_io.cpp - ${LIBDIR}/admesh/stlinit.cpp - ${LIBDIR}/admesh/util.cpp -) - -add_library(miniz STATIC - ${LIBDIR}/miniz/miniz.h - ${LIBDIR}/miniz/miniz_common.h - ${LIBDIR}/miniz/miniz_tdef.h - ${LIBDIR}/miniz/miniz_tinfl.h - ${LIBDIR}/miniz/miniz_zip.h - ${LIBDIR}/miniz/miniz.cpp - ${LIBDIR}/miniz/miniz_tdef.cpp - ${LIBDIR}/miniz/miniz_tinfl.cpp - ${LIBDIR}/miniz/miniz_zip.cpp -) - -add_library(clipper STATIC - ${LIBDIR}/clipper.cpp - ${LIBDIR}/clipper.hpp -) - -add_library(polypartition STATIC - ${LIBDIR}/polypartition.cpp - ${LIBDIR}/polypartition.h -) - -add_library(poly2tri STATIC - ${LIBDIR}/poly2tri/common/shapes.cc - ${LIBDIR}/poly2tri/common/shapes.h - ${LIBDIR}/poly2tri/common/utils.h - ${LIBDIR}/poly2tri/poly2tri.h - ${LIBDIR}/poly2tri/sweep/advancing_front.cc - ${LIBDIR}/poly2tri/sweep/advancing_front.h - ${LIBDIR}/poly2tri/sweep/cdt.cc - ${LIBDIR}/poly2tri/sweep/cdt.h - ${LIBDIR}/poly2tri/sweep/sweep.cc - ${LIBDIR}/poly2tri/sweep/sweep.h - ${LIBDIR}/poly2tri/sweep/sweep_context.cc - ${LIBDIR}/poly2tri/sweep/sweep_context.h -) - -add_library(nowide STATIC - ${LIBDIR}/boost/nowide/args.hpp - ${LIBDIR}/boost/nowide/cenv.hpp - ${LIBDIR}/boost/nowide/config.hpp - ${LIBDIR}/boost/nowide/convert.hpp - ${LIBDIR}/boost/nowide/cstdio.hpp - ${LIBDIR}/boost/nowide/cstdlib.hpp - ${LIBDIR}/boost/nowide/filebuf.hpp - ${LIBDIR}/boost/nowide/fstream.hpp - ${LIBDIR}/boost/nowide/integration/filesystem.hpp - ${LIBDIR}/boost/nowide/iostream.cpp - ${LIBDIR}/boost/nowide/iostream.hpp - ${LIBDIR}/boost/nowide/stackstring.hpp - ${LIBDIR}/boost/nowide/system.hpp - ${LIBDIR}/boost/nowide/utf8_codecvt.hpp - ${LIBDIR}/boost/nowide/windows.hpp -) - -add_library(Shiny STATIC - ${LIBDIR}/Shiny/Shiny.h - ${LIBDIR}/Shiny/ShinyConfig.h - ${LIBDIR}/Shiny/ShinyData.h - ${LIBDIR}/Shiny/ShinyMacros.h - ${LIBDIR}/Shiny/ShinyManager.c - ${LIBDIR}/Shiny/ShinyManager.h - ${LIBDIR}/Shiny/ShinyNode.c - ${LIBDIR}/Shiny/ShinyNode.h - ${LIBDIR}/Shiny/ShinyNodePool.c - ${LIBDIR}/Shiny/ShinyNodePool.h - ${LIBDIR}/Shiny/ShinyNodeState.c - ${LIBDIR}/Shiny/ShinyNodeState.h - ${LIBDIR}/Shiny/ShinyOutput.c - ${LIBDIR}/Shiny/ShinyOutput.h - ${LIBDIR}/Shiny/ShinyPrereqs.h - ${LIBDIR}/Shiny/ShinyTools.c - ${LIBDIR}/Shiny/ShinyTools.h - ${LIBDIR}/Shiny/ShinyVersion.h - ${LIBDIR}/Shiny/ShinyZone.c - ${LIBDIR}/Shiny/ShinyZone.h -) - -add_library(semver STATIC - ${LIBDIR}/semver/semver.h - ${LIBDIR}/semver/semver.c -) - -# ############################################################################## -# Configure rasterizer target -# ############################################################################## - -find_package(PNG QUIET) - -option(RASTERIZER_FORCE_BUILTIN_LIBPNG "Force the usage of builting libpng instead of the system version." OFF) - -add_library(rasterizer STATIC - ${LIBDIR}/libslic3r/Rasterizer/Rasterizer.hpp - ${LIBDIR}/libslic3r/Rasterizer/Rasterizer.cpp -) - -if(PNG_FOUND AND NOT RASTERIZER_FORCE_BUILTIN_LIBPNG) - message(STATUS "Using system libpng.") - target_link_libraries(rasterizer PRIVATE ${PNG_LIBRARIES}) - target_include_directories(rasterizer PRIVATE ${PNG_INCLUDE_DIRS}) - target_compile_definitions(rasterizer PRIVATE ${PNG_DEFINITIONS}) -else() - set(ZLIB_LIBRARY "") - message(WARNING "Using builtin libpng. This can cause crashes on some platforms.") - add_subdirectory( ${LIBDIR}/png/zlib) - - set(ZLIB_INCLUDE_DIR - ${LIBDIR}/png/zlib - ${CMAKE_CURRENT_BINARY_DIR}/src/png/zlib - ) - - add_subdirectory( ${LIBDIR}/png/libpng ) - set_target_properties(zlibstatic PROPERTIES POSITION_INDEPENDENT_CODE ON) - set_target_properties(png_static PROPERTIES POSITION_INDEPENDENT_CODE ON) - - target_include_directories(rasterizer PRIVATE - ${LIBDIR}/png/libpng - ${CMAKE_CURRENT_BINARY_DIR}/src/png/libpng - ) - target_link_libraries(rasterizer PRIVATE png_static zlibstatic) - -endif() - -target_link_libraries(libslic3r rasterizer ) - -# ############################################################################## +project(XS) # Generate the Slic3r Perl module (XS) typemap file. set(MyTypemap ${CMAKE_CURRENT_BINARY_DIR}/typemap) @@ -461,12 +30,6 @@ set(XS_XSP_FILES ${XSP_DIR}/GCode.xsp ${XSP_DIR}/GCodeSender.xsp ${XSP_DIR}/Geometry.xsp - ${XSP_DIR}/GUI.xsp - ${XSP_DIR}/GUI_AppConfig.xsp - ${XSP_DIR}/GUI_BackgroundSlicingProcess.xsp - ${XSP_DIR}/GUI_3DScene.xsp - ${XSP_DIR}/GUI_Preset.xsp - ${XSP_DIR}/GUI_Tab.xsp ${XSP_DIR}/Layer.xsp ${XSP_DIR}/Line.xsp ${XSP_DIR}/Model.xsp @@ -481,10 +44,6 @@ set(XS_XSP_FILES ${XSP_DIR}/Surface.xsp ${XSP_DIR}/SurfaceCollection.xsp ${XSP_DIR}/TriangleMesh.xsp - ${XSP_DIR}/Utils_PrintHost.xsp - ${XSP_DIR}/Utils_PresetUpdater.xsp - ${XSP_DIR}/AppController.xsp - ${XSP_DIR}/ProgressStatusBar.xsp ${XSP_DIR}/XS.xsp ) foreach (file ${XS_XSP_FILES}) @@ -515,46 +74,38 @@ else() endif() add_library(XS ${XS_SHARED_LIBRARY_TYPE} ${XS_MAIN_CPP} - ${LIBDIR}/libslic3r/utils.cpp - ${LIBDIR}/slic3r/GUI/wxPerlIface.cpp - ${LIBDIR}/perlglue.cpp - ${LIBDIR}/callback.cpp - ${LIBDIR}/callback.hpp - ${LIBDIR}/ppport.h - ${LIBDIR}/xsinit.h - ${CMAKE_CURRENT_LIST_DIR}/xsp/my.map +# ${LIBDIR}/libslic3r/utils.cpp +# ${LIBDIR}/slic3r/GUI/wxPerlIface.cpp + src/perlglue.cpp +# src/callback.cpp +# src/callback.hpp + src/ppport.h + src/xsinit.h + xsp/my.map # mytype.map is empty. Is it required by Build.PL or the Perl xspp module? - ${CMAKE_CURRENT_LIST_DIR}/xsp/mytype.map + xsp/mytype.map # Used by Perl xsubpp to generate XS.cpp - ${CMAKE_CURRENT_LIST_DIR}/xsp/typemap.xspt + xsp/typemap.xspt ) if(APPLE) set_target_properties(XS PROPERTIES BUNDLE TRUE) # Ignore undefined symbols of the perl interpreter, they will be found in the caller image. target_link_libraries(XS "-undefined dynamic_lookup") endif() -target_link_libraries(XS libslic3r libslic3r_gui admesh miniz clipper nowide polypartition poly2tri semver avrdude qhull) +target_link_libraries(XS libslic3r admesh miniz clipper nowide polypartition poly2tri semver avrdude qhull) if(SLIC3R_PROFILE) target_link_libraries(XS Shiny) endif() -# Add the OpenGL and GLU libraries. -if (SLIC3R_GUI) - if (MSVC) - target_link_libraries(XS user32.lib Setupapi.lib OpenGL32.Lib GlU32.Lib) - elseif (MINGW) - target_link_libraries(XS -lopengl32) - elseif (APPLE) - target_link_libraries(XS "-framework OpenGL") - else () - target_link_libraries(XS -lGL -lGLU) - endif () -endif () - target_include_directories(XS PRIVATE src src/libslic3r) # Local include directories target_compile_definitions(XS PRIVATE -DSLIC3RXS) set_target_properties(XS PROPERTIES PREFIX "") # Prevent cmake from generating libXS.so instead of XS.so +target_link_libraries(XS ${Boost_LIBRARIES}) +# target_link_libraries(XS ${wxWidgets_LIBRARIES}) +# target_link_libraries(XS ${CURL_LIBRARIES}) +# target_link_libraries(XS ${OPENSSL_LIBRARIES}) + if (APPLE) # add_compile_options(-stdlib=libc++) # add_definitions(-DBOOST_THREAD_DONT_USE_CHRONO -DBOOST_NO_CXX11_RVALUE_REFERENCES -DBOOST_THREAD_USES_MOVE) @@ -578,56 +129,19 @@ if (MSVC AND SLIC3R_MSVC_PDB AND "${CMAKE_BUILD_TYPE}" STREQUAL "Release") ) endif() -## Configuration flags -if (SLIC3R_GUI) - message("Slic3r will be built with GUI support") - target_compile_definitions(XS PRIVATE -DSLIC3R_GUI) -endif () - -if (SLIC3R_PROFILE) - message("Slic3r will be built with a Shiny invasive profiler") - add_definitions(-DSLIC3R_PROFILE) -endif () - if (CMAKE_BUILD_TYPE MATCHES DEBUG) target_compile_definitions(XS PRIVATE -DSLIC3R_DEBUG -DDEBUG -D_DEBUG) else () target_compile_definitions(XS PRIVATE -DNDEBUG) endif () -# Perl specific stuff -find_package(PerlLibs REQUIRED) -set(PerlEmbed_DEBUG 1) -find_package(PerlEmbed REQUIRED) target_include_directories(XS PRIVATE ${PERL_INCLUDE_PATH}) target_compile_options(XS PRIVATE ${PerlEmbed_CCFLAGS}) -# If the Perl is compiled with optimization off, disable optimization over the whole project. -if (WIN32 AND ";${PerlEmbed_CCFLAGS};" MATCHES ";[-/]Od;") - message(STATUS "Perl compiled without optimization. Disabling optimization for the Slic3r build.") - message("Old CMAKE_CXX_FLAGS_RELEASE: ${CMAKE_CXX_FLAGS_RELEASE}") - message("Old CMAKE_CXX_FLAGS_RELWITHDEBINFO: ${CMAKE_CXX_FLAGS_RELEASE}") - message("Old CMAKE_CXX_FLAGS: ${CMAKE_CXX_FLAGS_RELEASE}") - set(CMAKE_CXX_FLAGS_RELEASE "/MD /Od /Zi /EHsc /DNDEBUG /DWIN32 /DTBB_USE_ASSERT") - set(CMAKE_C_FLAGS_RELEASE "/MD /Od /Zi /DNDEBUG /DWIN32 /DTBB_USE_ASSERT") - set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "/MD /Od /Zi /EHsc /DNDEBUG /DWIN32 /DTBB_USE_ASSERT") - set(CMAKE_C_FLAGS_RELWITHDEBINFO "/MD /Od /Zi /DNDEBUG /DWIN32 /DTBB_USE_ASSERT") - set(CMAKE_CXX_FLAGS "/MD /Od /Zi /EHsc /DNDEBUG /DWIN32 /DTBB_USE_ASSERT") - set(CMAKE_C_FLAGS "/MD /Od /Zi /DNDEBUG /DWIN32 /DTBB_USE_ASSERT") -endif() -# The following line will add -fPIC on Linux to make the XS.so rellocable. -add_definitions(${PerlEmbed_CCCDLFLAGS}) + if (WIN32) target_link_libraries(XS ${PERL_LIBRARY}) endif() -add_subdirectory(src/avrdude) - -add_subdirectory(src/qhull) -include_directories(${LIBDIR}/qhull/src) -message(STATUS ${LIBDIR}/qhull/src) - -## REQUIRED packages - # Find and configure boost if(SLIC3R_STATIC) # Use static boost libraries. @@ -635,136 +149,22 @@ if(SLIC3R_STATIC) # Use boost libraries linked statically to the C++ runtime. # set(Boost_USE_STATIC_RUNTIME ON) endif() -#set(Boost_DEBUG ON) -find_package(Boost REQUIRED COMPONENTS system filesystem thread log locale regex) -if(Boost_FOUND) - include_directories(${Boost_INCLUDE_DIRS}) - target_link_libraries(XS ${Boost_LIBRARIES}) - if (APPLE) - # BOOST_ASIO_DISABLE_KQUEUE : prevents a Boost ASIO bug on OS X: https://svn.boost.org/trac/boost/ticket/5339 - add_definitions(-DBOOST_ASIO_DISABLE_KQUEUE) - endif() - if(NOT SLIC3R_STATIC) - add_definitions(-DBOOST_LOG_DYN_LINK) - endif() -endif() -# Find and configure intel-tbb -if(SLIC3R_STATIC) - set(TBB_STATIC 1) -endif() -set(TBB_DEBUG 1) -find_package(TBB REQUIRED) -include_directories(${TBB_INCLUDE_DIRS}) -add_definitions(${TBB_DEFINITIONS}) -if(MSVC) - # Suppress implicit linking of the TBB libraries by the Visual Studio compiler. - add_definitions(-D__TBB_NO_IMPLICIT_LINKAGE) -endif() -# The Intel TBB library will use the std::exception_ptr feature of C++11. -add_definitions(-DTBB_USE_CAPTURED_EXCEPTION=0) +target_link_libraries(XS ${Boost_LIBRARIES}) target_link_libraries(XS ${TBB_LIBRARIES}) - -# Find and configure wxWidgets -if (SLIC3R_PRUSACONTROL) - set(wxWidgets_UseAlienWx 1) - if (wxWidgets_UseAlienWx) - set(AlienWx_DEBUG 1) - find_package(AlienWx REQUIRED COMPONENTS base core adv html gl) - include_directories(${AlienWx_INCLUDE_DIRS}) - #add_compile_options(${AlienWx_CXX_FLAGS}) - add_definitions(${AlienWx_DEFINITIONS}) - set(wxWidgets_LIBRARIES ${AlienWx_LIBRARIES}) - # On Linux / gtk, we need to have a direct access to gtk+ for some workarounds. - if (AlienWx_GUI_TOOLKIT STREQUAL "gtk2") - pkg_check_modules(GTK2 gtk+-2.0) - include_directories(${GTK2_INCLUDE_DIRS}) - endif() - if (AlienWx_GUI_TOOLKIT STREQUAL "gtk3") - pkg_check_modules(GTK3 gtk+-3.0) - include_directories(${GTK3_INCLUDE_DIRS}) - endif() - else () - find_package(wxWidgets REQUIRED COMPONENTS base core adv html gl) - include(${wxWidgets_USE_FILE}) - endif () - add_definitions(-DSLIC3R_GUI -DSLIC3R_PRUS) - target_link_libraries(XS ${wxWidgets_LIBRARIES}) -endif() - -find_package(CURL REQUIRED) -include_directories(${CURL_INCLUDE_DIRS}) -target_link_libraries(XS ${CURL_LIBRARIES}) - -if (SLIC3R_STATIC) - if (NOT APPLE) - # libcurl is always linked dynamically to the system libcurl on OSX. - # On other systems, libcurl is linked statically if SLIC3R_STATIC is set. - add_definitions(-DCURL_STATICLIB) - endif() - if (CMAKE_SYSTEM_NAME STREQUAL "Linux") - # As of now, our build system produces a statically linked libcurl, - # which links the OpenSSL library dynamically. - find_package(OpenSSL REQUIRED) - message("OpenSSL include dir: ${OPENSSL_INCLUDE_DIR}") - message("OpenSSL libraries: ${OPENSSL_LIBRARIES}") - include_directories(${OPENSSL_INCLUDE_DIR}) - target_link_libraries(XS ${OPENSSL_LIBRARIES}) - endif() -endif() - -## OPTIONAL packages - -# Find eigen3 or use bundled version -if (NOT SLIC3R_STATIC) - find_package(Eigen3) -endif () -if (NOT Eigen3_FOUND) - set(Eigen3_FOUND 1) - set(EIGEN3_INCLUDE_DIR ${LIBDIR}/eigen/) -endif () -include_directories(${EIGEN3_INCLUDE_DIR}) - -# Find expat or use bundled version -# Always use the system libexpat on Linux. -if (NOT SLIC3R_STATIC OR CMAKE_SYSTEM_NAME STREQUAL "Linux") - find_package(EXPAT) -endif () -if (NOT EXPAT_FOUND) - add_library(expat STATIC - ${LIBDIR}/expat/xmlparse.c - ${LIBDIR}/expat/xmlrole.c - ${LIBDIR}/expat/xmltok.c - ) - set(EXPAT_FOUND 1) - set(EXPAT_INCLUDE_DIRS ${LIBDIR}/expat/) - set(EXPAT_LIBRARIES expat) -endif () -include_directories(${EXPAT_INCLUDE_DIRS}) +# target_link_libraries(XS ${wxWidgets_LIBRARIES}) target_link_libraries(XS ${EXPAT_LIBRARIES}) +# target_link_libraries(XS ${GLEW_LIBRARIES}) -# Find glew or use bundled version -if (NOT SLIC3R_STATIC) - find_package(GLEW) -endif () -if (NOT GLEW_FOUND) - add_library(glew STATIC ${LIBDIR}/glew/src/glew.c) - set(GLEW_FOUND 1) - set(GLEW_INCLUDE_DIRS ${LIBDIR}/glew/include/) - set(GLEW_LIBRARIES glew) - add_definitions(-DGLEW_STATIC) -endif () -include_directories(${GLEW_INCLUDE_DIRS}) -target_link_libraries(XS ${GLEW_LIBRARIES}) # Install the XS.pm and XS.{so,dll,bundle} into the local-lib directory. -set(PERL_LOCAL_LIB_DIR "${PROJECT_SOURCE_DIR}/local-lib/lib/perl5/${PerlEmbed_ARCHNAME}") +set(PERL_LOCAL_LIB_DIR "../local-lib/lib/perl5/${PerlEmbed_ARCHNAME}") add_custom_command( TARGET XS POST_BUILD COMMAND ${CMAKE_COMMAND} -E make_directory "${PERL_LOCAL_LIB_DIR}/auto/Slic3r/XS/" COMMAND ${CMAKE_COMMAND} -E copy "$<TARGET_FILE:XS>" "${PERL_LOCAL_LIB_DIR}/auto/Slic3r/XS/" COMMAND ${CMAKE_COMMAND} -E make_directory "${PERL_LOCAL_LIB_DIR}/Slic3r/" - COMMAND ${CMAKE_COMMAND} -E copy "${PROJECT_SOURCE_DIR}/xs/lib/Slic3r/XS.pm" "${PERL_LOCAL_LIB_DIR}/Slic3r/" + COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_CURRENT_SOURCE_DIR}/lib/Slic3r/XS.pm" "${PERL_LOCAL_LIB_DIR}/Slic3r/" COMMENT "Installing XS.pm and XS.{so,dll,bundle} into the local-lib directory ..." ) if(APPLE) @@ -775,23 +175,11 @@ if(APPLE) ) endif() -# Create a slic3r executable -add_executable(slic3r EXCLUDE_FROM_ALL ${PROJECT_SOURCE_DIR}/src/slic3r.cpp) target_include_directories(XS PRIVATE src src/libslic3r) -target_link_libraries(slic3r libslic3r libslic3r_gui admesh miniz ${Boost_LIBRARIES} clipper ${EXPAT_LIBRARIES} ${GLEW_LIBRARIES} polypartition poly2tri ${TBB_LIBRARIES} ${wxWidgets_LIBRARIES}) - -add_executable(slabasebed EXCLUDE_FROM_ALL ${PROJECT_SOURCE_DIR}/src/slabasebed.cpp) -target_include_directories(slabasebed PRIVATE src src/libslic3r) -target_link_libraries(slabasebed libslic3r libslic3r_gui qhull admesh miniz ${Boost_LIBRARIES} clipper ${EXPAT_LIBRARIES} ${GLEW_LIBRARIES} polypartition poly2tri ${TBB_LIBRARIES} ${wxWidgets_LIBRARIES} ${CMAKE_DL_LIBS}) if(SLIC3R_PROFILE) target_link_libraries(Shiny) endif() -if (APPLE) - target_link_libraries(slic3r "-framework IOKit" "-framework CoreFoundation" -lc++) -elseif (NOT MSVC) - target_link_libraries(slic3r -lstdc++) -endif () if (MSVC) # Here we associate some additional properties with the MSVC project to enable compilation and debugging out of the box. @@ -799,35 +187,10 @@ if (MSVC) string(REPLACE "/" "\\" PROPS_PERL_BIN_PATH "${PROPS_PERL_BIN_PATH}") string(REPLACE "/" "\\" PROPS_PERL_EXECUTABLE "${PERL_EXECUTABLE}") string(REPLACE "/" "\\" PROPS_CMAKE_SOURCE_DIR "${CMAKE_SOURCE_DIR}") - configure_file("${PROJECT_SOURCE_DIR}/cmake/msvc/xs.wperl.props.in" "${CMAKE_BINARY_DIR}/xs.wperl.props" NEWLINE_STYLE CRLF) + configure_file("../cmake/msvc/xs.wperl.props.in" "${CMAKE_BINARY_DIR}/xs.wperl.props" NEWLINE_STYLE CRLF) set_target_properties(XS PROPERTIES VS_USER_PROPS "${CMAKE_BINARY_DIR}/xs.wperl.props") endif() -# l10n -set(L10N_DIR "${PROJECT_SOURCE_DIR}/resources/localization") -add_custom_target(pot - COMMAND xgettext --keyword=L --from-code=UTF-8 --debug - -f "${L10N_DIR}/list.txt" - -o "${L10N_DIR}/Slic3rPE.pot" - WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} - COMMENT "Generate pot file from strings in the source tree" -) - -# ############################################################################## -# Adding libnest2d project for bin packing... -# ############################################################################## - -set(LIBNEST2D_UNITTESTS ON CACHE BOOL "Force generating unittests for libnest2d") - -add_subdirectory(${LIBDIR}/libnest2d) -target_compile_definitions(libslic3r PUBLIC -DUSE_TBB) -target_include_directories(libslic3r PUBLIC BEFORE ${LIBNEST2D_INCLUDES}) -target_include_directories(libslic3r_gui PUBLIC BEFORE ${LIBNEST2D_INCLUDES}) - -message(STATUS "Libnest2D Libraries: ${LIBNEST2D_LIBRARIES}") -target_link_libraries(libslic3r ${LIBNEST2D_LIBRARIES}) -# ############################################################################## - # Installation install(TARGETS XS DESTINATION ${PERL_VENDORARCH}/auto/Slic3r/XS) install(FILES lib/Slic3r/XS.pm DESTINATION ${PERL_VENDORLIB}/Slic3r) diff --git a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch03s01s01.html~ b/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch03s01s01.html~ deleted file mode 100644 index 20b5c4514..000000000 --- a/xs/src/avrdude/atmel-docs/EDBG/protocoldocs/ch03s01s01.html~ +++ /dev/null @@ -1,215 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml"><head>
-<meta content="IE=edge" http-equiv="X-UA-Compatible" />
-<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
-<title>QUERY - - Atmel EDBG-based Tools Protocols</title><meta content="DocBook XSL Stylesheets V1.78.1" name="generator" /><link rel="home" href="index.html" title="Atmel EDBG-based Tools Protocols" /><link rel="up" href="ch03s01.html" title="Protocol commands" /><link rel="prev" href="ch03s01.html" title="Protocol commands" /><link rel="next" href="section_edbg_query_contexts.html" title="EDBG QUERY contexts" /><meta content="QUERY" name="Section-title" /><script type="text/javascript">
- //The id for tree cookie
- var treeCookieId = "treeview-10619";
- var language = "en";
- var w = new Object();
- //Localization
- txt_filesfound = 'Results';
- txt_enter_at_least_1_char = "You must enter at least one character.";
- txt_browser_not_supported = "JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site.";
- txt_please_wait = "Please wait. Search in progress...";
- txt_results_for = "Results for: ";
- </script><link type="image/x-icon" href="../favicon.ico" rel="shortcut icon" /><link href="../common/css/positioning.css" type="text/css" rel="stylesheet" /><link href="../common/jquery/theme-redmond/jquery-ui-1.8.2.custom.css" type="text/css" rel="stylesheet" /><link href="../common/jquery/treeview/jquery.treeview.css" type="text/css" rel="stylesheet" /><style type="text/css">
- #noscript{
- font-weight:bold;
- background-color:#55AA55;
- font-weight:bold;
- height:25spx;
- z-index:3000;
- top:0px;
- width:100%;
- position:relative;
- border-bottom:solid 5px black;
- text-align:center;
- color:white;
- }
-
- input{
- margin-bottom:5px;
- margin-top:2px;
- }
- .folder{
- display:block;
- height:22px;
- padding-left:20px;
- background:transparent url(../common/jquery/treeview/images/folder.gif) 0 0px no-repeat;
- }
- .dochome{
- display:block;
- margin:10px 0 0 0;
- padding-left:20px;
- background:transparent url(../common/images/Library.png) 0 0px no-repeat;
- }
- .root{
- display:block;
- margin:10px 0 0 2px;
- padding-left:20px;
- background:transparent url(../common/images/Book_Open.png) 0 0px no-repeat;
- }
- .dochome a,
- .root a {
- text-decoration:none;
- font-size:12px;
- color:#517291;
- }
- span.contentsTab{
- padding-left:20px;
- background:url(../common/images/toc-icon.png) no-repeat 0 center;
- }
- span.searchTab{
- padding-left:20px;
- background:url(../common/images/search-icon.png) no-repeat 0 center;
- }
-
- /* Overide jquery treeview's defaults for ul. */
- .treeview ul{
- background-color:transparent;
- margin-top:4px;
- }
- #webhelp-currentid{
- background-color:#D8D8D8 !important;
- }
- .treeview .hover{
- color:black;
- }
- .filetree li span a{
- text-decoration:none;
- font-size:12px;
- color:#517291;
- }
-
- .filetree span.file {
- background: url(../common/images/Document_Text.png) 0 0 no-repeat;
- }
-
- /* Override jquery-ui's default css customizations. These are supposed to take precedence over those.*/
- .ui-widget-content{
- border:0px;
- background:none;
- color:none;
- }
- .ui-widget-header{
- color:#e9e8e9;
- border-left:1px solid #e5e5e5;
- border-right:1px solid #e5e5e5;
- border-bottom:1px solid #bbc4c5;
- border-top:4px solid #e5e5e5;
- border:medium none;
- background:#F4F4F4; /* old browsers */
- background:-moz-linear-gradient(top, #F4F4F4 0%, #E6E4E5 100%); /* firefox */
- background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #F4F4F4), color-stop(100%, #E6E4E5)); /* webkit */
- font-weight:none;
- }
- .ui-widget-header a{
- color:none;
- }
- .ui-state-default,
- .ui-widget-content .ui-state-default,
- .ui-widget-header .ui-state-default{
- border:none;
- background:none;
- font-weight:none;
- color:none;
- }
- .ui-state-default a,
- .ui-state-default a:link,
- .ui-state-default a:visited{
- color:black;
- text-decoration:none;
- }
- .ui-state-hover,
- .ui-widget-content .ui-state-hover,
- .ui-widget-header .ui-state-hover,
- .ui-state-focus,
- .ui-widget-content .ui-state-focus,
- .ui-widget-header .ui-state-focus{
- border:none;
- background:none;
- font-weight:none;
- color:none;
- }
-
- .ui-state-active,
- .ui-widget-content .ui-state-active,
- .ui-widget-header .ui-state-active{
- border:none;
- background:none;
- font-weight:none;
- color:none;
- }
- .ui-state-active a,
- .ui-state-active a:link,
- .ui-state-active a:visited{
- color:black;
- text-decoration:none;
- background:#C6C6C6; /* old browsers */
- background:-moz-linear-gradient(top, #C6C6C6 0%, #D8D8D8 100%); /* firefox */
- background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #C6C6C6), color-stop(100%, #D8D8D8)); /* webkit */
- -webkit-border-radius:15px;
- -moz-border-radius:10px;
- border:1px solid #f1f1f1;
- }
- .ui-corner-all{
- border-radius:0 0 0 0;
- }
-
- .ui-tabs{
- padding:.2em;
- }
- .ui-tabs .ui-tabs-panel {
- padding-top: 6px;
- }
- .ui-tabs .ui-tabs-nav li{
- top:0px;
- margin:-2px 0 1px;
- text-transform:uppercase;
- font-size:10.5px;
- }
- .ui-tabs .ui-tabs-nav li a{
- padding:.25em 2em .25em 1em;
- margin:.5em;
- text-shadow:0 1px 0 rgba(255, 255, 255, .5);
- }
- /**
- * Basic Layout Theme
- *
- * This theme uses the default layout class-names for all classes
- * Add any 'custom class-names', from options: paneClass, resizerClass, togglerClass
- */
-
- .ui-layout-resizer{ /* all 'resizer-bars' */
- background:#DDD;
- top:100px
- }
-
- .ui-layout-toggler{ /* all 'toggler-buttons' */
- background:#AAA;
- }
- </style><!--[if IE]> - <link rel="stylesheet" type="text/css" href="../common/css/ie.css"/> - <![endif]--><script src="../common/browserDetect.js" type="text/javascript"><!----></script><script src="../common/jquery/jquery-1.7.2.min.js" type="text/javascript"><!----></script><script src="../common/jquery/jquery.ui.all.js" type="text/javascript"><!----></script><script src="../common/jquery/jquery.cookie.js" type="text/javascript"><!----></script><script src="../common/jquery/treeview/jquery.treeview.min.js" type="text/javascript"><!----></script><script src="../common/jquery/layout/jquery.layout.js" type="text/javascript"><!----></script><script src="search/l10n.js" type="text/javascript"><!----></script><script src="search/htmlFileInfoList.js" type="text/javascript"><!----></script><script src="search/nwSearchFnt.js" type="text/javascript"><!----></script><script src="search/stemmers/en_stemmer.js" type="text/javascript" /><script src="search/index-1.js" type="text/javascript"><!----></script><script src="search/index-2.js" type="text/javascript"><!----></script><script src="search/index-3.js" type="text/javascript"><!----></script><meta name="date" content="" /><meta name="dc.date.created" content="" /><link rel="stylesheet" type="text/css" href="../common/css/docbook.css" /><link media="print" rel="stylesheet" type="text/css" href="../common/css/print.css" /><script type="text/javascript">
- var _gaq = _gaq || [];
- _gaq.push(['_setAccount', 'UA-41389295-1']);
- _gaq.push(['_trackPageview']);
-
- (function() {
- var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
- ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
- var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
- })();
- </script></head><body><noscript><link rel="stylesheet" type="text/css" href="../common/css/print.css" /><div id="noscript">JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site.</div></noscript><div id="header"><a href="http://www.atmel.com/webdoc"><img id="logo" alt="Atmel Logo" src="../common/images/logo.png" /></a><h1>Atmel EDBG-based Tools Protocols<br />Protocol commands</h1><div id="navheader"><!----><table class="navLinks"><tr><td><a title="Hide TOC tree" tabindex="5" class="pointLeft" onclick="myLayout.toggle('west')" href="#" id="showHideButton">Sidebar
- </a></td><td><a tabindex="5" class="navLinkPrevious" accesskey="p" href="ch03s01.html">Prev</a>
- |
- <a tabindex="5" class="navLinkUp" accesskey="u" href="ch03s01.html">Up</a>
- |
- <a tabindex="5" class="navLinkNext" accesskey="n" href="section_edbg_query_contexts.html">Next</a></td></tr></table></div></div><div id="content"><!----><div class="section"><div xmlns="" class="titlepage"><div><div><h3 xmlns="http://www.w3.org/1999/xhtml" class="title"><a id="N107D6" />QUERY</h3></div></div></div><div xmlns="http://www.w3.org/1999/xhtml" class="toc"><p xmlns="http://www.w3.org/1999/xhtml"><strong>Table of Contents</strong></p><dl xmlns="http://www.w3.org/1999/xhtml" class="toc"><dt><span class="section"><a href="section_edbg_query_contexts.html">EDBG QUERY contexts</a></span></dt></dl></div><p>Used to discover the capabilities of the tool.</p><p>For lists of valid query types, see <a class="xref" href="section_edbg_query_contexts.html" title="EDBG QUERY contexts">the section called “EDBG QUERY contexts”</a></p><p>
- </p><div class="table"><a id="N107E2" /><p class="title"><strong>Table 35. Query</strong></p><div class="table-contents"><table summary="Query" border="1"><colgroup><col /><col /><col /></colgroup><thead><tr><th>Field</th><th>Size</th><th>Description</th></tr></thead><tbody><tr><td>QUERY (0x00)</td><td>1 byte</td><td>Command ID</td></tr><tr><td>Version (0x00)</td><td>1 byte</td><td>Command version</td></tr><tr><td>Query context</td><td>1 byte</td><td>Type of query to execute</td></tr></tbody></table></div></div><p><br class="table-break" />
- </p><p>Responses:</p><p>
- </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>LIST</p></li><li class="listitem"><p>FAILED</p></li></ul></div><p>
- </p></div><script src="../common/main.js" type="text/javascript"><!----></script><script src="../common/splitterInit.js" type="text/javascript"><!----></script><div class="navfooter"><table summary="Navigation footer" width="100%"><tr><td align="left" width="40%"><a accesskey="p" href="ch03s01.html">Prev</a> </td><td align="center" width="20%"><a accesskey="u" href="ch03s01.html">Up</a></td><td align="right" width="40%"> <a accesskey="n" href="section_edbg_query_contexts.html">Next</a></td></tr><tr><td valign="top" align="left" width="40%"> </td><td align="center" width="20%"><a accesskey="h" href="index.html">Home</a></td><td valign="top" align="right" width="40%"> </td></tr></table></div></div><div id="sidebar"><div style="padding-top:3px;" id="leftnavigation"><div id="tabs"><ul><li><a tabindex="1" style="outline:0;" href="#treeDiv"><span class="contentsTab">Contents</span></a></li><li><a onclick="doSearch()" tabindex="1" style="outline:0;" href="#searchDiv"><span class="searchTab">Search</span></a></li></ul><div id="treeDiv"><img style="display:block;" id="tocLoading" alt="loading table of contents..." src="../common/images/loading.gif" /><span class="dochome"><a href="../index.html" tabindex="1">Documentation Home</a></span><span class="root"><a href="index.html" tabindex="1">Atmel EDBG-based Tools Protocols</a></span><div style="display:none" id="ulTreeDiv"><ul class="filetree" id="tree"><li><span class="file"><a tabindex="1" href="pr01.html">Preface</a></span></li><li><span class="file"><a tabindex="1" href="protocoldocs.Introduction.html">Introduction</a></span><ul><li><span class="file"><a tabindex="1" href="ch01s01.html">EDBG interface overview</a></span></li><li><span class="file"><a tabindex="1" href="ch01s02.html">Atmel EDBG-based tool implementations</a></span></li></ul></li><li><span class="file"><a tabindex="1" href="protocoldocs.cmsis_dap.html">CMSIS-DAP</a></span><ul><li><span class="file"><a tabindex="1" href="ch02s01.html">CMSIS-DAP protocol</a></span></li><li><span class="file"><a tabindex="1" href="ch02s02.html">CMSIS-DAP vendor commands</a></span><ul><li><span class="file"><a tabindex="1" href="ch02s02s01.html">AVR-target specific vendor commands</a></span></li><li><span class="file"><a tabindex="1" href="ch02s02s02.html">ARM-target specific vendor commands</a></span><ul><li><span class="file"><a tabindex="1" href="ch02s02s02s01.html">Erase pin</a></span></li><li><span class="file"><a tabindex="1" href="ch02s02s02s02.html">Serial trace</a></span></li></ul></li><li><span class="file"><a tabindex="1" href="ch02s02s03.html">EDBG-specific vendor commands</a></span><ul><li><span class="file"><a tabindex="1" href="ch02s02s03s01.html">Get configuration</a></span></li><li><span class="file"><a tabindex="1" href="ch02s02s03s02.html">Set configuration</a></span></li><li><span class="file"><a tabindex="1" href="ch02s02s03s03.html">EDBG GET request</a></span></li><li><span class="file"><a tabindex="1" href="ch02s02s03s04.html">EDBG SET request</a></span></li></ul></li></ul></li><li><span class="file"><a tabindex="1" href="section_serial_trace.html">Serial trace commands</a></span><ul><li><span class="file"><a tabindex="1" href="ch02s03s01.html">Set transport mode</a></span></li><li><span class="file"><a tabindex="1" href="ch02s03s02.html">Set capture mode</a></span></li><li><span class="file"><a tabindex="1" href="ch02s03s03.html">Set baud rate</a></span></li><li><span class="file"><a tabindex="1" href="ch02s03s04.html">Start</a></span></li><li><span class="file"><a tabindex="1" href="ch02s03s05.html">Stop</a></span></li><li><span class="file"><a tabindex="1" href="ch02s03s06.html">Get data</a></span></li><li><span class="file"><a tabindex="1" href="ch02s03s07.html">Get status</a></span></li><li><span class="file"><a tabindex="1" href="ch02s03s08.html">Get buffer size</a></span></li><li><span class="file"><a tabindex="1" href="ch02s03s09.html">Signon</a></span></li></ul></li><li><span class="file"><a tabindex="1" href="ch02s04.html">Enveloped AVR commands, responses & events</a></span><ul><li><span class="file"><a tabindex="1" href="ch02s04s01.html">Wrapping AVR commands</a></span></li><li><span class="file"><a tabindex="1" href="ch02s04s02.html">Unwrapping AVR responses</a></span></li><li><span class="file"><a tabindex="1" href="ch02s04s03.html">Unwrapping AVR events</a></span></li></ul></li></ul></li><li><span class="file"><a tabindex="1" href="protocoldocs.edbg_ctrl_protocol.html">EDBG Control Protocol</a></span><ul><li><span class="file"><a tabindex="1" href="ch03s01.html">Protocol commands</a></span><ul><li id="webhelp-currentid"><span class="file"><a tabindex="1" href="ch03s01s01.html">QUERY</a></span><ul><li><span class="file"><a tabindex="1" href="section_edbg_query_contexts.html">EDBG QUERY contexts</a></span></li></ul></li><li><span class="file"><a tabindex="1" href="ch03s01s02.html">SET</a></span></li><li><span class="file"><a tabindex="1" href="ch03s01s03.html">GET</a></span><ul><li><span class="file"><a tabindex="1" href="ch03s01s03s01.html">SET/GET parameters</a></span></li></ul></li></ul></li><li><span class="file"><a tabindex="1" href="ch03s02.html">Responses</a></span><ul><li><span class="file"><a tabindex="1" href="ch03s02s01.html">OK</a></span></li><li><span class="file"><a tabindex="1" href="ch03s02s02.html">LIST</a></span></li><li><span class="file"><a tabindex="1" href="ch03s02s03.html">DATA</a></span></li><li><span class="file"><a tabindex="1" href="ch03s02s04.html">FAILED</a></span></li></ul></li><li><span class="file"><a tabindex="1" href="section_edbg_ctrl_setget_params.html">EDBGCTRL ID definitions</a></span></li></ul></li><li><span class="file"><a tabindex="1" href="protocoldocs.avrprotocol.Overview.html">AVR communication protocol</a></span><ul><li><span class="file"><a tabindex="1" href="ch04s01.html">Overview</a></span></li><li><span class="file"><a tabindex="1" href="ch04s02.html">Framing</a></span></li><li><span class="file"><a tabindex="1" href="ch04s03.html">Protocol sub-set overview</a></span></li><li><span class="file"><a tabindex="1" href="ch04s04.html">Discovery Protocol Definition</a></span><ul><li><span class="file"><a tabindex="1" href="ch04s04s01.html">CMD: QUERY</a></span></li><li><span class="file"><a tabindex="1" href="section_jdx_m11_sl.html">Discovery QUERY contexts</a></span></li><li><span class="file"><a tabindex="1" href="ch04s04s03.html">RSP: LIST</a></span></li><li><span class="file"><a tabindex="1" href="ch04s04s04.html">RSP: FAILED</a></span></li><li><span class="file"><a tabindex="1" href="ch04s04s05.html">Discovery Protocol ID definitions</a></span></li></ul></li><li><span class="file"><a tabindex="1" href="ch04s05.html">Housekeeping Protocol</a></span><ul><li><span class="file"><a tabindex="1" href="ch04s05s01.html">CMD: QUERY</a></span></li><li><span class="file"><a tabindex="1" href="section_i5v_3yz_rl.html">Housekeeping QUERY contexts</a></span></li><li><span class="file"><a tabindex="1" href="ch04s05s03.html">CMD: SET</a></span></li><li><span class="file"><a tabindex="1" href="ch04s05s04.html">CMD: GET</a></span></li><li><span class="file"><a tabindex="1" href="section_t1f_hb1_sl.html">Housekeeping SET/GET parameters</a></span></li><li><span class="file"><a tabindex="1" href="ch04s05s06.html">Housekeeping Commands</a></span><ul><li><span class="file"><a tabindex="1" href="section_housekeeping_start_session.html">Start session</a></span></li><li><span class="file"><a tabindex="1" href="ch04s05s06s02.html">End Session</a></span></li><li><span class="file"><a tabindex="1" href="ch04s05s06s03.html">Firmware Upgrade</a></span></li><li><span class="file"><a tabindex="1" href="ch04s05s06s04.html">JTAG scan-chain detection</a></span></li><li><span class="file"><a tabindex="1" href="ch04s05s06s05.html">Calibrate Oscillator</a></span></li></ul></li><li><span class="file"><a tabindex="1" href="ch04s05s07.html">Housekeeping Responses</a></span><ul><li><span class="file"><a tabindex="1" href="ch04s05s07s01.html">OK</a></span></li><li><span class="file"><a tabindex="1" href="ch04s05s07s02.html">LIST</a></span></li><li><span class="file"><a tabindex="1" href="ch04s05s07s03.html">DATA</a></span></li><li><span class="file"><a tabindex="1" href="ch04s05s07s04.html">FAILED</a></span></li></ul></li><li><span class="file"><a tabindex="1" href="ch04s05s08.html">Events</a></span><ul><li><span class="file"><a tabindex="1" href="ch04s05s08s01.html">Event: power</a></span></li><li><span class="file"><a tabindex="1" href="ch04s05s08s02.html">Event: sleep</a></span></li><li><span class="file"><a tabindex="1" href="ch04s05s08s03.html">Event: external reset</a></span></li></ul></li><li><span class="file"><a tabindex="1" href="ch04s05s09.html">
- Hints and tips
- </a></span></li><li><span class="file"><a tabindex="1" href="ch04s05s10.html">Housekeeping ID definitions</a></span></li></ul></li></ul></li><li><span class="file"><a tabindex="1" href="protocoldocs.avr32protocol.html">AVR32 generic protocol</a></span><ul><li><span class="file"><a tabindex="1" href="ch05s01.html">Protocol commands</a></span><ul><li><span class="file"><a tabindex="1" href="ch05s01s01.html">QUERY</a></span><ul><li><span class="file"><a tabindex="1" href="section_qhb_x1c_sl.html">AVR32 QUERY contexts</a></span></li></ul></li><li><span class="file"><a tabindex="1" href="ch05s01s02.html">SET</a></span></li><li><span class="file"><a tabindex="1" href="ch05s01s03.html">GET</a></span><ul><li><span class="file"><a tabindex="1" href="section_avr32_setget_params.html">SET/GET parameters</a></span></li></ul></li><li><span class="file"><a tabindex="1" href="ch05s01s04.html">Activate Physical</a></span></li><li><span class="file"><a tabindex="1" href="ch05s01s05.html">Deactivate Physical</a></span></li><li><span class="file"><a tabindex="1" href="ch05s01s06.html">Get ID</a></span></li><li><span class="file"><a tabindex="1" href="ch05s01s07.html">Erase</a></span></li><li><span class="file"><a tabindex="1" href="ch05s01s08.html">Halt</a></span></li><li><span class="file"><a tabindex="1" href="ch05s01s09.html">Reset</a></span></li><li><span class="file"><a tabindex="1" href="ch05s01s10.html">Step</a></span></li><li><span class="file"><a tabindex="1" href="ch05s01s11.html">Read</a></span></li><li><span class="file"><a tabindex="1" href="ch05s01s12.html">Write</a></span><ul><li><span class="file"><a tabindex="1" href="section_avr32_memtypes.html">Memory Types</a></span></li></ul></li><li><span class="file"><a tabindex="1" href="ch05s01s13.html">TAP</a></span></li><li><span class="file"><a tabindex="1" href="ch05s01s14.html">Is protected</a></span></li><li><span class="file"><a tabindex="1" href="ch05s01s15.html">Erase Section</a></span></li></ul></li><li><span class="file"><a tabindex="1" href="ch05s02.html">Responses</a></span><ul><li><span class="file"><a tabindex="1" href="ch05s02s01.html">OK</a></span></li><li><span class="file"><a tabindex="1" href="ch05s02s02.html">LIST</a></span></li><li><span class="file"><a tabindex="1" href="ch05s02s03.html">ID</a></span></li><li><span class="file"><a tabindex="1" href="ch05s02s04.html">PC</a></span></li><li><span class="file"><a tabindex="1" href="ch05s02s05.html">DATA</a></span></li><li><span class="file"><a tabindex="1" href="ch05s02s06.html">FAILED</a></span></li></ul></li><li><span class="file"><a tabindex="1" href="ch05s03.html">Hints and tips</a></span><ul><li><span class="file"><a tabindex="1" href="ch05s03s01.html">Configuration</a></span></li><li><span class="file"><a tabindex="1" href="ch05s03s02.html">Activate and deactivate physical</a></span></li><li><span class="file"><a tabindex="1" href="ch05s03s03.html">Programming and debugging commands</a></span></li></ul></li><li><span class="file"><a tabindex="1" href="ch05s04.html">AVR32GENERIC ID definitions</a></span></li></ul></li><li><span class="file"><a tabindex="1" href="protocoldocs.avr8protocol.html">AVR8 generic protocol</a></span><ul><li><span class="file"><a tabindex="1" href="ch06s01.html">Protocol Commands</a></span><ul><li><span class="file"><a tabindex="1" href="ch06s01s01.html">QUERY</a></span><ul><li><span class="file"><a tabindex="1" href="section_avr8_query_contexts.html">AVR8 QUERY contexts</a></span></li></ul></li><li><span class="file"><a tabindex="1" href="ch06s01s02.html">SET</a></span></li><li><span class="file"><a tabindex="1" href="ch06s01s03.html">GET</a></span><ul><li><span class="file"><a tabindex="1" href="section_avr8_setget_params.html">SET/GET parameters</a></span><ul><li><span class="file"><a tabindex="1" href="section_avr8_setget_params.html#N11932">Device context: debugWIRE targets</a></span></li><li><span class="file"><a tabindex="1" href="section_avr8_setget_params.html#N119D3">Device context: megaAVR JTAG targets</a></span></li><li><span class="file"><a tabindex="1" href="section_avr8_setget_params.html#section_avr8_xmega_device_context">Device context: AVR XMEGA targets</a></span></li></ul></li></ul></li><li><span class="file"><a tabindex="1" href="ch06s01s04.html">Activate Physical</a></span></li><li><span class="file"><a tabindex="1" href="ch06s01s05.html">Deactivate Physical</a></span></li><li><span class="file"><a tabindex="1" href="ch06s01s06.html">Get ID</a></span></li><li><span class="file"><a tabindex="1" href="ch06s01s07.html">Attach</a></span></li><li><span class="file"><a tabindex="1" href="ch06s01s08.html">Detach</a></span></li><li><span class="file"><a tabindex="1" href="ch06s01s09.html">Reset</a></span></li><li><span class="file"><a tabindex="1" href="ch06s01s10.html">Stop</a></span></li><li><span class="file"><a tabindex="1" href="ch06s01s11.html">Run</a></span></li><li><span class="file"><a tabindex="1" href="ch06s01s12.html">Run To</a></span></li><li><span class="file"><a tabindex="1" href="ch06s01s13.html">Step</a></span></li><li><span class="file"><a tabindex="1" href="ch06s01s14.html">PC read</a></span></li><li><span class="file"><a tabindex="1" href="ch06s01s15.html">PC write</a></span></li><li><span class="file"><a tabindex="1" href="ch06s01s16.html">Prog Mode Enter</a></span></li><li><span class="file"><a tabindex="1" href="ch06s01s17.html">Prog Mode Leave</a></span></li><li><span class="file"><a tabindex="1" href="ch06s01s18.html">Disable debugWIRE</a></span></li><li><span class="file"><a tabindex="1" href="ch06s01s19.html">Erase</a></span></li><li><span class="file"><a tabindex="1" href="ch06s01s20.html">CRC</a></span></li><li><span class="file"><a tabindex="1" href="ch06s01s21.html">Memory Read</a></span></li><li><span class="file"><a tabindex="1" href="ch06s01s22.html">Memory Read masked</a></span></li><li><span class="file"><a tabindex="1" href="ch06s01s23.html">Memory Write</a></span></li><li><span class="file"><a tabindex="1" href="ch06s01s24.html">Page Erase</a></span></li><li><span class="file"><a tabindex="1" href="ch06s01s25.html">Hardware Breakpoint Set</a></span></li><li><span class="file"><a tabindex="1" href="ch06s01s26.html">Hardware Breakpoint Clear</a></span></li><li><span class="file"><a tabindex="1" href="ch06s01s27.html">Software Breakpoint Set</a></span></li><li><span class="file"><a tabindex="1" href="ch06s01s28.html">Software Breakpoint Clear</a></span></li><li><span class="file"><a tabindex="1" href="ch06s01s29.html">Software Breakpoint Clear All</a></span></li></ul></li><li><span class="file"><a tabindex="1" href="ch06s02.html">Responses</a></span><ul><li><span class="file"><a tabindex="1" href="ch06s02s01.html">OK</a></span></li><li><span class="file"><a tabindex="1" href="ch06s02s02.html">LIST</a></span></li><li><span class="file"><a tabindex="1" href="ch06s02s03.html">PC</a></span></li><li><span class="file"><a tabindex="1" href="ch06s02s04.html">DATA</a></span></li><li><span class="file"><a tabindex="1" href="ch06s02s05.html">FAILED</a></span></li></ul></li><li><span class="file"><a tabindex="1" href="ch06s03.html">Events</a></span><ul><li><span class="file"><a tabindex="1" href="ch06s03s01.html">Event: Break</a></span></li><li><span class="file"><a tabindex="1" href="ch06s03s02.html">Event: IDR message</a></span></li></ul></li><li><span class="file"><a tabindex="1" href="section_avr8_memtypes.html">Memory Types</a></span><ul><li><span class="file"><a tabindex="1" href="ch06s04s01.html">debugWIRE memtypes</a></span></li><li><span class="file"><a tabindex="1" href="ch06s04s02.html">megaAVR (JTAG) OCD memtypes</a></span></li><li><span class="file"><a tabindex="1" href="ch06s04s03.html">AVR XMEGA memtypes</a></span></li></ul></li><li><span class="file"><a tabindex="1" href="ch06s05.html">Hints and tips:</a></span><ul><li><span class="file"><a tabindex="1" href="ch06s05s01.html">Configuration</a></span></li><li><span class="file"><a tabindex="1" href="ch06s05s02.html">Activate and deactivate physical</a></span></li><li><span class="file"><a tabindex="1" href="ch06s05s03.html">Programming session control</a></span></li><li><span class="file"><a tabindex="1" href="ch06s05s04.html">Debug session control</a></span></li><li><span class="file"><a tabindex="1" href="ch06s05s05.html">Flow control</a></span></li></ul></li><li><span class="file"><a tabindex="1" href="ch06s06.html">AVR8GENERIC ID definitions</a></span></li></ul></li><li><span class="file"><a tabindex="1" href="protocoldocs.avrispprotocol.html">AVR ISP protocol</a></span><ul><li><span class="file"><a tabindex="1" href="ch07s01.html">SPI programming protocol commands</a></span><ul><li><span class="file"><a tabindex="1" href="ch07s01s01.html">SPI Load Address</a></span></li><li><span class="file"><a tabindex="1" href="ch07s01s02.html">SPI Set Baud</a></span></li><li><span class="file"><a tabindex="1" href="ch07s01s03.html">SPI Get Baud</a></span></li><li><span class="file"><a tabindex="1" href="ch07s01s04.html">SPI Enter Programming Mode</a></span></li><li><span class="file"><a tabindex="1" href="ch07s01s05.html">SPI Leave Programming Mode</a></span></li><li><span class="file"><a tabindex="1" href="ch07s01s06.html">SPI Chip Erase</a></span></li><li><span class="file"><a tabindex="1" href="ch07s01s07.html">SPI Program Flash</a></span></li><li><span class="file"><a tabindex="1" href="ch07s01s08.html">SPI Read Flash</a></span></li><li><span class="file"><a tabindex="1" href="ch07s01s09.html">SPI Program EEPROM</a></span></li><li><span class="file"><a tabindex="1" href="ch07s01s10.html">SPI Read EEPROM</a></span></li><li><span class="file"><a tabindex="1" href="ch07s01s11.html">SPI Program Fuse</a></span></li><li><span class="file"><a tabindex="1" href="ch07s01s12.html">SPI Read Fuse</a></span></li><li><span class="file"><a tabindex="1" href="ch07s01s13.html">SPI Program Lock</a></span></li><li><span class="file"><a tabindex="1" href="ch07s01s14.html">SPI Read Lock</a></span></li><li><span class="file"><a tabindex="1" href="ch07s01s15.html">SPI Read Signature</a></span></li><li><span class="file"><a tabindex="1" href="ch07s01s16.html">SPI Read OSCCAL</a></span></li><li><span class="file"><a tabindex="1" href="ch07s01s17.html">SPI Multi</a></span></li></ul></li><li><span class="file"><a tabindex="1" href="ch07s02.html">SPI programming protocol responses</a></span></li><li><span class="file"><a tabindex="1" href="ch07s03.html">ID definitions</a></span></li></ul></li><li><span class="file"><a tabindex="1" href="protocoldocs.tpiprotocol.html">TPI Protocol</a></span><ul><li><span class="file"><a tabindex="1" href="ch08s01.html">TPI protocol commands</a></span><ul><li><span class="file"><a tabindex="1" href="ch08s01s01.html">TPI Enter Programming Mode</a></span></li><li><span class="file"><a tabindex="1" href="ch08s01s02.html">TPI Leave Programming Mode</a></span></li><li><span class="file"><a tabindex="1" href="ch08s01s03.html">TPI Set Parameter</a></span></li><li><span class="file"><a tabindex="1" href="ch08s01s04.html">TPI Erase</a></span></li><li><span class="file"><a tabindex="1" href="ch08s01s05.html">TPI Write Memory</a></span></li><li><span class="file"><a tabindex="1" href="ch08s01s06.html">TPI Read Memory</a></span></li></ul></li><li><span class="file"><a tabindex="1" href="ch08s02.html">TPI programming protocol responses</a></span></li><li><span class="file"><a tabindex="1" href="ch08s03.html">ID definitions</a></span></li></ul></li><li><span class="file"><a tabindex="1" href="document.revisions.html">Document Revisions</a></span></li></ul></div></div><div id="searchDiv"><div id="search"><form class="searchForm" name="searchForm" onsubmit="Verifie(searchForm);return false"><div><input tabindex="1" class="searchText" placeholder="Search" type="search" name="textToSearch" id="textToSearch" /> <input tabindex="1" id="doSearch" value="Go" class="searchButton" type="button" onclick="Verifie(searchForm)" /></div></form></div><div id="searchResults"><center /></div><p class="searchHighlight"><a onclick="toggleHighlight()" href="#">Search Highlighter (On/Off)</a></p></div></div></div></div></body></html>
\ No newline at end of file diff --git a/xs/src/libnest2d/tools/benchmark.h b/xs/src/libnest2d/tools/benchmark.h deleted file mode 100644 index 19870b37b..000000000 --- a/xs/src/libnest2d/tools/benchmark.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Copyright (C) Tamás Mészáros - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -#ifndef INCLUDE_BENCHMARK_H_ -#define INCLUDE_BENCHMARK_H_ - -#include <chrono> -#include <ratio> - -/** - * A class for doing benchmarks. - */ -class Benchmark { - typedef std::chrono::high_resolution_clock Clock; - typedef Clock::duration Duration; - typedef Clock::time_point TimePoint; - - TimePoint t1, t2; - Duration d; - - inline double to_sec(Duration d) { - return d.count() * double(Duration::period::num) / Duration::period::den; - } - -public: - - /** - * Measure time from the moment of this call. - */ - void start() { t1 = Clock::now(); } - - /** - * Measure time to the moment of this call. - */ - void stop() { t2 = Clock::now(); } - - /** - * Get the time elapsed between a start() end a stop() call. - * @return Returns the elapsed time in seconds. - */ - double getElapsedSec() { d = t2 - t1; return to_sec(d); } -}; - - -#endif /* INCLUDE_BENCHMARK_H_ */ diff --git a/xs/src/slic3r/GUI/wxPerlIface.cpp b/xs/src/slic3r/GUI/wxPerlIface.cpp deleted file mode 100644 index 216ca4b3b..000000000 --- a/xs/src/slic3r/GUI/wxPerlIface.cpp +++ /dev/null @@ -1,97 +0,0 @@ -// Derived from the following: - -///////////////////////////////////////////////////////////////////////////// -// Name: cpp/helpers.cpp -// Purpose: implementation for helpers.h -// Author: Mattia Barbon -// Modified by: -// Created: 29/10/2000 -// RCS-ID: $Id: helpers.cpp 3397 2012-09-30 02:26:07Z mdootson $ -// Copyright: (c) 2000-2011 Mattia Barbon -// Licence: This program is free software; you can redistribute it and/or -// modify it under the same terms as Perl itself -///////////////////////////////////////////////////////////////////////////// - -#ifdef __cplusplus -extern "C" { -#endif -#include "EXTERN.h" -#include "perl.h" -#include "XSUB.h" -#include "ppport.h" -#undef do_open -#undef do_close -#ifdef __cplusplus -} -#endif - -//#include <xsinit.h> - -// ---------------------------------------------------------------------------- -// Utility functions for working with MAGIC -// ---------------------------------------------------------------------------- - -struct my_magic -{ - my_magic() : object( NULL ), deleteable( true ) { } - - void* object; - bool deleteable; -}; - -//STATIC MGVTBL my_vtbl = { 0, 0, 0, 0, 0, 0, 0, 0 }; - -my_magic* wxPli_get_magic( pTHX_ SV* rv ) -{ - // check for reference - if( !SvROK( rv ) ) - return NULL; - SV* ref = SvRV( rv ); - - // if it isn't a SvPVMG, then it can't have MAGIC - // so it is deleteable - if( !ref || SvTYPE( ref ) < SVt_PVMG ) - return NULL; - - // search for '~' / PERL_MAGIC_ext magic, and check the value -// MAGIC* magic = mg_findext( ref, PERL_MAGIC_ext, &my_vtbl ); - MAGIC* magic = mg_find( ref, '~' ); - if( !magic ) - return NULL; - - return (my_magic*)magic->mg_ptr; -} - -// gets 'this' pointer from a blessed scalar/hash reference -void* wxPli_sv_2_object( pTHX_ SV* scalar, const char* classname ) -{ - // is it correct to use undef as 'NULL'? - if( !SvOK( scalar ) ) - { - return NULL; - } - - if( !SvROK( scalar ) ) - croak( "variable is not an object: it must have type %s", classname ); - - if( !classname || sv_derived_from( scalar, (char*) classname ) ) - { - SV* ref = SvRV( scalar ); - - my_magic* mg = wxPli_get_magic( aTHX_ scalar ); - - // rationale: if this is an hash-ish object, it always - // has both mg and mg->object; if however this is a - // scalar-ish object that has been marked/unmarked deletable - // it has mg, but not mg->object - if( !mg || !mg->object ) - return INT2PTR( void*, SvOK( ref ) ? SvIV( ref ) : 0 ); - - return mg->object; - } - else - { - croak( "variable is not of type %s", classname ); - return NULL; // dummy, for compiler - } -} |