diff --git a/build_win.bat b/build_win.bat index c03ebf039..a5af27609 100644 --- a/build_win.bat +++ b/build_win.bat @@ -160,7 +160,10 @@ REM Build deps :BUILD_DEPS SET EXIT_STATUS=3 SET PS_CURRENT_STEP=deps -IF "%PS_STEPS_DIRTY%" EQU "" CALL :MAKE_OR_CLEAN_DIRECTORY deps\build "%PS_DEPS_PATH_FILE_NAME%" .vs +IF "%PS_STEPS_DIRTY%" EQU "" ( + CALL :MAKE_OR_CLEAN_DIRECTORY deps\build "%PS_DEPS_PATH_FILE_NAME%" .vs + CALL :MAKE_OR_CLEAN_DIRECTORY "%PS_DESTDIR%" +) cd deps\build || GOTO :END cmake.exe .. -DDESTDIR="%PS_DESTDIR%" IF %ERRORLEVEL% NEQ 0 IF "%PS_STEPS_DIRTY%" NEQ "" ( @@ -203,8 +206,8 @@ IF "%PS_CURRENT_STEP%" NEQ "arguments" ( ) SET EXIT_STATUS=5 SET PS_CURRENT_STEP=run -cd src\%PS_CONFIG% || GOTO :END IF "%PS_RUN%" EQU "none" GOTO :PROLOGUE +cd src\%PS_CONFIG% || GOTO :END SET PS_PROJECT_IS_OPEN= FOR /F "tokens=2 delims=," %%I in ( 'tasklist /V /FI "IMAGENAME eq devenv.exe " /NH /FO CSV ^| find "%PS_SOLUTION_NAME%"' diff --git a/deps/wxWidgets/wxWidgets.cmake b/deps/wxWidgets/wxWidgets.cmake index a7f5b12e7..c993d8948 100644 --- a/deps/wxWidgets/wxWidgets.cmake +++ b/deps/wxWidgets/wxWidgets.cmake @@ -13,7 +13,7 @@ prusaslicer_add_cmake_project(wxWidgets # GIT_REPOSITORY "https://github.com/prusa3d/wxWidgets" # GIT_TAG tm_cross_compile #${_wx_git_tag} URL https://github.com/prusa3d/wxWidgets/archive/refs/heads/v3.1.4-patched.zip - URL_HASH SHA256=a1e145a083d173cf320c0bd8522c7ee5829052b49b68fe5268ac84f0c576b940 + URL_HASH SHA256=21ed12eb5c215b00999f0374af652be0a6f785df10d18d0dfec8d81ed4abaea3 DEPENDS ${PNG_PKG} ${ZLIB_PKG} ${EXPAT_PKG} dep_TIFF dep_JPEG CMAKE_ARGS -DwxBUILD_PRECOMP=ON diff --git a/doc/How to build - Linux et al.md b/doc/How to build - Linux et al.md index 090a97e6c..9d193aef7 100644 --- a/doc/How to build - Linux et al.md +++ b/doc/How to build - Linux et al.md @@ -13,7 +13,9 @@ This guide describes building PrusaSlicer statically against dependencies pulled #### 0. Prerequisities -You must have CMake, GNU build tools and git. If you don't already have them, install them as usual from your distribution packages (e.g. on Ubuntu, you would run `sudo apt-get install cmake build-essential git`, etc.) +CMake, GNU build tools, git and m4 macro processor have to be installed. Unless that's already the case, install them as usual from your distribution packages. E.g. on Ubuntu, run `sudo apt-get install cmake build-essential git m4`. The names of the packages may be different on different distros. + +Although most of dependencies are handled by the build script, PrusaSlicer still expects that some libraries will be available in the system (GTK, MESA, gettext). E.g., on Ubuntu, install the required packages by running `sudo apt-get install libgtk-3-dev libglu1-mesa-dev gettext`. The names of the packages may be different on different distros. #### 1. Cloning the repository @@ -28,12 +30,12 @@ This will download the source code into a new directory and `cd` into it. You ca #### 2. Building dependencies -PrusaSlicer uses CMake and the build is quite simple, the only tricky part is resolution of dependencies. The supported and recommended way is to build the dependencies first and link to them statically. The source base contains a CMake script that automatically downloads and builds the required dependencies. All that is needed is to run the following (from the top of the cloned repository): +PrusaSlicer uses CMake and the build is quite simple, the only tricky part is resolution of dependencies. The supported and recommended way is to build the dependencies first and link to them statically. PrusaSlicer source base contains a CMake script that automatically downloads and builds the required dependencies. All that is needed is to run the following (from the top of the cloned repository): cd deps mkdir build cd build - cmake .. + cmake .. -DDEP_WX_GTK3=ON make cd ../.. @@ -43,24 +45,20 @@ PrusaSlicer uses CMake and the build is quite simple, the only tricky part is re #### 3. Building PrusaSlicer -Now when you have the dependencies compiled, all that is needed is to tell CMake that we are interested in static build and point it to the dependencies. From the top of the repository, run +Now when the dependencies are compiled, all that is needed is to tell CMake that we are interested in static build and point it to the dependencies. From the top of the repository, run mkdir build cd build - cmake .. -DSLIC3R_STATIC=1 -DSLIC3R_PCH=OFF -DCMAKE_PREFIX_PATH=$(pwd)/../deps/build/destdir/usr/local + cmake .. -DSLIC3R_STATIC=1 -DSLIC3R_GTK=3 -DSLIC3R_PCH=OFF -DCMAKE_PREFIX_PATH=$(pwd)/../deps/build/destdir/usr/local make -j4 -And that's it. You can now run the freshly built PrusaSlicer binary: +And that's it. It is now possible to run the freshly built PrusaSlicer binary: cd src ./prusa-slicer -#### Troubleshooting - -Although most of the dependencies are handled by the build script, we still rely on some system libraries (such as GTK, GL, etc). It is quite likely that you have them already installed, but in case that CMake reports any library missing, install the respective package from your distribution and run CMake again. - ## Useful CMake flags when building dependencies @@ -86,8 +84,7 @@ See the CMake files to get the complete list. As already mentioned above, dynamic linking of dependencies is possible, but PrusaSlicer team is unable to troubleshoot (Linux world is way too complex). Feel free to do so, but you are on your own. Several remarks though: -The list of dependencies can be easily obtained by inspecting the CMake scripts in the `deps/` directory. Many don't necessarily need to be as recent -as the versions listed - generally versions available on conservative Linux distros such as Debian stable, Ubuntu LTS releases or Fedora are likely sufficient. If you decide to build this way, it is your responsibility to make sure that CMake finds all required dependencies. It is possible to look at your distribution PrusaSlicer package to see how the package maintainers solved the dependency issues. +The list of dependencies can be easily obtained by inspecting the CMake scripts in the `deps/` directory. Some of the dependencies don't have to be as recent as the versions listed - generally versions available on conservative Linux distros such as Debian stable, Ubuntu LTS releases or Fedora are likely sufficient. If you decide to build this way, it is your responsibility to make sure that CMake finds all required dependencies. It is possible to look at your distribution PrusaSlicer package to see how the package maintainers solved the dependency issues. #### wxWidgets By default, PrusaSlicer looks for wxWidgets 3.1. Our build script in fact downloads specific patched version of wxWidgets. If you want to link against wxWidgets 3.0 (which are still provided by most distributions because wxWidgets 3.1 have not yet been declared stable), you must set `-DSLIC3R_WX_STABLE=ON` when running CMake. Note that while PrusaSlicer can be linked against wWidgets 3.0, the combination is not well tested and there might be bugs in the resulting application. diff --git a/resources/data/hints.ini b/resources/data/hints.ini index a79a8228a..4a0534e48 100644 --- a/resources/data/hints.ini +++ b/resources/data/hints.ini @@ -34,8 +34,9 @@ # # Open preferences (might add item to highlight) # hypertext_type = preferences -# hypertext_preferences_page = 0 (values 0-2 according to prefernces tab to be opened) -# +# hypertext_preferences_page = 2 (values 0-2 according to prefernces tab to be opened) +# hypertext_preferences_item = show_collapse_button (name of variable saved in prusaslicer.ini connected to the setting in preferences) +# # Open gallery (no aditional var) # hypertext_type = gallery # @@ -97,6 +98,7 @@ documentation_link = https://help.prusa3d.com/en/article/reload-from-disk_120427 text = Hiding sidebar\nDid you know that you can hide the right sidebar using the shortcut Shift+Tab? You can also enable the icon for this from thePreferences. hypertext_type = preferences hypertext_preferences_page = 2 +hypertext_preferences_item = show_collapse_button [hint:Perspective camera] text = Perspective camera\nDid you know that you can use the K key to quickly switch between an orthographic and perspective camera? @@ -195,7 +197,7 @@ documentation_link = https://help.prusa3d.com/en/article/insert-pause-or-custom- disabled_tags = SLA [hint:Configuration snapshots] -text = Configuration snapshots\nDid you know that roll back to a complete backup of all system and user profiles? You can view and move back and forth between snapshots using the Configuration - Configuration snapshots menu. +text = Configuration snapshots\nDid you know that roll back to a complete backup of all system and user profiles? You can view and move back and forth between snapshots using the Configuration - Configuration snapshots menu. documentation_link = https://help.prusa3d.com/en/article/configuration-snapshots_1776 hypertext_type = menubar hypertext_menubar_menu_name = Configuration @@ -213,6 +215,7 @@ disabled_tags = SLA text = Settings in non-modal window\nDid you know that you can open the Settings in a new non-modal window? This means you can have settings open on one screen and the G-code Preview on the other. Go to thePreferencesand select Settings in non-modal window. hypertext_type = preferences hypertext_preferences_page = 2 +hypertext_preferences_item = dlg_settings_layout_mode [hint:Adaptive infills] text = Adaptive infills\nDid you know that you can use the Adaptive cubic and Support cubic infills to decrease the print time and lower the filament consumption? Read more in the documentation. diff --git a/resources/icons/edit_button.svg b/resources/icons/edit_button.svg new file mode 100644 index 000000000..25f338b40 --- /dev/null +++ b/resources/icons/edit_button.svg @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/resources/icons/editor_menu.svg b/resources/icons/editor_menu.svg index 223efda0f..253bd907d 100644 --- a/resources/icons/editor_menu.svg +++ b/resources/icons/editor_menu.svg @@ -4,15 +4,15 @@ viewBox="0 0 128 128" enable-background="new 0 0 128 128" xml:space="preserve"> - - + - diff --git a/resources/icons/preview_menu.svg b/resources/icons/preview_menu.svg index 725caf7b8..9af677d3e 100644 --- a/resources/icons/preview_menu.svg +++ b/resources/icons/preview_menu.svg @@ -4,40 +4,40 @@ viewBox="0 0 128 128" enable-background="new 0 0 128 128" xml:space="preserve"> - - - - + - - - - + - - - - + - - - + - - - - - - - - - - - - - - - diff --git a/resources/icons/white/add_modifier.svg b/resources/icons/white/add_modifier.svg deleted file mode 100644 index 09c3ce27d..000000000 --- a/resources/icons/white/add_modifier.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - diff --git a/resources/icons/white/add_negative.svg b/resources/icons/white/add_negative.svg deleted file mode 100644 index 0173d1f0d..000000000 --- a/resources/icons/white/add_negative.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - diff --git a/resources/icons/white/add_part.svg b/resources/icons/white/add_part.svg deleted file mode 100644 index f4ee11432..000000000 --- a/resources/icons/white/add_part.svg +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - diff --git a/resources/icons/white/advanced+wrench.svg b/resources/icons/white/advanced+wrench.svg deleted file mode 100644 index 5e878cb3c..000000000 --- a/resources/icons/white/advanced+wrench.svg +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/resources/icons/white/advanced_plus.svg b/resources/icons/white/advanced_plus.svg deleted file mode 100644 index db532ec4b..000000000 --- a/resources/icons/white/advanced_plus.svg +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - diff --git a/resources/icons/white/cog.svg b/resources/icons/white/cog.svg deleted file mode 100644 index 773e4d65d..000000000 --- a/resources/icons/white/cog.svg +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - diff --git a/resources/icons/white/colorchange_add_m.svg b/resources/icons/white/colorchange_add_m.svg deleted file mode 100644 index 2266560da..000000000 --- a/resources/icons/white/colorchange_add_m.svg +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/resources/icons/white/compare.svg b/resources/icons/white/compare.svg deleted file mode 100644 index 7eafebfde..000000000 --- a/resources/icons/white/compare.svg +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - - diff --git a/resources/icons/white/cooling.svg b/resources/icons/white/cooling.svg deleted file mode 100644 index 29bd04c36..000000000 --- a/resources/icons/white/cooling.svg +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/resources/icons/white/copy_menu.svg b/resources/icons/white/copy_menu.svg deleted file mode 100644 index d660aab6a..000000000 --- a/resources/icons/white/copy_menu.svg +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/resources/icons/white/delete.svg b/resources/icons/white/delete.svg deleted file mode 100644 index 91d5ce74c..000000000 --- a/resources/icons/white/delete.svg +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/resources/icons/white/delete_all_menu.svg b/resources/icons/white/delete_all_menu.svg deleted file mode 100644 index 5d825c424..000000000 --- a/resources/icons/white/delete_all_menu.svg +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - diff --git a/resources/icons/white/dot.svg b/resources/icons/white/dot.svg deleted file mode 100644 index 90fbaf7fb..000000000 --- a/resources/icons/white/dot.svg +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - diff --git a/resources/icons/white/dot_small.svg b/resources/icons/white/dot_small.svg deleted file mode 100644 index 74df44208..000000000 --- a/resources/icons/white/dot_small.svg +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - diff --git a/resources/icons/white/drop_to_bed.svg b/resources/icons/white/drop_to_bed.svg deleted file mode 100644 index 76243f897..000000000 --- a/resources/icons/white/drop_to_bed.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - diff --git a/resources/icons/white/edit_gcode.svg b/resources/icons/white/edit_gcode.svg deleted file mode 100644 index 85836c0b4..000000000 --- a/resources/icons/white/edit_gcode.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - diff --git a/resources/icons/white/edit_layers_all.svg b/resources/icons/white/edit_layers_all.svg deleted file mode 100644 index efb7d609f..000000000 --- a/resources/icons/white/edit_layers_all.svg +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - diff --git a/resources/icons/white/edit_layers_some.svg b/resources/icons/white/edit_layers_some.svg deleted file mode 100644 index 585a8df2f..000000000 --- a/resources/icons/white/edit_layers_some.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - diff --git a/resources/icons/white/edit_uni.svg b/resources/icons/white/edit_uni.svg deleted file mode 100644 index 661924763..000000000 --- a/resources/icons/white/edit_uni.svg +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - diff --git a/resources/icons/white/editor_menu.svg b/resources/icons/white/editor_menu.svg deleted file mode 100644 index 649d2c40f..000000000 --- a/resources/icons/white/editor_menu.svg +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/resources/icons/white/equal.svg b/resources/icons/white/equal.svg deleted file mode 100644 index febbb4c5f..000000000 --- a/resources/icons/white/equal.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - diff --git a/resources/icons/white/error_tick.svg b/resources/icons/white/error_tick.svg deleted file mode 100644 index f3de981f0..000000000 --- a/resources/icons/white/error_tick.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - diff --git a/resources/icons/white/exclamation_manifold.svg b/resources/icons/white/exclamation_manifold.svg deleted file mode 100644 index a18590167..000000000 --- a/resources/icons/white/exclamation_manifold.svg +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/resources/icons/white/exit.svg b/resources/icons/white/exit.svg deleted file mode 100644 index e5aebcfc2..000000000 --- a/resources/icons/white/exit.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - diff --git a/resources/icons/white/export_config.svg b/resources/icons/white/export_config.svg deleted file mode 100644 index 22f8ebe1a..000000000 --- a/resources/icons/white/export_config.svg +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - diff --git a/resources/icons/white/export_config_bundle.svg b/resources/icons/white/export_config_bundle.svg deleted file mode 100644 index 99bd62b6c..000000000 --- a/resources/icons/white/export_config_bundle.svg +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/resources/icons/white/export_gcode.svg b/resources/icons/white/export_gcode.svg deleted file mode 100644 index 39f5225cb..000000000 --- a/resources/icons/white/export_gcode.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - diff --git a/resources/icons/white/export_plate.svg b/resources/icons/white/export_plate.svg deleted file mode 100644 index 18159d2a8..000000000 --- a/resources/icons/white/export_plate.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - diff --git a/resources/icons/white/export_plater.svg b/resources/icons/white/export_plater.svg deleted file mode 100644 index e71b38a0a..000000000 --- a/resources/icons/white/export_plater.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - diff --git a/resources/icons/white/export_to_sd.svg b/resources/icons/white/export_to_sd.svg deleted file mode 100644 index ebeacb905..000000000 --- a/resources/icons/white/export_to_sd.svg +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - diff --git a/resources/icons/white/extruder+funnel.svg b/resources/icons/white/extruder+funnel.svg deleted file mode 100644 index de6b227da..000000000 --- a/resources/icons/white/extruder+funnel.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - diff --git a/resources/icons/white/eye_closed.svg b/resources/icons/white/eye_closed.svg deleted file mode 100644 index 0cdd16ae0..000000000 --- a/resources/icons/white/eye_closed.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - diff --git a/resources/icons/white/eye_open.svg b/resources/icons/white/eye_open.svg deleted file mode 100644 index 1b320da07..000000000 --- a/resources/icons/white/eye_open.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - diff --git a/resources/icons/white/flag_green.svg b/resources/icons/white/flag_green.svg deleted file mode 100644 index 8479d0e9a..000000000 --- a/resources/icons/white/flag_green.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - diff --git a/resources/icons/white/flag_red.svg b/resources/icons/white/flag_red.svg deleted file mode 100644 index a9b1cf8fe..000000000 --- a/resources/icons/white/flag_red.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - diff --git a/resources/icons/white/funnel.svg b/resources/icons/white/funnel.svg deleted file mode 100644 index b8a3408a7..000000000 --- a/resources/icons/white/funnel.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - diff --git a/resources/icons/white/hollowing.svg b/resources/icons/white/hollowing.svg deleted file mode 100644 index 77f50b6b8..000000000 --- a/resources/icons/white/hollowing.svg +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/resources/icons/white/import_config.svg b/resources/icons/white/import_config.svg deleted file mode 100644 index 001277f73..000000000 --- a/resources/icons/white/import_config.svg +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/resources/icons/white/import_config_bundle.svg b/resources/icons/white/import_config_bundle.svg deleted file mode 100644 index c16cd7b3c..000000000 --- a/resources/icons/white/import_config_bundle.svg +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/resources/icons/white/import_plate.svg b/resources/icons/white/import_plate.svg deleted file mode 100644 index 7f888e3d7..000000000 --- a/resources/icons/white/import_plate.svg +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - - - -]> - - - - - - - - - - - - - - - - - - - - diff --git a/resources/icons/white/import_plater.svg b/resources/icons/white/import_plater.svg deleted file mode 100644 index 1dc5aae6e..000000000 --- a/resources/icons/white/import_plater.svg +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/resources/icons/white/infill.svg b/resources/icons/white/infill.svg deleted file mode 100644 index 086043099..000000000 --- a/resources/icons/white/infill.svg +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/resources/icons/white/info.svg b/resources/icons/white/info.svg deleted file mode 100644 index db227aa32..000000000 --- a/resources/icons/white/info.svg +++ /dev/null @@ -1,71 +0,0 @@ - -image/svg+xml - - - - - - - - - - diff --git a/resources/icons/white/layers.svg b/resources/icons/white/layers.svg deleted file mode 100644 index cd71fab3a..000000000 --- a/resources/icons/white/layers.svg +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/resources/icons/white/lock2_closed.svg b/resources/icons/white/lock2_closed.svg deleted file mode 100644 index 726c850a1..000000000 --- a/resources/icons/white/lock2_closed.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - diff --git a/resources/icons/white/lock_closed.svg b/resources/icons/white/lock_closed.svg deleted file mode 100644 index 1665dc9a0..000000000 --- a/resources/icons/white/lock_closed.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - diff --git a/resources/icons/white/lock_closed_f.svg b/resources/icons/white/lock_closed_f.svg deleted file mode 100644 index 412c93c16..000000000 --- a/resources/icons/white/lock_closed_f.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - diff --git a/resources/icons/white/lock_open_sys.svg b/resources/icons/white/lock_open_sys.svg deleted file mode 100644 index c1aa64aec..000000000 --- a/resources/icons/white/lock_open_sys.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - diff --git a/resources/icons/white/machine+cog.svg b/resources/icons/white/machine+cog.svg deleted file mode 100644 index ec49265b8..000000000 --- a/resources/icons/white/machine+cog.svg +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - - diff --git a/resources/icons/white/mirroring_off.svg b/resources/icons/white/mirroring_off.svg deleted file mode 100644 index 2011d8f1b..000000000 --- a/resources/icons/white/mirroring_off.svg +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/resources/icons/white/mirroring_on.svg b/resources/icons/white/mirroring_on.svg deleted file mode 100644 index 1773b78ad..000000000 --- a/resources/icons/white/mirroring_on.svg +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/resources/icons/white/note.svg b/resources/icons/white/note.svg deleted file mode 100644 index 07c2a14cf..000000000 --- a/resources/icons/white/note.svg +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/resources/icons/white/notes.svg b/resources/icons/white/notes.svg deleted file mode 100644 index 25de4191e..000000000 --- a/resources/icons/white/notes.svg +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/resources/icons/white/number_of_copies.svg b/resources/icons/white/number_of_copies.svg deleted file mode 100644 index 7c9d78a80..000000000 --- a/resources/icons/white/number_of_copies.svg +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/resources/icons/white/open.svg b/resources/icons/white/open.svg deleted file mode 100644 index 0ea9ecdb2..000000000 --- a/resources/icons/white/open.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - diff --git a/resources/icons/white/output+page_white.svg b/resources/icons/white/output+page_white.svg deleted file mode 100644 index 083874003..000000000 --- a/resources/icons/white/output+page_white.svg +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - diff --git a/resources/icons/white/pad.svg b/resources/icons/white/pad.svg deleted file mode 100644 index cddb2da02..000000000 --- a/resources/icons/white/pad.svg +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/resources/icons/white/paste_menu.svg b/resources/icons/white/paste_menu.svg deleted file mode 100644 index 465c2faf0..000000000 --- a/resources/icons/white/paste_menu.svg +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - diff --git a/resources/icons/white/pause_print.svg b/resources/icons/white/pause_print.svg deleted file mode 100644 index 73f747fff..000000000 --- a/resources/icons/white/pause_print.svg +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/resources/icons/white/plater.svg b/resources/icons/white/plater.svg deleted file mode 100644 index d637a5e7e..000000000 --- a/resources/icons/white/plater.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - diff --git a/resources/icons/white/preview_menu.svg b/resources/icons/white/preview_menu.svg deleted file mode 100644 index 98095359c..000000000 --- a/resources/icons/white/preview_menu.svg +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/resources/icons/white/printer.svg b/resources/icons/white/printer.svg deleted file mode 100644 index d94f6fd5c..000000000 --- a/resources/icons/white/printer.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - diff --git a/resources/icons/white/re_slice.svg b/resources/icons/white/re_slice.svg deleted file mode 100644 index b8d7dc727..000000000 --- a/resources/icons/white/re_slice.svg +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - diff --git a/resources/icons/white/redo_menu.svg b/resources/icons/white/redo_menu.svg deleted file mode 100644 index 749f49a42..000000000 --- a/resources/icons/white/redo_menu.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - diff --git a/resources/icons/white/remove_copies.svg b/resources/icons/white/remove_copies.svg deleted file mode 100644 index 5b277e45e..000000000 --- a/resources/icons/white/remove_copies.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - diff --git a/resources/icons/white/remove_menu.svg b/resources/icons/white/remove_menu.svg deleted file mode 100644 index 59360a33f..000000000 --- a/resources/icons/white/remove_menu.svg +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - - - - - diff --git a/resources/icons/white/resin.svg b/resources/icons/white/resin.svg deleted file mode 100644 index 81abfae0c..000000000 --- a/resources/icons/white/resin.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - diff --git a/resources/icons/white/save.svg b/resources/icons/white/save.svg deleted file mode 100644 index 3349a42dd..000000000 --- a/resources/icons/white/save.svg +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - diff --git a/resources/icons/white/search.svg b/resources/icons/white/search.svg deleted file mode 100644 index 679bb30f7..000000000 --- a/resources/icons/white/search.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/resources/icons/white/set_separate_obj.svg b/resources/icons/white/set_separate_obj.svg deleted file mode 100644 index de083c1c9..000000000 --- a/resources/icons/white/set_separate_obj.svg +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/resources/icons/white/skirt+brim.svg b/resources/icons/white/skirt+brim.svg deleted file mode 100644 index 684e177d2..000000000 --- a/resources/icons/white/skirt+brim.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - diff --git a/resources/icons/white/sla_printer.svg b/resources/icons/white/sla_printer.svg deleted file mode 100644 index 3d47e7da6..000000000 --- a/resources/icons/white/sla_printer.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - diff --git a/resources/icons/white/split_object_SMALL.svg b/resources/icons/white/split_object_SMALL.svg deleted file mode 100644 index 4795cab51..000000000 --- a/resources/icons/white/split_object_SMALL.svg +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - diff --git a/resources/icons/white/split_parts_SMALL.svg b/resources/icons/white/split_parts_SMALL.svg deleted file mode 100644 index eba846c17..000000000 --- a/resources/icons/white/split_parts_SMALL.svg +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - diff --git a/resources/icons/white/spool.svg b/resources/icons/white/spool.svg deleted file mode 100644 index 7c9fbab97..000000000 --- a/resources/icons/white/spool.svg +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/resources/icons/white/support.svg b/resources/icons/white/support.svg deleted file mode 100644 index 52b7c6b40..000000000 --- a/resources/icons/white/support.svg +++ /dev/null @@ -1,94 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/resources/icons/white/support_blocker.svg b/resources/icons/white/support_blocker.svg deleted file mode 100644 index 17401e2ab..000000000 --- a/resources/icons/white/support_blocker.svg +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/resources/icons/white/support_enforcer.svg b/resources/icons/white/support_enforcer.svg deleted file mode 100644 index 0de2dc6a7..000000000 --- a/resources/icons/white/support_enforcer.svg +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - diff --git a/resources/icons/white/switch_presets.svg b/resources/icons/white/switch_presets.svg deleted file mode 100644 index efcc3670c..000000000 --- a/resources/icons/white/switch_presets.svg +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/resources/icons/white/test.svg b/resources/icons/white/test.svg deleted file mode 100644 index 639bbbde8..000000000 --- a/resources/icons/white/test.svg +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/resources/icons/white/time.svg b/resources/icons/white/time.svg deleted file mode 100644 index d014286b5..000000000 --- a/resources/icons/white/time.svg +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - - - diff --git a/resources/icons/white/undo_menu.svg b/resources/icons/white/undo_menu.svg deleted file mode 100644 index 4e2b69a60..000000000 --- a/resources/icons/white/undo_menu.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - diff --git a/resources/icons/white/upload_queue.svg b/resources/icons/white/upload_queue.svg deleted file mode 100644 index 710e2be89..000000000 --- a/resources/icons/white/upload_queue.svg +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/resources/icons/white/wrench.svg b/resources/icons/white/wrench.svg deleted file mode 100644 index 714c5a82a..000000000 --- a/resources/icons/white/wrench.svg +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - diff --git a/resources/localization/ko/PrusaSlicer_ko_KR.po b/resources/localization/ko/PrusaSlicer_ko_KR.po index 804e21141..5a071f1b3 100644 --- a/resources/localization/ko/PrusaSlicer_ko_KR.po +++ b/resources/localization/ko/PrusaSlicer_ko_KR.po @@ -5190,11 +5190,11 @@ msgstr "레이어 및 둘레" #: src/slic3r/GUI/Tab.cpp:1043 msgid "Vertical shells" -msgstr "쉘 높이" +msgstr "수직 쉘" #: src/slic3r/GUI/Tab.cpp:1054 msgid "Horizontal shells" -msgstr "쉘 너비" +msgstr "수평 쉘" #: src/slic3r/GUI/Tab.cpp:1055 src/libslic3r/PrintConfig.cpp:1790 msgid "Solid layers" diff --git a/resources/profiles/PrusaResearch.idx b/resources/profiles/PrusaResearch.idx index cef8c654d..34d0c0958 100644 --- a/resources/profiles/PrusaResearch.idx +++ b/resources/profiles/PrusaResearch.idx @@ -1,4 +1,6 @@ min_slic3r_version = 2.4.0-beta0 +1.4.0-beta2 Added SLA material colors. Updated BASF filament profiles. +1.4.0-beta1 Updated pad wall slope angle for SLA printers. Updated Filatech Filacarbon profile for Prusa MINI. 1.4.0-beta0 Added multiple Filatech and BASF filament profiles. Added material profiles for SL1S. min_slic3r_version = 2.4.0-alpha0 1.4.0-alpha8 Added material profiles for Prusament Resin. Detect bridging perimeters enabled by default. @@ -14,10 +16,12 @@ min_slic3r_version = 2.4.0-alpha0 1.3.0-alpha1 Added Prusament PCCF. Increased travel acceleration for Prusa MINI. Updated start g-code for Prusa MINI. Added multiple add:north and Extrudr filament profiles. Updated Z travel speed values. 1.3.0-alpha0 Disabled thick bridges, updated support settings. min_slic3r_version = 2.3.2-alpha0 +1.3.3 Added multiple profiles for Filatech filaments. Added material profiles for SL1S SPEED. Updated SLA print settings. 1.3.2 Added material profiles for Prusament Resin. 1.3.1 Added multiple add:north and Extrudr filament profiles. Updated support head settings (SL1S). 1.3.0 Added SL1S SPEED profiles. min_slic3r_version = 2.3.0-rc1 +1.2.10 Added multiple profiles for Filatech filaments. Updated SLA print settings (pad wall slope angle). 1.2.9 Added material profiles for Prusament Resin. 1.2.8 Added multiple add:north and Extrudr filament profiles. 1.2.7 Updated "Prusament PC Blend Carbon Fiber" profile for Prusa MINI. diff --git a/resources/profiles/PrusaResearch.ini b/resources/profiles/PrusaResearch.ini index e243963ce..12f16679b 100644 --- a/resources/profiles/PrusaResearch.ini +++ b/resources/profiles/PrusaResearch.ini @@ -5,7 +5,7 @@ name = Prusa Research # Configuration version of this file. Config file will only be installed, if the config_version differs. # This means, the server may force the PrusaSlicer configuration to be downgraded. -config_version = 1.4.0-beta0 +config_version = 1.4.0-beta2 # Where to get the updates from? config_update_url = https://files.prusa3d.com/wp-content/uploads/repository/PrusaSlicer-settings-master/live/PrusaResearch/ changelog_url = https://files.prusa3d.com/?latest=slicer-profiles&lng=%1% @@ -2775,6 +2775,7 @@ compatible_printers_condition = nozzle_diameter[0]>=0.4 and printer_model!="MINI [filament:Filatech FilaCarbon @MINI] inherits = Filatech FilaCarbon; *ABSMINI* +first_layer_bed_temperature = 100 compatible_printers_condition = nozzle_diameter[0]>=0.4 and printer_model=="MINI" [filament:Filatech FilaPLA] @@ -2924,9 +2925,14 @@ bridge_fan_speed = 100 filament_type = PET disable_fan_first_layers = 1 full_fan_speed_layer = 3 + +filament_notes = "BASF Forward AM Ultrafuse PET\nMaterial profile version 1.0\n\nMaterial Description\nUltrafuse PET is made from a premium PET and prints as easy as PLA, but is much stronger. The filament has a large operating window for printing (temperature vs. speed), so it can be used on every 3D-printer. PET will give you outstanding printing results: a good layer adhesion, a high resolution and it is easy to handle. Ultrafuse PET can be 100% recycled, is watertight and has great colors and finish.\n\nPrinting Recommendations:\nUltrafuse PET can be printed directly onto a clean build plate. For challenging prints, use 3dLac to improve adhesion.\n" +filament_retract_length = 2 +filament_retract_speed = 40 +filament_retract_before_travel = 2 +filament_wipe = 0 +filament_retract_layer_change = 0 filament_retract_lift = 0 -# filament_retract_length = 3 -# filament_max_volumetric_speed = 7 [filament:Ultrafuse PET @MINI] inherits = Ultrafuse PET; *PETMINI* @@ -2938,11 +2944,21 @@ filament_cost = filament_density = 1.25 filament_spool_weight = 0 filament_colour = #FFFFFF -# filament overrides -# filament_retract_length = 2 -# filament_retract_speed = 40 -# filament_retract_before_travel = 2 -# filament_wipe = 0 +filament_notes = "BASF Forward AM Ultrafuse PLA PRO1\nMaterial profile version 1.0\n\nMaterial Description\nPLA PRO1 is an extremely versatile tough PLA filament made for professionals. It reduces your printing time by 30% – 80%, (subject to printer and object limitations) and the strength exceeds overall mechanical properties of printed ABS parts. Printer settings can be tuned to achieve blazing fast speeds or an unrivaled surface finish. The excellent quality control ensures the highest levels of consistency between colors and batches, it will perform as expected, every time.\n\nPrinting Recommendations:\nUltrafuse PLA PRO1 can be printed directly onto a clean build plate.\n" +filament_retract_length = 2 +filament_retract_lift = 0 +filament_retract_speed = 40 +filament_retract_before_travel = 2 +filament_retract_layer_change = 0 +compatible_printers_condition = printer_model!="MINI" and printer_model!="MK2SMM" and ! (printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK(2.5|3).*/ and single_extruder_multi_material) + +[filament:Ultrafuse PRO1 @MINI] +inherits = Ultrafuse PRO1 +filament_retract_length = nil +filament_retract_speed = nil +filament_retract_before_travel = nil +filament_retract_layer_change = nil +compatible_printers_condition = printer_model=="MINI" [filament:Ultrafuse ABS] inherits = *ABSC* @@ -2954,17 +2970,19 @@ max_fan_speed = 20 bed_temperature = 100 disable_fan_first_layers = 3 filament_colour = #FFFFFF -# filament overrides -# filament_retract_length = 2 -# filament_retract_speed = 40 -# filament_retract_before_travel = 2 -# filament_wipe = 0 +filament_notes = "BASF Forward AM Ultrafuse ABS\nMaterial profile version 1.0\n\nMaterial Description\nABS is the second most used 3D printing material. It is strong, flexible and has a high heat resistance. ABS is a preferred plastic for engineers and professional applications. ABS can be smoothened with acetone. To make a proper 3D print with ABS you will need a heated print bed. The filament is available in 9 colors.\n\nPrinting Recommendations:\n\nApply Tape, adhesion spray or glue to a clean build plate to improve adhesion.\n" +filament_retract_length = 2 +filament_retract_speed = 40 +filament_retract_before_travel = 2 +filament_wipe = 0 +filament_retract_layer_change = 0 [filament:Ultrafuse ABS @MINI] inherits = Ultrafuse ABS; *ABSMINI* -[filament:Ultrafuse 17-4 PH] +[filament:Ultrafuse Metal] inherits = *ABSC* +renamed_from = "Ultrafuse 17-4 PH" filament_vendor = BASF filament_cost = filament_density = 4.5 @@ -4475,7 +4493,7 @@ pad_enable = 1 pad_max_merge_distance = 50 pad_wall_height = 0 pad_wall_thickness = 1 -pad_wall_slope = 90 +pad_wall_slope = 45 slice_closing_radius = 0.005 support_base_diameter = 3 support_base_height = 1 @@ -4606,6 +4624,7 @@ exposure_time = 12 initial_exposure_time = 35 material_type = Tough material_vendor = 3DM +material_colour = #FF8040 [sla_material:3DM-Vulcan Gold @0.025] inherits = *common 0.025* @@ -4613,6 +4632,7 @@ exposure_time = 12 initial_exposure_time = 30 material_type = Tough material_vendor = 3DM +material_colour = #B0B000 [sla_material:3DM-TOUGH Clear @0.025] inherits = *common 0.025* @@ -4620,6 +4640,7 @@ exposure_time = 9 initial_exposure_time = 30 material_type = Tough material_vendor = 3DM +material_colour = #F8F8F8 [sla_material:3DM-HR Red Wine @0.025] inherits = *common 0.025* @@ -4627,6 +4648,7 @@ exposure_time = 14 initial_exposure_time = 35 material_type = Tough material_vendor = 3DM +material_colour = #EC0000 [sla_material:BlueCast Phrozen Wax @0.025] inherits = *common 0.025* @@ -4634,6 +4656,7 @@ exposure_time = 15 initial_exposure_time = 50 material_type = Tough material_vendor = BlueCast +material_colour = #007EFD [sla_material:BlueCast Castable Wax @0.025] inherits = *common 0.025* @@ -4641,6 +4664,7 @@ exposure_time = 8 initial_exposure_time = 35 material_type = Casting material_vendor = BlueCast +material_colour = #007EFD [sla_material:BlueCast EcoGray @0.025] inherits = *common 0.025* @@ -4648,6 +4672,7 @@ exposure_time = 6 initial_exposure_time = 40 material_type = Tough material_vendor = BlueCast +material_colour = #808080 [sla_material:BlueCast Kera Master Dental @0.025] inherits = *common 0.025* @@ -4655,6 +4680,7 @@ exposure_time = 6 initial_exposure_time = 45 material_type = Dental material_vendor = BlueCast +material_colour = #B0B000 [sla_material:BlueCast Model Dental Gray @0.025] inherits = *common 0.025* @@ -4662,6 +4688,7 @@ exposure_time = 6 initial_exposure_time = 35 material_type = Dental material_vendor = BlueCast +material_colour = #C0C0C0 [sla_material:BlueCast X10 @0.025] inherits = *common 0.025* @@ -4669,6 +4696,7 @@ exposure_time = 4 initial_exposure_time = 100 material_type = Tough material_vendor = BlueCast +material_colour = #007EFD [sla_material:DruckWege Type D High Temp @0.025] inherits = *common 0.025* @@ -4676,6 +4704,7 @@ exposure_time = 6 initial_exposure_time = 20 material_type = Tough material_vendor = DruckWege +material_colour = #E800E8 [sla_material:Esun Bio-Photopolymer Resin White @0.025] inherits = *common 0.025* @@ -4683,6 +4712,7 @@ exposure_time = 5 initial_exposure_time = 30 material_type = Tough material_vendor = Esun +material_colour = #FFFFFF [sla_material:FunToDo Castable Blend Red @0.025] inherits = *common 0.025* @@ -4690,6 +4720,7 @@ exposure_time = 10 initial_exposure_time = 35 material_type = Casting material_vendor = FunToDo +material_colour = #EC0000 [sla_material:FunToDo Snow White @0.025] inherits = *common 0.025* @@ -4697,6 +4728,7 @@ exposure_time = 7 initial_exposure_time = 35 material_type = Tough material_vendor = FunToDo +material_colour = #FFFFFF [sla_material:Harz Labs Basic Resin Red @0.025] inherits = *common 0.025* @@ -4704,6 +4736,7 @@ exposure_time = 10 initial_exposure_time = 20 material_type = Tough material_vendor = Harz Labs +material_colour = #EC0000 [sla_material:Harz Labs Model Resin Cherry @0.025] inherits = *common 0.025* @@ -4711,6 +4744,7 @@ exposure_time = 10 initial_exposure_time = 20 material_type = Tough material_vendor = Harz Labs +material_colour = #EC0000 [sla_material:Harz Labs Model Resin Black @0.025] inherits = *common 0.025* @@ -4718,6 +4752,7 @@ exposure_time = 10 initial_exposure_time = 20 material_type = Tough material_vendor = Harz Labs +material_colour = #595959 [sla_material:Harz Labs Dental Cast Red @0.025] inherits = *common 0.025* @@ -4725,6 +4760,7 @@ exposure_time = 10 initial_exposure_time = 20 material_type = Dental material_vendor = Harz Labs +material_colour = #EC0000 [sla_material:Esun Standard Resin Black @0.025] inherits = *common 0.025* @@ -4732,6 +4768,7 @@ exposure_time = 6 initial_exposure_time = 30 material_type = Tough material_vendor = Esun +material_colour = #595959 [sla_material:Photocentric Ash Grey @0.025] inherits = *common 0.025* @@ -4739,6 +4776,7 @@ exposure_time = 9 initial_exposure_time = 30 material_type = Tough material_vendor = Photocentric +material_colour = #C0C0C0 [sla_material:Resinworks 3D Violet @0.025] inherits = *common 0.025* @@ -4746,6 +4784,7 @@ exposure_time = 15 initial_exposure_time = 30 material_type = Tough material_vendor = Resinworks 3D +material_colour = #E800E8 [sla_material:Resinworks 3D Green @0.025] inherits = *common 0.025* @@ -4753,6 +4792,7 @@ exposure_time = 17 initial_exposure_time = 30 material_type = Tough material_vendor = Resinworks 3D +material_colour = #00B900 [sla_material:Monocure 3D Black Rapid Resin @0.025] inherits = *common 0.025* @@ -4760,6 +4800,7 @@ exposure_time = 4 initial_exposure_time = 35 material_type = Tough material_vendor = Monocure +material_colour = #595959 [sla_material:Monocure 3D Blue Rapid Resin @0.025] inherits = *common 0.025* @@ -4767,6 +4808,7 @@ exposure_time = 4 initial_exposure_time = 35 material_type = Tough material_vendor = Monocure +material_colour = #007EFD ## Prusa Polymers 0.025 @@ -4776,6 +4818,7 @@ exposure_time = 5 initial_exposure_time = 35 material_type = Tough material_vendor = Prusa Polymers +material_colour = #FF8040 [sla_material:Prusament Resin Tough Rich Black @0.025] inherits = *common 0.025* @@ -4783,6 +4826,7 @@ exposure_time = 5 initial_exposure_time = 35 material_type = Tough material_vendor = Prusa Polymers +material_colour = #595959 [sla_material:Prusament Resin Tough Anthracite Grey @0.025] inherits = *common 0.025* @@ -4790,6 +4834,7 @@ exposure_time = 6 initial_exposure_time = 35 material_type = Tough material_vendor = Prusa Polymers +material_colour = #808080 ## Prusa 0.025 @@ -4799,6 +4844,7 @@ exposure_time = 6 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #FF8040 [sla_material:Prusa Grey Tough @0.025] inherits = *common 0.025* @@ -4806,6 +4852,7 @@ exposure_time = 7 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #FF8040 [sla_material:Prusa Azure Blue Tough @0.025] inherits = *common 0.025* @@ -4813,6 +4860,7 @@ exposure_time = 7 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #007EFD ## [sla_material:Prusa Blue Tough @0.025] ## inherits = *common 0.025* @@ -4827,6 +4875,7 @@ exposure_time = 6 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #804000 [sla_material:Prusa Beige Tough @0.025] inherits = *common 0.025* @@ -4834,6 +4883,7 @@ exposure_time = 6 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #FFEEE6 [sla_material:Prusa Pink Tough @0.025] inherits = *common 0.025* @@ -4841,6 +4891,7 @@ exposure_time = 7 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #FF80C0 [sla_material:Prusa White Tough @0.025] inherits = *common 0.025* @@ -4848,6 +4899,7 @@ exposure_time = 6.5 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #FFFFFF [sla_material:Prusa Transparent Tough @0.025] inherits = *common 0.025* @@ -4855,6 +4907,7 @@ exposure_time = 6 initial_exposure_time = 15 material_type = Tough material_vendor = Made for Prusa +material_colour = #F8F8F8 [sla_material:Prusa Green Dental Casting @0.025] inherits = *common 0.025* @@ -4862,6 +4915,7 @@ exposure_time = 12 initial_exposure_time = 40 material_type = Casting material_vendor = Made for Prusa +material_colour = #00B900 [sla_material:Prusa Transparent Green Tough @0.025] inherits = *common 0.025* @@ -4869,6 +4923,7 @@ exposure_time = 5 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #00B900 [sla_material:Prusa Clear ABS like @0.025] inherits = *common 0.025* @@ -4876,6 +4931,7 @@ exposure_time = 6 initial_exposure_time = 30 material_type = Tough material_vendor = Made for Prusa +material_colour = #F8F8F8 [sla_material:Prusa White ABS like @0.025] inherits = *common 0.025* @@ -4883,6 +4939,7 @@ exposure_time = 5 initial_exposure_time = 30 material_type = Tough material_vendor = Made for Prusa +material_colour = #FFFFFF [sla_material:Prusa Grey High Tenacity @0.025] inherits = *common 0.025* @@ -4890,6 +4947,7 @@ exposure_time = 5 initial_exposure_time = 30 material_type = Tough material_vendor = Made for Prusa +material_colour = #C0C0C0 [sla_material:Prusa Super Low Odor Cyan Tough @0.025] inherits = *common 0.025* @@ -4897,6 +4955,7 @@ exposure_time = 5 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #007EFD [sla_material:Prusa Super Low Odor Magenta Tough @0.025] inherits = *common 0.025* @@ -4904,6 +4963,7 @@ exposure_time = 5 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #E800E8 [sla_material:Prusa Super Low Odor Yellow Tough @0.025] inherits = *common 0.025* @@ -4911,6 +4971,7 @@ exposure_time = 5 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #FFFF6F [sla_material:Prusa Orange-Yellow Teeth Model @0.025] inherits = *common 0.025* @@ -4918,6 +4979,7 @@ exposure_time = 5 initial_exposure_time = 30 material_type = Tough material_vendor = Made for Prusa +material_colour = #FFFF6F [sla_material:Prusa Vibrant Orange Tough @0.025] inherits = *common 0.025* @@ -4925,6 +4987,7 @@ exposure_time = 6 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #FF8040 [sla_material:Prusa Rich Black Tough @0.025] inherits = *common 0.025* @@ -4932,6 +4995,7 @@ exposure_time = 5 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #595959 [sla_material:Prusa Deep Blue Transparent Tough @0.025] inherits = *common 0.025* @@ -4939,6 +5003,7 @@ exposure_time = 5 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #F8F8F8 [sla_material:Prusa Yellow Jewelry Casting @0.025] inherits = *common 0.025* @@ -4946,6 +5011,7 @@ exposure_time = 8 initial_exposure_time = 45 material_type = Casting material_vendor = Made for Prusa +material_colour = #FFFF6F [sla_material:Siraya Tech Simple Clear @0.025] inherits = *common 0.025* @@ -4953,6 +5019,7 @@ exposure_time = 8 initial_exposure_time = 35 material_type = Tough material_vendor = Siraya Tech +material_colour = #F8F8F8 [sla_material:Siraya Tech Blu Clear V2 @0.025] inherits = *common 0.025* @@ -4960,6 +5027,7 @@ exposure_time = 9 initial_exposure_time = 30 material_type = Tough material_vendor = Siraya Tech +material_colour = #F8F8F8 [sla_material:Siraya Tech Blu Blue @0.025] inherits = *common 0.025* @@ -4967,6 +5035,7 @@ exposure_time = 6 initial_exposure_time = 35 material_type = Tough material_vendor = Siraya Tech +material_colour = #007EFD [sla_material:Siraya Tech Fast Grey @0.025] inherits = *common 0.025* @@ -4974,6 +5043,7 @@ exposure_time = 6 initial_exposure_time = 35 material_type = Tough material_vendor = Siraya Tech +material_colour = #C0C0C0 [sla_material:Siraya Tech Tenacious @0.025] inherits = *common 0.025* @@ -4981,6 +5051,7 @@ exposure_time = 6 initial_exposure_time = 35 material_type = Tough material_vendor = Siraya Tech +material_colour = #F8F8F8 [sla_material:Siraya Tech Easy @0.025] inherits = *common 0.025* @@ -4988,6 +5059,7 @@ exposure_time = 11 initial_exposure_time = 15 material_type = Tough material_vendor = Siraya Tech +material_colour = #F8F8F8 [sla_material:Siraya Tech Sculpt @0.025] inherits = *common 0.025* @@ -4995,6 +5067,7 @@ exposure_time = 7 initial_exposure_time = 35 material_type = Tough material_vendor = Siraya Tech +material_colour = #C0C0C0 [sla_material:Siraya Tech Fast Black @0.025] inherits = *common 0.025* @@ -5002,6 +5075,7 @@ exposure_time = 6 initial_exposure_time = 35 material_type = Tough material_vendor = Siraya Tech +material_colour = #007EFD [sla_material:NextDent Model 2.0 Grey @0.025] inherits = *common 0.025* @@ -5009,6 +5083,7 @@ exposure_time = 14 initial_exposure_time = 35 material_type = Dental material_vendor = NextDent +material_colour = #808080 [sla_material:NextDent Surgical Guide @0.025] inherits = *common 0.025* @@ -5016,6 +5091,7 @@ exposure_time = 6 initial_exposure_time = 35 material_type = Dental material_vendor = NextDent +material_colour = #FF8040 [sla_material:NextDent Cast Purple @0.025] inherits = *common 0.025* @@ -5023,6 +5099,7 @@ exposure_time = 7 initial_exposure_time = 20 material_type = Casting material_vendor = NextDent +material_colour = #E800E8 [sla_material:MakerJuice Labs Standard Red @0.025] inherits = *common 0.025* @@ -5030,6 +5107,7 @@ exposure_time = 9 initial_exposure_time = 35 material_type = Tough material_vendor = MakerJuice Labs +material_colour = #EC0000 [sla_material:3DJake High Precision Grey @0.025] inherits = *common 0.025* @@ -5037,6 +5115,7 @@ exposure_time = 8.5 initial_exposure_time = 35 material_type = Tough material_vendor = 3DJake +material_colour = #C0C0C0 [sla_material:3DJake High Precision Blue @0.025] inherits = *common 0.025* @@ -5044,6 +5123,7 @@ exposure_time = 6.5 initial_exposure_time = 35 material_type = Tough material_vendor = 3DJake +material_colour = #007EFD [sla_material:Zortrax Black @0.025] inherits = *common 0.025* @@ -5051,6 +5131,7 @@ exposure_time = 4 initial_exposure_time = 35 material_type = Tough material_vendor = Zortrax +material_colour = #595959 ########### Materials 0.05 @@ -5060,6 +5141,7 @@ exposure_time = 15 initial_exposure_time = 30 material_type = Dental material_vendor = Asiga +material_colour = #FFEEE6 [sla_material:Asiga PlasGRAY @0.05] inherits = *common 0.05* @@ -5067,6 +5149,7 @@ exposure_time = 29 initial_exposure_time = 60 material_type = Tough material_vendor = Asiga +material_colour = #C0C0C0 [sla_material:Ameralabs AMD 3 LED @0.05] inherits = *common 0.05* @@ -5074,6 +5157,7 @@ exposure_time = 5 initial_exposure_time = 30 material_type = Tough material_vendor = Ameralabs +material_colour = #808080 [sla_material:BlueCast EcoGray @0.05] inherits = *common 0.05* @@ -5081,6 +5165,7 @@ exposure_time = 7 initial_exposure_time = 35 material_type = Tough material_vendor = BlueCast +material_colour = #808080 [sla_material:BlueCast Kera Master Dental @0.05] inherits = *common 0.05* @@ -5088,6 +5173,7 @@ exposure_time = 7 initial_exposure_time = 50 material_type = Dental material_vendor = BlueCast +material_colour = #FFEEE6 [sla_material:BlueCast Model Dental Gray @0.05] inherits = *common 0.05* @@ -5095,6 +5181,7 @@ exposure_time = 8 initial_exposure_time = 35 material_type = Dental material_vendor = BlueCast +material_colour = #C0C0C0 [sla_material:BlueCast LCD-DLP Original @0.05] inherits = *common 0.05* @@ -5102,6 +5189,7 @@ exposure_time = 10 initial_exposure_time = 60 material_type = Tough material_vendor = BlueCast +material_colour = #007EFD [sla_material:BlueCast Phrozen Wax @0.05] inherits = *common 0.05* @@ -5109,6 +5197,7 @@ exposure_time = 16 initial_exposure_time = 50 material_type = Tough material_vendor = BlueCast +material_colour = #007EFD [sla_material:BlueCast Castable Wax @0.05] inherits = *common 0.05* @@ -5116,6 +5205,7 @@ exposure_time = 11 initial_exposure_time = 35 material_type = Casting material_vendor = BlueCast +material_colour = #E800E8 [sla_material:BlueCast S+ @0.05] inherits = *common 0.05* @@ -5123,6 +5213,7 @@ exposure_time = 9 initial_exposure_time = 45 material_type = Tough material_vendor = BlueCast +material_colour = #00B900 [sla_material:BlueCast X5 @0.05] inherits = *common 0.05* @@ -5130,6 +5221,7 @@ exposure_time = 9 initial_exposure_time = 100 material_type = Tough material_vendor = BlueCast +material_colour = #007EFD [sla_material:BlueCast X10 @0.05] inherits = *common 0.05* @@ -5137,6 +5229,7 @@ exposure_time = 6 initial_exposure_time = 100 material_type = Tough material_vendor = BlueCast +material_colour = #007EFD [sla_material:BlueCast 23LS @0.05] inherits = *common 0.05* @@ -5144,6 +5237,7 @@ exposure_time = 8 initial_exposure_time = 50 material_type = Tough material_vendor = BlueCast +material_colour = #007EFD [sla_material:DruckWege Type D High Temp @0.05] inherits = *common 0.05* @@ -5151,6 +5245,7 @@ exposure_time = 10 initial_exposure_time = 20 material_type = Tough material_vendor = DruckWege +material_colour = #E800E8 [sla_material:Monocure 3D Black Rapid Resin @0.05] inherits = *common 0.05* @@ -5158,6 +5253,7 @@ exposure_time = 6 initial_exposure_time = 35 material_type = Tough material_vendor = Monocure +material_colour = #595959 [sla_material:Monocure 3D Blue Rapid Resin @0.05] inherits = *common 0.05* @@ -5165,6 +5261,7 @@ exposure_time = 7 initial_exposure_time = 35 material_type = Tough material_vendor = Monocure +material_colour = #007EFD [sla_material:Monocure 3D Clear Rapid Resin @0.05] inherits = *common 0.05* @@ -5172,6 +5269,7 @@ exposure_time = 8 initial_exposure_time = 40 material_type = Tough material_vendor = Monocure +material_colour = #F8F8F8 [sla_material:Monocure 3D Grey Rapid Resin @0.05] inherits = *common 0.05* @@ -5179,6 +5277,7 @@ exposure_time = 10 initial_exposure_time = 30 material_type = Tough material_vendor = Monocure +material_colour = #C0C0C0 [sla_material:Monocure 3D White Rapid Resin @0.05] inherits = *common 0.05* @@ -5186,6 +5285,7 @@ exposure_time = 10 initial_exposure_time = 35 material_type = Tough material_vendor = Monocure +material_colour = #FFFFFF [sla_material:3DM-HTR140 (high temperature) @0.05] inherits = *common 0.05* @@ -5193,6 +5293,7 @@ exposure_time = 12 initial_exposure_time = 45 material_type = Tough material_vendor = Monocure +material_colour = #EC0000 [sla_material:Esun Bio-Photopolymer Resin White @0.05] inherits = *common 0.05* @@ -5200,6 +5301,7 @@ exposure_time = 8 initial_exposure_time = 30 material_type = Tough material_vendor = Esun +material_colour = #FFFFFF [sla_material:Esun Standard Resin Black @0.05] inherits = *common 0.05* @@ -5207,6 +5309,7 @@ exposure_time = 7 initial_exposure_time = 30 material_type = Tough material_vendor = Esun +material_colour = #595959 [sla_material:FunToDo Castable Blend Red @0.05] inherits = *common 0.05* @@ -5214,6 +5317,7 @@ exposure_time = 15 initial_exposure_time = 35 material_type = Casting material_vendor = FunToDo +material_colour = #EC0000 [sla_material:FunToDo Industrial Blend Unpigmented @0.05] inherits = *common 0.05* @@ -5221,6 +5325,7 @@ exposure_time = 4 initial_exposure_time = 35 material_type = Tough material_vendor = FunToDo +material_colour = #F8F8F8 [sla_material:FunToDo Snow White @0.05] inherits = *common 0.05* @@ -5228,6 +5333,7 @@ exposure_time = 10 initial_exposure_time = 35 material_type = Tough material_vendor = FunToDo +material_colour = #FFFFFF [sla_material:3DM-ABS @0.05] inherits = *common 0.05* @@ -5235,6 +5341,7 @@ exposure_time = 13 initial_exposure_time = 25 material_type = Tough material_vendor = 3DM +material_colour = #FF8040 [sla_material:3DM-BLACK @0.05] inherits = *common 0.05* @@ -5242,6 +5349,7 @@ exposure_time = 20 initial_exposure_time = 40 material_type = Tough material_vendor = 3DM +material_colour = #595959 [sla_material:3DM-DENT @0.05] inherits = *common 0.05* @@ -5249,6 +5357,7 @@ exposure_time = 7 initial_exposure_time = 45 material_type = Dental material_vendor = 3DM +material_colour = #FFEEE6 [sla_material:3DM-HR Green @0.05] inherits = *common 0.05* @@ -5256,6 +5365,7 @@ exposure_time = 15 initial_exposure_time = 40 material_type = Tough material_vendor = 3DM +material_colour = #00B900 [sla_material:3DM-HR Red Wine @0.05] inherits = *common 0.05* @@ -5263,6 +5373,7 @@ exposure_time = 18 initial_exposure_time = 35 material_type = Tough material_vendor = 3DM +material_colour = #EC0000 [sla_material:3DM-XPRO White @0.05] inherits = *common 0.05* @@ -5270,6 +5381,7 @@ exposure_time = 9 initial_exposure_time = 35 material_type = Tough material_vendor = 3DM +material_colour = #FFFFFF [sla_material:3DM-Vulcan Gold @0.05] inherits = *common 0.05* @@ -5277,6 +5389,7 @@ exposure_time = 15 initial_exposure_time = 30 material_type = Tough material_vendor = 3DM +material_colour = #B0B000 [sla_material:3DM-TOUGH Clear @0.05] inherits = *common 0.05* @@ -5284,6 +5397,7 @@ exposure_time = 15 initial_exposure_time = 30 material_type = Tough material_vendor = 3DM +material_colour = #F8F8F8 [sla_material:FunToDo Ash Grey @0.05] inherits = *common 0.05* @@ -5291,6 +5405,7 @@ exposure_time = 9 initial_exposure_time = 40 material_type = Tough material_vendor = FunToDo +material_colour = #808080 [sla_material:Harz Labs Model Resin Cherry @0.05] inherits = *common 0.05* @@ -5298,6 +5413,7 @@ exposure_time = 13 initial_exposure_time = 20 material_type = Tough material_vendor = Harz Labs +material_colour = #EC0000 [sla_material:Harz Labs Basic Resin Red @0.05] inherits = *common 0.05* @@ -5305,6 +5421,7 @@ exposure_time = 13 initial_exposure_time = 20 material_type = Tough material_vendor = Harz Labs +material_colour = #EC0000 [sla_material:Harz Labs Model Resin Black @0.05] inherits = *common 0.05* @@ -5312,6 +5429,7 @@ exposure_time = 13 initial_exposure_time = 20 material_type = Tough material_vendor = Harz Labs +material_colour = #595959 [sla_material:Harz Labs Dental Cast Red @0.05] inherits = *common 0.05* @@ -5319,6 +5437,7 @@ exposure_time = 13 initial_exposure_time = 20 material_type = Dental material_vendor = Harz Labs +material_colour = #EC0000 [sla_material:Resinworks 3D Violet @0.05] inherits = *common 0.05* @@ -5326,6 +5445,7 @@ exposure_time = 17 initial_exposure_time = 30 material_type = Tough material_vendor = Resinworks 3D +material_colour = #E800E8 [sla_material:Resinworks 3D Green @0.05] inherits = *common 0.05* @@ -5333,6 +5453,7 @@ exposure_time = 21 initial_exposure_time = 35 material_type = Tough material_vendor = Resinworks 3D +material_colour = #00B900 [sla_material:Photocentric Hard Grey @0.05] inherits = *common 0.05* @@ -5340,6 +5461,7 @@ exposure_time = 15 initial_exposure_time = 30 material_type = Tough material_vendor = Photocentric +material_colour = #808080 [sla_material:Photocentric Ash Grey @0.05] inherits = *common 0.05* @@ -5347,6 +5469,7 @@ exposure_time = 10 initial_exposure_time = 30 material_type = Tough material_vendor = Photocentric +material_colour = #C0C0C0 [sla_material:Siraya Tech Simple Clear @0.05] inherits = *common 0.05* @@ -5354,6 +5477,7 @@ exposure_time = 10 initial_exposure_time = 35 material_type = Tough material_vendor = Siraya Tech +material_colour = #F8F8F8 [sla_material:Siraya Tech Blu Clear V2 @0.05] inherits = *common 0.05* @@ -5361,6 +5485,7 @@ exposure_time = 10 initial_exposure_time = 30 material_type = Tough material_vendor = Siraya Tech +material_colour = #F8F8F8 [sla_material:Siraya Tech Blu Blue @0.05] inherits = *common 0.05* @@ -5368,6 +5493,7 @@ exposure_time = 12 initial_exposure_time = 35 material_type = Tough material_vendor = Siraya Tech +material_colour = #007EFD [sla_material:Siraya Tech Fast Grey @0.05] inherits = *common 0.05* @@ -5375,6 +5501,7 @@ exposure_time = 10 initial_exposure_time = 35 material_type = Tough material_vendor = Siraya Tech +material_colour = #C0C0C0 [sla_material:Siraya Tech Tenacious @0.05] inherits = *common 0.05* @@ -5382,6 +5509,7 @@ exposure_time = 8 initial_exposure_time = 35 material_type = Tough material_vendor = Siraya Tech +material_colour = #F8F8F8 [sla_material:Siraya Tech Easy @0.05] inherits = *common 0.05* @@ -5389,6 +5517,7 @@ exposure_time = 12 initial_exposure_time = 15 material_type = Tough material_vendor = Siraya Tech +material_colour = #F8F8F8 [sla_material:Siraya Tech Sculpt @0.05] inherits = *common 0.05* @@ -5396,6 +5525,7 @@ exposure_time = 8 initial_exposure_time = 35 material_type = Tough material_vendor = Siraya Tech +material_colour = #C0C0C0 [sla_material:Siraya Tech Fast Black @0.05] inherits = *common 0.05* @@ -5403,6 +5533,7 @@ exposure_time = 9 initial_exposure_time = 35 material_type = Tough material_vendor = Siraya Tech +material_colour = #595959 [sla_material:NextDent Model 2.0 Grey @0.05] inherits = *common 0.05* @@ -5410,6 +5541,7 @@ exposure_time = 12 initial_exposure_time = 35 material_type = Dental material_vendor = NextDent +material_colour = #C0C0C0 [sla_material:NextDent Surgical Guide @0.05] inherits = *common 0.05* @@ -5417,6 +5549,7 @@ exposure_time = 7 initial_exposure_time = 35 material_type = Dental material_vendor = NextDent +material_colour = #FFEEE6 [sla_material:NextDent Cast Purple @0.05] inherits = *common 0.05* @@ -5424,6 +5557,7 @@ exposure_time = 9 initial_exposure_time = 20 material_type = Casting material_vendor = NextDent +material_colour = #E800E8 [sla_material:NextDent Crown Bridge @0.05] inherits = *common 0.05* @@ -5431,6 +5565,7 @@ exposure_time = 11 initial_exposure_time = 35 material_type = Dental material_vendor = NextDent +material_colour = #FFFFFF [sla_material:MakerJuice Labs Standard Red @0.05] inherits = *common 0.05* @@ -5438,6 +5573,7 @@ exposure_time = 10 initial_exposure_time = 35 material_type = Tough material_vendor = MakerJuice Labs +material_colour = #EC0000 [sla_material:3DJake High Precision Grey @0.05] inherits = *common 0.05* @@ -5445,6 +5581,7 @@ exposure_time = 9 initial_exposure_time = 35 material_type = Tough material_vendor = 3DJake +material_colour = #C0C0C0 [sla_material:3DJake High Precision Blue @0.05] inherits = *common 0.05* @@ -5452,6 +5589,7 @@ exposure_time = 7 initial_exposure_time = 35 material_type = Tough material_vendor = 3DJake +material_colour = #007EFD [sla_material:Dragon Resin Metalshine Metal Grey @0.05] inherits = *common 0.05* @@ -5459,6 +5597,7 @@ exposure_time = 30 initial_exposure_time = 50 material_type = Tough material_vendor = Dragon Resin +material_colour = #808080 [sla_material:Dragon Resin Metalshine Dark Brass @0.05] inherits = *common 0.05* @@ -5466,6 +5605,7 @@ exposure_time = 30 initial_exposure_time = 50 material_type = Tough material_vendor = Dragon Resin +material_colour = #B0B000 [sla_material:Dragon Resin Metalshine Brass @0.05] inherits = *common 0.05* @@ -5473,6 +5613,7 @@ exposure_time = 30 initial_exposure_time = 50 material_type = Tough material_vendor = Dragon Resin +material_colour = #B0B000 [sla_material:Zortrax Black @0.05] inherits = *common 0.05* @@ -5480,6 +5621,7 @@ exposure_time = 7 initial_exposure_time = 35 material_type = Tough material_vendor = Zortrax +material_colour = #595959 ## Prusa Polymers 0.05 @@ -5489,6 +5631,7 @@ exposure_time = 6 initial_exposure_time = 35 material_type = Tough material_vendor = Prusa Polymers +material_colour = #FF8040 [sla_material:Prusament Resin Tough Rich Black @0.05] inherits = *common 0.05* @@ -5496,6 +5639,7 @@ exposure_time = 6 initial_exposure_time = 35 material_type = Tough material_vendor = Prusa Polymers +material_colour = #595959 [sla_material:Prusament Resin Tough Anthracite Grey @0.05] inherits = *common 0.05* @@ -5503,6 +5647,7 @@ exposure_time = 7 initial_exposure_time = 35 material_type = Tough material_vendor = Prusa Polymers +material_colour = #C0C0C0 ## Prusa 0.05 @@ -5512,6 +5657,7 @@ exposure_time = 7 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = [sla_material:Prusa Orange Tough @0.05] inherits = *common 0.05* @@ -5519,6 +5665,7 @@ exposure_time = 7.5 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #FFEEE6 [sla_material:Prusa Grey Tough @0.05] inherits = *common 0.05* @@ -5526,6 +5673,7 @@ exposure_time = 8.5 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #808080 [sla_material:Prusa Black Tough @0.05] inherits = *common 0.05* @@ -5533,6 +5681,7 @@ exposure_time = 6 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #595959 ## [sla_material:Prusa Super Low Odor Beige Tough @0.05] ## inherits = *common 0.05* @@ -5561,6 +5710,7 @@ exposure_time = 6 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = [sla_material:Prusa Super Low Odor Magenta Tough @0.05] inherits = *common 0.05* @@ -5568,6 +5718,7 @@ exposure_time = 6 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #E800E8 [sla_material:Prusa Super Low Odor Yellow Tough @0.05] inherits = *common 0.05* @@ -5575,6 +5726,7 @@ exposure_time = 6 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #FFFF6F ## [sla_material:Prusa Black High Tenacity @0.05] ## inherits = *common 0.05* @@ -5589,6 +5741,7 @@ exposure_time = 7 initial_exposure_time = 30 material_type = Tough material_vendor = Made for Prusa +material_colour = #FFFF6F [sla_material:Prusa Green Dental Casting @0.05] inherits = *common 0.05* @@ -5596,6 +5749,7 @@ exposure_time = 13 initial_exposure_time = 50 material_type = Casting material_vendor = Made for Prusa +material_colour = #00B900 ## [sla_material:Prusa Yellow Solid @0.05] ## inherits = *common 0.05* @@ -5608,6 +5762,7 @@ exposure_time = 7.5 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #FFFFFF [sla_material:Prusa Transparent Green Tough @0.05] inherits = *common 0.05* @@ -5615,6 +5770,7 @@ exposure_time = 6 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #00B900 [sla_material:Prusa Transparent Red Tough @0.05] inherits = *common 0.05* @@ -5622,6 +5778,7 @@ exposure_time = 6 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #EC0000 [sla_material:Prusa Maroon Tough @0.05] inherits = *common 0.05* @@ -5629,6 +5786,7 @@ exposure_time = 7.5 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #804000 [sla_material:Prusa Pink Tough @0.05] inherits = *common 0.05* @@ -5636,6 +5794,7 @@ exposure_time = 8 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #FF80C0 [sla_material:Prusa Azure Blue Tough @0.05] inherits = *common 0.05* @@ -5643,6 +5802,7 @@ exposure_time = 8 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #007EFD ## [sla_material:Prusa Blue Tough @0.05] ## inherits = *common 0.05* @@ -5657,6 +5817,7 @@ exposure_time = 7 initial_exposure_time = 15 material_type = Tough material_vendor = Made for Prusa +material_colour = #F8F8F8 ## [sla_material:Prusa Yellow Flexible @0.05] ## inherits = *common 0.05* @@ -5669,6 +5830,7 @@ exposure_time = 5 initial_exposure_time = 15 material_type = Flexible material_vendor = Made for Prusa +material_colour = #F8F8F8 ## [sla_material:Prusa White Flexible @0.05] ## inherits = *common 0.05* @@ -5681,6 +5843,7 @@ exposure_time = 5 initial_exposure_time = 15 material_type = Flexible material_vendor = Made for Prusa +material_colour = #007EFD ## [sla_material:Prusa Black Flexible @0.05] ## inherits = *common 0.05* @@ -5698,6 +5861,7 @@ exposure_time = 8 initial_exposure_time = 30 material_type = Tough material_vendor = Made for Prusa +material_colour = #F8F8F8 [sla_material:Prusa White ABS like @0.05] inherits = *common 0.05* @@ -5705,6 +5869,7 @@ exposure_time = 8 initial_exposure_time = 30 material_type = Tough material_vendor = Made for Prusa +material_colour = #FFFFFF [sla_material:Prusa Yellow Jewelry Casting @0.05] inherits = *common 0.05* @@ -5712,6 +5877,7 @@ exposure_time = 13 initial_exposure_time = 45 material_type = Casting material_vendor = Made for Prusa +material_colour = #FFFF6F [sla_material:Prusa Grey High Tenacity @0.05] inherits = *common 0.05* @@ -5719,6 +5885,7 @@ exposure_time = 7 initial_exposure_time = 30 material_type = Tough material_vendor = Made for Prusa +material_colour = #C0C0C0 [sla_material:Prusa Vibrant Orange Tough @0.05] inherits = *common 0.05* @@ -5726,6 +5893,7 @@ exposure_time = 7 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #FF8040 [sla_material:Prusa Rich Black Tough @0.05] inherits = *common 0.05* @@ -5733,6 +5901,7 @@ exposure_time = 8 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #595959 [sla_material:Prusa Deep Blue Transparent Tough @0.05] inherits = *common 0.05* @@ -5740,6 +5909,7 @@ exposure_time = 8 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #007EFD ########### Materials 0.035 @@ -5749,6 +5919,7 @@ exposure_time = 6 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #FF8040 ########### Materials 0.1 @@ -5758,6 +5929,7 @@ exposure_time = 10 initial_exposure_time = 35 material_type = Tough material_vendor = BlueCast +material_colour = #C0C0C0 [sla_material:BlueCast Kera Master Dental @0.1] inherits = *common 0.1* @@ -5765,6 +5937,7 @@ exposure_time = 13 initial_exposure_time = 50 material_type = Tough material_vendor = BlueCast +material_colour = #FFEEE6 ## Prusa Polymers 0.1 @@ -5774,6 +5947,7 @@ exposure_time = 13 initial_exposure_time = 45 material_type = Tough material_vendor = Prusa Polymers +material_colour = #FF8040 [sla_material:Prusament Resin Tough Rich Black @0.1] inherits = *common 0.1* @@ -5781,6 +5955,7 @@ exposure_time = 13 initial_exposure_time = 45 material_type = Tough material_vendor = Prusa Polymers +material_colour = #595959 [sla_material:Prusament Resin Tough Anthracite Grey @0.1] inherits = *common 0.1* @@ -5788,6 +5963,7 @@ exposure_time = 14 initial_exposure_time = 45 material_type = Tough material_vendor = Prusa Polymers +material_colour = #808080 ## Prusa 0.1 @@ -5797,6 +5973,7 @@ exposure_time = 13 initial_exposure_time = 45 material_type = Tough material_vendor = Made for Prusa +material_colour = #FF8040 [sla_material:Prusa Beige Tough @0.1] inherits = *common 0.1* @@ -5804,6 +5981,7 @@ exposure_time = 13 initial_exposure_time = 45 material_type = Tough material_vendor = Made for Prusa +material_colour = #FFEEE6 [sla_material:Prusa Pink Tough @0.1] inherits = *common 0.1* @@ -5811,6 +5989,7 @@ exposure_time = 13 initial_exposure_time = 45 material_type = Tough material_vendor = Made for Prusa +material_colour = #FF80C0 [sla_material:Prusa Azure Blue Tough @0.1] inherits = *common 0.1* @@ -5818,6 +5997,7 @@ exposure_time = 13 initial_exposure_time = 45 material_type = Tough material_vendor = Made for Prusa +material_colour = #007EFD [sla_material:Prusa Maroon Tough @0.1] inherits = *common 0.1* @@ -5825,6 +6005,7 @@ exposure_time = 13 initial_exposure_time = 45 material_type = Tough material_vendor = Made for Prusa +material_colour = #804000 [sla_material:Prusa White Tough @0.1] inherits = *common 0.1* @@ -5832,6 +6013,7 @@ exposure_time = 13 initial_exposure_time = 45 material_type = Tough material_vendor = Made for Prusa +material_colour = #FFFFFF [sla_material:Prusa Black Tough @0.1] inherits = *common 0.1* @@ -5839,6 +6021,7 @@ exposure_time = 13 initial_exposure_time = 55 material_type = Tough material_vendor = Made for Prusa +material_colour = #595959 [sla_material:Prusa Transparent Tough @0.1] inherits = *common 0.1* @@ -5846,6 +6029,7 @@ exposure_time = 8 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #F8F8F8 [sla_material:Prusa Green Dental Casting @0.1] inherits = *common 0.1* @@ -5853,6 +6037,7 @@ exposure_time = 15 initial_exposure_time = 50 material_type = Casting material_vendor = Made for Prusa +material_colour = #00B900 [sla_material:Prusa Transparent Green Tough @0.1] inherits = *common 0.1* @@ -5860,6 +6045,7 @@ exposure_time = 7 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #00B900 [sla_material:Prusa Vibrant Orange Tough @0.1] inherits = *common 0.1* @@ -5867,6 +6053,7 @@ exposure_time = 8 initial_exposure_time = 35 material_type = Tough material_vendor = Made for Prusa +material_colour = #FF8040 ## SL1S materials ## @@ -5880,6 +6067,7 @@ exposure_time = 1.8 initial_exposure_time = 25 material_type = Tough material_vendor = Prusa Polymers +material_colour = #FF8040 [sla_material:Prusament Resin Tough Rich Black @0.025 SL1S] inherits = *0.025_sl1s* @@ -5887,6 +6075,7 @@ exposure_time = 1.8 initial_exposure_time = 25 material_type = Tough material_vendor = Prusa Polymers +material_colour = #595959 [sla_material:Prusament Resin Tough Anthracite Grey @0.025 SL1S] inherits = *0.025_sl1s* @@ -5894,6 +6083,7 @@ exposure_time = 2 initial_exposure_time = 25 material_type = Tough material_vendor = Prusa Polymers +material_colour = #808080 ## Made for Prusa 0.025 @@ -5903,6 +6093,7 @@ exposure_time = 1.8 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #FF8040 [sla_material:Prusa White ABS like @0.025 SL1S] inherits = *0.025_sl1s* @@ -5910,6 +6101,7 @@ exposure_time = 1.8 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #FFFFFF [sla_material:Prusa Azure Blue Tough @0.025 SL1S] inherits = *0.025_sl1s* @@ -5917,6 +6109,7 @@ exposure_time = 1.8 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #007EFD [sla_material:Prusa Black Tough @0.025 SL1S] inherits = *0.025_sl1s* @@ -5924,6 +6117,7 @@ exposure_time = 2 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #595959 [sla_material:Prusa Cyan Tough @0.025 SL1S] inherits = *0.025_sl1s* @@ -5931,6 +6125,7 @@ exposure_time = 1.8 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = [sla_material:Prusa Magenta Tough @0.025 SL1S] inherits = *0.025_sl1s* @@ -5938,6 +6133,7 @@ exposure_time = 1.8 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #E800E8 [sla_material:Prusa Maroon Tough @0.025 SL1S] inherits = *0.025_sl1s* @@ -5945,6 +6141,7 @@ exposure_time = 2 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #804000 [sla_material:Prusa White Tough @0.025 SL1S] inherits = *0.025_sl1s* @@ -5952,6 +6149,7 @@ exposure_time = 1.8 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #FFFFFF [sla_material:Prusa Pink Tough @0.025 SL1S] inherits = *0.025_sl1s* @@ -5959,6 +6157,7 @@ exposure_time = 1.8 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #FF80C0 [sla_material:Prusa Grey Tough @0.025 SL1S] inherits = *0.025_sl1s* @@ -5966,6 +6165,7 @@ exposure_time = 2 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #C0C0C0 [sla_material:Prusa Blue Flexible @0.025 SL1S] inherits = *0.025_sl1s* @@ -5973,6 +6173,7 @@ exposure_time = 1.8 initial_exposure_time = 25 material_type = Flexible material_vendor = Made for Prusa +material_colour = #007EFD [sla_material:Prusa Grey High Tenacity @0.025 SL1S] inherits = *0.025_sl1s* @@ -5980,6 +6181,7 @@ exposure_time = 1.8 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #C0C0C0 [sla_material:Prusa Vibrant Orange Tough @0.025 SL1S] inherits = *0.025_sl1s* @@ -5987,6 +6189,7 @@ exposure_time = 4 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #FF8040 [sla_material:Prusa Deep Blue Transparent Tough @0.025 SL1S] inherits = *0.025_sl1s* @@ -5994,6 +6197,7 @@ exposure_time = 4 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #007EFD [sla_material:Prusa Green Dental Casting @0.025 SL1S] inherits = *0.025_sl1s* @@ -6001,6 +6205,7 @@ exposure_time = 3 initial_exposure_time = 50 material_type = Casting material_vendor = Made for Prusa +material_colour = #00B900 [sla_material:PrimaCreator Tough Light Grey @0.025 SL1S] inherits = *0.025_sl1s* @@ -6008,6 +6213,7 @@ exposure_time = 1.8 initial_exposure_time = 25 material_type = Tough material_vendor = PrimaCreator +material_colour = #C0C0C0 [sla_material:PrimaCreator Tough Clear @0.025 SL1S] inherits = *0.025_sl1s* @@ -6015,6 +6221,7 @@ exposure_time = 1.8 initial_exposure_time = 25 material_type = Tough material_vendor = PrimaCreator +material_colour = #F8F8F8 [sla_material:PrimaCreator Tough White @0.025 SL1S] inherits = *0.025_sl1s* @@ -6022,6 +6229,7 @@ exposure_time = 1.8 initial_exposure_time = 25 material_type = Tough material_vendor = PrimaCreator +material_colour = #FFFFFF [sla_material:PrimaCreator Flex Clear @0.025 SL1S] inherits = *0.025_sl1s* @@ -6029,6 +6237,7 @@ exposure_time = 1.8 initial_exposure_time = 25 material_type = Flexible material_vendor = PrimaCreator +material_colour = #F8F8F8 [sla_material:PrimaCreator Water Washable Transparent @0.025 SL1S] inherits = *0.025_sl1s* @@ -6036,6 +6245,7 @@ exposure_time = 1.8 initial_exposure_time = 25 material_type = Tough material_vendor = PrimaCreator +material_colour = #F8F8F8 [sla_material:DruckWege Type D Dental Model @0.025 SL1S] inherits = *0.025_sl1s* @@ -6043,6 +6253,7 @@ exposure_time = 1.2 initial_exposure_time = 15 material_type = Dental material_vendor = DruckWege +material_colour = #FFEEE6 [sla_material:DruckWege Type D Standard White @0.025 SL1S] inherits = *0.025_sl1s* @@ -6050,6 +6261,7 @@ exposure_time = 1.6 initial_exposure_time = 15 material_type = Tough material_vendor = DruckWege +material_colour = #FFFFFF [sla_material:DruckWege Type D Standard Pigmentfrei Clear @0.025 SL1S] inherits = *0.025_sl1s* @@ -6057,6 +6269,7 @@ exposure_time = 1.8 initial_exposure_time = 15 material_type = Tough material_vendor = DruckWege +material_colour = #F8F8F8 [sla_material:3DM-ABS Orange @0.025 SL1S] inherits = *0.025_sl1s* @@ -6064,6 +6277,7 @@ exposure_time = 1.8 initial_exposure_time = 25 material_type = Tough material_vendor = 3DM +material_colour = #FF8040 [sla_material:3DM-TOUGH Clear @0.025 SL1S] inherits = *0.025_sl1s* @@ -6071,6 +6285,7 @@ exposure_time = 1.8 initial_exposure_time = 25 material_type = Tough material_vendor = 3DM +material_colour = #F8F8F8 [sla_material:Peopoly Deft White @0.025 SL1S] inherits = *0.025_sl1s* @@ -6078,6 +6293,7 @@ exposure_time = 1.8 initial_exposure_time = 25 material_type = Tough material_vendor = Peopoly +material_colour = #FFFFFF [sla_material:Peopoly Neo Clear @0.025 SL1S] inherits = *0.025_sl1s* @@ -6085,6 +6301,7 @@ exposure_time = 1.8 initial_exposure_time = 25 material_type = Tough material_vendor = Peopoly +material_colour = #F8F8F8 ## 0.05 SL1S @@ -6096,6 +6313,7 @@ exposure_time = 2 initial_exposure_time = 25 material_type = Tough material_vendor = Prusa Polymers +material_colour = #FF8040 [sla_material:Prusament Resin Tough Rich Black @0.05 SL1S] inherits = *0.05_sl1s* @@ -6103,6 +6321,7 @@ exposure_time = 2 initial_exposure_time = 25 material_type = Tough material_vendor = Prusa Polymers +material_colour = #595959 [sla_material:Prusament Resin Tough Anthracite Grey @0.05 SL1S] inherits = *0.05_sl1s* @@ -6110,6 +6329,7 @@ exposure_time = 2.4 initial_exposure_time = 25 material_type = Tough material_vendor = Prusa Polymers +material_colour = #808080 ## Made for Prusa 0.05 @@ -6119,6 +6339,7 @@ exposure_time = 2 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #FF8040 [sla_material:Prusa White ABS like @0.05 SL1S] inherits = *0.05_sl1s* @@ -6126,6 +6347,7 @@ exposure_time = 2 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #FFFFFF [sla_material:Prusa Azure Blue Tough @0.05 SL1S] inherits = *0.05_sl1s* @@ -6133,6 +6355,7 @@ exposure_time = 2 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #007EFD [sla_material:Prusa Black Tough @0.05 SL1S] inherits = *0.05_sl1s* @@ -6140,6 +6363,7 @@ exposure_time = 2.4 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #595959 [sla_material:Prusa Cyan Tough @0.05 SL1S] inherits = *0.05_sl1s* @@ -6147,6 +6371,7 @@ exposure_time = 2 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = [sla_material:Prusa Magenta Tough @0.05 SL1S] inherits = *0.05_sl1s* @@ -6154,6 +6379,7 @@ exposure_time = 2 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #E800E8 [sla_material:Prusa Maroon Tough @0.05 SL1S] inherits = *0.05_sl1s* @@ -6161,6 +6387,7 @@ exposure_time = 2.4 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #804000 [sla_material:Prusa White Tough @0.05 SL1S] inherits = *0.05_sl1s* @@ -6168,6 +6395,7 @@ exposure_time = 2 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #FFFFFF [sla_material:Prusa Pink Tough @0.05 SL1S] inherits = *0.05_sl1s* @@ -6175,6 +6403,7 @@ exposure_time = 2 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #FF80C0 [sla_material:Prusa Blue Flexible @0.05 SL1S] inherits = *0.05_sl1s* @@ -6182,6 +6411,7 @@ exposure_time = 2 initial_exposure_time = 25 material_type = Flexible material_vendor = Made for Prusa +material_colour = #007EFD [sla_material:Prusa Grey Tough @0.05 SL1S] inherits = *0.05_sl1s* @@ -6189,6 +6419,7 @@ exposure_time = 2.4 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #C0C0C0 [sla_material:Prusa Grey High Tenacity @0.05 SL1S] inherits = *0.05_sl1s* @@ -6196,6 +6427,7 @@ exposure_time = 2 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #C0C0C0 [sla_material:Prusa Vibrant Orange Tough @0.05 SL1S] inherits = *0.05_sl1s* @@ -6203,6 +6435,7 @@ exposure_time = 5 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #FF8040 [sla_material:Prusa Deep Blue Transparent Tough @0.05 SL1S] inherits = *0.05_sl1s* @@ -6210,6 +6443,7 @@ exposure_time = 5 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #007EFD [sla_material:Prusa Green Dental Casting @0.05 SL1S] inherits = *0.05_sl1s* @@ -6217,6 +6451,7 @@ exposure_time = 4 initial_exposure_time = 50 material_type = Casting material_vendor = Made for Prusa +material_colour = #00B900 [sla_material:PrimaCreator Tough Light Grey @0.05 SL1S] inherits = *0.05_sl1s* @@ -6224,6 +6459,7 @@ exposure_time = 2.4 initial_exposure_time = 25 material_type = Tough material_vendor = PrimaCreator +material_colour = #C0C0C0 [sla_material:PrimaCreator Tough Clear @0.05 SL1S] inherits = *0.05_sl1s* @@ -6231,6 +6467,7 @@ exposure_time = 2 initial_exposure_time = 25 material_type = Tough material_vendor = PrimaCreator +material_colour = #F8F8F8 [sla_material:PrimaCreator Tough White @0.05 SL1S] inherits = *0.05_sl1s* @@ -6238,6 +6475,7 @@ exposure_time = 2 initial_exposure_time = 25 material_type = Tough material_vendor = PrimaCreator +material_colour = #FFFFFF [sla_material:PrimaCreator Flex Clear @0.05 SL1S] inherits = *0.05_sl1s* @@ -6245,6 +6483,7 @@ exposure_time = 2 initial_exposure_time = 25 material_type = Flexible material_vendor = PrimaCreator +material_colour = #F8F8F8 [sla_material:PrimaCreator Water Washable Transparent @0.05 SL1S] inherits = *0.05_sl1s* @@ -6252,6 +6491,7 @@ exposure_time = 2 initial_exposure_time = 25 material_type = Tough material_vendor = PrimaCreator +material_colour = #F8F8F8 [sla_material:DruckWege Type D Dental Model @0.05 SL1S] inherits = *0.05_sl1s* @@ -6259,6 +6499,7 @@ exposure_time = 1.4 initial_exposure_time = 15 material_type = Dental material_vendor = DruckWege +material_colour = #FFEEE6 [sla_material:DruckWege Type D Standard White @0.05 SL1S] inherits = *0.05_sl1s* @@ -6266,6 +6507,7 @@ exposure_time = 2 initial_exposure_time = 15 material_type = Tough material_vendor = DruckWege +material_colour = #FFFFFF [sla_material:DruckWege Type D Standard Pigmentfrei Clear @0.05 SL1S] inherits = *0.05_sl1s* @@ -6273,6 +6515,7 @@ exposure_time = 2 initial_exposure_time = 15 material_type = Tough material_vendor = DruckWege +material_colour = #F8F8F8 [sla_material:3DM-ABS Orange @0.05 SL1S] inherits = *0.05_sl1s* @@ -6280,6 +6523,7 @@ exposure_time = 2.6 initial_exposure_time = 25 material_type = Tough material_vendor = 3DM +material_colour = #FF8040 [sla_material:3DM-TOUGH Clear @0.05 SL1S] inherits = *0.05_sl1s* @@ -6287,6 +6531,7 @@ exposure_time = 2.6 initial_exposure_time = 25 material_type = Tough material_vendor = 3DM +material_colour = #F8F8F8 [sla_material:Peopoly Deft White @0.05 SL1S] inherits = *0.05_sl1s* @@ -6294,6 +6539,7 @@ exposure_time = 2 initial_exposure_time = 25 material_type = Tough material_vendor = Peopoly +material_colour = #FFFFFF [sla_material:Peopoly Neo Clear @0.05 SL1S] inherits = *0.05_sl1s* @@ -6301,6 +6547,7 @@ exposure_time = 2 initial_exposure_time = 25 material_type = Tough material_vendor = Peopoly +material_colour = #F8F8F8 ## 0.1 SL1S @@ -6312,6 +6559,7 @@ exposure_time = 2.6 initial_exposure_time = 25 material_type = Tough material_vendor = Prusa Polymers +material_colour = #FF8040 [sla_material:Prusament Resin Tough Rich Black @0.1 SL1S] inherits = *0.1_sl1s* @@ -6319,6 +6567,7 @@ exposure_time = 2.6 initial_exposure_time = 25 material_type = Tough material_vendor = Prusa Polymers +material_colour = #595959 [sla_material:Prusament Resin Tough Anthracite Grey @0.1 SL1S] inherits = *0.1_sl1s* @@ -6326,6 +6575,7 @@ exposure_time = 3 initial_exposure_time = 25 material_type = Tough material_vendor = Prusa Polymers +material_colour = #808080 ## Made for Prusa 0.1 @@ -6335,6 +6585,7 @@ exposure_time = 2.6 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #FF8040 [sla_material:Prusa White ABS like @0.1 SL1S] inherits = *0.1_sl1s* @@ -6342,6 +6593,7 @@ exposure_time = 2.6 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #FFFFFF [sla_material:Prusa Azure Blue Tough @0.1 SL1S] inherits = *0.1_sl1s* @@ -6349,6 +6601,7 @@ exposure_time = 2.6 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #007EFD [sla_material:Prusa Black Tough @0.1 SL1S] inherits = *0.1_sl1s* @@ -6356,6 +6609,7 @@ exposure_time = 3 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #595959 [sla_material:Prusa Cyan Tough @0.1 SL1S] inherits = *0.1_sl1s* @@ -6363,6 +6617,7 @@ exposure_time = 2.6 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = [sla_material:Prusa Magenta Tough @0.1 SL1S] inherits = *0.1_sl1s* @@ -6370,6 +6625,7 @@ exposure_time = 2.6 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #E800E8 [sla_material:Prusa Maroon Tough @0.1 SL1S] inherits = *0.1_sl1s* @@ -6377,6 +6633,7 @@ exposure_time = 3 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #804000 [sla_material:Prusa White Tough @0.1 SL1S] inherits = *0.1_sl1s* @@ -6384,6 +6641,7 @@ exposure_time = 2.6 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #FFFFFF [sla_material:Prusa Pink Tough @0.1 SL1S] inherits = *0.1_sl1s* @@ -6391,6 +6649,7 @@ exposure_time = 2.6 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #FF80C0 [sla_material:Prusa Blue Flexible @0.1 SL1S] inherits = *0.1_sl1s* @@ -6398,6 +6657,7 @@ exposure_time = 2.6 initial_exposure_time = 25 material_type = Flexible material_vendor = Made for Prusa +material_colour = [sla_material:Prusa Grey Tough @0.1 SL1S] inherits = *0.1_sl1s* @@ -6405,6 +6665,7 @@ exposure_time = 3 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #007EFD [sla_material:Prusa Grey High Tenacity @0.1 SL1S] inherits = *0.1_sl1s* @@ -6412,6 +6673,7 @@ exposure_time = 2.6 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #808080 [sla_material:Prusa Vibrant Orange Tough @0.1 SL1S] inherits = *0.1_sl1s* @@ -6419,6 +6681,7 @@ exposure_time = 10 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #FF8040 [sla_material:Prusa Deep Blue Transparent Tough @0.1 SL1S] inherits = *0.1_sl1s* @@ -6426,6 +6689,7 @@ exposure_time = 10 initial_exposure_time = 25 material_type = Tough material_vendor = Made for Prusa +material_colour = #007EFD [sla_material:Prusa Green Dental Casting @0.1 SL1S] inherits = *0.1_sl1s* @@ -6433,6 +6697,7 @@ exposure_time = 8 initial_exposure_time = 50 material_type = Casting material_vendor = Made for Prusa +material_colour = #00B900 [sla_material:PrimaCreator Tough Light Grey @0.1 SL1S] inherits = *0.1_sl1s* @@ -6440,6 +6705,7 @@ exposure_time = 3 initial_exposure_time = 25 material_type = Tough material_vendor = PrimaCreator +material_colour = #C0C0C0 [sla_material:PrimaCreator Tough Clear @0.1 SL1S] inherits = *0.1_sl1s* @@ -6447,6 +6713,7 @@ exposure_time = 2.6 initial_exposure_time = 25 material_type = Tough material_vendor = PrimaCreator +material_colour = #F8F8F8 [sla_material:PrimaCreator Tough White @0.1 SL1S] inherits = *0.1_sl1s* @@ -6454,6 +6721,7 @@ exposure_time = 2.6 initial_exposure_time = 25 material_type = Tough material_vendor = PrimaCreator +material_colour = #FFFFFF [sla_material:PrimaCreator Flex Clear @0.1 SL1S] inherits = *0.1_sl1s* @@ -6461,6 +6729,7 @@ exposure_time = 2.6 initial_exposure_time = 25 material_type = Flexible material_vendor = PrimaCreator +material_colour = #F8F8F8 [sla_material:PrimaCreator Water Washable Transparent @0.1 SL1S] inherits = *0.1_sl1s* @@ -6468,6 +6737,7 @@ exposure_time = 2.6 initial_exposure_time = 25 material_type = Tough material_vendor = PrimaCreator +material_colour = #F8F8F8 [sla_material:DruckWege Type D Dental Model @0.1 SL1S] inherits = *0.1_sl1s* @@ -6475,6 +6745,7 @@ exposure_time = 2.6 initial_exposure_time = 15 material_type = Dental material_vendor = DruckWege +material_colour = #FFEEE6 [sla_material:3DM-ABS Orange @0.1 SL1S] inherits = *0.1_sl1s* @@ -6482,6 +6753,7 @@ exposure_time = 3 initial_exposure_time = 25 material_type = Tough material_vendor = 3DM +material_colour = #FF8040 [sla_material:3DM-TOUGH Clear @0.1 SL1S] inherits = *0.1_sl1s* @@ -6489,6 +6761,7 @@ exposure_time = 3 initial_exposure_time = 25 material_type = Tough material_vendor = 3DM +material_colour = #F8F8F8 [sla_material:Peopoly Deft White @0.1 SL1S] inherits = *0.1_sl1s* @@ -6496,6 +6769,7 @@ exposure_time = 2.6 initial_exposure_time = 25 material_type = Tough material_vendor = Peopoly +material_colour = #FFFFFF [sla_material:Peopoly Neo Clear @0.1 SL1S] inherits = *0.1_sl1s* @@ -6503,6 +6777,7 @@ exposure_time = 2.6 initial_exposure_time = 25 material_type = Tough material_vendor = Peopoly +material_colour = #F8F8F8 [printer:*common*] printer_technology = FFF diff --git a/resources/profiles/Ultimaker.idx b/resources/profiles/Ultimaker.idx new file mode 100644 index 000000000..a593d2fb4 --- /dev/null +++ b/resources/profiles/Ultimaker.idx @@ -0,0 +1,2 @@ +min_slic3r_version = 2.4.0-beta0 +1.0.0 Initial version diff --git a/resources/profiles/Ultimaker.ini b/resources/profiles/Ultimaker.ini new file mode 100644 index 000000000..363e0dec8 --- /dev/null +++ b/resources/profiles/Ultimaker.ini @@ -0,0 +1,400 @@ +# Print profiles for the Ultimaker printers. +# https://github.com/prusa3d/PrusaSlicer-settings/issues/143 +# author: https://github.com/foreachthing + + +[vendor] +# Vendor name will be shown by the Config Wizard. +name = Ultimaker + +# Configuration version of this file. Config file will only be installed, if the config_version differs. +# This means, the server may force the PrusaSlicer configuration to be downgraded. +config_version = 1.0.0 + +# Where to get the updates from? +config_update_url = https://files.prusa3d.com/wp-content/uploads/repository/PrusaSlicer-settings-master/live/Ultimaker/ + +# The printer models will be shown by the Configuration Wizard in this order, +# also the first model installed & the first nozzle installed will be activated after install. +# Printer model name will be shown by the installation wizard. + +[printer_model:ULTIMAKER2] +name = Ultimaker 2 +variants = 0.4 +technology = FFF +bed_model = ultimaker2_bed.stl +bed_texture = ultimaker2.svg +default_materials = Generic PLA @ULTIMAKER2; Generic PETG @ULTIMAKER2; Generic ABS @ULTIMAKER2 + +# All presets starting with asterisk, for example *common*, are intermediate and they will +# not make it into the user interface. + +# Common print preset +[print:*common*] +avoid_crossing_perimeters = 1 +avoid_crossing_perimeters_max_detour = 0 +bottom_fill_pattern = rectilinear +bottom_solid_layers = 4 +bottom_solid_min_thickness = 0 +bridge_acceleration = 0 +bridge_angle = 0 +bridge_flow_ratio = 1 +bridge_speed = 60 +brim_separation = 0 +brim_type = outer_only +brim_width = 0 +clip_multipart_objects = 0 +compatible_printers = +compatible_printers_condition = +complete_objects = 0 +default_acceleration = 0 +dont_support_bridges = 0 +draft_shield = disabled +elefant_foot_compensation = 0 +ensure_vertical_shell_thickness = 0 +external_perimeter_extrusion_width = 0.45 +external_perimeter_speed = 75% +external_perimeters_first = 0 +extra_perimeters = 1 +extruder_clearance_height = 50 +extruder_clearance_radius = 60 +extrusion_width = 0.45 +fill_angle = 45 +fill_density = 20% +fill_pattern = grid +first_layer_acceleration = 0 +first_layer_acceleration_over_raft = 0 +first_layer_extrusion_width = 0.45 +first_layer_height = 0.2 +first_layer_speed = 30 +first_layer_speed_over_raft = 30 +fuzzy_skin = none +fuzzy_skin_point_dist = 0.8 +fuzzy_skin_thickness = 0.3 +gap_fill_enabled = 1 +gap_fill_speed = 20 +gcode_comments = 1 +gcode_label_objects = 0 +infill_acceleration = 0 +infill_anchor = 600% +infill_anchor_max = 50 +infill_every_layers = 1 +infill_extruder = 1 +infill_extrusion_width = 0.5 +infill_first = 1 +infill_only_where_needed = 0 +infill_overlap = 35% +infill_speed = 60 +inherits = +interface_shells = 0 +ironing = 0 +ironing_flowrate = 15% +ironing_spacing = 0.1 +ironing_speed = 15 +ironing_type = top +layer_height = 0.2 +max_print_speed = 80 +max_volumetric_speed = 0 +min_skirt_length = 2 +mmu_segmented_region_max_width = 0 +notes = Ultimaker 2, 0.4 mm Nozzle +only_retract_when_crossing_perimeters = 1 +ooze_prevention = 0 +output_filename_format = {input_filename_base}_{layer_height}mm_{filament_type[0]}_{printer_model}_{print_time}.gcode +overhangs = 1 +perimeter_acceleration = 0 +perimeter_extruder = 1 +perimeter_extrusion_width = 0.45 +perimeter_speed = 50 +perimeters = 2 +post_process = +print_settings_id = +raft_contact_distance = 0.1 +raft_expansion = 1.5 +raft_first_layer_density = 90% +raft_first_layer_expansion = 3 +raft_layers = 0 +resolution = 0 +seam_position = aligned +single_extruder_multi_material_priming = 1 +skirt_distance = 3 +skirt_height = 1 +skirts = 1 +slice_closing_radius = 0.049 +slicing_mode = regular +small_perimeter_speed = 75% +solid_infill_below_area = 10 +solid_infill_every_layers = 0 +solid_infill_extruder = 1 +solid_infill_extrusion_width = 0.45 +solid_infill_speed = 40 +spiral_vase = 0 +standby_temperature_delta = -5 +support_material = 0 +support_material_angle = 45 +support_material_auto = 1 +support_material_bottom_contact_distance = 0 +support_material_bottom_interface_layers = -1 +support_material_buildplate_only = 1 +support_material_closing_radius = 2 +support_material_contact_distance = 0.2 +support_material_enforce_layers = 0 +support_material_extruder = 1 +support_material_extrusion_width = 0.4 +support_material_interface_contact_loops = 0 +support_material_interface_extruder = 1 +support_material_interface_layers = 2 +support_material_interface_pattern = auto +support_material_interface_spacing = 0.2 +support_material_interface_speed = 100% +support_material_pattern = rectilinear-grid +support_material_spacing = 4 +support_material_speed = 60 +support_material_style = grid +support_material_synchronize_layers = 0 +support_material_threshold = 0 +support_material_with_sheath = 0 +support_material_xy_spacing = 0.8 +thick_bridges = 1 +thin_walls = 0 +threads = 8 +top_fill_pattern = rectilinear +top_infill_extrusion_width = 0.45 +top_solid_infill_speed = 40 +top_solid_layers = 4 +top_solid_min_thickness = 0 +travel_speed = 120 +travel_speed_z = 0 +wipe_tower = 0 +wipe_tower_bridging = 10 +wipe_tower_brim_width = 2 +wipe_tower_no_sparse_layers = 0 +wipe_tower_rotation_angle = 0 +wipe_tower_width = 60 +wipe_tower_x = 180 +wipe_tower_y = 140 +xy_size_compensation = 0 + + +[print:*0.12mm*] +inherits = *common* +perimeter_speed = 40 +external_perimeter_speed = 25 +infill_speed = 50 +solid_infill_speed = 40 +layer_height = 0.12 +perimeters = 3 +top_infill_extrusion_width = 0.4 +bottom_solid_layers = 6 +top_solid_layers = 7 + +[print:*0.20mm*] +inherits = *common* +perimeter_speed = 40 +external_perimeter_speed = 25 +infill_speed = 50 +solid_infill_speed = 40 +layer_height = 0.20 +top_infill_extrusion_width = 0.4 +bottom_solid_layers = 4 +top_solid_layers = 5 + +[print:*0.25mm*] +inherits = *common* +perimeter_speed = 40 +external_perimeter_speed = 25 +infill_speed = 50 +solid_infill_speed = 40 +layer_height = 0.25 +top_infill_extrusion_width = 0.45 +bottom_solid_layers = 3 +top_solid_layers = 4 + +[print:0.12mm DETAIL @ULTIMAKER2] +inherits = *0.12mm* +travel_speed = 150 +infill_speed = 50 +solid_infill_speed = 40 +top_solid_infill_speed = 30 +support_material_extrusion_width = 0.38 +compatible_printers_condition = printer_model=="ULTIMAKER2" and nozzle_diameter[0]==0.4 + +[print:0.20mm NORMAL @ULTIMAKER2] +inherits = *0.20mm* +travel_speed = 150 +infill_speed = 50 +solid_infill_speed = 40 +top_solid_infill_speed = 30 +support_material_extrusion_width = 0.38 +compatible_printers_condition = printer_model=="ULTIMAKER2" and nozzle_diameter[0]==0.4 + +[print:0.25mm DRAFT @ULTIMAKER2] +inherits = *0.25mm* +travel_speed = 150 +infill_speed = 50 +solid_infill_speed = 40 +top_solid_infill_speed = 30 +support_material_extrusion_width = 0.38 +compatible_printers_condition = printer_model=="ULTIMAKER2" and nozzle_diameter[0]==0.4 + +# Common filament preset +[filament:*common*] +cooling = 0 +compatible_printers = +extrusion_multiplier = 1 +filament_cost = 0 +filament_density = 0 +filament_diameter = 2.85 +filament_notes = "" +filament_settings_id = "" +filament_soluble = 0 +min_print_speed = 15 +slowdown_below_layer_time = 20 +compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_ULTIMAKER.*/ + +[filament:*PLA*] +inherits = *common* +bed_temperature = 60 +fan_below_layer_time = 100 +filament_colour = #FFF0E0 +filament_max_volumetric_speed = 0 +filament_type = PLA +filament_density = 1.24 +first_layer_bed_temperature = 55 +first_layer_temperature = 205 +fan_always_on = 1 +cooling = 1 +min_fan_speed = 100 +max_fan_speed = 100 +bridge_fan_speed = 100 +disable_fan_first_layers = 3 +temperature = 210 + +[filament:*PET*] +inherits = *common* +fan_below_layer_time = 15 +filament_colour = #FFF0E0 +filament_max_volumetric_speed = 0 +filament_type = PETG +filament_density = 1.27 +first_layer_bed_temperature = 85 +bed_temperature = 85 +first_layer_temperature = 240 +temperature = 235 +fan_always_on = 1 +cooling = 1 +min_fan_speed = 20 +max_fan_speed = 40 +bridge_fan_speed = 40 +slowdown_below_layer_time = 15 +min_print_speed = 10 +disable_fan_first_layers = 3 + +[filament:*ABS*] +inherits = *common* +fan_below_layer_time = 15 +filament_colour = #FFF0E0 +filament_max_volumetric_speed = 0 +filament_type = ABS +filament_density = 1.10 +first_layer_bed_temperature = 80 +bed_temperature = 80 +first_layer_temperature = 240 +temperature = 235 +fan_always_on = 1 +cooling = 1 +min_fan_speed = 5 +max_fan_speed = 5 +bridge_fan_speed = 10 +slowdown_below_layer_time = 15 +min_print_speed = 10 +disable_fan_first_layers = 3 + +[filament:Generic PLA @ULTIMAKER2] +inherits = *PLA* +filament_vendor = Generic +filament_cost = + +[filament:Generic Black PLA @ULTIMAKER2] +inherits = *PLA* +filament_vendor = Generic +filament_colour = #0E3F3F +filament_cost = + +[filament:Generic PETG @ULTIMAKER2] +inherits = *PET* +filament_vendor = Generic +filament_cost = + +[filament:Generic ABS @ULTIMAKER2] +inherits = *ABS* +filament_vendor = Generic +filament_cost = + +# Common printer preset +[printer:*common*] +printer_technology = FFF +before_layer_gcode = ;BEFORE_LAYER_CHANGE\n;layer:[layer_num];\nM117 Layer [layer_num];\n +between_objects_gcode = +deretract_speed = 0 +extruder_colour = #FFF0E0 +extruder_offset = 0x0 +gcode_flavor = reprap +silent_mode = 0 +remaining_times = 0 +machine_max_acceleration_e = 10000 +machine_max_acceleration_extruding = 1500 +machine_max_acceleration_retracting = 1500 +machine_max_acceleration_x = 3000 +machine_max_acceleration_y = 3000 +machine_max_acceleration_z = 500 +machine_max_feedrate_e = 120 +machine_max_feedrate_x = 500 +machine_max_feedrate_y = 500 +machine_max_feedrate_z = 12 +machine_max_jerk_e = 2.5 +machine_max_jerk_x = 20 +machine_max_jerk_y = 20 +machine_max_jerk_z = 0.4 +machine_min_extruding_rate = 0 +machine_min_travel_rate = 0 +layer_gcode = +max_print_height = 212 +octoprint_apikey = +octoprint_host = +printer_notes = +printer_settings_id = +retract_before_travel = 5 +retract_before_wipe = 0% +retract_layer_change = 1 +retract_length = 6 +retract_length_toolchange = 10 +retract_lift = 0 +retract_lift_above = 0 +retract_lift_below = 0 +retract_restart_extra = 0 +retract_restart_extra_toolchange = 0 +retract_speed = 50 +serial_port = +single_extruder_multi_material = 0 +toolchange_gcode = +use_firmware_retraction = 0 +use_relative_e_distances = 0 +use_volumetric_e = 0 +variable_layer_height = 1 +wipe = 0 +z_offset = 0 + +[printer:Ultimaker 2] +inherits = *common* +printer_model = ULTIMAKER2 +bed_shape = 0x0,224x0,224x225,0x225 +printer_variant = 0.4 +max_layer_height = 0.3 +min_layer_height = 0.08 +printer_notes = Dont remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_ULTIMAKER\nPRINTER_MODEL_ULTIMAKER2 +nozzle_diameter = 0.4 +default_print_profile = 0.20mm NORMAL @ULTIMAKER2 +default_filament_profile = Generic PLA @ULTIMAKER2 +start_gcode = ; Printer_Settings_ID: [printer_settings_id]\n\n; # # # # # # START Header\nG21 ; metric values\nG90 ; absolute positioning\nM82 ; set extruder to absolute mode\nM107 ; start with the fan off\n\nG28 X0 Y0 Z0 ; move X/Y/Z to endstops\nG1 X1 Y6 F15000 ; move X/Y to start position\nG1 Z35 F9000 ; move Z to start position\n\n; Heat up bed and nozzle\nM190 S{first_layer_bed_temperature[0] - 5} ; wait for bed temperature - 5\nM140 S[first_layer_bed_temperature] ; continue bed heating\nM109 S[first_layer_temperature] ; wait for nozzle temperature\n\nG92 E0 ; zero the extruded length\nG1 F150 E22 ; purge nozzle with filament\nG92 E0 ; zero the extruded length again\nG1 F75 E7 ; additional priming\nG92 E0 ; zero the extruded length again\n\n; # # # # # # END Header +end_gcode = ; # # # # # # START Footer\nG91 ; relative coordinates\n;G1 E-1 F1200 ; retract the filament\nG1 Z+15 X-10 Y-10 E-7 F6000 ; move Z a bit\n; G1 X-10 Y-10 F6000 ; move XY a bit\nG1 E-5.5 F300 ; retract the filament\nG28 X0 Y0 ; move X/Y to min endstops, so the head is out of the way\nM104 S0 ; extruder heater off\nM140 S0 ; heated bed heater off (if you have it)\nM84 ; disable motors\n; # # # # # # END Footer\n diff --git a/resources/profiles/Ultimaker/ULTIMAKER2_thumbnail.png b/resources/profiles/Ultimaker/ULTIMAKER2_thumbnail.png new file mode 100644 index 000000000..bdcd7dcd9 Binary files /dev/null and b/resources/profiles/Ultimaker/ULTIMAKER2_thumbnail.png differ diff --git a/resources/profiles/Ultimaker/ultimaker2.svg b/resources/profiles/Ultimaker/ultimaker2.svg new file mode 100644 index 000000000..237bf85d0 --- /dev/null +++ b/resources/profiles/Ultimaker/ultimaker2.svg @@ -0,0 +1,1531 @@ + + + UM2_Plate + + + + image/svg+xml + + UM2_Bottom + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/resources/profiles/Ultimaker/ultimaker2_bed.stl b/resources/profiles/Ultimaker/ultimaker2_bed.stl new file mode 100644 index 000000000..a192d8eb2 Binary files /dev/null and b/resources/profiles/Ultimaker/ultimaker2_bed.stl differ diff --git a/resources/profiles/Voron.idx b/resources/profiles/Voron.idx new file mode 100644 index 000000000..a593d2fb4 --- /dev/null +++ b/resources/profiles/Voron.idx @@ -0,0 +1,2 @@ +min_slic3r_version = 2.4.0-beta0 +1.0.0 Initial version diff --git a/resources/profiles/Voron.ini b/resources/profiles/Voron.ini new file mode 100644 index 000000000..fb024870a --- /dev/null +++ b/resources/profiles/Voron.ini @@ -0,0 +1,1558 @@ +# Print profiles for the Voron printers. +# Source: https://github.com/slic3r/slic3r-profiles +# Modified for PrusaSlicer + +[vendor] +# Vendor name will be shown by the Config Wizard. +name = Voron +# Configuration version of this file. Config file will only be installed, if the config_version differs. +# This means, the server may force the PrusaSlicer configuration to be downgraded. +config_version = 1.0.0 +# Where to get the updates from? +config_update_url = https://files.prusa3d.com/wp-content/uploads/repository/PrusaSlicer-settings-master/live/Voron/ + +# The printer models will be shown by the Configuration Wizard in this order, +# also the first model installed & the first nozzle installed will be activated after install. + +# Printer model name will be shown by the installation wizard. + +[printer_model:Voron_v2_250_afterburner] +name = Voron v2 250mm3 +variants = 0.4; 0.25; 0.3; 0.5; 0.6; 0.8; volcano 0.6; volcano 0.8; volcano 1.0; volcano 1.2 +technology = FFF +family = Voron v2 Afterburner +bed_model = printbed-v2-250.stl +bed_texture = bedtexture-v2-250.png +default_materials = Basic PLA @VORON; Basic PLA VOLCANO @VORON; Basic PET @VORON; Basic PET VOLCANO @VORON; Basic ABS @VORON; Basic ABS VOLCANO @VORON + +[printer_model:Voron_v2_300_afterburner] +name = Voron v2 300mm3 +variants = 0.4; 0.25; 0.3; 0.5; 0.6; 0.8; volcano 0.6; volcano 0.8; volcano 1.0; volcano 1.2 +technology = FFF +family = Voron v2 Afterburner +bed_model = printbed-v2-300.stl +bed_texture = bedtexture-v2-300.png +default_materials = Basic PLA @VORON; Basic PLA VOLCANO @VORON; Basic PET @VORON; Basic PET VOLCANO @VORON; Basic ABS @VORON; Basic ABS VOLCANO @VORON + +[printer_model:Voron_v2_350_afterburner] +name = Voron v2 350mm3 +variants = 0.4; 0.25; 0.3; 0.5; 0.6; 0.8; volcano 0.6; volcano 0.8; volcano 1.0; volcano 1.2 +technology = FFF +family = Voron v2 Afterburner +bed_model = printbed-v2-350.stl +bed_texture = bedtexture-v2-350.png +default_materials = Basic PLA @VORON; Basic PLA VOLCANO @VORON; Basic PET @VORON; Basic PET VOLCANO @VORON; Basic ABS @VORON; Basic ABS VOLCANO @VORON + +[printer_model:Voron_v2_250] +name = Voron v2 250mm3 +variants = 0.4; 0.25; 0.3; 0.5; 0.6; 0.8; volcano 0.6; volcano 0.8; volcano 1.0; volcano 1.2 +technology = FFF +family = Voron v2 Mobius +bed_model = printbed-v2-250.stl +bed_texture = bedtexture-v2-250.png +default_materials = Basic PLA @VORON; Basic PLA VOLCANO @VORON; Basic PET @VORON; Basic PET VOLCANO @VORON; Basic ABS @VORON; Basic ABS VOLCANO @VORON + +[printer_model:Voron_v2_300] +name = Voron v2 300mm3 +variants = 0.4; 0.25; 0.3; 0.5; 0.6; 0.8; volcano 0.6; volcano 0.8; volcano 1.0; volcano 1.2 +technology = FFF +family = Voron v2 Mobius +bed_model = printbed-v2-300.stl +bed_texture = bedtexture-v2-300.png +default_materials = Basic PLA @VORON; Basic PLA VOLCANO @VORON; Basic PET @VORON; Basic PET VOLCANO @VORON; Basic ABS @VORON; Basic ABS VOLCANO @VORON + +[printer_model:Voron_v2_350] +name = Voron v2 350mm3 +variants = 0.4; 0.25; 0.3; 0.5; 0.6; 0.8; volcano 0.6; volcano 0.8; volcano 1.0; volcano 1.2 +technology = FFF +family = Voron v2 Mobius +bed_model = printbed-v2-350.stl +bed_texture = bedtexture-v2-350.png +default_materials = Basic PLA @VORON; Basic PLA VOLCANO @VORON; Basic PET @VORON; Basic PET VOLCANO @VORON; Basic ABS @VORON; Basic ABS VOLCANO @VORON + +[printer_model:Voron_v1_250_afterburner] +name = Voron v1 250mm3 +variants = 0.4; 0.25; 0.3; 0.5; 0.6; 0.8; volcano 0.6; volcano 0.8; volcano 1.0; volcano 1.2 +technology = FFF +family = Voron v1 Afterburner +bed_model = printbed-v1-250.stl +bed_texture = bedtexture-v1-250.png +default_materials = Basic PLA @VORON; Basic PLA VOLCANO @VORON; Basic PET @VORON; Basic PET VOLCANO @VORON; Basic ABS @VORON; Basic ABS VOLCANO @VORON + +[printer_model:Voron_v1_300_afterburner] +name = Voron v1 300mm3 +variants = 0.4; 0.25; 0.3; 0.5; 0.6; 0.8; volcano 0.6; volcano 0.8; volcano 1.0; volcano 1.2 +technology = FFF +family = Voron v1 Afterburner +bed_model = printbed-v1-300.stl +bed_texture = bedtexture-v1-300.png +default_materials = Basic PLA @VORON; Basic PLA VOLCANO @VORON; Basic PET @VORON; Basic PET VOLCANO @VORON; Basic ABS @VORON; Basic ABS VOLCANO @VORON + +[printer_model:Voron_v0_120] +name = Voron Zero 120mm3 +variants = 0.4; 0.25; 0.3; 0.5; 0.6; 0.8; volcano 0.6; volcano 0.8; volcano 1.0; volcano 1.2 +technology = FFF +family = Voron v0 +bed_model = printbed-v0-120.stl +bed_texture = bedtexture-v0-120.png +default_materials = Basic PLA @VORON; Basic PLA VOLCANO @VORON; Basic PET @VORON; Basic PET VOLCANO @VORON; Basic ABS @VORON; Basic ABS VOLCANO @VORON + +# All presets starting with asterisk, for example *common*, are intermediate and they will +# not make it into the user interface + +[printer:*0.25nozzle*] +nozzle_diameter = 0.25 +max_layer_height = 0.175 +min_layer_height = 0.025 +retract_lift_above = 0.15 +printer_variant = 0.25 +default_print_profile = 0.10mm 0.25nozzle + +[printer:*0.3nozzle*] +nozzle_diameter = 0.3 +max_layer_height = 0.225 +min_layer_height = 0.025 +retract_lift_above = 0.2 +printer_variant = 0.3 +default_print_profile = 0.10mm 0.3nozzle + +[printer:*0.4nozzle*] +nozzle_diameter = 0.4 +max_layer_height = 0.3 +min_layer_height = 0.0375 +retract_lift_above = 0.2 +printer_variant = 0.4 +default_print_profile = 0.15mm 0.4nozzle + +[printer:*0.5nozzle*] +nozzle_diameter = 0.5 +max_layer_height = 0.375 +min_layer_height = 0.05 +retract_lift_above = 0.2 +printer_variant = 0.5 +default_print_profile = 0.2mm 0.5nozzle + +[printer:*0.6nozzle*] +nozzle_diameter = 0.6 +max_layer_height = 0.45 +min_layer_height = 0.075 +retract_lift_above = 0.3 +printer_variant = 0.6 +default_print_profile = 0.2mm 0.6nozzle + +[printer:*0.8nozzle*] +nozzle_diameter = 0.8 +max_layer_height = 0.6 +min_layer_height = 0.0875 +retract_lift_above = 0.4 +printer_variant = 0.8 +default_print_profile = 0.3mm 0.8nozzle + +[printer:*1.0nozzle*] +nozzle_diameter = 1.0 +max_layer_height = 0.75 +min_layer_height = 0.1 +retract_lift_above = 0.4 +printer_variant = 1.0 +default_print_profile = 0.4mm 1.0nozzle + +[printer:*1.2nozzle*] +nozzle_diameter = 1.2 +max_layer_height = 0.9 +min_layer_height = 0.125 +retract_lift_above = 0.4 +printer_variant = 1.2 +default_print_profile = 0.4mm 1.2nozzle + + +# Common printer preset +[printer:*common*] +printer_technology = FFF +before_layer_gcode = ;BEFORE_LAYER_CHANGE\n;[layer_z]\n\n +between_objects_gcode = +deretract_speed = 25 +end_gcode = print_end ;end script from macro +extruder_colour = #FFE3CA +extruder_offset = 0x0 +gcode_flavor = marlin +layer_gcode = ;AFTER_LAYER_CHANGE\n;[layer_z] +machine_max_acceleration_e = 10000 +machine_max_acceleration_extruding = 1500 +machine_max_acceleration_retracting = 1500 +machine_max_acceleration_x = 9000 +machine_max_acceleration_y = 9000 +machine_max_acceleration_z = 500 +machine_max_feedrate_e = 120 +machine_max_feedrate_x = 500 +machine_max_feedrate_y = 500 +machine_max_feedrate_z = 12 +machine_max_jerk_e = 2.5 +machine_max_jerk_x = 10 +machine_max_jerk_y = 10 +machine_max_jerk_z = 0.2 +machine_min_extruding_rate = 0 +machine_min_travel_rate = 0 +machine_limits_usage = time_estimate_only +remaining_times = 0 +silent_mode = 0 +printer_notes = voron +printer_settings_id = +retract_before_travel = 3 +retract_before_wipe = 0% +retract_layer_change = 0 +retract_length = 5.8 +retract_length_toolchange = 10 +retract_lift = 0.4 +retract_lift_above = 0 +retract_lift_below = 500 +retract_restart_extra = 0 +retract_restart_extra_toolchange = 0 +retract_speed = 35 +single_extruder_multi_material = 0 +start_gcode = ; M190 S0\n; M109 S0 ; uncomment to remove set&wait temp gcode added automatically after this start gcode\nprint_start EXTRUDER=[first_layer_temperature[initial_tool]] BED=[first_layer_bed_temperature] +thumbnails = 64x64,400x300 +toolchange_gcode = +use_firmware_retraction = 0 +use_relative_e_distances = 1 +use_volumetric_e = 0 +variable_layer_height = 1 +wipe = 0 +z_offset = 0 +default_filament_profile = Basic PLA @VORON + +[printer:*volcano*] +retract_length = 6.8 + +[printer:*volcano_afterburner*] +retract_length = 5.5 + +[printer:*afterburner*] +retract_length = 0.75 +deretract_speed = 30 +retract_speed = 50 + +[printer:*zero*] +retract_length = 2.0 +deretract_speed = 30 +retract_speed = 50 + +[printer:*Voron_v2_250*] +inherits = *common* +bed_shape = 0x0,250x0,250x250,0x250 +max_print_height = 250 +printer_model = Voron_v2_250 +printer_notes = Unoffical profile.\nPRINTER_HAS_BOWDEN\nE3DV6 + +[printer:*Voron_v2_300*] +inherits = *common* +bed_shape = 0x0,300x0,300x300,0x300 +max_print_height = 300 +printer_model = Voron_v2_300 +printer_notes = Unoffical profile.\nPRINTER_HAS_BOWDEN\nE3DV6 + +[printer:*Voron_v2_350*] +inherits = *common* +bed_shape = 0x0,350x0,350x350,0x350 +max_print_height = 350 +printer_model = Voron_v2_350 +printer_notes = Unoffical profile.\nPRINTER_HAS_BOWDEN\nE3DV6 + +[printer:*Voron_v2_250_afterburner*] +inherits = *Voron_v2_250*; *afterburner* +printer_model = Voron_v2_250_afterburner +printer_notes = Unoffical profile.\nE3DV6 + +[printer:*Voron_v2_300_afterburner*] +inherits = *Voron_v2_300*; *afterburner* +printer_model = Voron_v2_300_afterburner +printer_notes = Unoffical profile.\nE3DV6 + +[printer:*Voron_v2_350_afterburner*] +inherits = *Voron_v2_350*; *afterburner* +printer_model = Voron_v2_350_afterburner +printer_notes = Unoffical profile.\nE3DV6 + +[printer:*Voron_v1_250_afterburner*] +inherits = *common*; *afterburner* +bed_shape = 0x0,250x0,250x250,0x250 +max_print_height = 230 +printer_model = Voron_v1_250_afterburner +printer_notes = Unoffical profile.\nE3DV6 + +[printer:*Voron_v1_300_afterburner*] +inherits = *common*; *afterburner* +bed_shape = 0x0,300x0,300x300,0x300 +max_print_height = 230 +printer_model = Voron_v1_300_afterburner +printer_notes = Unoffical profile.\nE3DV6 + +[printer:*Voron_v0_120*] +inherits = *common* +bed_shape = 0x0,120x0,120x120,0x120 +max_print_height = 120 +printer_model = Voron_v0_120 +printer_notes = Unoffical profile.\nPRINTER_HAS_BOWDEN\nE3DV6 + +[printer:Voron_v2_250 0.25 nozzle] +inherits = *Voron_v2_250*; *0.25nozzle* + +[printer:Voron_v2_250 0.3 nozzle] +inherits = *Voron_v2_250*; *0.3nozzle* + +[printer:Voron_v2_250 0.4 nozzle] +inherits = *Voron_v2_250*; *0.4nozzle* + +[printer:Voron_v2_250 0.5 nozzle] +inherits = *Voron_v2_250*; *0.5nozzle* + +[printer:Voron_v2_250 0.6 nozzle] +inherits = *Voron_v2_250*; *0.6nozzle* + +[printer:Voron_v2_250 0.8 nozzle] +inherits = *Voron_v2_250*; *0.8nozzle* + +[printer:Voron_v2_250 0.6 volcano] +inherits = *Voron_v2_250*; *0.6nozzle*; *volcano* +printer_variant = volcano 0.6 +printer_notes = Unoffical profile.\nPRINTER_HAS_BOWDEN\nVOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + +[printer:Voron_v2_250 0.8 volcano] +inherits = *Voron_v2_250*; *0.8nozzle*; *volcano* +printer_variant = volcano 0.8 +printer_notes = Unoffical profile.\nPRINTER_HAS_BOWDEN\nVOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + +[printer:Voron_v2_250 1.0 volcano] +inherits = *Voron_v2_250*; *1.0nozzle*; *volcano* +printer_variant = volcano 1.0 +printer_notes = Unoffical profile.\nPRINTER_HAS_BOWDEN\nVOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + +[printer:Voron_v2_250 1.2 volcano] +inherits = *Voron_v2_250*; *1.2nozzle*; *volcano* +printer_variant = volcano 1.2 +printer_notes = Unoffical profile.\nPRINTER_HAS_BOWDEN\nVOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + +[printer:Voron_v2_300 0.25 nozzle] +inherits = *Voron_v2_300*; *0.25nozzle* + +[printer:Voron_v2_300 0.3 nozzle] +inherits = *Voron_v2_300*; *0.3nozzle* + +[printer:Voron_v2_300 0.4 nozzle] +inherits = *Voron_v2_300*; *0.4nozzle* + +[printer:Voron_v2_300 0.5 nozzle] +inherits = *Voron_v2_300*; *0.5nozzle* + +[printer:Voron_v2_300 0.6 nozzle] +inherits = *Voron_v2_300*; *0.6nozzle* + +[printer:Voron_v2_300 0.8 nozzle] +inherits = *Voron_v2_300*; *0.8nozzle* + +[printer:Voron_v2_300 0.6 volcano] +inherits = *Voron_v2_300*; *0.6nozzle*; *volcano* +printer_variant = volcano 0.6 +printer_notes = Unoffical profile.\nPRINTER_HAS_BOWDEN\nVOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + +[printer:Voron_v2_300 0.8 volcano] +inherits = *Voron_v2_300*; *0.8nozzle*; *volcano* +printer_variant = volcano 0.8 +printer_notes = Unoffical profile.\nPRINTER_HAS_BOWDEN\nVOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + +[printer:Voron_v2_300 1.0 volcano] +inherits = *Voron_v2_300*; *1.0nozzle*; *volcano* +printer_variant = volcano 1.0 +printer_notes = Unoffical profile.\nPRINTER_HAS_BOWDEN\nVOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + +[printer:Voron_v2_300 1.2 volcano] +inherits = *Voron_v2_300*; *1.2nozzle*; *volcano* +printer_variant = volcano 1.2 +printer_notes = Unoffical profile.\nPRINTER_HAS_BOWDEN\nVOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + +[printer:Voron_v2_350 0.25 nozzle] +inherits = *Voron_v2_350*; *0.25nozzle* + +[printer:Voron_v2_350 0.3 nozzle] +inherits = *Voron_v2_350*; *0.3nozzle* + +[printer:Voron_v2_350 0.4 nozzle] +inherits = *Voron_v2_350*; *0.4nozzle* + +[printer:Voron_v2_350 0.5 nozzle] +inherits = *Voron_v2_350*; *0.5nozzle* + +[printer:Voron_v2_350 0.6 nozzle] +inherits = *Voron_v2_350*; *0.6nozzle* + +[printer:Voron_v2_350 0.8 nozzle] +inherits = *Voron_v2_350*; *0.8nozzle* + +[printer:Voron_v2_350 volcano 0.6 nozzle] +inherits = *Voron_v2_350*; *0.6nozzle*; *volcano* +printer_variant = volcano 0.6 +printer_notes = Unoffical profile.\nPRINTER_HAS_BOWDEN\nVOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + +[printer:Voron_v2_350 volcano 0.8 nozzle] +inherits = *Voron_v2_350*; *0.8nozzle*; *volcano* +printer_variant = volcano 0.8 +printer_notes = Unoffical profile.\nPRINTER_HAS_BOWDEN\nVOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + +[printer:Voron_v2_350 volcano 1.0 nozzle] +inherits = *Voron_v2_350*; *1.0nozzle*; *volcano* +printer_variant = volcano 1.0 +printer_notes = Unoffical profile.\nPRINTER_HAS_BOWDEN\nVOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + +[printer:Voron_v2_350 volcano 1.2 nozzle] +inherits = *Voron_v2_350*; *1.2nozzle*; *volcano* +printer_variant = volcano 1.2 +printer_notes = Unoffical profile.\nPRINTER_HAS_BOWDEN\nVOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + +[printer:Voron_v1_250_afterburner 0.25 nozzle] +inherits = *Voron_v1_250_afterburner*; *0.25nozzle* + +[printer:Voron_v1_250_afterburner 0.3 nozzle] +inherits = *Voron_v1_250_afterburner*; *0.3nozzle* + +[printer:Voron_v1_250_afterburner 0.4 nozzle] +inherits = *Voron_v1_250_afterburner*; *0.4nozzle* + +[printer:Voron_v1_250_afterburner 0.5 nozzle] +inherits = *Voron_v1_250_afterburner*; *0.5nozzle* + +[printer:Voron_v1_250_afterburner 0.6 nozzle] +inherits = *Voron_v1_250_afterburner*; *0.6nozzle* + +[printer:Voron_v1_250_afterburner 0.8 nozzle] +inherits = *Voron_v1_250_afterburner*; *0.8nozzle* + +[printer:Voron_v1_300_afterburner 0.25 nozzle] +inherits = *Voron_v1_300_afterburner*; *0.25nozzle* + +[printer:Voron_v1_300_afterburner 0.3 nozzle] +inherits = *Voron_v1_300_afterburner*; *0.3nozzle* + +[printer:Voron_v1_300_afterburner 0.4 nozzle] +inherits = *Voron_v1_300_afterburner*; *0.4nozzle* + +[printer:Voron_v1_300_afterburner 0.5 nozzle] +inherits = *Voron_v1_300_afterburner*; *0.5nozzle* + +[printer:Voron_v1_300_afterburner 0.6 nozzle] +inherits = *Voron_v1_300_afterburner*; *0.6nozzle* + +[printer:Voron_v1_300_afterburner 0.8 nozzle] +inherits = *Voron_v1_300_afterburner*; *0.8nozzle* + +[printer:Voron_v2_250_afterburner 0.25 nozzle] +inherits = *Voron_v2_250_afterburner*; *0.25nozzle* + +[printer:Voron_v2_250_afterburner 0.3 nozzle] +inherits = *Voron_v2_250_afterburner*; *0.3nozzle* + +[printer:Voron_v2_250_afterburner 0.4 nozzle] +inherits = *Voron_v2_250_afterburner*; *0.4nozzle* + +[printer:Voron_v2_250_afterburner 0.5 nozzle] +inherits = *Voron_v2_250_afterburner*; *0.5nozzle* + +[printer:Voron_v2_250_afterburner 0.6 nozzle] +inherits = *Voron_v2_250_afterburner*; *0.6nozzle* + +[printer:Voron_v2_250_afterburner 0.8 nozzle] +inherits = *Voron_v2_250_afterburner*; *0.8nozzle* + +[printer:Voron_v2_250_afterburner 0.6 volcano] +inherits = *Voron_v2_250_afterburner*; *0.6nozzle*; *volcano_afterburner* +printer_variant = volcano 0.6 +printer_notes = Unoffical profile.\nVOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + +[printer:Voron_v2_250_afterburner 0.8 volcano] +inherits = *Voron_v2_250_afterburner*; *0.8nozzle*; *volcano_afterburner* +printer_variant = volcano 0.8 +printer_notes = Unoffical profile.\nVOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + +[printer:Voron_v2_250_afterburner 1.0 volcano] +inherits = *Voron_v2_250_afterburner*; *1.0nozzle*; *volcano_afterburner* +printer_variant = volcano 1.0 +printer_notes = Unoffical profile.\nVOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + +[printer:Voron_v2_250_afterburner 1.2 volcano] +inherits = *Voron_v2_250_afterburner*; *1.2nozzle*; *volcano_afterburner* +printer_variant = volcano 1.2 +printer_notes = Unoffical profile.\nVOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + +[printer:Voron_v2_300_afterburner 0.25 nozzle] +inherits = *Voron_v2_300_afterburner*; *0.25nozzle* + +[printer:Voron_v2_300_afterburner 0.3 nozzle] +inherits = *Voron_v2_300_afterburner*; *0.3nozzle* + +[printer:Voron_v2_300_afterburner 0.4 nozzle] +inherits = *Voron_v2_300_afterburner*; *0.4nozzle* + +[printer:Voron_v2_300_afterburner 0.5 nozzle] +inherits = *Voron_v2_300_afterburner*; *0.5nozzle* + +[printer:Voron_v2_300_afterburner 0.6 nozzle] +inherits = *Voron_v2_300_afterburner*; *0.6nozzle* + +[printer:Voron_v2_300_afterburner 0.8 nozzle] +inherits = *Voron_v2_300_afterburner*; *0.8nozzle* + +[printer:Voron_v2_300_afterburner 0.6 volcano] +inherits = *Voron_v2_300_afterburner*; *0.6nozzle*; *volcano_afterburner* +printer_variant = volcano 0.6 +printer_notes = Unoffical profile.\nVOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + +[printer:Voron_v2_300_afterburner 0.8 volcano] +inherits = *Voron_v2_300_afterburner*; *0.8nozzle*; *volcano_afterburner* +printer_variant = volcano 0.8 +printer_notes = Unoffical profile.\nVOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + +[printer:Voron_v2_300_afterburner 1.0 volcano] +inherits = *Voron_v2_300_afterburner*; *1.0nozzle*; *volcano_afterburner* +printer_variant = volcano 1.0 +printer_notes = Unoffical profile.\nVOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + +[printer:Voron_v2_300_afterburner 1.2 volcano] +inherits = *Voron_v2_300_afterburner*; *1.2nozzle*; *volcano_afterburner* +printer_variant = volcano 1.2 +printer_notes = Unoffical profile.\nVOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + +[printer:Voron_v2_350_afterburner 0.25 nozzle] +inherits = *Voron_v2_350_afterburner*; *0.25nozzle* + +[printer:Voron_v2_350_afterburner 0.3 nozzle] +inherits = *Voron_v2_350_afterburner*; *0.3nozzle* + +[printer:Voron_v2_350_afterburner 0.4 nozzle] +inherits = *Voron_v2_350_afterburner*; *0.4nozzle* + +[printer:Voron_v2_350_afterburner 0.5 nozzle] +inherits = *Voron_v2_350_afterburner*; *0.5nozzle* + +[printer:Voron_v2_350_afterburner 0.6 nozzle] +inherits = *Voron_v2_350_afterburner*; *0.6nozzle* + +[printer:Voron_v2_350_afterburner 0.8 nozzle] +inherits = *Voron_v2_350_afterburner*; *0.8nozzle* + +[printer:Voron_v2_350_afterburner volcano 0.6 nozzle] +inherits = *Voron_v2_350_afterburner*; *0.6nozzle*; *volcano_afterburner* +printer_variant = volcano 0.6 +printer_notes = Unoffical profile.\nVOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + +[printer:Voron_v2_350_afterburner volcano 0.8 nozzle] +inherits = *Voron_v2_350_afterburner*; *0.8nozzle*; *volcano_afterburner* +printer_variant = volcano 0.8 +printer_notes = Unoffical profile.\nVOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + +[printer:Voron_v2_350_afterburner volcano 1.0 nozzle] +inherits = *Voron_v2_350_afterburner*; *1.0nozzle*; *volcano_afterburner* +printer_variant = volcano 1.0 +printer_notes = Unoffical profile.\nVOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + +[printer:Voron_v2_350_afterburner volcano 1.2 nozzle] +inherits = *Voron_v2_350_afterburner*; *1.2nozzle*; *volcano_afterburner* +printer_variant = volcano 1.2 +printer_notes = Unoffical profile.\nVOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + +[printer:Voron_v0 0.25 nozzle] +inherits = *Voron_v0_120*; *0.25nozzle*; *zero* + +[printer:Voron_v0 0.3 nozzle] +inherits = *Voron_v0_120*; *0.3nozzle*; *zero* + +[printer:Voron_v0 0.4 nozzle] +inherits = *Voron_v0_120*; *0.4nozzle*; *zero* + +[printer:Voron_v0 0.5 nozzle] +inherits = *Voron_v0_120*; *0.5nozzle*; *zero* + +[printer:Voron_v0 0.6 nozzle] +inherits = *Voron_v0_120*; *0.6nozzle*; *zero* + +[printer:Voron_v0 0.8 nozzle] +inherits = *Voron_v0_120*; *0.8nozzle*; *zero* + +[printer:Voron_v0 volcano 0.6 nozzle] +inherits = *Voron_v0_120*; *0.6nozzle*; *volcano*; *zero* +printer_variant = volcano 0.6 +printer_notes = Unoffical profile.\nPRINTER_HAS_BOWDEN\nVOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + +[printer:Voron_v0 volcano 0.8 nozzle] +inherits = *Voron_v0_120*; *0.8nozzle*; *volcano*; *zero* +printer_variant = volcano 0.8 +printer_notes = Unoffical profile.\nPRINTER_HAS_BOWDEN\nVOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + +[printer:Voron_v0 volcano 1.0 nozzle] +inherits = *Voron_v0_120*; *1.0nozzle*; *volcano*; *zero* +printer_variant = volcano 1.0 +printer_notes = Unoffical profile.\nPRINTER_HAS_BOWDEN\nVOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + +[printer:Voron_v0 volcano 1.2 nozzle] +inherits = *Voron_v0_120*; *1.2nozzle*; *volcano*; *zero* +printer_variant = volcano 1.2 +printer_notes = Unoffical profile.\nPRINTER_HAS_BOWDEN\nVOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + + +# Common print preset, mostly derived from MK2 single material with a 0.4mm nozzle. +# All other print presets will derive from the *common* print preset. +[print:*common*] +avoid_crossing_perimeters = 0 +bridge_acceleration = 3000 +bridge_angle = 0 +bridge_flow_ratio = 0.9 +bottom_fill_pattern = monotonic +bridge_speed = 60 +brim_inside_holes = 0 +brim_width = 0 +clip_multipart_objects = 1 +compatible_printers = +complete_objects = 0 +default_acceleration = 3000 +dont_support_bridges = 1 +ensure_vertical_shell_thickness = 1 +external_perimeters_first = 0 +external_perimeter_speed = 40 +extra_perimeters = 0 +extra_perimeters_overhangs = 0 +extruder_clearance_height = 20 +extruder_clearance_radius = 70 +elefant_foot_compensation = 0.1 +fill_angle = 45 +fill_density = 15% +fill_pattern = gyroid +first_layer_acceleration = 1000 +first_layer_height = 75% +first_layer_speed = 30 +gap_fill_speed = 40 +gcode_comments = 0 +infill_acceleration = 4000 +infill_extruder = 1 +infill_first = 0 +infill_only_where_needed = 0 +infill_overlap = 20% +infill_speed = 125 +interface_shells = 0 +label_printed_objects = 1 +max_print_speed = 300 +max_volumetric_extrusion_rate_slope_negative = 0 +max_volumetric_extrusion_rate_slope_positive = 0 +max_volumetric_speed = 0 +min_skirt_length = 20 +notes = TODO: check the size of the extruder and the y-bar clearance. Optimize & test supports. +only_one_perimeter_top = 1 +only_retract_when_crossing_perimeters = 1 +ooze_prevention = 0 +output_filename_format = [input_filename_base].gcode +perimeters = 3 +perimeter_acceleration = 2000 +perimeter_extruder = 1 +perimeter_speed = 100 +post_process = +print_settings_id = +raft_layers = 0 +seam_position = nearest +single_extruder_multi_material_priming = 1 +skirts = 3 +skirt_distance = 3 +skirt_height = 1 +small_perimeter_speed = 40 +solid_infill_below_area = 0 +solid_infill_every_layers = 0 +solid_infill_extruder = 1 +solid_infill_speed = 120 +spiral_vase = 0 +standby_temperature_delta = -5 +support_material = 0 +support_material_extruder = 0 +support_material_angle = 0 +support_material_buildplate_only = 0 +support_material_enforce_layers = 0 +support_material_contact_distance = 0.15 +support_material_interface_contact_loops = 0 +support_material_interface_layers = 1 +support_material_interface_spacing = 0 +support_material_interface_speed = 70 +support_material_pattern = rectilinear +support_material_interface_extruder = 0 +support_material_solid_first_layer = 1 +support_material_spacing = 1.5 +support_material_speed = 90 +support_material_synchronize_layers = 0 +support_material_threshold = 30 +support_material_with_sheath = 0 +support_material_xy_spacing = 0.6 +thin_perimeters = 1 +thin_walls = 0 +top_fill_pattern = monotonic +top_solid_infill_speed = 50 +travel_speed = 300 +wipe_tower = 1 +wipe_tower_bridging = 10 +wipe_tower_rotation_angle = 0 +wipe_tower_width = 60 +wipe_tower_x = 180 +wipe_tower_y = 140 +xy_size_compensation = 0 +extrusion_width = 0 +external_perimeter_extrusion_width = 0 +first_layer_extrusion_width = 0 +infill_extrusion_width = 0 +perimeter_extrusion_width = 0 +solid_infill_extrusion_width = 0 +top_infill_extrusion_width = 0 +support_material_extrusion_width = 0 +infill_anchor = 0 + +[print:*zero_toolhead*] +extruder_clearance_height = 38 +extruder_clearance_radius = 34 + +# Print parameters common to a 0.25mm diameter nozzle. +[print:*0.25nozzle*] +perimeters = 5 +support_material_interface_spacing = 0.1 +support_material_spacing = 1 +first_layer_height = 0.15 +extrusion_width = 0.27 +external_perimeter_extrusion_width = 0.26 +first_layer_extrusion_width = 0.35 +infill_extrusion_width = 0.27 +perimeter_extrusion_width = 0.27 +solid_infill_extrusion_width = 0.27 +top_infill_extrusion_width = 0.27 +support_material_extrusion_width = 0.27 +elefant_foot_compensation = 0 + +# Print parameters common to a 0.3mm diameter nozzle. +[print:*0.3nozzle*] +perimeters = 4 +support_material_interface_spacing = 0.15 +support_material_spacing = 1 +first_layer_height = 0.2 +extrusion_width = 0.33 +external_perimeter_extrusion_width = 0.31 +first_layer_extrusion_width = 0.42 +infill_extrusion_width = 0.33 +perimeter_extrusion_width = 0.33 +solid_infill_extrusion_width = 0.33 +top_infill_extrusion_width = 0.33 +support_material_extrusion_width = 0.33 + +# Print parameters common to a 0.2mm diameter nozzle. +[print:*0.4nozzle*] +perimeters = 3 +support_material_interface_spacing = 0.2 +support_material_spacing = 1 +first_layer_height = 0.2 +extrusion_width = 0.44 +external_perimeter_extrusion_width = 0.42 +first_layer_extrusion_width = 0.56 +infill_extrusion_width = 0.44 +perimeter_extrusion_width = 0.44 +solid_infill_extrusion_width = 0.44 +top_infill_extrusion_width = 0.44 +support_material_extrusion_width = 0.44 + +# Print parameters common to a 0.2mm diameter nozzle. +[print:*0.5nozzle*] +perimeters = 2 +support_material_interface_spacing = 0.2 +support_material_spacing = 1.1 +first_layer_height = 0.2 +extrusion_width = 0.55 +external_perimeter_extrusion_width = 0.52 +first_layer_extrusion_width = 0.7 +infill_extrusion_width = 0.55 +perimeter_extrusion_width = 0.55 +solid_infill_extrusion_width = 0.55 +top_infill_extrusion_width = 0.55 +support_material_extrusion_width = 0.55 + +# Print parameters common to a 0.2mm diameter nozzle. +[print:*0.6nozzle*] +perimeters = 2 +support_material_interface_spacing = 0.3 +support_material_spacing = 1.2 +first_layer_height = 0.3 +extrusion_width = 0.66 +external_perimeter_extrusion_width = 0.63 +first_layer_extrusion_width = 0.84 +infill_extrusion_width = 0.66 +perimeter_extrusion_width = 0.66 +solid_infill_extrusion_width = 0.66 +top_infill_extrusion_width = 0.66 +support_material_extrusion_width = 0.66 + +# Print parameters common to a 0.8mm diameter nozzle. +[print:*0.8nozzle*] +perimeters = 2 +support_material_interface_spacing = 0.3 +support_material_spacing = 1.2 +first_layer_height = 0.4 +extrusion_width = 0.88 +external_perimeter_extrusion_width = 0.84 +first_layer_extrusion_width = 1.12 +infill_extrusion_width = 0.88 +perimeter_extrusion_width = 0.88 +solid_infill_extrusion_width = 0.88 +top_infill_extrusion_width = 0.88 +support_material_extrusion_width = 0.88 + +[print:*1.0nozzle*] +perimeters = 2 +support_material_interface_spacing = 0.4 +support_material_spacing = 1.4 +first_layer_height = 0.4 +extrusion_width = 1.1 +external_perimeter_extrusion_width = 1.05 +first_layer_extrusion_width = 1.4 +infill_extrusion_width = 1.1 +perimeter_extrusion_width = 1.1 +solid_infill_extrusion_width = 1.1 +top_infill_extrusion_width = 1.1 +support_material_extrusion_width = 1.1 + +[print:*1.2nozzle*] +perimeters = 2 +support_material_interface_spacing = 0.5 +support_material_spacing = 1.6 +first_layer_height = 0.4 +extrusion_width = 1.32 +external_perimeter_extrusion_width = 1.26 +first_layer_extrusion_width = 1.68 +infill_extrusion_width = 1.32 +perimeter_extrusion_width = 1.32 +solid_infill_extrusion_width = 1.32 +top_infill_extrusion_width = 1.32 +support_material_extrusion_width = 1.32 + +[print:*0.05mm*] +inherits = *common* +bottom_solid_layers = 11 +top_solid_layers = 12 +layer_height = 0.05 +bridge_flow_ratio = 0.5 +infill_acceleration = 1500 +infill_speed = 100 +max_print_speed = 100 +perimeter_speed = 70 +external_perimeter_speed = 30 +solid_infill_speed = 60 +top_solid_infill_speed = 40 +bridge_speed = 30 + +[print:*0.10mm*] +inherits = *common* +bottom_solid_layers = 8 +top_solid_layers = 9 +layer_height = 0.1 +bridge_flow_ratio = 0.6 +infill_acceleration = 1500 +infill_speed = 100 +max_print_speed = 200 +perimeter_speed = 85 +external_perimeter_speed = 35 +solid_infill_speed = 80 +top_solid_infill_speed = 40 +bridge_speed = 30 + +[print:*0.15mm*] +inherits = *common* +bottom_solid_layers = 6 +top_solid_layers = 7 +layer_height = 0.15 +bridge_flow_ratio = 0.7 +max_print_speed = 250 +solid_infill_speed = 100 + +[print:*0.2mm*] +inherits = *common* +bottom_solid_layers = 5 +top_solid_layers = 6 +layer_height = 0.2 +bridge_flow_ratio = 0.8 + +[print:*0.25mm*] +inherits = *common* +bottom_solid_layers = 4 +top_solid_layers = 5 +layer_height = 0.25 +bridge_flow_ratio = 0.85 + +[print:*0.3mm*] +inherits = *common* +bottom_solid_layers = 3 +top_solid_layers = 4 +layer_height = 0.3 +bridge_flow_ratio = 0.9 + +[print:*0.4mm*] +inherits = *common* +bottom_solid_layers = 2 +top_solid_layers = 3 +layer_height = 0.4 +bridge_flow_ratio = 0.9 + +[print:*0.6mm*] +inherits = *common* +bottom_solid_layers = 2 +top_solid_layers = 3 +layer_height = 0.6 +bridge_flow_ratio = 0.9 + +[print:*0.8mm*] +inherits = *common* +bottom_solid_layers = 2 +top_solid_layers = 3 +layer_height = 0.8 +bridge_flow_ratio = 0.9 + +[print:0.05mm 0.25nozzle V2] +inherits = *0.05mm*; *0.25nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==0.25 + +[print:0.05mm 0.3nozzle V2] +inherits = *0.05mm*; *0.3nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==0.3 + +[print:0.05mm 0.4nozzle V2] +inherits = *0.05mm*; *0.4nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==0.4 + +[print:0.05mm 0.5nozzle V2] +inherits = *0.05mm*; *0.5nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==0.5 + +[print:0.05mm 0.25nozzle V1] +inherits = *0.05mm*; *0.25nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.25 + +[print:0.05mm 0.3nozzle V1] +inherits = *0.05mm*; *0.3nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.3 + +[print:0.05mm 0.4nozzle V1] +inherits = *0.05mm*; *0.4nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.4 + +[print:0.05mm 0.5nozzle V1] +inherits = *0.05mm*; *0.5nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.5 + +[print:0.05mm 0.25nozzle V0] +inherits = *0.05mm*; *0.25nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==0.25 + +[print:0.05mm 0.3nozzle V0] +inherits = *0.05mm*; *0.3nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==0.3 + +[print:0.05mm 0.4nozzle V0] +inherits = *0.05mm*; *0.4nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==0.4 + +[print:0.05mm 0.5nozzle V0] +inherits = *0.05mm*; *0.5nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==0.5 + +[print:0.10mm 0.25nozzle V2] +inherits = *0.10mm*; *0.25nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==0.25 + +[print:0.10mm 0.3nozzle V2] +inherits = *0.10mm*; *0.3nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==0.3 + +[print:0.10mm 0.4nozzle V2] +inherits = *0.10mm*; *0.4nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==0.4 + +[print:0.10mm 0.5nozzle V2] +inherits = *0.10mm*; *0.5nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==0.5 + +[print:0.10mm 0.6nozzle V2] +inherits = *0.10mm*; *0.6nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==0.6 + +[print:0.10mm 0.8nozzle V2] +inherits = *0.10mm*; *0.8nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==0.8 + +[print:0.10mm 0.25nozzle V1] +inherits = *0.10mm*; *0.25nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.25 + +[print:0.10mm 0.3nozzle V1] +inherits = *0.10mm*; *0.3nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.3 + +[print:0.10mm 0.4nozzle V1] +inherits = *0.10mm*; *0.4nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.4 + +[print:0.10mm 0.5nozzle V1] +inherits = *0.10mm*; *0.5nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.5 + +[print:0.10mm 0.6nozzle V1] +inherits = *0.10mm*; *0.6nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.6 + +[print:0.10mm 0.8nozzle V1] +inherits = *0.10mm*; *0.8nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.8 + +[print:0.10mm 0.25nozzle V0] +inherits = *0.10mm*; *0.25nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==0.25 + +[print:0.10mm 0.3nozzle V0] +inherits = *0.10mm*; *0.3nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==0.3 + +[print:0.10mm 0.4nozzle V0] +inherits = *0.10mm*; *0.4nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==0.4 + +[print:0.10mm 0.5nozzle V0] +inherits = *0.10mm*; *0.5nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==0.5 + +[print:0.10mm 0.6nozzle V0] +inherits = *0.10mm*; *0.6nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==0.6 + +[print:0.10mm 0.8nozzle V0] +inherits = *0.10mm*; *0.8nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==0.8 + +[print:0.15mm 0.25nozzle V2] +inherits = *0.15mm*; *0.25nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==0.25 + +[print:0.15mm 0.3nozzle V2] +inherits = *0.15mm*; *0.3nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==0.3 + +[print:0.15mm 0.4nozzle V2] +inherits = *0.15mm*; *0.4nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==0.4 + +[print:0.15mm 0.5nozzle V2] +inherits = *0.15mm*; *0.5nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==0.5 + +[print:0.15mm 0.6nozzle V2] +inherits = *0.15mm*; *0.6nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==0.6 + +[print:0.15mm 0.8nozzle V2] +inherits = *0.15mm*; *0.8nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==0.8 + +[print:0.15mm 1.0nozzle V2] +inherits = *0.15mm*; *1.0nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==1.0 + +[print:0.15mm 1.2nozzle V2] +inherits = *0.15mm*; *1.2nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==1.2 + +[print:0.15mm 0.25nozzle V1] +inherits = *0.15mm*; *0.25nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.25 + +[print:0.15mm 0.3nozzle V1] +inherits = *0.15mm*; *0.3nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.3 + +[print:0.15mm 0.4nozzle V1] +inherits = *0.15mm*; *0.4nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.4 + +[print:0.15mm 0.5nozzle V1] +inherits = *0.15mm*; *0.5nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.5 + +[print:0.15mm 0.6nozzle V1] +inherits = *0.15mm*; *0.6nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.6 + +[print:0.15mm 0.8nozzle V1] +inherits = *0.15mm*; *0.8nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.8 + +[print:0.15mm 0.25nozzle V0] +inherits = *0.15mm*; *0.25nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==0.25 + +[print:0.15mm 0.3nozzle V0] +inherits = *0.15mm*; *0.3nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==0.3 + +[print:0.15mm 0.4nozzle V0] +inherits = *0.15mm*; *0.4nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==0.4 + +[print:0.15mm 0.5nozzle V0] +inherits = *0.15mm*; *0.5nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==0.5 + +[print:0.15mm 0.6nozzle V0] +inherits = *0.15mm*; *0.6nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==0.6 + +[print:0.15mm 0.8nozzle V0] +inherits = *0.15mm*; *0.8nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==0.8 + +[print:0.15mm 1.0nozzle V0] +inherits = *0.15mm*; *1.0nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==1.0 + +[print:0.15mm 1.2nozzle V0] +inherits = *0.15mm*; *1.2nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==1.2 + + +[print:0.2mm 0.3nozzle V2] +inherits = *0.2mm*; *0.3nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==0.3 + +[print:0.2mm 0.4nozzle V2] +inherits = *0.2mm*; *0.4nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==0.4 + +[print:0.2mm 0.5nozzle V2] +inherits = *0.2mm*; *0.5nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==0.5 + +[print:0.2mm 0.6nozzle V2] +inherits = *0.2mm*; *0.6nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==0.6 + +[print:0.2mm 0.8nozzle V2] +inherits = *0.2mm*; *0.8nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==0.8 + +[print:0.2mm 1.0nozzle V2] +inherits = *0.2mm*; *1.0nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==1.0 + +[print:0.2mm 1.2nozzle V2] +inherits = *0.2mm*; *1.2nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==1.2 + +[print:0.2mm 0.25nozzle V1] +inherits = *0.2mm*; *0.25nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.25 + +[print:0.2mm 0.3nozzle V1] +inherits = *0.2mm*; *0.3nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.3 + +[print:0.2mm 0.4nozzle V1] +inherits = *0.2mm*; *0.4nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.4 + +[print:0.2mm 0.5nozzle V1] +inherits = *0.2mm*; *0.5nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.5 + +[print:0.2mm 0.6nozzle V1] +inherits = *0.2mm*; *0.6nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.6 + +[print:0.2mm 0.8nozzle V1] +inherits = *0.2mm*; *0.8nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.8 + +[print:0.2mm 0.3nozzle V0] +inherits = *0.2mm*; *0.3nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==0.3 + +[print:0.2mm 0.4nozzle V0] +inherits = *0.2mm*; *0.4nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==0.4 + +[print:0.2mm 0.5nozzle V0] +inherits = *0.2mm*; *0.5nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==0.5 + +[print:0.2mm 0.6nozzle V0] +inherits = *0.2mm*; *0.6nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==0.6 + +[print:0.2mm 0.8nozzle V0] +inherits = *0.2mm*; *0.8nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==0.8 + +[print:0.2mm 1.0nozzle V0] +inherits = *0.2mm*; *1.0nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==1.0 + +[print:0.2mm 1.2nozzle V0] +inherits = *0.2mm*; *1.2nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==1.2 + + +[print:0.3mm 0.4nozzle V2] +inherits = *0.3mm*; *0.4nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==0.4 + +[print:0.3mm 0.5nozzle V2] +inherits = *0.3mm*; *0.5nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==0.5 + +[print:0.3mm 0.6nozzle V2] +inherits = *0.3mm*; *0.6nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==0.6 + +[print:0.3mm 0.8nozzle V2] +inherits = *0.3mm*; *0.8nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==0.8 + +[print:0.3mm 1.0nozzle V2] +inherits = *0.3mm*; *1.0nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==1.0 + +[print:0.3mm 1.2nozzle V2] +inherits = *0.3mm*; *1.2nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==1.2 + +[print:0.3mm 0.25nozzle V1] +inherits = *0.3mm*; *0.25nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.25 + +[print:0.3mm 0.3nozzle V1] +inherits = *0.3mm*; *0.3nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.3 + +[print:0.3mm 0.4nozzle V1] +inherits = *0.3mm*; *0.4nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.4 + +[print:0.3mm 0.5nozzle V1] +inherits = *0.3mm*; *0.5nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.5 + +[print:0.3mm 0.6nozzle V1] +inherits = *0.3mm*; *0.6nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.6 + +[print:0.3mm 0.8nozzle V1] +inherits = *0.3mm*; *0.8nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.8 + +[print:0.3mm 0.4nozzle V0] +inherits = *0.3mm*; *0.4nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==0.4 + +[print:0.3mm 0.5nozzle V0] +inherits = *0.3mm*; *0.5nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==0.5 + +[print:0.3mm 0.6nozzle V0] +inherits = *0.3mm*; *0.6nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==0.6 + +[print:0.3mm 0.8nozzle V0] +inherits = *0.3mm*; *0.8nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==0.8 + +[print:0.3mm 1.0nozzle V0] +inherits = *0.3mm*; *1.0nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==1.0 + +[print:0.3mm 1.2nozzle V0] +inherits = *0.3mm*; *1.2nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==1.2 + + +[print:0.4mm 0.6nozzle V2] +inherits = *0.4mm*; *0.6nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==0.6 + +[print:0.4mm 0.8nozzle V2] +inherits = *0.4mm*; *0.8nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==0.8 + +[print:0.4mm 1.0nozzle V2] +inherits = *0.4mm*; *1.0nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==1.0 + +[print:0.4mm 1.2nozzle V2] +inherits = *0.4mm*; *1.2nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==1.2 + +[print:0.4mm 0.25nozzle V1] +inherits = *0.4mm*; *0.25nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.25 + +[print:0.4mm 0.3nozzle V1] +inherits = *0.4mm*; *0.3nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.3 + +[print:0.4mm 0.4nozzle V1] +inherits = *0.4mm*; *0.4nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.4 + +[print:0.4mm 0.5nozzle V1] +inherits = *0.4mm*; *0.5nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.5 + +[print:0.4mm 0.6nozzle V1] +inherits = *0.4mm*; *0.6nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.6 + +[print:0.4mm 0.8nozzle V1] +inherits = *0.4mm*; *0.8nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.8 + +[print:0.4mm 0.6nozzle V0] +inherits = *0.4mm*; *0.6nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==0.6 + +[print:0.4mm 0.8nozzle V0] +inherits = *0.4mm*; *0.8nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==0.8 + +[print:0.4mm 1.0nozzle V0] +inherits = *0.4mm*; *1.0nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==1.0 + +[print:0.4mm 1.2nozzle V0] +inherits = *0.4mm*; *1.2nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==1.2 + +[print:0.6mm 0.8nozzle V2] +inherits = *0.6mm*; *0.8nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==0.8 + +[print:0.6mm 1.0nozzle V2] +inherits = *0.6mm*; *1.0nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==1.0 + +[print:0.6mm 1.2nozzle V2] +inherits = *0.6mm*; *1.2nozzle* +compatible_printers_condition = printer_model=~/.*Voron_2.*/ and nozzle_diameter[0]==1.2 + +[print:0.6mm 0.8nozzle V1] +inherits = *0.6mm*; *0.6nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==0.8 + +[print:0.6mm 1.0nozzle V1] +inherits = *0.6mm*; *0.8nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==1.0 + +[print:0.6mm 1.2nozzle V1] +inherits = *0.6mm*; *0.8nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==1.2 + +[print:0.6mm 0.8nozzle V0] +inherits = *0.6mm*; *0.8nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==0.8 + +[print:0.6mm 1.0nozzle V0] +inherits = *0.6mm*; *1.0nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==1.0 + +[print:0.6mm 1.2nozzle V0] +inherits = *0.6mm*; *1.2nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==1.2 + +[print:0.8mm 1.2nozzle V2] +inherits = *0.8mm*; *1.2nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==1.2 + +[print:0.8mm 1.2nozzle V1] +inherits = *0.8mm*; *1.2nozzle* +compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diameter[0]==1.2 + +[print:0.8mm 1.2nozzle V0] +inherits = *0.8mm*; *1.2nozzle*; *zero_toolhead* +compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==1.2 + + +[filament:*common*] +cooling = 1 +compatible_printers = +compatible_printers_condition = +end_filament_gcode = "" +extrusion_multiplier = 1 +filament_cooling_final_speed = 3.4 +filament_cooling_initial_speed = 2.2 +filament_cooling_moves = 4 +filament_cost = 0 +filament_density = 0 +filament_diameter = 1.75 +filament_loading_speed = 28 +filament_loading_speed_start = 3 +filament_load_time = 0 +filament_minimal_purge_on_wipe_tower = 15 +filament_notes = "" +filament_ramming_parameters = "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6" +filament_settings_id = "" +filament_soluble = 0 +filament_toolchange_delay = 0 +filament_unload_time = 0 +filament_unloading_speed = 90 +filament_unloading_speed_start = 100 +min_print_speed = 15 +slowdown_below_layer_time = 20 +start_filament_gcode = "" + + +[filament:*BasicPLA*] +inherits = *common* +bed_temperature = 55 +fan_below_layer_time = 100 +filament_colour = #FF3232 +filament_type = PLA +filament_density = 1.24 +filament_cost = 20 +first_layer_bed_temperature = 55 +first_layer_temperature = 215 +disable_fan_first_layers = 1 +fan_always_on = 1 +max_fan_speed = 100 +min_fan_speed = 100 +bridge_fan_speed = 100 +temperature = 205 + +[filament:Basic PLA @VORON] +inherits = *BasicPLA* +filament_vendor = Generic +filament_max_volumetric_speed = 13 +compatible_printers_condition = printer_model=~/.*Voron.*/ and printer_notes=~/.*E3DV6.*/ + +[filament:Basic PLA VOLCANO @VORON] +inherits = *BasicPLA* +filament_vendor = Generic +filament_max_volumetric_speed = 20 +compatible_printers_condition = printer_model=~/.*Voron.*/ and printer_notes=~/.*VOLCANO.*/ + +[filament:*BasicPET*] +inherits = *common* +bed_temperature = 70 +cooling = 0 +disable_fan_first_layers = 2 +fan_below_layer_time = 20 +filament_colour = #FF8000 +filament_type = PET +filament_density = 1.27 +filament_cost = 30 +first_layer_bed_temperature =70 +first_layer_temperature = 240 +fan_always_on = 1 +max_fan_speed = 30 +min_fan_speed = 20 +bridge_fan_speed = 100 +temperature = 245 + +[filament:Basic PET @VORON] +inherits = *BasicPET* +filament_vendor = Generic +filament_max_volumetric_speed = 8 +compatible_printers_condition = printer_model=~/.*Voron.*/ and printer_notes=~/.*E3DV6.*/ + +[filament:Basic PET VOLCANO @VORON] +inherits = *BasicPET* +filament_vendor = Generic +filament_max_volumetric_speed = 14 +compatible_printers_condition = printer_model=~/.*Voron.*/ and printer_notes=~/.*VOLCANO.*/ + +[filament:*BasicABS*] +inherits = *common* +bed_temperature = 90 +cooling = 0 +disable_fan_first_layers = 3 +fan_below_layer_time = 20 +filament_colour = #3A80CA +filament_ramming_parameters = "120 100 5.70968 6.03226 7 8.25806 9 9.19355 9.3871 9.77419 10.129 10.3226 10.4516 10.5161| 0.05 5.69677 0.45 6.15484 0.95 8.76774 1.45 9.20323 1.95 9.95806 2.45 10.3871 2.95 10.5677 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6" +filament_type = ABS +filament_density = 1.04 +filament_cost = 20 +first_layer_bed_temperature = 100 +first_layer_temperature = 250 +fan_always_on = 0 +max_fan_speed = 0 +min_fan_speed = 0 +bridge_fan_speed = 30 +slowdown_below_layer_time = 15 +temperature = 250 + +[filament:Basic ABS @VORON] +inherits = *BasicABS* +filament_vendor = Generic +filament_max_volumetric_speed = 11 +compatible_printers_condition = printer_model=~/.*Voron.*/ and printer_notes=~/.*E3DV6.*/ + +[filament:Basic ABS VOLCANO @VORON] +inherits = *BasicABS* +filament_vendor = Generic +filament_max_volumetric_speed = 17 +compatible_printers_condition = printer_model=~/.*Voron.*/ and printer_notes=~/.*VOLCANO.*/ + +[filament:*kvpABS*] +inherits = *BasicABS* +bed_temperature = 105 +cooling = 1 +disable_fan_first_layers = 5 +filament_colour = #FFFF00 +filament_ramming_parameters = "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6" +filament_density = 1.05 +filament_cost = 22 +first_layer_bed_temperature = 110 +first_layer_temperature = 240 +fan_always_on = 1 +fan_below_layer_time = 45 +max_fan_speed = 30 +min_fan_speed = 15 +bridge_fan_speed = 30 +temperature = 235 + +[filament:KVP ABS @VORON] +inherits = *kvpABS* +filament_vendor = KVP +filament_max_volumetric_speed = 11 +compatible_printers_condition = printer_model=~/.*Voron.*/ and printer_notes=~/.*E3DV6.*/ + +[filament:KVP ABS VOLCANO @VORON] +inherits = *kvpABS* +filament_vendor = KVP +filament_max_volumetric_speed = 17 +compatible_printers_condition = printer_model=~/.*Voron.*/ and printer_notes=~/.*VOLCANO.*/ + diff --git a/resources/profiles/Voron/Voron_v0_120_thumbnail.png b/resources/profiles/Voron/Voron_v0_120_thumbnail.png new file mode 100644 index 000000000..b00586b6f Binary files /dev/null and b/resources/profiles/Voron/Voron_v0_120_thumbnail.png differ diff --git a/resources/profiles/Voron/Voron_v1_250_afterburner_thumbnail.png b/resources/profiles/Voron/Voron_v1_250_afterburner_thumbnail.png new file mode 100644 index 000000000..07c3202ca Binary files /dev/null and b/resources/profiles/Voron/Voron_v1_250_afterburner_thumbnail.png differ diff --git a/resources/profiles/Voron/Voron_v1_300_afterburner_thumbnail.png b/resources/profiles/Voron/Voron_v1_300_afterburner_thumbnail.png new file mode 100644 index 000000000..07c3202ca Binary files /dev/null and b/resources/profiles/Voron/Voron_v1_300_afterburner_thumbnail.png differ diff --git a/resources/profiles/Voron/Voron_v2_250_afterburner_thumbnail.png b/resources/profiles/Voron/Voron_v2_250_afterburner_thumbnail.png new file mode 100644 index 000000000..02a2d3358 Binary files /dev/null and b/resources/profiles/Voron/Voron_v2_250_afterburner_thumbnail.png differ diff --git a/resources/profiles/Voron/Voron_v2_250_thumbnail.png b/resources/profiles/Voron/Voron_v2_250_thumbnail.png new file mode 100644 index 000000000..02a2d3358 Binary files /dev/null and b/resources/profiles/Voron/Voron_v2_250_thumbnail.png differ diff --git a/resources/profiles/Voron/Voron_v2_300_afterburner_thumbnail.png b/resources/profiles/Voron/Voron_v2_300_afterburner_thumbnail.png new file mode 100644 index 000000000..02a2d3358 Binary files /dev/null and b/resources/profiles/Voron/Voron_v2_300_afterburner_thumbnail.png differ diff --git a/resources/profiles/Voron/Voron_v2_300_thumbnail.png b/resources/profiles/Voron/Voron_v2_300_thumbnail.png new file mode 100644 index 000000000..02a2d3358 Binary files /dev/null and b/resources/profiles/Voron/Voron_v2_300_thumbnail.png differ diff --git a/resources/profiles/Voron/Voron_v2_350_afterburner_thumbnail.png b/resources/profiles/Voron/Voron_v2_350_afterburner_thumbnail.png new file mode 100644 index 000000000..02a2d3358 Binary files /dev/null and b/resources/profiles/Voron/Voron_v2_350_afterburner_thumbnail.png differ diff --git a/resources/profiles/Voron/Voron_v2_350_thumbnail.png b/resources/profiles/Voron/Voron_v2_350_thumbnail.png new file mode 100644 index 000000000..02a2d3358 Binary files /dev/null and b/resources/profiles/Voron/Voron_v2_350_thumbnail.png differ diff --git a/resources/profiles/Voron/bedtexture-v0-120.png b/resources/profiles/Voron/bedtexture-v0-120.png new file mode 100644 index 000000000..27d6f343a Binary files /dev/null and b/resources/profiles/Voron/bedtexture-v0-120.png differ diff --git a/resources/profiles/Voron/bedtexture-v1-250.png b/resources/profiles/Voron/bedtexture-v1-250.png new file mode 100644 index 000000000..f81d0b869 Binary files /dev/null and b/resources/profiles/Voron/bedtexture-v1-250.png differ diff --git a/resources/profiles/Voron/bedtexture-v1-300.png b/resources/profiles/Voron/bedtexture-v1-300.png new file mode 100644 index 000000000..6d6b27bc8 Binary files /dev/null and b/resources/profiles/Voron/bedtexture-v1-300.png differ diff --git a/resources/profiles/Voron/bedtexture-v2-250.png b/resources/profiles/Voron/bedtexture-v2-250.png new file mode 100644 index 000000000..f81d0b869 Binary files /dev/null and b/resources/profiles/Voron/bedtexture-v2-250.png differ diff --git a/resources/profiles/Voron/bedtexture-v2-300.png b/resources/profiles/Voron/bedtexture-v2-300.png new file mode 100644 index 000000000..6d6b27bc8 Binary files /dev/null and b/resources/profiles/Voron/bedtexture-v2-300.png differ diff --git a/resources/profiles/Voron/bedtexture-v2-350.png b/resources/profiles/Voron/bedtexture-v2-350.png new file mode 100644 index 000000000..1c511b35b Binary files /dev/null and b/resources/profiles/Voron/bedtexture-v2-350.png differ diff --git a/resources/profiles/Voron/printbed-v0-120.stl b/resources/profiles/Voron/printbed-v0-120.stl new file mode 100644 index 000000000..ddadca2a3 Binary files /dev/null and b/resources/profiles/Voron/printbed-v0-120.stl differ diff --git a/resources/profiles/Voron/printbed-v1-250.stl b/resources/profiles/Voron/printbed-v1-250.stl new file mode 100644 index 000000000..ea0cd0197 Binary files /dev/null and b/resources/profiles/Voron/printbed-v1-250.stl differ diff --git a/resources/profiles/Voron/printbed-v1-300.stl b/resources/profiles/Voron/printbed-v1-300.stl new file mode 100644 index 000000000..13e33560a Binary files /dev/null and b/resources/profiles/Voron/printbed-v1-300.stl differ diff --git a/resources/profiles/Voron/printbed-v2-250.stl b/resources/profiles/Voron/printbed-v2-250.stl new file mode 100644 index 000000000..84835f5a3 --- /dev/null +++ b/resources/profiles/Voron/printbed-v2-250.stl @@ -0,0 +1,9858 @@ +solid printbed-v2-250 + facet normal -0.000000e+00 -1.000000e+00 0.000000e+00 + outer loop + vertex -7.900000e+01 -1.250000e+02 -3.000000e+00 + vertex -1.240000e+02 -1.250000e+02 0.000000e+00 + vertex -1.240000e+02 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -1.000000e+00 0.000000e+00 + outer loop + vertex -7.750000e+01 -1.250000e+02 -6.000000e+00 + vertex -7.900000e+01 -1.250000e+02 -3.000000e+00 + vertex -1.240000e+02 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.640954e+01 -1.224870e+02 -6.000000e+00 + vertex -7.750000e+01 -1.250000e+02 -6.000000e+00 + vertex -1.240000e+02 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.250000e+02 -1.240000e+02 -6.000000e+00 + vertex -7.640954e+01 -1.224870e+02 -6.000000e+00 + vertex -1.240000e+02 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.241736e+02 -1.249848e+02 -6.000000e+00 + vertex -1.250000e+02 -1.240000e+02 -6.000000e+00 + vertex -1.240000e+02 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.715157e-02 -9.961951e-01 -0.000000e+00 + outer loop + vertex -1.240000e+02 -1.250000e+02 0.000000e+00 + vertex -1.241736e+02 -1.249848e+02 0.000000e+00 + vertex -1.240000e+02 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.715157e-02 -9.961951e-01 -0.000000e+00 + outer loop + vertex -1.241736e+02 -1.249848e+02 0.000000e+00 + vertex -1.241736e+02 -1.249848e+02 -6.000000e+00 + vertex -1.240000e+02 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 -1.000000e+00 -0.000000e+00 + outer loop + vertex -7.750000e+01 -1.250000e+02 -3.000000e+00 + vertex -7.900000e+01 -1.250000e+02 -3.000000e+00 + vertex -7.750000e+01 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.640954e+01 -1.224870e+02 -6.000000e+00 + vertex -7.732635e+01 -1.249848e+02 -6.000000e+00 + vertex -7.750000e+01 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.715157e-02 -9.961951e-01 0.000000e+00 + outer loop + vertex -7.732635e+01 -1.249848e+02 -6.000000e+00 + vertex -7.750000e+01 -1.250000e+02 -3.000000e+00 + vertex -7.750000e+01 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -1.000000e+00 0.000000e+00 + outer loop + vertex 7.250000e+01 -1.250000e+02 -6.000000e+00 + vertex 7.100000e+01 -1.250000e+02 -3.000000e+00 + vertex -7.250000e+01 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 -1.000000e+00 0.000000e+00 + outer loop + vertex -7.100000e+01 -1.250000e+02 -3.000000e+00 + vertex -7.250000e+01 -1.250000e+02 -3.000000e+00 + vertex -7.250000e+01 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 -1.000000e+00 0.000000e+00 + outer loop + vertex 7.100000e+01 -1.250000e+02 -3.000000e+00 + vertex -7.100000e+01 -1.250000e+02 -3.000000e+00 + vertex -7.250000e+01 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.359046e+01 -1.224870e+02 -6.000000e+00 + vertex 7.250000e+01 -1.250000e+02 -6.000000e+00 + vertex -7.250000e+01 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.350000e+01 -1.240000e+02 -6.000000e+00 + vertex 7.359046e+01 -1.224870e+02 -6.000000e+00 + vertex -7.250000e+01 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.267365e+01 -1.249848e+02 -6.000000e+00 + vertex -7.350000e+01 -1.240000e+02 -6.000000e+00 + vertex -7.250000e+01 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.715157e-02 -9.961951e-01 -0.000000e+00 + outer loop + vertex -7.250000e+01 -1.250000e+02 -3.000000e+00 + vertex -7.267365e+01 -1.249848e+02 -3.000000e+00 + vertex -7.250000e+01 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.715157e-02 -9.961951e-01 -0.000000e+00 + outer loop + vertex -7.267365e+01 -1.249848e+02 -3.000000e+00 + vertex -7.267365e+01 -1.249848e+02 -6.000000e+00 + vertex -7.250000e+01 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 -1.000000e+00 -0.000000e+00 + outer loop + vertex 7.250000e+01 -1.250000e+02 -3.000000e+00 + vertex 7.100000e+01 -1.250000e+02 -3.000000e+00 + vertex 7.250000e+01 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.359046e+01 -1.224870e+02 -6.000000e+00 + vertex 7.267365e+01 -1.249848e+02 -6.000000e+00 + vertex 7.250000e+01 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.715157e-02 -9.961951e-01 0.000000e+00 + outer loop + vertex 7.267365e+01 -1.249848e+02 -6.000000e+00 + vertex 7.250000e+01 -1.250000e+02 -3.000000e+00 + vertex 7.250000e+01 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.732635e+01 -1.249848e+02 -6.000000e+00 + vertex 7.650000e+01 -1.240000e+02 -6.000000e+00 + vertex 7.750000e+01 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.650000e+01 -1.240000e+02 -6.000000e+00 + vertex 7.650000e+01 -1.230000e+02 -6.000000e+00 + vertex 7.750000e+01 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.650000e+01 -1.230000e+02 -6.000000e+00 + vertex 1.240000e+02 -1.250000e+02 -6.000000e+00 + vertex 7.750000e+01 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 -1.000000e+00 0.000000e+00 + outer loop + vertex 7.900000e+01 -1.250000e+02 -3.000000e+00 + vertex 7.750000e+01 -1.250000e+02 -3.000000e+00 + vertex 7.750000e+01 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -1.000000e+00 0.000000e+00 + outer loop + vertex 1.240000e+02 -1.250000e+02 -6.000000e+00 + vertex 7.900000e+01 -1.250000e+02 -3.000000e+00 + vertex 7.750000e+01 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.715157e-02 -9.961951e-01 -0.000000e+00 + outer loop + vertex 7.750000e+01 -1.250000e+02 -3.000000e+00 + vertex 7.732635e+01 -1.249848e+02 -3.000000e+00 + vertex 7.750000e+01 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.715157e-02 -9.961951e-01 -0.000000e+00 + outer loop + vertex 7.732635e+01 -1.249848e+02 -3.000000e+00 + vertex 7.732635e+01 -1.249848e+02 -6.000000e+00 + vertex 7.750000e+01 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.640954e+01 -1.224870e+02 -6.000000e+00 + vertex 7.629904e+01 -1.222500e+02 -6.000000e+00 + vertex 1.240000e+02 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.629904e+01 -1.222500e+02 -6.000000e+00 + vertex 7.526048e+01 1.215228e+02 -6.000000e+00 + vertex 1.240000e+02 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.526048e+01 1.215228e+02 -6.000000e+00 + vertex 1.241736e+02 -1.249848e+02 -6.000000e+00 + vertex 1.240000e+02 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.650000e+01 -1.230000e+02 -6.000000e+00 + vertex 7.647721e+01 -1.227395e+02 -6.000000e+00 + vertex 1.240000e+02 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.647721e+01 -1.227395e+02 -6.000000e+00 + vertex 7.640954e+01 -1.224870e+02 -6.000000e+00 + vertex 1.240000e+02 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -1.000000e+00 0.000000e+00 + outer loop + vertex 7.900000e+01 -1.250000e+02 0.000000e+00 + vertex 7.900000e+01 -1.250000e+02 -3.000000e+00 + vertex 1.240000e+02 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 -1.000000e+00 -0.000000e+00 + outer loop + vertex 1.240000e+02 -1.250000e+02 0.000000e+00 + vertex 7.900000e+01 -1.250000e+02 0.000000e+00 + vertex 1.240000e+02 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.715157e-02 -9.961951e-01 0.000000e+00 + outer loop + vertex 1.241736e+02 -1.249848e+02 -6.000000e+00 + vertex 1.240000e+02 -1.250000e+02 0.000000e+00 + vertex 1.240000e+02 -1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 -1.000000e+00 -0.000000e+00 + outer loop + vertex -7.900000e+01 -1.250000e+02 0.000000e+00 + vertex -1.240000e+02 -1.250000e+02 0.000000e+00 + vertex -7.900000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.750000e+01 -1.250000e+02 -3.000000e+00 + vertex -7.882635e+01 -1.249848e+02 -3.000000e+00 + vertex -7.900000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.715157e-02 -9.961951e-01 0.000000e+00 + outer loop + vertex -7.882635e+01 -1.249848e+02 -3.000000e+00 + vertex -7.900000e+01 -1.250000e+02 0.000000e+00 + vertex -7.900000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.823396e+01 -1.246428e+02 -3.000000e+00 + vertex -7.835721e+01 -1.247660e+02 -3.000000e+00 + vertex -7.750000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.835721e+01 -1.247660e+02 -3.000000e+00 + vertex -7.850000e+01 -1.248660e+02 -3.000000e+00 + vertex -7.750000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.850000e+01 -1.248660e+02 -3.000000e+00 + vertex -7.865798e+01 -1.249397e+02 -3.000000e+00 + vertex -7.750000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.865798e+01 -1.249397e+02 -3.000000e+00 + vertex -7.882635e+01 -1.249848e+02 -3.000000e+00 + vertex -7.750000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.813398e+01 -1.245000e+02 -3.000000e+00 + vertex -7.823396e+01 -1.246428e+02 -3.000000e+00 + vertex -7.750000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.732635e+01 -1.249848e+02 -3.000000e+00 + vertex -7.813398e+01 -1.245000e+02 -3.000000e+00 + vertex -7.750000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.715157e-02 -9.961951e-01 0.000000e+00 + outer loop + vertex -7.732635e+01 -1.249848e+02 -6.000000e+00 + vertex -7.732635e+01 -1.249848e+02 -3.000000e+00 + vertex -7.750000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.100000e+01 -1.250000e+02 -3.000000e+00 + vertex -7.117365e+01 -1.249848e+02 -3.000000e+00 + vertex -7.250000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.117365e+01 -1.249848e+02 -3.000000e+00 + vertex -7.134202e+01 -1.249397e+02 -3.000000e+00 + vertex -7.250000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.134202e+01 -1.249397e+02 -3.000000e+00 + vertex -7.150000e+01 -1.248660e+02 -3.000000e+00 + vertex -7.250000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.150000e+01 -1.248660e+02 -3.000000e+00 + vertex -7.164279e+01 -1.247660e+02 -3.000000e+00 + vertex -7.250000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.164279e+01 -1.247660e+02 -3.000000e+00 + vertex -7.176604e+01 -1.246428e+02 -3.000000e+00 + vertex -7.250000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.176604e+01 -1.246428e+02 -3.000000e+00 + vertex -7.267365e+01 -1.249848e+02 -3.000000e+00 + vertex -7.250000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -1.000000e+00 0.000000e+00 + outer loop + vertex 7.100000e+01 -1.250000e+02 -3.000000e+00 + vertex -7.100000e+01 -1.250000e+02 0.000000e+00 + vertex -7.100000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.715528e-02 -9.961947e-01 -0.000000e+00 + outer loop + vertex -7.100000e+01 -1.250000e+02 0.000000e+00 + vertex -7.117365e+01 -1.249848e+02 0.000000e+00 + vertex -7.100000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.715528e-02 -9.961947e-01 -0.000000e+00 + outer loop + vertex -7.117365e+01 -1.249848e+02 0.000000e+00 + vertex -7.117365e+01 -1.249848e+02 -3.000000e+00 + vertex -7.100000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 -1.000000e+00 -0.000000e+00 + outer loop + vertex 7.100000e+01 -1.250000e+02 0.000000e+00 + vertex -7.100000e+01 -1.250000e+02 0.000000e+00 + vertex 7.100000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.250000e+01 -1.250000e+02 -3.000000e+00 + vertex 7.117365e+01 -1.249848e+02 -3.000000e+00 + vertex 7.100000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.715528e-02 -9.961947e-01 0.000000e+00 + outer loop + vertex 7.117365e+01 -1.249848e+02 -3.000000e+00 + vertex 7.100000e+01 -1.250000e+02 0.000000e+00 + vertex 7.100000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.176604e+01 -1.246428e+02 -3.000000e+00 + vertex 7.164279e+01 -1.247660e+02 -3.000000e+00 + vertex 7.250000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.164279e+01 -1.247660e+02 -3.000000e+00 + vertex 7.150000e+01 -1.248660e+02 -3.000000e+00 + vertex 7.250000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.150000e+01 -1.248660e+02 -3.000000e+00 + vertex 7.134202e+01 -1.249397e+02 -3.000000e+00 + vertex 7.250000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.134202e+01 -1.249397e+02 -3.000000e+00 + vertex 7.117365e+01 -1.249848e+02 -3.000000e+00 + vertex 7.250000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.186603e+01 -1.245000e+02 -3.000000e+00 + vertex 7.176604e+01 -1.246428e+02 -3.000000e+00 + vertex 7.250000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.267365e+01 -1.249848e+02 -3.000000e+00 + vertex 7.186603e+01 -1.245000e+02 -3.000000e+00 + vertex 7.250000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.715157e-02 -9.961951e-01 0.000000e+00 + outer loop + vertex 7.267365e+01 -1.249848e+02 -6.000000e+00 + vertex 7.267365e+01 -1.249848e+02 -3.000000e+00 + vertex 7.250000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.900000e+01 -1.250000e+02 -3.000000e+00 + vertex 7.882635e+01 -1.249848e+02 -3.000000e+00 + vertex 7.750000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.882635e+01 -1.249848e+02 -3.000000e+00 + vertex 7.865798e+01 -1.249397e+02 -3.000000e+00 + vertex 7.750000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.865798e+01 -1.249397e+02 -3.000000e+00 + vertex 7.850000e+01 -1.248660e+02 -3.000000e+00 + vertex 7.750000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.850000e+01 -1.248660e+02 -3.000000e+00 + vertex 7.835721e+01 -1.247660e+02 -3.000000e+00 + vertex 7.750000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.835721e+01 -1.247660e+02 -3.000000e+00 + vertex 7.823396e+01 -1.246428e+02 -3.000000e+00 + vertex 7.750000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.823396e+01 -1.246428e+02 -3.000000e+00 + vertex 7.732635e+01 -1.249848e+02 -3.000000e+00 + vertex 7.750000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.715157e-02 -9.961951e-01 -0.000000e+00 + outer loop + vertex 7.882635e+01 -1.249848e+02 0.000000e+00 + vertex 7.882635e+01 -1.249848e+02 -3.000000e+00 + vertex 7.900000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.715157e-02 -9.961951e-01 -0.000000e+00 + outer loop + vertex 7.900000e+01 -1.250000e+02 0.000000e+00 + vertex 7.882635e+01 -1.249848e+02 0.000000e+00 + vertex 7.900000e+01 -1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.243420e+02 -1.249397e+02 0.000000e+00 + vertex -1.241736e+02 -1.249848e+02 0.000000e+00 + vertex -1.240000e+02 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.250000e+02 -1.240000e+02 0.000000e+00 + vertex -1.249848e+02 -1.241736e+02 0.000000e+00 + vertex -1.240000e+02 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.249848e+02 -1.241736e+02 0.000000e+00 + vertex -1.249397e+02 -1.243420e+02 0.000000e+00 + vertex -1.240000e+02 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.249397e+02 -1.243420e+02 0.000000e+00 + vertex -1.248660e+02 -1.245000e+02 0.000000e+00 + vertex -1.240000e+02 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.248660e+02 -1.245000e+02 0.000000e+00 + vertex -1.247660e+02 -1.246428e+02 0.000000e+00 + vertex -1.240000e+02 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.247660e+02 -1.246428e+02 0.000000e+00 + vertex -1.246428e+02 -1.247660e+02 0.000000e+00 + vertex -1.240000e+02 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.246428e+02 -1.247660e+02 0.000000e+00 + vertex -1.245000e+02 -1.248660e+02 0.000000e+00 + vertex -1.240000e+02 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.245000e+02 -1.248660e+02 0.000000e+00 + vertex -1.243420e+02 -1.249397e+02 0.000000e+00 + vertex -1.240000e+02 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.800000e+01 -1.240000e+02 0.000000e+00 + vertex -1.250000e+02 -1.240000e+02 0.000000e+00 + vertex -1.240000e+02 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.900000e+01 -1.250000e+02 0.000000e+00 + vertex -7.800000e+01 -1.240000e+02 0.000000e+00 + vertex -1.240000e+02 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.882635e+01 -1.249848e+02 0.000000e+00 + vertex -7.800000e+01 -1.240000e+02 0.000000e+00 + vertex -7.900000e+01 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 8.715157e-02 -9.961951e-01 0.000000e+00 + outer loop + vertex -7.882635e+01 -1.249848e+02 -3.000000e+00 + vertex -7.882635e+01 -1.249848e+02 0.000000e+00 + vertex -7.900000e+01 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.204558e+01 -1.224791e+02 0.000000e+00 + vertex -7.117365e+01 -1.249848e+02 0.000000e+00 + vertex -7.100000e+01 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.200000e+01 -1.230000e+02 0.000000e+00 + vertex -7.204558e+01 -1.224791e+02 0.000000e+00 + vertex -7.100000e+01 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.100000e+01 -1.250000e+02 0.000000e+00 + vertex 7.200000e+01 -1.230000e+02 0.000000e+00 + vertex -7.100000e+01 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.200000e+01 -1.240000e+02 0.000000e+00 + vertex 7.200000e+01 -1.230000e+02 0.000000e+00 + vertex 7.100000e+01 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.117365e+01 -1.249848e+02 0.000000e+00 + vertex 7.200000e+01 -1.240000e+02 0.000000e+00 + vertex 7.100000e+01 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 8.715528e-02 -9.961947e-01 0.000000e+00 + outer loop + vertex 7.117365e+01 -1.249848e+02 -3.000000e+00 + vertex 7.117365e+01 -1.249848e+02 0.000000e+00 + vertex 7.100000e+01 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.865798e+01 -1.249397e+02 0.000000e+00 + vertex 7.882635e+01 -1.249848e+02 0.000000e+00 + vertex 7.900000e+01 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.800000e+01 -1.240000e+02 0.000000e+00 + vertex 7.801519e+01 -1.241736e+02 0.000000e+00 + vertex 7.900000e+01 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.801519e+01 -1.241736e+02 0.000000e+00 + vertex 7.806031e+01 -1.243420e+02 0.000000e+00 + vertex 7.900000e+01 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.806031e+01 -1.243420e+02 0.000000e+00 + vertex 7.813398e+01 -1.245000e+02 0.000000e+00 + vertex 7.900000e+01 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.813398e+01 -1.245000e+02 0.000000e+00 + vertex 7.823396e+01 -1.246428e+02 0.000000e+00 + vertex 7.900000e+01 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.823396e+01 -1.246428e+02 0.000000e+00 + vertex 7.835721e+01 -1.247660e+02 0.000000e+00 + vertex 7.900000e+01 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.835721e+01 -1.247660e+02 0.000000e+00 + vertex 7.850000e+01 -1.248660e+02 0.000000e+00 + vertex 7.900000e+01 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.850000e+01 -1.248660e+02 0.000000e+00 + vertex 7.865798e+01 -1.249397e+02 0.000000e+00 + vertex 7.900000e+01 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.250000e+02 -1.240000e+02 0.000000e+00 + vertex 7.800000e+01 -1.240000e+02 0.000000e+00 + vertex 7.900000e+01 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 1.240000e+02 -1.250000e+02 0.000000e+00 + vertex 1.250000e+02 -1.240000e+02 0.000000e+00 + vertex 7.900000e+01 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 1.241736e+02 -1.249848e+02 0.000000e+00 + vertex 1.250000e+02 -1.240000e+02 0.000000e+00 + vertex 1.240000e+02 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 8.715157e-02 -9.961951e-01 0.000000e+00 + outer loop + vertex 1.241736e+02 -1.249848e+02 -6.000000e+00 + vertex 1.241736e+02 -1.249848e+02 0.000000e+00 + vertex 1.240000e+02 -1.250000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.243420e+02 -1.249397e+02 -6.000000e+00 + vertex -1.250000e+02 -1.240000e+02 -6.000000e+00 + vertex -1.241736e+02 -1.249848e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588144e-01 -9.659271e-01 -0.000000e+00 + outer loop + vertex -1.241736e+02 -1.249848e+02 0.000000e+00 + vertex -1.243420e+02 -1.249397e+02 0.000000e+00 + vertex -1.241736e+02 -1.249848e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588144e-01 -9.659271e-01 -0.000000e+00 + outer loop + vertex -1.243420e+02 -1.249397e+02 0.000000e+00 + vertex -1.243420e+02 -1.249397e+02 -6.000000e+00 + vertex -1.241736e+02 -1.249848e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.640954e+01 -1.224870e+02 -6.000000e+00 + vertex -7.715798e+01 -1.249397e+02 -6.000000e+00 + vertex -7.732635e+01 -1.249848e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588144e-01 -9.659271e-01 0.000000e+00 + outer loop + vertex -7.715798e+01 -1.249397e+02 -6.000000e+00 + vertex -7.732635e+01 -1.249848e+02 -3.000000e+00 + vertex -7.732635e+01 -1.249848e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.284202e+01 -1.249397e+02 -6.000000e+00 + vertex -7.350000e+01 -1.240000e+02 -6.000000e+00 + vertex -7.267365e+01 -1.249848e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588144e-01 -9.659271e-01 -0.000000e+00 + outer loop + vertex -7.267365e+01 -1.249848e+02 -3.000000e+00 + vertex -7.284202e+01 -1.249397e+02 -3.000000e+00 + vertex -7.267365e+01 -1.249848e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588144e-01 -9.659271e-01 -0.000000e+00 + outer loop + vertex -7.284202e+01 -1.249397e+02 -3.000000e+00 + vertex -7.284202e+01 -1.249397e+02 -6.000000e+00 + vertex -7.267365e+01 -1.249848e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.359046e+01 -1.224870e+02 -6.000000e+00 + vertex 7.284202e+01 -1.249397e+02 -6.000000e+00 + vertex 7.267365e+01 -1.249848e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588144e-01 -9.659271e-01 0.000000e+00 + outer loop + vertex 7.284202e+01 -1.249397e+02 -6.000000e+00 + vertex 7.267365e+01 -1.249848e+02 -3.000000e+00 + vertex 7.267365e+01 -1.249848e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.715798e+01 -1.249397e+02 -6.000000e+00 + vertex 7.650000e+01 -1.240000e+02 -6.000000e+00 + vertex 7.732635e+01 -1.249848e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588144e-01 -9.659271e-01 -0.000000e+00 + outer loop + vertex 7.732635e+01 -1.249848e+02 -3.000000e+00 + vertex 7.715798e+01 -1.249397e+02 -3.000000e+00 + vertex 7.732635e+01 -1.249848e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588144e-01 -9.659271e-01 -0.000000e+00 + outer loop + vertex 7.715798e+01 -1.249397e+02 -3.000000e+00 + vertex 7.715798e+01 -1.249397e+02 -6.000000e+00 + vertex 7.732635e+01 -1.249848e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.526048e+01 1.215228e+02 -6.000000e+00 + vertex 1.243420e+02 -1.249397e+02 -6.000000e+00 + vertex 1.241736e+02 -1.249848e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588144e-01 -9.659271e-01 0.000000e+00 + outer loop + vertex 1.243420e+02 -1.249397e+02 -6.000000e+00 + vertex 1.241736e+02 -1.249848e+02 0.000000e+00 + vertex 1.241736e+02 -1.249848e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588037e-01 -9.659299e-01 0.000000e+00 + outer loop + vertex -7.865798e+01 -1.249397e+02 -3.000000e+00 + vertex -7.882635e+01 -1.249848e+02 0.000000e+00 + vertex -7.882635e+01 -1.249848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.806031e+01 -1.243420e+02 -3.000000e+00 + vertex -7.813398e+01 -1.245000e+02 -3.000000e+00 + vertex -7.732635e+01 -1.249848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.715798e+01 -1.249397e+02 -3.000000e+00 + vertex -7.806031e+01 -1.243420e+02 -3.000000e+00 + vertex -7.732635e+01 -1.249848e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588144e-01 -9.659271e-01 0.000000e+00 + outer loop + vertex -7.715798e+01 -1.249397e+02 -6.000000e+00 + vertex -7.715798e+01 -1.249397e+02 -3.000000e+00 + vertex -7.732635e+01 -1.249848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.176604e+01 -1.246428e+02 -3.000000e+00 + vertex -7.186603e+01 -1.245000e+02 -3.000000e+00 + vertex -7.267365e+01 -1.249848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.186603e+01 -1.245000e+02 -3.000000e+00 + vertex -7.284202e+01 -1.249397e+02 -3.000000e+00 + vertex -7.267365e+01 -1.249848e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588037e-01 -9.659299e-01 -0.000000e+00 + outer loop + vertex -7.117365e+01 -1.249848e+02 0.000000e+00 + vertex -7.134202e+01 -1.249397e+02 0.000000e+00 + vertex -7.117365e+01 -1.249848e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588037e-01 -9.659299e-01 -0.000000e+00 + outer loop + vertex -7.134202e+01 -1.249397e+02 0.000000e+00 + vertex -7.134202e+01 -1.249397e+02 -3.000000e+00 + vertex -7.117365e+01 -1.249848e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588037e-01 -9.659299e-01 0.000000e+00 + outer loop + vertex 7.134202e+01 -1.249397e+02 -3.000000e+00 + vertex 7.117365e+01 -1.249848e+02 0.000000e+00 + vertex 7.117365e+01 -1.249848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.193969e+01 -1.243420e+02 -3.000000e+00 + vertex 7.186603e+01 -1.245000e+02 -3.000000e+00 + vertex 7.267365e+01 -1.249848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.284202e+01 -1.249397e+02 -3.000000e+00 + vertex 7.193969e+01 -1.243420e+02 -3.000000e+00 + vertex 7.267365e+01 -1.249848e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588144e-01 -9.659271e-01 0.000000e+00 + outer loop + vertex 7.284202e+01 -1.249397e+02 -6.000000e+00 + vertex 7.284202e+01 -1.249397e+02 -3.000000e+00 + vertex 7.267365e+01 -1.249848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.823396e+01 -1.246428e+02 -3.000000e+00 + vertex 7.715798e+01 -1.249397e+02 -3.000000e+00 + vertex 7.732635e+01 -1.249848e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588037e-01 -9.659299e-01 -0.000000e+00 + outer loop + vertex 7.865798e+01 -1.249397e+02 0.000000e+00 + vertex 7.865798e+01 -1.249397e+02 -3.000000e+00 + vertex 7.882635e+01 -1.249848e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588037e-01 -9.659299e-01 -0.000000e+00 + outer loop + vertex 7.882635e+01 -1.249848e+02 0.000000e+00 + vertex 7.865798e+01 -1.249397e+02 0.000000e+00 + vertex 7.882635e+01 -1.249848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.865798e+01 -1.249397e+02 0.000000e+00 + vertex -7.800000e+01 -1.240000e+02 0.000000e+00 + vertex -7.882635e+01 -1.249848e+02 0.000000e+00 + endloop + endfacet + facet normal 2.588037e-01 -9.659299e-01 0.000000e+00 + outer loop + vertex -7.865798e+01 -1.249397e+02 -3.000000e+00 + vertex -7.865798e+01 -1.249397e+02 0.000000e+00 + vertex -7.882635e+01 -1.249848e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.204558e+01 -1.224791e+02 0.000000e+00 + vertex -7.134202e+01 -1.249397e+02 0.000000e+00 + vertex -7.117365e+01 -1.249848e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.134202e+01 -1.249397e+02 0.000000e+00 + vertex 7.200000e+01 -1.240000e+02 0.000000e+00 + vertex 7.117365e+01 -1.249848e+02 0.000000e+00 + endloop + endfacet + facet normal 2.588037e-01 -9.659299e-01 0.000000e+00 + outer loop + vertex 7.134202e+01 -1.249397e+02 -3.000000e+00 + vertex 7.134202e+01 -1.249397e+02 0.000000e+00 + vertex 7.117365e+01 -1.249848e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 1.243420e+02 -1.249397e+02 0.000000e+00 + vertex 1.250000e+02 -1.240000e+02 0.000000e+00 + vertex 1.241736e+02 -1.249848e+02 0.000000e+00 + endloop + endfacet + facet normal 2.588144e-01 -9.659271e-01 0.000000e+00 + outer loop + vertex 1.243420e+02 -1.249397e+02 -6.000000e+00 + vertex 1.243420e+02 -1.249397e+02 0.000000e+00 + vertex 1.241736e+02 -1.249848e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.245000e+02 -1.248660e+02 -6.000000e+00 + vertex -1.250000e+02 -1.240000e+02 -6.000000e+00 + vertex -1.243420e+02 -1.249397e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 -9.063010e-01 -0.000000e+00 + outer loop + vertex -1.243420e+02 -1.249397e+02 0.000000e+00 + vertex -1.245000e+02 -1.248660e+02 0.000000e+00 + vertex -1.243420e+02 -1.249397e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 -9.063010e-01 -0.000000e+00 + outer loop + vertex -1.245000e+02 -1.248660e+02 0.000000e+00 + vertex -1.245000e+02 -1.248660e+02 -6.000000e+00 + vertex -1.243420e+02 -1.249397e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.640954e+01 -1.224870e+02 -6.000000e+00 + vertex -7.647721e+01 -1.227395e+02 -6.000000e+00 + vertex -7.715798e+01 -1.249397e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.647721e+01 -1.227395e+02 -6.000000e+00 + vertex -7.700000e+01 -1.248660e+02 -6.000000e+00 + vertex -7.715798e+01 -1.249397e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 -9.063010e-01 0.000000e+00 + outer loop + vertex -7.700000e+01 -1.248660e+02 -6.000000e+00 + vertex -7.715798e+01 -1.249397e+02 -3.000000e+00 + vertex -7.715798e+01 -1.249397e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.300000e+01 -1.248660e+02 -6.000000e+00 + vertex -7.350000e+01 -1.240000e+02 -6.000000e+00 + vertex -7.284202e+01 -1.249397e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 -9.063010e-01 -0.000000e+00 + outer loop + vertex -7.284202e+01 -1.249397e+02 -3.000000e+00 + vertex -7.300000e+01 -1.248660e+02 -3.000000e+00 + vertex -7.284202e+01 -1.249397e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 -9.063010e-01 -0.000000e+00 + outer loop + vertex -7.300000e+01 -1.248660e+02 -3.000000e+00 + vertex -7.300000e+01 -1.248660e+02 -6.000000e+00 + vertex -7.284202e+01 -1.249397e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.359046e+01 -1.224870e+02 -6.000000e+00 + vertex 7.352279e+01 -1.227395e+02 -6.000000e+00 + vertex 7.284202e+01 -1.249397e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.352279e+01 -1.227395e+02 -6.000000e+00 + vertex 7.300000e+01 -1.248660e+02 -6.000000e+00 + vertex 7.284202e+01 -1.249397e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 -9.063010e-01 0.000000e+00 + outer loop + vertex 7.300000e+01 -1.248660e+02 -6.000000e+00 + vertex 7.284202e+01 -1.249397e+02 -3.000000e+00 + vertex 7.284202e+01 -1.249397e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.700000e+01 -1.248660e+02 -6.000000e+00 + vertex 7.650000e+01 -1.240000e+02 -6.000000e+00 + vertex 7.715798e+01 -1.249397e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 -9.063010e-01 -0.000000e+00 + outer loop + vertex 7.715798e+01 -1.249397e+02 -3.000000e+00 + vertex 7.700000e+01 -1.248660e+02 -3.000000e+00 + vertex 7.715798e+01 -1.249397e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 -9.063010e-01 -0.000000e+00 + outer loop + vertex 7.700000e+01 -1.248660e+02 -3.000000e+00 + vertex 7.700000e+01 -1.248660e+02 -6.000000e+00 + vertex 7.715798e+01 -1.249397e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.526048e+01 1.215228e+02 -6.000000e+00 + vertex 1.245000e+02 -1.248660e+02 -6.000000e+00 + vertex 1.243420e+02 -1.249397e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 -9.063010e-01 0.000000e+00 + outer loop + vertex 1.245000e+02 -1.248660e+02 -6.000000e+00 + vertex 1.243420e+02 -1.249397e+02 0.000000e+00 + vertex 1.243420e+02 -1.249397e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226491e-01 -9.062934e-01 0.000000e+00 + outer loop + vertex -7.850000e+01 -1.248660e+02 -3.000000e+00 + vertex -7.865798e+01 -1.249397e+02 0.000000e+00 + vertex -7.865798e+01 -1.249397e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.700000e+01 -1.248660e+02 -3.000000e+00 + vertex -7.806031e+01 -1.243420e+02 -3.000000e+00 + vertex -7.715798e+01 -1.249397e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 -9.063010e-01 0.000000e+00 + outer loop + vertex -7.700000e+01 -1.248660e+02 -6.000000e+00 + vertex -7.700000e+01 -1.248660e+02 -3.000000e+00 + vertex -7.715798e+01 -1.249397e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.186603e+01 -1.245000e+02 -3.000000e+00 + vertex -7.193969e+01 -1.243420e+02 -3.000000e+00 + vertex -7.284202e+01 -1.249397e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.193969e+01 -1.243420e+02 -3.000000e+00 + vertex -7.300000e+01 -1.248660e+02 -3.000000e+00 + vertex -7.284202e+01 -1.249397e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 -9.063010e-01 -0.000000e+00 + outer loop + vertex -7.134202e+01 -1.249397e+02 0.000000e+00 + vertex -7.150000e+01 -1.248660e+02 0.000000e+00 + vertex -7.134202e+01 -1.249397e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 -9.063010e-01 -0.000000e+00 + outer loop + vertex -7.150000e+01 -1.248660e+02 0.000000e+00 + vertex -7.150000e+01 -1.248660e+02 -3.000000e+00 + vertex -7.134202e+01 -1.249397e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 -9.063010e-01 0.000000e+00 + outer loop + vertex 7.150000e+01 -1.248660e+02 -3.000000e+00 + vertex 7.134202e+01 -1.249397e+02 0.000000e+00 + vertex 7.134202e+01 -1.249397e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.300000e+01 -1.248660e+02 -3.000000e+00 + vertex 7.193969e+01 -1.243420e+02 -3.000000e+00 + vertex 7.284202e+01 -1.249397e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 -9.063010e-01 0.000000e+00 + outer loop + vertex 7.300000e+01 -1.248660e+02 -6.000000e+00 + vertex 7.300000e+01 -1.248660e+02 -3.000000e+00 + vertex 7.284202e+01 -1.249397e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.823396e+01 -1.246428e+02 -3.000000e+00 + vertex 7.700000e+01 -1.248660e+02 -3.000000e+00 + vertex 7.715798e+01 -1.249397e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226491e-01 -9.062934e-01 -0.000000e+00 + outer loop + vertex 7.850000e+01 -1.248660e+02 0.000000e+00 + vertex 7.850000e+01 -1.248660e+02 -3.000000e+00 + vertex 7.865798e+01 -1.249397e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226491e-01 -9.062934e-01 -0.000000e+00 + outer loop + vertex 7.865798e+01 -1.249397e+02 0.000000e+00 + vertex 7.850000e+01 -1.248660e+02 0.000000e+00 + vertex 7.865798e+01 -1.249397e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.850000e+01 -1.248660e+02 0.000000e+00 + vertex -7.800000e+01 -1.240000e+02 0.000000e+00 + vertex -7.865798e+01 -1.249397e+02 0.000000e+00 + endloop + endfacet + facet normal 4.226491e-01 -9.062934e-01 0.000000e+00 + outer loop + vertex -7.850000e+01 -1.248660e+02 -3.000000e+00 + vertex -7.850000e+01 -1.248660e+02 0.000000e+00 + vertex -7.865798e+01 -1.249397e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.204558e+01 -1.224791e+02 0.000000e+00 + vertex -7.150000e+01 -1.248660e+02 0.000000e+00 + vertex -7.134202e+01 -1.249397e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.150000e+01 -1.248660e+02 0.000000e+00 + vertex 7.200000e+01 -1.240000e+02 0.000000e+00 + vertex 7.134202e+01 -1.249397e+02 0.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 -9.063010e-01 0.000000e+00 + outer loop + vertex 7.150000e+01 -1.248660e+02 -3.000000e+00 + vertex 7.150000e+01 -1.248660e+02 0.000000e+00 + vertex 7.134202e+01 -1.249397e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 1.245000e+02 -1.248660e+02 0.000000e+00 + vertex 1.250000e+02 -1.240000e+02 0.000000e+00 + vertex 1.243420e+02 -1.249397e+02 0.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 -9.063010e-01 0.000000e+00 + outer loop + vertex 1.245000e+02 -1.248660e+02 -6.000000e+00 + vertex 1.245000e+02 -1.248660e+02 0.000000e+00 + vertex 1.243420e+02 -1.249397e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.246428e+02 -1.247660e+02 -6.000000e+00 + vertex -1.250000e+02 -1.240000e+02 -6.000000e+00 + vertex -1.245000e+02 -1.248660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735627e-01 -8.191616e-01 -0.000000e+00 + outer loop + vertex -1.245000e+02 -1.248660e+02 0.000000e+00 + vertex -1.246428e+02 -1.247660e+02 0.000000e+00 + vertex -1.245000e+02 -1.248660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735627e-01 -8.191616e-01 -0.000000e+00 + outer loop + vertex -1.246428e+02 -1.247660e+02 0.000000e+00 + vertex -1.246428e+02 -1.247660e+02 -6.000000e+00 + vertex -1.245000e+02 -1.248660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.647721e+01 -1.227395e+02 -6.000000e+00 + vertex -7.685721e+01 -1.247660e+02 -6.000000e+00 + vertex -7.700000e+01 -1.248660e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735627e-01 -8.191616e-01 0.000000e+00 + outer loop + vertex -7.685721e+01 -1.247660e+02 -6.000000e+00 + vertex -7.700000e+01 -1.248660e+02 -3.000000e+00 + vertex -7.700000e+01 -1.248660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.314279e+01 -1.247660e+02 -6.000000e+00 + vertex -7.350000e+01 -1.240000e+02 -6.000000e+00 + vertex -7.300000e+01 -1.248660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735627e-01 -8.191616e-01 -0.000000e+00 + outer loop + vertex -7.300000e+01 -1.248660e+02 -3.000000e+00 + vertex -7.314279e+01 -1.247660e+02 -3.000000e+00 + vertex -7.300000e+01 -1.248660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735627e-01 -8.191616e-01 -0.000000e+00 + outer loop + vertex -7.314279e+01 -1.247660e+02 -3.000000e+00 + vertex -7.314279e+01 -1.247660e+02 -6.000000e+00 + vertex -7.300000e+01 -1.248660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.352279e+01 -1.227395e+02 -6.000000e+00 + vertex 7.314279e+01 -1.247660e+02 -6.000000e+00 + vertex 7.300000e+01 -1.248660e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735627e-01 -8.191616e-01 0.000000e+00 + outer loop + vertex 7.314279e+01 -1.247660e+02 -6.000000e+00 + vertex 7.300000e+01 -1.248660e+02 -3.000000e+00 + vertex 7.300000e+01 -1.248660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.685721e+01 -1.247660e+02 -6.000000e+00 + vertex 7.650000e+01 -1.240000e+02 -6.000000e+00 + vertex 7.700000e+01 -1.248660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735627e-01 -8.191616e-01 -0.000000e+00 + outer loop + vertex 7.700000e+01 -1.248660e+02 -3.000000e+00 + vertex 7.685721e+01 -1.247660e+02 -3.000000e+00 + vertex 7.700000e+01 -1.248660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735627e-01 -8.191616e-01 -0.000000e+00 + outer loop + vertex 7.685721e+01 -1.247660e+02 -3.000000e+00 + vertex 7.685721e+01 -1.247660e+02 -6.000000e+00 + vertex 7.700000e+01 -1.248660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.526048e+01 1.215228e+02 -6.000000e+00 + vertex 1.246428e+02 -1.247660e+02 -6.000000e+00 + vertex 1.245000e+02 -1.248660e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735627e-01 -8.191616e-01 0.000000e+00 + outer loop + vertex 1.246428e+02 -1.247660e+02 -6.000000e+00 + vertex 1.245000e+02 -1.248660e+02 0.000000e+00 + vertex 1.245000e+02 -1.248660e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735627e-01 -8.191616e-01 0.000000e+00 + outer loop + vertex -7.835721e+01 -1.247660e+02 -3.000000e+00 + vertex -7.850000e+01 -1.248660e+02 0.000000e+00 + vertex -7.850000e+01 -1.248660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.685721e+01 -1.247660e+02 -3.000000e+00 + vertex -7.806031e+01 -1.243420e+02 -3.000000e+00 + vertex -7.700000e+01 -1.248660e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735627e-01 -8.191616e-01 0.000000e+00 + outer loop + vertex -7.685721e+01 -1.247660e+02 -6.000000e+00 + vertex -7.685721e+01 -1.247660e+02 -3.000000e+00 + vertex -7.700000e+01 -1.248660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.193969e+01 -1.243420e+02 -3.000000e+00 + vertex -7.314279e+01 -1.247660e+02 -3.000000e+00 + vertex -7.300000e+01 -1.248660e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735828e-01 -8.191476e-01 -0.000000e+00 + outer loop + vertex -7.150000e+01 -1.248660e+02 0.000000e+00 + vertex -7.164279e+01 -1.247660e+02 0.000000e+00 + vertex -7.150000e+01 -1.248660e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735828e-01 -8.191476e-01 -0.000000e+00 + outer loop + vertex -7.164279e+01 -1.247660e+02 0.000000e+00 + vertex -7.164279e+01 -1.247660e+02 -3.000000e+00 + vertex -7.150000e+01 -1.248660e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735828e-01 -8.191476e-01 0.000000e+00 + outer loop + vertex 7.164279e+01 -1.247660e+02 -3.000000e+00 + vertex 7.150000e+01 -1.248660e+02 0.000000e+00 + vertex 7.150000e+01 -1.248660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.314279e+01 -1.247660e+02 -3.000000e+00 + vertex 7.193969e+01 -1.243420e+02 -3.000000e+00 + vertex 7.300000e+01 -1.248660e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735627e-01 -8.191616e-01 0.000000e+00 + outer loop + vertex 7.314279e+01 -1.247660e+02 -6.000000e+00 + vertex 7.314279e+01 -1.247660e+02 -3.000000e+00 + vertex 7.300000e+01 -1.248660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.823396e+01 -1.246428e+02 -3.000000e+00 + vertex 7.685721e+01 -1.247660e+02 -3.000000e+00 + vertex 7.700000e+01 -1.248660e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735627e-01 -8.191616e-01 -0.000000e+00 + outer loop + vertex 7.835721e+01 -1.247660e+02 0.000000e+00 + vertex 7.835721e+01 -1.247660e+02 -3.000000e+00 + vertex 7.850000e+01 -1.248660e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735627e-01 -8.191616e-01 -0.000000e+00 + outer loop + vertex 7.850000e+01 -1.248660e+02 0.000000e+00 + vertex 7.835721e+01 -1.247660e+02 0.000000e+00 + vertex 7.850000e+01 -1.248660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.835721e+01 -1.247660e+02 0.000000e+00 + vertex -7.800000e+01 -1.240000e+02 0.000000e+00 + vertex -7.850000e+01 -1.248660e+02 0.000000e+00 + endloop + endfacet + facet normal 5.735627e-01 -8.191616e-01 0.000000e+00 + outer loop + vertex -7.835721e+01 -1.247660e+02 -3.000000e+00 + vertex -7.835721e+01 -1.247660e+02 0.000000e+00 + vertex -7.850000e+01 -1.248660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.204558e+01 -1.224791e+02 0.000000e+00 + vertex -7.164279e+01 -1.247660e+02 0.000000e+00 + vertex -7.150000e+01 -1.248660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.164279e+01 -1.247660e+02 0.000000e+00 + vertex 7.200000e+01 -1.240000e+02 0.000000e+00 + vertex 7.150000e+01 -1.248660e+02 0.000000e+00 + endloop + endfacet + facet normal 5.735828e-01 -8.191476e-01 0.000000e+00 + outer loop + vertex 7.164279e+01 -1.247660e+02 -3.000000e+00 + vertex 7.164279e+01 -1.247660e+02 0.000000e+00 + vertex 7.150000e+01 -1.248660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 1.246428e+02 -1.247660e+02 0.000000e+00 + vertex 1.250000e+02 -1.240000e+02 0.000000e+00 + vertex 1.245000e+02 -1.248660e+02 0.000000e+00 + endloop + endfacet + facet normal 5.735627e-01 -8.191616e-01 0.000000e+00 + outer loop + vertex 1.246428e+02 -1.247660e+02 -6.000000e+00 + vertex 1.246428e+02 -1.247660e+02 0.000000e+00 + vertex 1.245000e+02 -1.248660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.247660e+02 -1.246428e+02 -6.000000e+00 + vertex -1.250000e+02 -1.240000e+02 -6.000000e+00 + vertex -1.246428e+02 -1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex -1.246428e+02 -1.247660e+02 0.000000e+00 + vertex -1.247660e+02 -1.246428e+02 0.000000e+00 + vertex -1.246428e+02 -1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex -1.247660e+02 -1.246428e+02 0.000000e+00 + vertex -1.247660e+02 -1.246428e+02 -6.000000e+00 + vertex -1.246428e+02 -1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.647721e+01 -1.227395e+02 -6.000000e+00 + vertex -7.673395e+01 -1.246428e+02 -6.000000e+00 + vertex -7.685721e+01 -1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex -7.673395e+01 -1.246428e+02 -6.000000e+00 + vertex -7.685721e+01 -1.247660e+02 -3.000000e+00 + vertex -7.685721e+01 -1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.326604e+01 -1.246428e+02 -6.000000e+00 + vertex -7.336602e+01 -1.245000e+02 -6.000000e+00 + vertex -7.314279e+01 -1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.336602e+01 -1.245000e+02 -6.000000e+00 + vertex -7.343969e+01 -1.243420e+02 -6.000000e+00 + vertex -7.314279e+01 -1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.343969e+01 -1.243420e+02 -6.000000e+00 + vertex -7.348481e+01 -1.241736e+02 -6.000000e+00 + vertex -7.314279e+01 -1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.348481e+01 -1.241736e+02 -6.000000e+00 + vertex -7.350000e+01 -1.240000e+02 -6.000000e+00 + vertex -7.314279e+01 -1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex -7.314279e+01 -1.247660e+02 -3.000000e+00 + vertex -7.326604e+01 -1.246428e+02 -3.000000e+00 + vertex -7.314279e+01 -1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex -7.326604e+01 -1.246428e+02 -3.000000e+00 + vertex -7.326604e+01 -1.246428e+02 -6.000000e+00 + vertex -7.314279e+01 -1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.352279e+01 -1.227395e+02 -6.000000e+00 + vertex 7.326604e+01 -1.246428e+02 -6.000000e+00 + vertex 7.314279e+01 -1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex 7.326604e+01 -1.246428e+02 -6.000000e+00 + vertex 7.314279e+01 -1.247660e+02 -3.000000e+00 + vertex 7.314279e+01 -1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.673395e+01 -1.246428e+02 -6.000000e+00 + vertex 7.663397e+01 -1.245000e+02 -6.000000e+00 + vertex 7.685721e+01 -1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.663397e+01 -1.245000e+02 -6.000000e+00 + vertex 7.656031e+01 -1.243420e+02 -6.000000e+00 + vertex 7.685721e+01 -1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.656031e+01 -1.243420e+02 -6.000000e+00 + vertex 7.651519e+01 -1.241736e+02 -6.000000e+00 + vertex 7.685721e+01 -1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.651519e+01 -1.241736e+02 -6.000000e+00 + vertex 7.650000e+01 -1.240000e+02 -6.000000e+00 + vertex 7.685721e+01 -1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex 7.685721e+01 -1.247660e+02 -3.000000e+00 + vertex 7.673395e+01 -1.246428e+02 -3.000000e+00 + vertex 7.685721e+01 -1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex 7.673395e+01 -1.246428e+02 -3.000000e+00 + vertex 7.673395e+01 -1.246428e+02 -6.000000e+00 + vertex 7.685721e+01 -1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.526048e+01 1.215228e+02 -6.000000e+00 + vertex 1.247660e+02 -1.246428e+02 -6.000000e+00 + vertex 1.246428e+02 -1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex 1.247660e+02 -1.246428e+02 -6.000000e+00 + vertex 1.246428e+02 -1.247660e+02 0.000000e+00 + vertex 1.246428e+02 -1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex -7.823396e+01 -1.246428e+02 -3.000000e+00 + vertex -7.835721e+01 -1.247660e+02 0.000000e+00 + vertex -7.835721e+01 -1.247660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.673395e+01 -1.246428e+02 -3.000000e+00 + vertex -7.806031e+01 -1.243420e+02 -3.000000e+00 + vertex -7.685721e+01 -1.247660e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex -7.673395e+01 -1.246428e+02 -6.000000e+00 + vertex -7.673395e+01 -1.246428e+02 -3.000000e+00 + vertex -7.685721e+01 -1.247660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.193969e+01 -1.243420e+02 -3.000000e+00 + vertex -7.326604e+01 -1.246428e+02 -3.000000e+00 + vertex -7.314279e+01 -1.247660e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex -7.164279e+01 -1.247660e+02 0.000000e+00 + vertex -7.176604e+01 -1.246428e+02 0.000000e+00 + vertex -7.164279e+01 -1.247660e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex -7.176604e+01 -1.246428e+02 0.000000e+00 + vertex -7.176604e+01 -1.246428e+02 -3.000000e+00 + vertex -7.164279e+01 -1.247660e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex 7.176604e+01 -1.246428e+02 -3.000000e+00 + vertex 7.164279e+01 -1.247660e+02 0.000000e+00 + vertex 7.164279e+01 -1.247660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.326604e+01 -1.246428e+02 -3.000000e+00 + vertex 7.193969e+01 -1.243420e+02 -3.000000e+00 + vertex 7.314279e+01 -1.247660e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex 7.326604e+01 -1.246428e+02 -6.000000e+00 + vertex 7.326604e+01 -1.246428e+02 -3.000000e+00 + vertex 7.314279e+01 -1.247660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.823396e+01 -1.246428e+02 -3.000000e+00 + vertex 7.673395e+01 -1.246428e+02 -3.000000e+00 + vertex 7.685721e+01 -1.247660e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex 7.823396e+01 -1.246428e+02 0.000000e+00 + vertex 7.823396e+01 -1.246428e+02 -3.000000e+00 + vertex 7.835721e+01 -1.247660e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex 7.835721e+01 -1.247660e+02 0.000000e+00 + vertex 7.823396e+01 -1.246428e+02 0.000000e+00 + vertex 7.835721e+01 -1.247660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.823396e+01 -1.246428e+02 0.000000e+00 + vertex -7.800000e+01 -1.240000e+02 0.000000e+00 + vertex -7.835721e+01 -1.247660e+02 0.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex -7.823396e+01 -1.246428e+02 -3.000000e+00 + vertex -7.823396e+01 -1.246428e+02 0.000000e+00 + vertex -7.835721e+01 -1.247660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.204558e+01 -1.224791e+02 0.000000e+00 + vertex -7.176604e+01 -1.246428e+02 0.000000e+00 + vertex -7.164279e+01 -1.247660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.176604e+01 -1.246428e+02 0.000000e+00 + vertex 7.200000e+01 -1.240000e+02 0.000000e+00 + vertex 7.164279e+01 -1.247660e+02 0.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex 7.176604e+01 -1.246428e+02 -3.000000e+00 + vertex 7.176604e+01 -1.246428e+02 0.000000e+00 + vertex 7.164279e+01 -1.247660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 1.247660e+02 -1.246428e+02 0.000000e+00 + vertex 1.250000e+02 -1.240000e+02 0.000000e+00 + vertex 1.246428e+02 -1.247660e+02 0.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex 1.247660e+02 -1.246428e+02 -6.000000e+00 + vertex 1.247660e+02 -1.246428e+02 0.000000e+00 + vertex 1.246428e+02 -1.247660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.248660e+02 -1.245000e+02 -6.000000e+00 + vertex -1.250000e+02 -1.240000e+02 -6.000000e+00 + vertex -1.247660e+02 -1.246428e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191616e-01 -5.735627e-01 -0.000000e+00 + outer loop + vertex -1.247660e+02 -1.246428e+02 0.000000e+00 + vertex -1.248660e+02 -1.245000e+02 0.000000e+00 + vertex -1.247660e+02 -1.246428e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191616e-01 -5.735627e-01 -0.000000e+00 + outer loop + vertex -1.248660e+02 -1.245000e+02 0.000000e+00 + vertex -1.248660e+02 -1.245000e+02 -6.000000e+00 + vertex -1.247660e+02 -1.246428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.647721e+01 -1.227395e+02 -6.000000e+00 + vertex -7.650000e+01 -1.230000e+02 -6.000000e+00 + vertex -7.673395e+01 -1.246428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.650000e+01 -1.230000e+02 -6.000000e+00 + vertex -7.650000e+01 -1.240000e+02 -6.000000e+00 + vertex -7.673395e+01 -1.246428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.650000e+01 -1.240000e+02 -6.000000e+00 + vertex -7.663397e+01 -1.245000e+02 -6.000000e+00 + vertex -7.673395e+01 -1.246428e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191616e-01 -5.735627e-01 0.000000e+00 + outer loop + vertex -7.663397e+01 -1.245000e+02 -6.000000e+00 + vertex -7.673395e+01 -1.246428e+02 -3.000000e+00 + vertex -7.673395e+01 -1.246428e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191616e-01 -5.735627e-01 -0.000000e+00 + outer loop + vertex -7.326604e+01 -1.246428e+02 -3.000000e+00 + vertex -7.336602e+01 -1.245000e+02 -3.000000e+00 + vertex -7.326604e+01 -1.246428e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191616e-01 -5.735627e-01 -0.000000e+00 + outer loop + vertex -7.336602e+01 -1.245000e+02 -3.000000e+00 + vertex -7.336602e+01 -1.245000e+02 -6.000000e+00 + vertex -7.326604e+01 -1.246428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.352279e+01 -1.227395e+02 -6.000000e+00 + vertex 7.350000e+01 -1.230000e+02 -6.000000e+00 + vertex 7.326604e+01 -1.246428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.350000e+01 -1.230000e+02 -6.000000e+00 + vertex 7.350000e+01 -1.240000e+02 -6.000000e+00 + vertex 7.326604e+01 -1.246428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.350000e+01 -1.240000e+02 -6.000000e+00 + vertex 7.348481e+01 -1.241736e+02 -6.000000e+00 + vertex 7.326604e+01 -1.246428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.348481e+01 -1.241736e+02 -6.000000e+00 + vertex 7.336602e+01 -1.245000e+02 -6.000000e+00 + vertex 7.326604e+01 -1.246428e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191616e-01 -5.735627e-01 0.000000e+00 + outer loop + vertex 7.336602e+01 -1.245000e+02 -6.000000e+00 + vertex 7.326604e+01 -1.246428e+02 -3.000000e+00 + vertex 7.326604e+01 -1.246428e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191616e-01 -5.735627e-01 -0.000000e+00 + outer loop + vertex 7.673395e+01 -1.246428e+02 -3.000000e+00 + vertex 7.663397e+01 -1.245000e+02 -3.000000e+00 + vertex 7.673395e+01 -1.246428e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191616e-01 -5.735627e-01 -0.000000e+00 + outer loop + vertex 7.663397e+01 -1.245000e+02 -3.000000e+00 + vertex 7.663397e+01 -1.245000e+02 -6.000000e+00 + vertex 7.673395e+01 -1.246428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.526048e+01 1.215228e+02 -6.000000e+00 + vertex 1.248660e+02 -1.245000e+02 -6.000000e+00 + vertex 1.247660e+02 -1.246428e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191616e-01 -5.735627e-01 0.000000e+00 + outer loop + vertex 1.248660e+02 -1.245000e+02 -6.000000e+00 + vertex 1.247660e+02 -1.246428e+02 0.000000e+00 + vertex 1.247660e+02 -1.246428e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191616e-01 -5.735627e-01 0.000000e+00 + outer loop + vertex -7.813398e+01 -1.245000e+02 -3.000000e+00 + vertex -7.823396e+01 -1.246428e+02 0.000000e+00 + vertex -7.823396e+01 -1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.801519e+01 -1.241736e+02 -3.000000e+00 + vertex -7.806031e+01 -1.243420e+02 -3.000000e+00 + vertex -7.673395e+01 -1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.663397e+01 -1.245000e+02 -3.000000e+00 + vertex -7.801519e+01 -1.241736e+02 -3.000000e+00 + vertex -7.673395e+01 -1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191616e-01 -5.735627e-01 0.000000e+00 + outer loop + vertex -7.663397e+01 -1.245000e+02 -6.000000e+00 + vertex -7.663397e+01 -1.245000e+02 -3.000000e+00 + vertex -7.673395e+01 -1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.193969e+01 -1.243420e+02 -3.000000e+00 + vertex -7.198481e+01 -1.241736e+02 -3.000000e+00 + vertex -7.326604e+01 -1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.198481e+01 -1.241736e+02 -3.000000e+00 + vertex -7.336602e+01 -1.245000e+02 -3.000000e+00 + vertex -7.326604e+01 -1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191416e-01 -5.735914e-01 -0.000000e+00 + outer loop + vertex -7.176604e+01 -1.246428e+02 0.000000e+00 + vertex -7.186603e+01 -1.245000e+02 0.000000e+00 + vertex -7.176604e+01 -1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191416e-01 -5.735914e-01 -0.000000e+00 + outer loop + vertex -7.186603e+01 -1.245000e+02 0.000000e+00 + vertex -7.186603e+01 -1.245000e+02 -3.000000e+00 + vertex -7.176604e+01 -1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191416e-01 -5.735914e-01 0.000000e+00 + outer loop + vertex 7.186603e+01 -1.245000e+02 -3.000000e+00 + vertex 7.176604e+01 -1.246428e+02 0.000000e+00 + vertex 7.176604e+01 -1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.198481e+01 -1.241736e+02 -3.000000e+00 + vertex 7.193969e+01 -1.243420e+02 -3.000000e+00 + vertex 7.326604e+01 -1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.336602e+01 -1.245000e+02 -3.000000e+00 + vertex 7.198481e+01 -1.241736e+02 -3.000000e+00 + vertex 7.326604e+01 -1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191616e-01 -5.735627e-01 0.000000e+00 + outer loop + vertex 7.336602e+01 -1.245000e+02 -6.000000e+00 + vertex 7.336602e+01 -1.245000e+02 -3.000000e+00 + vertex 7.326604e+01 -1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.823396e+01 -1.246428e+02 -3.000000e+00 + vertex 7.663397e+01 -1.245000e+02 -3.000000e+00 + vertex 7.673395e+01 -1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.629904e+01 -1.222500e+02 -3.000000e+00 + vertex 7.640954e+01 -1.224870e+02 -3.000000e+00 + vertex 7.823396e+01 -1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.813398e+01 -1.245000e+02 -3.000000e+00 + vertex 7.629904e+01 -1.222500e+02 -3.000000e+00 + vertex 7.823396e+01 -1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.640954e+01 -1.224870e+02 -3.000000e+00 + vertex 7.647721e+01 -1.227395e+02 -3.000000e+00 + vertex 7.823396e+01 -1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.647721e+01 -1.227395e+02 -3.000000e+00 + vertex 7.650000e+01 -1.230000e+02 -3.000000e+00 + vertex 7.823396e+01 -1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.650000e+01 -1.230000e+02 -3.000000e+00 + vertex 7.650000e+01 -1.240000e+02 -3.000000e+00 + vertex 7.823396e+01 -1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.650000e+01 -1.240000e+02 -3.000000e+00 + vertex 7.651519e+01 -1.241736e+02 -3.000000e+00 + vertex 7.823396e+01 -1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.651519e+01 -1.241736e+02 -3.000000e+00 + vertex 7.656031e+01 -1.243420e+02 -3.000000e+00 + vertex 7.823396e+01 -1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.656031e+01 -1.243420e+02 -3.000000e+00 + vertex 7.663397e+01 -1.245000e+02 -3.000000e+00 + vertex 7.823396e+01 -1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191616e-01 -5.735627e-01 -0.000000e+00 + outer loop + vertex 7.813398e+01 -1.245000e+02 0.000000e+00 + vertex 7.813398e+01 -1.245000e+02 -3.000000e+00 + vertex 7.823396e+01 -1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191616e-01 -5.735627e-01 -0.000000e+00 + outer loop + vertex 7.823396e+01 -1.246428e+02 0.000000e+00 + vertex 7.813398e+01 -1.245000e+02 0.000000e+00 + vertex 7.823396e+01 -1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.813398e+01 -1.245000e+02 0.000000e+00 + vertex -7.800000e+01 -1.240000e+02 0.000000e+00 + vertex -7.823396e+01 -1.246428e+02 0.000000e+00 + endloop + endfacet + facet normal 8.191616e-01 -5.735627e-01 0.000000e+00 + outer loop + vertex -7.813398e+01 -1.245000e+02 -3.000000e+00 + vertex -7.813398e+01 -1.245000e+02 0.000000e+00 + vertex -7.823396e+01 -1.246428e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.204558e+01 -1.224791e+02 0.000000e+00 + vertex -7.200000e+01 -1.230000e+02 0.000000e+00 + vertex -7.176604e+01 -1.246428e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 -1.230000e+02 0.000000e+00 + vertex -7.200000e+01 -1.240000e+02 0.000000e+00 + vertex -7.176604e+01 -1.246428e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 -1.240000e+02 0.000000e+00 + vertex -7.198481e+01 -1.241736e+02 0.000000e+00 + vertex -7.176604e+01 -1.246428e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.198481e+01 -1.241736e+02 0.000000e+00 + vertex -7.186603e+01 -1.245000e+02 0.000000e+00 + vertex -7.176604e+01 -1.246428e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.186603e+01 -1.245000e+02 0.000000e+00 + vertex 7.200000e+01 -1.240000e+02 0.000000e+00 + vertex 7.176604e+01 -1.246428e+02 0.000000e+00 + endloop + endfacet + facet normal 8.191416e-01 -5.735914e-01 0.000000e+00 + outer loop + vertex 7.186603e+01 -1.245000e+02 -3.000000e+00 + vertex 7.186603e+01 -1.245000e+02 0.000000e+00 + vertex 7.176604e+01 -1.246428e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 1.248660e+02 -1.245000e+02 0.000000e+00 + vertex 1.250000e+02 -1.240000e+02 0.000000e+00 + vertex 1.247660e+02 -1.246428e+02 0.000000e+00 + endloop + endfacet + facet normal 8.191616e-01 -5.735627e-01 0.000000e+00 + outer loop + vertex 1.248660e+02 -1.245000e+02 -6.000000e+00 + vertex 1.248660e+02 -1.245000e+02 0.000000e+00 + vertex 1.247660e+02 -1.246428e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.249397e+02 -1.243420e+02 -6.000000e+00 + vertex -1.250000e+02 -1.240000e+02 -6.000000e+00 + vertex -1.248660e+02 -1.245000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 -4.226327e-01 -0.000000e+00 + outer loop + vertex -1.248660e+02 -1.245000e+02 0.000000e+00 + vertex -1.249397e+02 -1.243420e+02 0.000000e+00 + vertex -1.248660e+02 -1.245000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 -4.226327e-01 -0.000000e+00 + outer loop + vertex -1.249397e+02 -1.243420e+02 0.000000e+00 + vertex -1.249397e+02 -1.243420e+02 -6.000000e+00 + vertex -1.248660e+02 -1.245000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.650000e+01 -1.240000e+02 -6.000000e+00 + vertex -7.656031e+01 -1.243420e+02 -6.000000e+00 + vertex -7.663397e+01 -1.245000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063174e-01 -4.225976e-01 0.000000e+00 + outer loop + vertex -7.656031e+01 -1.243420e+02 -6.000000e+00 + vertex -7.663397e+01 -1.245000e+02 -3.000000e+00 + vertex -7.663397e+01 -1.245000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 -4.226327e-01 -0.000000e+00 + outer loop + vertex -7.336602e+01 -1.245000e+02 -3.000000e+00 + vertex -7.343969e+01 -1.243420e+02 -3.000000e+00 + vertex -7.336602e+01 -1.245000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 -4.226327e-01 -0.000000e+00 + outer loop + vertex -7.343969e+01 -1.243420e+02 -3.000000e+00 + vertex -7.343969e+01 -1.243420e+02 -6.000000e+00 + vertex -7.336602e+01 -1.245000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.348481e+01 -1.241736e+02 -6.000000e+00 + vertex 7.343969e+01 -1.243420e+02 -6.000000e+00 + vertex 7.336602e+01 -1.245000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 -4.226327e-01 0.000000e+00 + outer loop + vertex 7.343969e+01 -1.243420e+02 -6.000000e+00 + vertex 7.336602e+01 -1.245000e+02 -3.000000e+00 + vertex 7.336602e+01 -1.245000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063174e-01 -4.225976e-01 -0.000000e+00 + outer loop + vertex 7.663397e+01 -1.245000e+02 -3.000000e+00 + vertex 7.656031e+01 -1.243420e+02 -3.000000e+00 + vertex 7.663397e+01 -1.245000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063174e-01 -4.225976e-01 -0.000000e+00 + outer loop + vertex 7.656031e+01 -1.243420e+02 -3.000000e+00 + vertex 7.656031e+01 -1.243420e+02 -6.000000e+00 + vertex 7.663397e+01 -1.245000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.526048e+01 1.215228e+02 -6.000000e+00 + vertex 1.249397e+02 -1.243420e+02 -6.000000e+00 + vertex 1.248660e+02 -1.245000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 -4.226327e-01 0.000000e+00 + outer loop + vertex 1.249397e+02 -1.243420e+02 -6.000000e+00 + vertex 1.248660e+02 -1.245000e+02 0.000000e+00 + vertex 1.248660e+02 -1.245000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 -4.226327e-01 0.000000e+00 + outer loop + vertex -7.806031e+01 -1.243420e+02 -3.000000e+00 + vertex -7.813398e+01 -1.245000e+02 0.000000e+00 + vertex -7.813398e+01 -1.245000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.800000e+01 -1.240000e+02 -3.000000e+00 + vertex -7.801519e+01 -1.241736e+02 -3.000000e+00 + vertex -7.663397e+01 -1.245000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.656031e+01 -1.243420e+02 -3.000000e+00 + vertex -7.800000e+01 -1.240000e+02 -3.000000e+00 + vertex -7.663397e+01 -1.245000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063174e-01 -4.225976e-01 0.000000e+00 + outer loop + vertex -7.656031e+01 -1.243420e+02 -6.000000e+00 + vertex -7.656031e+01 -1.243420e+02 -3.000000e+00 + vertex -7.663397e+01 -1.245000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.198481e+01 -1.241736e+02 -3.000000e+00 + vertex -7.343969e+01 -1.243420e+02 -3.000000e+00 + vertex -7.336602e+01 -1.245000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063174e-01 -4.225976e-01 -0.000000e+00 + outer loop + vertex -7.186603e+01 -1.245000e+02 0.000000e+00 + vertex -7.193969e+01 -1.243420e+02 0.000000e+00 + vertex -7.186603e+01 -1.245000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063174e-01 -4.225976e-01 -0.000000e+00 + outer loop + vertex -7.193969e+01 -1.243420e+02 0.000000e+00 + vertex -7.193969e+01 -1.243420e+02 -3.000000e+00 + vertex -7.186603e+01 -1.245000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063174e-01 -4.225976e-01 0.000000e+00 + outer loop + vertex 7.193969e+01 -1.243420e+02 -3.000000e+00 + vertex 7.186603e+01 -1.245000e+02 0.000000e+00 + vertex 7.186603e+01 -1.245000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.343969e+01 -1.243420e+02 -3.000000e+00 + vertex 7.198481e+01 -1.241736e+02 -3.000000e+00 + vertex 7.336602e+01 -1.245000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 -4.226327e-01 0.000000e+00 + outer loop + vertex 7.343969e+01 -1.243420e+02 -6.000000e+00 + vertex 7.343969e+01 -1.243420e+02 -3.000000e+00 + vertex 7.336602e+01 -1.245000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.806031e+01 -1.243420e+02 -3.000000e+00 + vertex 7.629904e+01 -1.222500e+02 -3.000000e+00 + vertex 7.813398e+01 -1.245000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 -4.226327e-01 -0.000000e+00 + outer loop + vertex 7.806031e+01 -1.243420e+02 0.000000e+00 + vertex 7.806031e+01 -1.243420e+02 -3.000000e+00 + vertex 7.813398e+01 -1.245000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 -4.226327e-01 -0.000000e+00 + outer loop + vertex 7.813398e+01 -1.245000e+02 0.000000e+00 + vertex 7.806031e+01 -1.243420e+02 0.000000e+00 + vertex 7.813398e+01 -1.245000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.806031e+01 -1.243420e+02 0.000000e+00 + vertex -7.800000e+01 -1.240000e+02 0.000000e+00 + vertex -7.813398e+01 -1.245000e+02 0.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 -4.226327e-01 0.000000e+00 + outer loop + vertex -7.806031e+01 -1.243420e+02 -3.000000e+00 + vertex -7.806031e+01 -1.243420e+02 0.000000e+00 + vertex -7.813398e+01 -1.245000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.198481e+01 -1.241736e+02 0.000000e+00 + vertex -7.193969e+01 -1.243420e+02 0.000000e+00 + vertex -7.186603e+01 -1.245000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.193969e+01 -1.243420e+02 0.000000e+00 + vertex 7.200000e+01 -1.240000e+02 0.000000e+00 + vertex 7.186603e+01 -1.245000e+02 0.000000e+00 + endloop + endfacet + facet normal 9.063174e-01 -4.225976e-01 0.000000e+00 + outer loop + vertex 7.193969e+01 -1.243420e+02 -3.000000e+00 + vertex 7.193969e+01 -1.243420e+02 0.000000e+00 + vertex 7.186603e+01 -1.245000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 1.249397e+02 -1.243420e+02 0.000000e+00 + vertex 1.250000e+02 -1.240000e+02 0.000000e+00 + vertex 1.248660e+02 -1.245000e+02 0.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 -4.226327e-01 0.000000e+00 + outer loop + vertex 1.249397e+02 -1.243420e+02 -6.000000e+00 + vertex 1.249397e+02 -1.243420e+02 0.000000e+00 + vertex 1.248660e+02 -1.245000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.249848e+02 -1.241736e+02 -6.000000e+00 + vertex -1.250000e+02 -1.240000e+02 -6.000000e+00 + vertex -1.249397e+02 -1.243420e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 -2.588144e-01 -0.000000e+00 + outer loop + vertex -1.249397e+02 -1.243420e+02 0.000000e+00 + vertex -1.249848e+02 -1.241736e+02 0.000000e+00 + vertex -1.249397e+02 -1.243420e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 -2.588144e-01 -0.000000e+00 + outer loop + vertex -1.249848e+02 -1.241736e+02 0.000000e+00 + vertex -1.249848e+02 -1.241736e+02 -6.000000e+00 + vertex -1.249397e+02 -1.243420e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.650000e+01 -1.240000e+02 -6.000000e+00 + vertex -7.651519e+01 -1.241736e+02 -6.000000e+00 + vertex -7.656031e+01 -1.243420e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659164e-01 -2.588543e-01 0.000000e+00 + outer loop + vertex -7.651519e+01 -1.241736e+02 -6.000000e+00 + vertex -7.656031e+01 -1.243420e+02 -3.000000e+00 + vertex -7.656031e+01 -1.243420e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 -2.588144e-01 -0.000000e+00 + outer loop + vertex -7.343969e+01 -1.243420e+02 -3.000000e+00 + vertex -7.348481e+01 -1.241736e+02 -3.000000e+00 + vertex -7.343969e+01 -1.243420e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 -2.588144e-01 -0.000000e+00 + outer loop + vertex -7.348481e+01 -1.241736e+02 -3.000000e+00 + vertex -7.348481e+01 -1.241736e+02 -6.000000e+00 + vertex -7.343969e+01 -1.243420e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 -2.588144e-01 0.000000e+00 + outer loop + vertex 7.348481e+01 -1.241736e+02 -6.000000e+00 + vertex 7.343969e+01 -1.243420e+02 -3.000000e+00 + vertex 7.343969e+01 -1.243420e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659164e-01 -2.588543e-01 -0.000000e+00 + outer loop + vertex 7.656031e+01 -1.243420e+02 -3.000000e+00 + vertex 7.651519e+01 -1.241736e+02 -3.000000e+00 + vertex 7.656031e+01 -1.243420e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659164e-01 -2.588543e-01 -0.000000e+00 + outer loop + vertex 7.651519e+01 -1.241736e+02 -3.000000e+00 + vertex 7.651519e+01 -1.241736e+02 -6.000000e+00 + vertex 7.656031e+01 -1.243420e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.526048e+01 1.215228e+02 -6.000000e+00 + vertex 1.249848e+02 -1.241736e+02 -6.000000e+00 + vertex 1.249397e+02 -1.243420e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 -2.588144e-01 0.000000e+00 + outer loop + vertex 1.249848e+02 -1.241736e+02 -6.000000e+00 + vertex 1.249397e+02 -1.243420e+02 0.000000e+00 + vertex 1.249397e+02 -1.243420e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 -2.588144e-01 0.000000e+00 + outer loop + vertex -7.801519e+01 -1.241736e+02 -3.000000e+00 + vertex -7.806031e+01 -1.243420e+02 0.000000e+00 + vertex -7.806031e+01 -1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.651519e+01 -1.241736e+02 -3.000000e+00 + vertex -7.800000e+01 -1.240000e+02 -3.000000e+00 + vertex -7.656031e+01 -1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659164e-01 -2.588543e-01 0.000000e+00 + outer loop + vertex -7.651519e+01 -1.241736e+02 -6.000000e+00 + vertex -7.651519e+01 -1.241736e+02 -3.000000e+00 + vertex -7.656031e+01 -1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 -1.240000e+02 -3.000000e+00 + vertex -7.348481e+01 -1.241736e+02 -3.000000e+00 + vertex -7.343969e+01 -1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.198481e+01 -1.241736e+02 -3.000000e+00 + vertex -7.200000e+01 -1.240000e+02 -3.000000e+00 + vertex -7.343969e+01 -1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 -2.588144e-01 -0.000000e+00 + outer loop + vertex -7.193969e+01 -1.243420e+02 0.000000e+00 + vertex -7.198481e+01 -1.241736e+02 0.000000e+00 + vertex -7.193969e+01 -1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 -2.588144e-01 -0.000000e+00 + outer loop + vertex -7.198481e+01 -1.241736e+02 0.000000e+00 + vertex -7.198481e+01 -1.241736e+02 -3.000000e+00 + vertex -7.193969e+01 -1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 -2.588144e-01 0.000000e+00 + outer loop + vertex 7.198481e+01 -1.241736e+02 -3.000000e+00 + vertex 7.193969e+01 -1.243420e+02 0.000000e+00 + vertex 7.193969e+01 -1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.200000e+01 -1.240000e+02 -3.000000e+00 + vertex 7.198481e+01 -1.241736e+02 -3.000000e+00 + vertex 7.343969e+01 -1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.348481e+01 -1.241736e+02 -3.000000e+00 + vertex 7.200000e+01 -1.240000e+02 -3.000000e+00 + vertex 7.343969e+01 -1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 -2.588144e-01 0.000000e+00 + outer loop + vertex 7.348481e+01 -1.241736e+02 -6.000000e+00 + vertex 7.348481e+01 -1.241736e+02 -3.000000e+00 + vertex 7.343969e+01 -1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.801519e+01 -1.241736e+02 -3.000000e+00 + vertex 7.629904e+01 -1.222500e+02 -3.000000e+00 + vertex 7.806031e+01 -1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 -2.588144e-01 -0.000000e+00 + outer loop + vertex 7.801519e+01 -1.241736e+02 0.000000e+00 + vertex 7.801519e+01 -1.241736e+02 -3.000000e+00 + vertex 7.806031e+01 -1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 -2.588144e-01 -0.000000e+00 + outer loop + vertex 7.806031e+01 -1.243420e+02 0.000000e+00 + vertex 7.801519e+01 -1.241736e+02 0.000000e+00 + vertex 7.806031e+01 -1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.801519e+01 -1.241736e+02 0.000000e+00 + vertex -7.800000e+01 -1.240000e+02 0.000000e+00 + vertex -7.806031e+01 -1.243420e+02 0.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 -2.588144e-01 0.000000e+00 + outer loop + vertex -7.801519e+01 -1.241736e+02 -3.000000e+00 + vertex -7.801519e+01 -1.241736e+02 0.000000e+00 + vertex -7.806031e+01 -1.243420e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.198481e+01 -1.241736e+02 0.000000e+00 + vertex 7.200000e+01 -1.240000e+02 0.000000e+00 + vertex 7.193969e+01 -1.243420e+02 0.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 -2.588144e-01 0.000000e+00 + outer loop + vertex 7.198481e+01 -1.241736e+02 -3.000000e+00 + vertex 7.198481e+01 -1.241736e+02 0.000000e+00 + vertex 7.193969e+01 -1.243420e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 1.249848e+02 -1.241736e+02 0.000000e+00 + vertex 1.250000e+02 -1.240000e+02 0.000000e+00 + vertex 1.249397e+02 -1.243420e+02 0.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 -2.588144e-01 0.000000e+00 + outer loop + vertex 1.249848e+02 -1.241736e+02 -6.000000e+00 + vertex 1.249848e+02 -1.241736e+02 0.000000e+00 + vertex 1.249397e+02 -1.243420e+02 0.000000e+00 + endloop + endfacet + facet normal -9.961951e-01 -8.715157e-02 -0.000000e+00 + outer loop + vertex -1.249848e+02 -1.241736e+02 0.000000e+00 + vertex -1.250000e+02 -1.240000e+02 0.000000e+00 + vertex -1.249848e+02 -1.241736e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961951e-01 -8.715157e-02 -0.000000e+00 + outer loop + vertex -1.250000e+02 -1.240000e+02 0.000000e+00 + vertex -1.250000e+02 -1.240000e+02 -6.000000e+00 + vertex -1.249848e+02 -1.241736e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961951e-01 -8.715157e-02 0.000000e+00 + outer loop + vertex -7.650000e+01 -1.240000e+02 -6.000000e+00 + vertex -7.651519e+01 -1.241736e+02 -3.000000e+00 + vertex -7.651519e+01 -1.241736e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961951e-01 -8.715157e-02 -0.000000e+00 + outer loop + vertex -7.348481e+01 -1.241736e+02 -3.000000e+00 + vertex -7.350000e+01 -1.240000e+02 -3.000000e+00 + vertex -7.348481e+01 -1.241736e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961951e-01 -8.715157e-02 -0.000000e+00 + outer loop + vertex -7.350000e+01 -1.240000e+02 -3.000000e+00 + vertex -7.350000e+01 -1.240000e+02 -6.000000e+00 + vertex -7.348481e+01 -1.241736e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961951e-01 -8.715157e-02 0.000000e+00 + outer loop + vertex 7.350000e+01 -1.240000e+02 -6.000000e+00 + vertex 7.348481e+01 -1.241736e+02 -3.000000e+00 + vertex 7.348481e+01 -1.241736e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961951e-01 -8.715157e-02 -0.000000e+00 + outer loop + vertex 7.651519e+01 -1.241736e+02 -3.000000e+00 + vertex 7.650000e+01 -1.240000e+02 -3.000000e+00 + vertex 7.651519e+01 -1.241736e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961951e-01 -8.715157e-02 -0.000000e+00 + outer loop + vertex 7.650000e+01 -1.240000e+02 -3.000000e+00 + vertex 7.650000e+01 -1.240000e+02 -6.000000e+00 + vertex 7.651519e+01 -1.241736e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.526048e+01 1.215228e+02 -6.000000e+00 + vertex 1.250000e+02 -1.240000e+02 -6.000000e+00 + vertex 1.249848e+02 -1.241736e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961951e-01 -8.715157e-02 0.000000e+00 + outer loop + vertex 1.250000e+02 -1.240000e+02 -6.000000e+00 + vertex 1.249848e+02 -1.241736e+02 0.000000e+00 + vertex 1.249848e+02 -1.241736e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961951e-01 -8.715157e-02 0.000000e+00 + outer loop + vertex -7.800000e+01 -1.240000e+02 -3.000000e+00 + vertex -7.801519e+01 -1.241736e+02 0.000000e+00 + vertex -7.801519e+01 -1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 -1.240000e+02 -3.000000e+00 + vertex -7.800000e+01 -1.240000e+02 -3.000000e+00 + vertex -7.651519e+01 -1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961951e-01 -8.715157e-02 0.000000e+00 + outer loop + vertex -7.650000e+01 -1.240000e+02 -6.000000e+00 + vertex -7.650000e+01 -1.240000e+02 -3.000000e+00 + vertex -7.651519e+01 -1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 -1.240000e+02 -3.000000e+00 + vertex -7.350000e+01 -1.240000e+02 -3.000000e+00 + vertex -7.348481e+01 -1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961951e-01 -8.715157e-02 -0.000000e+00 + outer loop + vertex -7.198481e+01 -1.241736e+02 0.000000e+00 + vertex -7.200000e+01 -1.240000e+02 0.000000e+00 + vertex -7.198481e+01 -1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961951e-01 -8.715157e-02 -0.000000e+00 + outer loop + vertex -7.200000e+01 -1.240000e+02 0.000000e+00 + vertex -7.200000e+01 -1.240000e+02 -3.000000e+00 + vertex -7.198481e+01 -1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961951e-01 -8.715157e-02 0.000000e+00 + outer loop + vertex 7.200000e+01 -1.240000e+02 -3.000000e+00 + vertex 7.198481e+01 -1.241736e+02 0.000000e+00 + vertex 7.198481e+01 -1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 -1.240000e+02 -3.000000e+00 + vertex 7.200000e+01 -1.240000e+02 -3.000000e+00 + vertex 7.348481e+01 -1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961951e-01 -8.715157e-02 0.000000e+00 + outer loop + vertex 7.350000e+01 -1.240000e+02 -6.000000e+00 + vertex 7.350000e+01 -1.240000e+02 -3.000000e+00 + vertex 7.348481e+01 -1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.614907e+01 -1.220358e+02 -3.000000e+00 + vertex 7.629904e+01 -1.222500e+02 -3.000000e+00 + vertex 7.801519e+01 -1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.800000e+01 -1.240000e+02 -3.000000e+00 + vertex 7.614907e+01 -1.220358e+02 -3.000000e+00 + vertex 7.801519e+01 -1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961951e-01 -8.715157e-02 -0.000000e+00 + outer loop + vertex 7.800000e+01 -1.240000e+02 0.000000e+00 + vertex 7.800000e+01 -1.240000e+02 -3.000000e+00 + vertex 7.801519e+01 -1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961951e-01 -8.715157e-02 -0.000000e+00 + outer loop + vertex 7.801519e+01 -1.241736e+02 0.000000e+00 + vertex 7.800000e+01 -1.240000e+02 0.000000e+00 + vertex 7.801519e+01 -1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961951e-01 -8.715157e-02 0.000000e+00 + outer loop + vertex -7.800000e+01 -1.240000e+02 -3.000000e+00 + vertex -7.800000e+01 -1.240000e+02 0.000000e+00 + vertex -7.801519e+01 -1.241736e+02 0.000000e+00 + endloop + endfacet + facet normal 9.961951e-01 -8.715157e-02 0.000000e+00 + outer loop + vertex 7.200000e+01 -1.240000e+02 -3.000000e+00 + vertex 7.200000e+01 -1.240000e+02 0.000000e+00 + vertex 7.198481e+01 -1.241736e+02 0.000000e+00 + endloop + endfacet + facet normal 9.961951e-01 -8.715157e-02 0.000000e+00 + outer loop + vertex 1.250000e+02 -1.240000e+02 -6.000000e+00 + vertex 1.250000e+02 -1.240000e+02 0.000000e+00 + vertex 1.249848e+02 -1.241736e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.250000e+02 1.240000e+02 -6.000000e+00 + vertex -7.575000e+01 -1.217010e+02 -6.000000e+00 + vertex -1.250000e+02 -1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.575000e+01 -1.217010e+02 -6.000000e+00 + vertex -7.596418e+01 -1.218509e+02 -6.000000e+00 + vertex -1.250000e+02 -1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.596418e+01 -1.218509e+02 -6.000000e+00 + vertex -7.614907e+01 -1.220358e+02 -6.000000e+00 + vertex -1.250000e+02 -1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.614907e+01 -1.220358e+02 -6.000000e+00 + vertex -7.629904e+01 -1.222500e+02 -6.000000e+00 + vertex -1.250000e+02 -1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.629904e+01 -1.222500e+02 -6.000000e+00 + vertex -7.640954e+01 -1.224870e+02 -6.000000e+00 + vertex -1.250000e+02 -1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex -1.250000e+02 1.240000e+02 0.000000e+00 + vertex -1.250000e+02 1.240000e+02 -6.000000e+00 + vertex -1.250000e+02 -1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex -1.250000e+02 -1.240000e+02 0.000000e+00 + vertex -1.250000e+02 1.240000e+02 0.000000e+00 + vertex -1.250000e+02 -1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex -7.650000e+01 -1.230000e+02 -6.000000e+00 + vertex -7.650000e+01 -1.240000e+02 -3.000000e+00 + vertex -7.650000e+01 -1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex -7.350000e+01 -1.240000e+02 -3.000000e+00 + vertex -7.350000e+01 -1.230000e+02 -3.000000e+00 + vertex -7.350000e+01 -1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex -7.350000e+01 -1.230000e+02 -3.000000e+00 + vertex -7.350000e+01 -1.230000e+02 -6.000000e+00 + vertex -7.350000e+01 -1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.370096e+01 -1.222500e+02 -6.000000e+00 + vertex 7.359046e+01 -1.224870e+02 -6.000000e+00 + vertex -7.350000e+01 -1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.350000e+01 -1.230000e+02 -6.000000e+00 + vertex 7.370096e+01 -1.222500e+02 -6.000000e+00 + vertex -7.350000e+01 -1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex 7.350000e+01 -1.230000e+02 -6.000000e+00 + vertex 7.350000e+01 -1.240000e+02 -3.000000e+00 + vertex 7.350000e+01 -1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex 7.650000e+01 -1.240000e+02 -3.000000e+00 + vertex 7.650000e+01 -1.230000e+02 -3.000000e+00 + vertex 7.650000e+01 -1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex 7.650000e+01 -1.230000e+02 -3.000000e+00 + vertex 7.650000e+01 -1.230000e+02 -6.000000e+00 + vertex 7.650000e+01 -1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.575000e+01 1.217010e+02 -6.000000e+00 + vertex 1.250000e+02 1.240000e+02 -6.000000e+00 + vertex 1.250000e+02 -1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.526048e+01 1.215228e+02 -6.000000e+00 + vertex 7.551303e+01 1.215905e+02 -6.000000e+00 + vertex 1.250000e+02 -1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.551303e+01 1.215905e+02 -6.000000e+00 + vertex 7.575000e+01 1.217010e+02 -6.000000e+00 + vertex 1.250000e+02 -1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex 1.250000e+02 1.240000e+02 -6.000000e+00 + vertex 1.250000e+02 -1.240000e+02 0.000000e+00 + vertex 1.250000e+02 -1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex -7.800000e+01 -1.230000e+02 -3.000000e+00 + vertex -7.800000e+01 -1.240000e+02 0.000000e+00 + vertex -7.800000e+01 -1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 -1.240000e+02 -3.000000e+00 + vertex -7.800000e+01 -1.230000e+02 -3.000000e+00 + vertex -7.800000e+01 -1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex -7.650000e+01 -1.230000e+02 -6.000000e+00 + vertex -7.650000e+01 -1.230000e+02 -3.000000e+00 + vertex -7.650000e+01 -1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 -1.230000e+02 -3.000000e+00 + vertex -7.800000e+01 -1.230000e+02 -3.000000e+00 + vertex -7.650000e+01 -1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 -1.240000e+02 -3.000000e+00 + vertex -7.350000e+01 -1.230000e+02 -3.000000e+00 + vertex -7.350000e+01 -1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex -7.200000e+01 -1.240000e+02 0.000000e+00 + vertex -7.200000e+01 -1.230000e+02 0.000000e+00 + vertex -7.200000e+01 -1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex -7.200000e+01 -1.230000e+02 0.000000e+00 + vertex -7.200000e+01 -1.230000e+02 -3.000000e+00 + vertex -7.200000e+01 -1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 -1.230000e+02 -3.000000e+00 + vertex -7.350000e+01 -1.230000e+02 -3.000000e+00 + vertex -7.200000e+01 -1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex 7.200000e+01 -1.230000e+02 -3.000000e+00 + vertex 7.200000e+01 -1.240000e+02 0.000000e+00 + vertex 7.200000e+01 -1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 -1.240000e+02 -3.000000e+00 + vertex 7.200000e+01 -1.230000e+02 -3.000000e+00 + vertex 7.200000e+01 -1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex 7.350000e+01 -1.230000e+02 -6.000000e+00 + vertex 7.350000e+01 -1.230000e+02 -3.000000e+00 + vertex 7.350000e+01 -1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 -1.230000e+02 -3.000000e+00 + vertex 7.200000e+01 -1.230000e+02 -3.000000e+00 + vertex 7.350000e+01 -1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex 7.800000e+01 -1.240000e+02 0.000000e+00 + vertex 7.800000e+01 -1.230000e+02 0.000000e+00 + vertex 7.800000e+01 -1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex 7.800000e+01 -1.230000e+02 0.000000e+00 + vertex 7.800000e+01 -1.230000e+02 -3.000000e+00 + vertex 7.800000e+01 -1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.800000e+01 -1.230000e+02 -3.000000e+00 + vertex 7.614907e+01 -1.220358e+02 -3.000000e+00 + vertex 7.800000e+01 -1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.800000e+01 -1.240000e+02 0.000000e+00 + vertex -7.800000e+01 -1.230000e+02 0.000000e+00 + vertex -1.250000e+02 -1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.800000e+01 -1.230000e+02 0.000000e+00 + vertex -7.795443e+01 -1.224791e+02 0.000000e+00 + vertex -1.250000e+02 -1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.795443e+01 -1.224791e+02 0.000000e+00 + vertex -7.781908e+01 -1.219739e+02 0.000000e+00 + vertex -1.250000e+02 -1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 1.204019e+02 0.000000e+00 + vertex -1.250000e+02 1.240000e+02 0.000000e+00 + vertex -1.250000e+02 -1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.781908e+01 -1.219739e+02 0.000000e+00 + vertex -7.759807e+01 -1.215000e+02 0.000000e+00 + vertex -1.250000e+02 -1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.759807e+01 -1.215000e+02 0.000000e+00 + vertex -7.729813e+01 -1.210716e+02 0.000000e+00 + vertex -1.250000e+02 -1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.729813e+01 -1.210716e+02 0.000000e+00 + vertex -7.650000e+01 1.204019e+02 0.000000e+00 + vertex -1.250000e+02 -1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex -7.800000e+01 -1.230000e+02 -3.000000e+00 + vertex -7.800000e+01 -1.230000e+02 0.000000e+00 + vertex -7.800000e+01 -1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex 7.200000e+01 -1.230000e+02 -3.000000e+00 + vertex 7.200000e+01 -1.230000e+02 0.000000e+00 + vertex 7.200000e+01 -1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.250000e+02 -1.240000e+02 0.000000e+00 + vertex 7.800000e+01 -1.230000e+02 0.000000e+00 + vertex 7.800000e+01 -1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.250000e+02 1.240000e+02 0.000000e+00 + vertex 7.729813e+01 -1.210716e+02 0.000000e+00 + vertex 1.250000e+02 -1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.729813e+01 -1.210716e+02 0.000000e+00 + vertex 7.759807e+01 -1.215000e+02 0.000000e+00 + vertex 1.250000e+02 -1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.759807e+01 -1.215000e+02 0.000000e+00 + vertex 7.781908e+01 -1.219739e+02 0.000000e+00 + vertex 1.250000e+02 -1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.781908e+01 -1.219739e+02 0.000000e+00 + vertex 7.795443e+01 -1.224791e+02 0.000000e+00 + vertex 1.250000e+02 -1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.795443e+01 -1.224791e+02 0.000000e+00 + vertex 7.800000e+01 -1.230000e+02 0.000000e+00 + vertex 1.250000e+02 -1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex 1.250000e+02 1.240000e+02 -6.000000e+00 + vertex 1.250000e+02 1.240000e+02 0.000000e+00 + vertex 1.250000e+02 -1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 9.961962e-01 -8.713867e-02 0.000000e+00 + outer loop + vertex -7.647721e+01 -1.227395e+02 -6.000000e+00 + vertex -7.647721e+01 -1.227395e+02 -3.000000e+00 + vertex -7.650000e+01 -1.230000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961962e-01 -8.713867e-02 0.000000e+00 + outer loop + vertex -7.647721e+01 -1.227395e+02 -3.000000e+00 + vertex -7.650000e+01 -1.230000e+02 -3.000000e+00 + vertex -7.650000e+01 -1.230000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961937e-01 -8.716695e-02 -0.000000e+00 + outer loop + vertex -7.350000e+01 -1.230000e+02 -3.000000e+00 + vertex -7.352279e+01 -1.227395e+02 -6.000000e+00 + vertex -7.350000e+01 -1.230000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.352279e+01 -1.227395e+02 -6.000000e+00 + vertex 7.370096e+01 -1.222500e+02 -6.000000e+00 + vertex -7.350000e+01 -1.230000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961937e-01 -8.716695e-02 0.000000e+00 + outer loop + vertex 7.352279e+01 -1.227395e+02 -6.000000e+00 + vertex 7.352279e+01 -1.227395e+02 -3.000000e+00 + vertex 7.350000e+01 -1.230000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961937e-01 -8.716695e-02 0.000000e+00 + outer loop + vertex 7.352279e+01 -1.227395e+02 -3.000000e+00 + vertex 7.350000e+01 -1.230000e+02 -3.000000e+00 + vertex 7.350000e+01 -1.230000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961962e-01 -8.713867e-02 -0.000000e+00 + outer loop + vertex 7.650000e+01 -1.230000e+02 -3.000000e+00 + vertex 7.647721e+01 -1.227395e+02 -6.000000e+00 + vertex 7.650000e+01 -1.230000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961950e-01 -8.715281e-02 0.000000e+00 + outer loop + vertex -7.795443e+01 -1.224791e+02 -3.000000e+00 + vertex -7.795443e+01 -1.224791e+02 0.000000e+00 + vertex -7.800000e+01 -1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961950e-01 -8.715281e-02 0.000000e+00 + outer loop + vertex -7.795443e+01 -1.224791e+02 0.000000e+00 + vertex -7.800000e+01 -1.230000e+02 0.000000e+00 + vertex -7.800000e+01 -1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 -1.230000e+02 -3.000000e+00 + vertex -7.795443e+01 -1.224791e+02 -3.000000e+00 + vertex -7.800000e+01 -1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.647721e+01 -1.227395e+02 -3.000000e+00 + vertex -7.795443e+01 -1.224791e+02 -3.000000e+00 + vertex -7.650000e+01 -1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961937e-01 -8.716695e-02 -0.000000e+00 + outer loop + vertex -7.352279e+01 -1.227395e+02 -3.000000e+00 + vertex -7.352279e+01 -1.227395e+02 -6.000000e+00 + vertex -7.350000e+01 -1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 -1.230000e+02 -3.000000e+00 + vertex -7.352279e+01 -1.227395e+02 -3.000000e+00 + vertex -7.350000e+01 -1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961937e-01 -8.716695e-02 -0.000000e+00 + outer loop + vertex -7.200000e+01 -1.230000e+02 0.000000e+00 + vertex -7.204558e+01 -1.224791e+02 -3.000000e+00 + vertex -7.200000e+01 -1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.204558e+01 -1.224791e+02 -3.000000e+00 + vertex -7.352279e+01 -1.227395e+02 -3.000000e+00 + vertex -7.200000e+01 -1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 -1.230000e+02 -3.000000e+00 + vertex 7.204558e+01 -1.224791e+02 -3.000000e+00 + vertex 7.200000e+01 -1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961937e-01 -8.716695e-02 0.000000e+00 + outer loop + vertex 7.204558e+01 -1.224791e+02 -3.000000e+00 + vertex 7.204558e+01 -1.224791e+02 0.000000e+00 + vertex 7.200000e+01 -1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961937e-01 -8.716695e-02 0.000000e+00 + outer loop + vertex 7.204558e+01 -1.224791e+02 0.000000e+00 + vertex 7.200000e+01 -1.230000e+02 0.000000e+00 + vertex 7.200000e+01 -1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.352279e+01 -1.227395e+02 -3.000000e+00 + vertex 7.204558e+01 -1.224791e+02 -3.000000e+00 + vertex 7.350000e+01 -1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961962e-01 -8.713867e-02 -0.000000e+00 + outer loop + vertex 7.647721e+01 -1.227395e+02 -3.000000e+00 + vertex 7.647721e+01 -1.227395e+02 -6.000000e+00 + vertex 7.650000e+01 -1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.795443e+01 -1.224791e+02 -3.000000e+00 + vertex 7.614907e+01 -1.220358e+02 -3.000000e+00 + vertex 7.800000e+01 -1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961950e-01 -8.715281e-02 -0.000000e+00 + outer loop + vertex 7.800000e+01 -1.230000e+02 0.000000e+00 + vertex 7.795443e+01 -1.224791e+02 -3.000000e+00 + vertex 7.800000e+01 -1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961937e-01 -8.716695e-02 -0.000000e+00 + outer loop + vertex -7.204558e+01 -1.224791e+02 0.000000e+00 + vertex -7.204558e+01 -1.224791e+02 -3.000000e+00 + vertex -7.200000e+01 -1.230000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.218092e+01 -1.219739e+02 0.000000e+00 + vertex -7.204558e+01 -1.224791e+02 0.000000e+00 + vertex 7.200000e+01 -1.230000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.204558e+01 -1.224791e+02 0.000000e+00 + vertex -7.218092e+01 -1.219739e+02 0.000000e+00 + vertex 7.200000e+01 -1.230000e+02 0.000000e+00 + endloop + endfacet + facet normal -9.961950e-01 -8.715281e-02 -0.000000e+00 + outer loop + vertex 7.795443e+01 -1.224791e+02 0.000000e+00 + vertex 7.795443e+01 -1.224791e+02 -3.000000e+00 + vertex 7.800000e+01 -1.230000e+02 0.000000e+00 + endloop + endfacet + facet normal 9.659254e-01 -2.588206e-01 0.000000e+00 + outer loop + vertex -7.640954e+01 -1.224870e+02 -6.000000e+00 + vertex -7.640954e+01 -1.224870e+02 -3.000000e+00 + vertex -7.647721e+01 -1.227395e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659254e-01 -2.588206e-01 0.000000e+00 + outer loop + vertex -7.640954e+01 -1.224870e+02 -3.000000e+00 + vertex -7.647721e+01 -1.227395e+02 -3.000000e+00 + vertex -7.647721e+01 -1.227395e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659325e-01 -2.587940e-01 -0.000000e+00 + outer loop + vertex -7.352279e+01 -1.227395e+02 -3.000000e+00 + vertex -7.359046e+01 -1.224870e+02 -6.000000e+00 + vertex -7.352279e+01 -1.227395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.359046e+01 -1.224870e+02 -6.000000e+00 + vertex 7.370096e+01 -1.222500e+02 -6.000000e+00 + vertex -7.352279e+01 -1.227395e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659325e-01 -2.587940e-01 0.000000e+00 + outer loop + vertex 7.359046e+01 -1.224870e+02 -6.000000e+00 + vertex 7.359046e+01 -1.224870e+02 -3.000000e+00 + vertex 7.352279e+01 -1.227395e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659325e-01 -2.587940e-01 0.000000e+00 + outer loop + vertex 7.359046e+01 -1.224870e+02 -3.000000e+00 + vertex 7.352279e+01 -1.227395e+02 -3.000000e+00 + vertex 7.352279e+01 -1.227395e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659254e-01 -2.588206e-01 -0.000000e+00 + outer loop + vertex 7.647721e+01 -1.227395e+02 -3.000000e+00 + vertex 7.640954e+01 -1.224870e+02 -6.000000e+00 + vertex 7.647721e+01 -1.227395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.640954e+01 -1.224870e+02 -3.000000e+00 + vertex -7.781908e+01 -1.219739e+02 -3.000000e+00 + vertex -7.647721e+01 -1.227395e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.781908e+01 -1.219739e+02 -3.000000e+00 + vertex -7.795443e+01 -1.224791e+02 -3.000000e+00 + vertex -7.647721e+01 -1.227395e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659325e-01 -2.587940e-01 -0.000000e+00 + outer loop + vertex -7.359046e+01 -1.224870e+02 -3.000000e+00 + vertex -7.359046e+01 -1.224870e+02 -6.000000e+00 + vertex -7.352279e+01 -1.227395e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.204558e+01 -1.224791e+02 -3.000000e+00 + vertex -7.359046e+01 -1.224870e+02 -3.000000e+00 + vertex -7.352279e+01 -1.227395e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.218092e+01 -1.219739e+02 -3.000000e+00 + vertex 7.204558e+01 -1.224791e+02 -3.000000e+00 + vertex 7.352279e+01 -1.227395e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.359046e+01 -1.224870e+02 -3.000000e+00 + vertex 7.218092e+01 -1.219739e+02 -3.000000e+00 + vertex 7.352279e+01 -1.227395e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659254e-01 -2.588206e-01 -0.000000e+00 + outer loop + vertex 7.640954e+01 -1.224870e+02 -3.000000e+00 + vertex 7.640954e+01 -1.224870e+02 -6.000000e+00 + vertex 7.647721e+01 -1.227395e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063119e-01 -4.226093e-01 0.000000e+00 + outer loop + vertex -7.629904e+01 -1.222500e+02 -6.000000e+00 + vertex -7.629904e+01 -1.222500e+02 -3.000000e+00 + vertex -7.640954e+01 -1.224870e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063119e-01 -4.226093e-01 0.000000e+00 + outer loop + vertex -7.629904e+01 -1.222500e+02 -3.000000e+00 + vertex -7.640954e+01 -1.224870e+02 -3.000000e+00 + vertex -7.640954e+01 -1.224870e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 -4.226327e-01 -0.000000e+00 + outer loop + vertex -7.359046e+01 -1.224870e+02 -3.000000e+00 + vertex -7.370096e+01 -1.222500e+02 -6.000000e+00 + vertex -7.359046e+01 -1.224870e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.370096e+01 -1.222500e+02 -6.000000e+00 + vertex 7.370096e+01 -1.222500e+02 -6.000000e+00 + vertex -7.359046e+01 -1.224870e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 -4.226327e-01 0.000000e+00 + outer loop + vertex 7.370096e+01 -1.222500e+02 -6.000000e+00 + vertex 7.370096e+01 -1.222500e+02 -3.000000e+00 + vertex 7.359046e+01 -1.224870e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 -4.226327e-01 0.000000e+00 + outer loop + vertex 7.370096e+01 -1.222500e+02 -3.000000e+00 + vertex 7.359046e+01 -1.224870e+02 -3.000000e+00 + vertex 7.359046e+01 -1.224870e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063119e-01 -4.226093e-01 -0.000000e+00 + outer loop + vertex 7.640954e+01 -1.224870e+02 -3.000000e+00 + vertex 7.629904e+01 -1.222500e+02 -6.000000e+00 + vertex 7.640954e+01 -1.224870e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.629904e+01 -1.222500e+02 -3.000000e+00 + vertex -7.759807e+01 -1.215000e+02 -3.000000e+00 + vertex -7.640954e+01 -1.224870e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.759807e+01 -1.215000e+02 -3.000000e+00 + vertex -7.781908e+01 -1.219739e+02 -3.000000e+00 + vertex -7.640954e+01 -1.224870e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 -4.226327e-01 -0.000000e+00 + outer loop + vertex -7.370096e+01 -1.222500e+02 -3.000000e+00 + vertex -7.370096e+01 -1.222500e+02 -6.000000e+00 + vertex -7.359046e+01 -1.224870e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.204558e+01 -1.224791e+02 -3.000000e+00 + vertex -7.218092e+01 -1.219739e+02 -3.000000e+00 + vertex -7.359046e+01 -1.224870e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.218092e+01 -1.219739e+02 -3.000000e+00 + vertex -7.370096e+01 -1.222500e+02 -3.000000e+00 + vertex -7.359046e+01 -1.224870e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.240193e+01 -1.215000e+02 -3.000000e+00 + vertex 7.218092e+01 -1.219739e+02 -3.000000e+00 + vertex 7.359046e+01 -1.224870e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.370096e+01 -1.222500e+02 -3.000000e+00 + vertex 7.240193e+01 -1.215000e+02 -3.000000e+00 + vertex 7.359046e+01 -1.224870e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063119e-01 -4.226093e-01 -0.000000e+00 + outer loop + vertex 7.629904e+01 -1.222500e+02 -3.000000e+00 + vertex 7.629904e+01 -1.222500e+02 -6.000000e+00 + vertex 7.640954e+01 -1.224870e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659254e-01 -2.588206e-01 0.000000e+00 + outer loop + vertex -7.781908e+01 -1.219739e+02 -3.000000e+00 + vertex -7.781908e+01 -1.219739e+02 0.000000e+00 + vertex -7.795443e+01 -1.224791e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659254e-01 -2.588206e-01 0.000000e+00 + outer loop + vertex -7.781908e+01 -1.219739e+02 0.000000e+00 + vertex -7.795443e+01 -1.224791e+02 0.000000e+00 + vertex -7.795443e+01 -1.224791e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659290e-01 -2.588073e-01 -0.000000e+00 + outer loop + vertex -7.204558e+01 -1.224791e+02 0.000000e+00 + vertex -7.218092e+01 -1.219739e+02 -3.000000e+00 + vertex -7.204558e+01 -1.224791e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659290e-01 -2.588073e-01 0.000000e+00 + outer loop + vertex 7.218092e+01 -1.219739e+02 -3.000000e+00 + vertex 7.218092e+01 -1.219739e+02 0.000000e+00 + vertex 7.204558e+01 -1.224791e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659290e-01 -2.588073e-01 0.000000e+00 + outer loop + vertex 7.218092e+01 -1.219739e+02 0.000000e+00 + vertex 7.204558e+01 -1.224791e+02 0.000000e+00 + vertex 7.204558e+01 -1.224791e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.781908e+01 -1.219739e+02 -3.000000e+00 + vertex 7.614907e+01 -1.220358e+02 -3.000000e+00 + vertex 7.795443e+01 -1.224791e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659254e-01 -2.588206e-01 -0.000000e+00 + outer loop + vertex 7.795443e+01 -1.224791e+02 0.000000e+00 + vertex 7.781908e+01 -1.219739e+02 -3.000000e+00 + vertex 7.795443e+01 -1.224791e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659290e-01 -2.588073e-01 -0.000000e+00 + outer loop + vertex -7.218092e+01 -1.219739e+02 0.000000e+00 + vertex -7.218092e+01 -1.219739e+02 -3.000000e+00 + vertex -7.204558e+01 -1.224791e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.218092e+01 -1.219739e+02 0.000000e+00 + vertex -7.218092e+01 -1.219739e+02 0.000000e+00 + vertex 7.204558e+01 -1.224791e+02 0.000000e+00 + endloop + endfacet + facet normal -9.659254e-01 -2.588206e-01 -0.000000e+00 + outer loop + vertex 7.781908e+01 -1.219739e+02 0.000000e+00 + vertex 7.781908e+01 -1.219739e+02 -3.000000e+00 + vertex 7.795443e+01 -1.224791e+02 0.000000e+00 + endloop + endfacet + facet normal 8.191503e-01 -5.735790e-01 0.000000e+00 + outer loop + vertex -7.614907e+01 -1.220358e+02 -6.000000e+00 + vertex -7.614907e+01 -1.220358e+02 -3.000000e+00 + vertex -7.629904e+01 -1.222500e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191503e-01 -5.735790e-01 0.000000e+00 + outer loop + vertex -7.614907e+01 -1.220358e+02 -3.000000e+00 + vertex -7.629904e+01 -1.222500e+02 -3.000000e+00 + vertex -7.629904e+01 -1.222500e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191636e-01 -5.735599e-01 -0.000000e+00 + outer loop + vertex -7.370096e+01 -1.222500e+02 -3.000000e+00 + vertex -7.385093e+01 -1.220358e+02 -6.000000e+00 + vertex -7.370096e+01 -1.222500e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.487613e+01 1.215051e+02 -6.000000e+00 + vertex 7.370096e+01 -1.222500e+02 -6.000000e+00 + vertex -7.370096e+01 -1.222500e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.385093e+01 -1.220358e+02 -6.000000e+00 + vertex -7.487613e+01 1.215051e+02 -6.000000e+00 + vertex -7.370096e+01 -1.222500e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.487613e+01 1.215051e+02 -6.000000e+00 + vertex 7.385093e+01 -1.220358e+02 -6.000000e+00 + vertex 7.370096e+01 -1.222500e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191636e-01 -5.735599e-01 0.000000e+00 + outer loop + vertex 7.385093e+01 -1.220358e+02 -6.000000e+00 + vertex 7.385093e+01 -1.220358e+02 -3.000000e+00 + vertex 7.370096e+01 -1.222500e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191636e-01 -5.735599e-01 0.000000e+00 + outer loop + vertex 7.385093e+01 -1.220358e+02 -3.000000e+00 + vertex 7.370096e+01 -1.222500e+02 -3.000000e+00 + vertex 7.370096e+01 -1.222500e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.614907e+01 -1.220358e+02 -6.000000e+00 + vertex 7.526048e+01 1.215228e+02 -6.000000e+00 + vertex 7.629904e+01 -1.222500e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191503e-01 -5.735790e-01 -0.000000e+00 + outer loop + vertex 7.629904e+01 -1.222500e+02 -3.000000e+00 + vertex 7.614907e+01 -1.220358e+02 -6.000000e+00 + vertex 7.629904e+01 -1.222500e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.614907e+01 -1.220358e+02 -3.000000e+00 + vertex -7.729813e+01 -1.210716e+02 -3.000000e+00 + vertex -7.629904e+01 -1.222500e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.729813e+01 -1.210716e+02 -3.000000e+00 + vertex -7.759807e+01 -1.215000e+02 -3.000000e+00 + vertex -7.629904e+01 -1.222500e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191636e-01 -5.735599e-01 -0.000000e+00 + outer loop + vertex -7.385093e+01 -1.220358e+02 -3.000000e+00 + vertex -7.385093e+01 -1.220358e+02 -6.000000e+00 + vertex -7.370096e+01 -1.222500e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.218092e+01 -1.219739e+02 -3.000000e+00 + vertex -7.240193e+01 -1.215000e+02 -3.000000e+00 + vertex -7.370096e+01 -1.222500e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.240193e+01 -1.215000e+02 -3.000000e+00 + vertex -7.385093e+01 -1.220358e+02 -3.000000e+00 + vertex -7.370096e+01 -1.222500e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.270186e+01 -1.210716e+02 -3.000000e+00 + vertex 7.240193e+01 -1.215000e+02 -3.000000e+00 + vertex 7.370096e+01 -1.222500e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.385093e+01 -1.220358e+02 -3.000000e+00 + vertex 7.270186e+01 -1.210716e+02 -3.000000e+00 + vertex 7.370096e+01 -1.222500e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191503e-01 -5.735790e-01 -0.000000e+00 + outer loop + vertex 7.614907e+01 -1.220358e+02 -3.000000e+00 + vertex 7.614907e+01 -1.220358e+02 -6.000000e+00 + vertex 7.629904e+01 -1.222500e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex -7.596418e+01 -1.218509e+02 -6.000000e+00 + vertex -7.596418e+01 -1.218509e+02 -3.000000e+00 + vertex -7.614907e+01 -1.220358e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex -7.596418e+01 -1.218509e+02 -3.000000e+00 + vertex -7.614907e+01 -1.220358e+02 -3.000000e+00 + vertex -7.614907e+01 -1.220358e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex -7.385093e+01 -1.220358e+02 -3.000000e+00 + vertex -7.403582e+01 -1.218509e+02 -6.000000e+00 + vertex -7.385093e+01 -1.220358e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.403582e+01 -1.218509e+02 -6.000000e+00 + vertex -7.487613e+01 1.215051e+02 -6.000000e+00 + vertex -7.385093e+01 -1.220358e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.487613e+01 1.215051e+02 -6.000000e+00 + vertex 7.403582e+01 -1.218509e+02 -6.000000e+00 + vertex 7.385093e+01 -1.220358e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex 7.403582e+01 -1.218509e+02 -6.000000e+00 + vertex 7.403582e+01 -1.218509e+02 -3.000000e+00 + vertex 7.385093e+01 -1.220358e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex 7.403582e+01 -1.218509e+02 -3.000000e+00 + vertex 7.385093e+01 -1.220358e+02 -3.000000e+00 + vertex 7.385093e+01 -1.220358e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.596418e+01 -1.218509e+02 -6.000000e+00 + vertex 7.526048e+01 1.215228e+02 -6.000000e+00 + vertex 7.614907e+01 -1.220358e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex 7.614907e+01 -1.220358e+02 -3.000000e+00 + vertex 7.596418e+01 -1.218509e+02 -6.000000e+00 + vertex 7.614907e+01 -1.220358e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.596418e+01 -1.218509e+02 -3.000000e+00 + vertex -7.692836e+01 -1.207019e+02 -3.000000e+00 + vertex -7.614907e+01 -1.220358e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.692836e+01 -1.207019e+02 -3.000000e+00 + vertex -7.729813e+01 -1.210716e+02 -3.000000e+00 + vertex -7.614907e+01 -1.220358e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex -7.403582e+01 -1.218509e+02 -3.000000e+00 + vertex -7.403582e+01 -1.218509e+02 -6.000000e+00 + vertex -7.385093e+01 -1.220358e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.240193e+01 -1.215000e+02 -3.000000e+00 + vertex -7.270186e+01 -1.210716e+02 -3.000000e+00 + vertex -7.385093e+01 -1.220358e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.270186e+01 -1.210716e+02 -3.000000e+00 + vertex -7.403582e+01 -1.218509e+02 -3.000000e+00 + vertex -7.385093e+01 -1.220358e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.307164e+01 -1.207019e+02 -3.000000e+00 + vertex 7.270186e+01 -1.210716e+02 -3.000000e+00 + vertex 7.385093e+01 -1.220358e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.403582e+01 -1.218509e+02 -3.000000e+00 + vertex 7.307164e+01 -1.207019e+02 -3.000000e+00 + vertex 7.385093e+01 -1.220358e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex 7.596418e+01 -1.218509e+02 -3.000000e+00 + vertex 7.596418e+01 -1.218509e+02 -6.000000e+00 + vertex 7.614907e+01 -1.220358e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.729813e+01 -1.210716e+02 -3.000000e+00 + vertex 7.596418e+01 -1.218509e+02 -3.000000e+00 + vertex 7.614907e+01 -1.220358e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.781908e+01 -1.219739e+02 -3.000000e+00 + vertex 7.759807e+01 -1.215000e+02 -3.000000e+00 + vertex 7.614907e+01 -1.220358e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.759807e+01 -1.215000e+02 -3.000000e+00 + vertex 7.729813e+01 -1.210716e+02 -3.000000e+00 + vertex 7.614907e+01 -1.220358e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063039e-01 -4.226265e-01 0.000000e+00 + outer loop + vertex -7.759807e+01 -1.215000e+02 -3.000000e+00 + vertex -7.759807e+01 -1.215000e+02 0.000000e+00 + vertex -7.781908e+01 -1.219739e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063039e-01 -4.226265e-01 0.000000e+00 + outer loop + vertex -7.759807e+01 -1.215000e+02 0.000000e+00 + vertex -7.781908e+01 -1.219739e+02 0.000000e+00 + vertex -7.781908e+01 -1.219739e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063039e-01 -4.226265e-01 -0.000000e+00 + outer loop + vertex -7.218092e+01 -1.219739e+02 0.000000e+00 + vertex -7.240193e+01 -1.215000e+02 -3.000000e+00 + vertex -7.218092e+01 -1.219739e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063039e-01 -4.226265e-01 0.000000e+00 + outer loop + vertex 7.240193e+01 -1.215000e+02 -3.000000e+00 + vertex 7.240193e+01 -1.215000e+02 0.000000e+00 + vertex 7.218092e+01 -1.219739e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063039e-01 -4.226265e-01 0.000000e+00 + outer loop + vertex 7.240193e+01 -1.215000e+02 0.000000e+00 + vertex 7.218092e+01 -1.219739e+02 0.000000e+00 + vertex 7.218092e+01 -1.219739e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063039e-01 -4.226265e-01 -0.000000e+00 + outer loop + vertex 7.781908e+01 -1.219739e+02 0.000000e+00 + vertex 7.759807e+01 -1.215000e+02 -3.000000e+00 + vertex 7.781908e+01 -1.219739e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.270186e+01 -1.210716e+02 0.000000e+00 + vertex -7.240193e+01 -1.215000e+02 0.000000e+00 + vertex -7.218092e+01 -1.219739e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.240193e+01 -1.215000e+02 0.000000e+00 + vertex 7.270186e+01 -1.210716e+02 0.000000e+00 + vertex -7.218092e+01 -1.219739e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.218092e+01 -1.219739e+02 0.000000e+00 + vertex 7.240193e+01 -1.215000e+02 0.000000e+00 + vertex -7.218092e+01 -1.219739e+02 0.000000e+00 + endloop + endfacet + facet normal -9.063039e-01 -4.226265e-01 -0.000000e+00 + outer loop + vertex -7.240193e+01 -1.215000e+02 0.000000e+00 + vertex -7.240193e+01 -1.215000e+02 -3.000000e+00 + vertex -7.218092e+01 -1.219739e+02 0.000000e+00 + endloop + endfacet + facet normal -9.063039e-01 -4.226265e-01 -0.000000e+00 + outer loop + vertex 7.759807e+01 -1.215000e+02 0.000000e+00 + vertex 7.759807e+01 -1.215000e+02 -3.000000e+00 + vertex 7.781908e+01 -1.219739e+02 0.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 -8.191636e-01 0.000000e+00 + outer loop + vertex -7.575000e+01 -1.217010e+02 -6.000000e+00 + vertex -7.575000e+01 -1.217010e+02 -3.000000e+00 + vertex -7.596418e+01 -1.218509e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 -8.191636e-01 0.000000e+00 + outer loop + vertex -7.575000e+01 -1.217010e+02 -3.000000e+00 + vertex -7.596418e+01 -1.218509e+02 -3.000000e+00 + vertex -7.596418e+01 -1.218509e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 -8.191636e-01 -0.000000e+00 + outer loop + vertex -7.403582e+01 -1.218509e+02 -3.000000e+00 + vertex -7.425000e+01 -1.217010e+02 -6.000000e+00 + vertex -7.403582e+01 -1.218509e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.425000e+01 -1.217010e+02 -6.000000e+00 + vertex -7.487613e+01 1.215051e+02 -6.000000e+00 + vertex -7.403582e+01 -1.218509e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.487613e+01 1.215051e+02 -6.000000e+00 + vertex 7.425000e+01 -1.217010e+02 -6.000000e+00 + vertex 7.403582e+01 -1.218509e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 -8.191636e-01 0.000000e+00 + outer loop + vertex 7.425000e+01 -1.217010e+02 -6.000000e+00 + vertex 7.425000e+01 -1.217010e+02 -3.000000e+00 + vertex 7.403582e+01 -1.218509e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 -8.191636e-01 0.000000e+00 + outer loop + vertex 7.425000e+01 -1.217010e+02 -3.000000e+00 + vertex 7.403582e+01 -1.218509e+02 -3.000000e+00 + vertex 7.403582e+01 -1.218509e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.575000e+01 -1.217010e+02 -6.000000e+00 + vertex 7.526048e+01 1.215228e+02 -6.000000e+00 + vertex 7.596418e+01 -1.218509e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 -8.191636e-01 -0.000000e+00 + outer loop + vertex 7.596418e+01 -1.218509e+02 -3.000000e+00 + vertex 7.575000e+01 -1.217010e+02 -6.000000e+00 + vertex 7.596418e+01 -1.218509e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.575000e+01 -1.217010e+02 -3.000000e+00 + vertex -7.650000e+01 -1.204019e+02 -3.000000e+00 + vertex -7.596418e+01 -1.218509e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 -1.204019e+02 -3.000000e+00 + vertex -7.692836e+01 -1.207019e+02 -3.000000e+00 + vertex -7.596418e+01 -1.218509e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 -8.191636e-01 -0.000000e+00 + outer loop + vertex -7.425000e+01 -1.217010e+02 -3.000000e+00 + vertex -7.425000e+01 -1.217010e+02 -6.000000e+00 + vertex -7.403582e+01 -1.218509e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.270186e+01 -1.210716e+02 -3.000000e+00 + vertex -7.307164e+01 -1.207019e+02 -3.000000e+00 + vertex -7.403582e+01 -1.218509e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.307164e+01 -1.207019e+02 -3.000000e+00 + vertex -7.425000e+01 -1.217010e+02 -3.000000e+00 + vertex -7.403582e+01 -1.218509e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 -1.204019e+02 -3.000000e+00 + vertex 7.307164e+01 -1.207019e+02 -3.000000e+00 + vertex 7.403582e+01 -1.218509e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.425000e+01 -1.217010e+02 -3.000000e+00 + vertex 7.350000e+01 -1.204019e+02 -3.000000e+00 + vertex 7.403582e+01 -1.218509e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 -8.191636e-01 -0.000000e+00 + outer loop + vertex 7.575000e+01 -1.217010e+02 -3.000000e+00 + vertex 7.575000e+01 -1.217010e+02 -6.000000e+00 + vertex 7.596418e+01 -1.218509e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.692836e+01 -1.207019e+02 -3.000000e+00 + vertex 7.575000e+01 -1.217010e+02 -3.000000e+00 + vertex 7.596418e+01 -1.218509e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.729813e+01 -1.210716e+02 -3.000000e+00 + vertex 7.692836e+01 -1.207019e+02 -3.000000e+00 + vertex 7.596418e+01 -1.218509e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 -9.063010e-01 0.000000e+00 + outer loop + vertex -7.551303e+01 -1.215905e+02 -6.000000e+00 + vertex -7.551303e+01 -1.215905e+02 -3.000000e+00 + vertex -7.575000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 -9.063010e-01 0.000000e+00 + outer loop + vertex -7.551303e+01 -1.215905e+02 -3.000000e+00 + vertex -7.575000e+01 -1.217010e+02 -3.000000e+00 + vertex -7.575000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.250000e+02 1.240000e+02 -6.000000e+00 + vertex -7.551303e+01 -1.215905e+02 -6.000000e+00 + vertex -7.575000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 -9.063010e-01 -0.000000e+00 + outer loop + vertex -7.425000e+01 -1.217010e+02 -3.000000e+00 + vertex -7.448697e+01 -1.215905e+02 -6.000000e+00 + vertex -7.425000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.448697e+01 -1.215905e+02 -6.000000e+00 + vertex -7.487613e+01 1.215051e+02 -6.000000e+00 + vertex -7.425000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.359046e+01 1.224870e+02 -6.000000e+00 + vertex 7.370096e+01 1.222500e+02 -6.000000e+00 + vertex 7.425000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.370096e+01 1.222500e+02 -6.000000e+00 + vertex 7.385093e+01 1.220358e+02 -6.000000e+00 + vertex 7.425000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.385093e+01 1.220358e+02 -6.000000e+00 + vertex 7.403582e+01 1.218509e+02 -6.000000e+00 + vertex 7.425000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.403582e+01 1.218509e+02 -6.000000e+00 + vertex 7.448697e+01 -1.215905e+02 -6.000000e+00 + vertex 7.425000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.439746e+01 1.216263e+02 -6.000000e+00 + vertex -7.417957e+01 1.217443e+02 -6.000000e+00 + vertex 7.425000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.487613e+01 1.215051e+02 -6.000000e+00 + vertex -7.463177e+01 1.215459e+02 -6.000000e+00 + vertex 7.425000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.463177e+01 1.215459e+02 -6.000000e+00 + vertex -7.439746e+01 1.216263e+02 -6.000000e+00 + vertex 7.425000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.417957e+01 1.217443e+02 -6.000000e+00 + vertex -7.398408e+01 1.218964e+02 -6.000000e+00 + vertex 7.425000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.398408e+01 1.218964e+02 -6.000000e+00 + vertex -7.381629e+01 1.220787e+02 -6.000000e+00 + vertex 7.425000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.381629e+01 1.220787e+02 -6.000000e+00 + vertex -7.368079e+01 1.222861e+02 -6.000000e+00 + vertex 7.425000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.368079e+01 1.222861e+02 -6.000000e+00 + vertex -7.358127e+01 1.225130e+02 -6.000000e+00 + vertex 7.425000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.358127e+01 1.225130e+02 -6.000000e+00 + vertex -7.352046e+01 1.227531e+02 -6.000000e+00 + vertex 7.425000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.352046e+01 1.227531e+02 -6.000000e+00 + vertex -7.350000e+01 1.230000e+02 -6.000000e+00 + vertex 7.425000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.314279e+01 1.247660e+02 -6.000000e+00 + vertex -7.300000e+01 1.248660e+02 -6.000000e+00 + vertex 7.425000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.300000e+01 1.248660e+02 -6.000000e+00 + vertex -7.284202e+01 1.249397e+02 -6.000000e+00 + vertex 7.425000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.350000e+01 1.230000e+02 -6.000000e+00 + vertex -7.336602e+01 1.245000e+02 -6.000000e+00 + vertex 7.425000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.336602e+01 1.245000e+02 -6.000000e+00 + vertex -7.326604e+01 1.246428e+02 -6.000000e+00 + vertex 7.425000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.326604e+01 1.246428e+02 -6.000000e+00 + vertex -7.314279e+01 1.247660e+02 -6.000000e+00 + vertex 7.425000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.250000e+01 1.250000e+02 -6.000000e+00 + vertex 7.359046e+01 1.224870e+02 -6.000000e+00 + vertex 7.425000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.267365e+01 1.249848e+02 -6.000000e+00 + vertex -7.250000e+01 1.250000e+02 -6.000000e+00 + vertex 7.425000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.284202e+01 1.249397e+02 -6.000000e+00 + vertex -7.267365e+01 1.249848e+02 -6.000000e+00 + vertex 7.425000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 -9.063010e-01 0.000000e+00 + outer loop + vertex 7.448697e+01 -1.215905e+02 -6.000000e+00 + vertex 7.448697e+01 -1.215905e+02 -3.000000e+00 + vertex 7.425000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 -9.063010e-01 0.000000e+00 + outer loop + vertex 7.448697e+01 -1.215905e+02 -3.000000e+00 + vertex 7.425000e+01 -1.217010e+02 -3.000000e+00 + vertex 7.425000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.500000e+01 1.215000e+02 -6.000000e+00 + vertex 7.526048e+01 1.215228e+02 -6.000000e+00 + vertex 7.575000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.425000e+01 1.217010e+02 -6.000000e+00 + vertex 7.448697e+01 1.215905e+02 -6.000000e+00 + vertex 7.575000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.448697e+01 1.215905e+02 -6.000000e+00 + vertex 7.473953e+01 1.215228e+02 -6.000000e+00 + vertex 7.575000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.473953e+01 1.215228e+02 -6.000000e+00 + vertex 7.500000e+01 1.215000e+02 -6.000000e+00 + vertex 7.575000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.403582e+01 1.218509e+02 -6.000000e+00 + vertex 7.425000e+01 1.217010e+02 -6.000000e+00 + vertex 7.575000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.551303e+01 -1.215905e+02 -6.000000e+00 + vertex 7.403582e+01 1.218509e+02 -6.000000e+00 + vertex 7.575000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 -9.063010e-01 -0.000000e+00 + outer loop + vertex 7.575000e+01 -1.217010e+02 -3.000000e+00 + vertex 7.551303e+01 -1.215905e+02 -6.000000e+00 + vertex 7.575000e+01 -1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.551303e+01 -1.215905e+02 -3.000000e+00 + vertex -7.602606e+01 -1.201809e+02 -3.000000e+00 + vertex -7.575000e+01 -1.217010e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.602606e+01 -1.201809e+02 -3.000000e+00 + vertex -7.650000e+01 -1.204019e+02 -3.000000e+00 + vertex -7.575000e+01 -1.217010e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 -9.063010e-01 -0.000000e+00 + outer loop + vertex -7.448697e+01 -1.215905e+02 -3.000000e+00 + vertex -7.448697e+01 -1.215905e+02 -6.000000e+00 + vertex -7.425000e+01 -1.217010e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.307164e+01 -1.207019e+02 -3.000000e+00 + vertex -7.350000e+01 -1.204019e+02 -3.000000e+00 + vertex -7.425000e+01 -1.217010e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.350000e+01 -1.204019e+02 -3.000000e+00 + vertex -7.448697e+01 -1.215905e+02 -3.000000e+00 + vertex -7.425000e+01 -1.217010e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.397394e+01 -1.201809e+02 -3.000000e+00 + vertex 7.350000e+01 -1.204019e+02 -3.000000e+00 + vertex 7.425000e+01 -1.217010e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.448697e+01 -1.215905e+02 -3.000000e+00 + vertex 7.397394e+01 -1.201809e+02 -3.000000e+00 + vertex 7.425000e+01 -1.217010e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 -9.063010e-01 -0.000000e+00 + outer loop + vertex 7.551303e+01 -1.215905e+02 -3.000000e+00 + vertex 7.551303e+01 -1.215905e+02 -6.000000e+00 + vertex 7.575000e+01 -1.217010e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.650000e+01 -1.204019e+02 -3.000000e+00 + vertex 7.551303e+01 -1.215905e+02 -3.000000e+00 + vertex 7.575000e+01 -1.217010e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.692836e+01 -1.207019e+02 -3.000000e+00 + vertex 7.650000e+01 -1.204019e+02 -3.000000e+00 + vertex 7.575000e+01 -1.217010e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588011e-01 -9.659306e-01 0.000000e+00 + outer loop + vertex -7.526048e+01 -1.215228e+02 -6.000000e+00 + vertex -7.526048e+01 -1.215228e+02 -3.000000e+00 + vertex -7.551303e+01 -1.215905e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588011e-01 -9.659306e-01 0.000000e+00 + outer loop + vertex -7.526048e+01 -1.215228e+02 -3.000000e+00 + vertex -7.551303e+01 -1.215905e+02 -3.000000e+00 + vertex -7.551303e+01 -1.215905e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.250000e+02 1.240000e+02 -6.000000e+00 + vertex -7.526048e+01 -1.215228e+02 -6.000000e+00 + vertex -7.551303e+01 -1.215905e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.587940e-01 -9.659325e-01 -0.000000e+00 + outer loop + vertex -7.448697e+01 -1.215905e+02 -3.000000e+00 + vertex -7.473953e+01 -1.215228e+02 -6.000000e+00 + vertex -7.448697e+01 -1.215905e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.473953e+01 -1.215228e+02 -6.000000e+00 + vertex -7.487613e+01 1.215051e+02 -6.000000e+00 + vertex -7.448697e+01 -1.215905e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.403582e+01 1.218509e+02 -6.000000e+00 + vertex 7.473953e+01 -1.215228e+02 -6.000000e+00 + vertex 7.448697e+01 -1.215905e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.587940e-01 -9.659325e-01 0.000000e+00 + outer loop + vertex 7.473953e+01 -1.215228e+02 -6.000000e+00 + vertex 7.473953e+01 -1.215228e+02 -3.000000e+00 + vertex 7.448697e+01 -1.215905e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.587940e-01 -9.659325e-01 0.000000e+00 + outer loop + vertex 7.473953e+01 -1.215228e+02 -3.000000e+00 + vertex 7.448697e+01 -1.215905e+02 -3.000000e+00 + vertex 7.448697e+01 -1.215905e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.526048e+01 -1.215228e+02 -6.000000e+00 + vertex 7.403582e+01 1.218509e+02 -6.000000e+00 + vertex 7.551303e+01 -1.215905e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588011e-01 -9.659306e-01 -0.000000e+00 + outer loop + vertex 7.551303e+01 -1.215905e+02 -3.000000e+00 + vertex 7.526048e+01 -1.215228e+02 -6.000000e+00 + vertex 7.551303e+01 -1.215905e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.526048e+01 -1.215228e+02 -3.000000e+00 + vertex -7.552095e+01 -1.200456e+02 -3.000000e+00 + vertex -7.551303e+01 -1.215905e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.552095e+01 -1.200456e+02 -3.000000e+00 + vertex -7.602606e+01 -1.201809e+02 -3.000000e+00 + vertex -7.551303e+01 -1.215905e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.587940e-01 -9.659325e-01 -0.000000e+00 + outer loop + vertex -7.473953e+01 -1.215228e+02 -3.000000e+00 + vertex -7.473953e+01 -1.215228e+02 -6.000000e+00 + vertex -7.448697e+01 -1.215905e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.350000e+01 -1.204019e+02 -3.000000e+00 + vertex -7.397394e+01 -1.201809e+02 -3.000000e+00 + vertex -7.448697e+01 -1.215905e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.397394e+01 -1.201809e+02 -3.000000e+00 + vertex -7.473953e+01 -1.215228e+02 -3.000000e+00 + vertex -7.448697e+01 -1.215905e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.447906e+01 -1.200456e+02 -3.000000e+00 + vertex 7.397394e+01 -1.201809e+02 -3.000000e+00 + vertex 7.448697e+01 -1.215905e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.473953e+01 -1.215228e+02 -3.000000e+00 + vertex 7.447906e+01 -1.200456e+02 -3.000000e+00 + vertex 7.448697e+01 -1.215905e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588011e-01 -9.659306e-01 -0.000000e+00 + outer loop + vertex 7.526048e+01 -1.215228e+02 -3.000000e+00 + vertex 7.526048e+01 -1.215228e+02 -6.000000e+00 + vertex 7.551303e+01 -1.215905e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.602606e+01 -1.201809e+02 -3.000000e+00 + vertex 7.526048e+01 -1.215228e+02 -3.000000e+00 + vertex 7.551303e+01 -1.215905e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.650000e+01 -1.204019e+02 -3.000000e+00 + vertex 7.602606e+01 -1.201809e+02 -3.000000e+00 + vertex 7.551303e+01 -1.215905e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.716695e-02 -9.961937e-01 0.000000e+00 + outer loop + vertex -7.500000e+01 -1.215000e+02 -6.000000e+00 + vertex -7.500000e+01 -1.215000e+02 -3.000000e+00 + vertex -7.526048e+01 -1.215228e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.716695e-02 -9.961937e-01 0.000000e+00 + outer loop + vertex -7.500000e+01 -1.215000e+02 -3.000000e+00 + vertex -7.526048e+01 -1.215228e+02 -3.000000e+00 + vertex -7.526048e+01 -1.215228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.249397e+02 1.243420e+02 -6.000000e+00 + vertex -1.248660e+02 1.245000e+02 -6.000000e+00 + vertex -7.526048e+01 -1.215228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.536823e+01 1.215459e+02 -6.000000e+00 + vertex -7.500000e+01 -1.215000e+02 -6.000000e+00 + vertex -7.526048e+01 -1.215228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.249848e+02 1.241736e+02 -6.000000e+00 + vertex -1.249397e+02 1.243420e+02 -6.000000e+00 + vertex -7.526048e+01 -1.215228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.250000e+02 1.240000e+02 -6.000000e+00 + vertex -1.249848e+02 1.241736e+02 -6.000000e+00 + vertex -7.526048e+01 -1.215228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.248660e+02 1.245000e+02 -6.000000e+00 + vertex -1.247660e+02 1.246428e+02 -6.000000e+00 + vertex -7.526048e+01 -1.215228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.247660e+02 1.246428e+02 -6.000000e+00 + vertex -1.246428e+02 1.247660e+02 -6.000000e+00 + vertex -7.526048e+01 -1.215228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.246428e+02 1.247660e+02 -6.000000e+00 + vertex -1.245000e+02 1.248660e+02 -6.000000e+00 + vertex -7.526048e+01 -1.215228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.245000e+02 1.248660e+02 -6.000000e+00 + vertex -1.243420e+02 1.249397e+02 -6.000000e+00 + vertex -7.526048e+01 -1.215228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.243420e+02 1.249397e+02 -6.000000e+00 + vertex -1.241736e+02 1.249848e+02 -6.000000e+00 + vertex -7.526048e+01 -1.215228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.241736e+02 1.249848e+02 -6.000000e+00 + vertex -1.240000e+02 1.250000e+02 -6.000000e+00 + vertex -7.526048e+01 -1.215228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.601592e+01 1.218964e+02 -6.000000e+00 + vertex -7.582042e+01 1.217443e+02 -6.000000e+00 + vertex -7.526048e+01 -1.215228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.582042e+01 1.217443e+02 -6.000000e+00 + vertex -7.560255e+01 1.216263e+02 -6.000000e+00 + vertex -7.526048e+01 -1.215228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.560255e+01 1.216263e+02 -6.000000e+00 + vertex -7.536823e+01 1.215459e+02 -6.000000e+00 + vertex -7.526048e+01 -1.215228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.240000e+02 1.250000e+02 -6.000000e+00 + vertex -7.631921e+01 1.222861e+02 -6.000000e+00 + vertex -7.526048e+01 -1.215228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.631921e+01 1.222861e+02 -6.000000e+00 + vertex -7.618371e+01 1.220787e+02 -6.000000e+00 + vertex -7.526048e+01 -1.215228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.618371e+01 1.220787e+02 -6.000000e+00 + vertex -7.601592e+01 1.218964e+02 -6.000000e+00 + vertex -7.526048e+01 -1.215228e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.716695e-02 -9.961937e-01 -0.000000e+00 + outer loop + vertex -7.473953e+01 -1.215228e+02 -3.000000e+00 + vertex -7.500000e+01 -1.215000e+02 -6.000000e+00 + vertex -7.473953e+01 -1.215228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.500000e+01 -1.215000e+02 -6.000000e+00 + vertex -7.487613e+01 1.215051e+02 -6.000000e+00 + vertex -7.473953e+01 -1.215228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.403582e+01 1.218509e+02 -6.000000e+00 + vertex 7.500000e+01 -1.215000e+02 -6.000000e+00 + vertex 7.473953e+01 -1.215228e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.716695e-02 -9.961937e-01 0.000000e+00 + outer loop + vertex 7.500000e+01 -1.215000e+02 -6.000000e+00 + vertex 7.500000e+01 -1.215000e+02 -3.000000e+00 + vertex 7.473953e+01 -1.215228e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.716695e-02 -9.961937e-01 0.000000e+00 + outer loop + vertex 7.500000e+01 -1.215000e+02 -3.000000e+00 + vertex 7.473953e+01 -1.215228e+02 -3.000000e+00 + vertex 7.473953e+01 -1.215228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.500000e+01 -1.215000e+02 -6.000000e+00 + vertex 7.403582e+01 1.218509e+02 -6.000000e+00 + vertex 7.526048e+01 -1.215228e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.716695e-02 -9.961937e-01 -0.000000e+00 + outer loop + vertex 7.526048e+01 -1.215228e+02 -3.000000e+00 + vertex 7.500000e+01 -1.215000e+02 -6.000000e+00 + vertex 7.526048e+01 -1.215228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.500000e+01 -1.215000e+02 -3.000000e+00 + vertex -7.500000e+01 -1.200000e+02 -3.000000e+00 + vertex -7.526048e+01 -1.215228e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.500000e+01 -1.200000e+02 -3.000000e+00 + vertex -7.552095e+01 -1.200456e+02 -3.000000e+00 + vertex -7.526048e+01 -1.215228e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.716695e-02 -9.961937e-01 -0.000000e+00 + outer loop + vertex -7.500000e+01 -1.215000e+02 -3.000000e+00 + vertex -7.500000e+01 -1.215000e+02 -6.000000e+00 + vertex -7.473953e+01 -1.215228e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.397394e+01 -1.201809e+02 -3.000000e+00 + vertex -7.447906e+01 -1.200456e+02 -3.000000e+00 + vertex -7.473953e+01 -1.215228e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.447906e+01 -1.200456e+02 -3.000000e+00 + vertex -7.500000e+01 -1.215000e+02 -3.000000e+00 + vertex -7.473953e+01 -1.215228e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.500000e+01 -1.200000e+02 -3.000000e+00 + vertex 7.447906e+01 -1.200456e+02 -3.000000e+00 + vertex 7.473953e+01 -1.215228e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.500000e+01 -1.215000e+02 -3.000000e+00 + vertex 7.500000e+01 -1.200000e+02 -3.000000e+00 + vertex 7.473953e+01 -1.215228e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.716695e-02 -9.961937e-01 -0.000000e+00 + outer loop + vertex 7.500000e+01 -1.215000e+02 -3.000000e+00 + vertex 7.500000e+01 -1.215000e+02 -6.000000e+00 + vertex 7.526048e+01 -1.215228e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.552095e+01 -1.200456e+02 -3.000000e+00 + vertex 7.500000e+01 -1.215000e+02 -3.000000e+00 + vertex 7.526048e+01 -1.215228e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.602606e+01 -1.201809e+02 -3.000000e+00 + vertex 7.552095e+01 -1.200456e+02 -3.000000e+00 + vertex 7.526048e+01 -1.215228e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.536823e+01 1.215459e+02 -6.000000e+00 + vertex -7.512387e+01 1.215051e+02 -6.000000e+00 + vertex -7.500000e+01 -1.215000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.512387e+01 1.215051e+02 -6.000000e+00 + vertex -7.487613e+01 1.215051e+02 -6.000000e+00 + vertex -7.500000e+01 -1.215000e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191569e-01 -5.735694e-01 0.000000e+00 + outer loop + vertex -7.729813e+01 -1.210716e+02 -3.000000e+00 + vertex -7.729813e+01 -1.210716e+02 0.000000e+00 + vertex -7.759807e+01 -1.215000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191569e-01 -5.735694e-01 0.000000e+00 + outer loop + vertex -7.729813e+01 -1.210716e+02 0.000000e+00 + vertex -7.759807e+01 -1.215000e+02 0.000000e+00 + vertex -7.759807e+01 -1.215000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.447906e+01 -1.200456e+02 -3.000000e+00 + vertex -7.500000e+01 -1.200000e+02 -3.000000e+00 + vertex -7.500000e+01 -1.215000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191569e-01 -5.735694e-01 -0.000000e+00 + outer loop + vertex -7.240193e+01 -1.215000e+02 0.000000e+00 + vertex -7.270186e+01 -1.210716e+02 -3.000000e+00 + vertex -7.240193e+01 -1.215000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191569e-01 -5.735694e-01 0.000000e+00 + outer loop + vertex 7.270186e+01 -1.210716e+02 -3.000000e+00 + vertex 7.270186e+01 -1.210716e+02 0.000000e+00 + vertex 7.240193e+01 -1.215000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191569e-01 -5.735694e-01 0.000000e+00 + outer loop + vertex 7.270186e+01 -1.210716e+02 0.000000e+00 + vertex 7.240193e+01 -1.215000e+02 0.000000e+00 + vertex 7.240193e+01 -1.215000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.552095e+01 -1.200456e+02 -3.000000e+00 + vertex 7.500000e+01 -1.200000e+02 -3.000000e+00 + vertex 7.500000e+01 -1.215000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191569e-01 -5.735694e-01 -0.000000e+00 + outer loop + vertex 7.759807e+01 -1.215000e+02 0.000000e+00 + vertex 7.729813e+01 -1.210716e+02 -3.000000e+00 + vertex 7.759807e+01 -1.215000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.270186e+01 -1.210716e+02 0.000000e+00 + vertex -7.270186e+01 -1.210716e+02 0.000000e+00 + vertex -7.240193e+01 -1.215000e+02 0.000000e+00 + endloop + endfacet + facet normal -8.191569e-01 -5.735694e-01 -0.000000e+00 + outer loop + vertex -7.270186e+01 -1.210716e+02 0.000000e+00 + vertex -7.270186e+01 -1.210716e+02 -3.000000e+00 + vertex -7.240193e+01 -1.215000e+02 0.000000e+00 + endloop + endfacet + facet normal -8.191569e-01 -5.735694e-01 -0.000000e+00 + outer loop + vertex 7.729813e+01 -1.210716e+02 0.000000e+00 + vertex 7.729813e+01 -1.210716e+02 -3.000000e+00 + vertex 7.759807e+01 -1.215000e+02 0.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex -7.692836e+01 -1.207019e+02 -3.000000e+00 + vertex -7.692836e+01 -1.207019e+02 0.000000e+00 + vertex -7.729813e+01 -1.210716e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex -7.692836e+01 -1.207019e+02 0.000000e+00 + vertex -7.729813e+01 -1.210716e+02 0.000000e+00 + vertex -7.729813e+01 -1.210716e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex -7.270186e+01 -1.210716e+02 0.000000e+00 + vertex -7.307164e+01 -1.207019e+02 -3.000000e+00 + vertex -7.270186e+01 -1.210716e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex 7.307164e+01 -1.207019e+02 -3.000000e+00 + vertex 7.307164e+01 -1.207019e+02 0.000000e+00 + vertex 7.270186e+01 -1.210716e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex 7.307164e+01 -1.207019e+02 0.000000e+00 + vertex 7.270186e+01 -1.210716e+02 0.000000e+00 + vertex 7.270186e+01 -1.210716e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex 7.729813e+01 -1.210716e+02 0.000000e+00 + vertex 7.692836e+01 -1.207019e+02 -3.000000e+00 + vertex 7.729813e+01 -1.210716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.692836e+01 -1.207019e+02 0.000000e+00 + vertex -7.650000e+01 1.204019e+02 0.000000e+00 + vertex -7.729813e+01 -1.210716e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.350000e+01 1.204019e+02 0.000000e+00 + vertex -7.397394e+01 1.201809e+02 0.000000e+00 + vertex -7.270186e+01 -1.210716e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.250000e+02 1.240000e+02 0.000000e+00 + vertex 7.692836e+01 1.207019e+02 0.000000e+00 + vertex -7.270186e+01 -1.210716e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.692836e+01 1.207019e+02 0.000000e+00 + vertex 7.650000e+01 1.204019e+02 0.000000e+00 + vertex -7.270186e+01 -1.210716e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.650000e+01 1.204019e+02 0.000000e+00 + vertex 7.602606e+01 1.201809e+02 0.000000e+00 + vertex -7.270186e+01 -1.210716e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.270186e+01 -1.210716e+02 0.000000e+00 + vertex 1.250000e+02 1.240000e+02 0.000000e+00 + vertex -7.270186e+01 -1.210716e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.397394e+01 1.201809e+02 0.000000e+00 + vertex -7.307164e+01 -1.207019e+02 0.000000e+00 + vertex -7.270186e+01 -1.210716e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.218092e+01 1.219739e+02 0.000000e+00 + vertex -7.240193e+01 1.215000e+02 0.000000e+00 + vertex -7.270186e+01 -1.210716e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.240193e+01 1.215000e+02 0.000000e+00 + vertex -7.270186e+01 1.210716e+02 0.000000e+00 + vertex -7.270186e+01 -1.210716e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.270186e+01 1.210716e+02 0.000000e+00 + vertex -7.307164e+01 1.207019e+02 0.000000e+00 + vertex -7.270186e+01 -1.210716e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.307164e+01 1.207019e+02 0.000000e+00 + vertex -7.350000e+01 1.204019e+02 0.000000e+00 + vertex -7.270186e+01 -1.210716e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.602606e+01 1.201809e+02 0.000000e+00 + vertex 7.552095e+01 1.200456e+02 0.000000e+00 + vertex -7.270186e+01 -1.210716e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.552095e+01 1.200456e+02 0.000000e+00 + vertex 7.500000e+01 1.200000e+02 0.000000e+00 + vertex -7.270186e+01 -1.210716e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.500000e+01 1.200000e+02 0.000000e+00 + vertex -7.218092e+01 1.219739e+02 0.000000e+00 + vertex -7.270186e+01 -1.210716e+02 0.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex -7.307164e+01 -1.207019e+02 0.000000e+00 + vertex -7.307164e+01 -1.207019e+02 -3.000000e+00 + vertex -7.270186e+01 -1.210716e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.307164e+01 -1.207019e+02 0.000000e+00 + vertex 1.250000e+02 1.240000e+02 0.000000e+00 + vertex 7.270186e+01 -1.210716e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.250000e+02 1.240000e+02 0.000000e+00 + vertex 7.692836e+01 -1.207019e+02 0.000000e+00 + vertex 7.729813e+01 -1.210716e+02 0.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex 7.692836e+01 -1.207019e+02 0.000000e+00 + vertex 7.692836e+01 -1.207019e+02 -3.000000e+00 + vertex 7.729813e+01 -1.210716e+02 0.000000e+00 + endloop + endfacet + facet normal 5.735694e-01 -8.191569e-01 0.000000e+00 + outer loop + vertex -7.650000e+01 -1.204019e+02 -3.000000e+00 + vertex -7.650000e+01 -1.204019e+02 0.000000e+00 + vertex -7.692836e+01 -1.207019e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735694e-01 -8.191569e-01 0.000000e+00 + outer loop + vertex -7.650000e+01 -1.204019e+02 0.000000e+00 + vertex -7.692836e+01 -1.207019e+02 0.000000e+00 + vertex -7.692836e+01 -1.207019e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735694e-01 -8.191569e-01 -0.000000e+00 + outer loop + vertex -7.307164e+01 -1.207019e+02 0.000000e+00 + vertex -7.350000e+01 -1.204019e+02 -3.000000e+00 + vertex -7.307164e+01 -1.207019e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735694e-01 -8.191569e-01 0.000000e+00 + outer loop + vertex 7.350000e+01 -1.204019e+02 -3.000000e+00 + vertex 7.350000e+01 -1.204019e+02 0.000000e+00 + vertex 7.307164e+01 -1.207019e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735694e-01 -8.191569e-01 0.000000e+00 + outer loop + vertex 7.350000e+01 -1.204019e+02 0.000000e+00 + vertex 7.307164e+01 -1.207019e+02 0.000000e+00 + vertex 7.307164e+01 -1.207019e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735694e-01 -8.191569e-01 -0.000000e+00 + outer loop + vertex 7.692836e+01 -1.207019e+02 0.000000e+00 + vertex 7.650000e+01 -1.204019e+02 -3.000000e+00 + vertex 7.692836e+01 -1.207019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 -1.204019e+02 0.000000e+00 + vertex -7.650000e+01 1.204019e+02 0.000000e+00 + vertex -7.692836e+01 -1.207019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.397394e+01 1.201809e+02 0.000000e+00 + vertex -7.350000e+01 -1.204019e+02 0.000000e+00 + vertex -7.307164e+01 -1.207019e+02 0.000000e+00 + endloop + endfacet + facet normal -5.735694e-01 -8.191569e-01 -0.000000e+00 + outer loop + vertex -7.350000e+01 -1.204019e+02 0.000000e+00 + vertex -7.350000e+01 -1.204019e+02 -3.000000e+00 + vertex -7.307164e+01 -1.207019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 -1.204019e+02 0.000000e+00 + vertex 1.250000e+02 1.240000e+02 0.000000e+00 + vertex 7.307164e+01 -1.207019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.250000e+02 1.240000e+02 0.000000e+00 + vertex 7.650000e+01 -1.204019e+02 0.000000e+00 + vertex 7.692836e+01 -1.207019e+02 0.000000e+00 + endloop + endfacet + facet normal -5.735694e-01 -8.191569e-01 -0.000000e+00 + outer loop + vertex 7.650000e+01 -1.204019e+02 0.000000e+00 + vertex 7.650000e+01 -1.204019e+02 -3.000000e+00 + vertex 7.692836e+01 -1.207019e+02 0.000000e+00 + endloop + endfacet + facet normal 4.226265e-01 -9.063039e-01 0.000000e+00 + outer loop + vertex -7.602606e+01 -1.201809e+02 -3.000000e+00 + vertex -7.602606e+01 -1.201809e+02 0.000000e+00 + vertex -7.650000e+01 -1.204019e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226265e-01 -9.063039e-01 0.000000e+00 + outer loop + vertex -7.602606e+01 -1.201809e+02 0.000000e+00 + vertex -7.650000e+01 -1.204019e+02 0.000000e+00 + vertex -7.650000e+01 -1.204019e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226265e-01 -9.063039e-01 -0.000000e+00 + outer loop + vertex -7.350000e+01 -1.204019e+02 0.000000e+00 + vertex -7.397394e+01 -1.201809e+02 -3.000000e+00 + vertex -7.350000e+01 -1.204019e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226265e-01 -9.063039e-01 0.000000e+00 + outer loop + vertex 7.397394e+01 -1.201809e+02 -3.000000e+00 + vertex 7.397394e+01 -1.201809e+02 0.000000e+00 + vertex 7.350000e+01 -1.204019e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226265e-01 -9.063039e-01 0.000000e+00 + outer loop + vertex 7.397394e+01 -1.201809e+02 0.000000e+00 + vertex 7.350000e+01 -1.204019e+02 0.000000e+00 + vertex 7.350000e+01 -1.204019e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226265e-01 -9.063039e-01 -0.000000e+00 + outer loop + vertex 7.650000e+01 -1.204019e+02 0.000000e+00 + vertex 7.602606e+01 -1.201809e+02 -3.000000e+00 + vertex 7.650000e+01 -1.204019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.602606e+01 -1.201809e+02 0.000000e+00 + vertex -7.650000e+01 1.204019e+02 0.000000e+00 + vertex -7.650000e+01 -1.204019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.397394e+01 1.201809e+02 0.000000e+00 + vertex -7.397394e+01 -1.201809e+02 0.000000e+00 + vertex -7.350000e+01 -1.204019e+02 0.000000e+00 + endloop + endfacet + facet normal -4.226265e-01 -9.063039e-01 -0.000000e+00 + outer loop + vertex -7.397394e+01 -1.201809e+02 0.000000e+00 + vertex -7.397394e+01 -1.201809e+02 -3.000000e+00 + vertex -7.350000e+01 -1.204019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.397394e+01 -1.201809e+02 0.000000e+00 + vertex 1.250000e+02 1.240000e+02 0.000000e+00 + vertex 7.350000e+01 -1.204019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.250000e+02 1.240000e+02 0.000000e+00 + vertex 7.602606e+01 -1.201809e+02 0.000000e+00 + vertex 7.650000e+01 -1.204019e+02 0.000000e+00 + endloop + endfacet + facet normal -4.226265e-01 -9.063039e-01 -0.000000e+00 + outer loop + vertex 7.602606e+01 -1.201809e+02 0.000000e+00 + vertex 7.602606e+01 -1.201809e+02 -3.000000e+00 + vertex 7.650000e+01 -1.204019e+02 0.000000e+00 + endloop + endfacet + facet normal 2.588109e-01 -9.659280e-01 0.000000e+00 + outer loop + vertex -7.552095e+01 -1.200456e+02 -3.000000e+00 + vertex -7.552095e+01 -1.200456e+02 0.000000e+00 + vertex -7.602606e+01 -1.201809e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588109e-01 -9.659280e-01 0.000000e+00 + outer loop + vertex -7.552095e+01 -1.200456e+02 0.000000e+00 + vertex -7.602606e+01 -1.201809e+02 0.000000e+00 + vertex -7.602606e+01 -1.201809e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588073e-01 -9.659290e-01 -0.000000e+00 + outer loop + vertex -7.397394e+01 -1.201809e+02 0.000000e+00 + vertex -7.447906e+01 -1.200456e+02 -3.000000e+00 + vertex -7.397394e+01 -1.201809e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588073e-01 -9.659290e-01 0.000000e+00 + outer loop + vertex 7.447906e+01 -1.200456e+02 -3.000000e+00 + vertex 7.447906e+01 -1.200456e+02 0.000000e+00 + vertex 7.397394e+01 -1.201809e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588073e-01 -9.659290e-01 0.000000e+00 + outer loop + vertex 7.447906e+01 -1.200456e+02 0.000000e+00 + vertex 7.397394e+01 -1.201809e+02 0.000000e+00 + vertex 7.397394e+01 -1.201809e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588109e-01 -9.659280e-01 -0.000000e+00 + outer loop + vertex 7.602606e+01 -1.201809e+02 0.000000e+00 + vertex 7.552095e+01 -1.200456e+02 -3.000000e+00 + vertex 7.602606e+01 -1.201809e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.500000e+01 1.200000e+02 0.000000e+00 + vertex -7.552095e+01 1.200456e+02 0.000000e+00 + vertex -7.602606e+01 -1.201809e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.552095e+01 1.200456e+02 0.000000e+00 + vertex -7.602606e+01 1.201809e+02 0.000000e+00 + vertex -7.602606e+01 -1.201809e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.602606e+01 1.201809e+02 0.000000e+00 + vertex -7.650000e+01 1.204019e+02 0.000000e+00 + vertex -7.602606e+01 -1.201809e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.552095e+01 -1.200456e+02 0.000000e+00 + vertex -7.397394e+01 1.201809e+02 0.000000e+00 + vertex -7.602606e+01 -1.201809e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.397394e+01 1.201809e+02 0.000000e+00 + vertex -7.447906e+01 1.200456e+02 0.000000e+00 + vertex -7.602606e+01 -1.201809e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.447906e+01 1.200456e+02 0.000000e+00 + vertex -7.500000e+01 1.200000e+02 0.000000e+00 + vertex -7.602606e+01 -1.201809e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.397394e+01 1.201809e+02 0.000000e+00 + vertex -7.447906e+01 -1.200456e+02 0.000000e+00 + vertex -7.397394e+01 -1.201809e+02 0.000000e+00 + endloop + endfacet + facet normal -2.588073e-01 -9.659290e-01 -0.000000e+00 + outer loop + vertex -7.447906e+01 -1.200456e+02 0.000000e+00 + vertex -7.447906e+01 -1.200456e+02 -3.000000e+00 + vertex -7.397394e+01 -1.201809e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.447906e+01 -1.200456e+02 0.000000e+00 + vertex 1.250000e+02 1.240000e+02 0.000000e+00 + vertex 7.397394e+01 -1.201809e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.250000e+02 1.240000e+02 0.000000e+00 + vertex 7.552095e+01 -1.200456e+02 0.000000e+00 + vertex 7.602606e+01 -1.201809e+02 0.000000e+00 + endloop + endfacet + facet normal -2.588109e-01 -9.659280e-01 -0.000000e+00 + outer loop + vertex 7.552095e+01 -1.200456e+02 0.000000e+00 + vertex 7.552095e+01 -1.200456e+02 -3.000000e+00 + vertex 7.602606e+01 -1.201809e+02 0.000000e+00 + endloop + endfacet + facet normal 8.716695e-02 -9.961937e-01 0.000000e+00 + outer loop + vertex -7.500000e+01 -1.200000e+02 -3.000000e+00 + vertex -7.500000e+01 -1.200000e+02 0.000000e+00 + vertex -7.552095e+01 -1.200456e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.716695e-02 -9.961937e-01 0.000000e+00 + outer loop + vertex -7.500000e+01 -1.200000e+02 0.000000e+00 + vertex -7.552095e+01 -1.200456e+02 0.000000e+00 + vertex -7.552095e+01 -1.200456e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.716695e-02 -9.961937e-01 -0.000000e+00 + outer loop + vertex -7.447906e+01 -1.200456e+02 0.000000e+00 + vertex -7.500000e+01 -1.200000e+02 -3.000000e+00 + vertex -7.447906e+01 -1.200456e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.716695e-02 -9.961937e-01 0.000000e+00 + outer loop + vertex 7.500000e+01 -1.200000e+02 -3.000000e+00 + vertex 7.500000e+01 -1.200000e+02 0.000000e+00 + vertex 7.447906e+01 -1.200456e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.716695e-02 -9.961937e-01 0.000000e+00 + outer loop + vertex 7.500000e+01 -1.200000e+02 0.000000e+00 + vertex 7.447906e+01 -1.200456e+02 0.000000e+00 + vertex 7.447906e+01 -1.200456e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.716695e-02 -9.961937e-01 -0.000000e+00 + outer loop + vertex 7.552095e+01 -1.200456e+02 0.000000e+00 + vertex 7.500000e+01 -1.200000e+02 -3.000000e+00 + vertex 7.552095e+01 -1.200456e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.500000e+01 -1.200000e+02 0.000000e+00 + vertex -7.397394e+01 1.201809e+02 0.000000e+00 + vertex -7.552095e+01 -1.200456e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.397394e+01 1.201809e+02 0.000000e+00 + vertex -7.500000e+01 -1.200000e+02 0.000000e+00 + vertex -7.447906e+01 -1.200456e+02 0.000000e+00 + endloop + endfacet + facet normal -8.716695e-02 -9.961937e-01 -0.000000e+00 + outer loop + vertex -7.500000e+01 -1.200000e+02 0.000000e+00 + vertex -7.500000e+01 -1.200000e+02 -3.000000e+00 + vertex -7.447906e+01 -1.200456e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.500000e+01 -1.200000e+02 0.000000e+00 + vertex 1.250000e+02 1.240000e+02 0.000000e+00 + vertex 7.447906e+01 -1.200456e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.250000e+02 1.240000e+02 0.000000e+00 + vertex 7.500000e+01 -1.200000e+02 0.000000e+00 + vertex 7.552095e+01 -1.200456e+02 0.000000e+00 + endloop + endfacet + facet normal -8.716695e-02 -9.961937e-01 -0.000000e+00 + outer loop + vertex 7.500000e+01 -1.200000e+02 0.000000e+00 + vertex 7.500000e+01 -1.200000e+02 -3.000000e+00 + vertex 7.552095e+01 -1.200456e+02 0.000000e+00 + endloop + endfacet + facet normal 8.716695e-02 9.961937e-01 -0.000000e+00 + outer loop + vertex -7.552095e+01 1.200456e+02 -3.000000e+00 + vertex -7.552095e+01 1.200456e+02 0.000000e+00 + vertex -7.500000e+01 1.200000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.716695e-02 9.961937e-01 0.000000e+00 + outer loop + vertex -7.552095e+01 1.200456e+02 0.000000e+00 + vertex -7.500000e+01 1.200000e+02 0.000000e+00 + vertex -7.500000e+01 1.200000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.716695e-02 9.961937e-01 0.000000e+00 + outer loop + vertex -7.500000e+01 1.200000e+02 0.000000e+00 + vertex -7.447906e+01 1.200456e+02 -3.000000e+00 + vertex -7.500000e+01 1.200000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.447906e+01 1.200456e+02 -3.000000e+00 + vertex -7.463177e+01 1.215459e+02 -3.000000e+00 + vertex -7.500000e+01 1.200000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.463177e+01 1.215459e+02 -3.000000e+00 + vertex -7.487613e+01 1.215051e+02 -3.000000e+00 + vertex -7.500000e+01 1.200000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.487613e+01 1.215051e+02 -3.000000e+00 + vertex -7.512387e+01 1.215051e+02 -3.000000e+00 + vertex -7.500000e+01 1.200000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.512387e+01 1.215051e+02 -3.000000e+00 + vertex -7.552095e+01 1.200456e+02 -3.000000e+00 + vertex -7.500000e+01 1.200000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.716695e-02 9.961937e-01 -0.000000e+00 + outer loop + vertex 7.447906e+01 1.200456e+02 -3.000000e+00 + vertex 7.447906e+01 1.200456e+02 0.000000e+00 + vertex 7.500000e+01 1.200000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.716695e-02 9.961937e-01 0.000000e+00 + outer loop + vertex 7.447906e+01 1.200456e+02 0.000000e+00 + vertex 7.500000e+01 1.200000e+02 0.000000e+00 + vertex 7.500000e+01 1.200000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.716695e-02 9.961937e-01 0.000000e+00 + outer loop + vertex 7.500000e+01 1.200000e+02 0.000000e+00 + vertex 7.552095e+01 1.200456e+02 -3.000000e+00 + vertex 7.500000e+01 1.200000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.500000e+01 1.215000e+02 -3.000000e+00 + vertex 7.447906e+01 1.200456e+02 -3.000000e+00 + vertex 7.500000e+01 1.200000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.526048e+01 1.215228e+02 -3.000000e+00 + vertex 7.500000e+01 1.215000e+02 -3.000000e+00 + vertex 7.500000e+01 1.200000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.552095e+01 1.200456e+02 -3.000000e+00 + vertex 7.526048e+01 1.215228e+02 -3.000000e+00 + vertex 7.500000e+01 1.200000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.716695e-02 9.961937e-01 0.000000e+00 + outer loop + vertex -7.447906e+01 1.200456e+02 0.000000e+00 + vertex -7.447906e+01 1.200456e+02 -3.000000e+00 + vertex -7.500000e+01 1.200000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.204558e+01 1.224791e+02 0.000000e+00 + vertex -7.218092e+01 1.219739e+02 0.000000e+00 + vertex 7.500000e+01 1.200000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 1.230000e+02 0.000000e+00 + vertex -7.204558e+01 1.224791e+02 0.000000e+00 + vertex 7.500000e+01 1.200000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.447906e+01 1.200456e+02 0.000000e+00 + vertex -7.200000e+01 1.230000e+02 0.000000e+00 + vertex 7.500000e+01 1.200000e+02 0.000000e+00 + endloop + endfacet + facet normal -8.716695e-02 9.961937e-01 0.000000e+00 + outer loop + vertex 7.552095e+01 1.200456e+02 0.000000e+00 + vertex 7.552095e+01 1.200456e+02 -3.000000e+00 + vertex 7.500000e+01 1.200000e+02 0.000000e+00 + endloop + endfacet + facet normal 2.588109e-01 9.659280e-01 -0.000000e+00 + outer loop + vertex -7.602606e+01 1.201809e+02 -3.000000e+00 + vertex -7.602606e+01 1.201809e+02 0.000000e+00 + vertex -7.552095e+01 1.200456e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588109e-01 9.659280e-01 0.000000e+00 + outer loop + vertex -7.602606e+01 1.201809e+02 0.000000e+00 + vertex -7.552095e+01 1.200456e+02 0.000000e+00 + vertex -7.552095e+01 1.200456e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.512387e+01 1.215051e+02 -3.000000e+00 + vertex -7.536823e+01 1.215459e+02 -3.000000e+00 + vertex -7.552095e+01 1.200456e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.536823e+01 1.215459e+02 -3.000000e+00 + vertex -7.602606e+01 1.201809e+02 -3.000000e+00 + vertex -7.552095e+01 1.200456e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588073e-01 9.659290e-01 0.000000e+00 + outer loop + vertex -7.447906e+01 1.200456e+02 0.000000e+00 + vertex -7.397394e+01 1.201809e+02 -3.000000e+00 + vertex -7.447906e+01 1.200456e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.397394e+01 1.201809e+02 -3.000000e+00 + vertex -7.439746e+01 1.216263e+02 -3.000000e+00 + vertex -7.447906e+01 1.200456e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.439746e+01 1.216263e+02 -3.000000e+00 + vertex -7.463177e+01 1.215459e+02 -3.000000e+00 + vertex -7.447906e+01 1.200456e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588073e-01 9.659290e-01 -0.000000e+00 + outer loop + vertex 7.397394e+01 1.201809e+02 -3.000000e+00 + vertex 7.397394e+01 1.201809e+02 0.000000e+00 + vertex 7.447906e+01 1.200456e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588073e-01 9.659290e-01 0.000000e+00 + outer loop + vertex 7.397394e+01 1.201809e+02 0.000000e+00 + vertex 7.447906e+01 1.200456e+02 0.000000e+00 + vertex 7.447906e+01 1.200456e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.473953e+01 1.215228e+02 -3.000000e+00 + vertex 7.397394e+01 1.201809e+02 -3.000000e+00 + vertex 7.447906e+01 1.200456e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.500000e+01 1.215000e+02 -3.000000e+00 + vertex 7.473953e+01 1.215228e+02 -3.000000e+00 + vertex 7.447906e+01 1.200456e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588109e-01 9.659280e-01 0.000000e+00 + outer loop + vertex 7.552095e+01 1.200456e+02 0.000000e+00 + vertex 7.602606e+01 1.201809e+02 -3.000000e+00 + vertex 7.552095e+01 1.200456e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.551303e+01 1.215905e+02 -3.000000e+00 + vertex 7.526048e+01 1.215228e+02 -3.000000e+00 + vertex 7.552095e+01 1.200456e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.602606e+01 1.201809e+02 -3.000000e+00 + vertex 7.551303e+01 1.215905e+02 -3.000000e+00 + vertex 7.552095e+01 1.200456e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588073e-01 9.659290e-01 0.000000e+00 + outer loop + vertex -7.397394e+01 1.201809e+02 0.000000e+00 + vertex -7.397394e+01 1.201809e+02 -3.000000e+00 + vertex -7.447906e+01 1.200456e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.397394e+01 1.201809e+02 0.000000e+00 + vertex -7.100000e+01 1.250000e+02 0.000000e+00 + vertex 7.447906e+01 1.200456e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 1.240000e+02 0.000000e+00 + vertex -7.200000e+01 1.230000e+02 0.000000e+00 + vertex 7.447906e+01 1.200456e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.100000e+01 1.250000e+02 0.000000e+00 + vertex -7.200000e+01 1.240000e+02 0.000000e+00 + vertex 7.447906e+01 1.200456e+02 0.000000e+00 + endloop + endfacet + facet normal -2.588109e-01 9.659280e-01 0.000000e+00 + outer loop + vertex 7.602606e+01 1.201809e+02 0.000000e+00 + vertex 7.602606e+01 1.201809e+02 -3.000000e+00 + vertex 7.552095e+01 1.200456e+02 0.000000e+00 + endloop + endfacet + facet normal 4.226265e-01 9.063039e-01 -0.000000e+00 + outer loop + vertex -7.650000e+01 1.204019e+02 -3.000000e+00 + vertex -7.650000e+01 1.204019e+02 0.000000e+00 + vertex -7.602606e+01 1.201809e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226265e-01 9.063039e-01 0.000000e+00 + outer loop + vertex -7.650000e+01 1.204019e+02 0.000000e+00 + vertex -7.602606e+01 1.201809e+02 0.000000e+00 + vertex -7.602606e+01 1.201809e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.536823e+01 1.215459e+02 -3.000000e+00 + vertex -7.560255e+01 1.216263e+02 -3.000000e+00 + vertex -7.602606e+01 1.201809e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.560255e+01 1.216263e+02 -3.000000e+00 + vertex -7.650000e+01 1.204019e+02 -3.000000e+00 + vertex -7.602606e+01 1.201809e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226265e-01 9.063039e-01 0.000000e+00 + outer loop + vertex -7.397394e+01 1.201809e+02 0.000000e+00 + vertex -7.350000e+01 1.204019e+02 -3.000000e+00 + vertex -7.397394e+01 1.201809e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.350000e+01 1.204019e+02 -3.000000e+00 + vertex -7.417957e+01 1.217443e+02 -3.000000e+00 + vertex -7.397394e+01 1.201809e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.417957e+01 1.217443e+02 -3.000000e+00 + vertex -7.439746e+01 1.216263e+02 -3.000000e+00 + vertex -7.397394e+01 1.201809e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226265e-01 9.063039e-01 -0.000000e+00 + outer loop + vertex 7.350000e+01 1.204019e+02 -3.000000e+00 + vertex 7.350000e+01 1.204019e+02 0.000000e+00 + vertex 7.397394e+01 1.201809e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226265e-01 9.063039e-01 0.000000e+00 + outer loop + vertex 7.350000e+01 1.204019e+02 0.000000e+00 + vertex 7.397394e+01 1.201809e+02 0.000000e+00 + vertex 7.397394e+01 1.201809e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.448697e+01 1.215905e+02 -3.000000e+00 + vertex 7.350000e+01 1.204019e+02 -3.000000e+00 + vertex 7.397394e+01 1.201809e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.473953e+01 1.215228e+02 -3.000000e+00 + vertex 7.448697e+01 1.215905e+02 -3.000000e+00 + vertex 7.397394e+01 1.201809e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226265e-01 9.063039e-01 0.000000e+00 + outer loop + vertex 7.602606e+01 1.201809e+02 0.000000e+00 + vertex 7.650000e+01 1.204019e+02 -3.000000e+00 + vertex 7.602606e+01 1.201809e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.575000e+01 1.217010e+02 -3.000000e+00 + vertex 7.551303e+01 1.215905e+02 -3.000000e+00 + vertex 7.602606e+01 1.201809e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.650000e+01 1.204019e+02 -3.000000e+00 + vertex 7.575000e+01 1.217010e+02 -3.000000e+00 + vertex 7.602606e+01 1.201809e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226265e-01 9.063039e-01 0.000000e+00 + outer loop + vertex -7.350000e+01 1.204019e+02 0.000000e+00 + vertex -7.350000e+01 1.204019e+02 -3.000000e+00 + vertex -7.397394e+01 1.201809e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 1.204019e+02 0.000000e+00 + vertex -7.100000e+01 1.250000e+02 0.000000e+00 + vertex 7.397394e+01 1.201809e+02 0.000000e+00 + endloop + endfacet + facet normal -4.226265e-01 9.063039e-01 0.000000e+00 + outer loop + vertex 7.650000e+01 1.204019e+02 0.000000e+00 + vertex 7.650000e+01 1.204019e+02 -3.000000e+00 + vertex 7.602606e+01 1.201809e+02 0.000000e+00 + endloop + endfacet + facet normal 5.735694e-01 8.191569e-01 -0.000000e+00 + outer loop + vertex -7.692836e+01 1.207019e+02 -3.000000e+00 + vertex -7.692836e+01 1.207019e+02 0.000000e+00 + vertex -7.650000e+01 1.204019e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735694e-01 8.191569e-01 0.000000e+00 + outer loop + vertex -7.692836e+01 1.207019e+02 0.000000e+00 + vertex -7.650000e+01 1.204019e+02 0.000000e+00 + vertex -7.650000e+01 1.204019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.560255e+01 1.216263e+02 -3.000000e+00 + vertex -7.582042e+01 1.217443e+02 -3.000000e+00 + vertex -7.650000e+01 1.204019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.582042e+01 1.217443e+02 -3.000000e+00 + vertex -7.692836e+01 1.207019e+02 -3.000000e+00 + vertex -7.650000e+01 1.204019e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735694e-01 8.191569e-01 0.000000e+00 + outer loop + vertex -7.350000e+01 1.204019e+02 0.000000e+00 + vertex -7.307164e+01 1.207019e+02 -3.000000e+00 + vertex -7.350000e+01 1.204019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.307164e+01 1.207019e+02 -3.000000e+00 + vertex -7.398408e+01 1.218964e+02 -3.000000e+00 + vertex -7.350000e+01 1.204019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.398408e+01 1.218964e+02 -3.000000e+00 + vertex -7.417957e+01 1.217443e+02 -3.000000e+00 + vertex -7.350000e+01 1.204019e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735694e-01 8.191569e-01 -0.000000e+00 + outer loop + vertex 7.307164e+01 1.207019e+02 -3.000000e+00 + vertex 7.307164e+01 1.207019e+02 0.000000e+00 + vertex 7.350000e+01 1.204019e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735694e-01 8.191569e-01 0.000000e+00 + outer loop + vertex 7.307164e+01 1.207019e+02 0.000000e+00 + vertex 7.350000e+01 1.204019e+02 0.000000e+00 + vertex 7.350000e+01 1.204019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.425000e+01 1.217010e+02 -3.000000e+00 + vertex 7.307164e+01 1.207019e+02 -3.000000e+00 + vertex 7.350000e+01 1.204019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.448697e+01 1.215905e+02 -3.000000e+00 + vertex 7.425000e+01 1.217010e+02 -3.000000e+00 + vertex 7.350000e+01 1.204019e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735694e-01 8.191569e-01 0.000000e+00 + outer loop + vertex 7.650000e+01 1.204019e+02 0.000000e+00 + vertex 7.692836e+01 1.207019e+02 -3.000000e+00 + vertex 7.650000e+01 1.204019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.596418e+01 1.218509e+02 -3.000000e+00 + vertex 7.575000e+01 1.217010e+02 -3.000000e+00 + vertex 7.650000e+01 1.204019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.692836e+01 1.207019e+02 -3.000000e+00 + vertex 7.596418e+01 1.218509e+02 -3.000000e+00 + vertex 7.650000e+01 1.204019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.692836e+01 1.207019e+02 0.000000e+00 + vertex -1.250000e+02 1.240000e+02 0.000000e+00 + vertex -7.650000e+01 1.204019e+02 0.000000e+00 + endloop + endfacet + facet normal -5.735694e-01 8.191569e-01 0.000000e+00 + outer loop + vertex -7.307164e+01 1.207019e+02 0.000000e+00 + vertex -7.307164e+01 1.207019e+02 -3.000000e+00 + vertex -7.350000e+01 1.204019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.307164e+01 1.207019e+02 0.000000e+00 + vertex -7.100000e+01 1.250000e+02 0.000000e+00 + vertex 7.350000e+01 1.204019e+02 0.000000e+00 + endloop + endfacet + facet normal -5.735694e-01 8.191569e-01 0.000000e+00 + outer loop + vertex 7.692836e+01 1.207019e+02 0.000000e+00 + vertex 7.692836e+01 1.207019e+02 -3.000000e+00 + vertex 7.650000e+01 1.204019e+02 0.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 7.071068e-01 -0.000000e+00 + outer loop + vertex -7.729813e+01 1.210716e+02 -3.000000e+00 + vertex -7.729813e+01 1.210716e+02 0.000000e+00 + vertex -7.692836e+01 1.207019e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex -7.729813e+01 1.210716e+02 0.000000e+00 + vertex -7.692836e+01 1.207019e+02 0.000000e+00 + vertex -7.692836e+01 1.207019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.582042e+01 1.217443e+02 -3.000000e+00 + vertex -7.601592e+01 1.218964e+02 -3.000000e+00 + vertex -7.692836e+01 1.207019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.601592e+01 1.218964e+02 -3.000000e+00 + vertex -7.729813e+01 1.210716e+02 -3.000000e+00 + vertex -7.692836e+01 1.207019e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex -7.307164e+01 1.207019e+02 0.000000e+00 + vertex -7.270186e+01 1.210716e+02 -3.000000e+00 + vertex -7.307164e+01 1.207019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.270186e+01 1.210716e+02 -3.000000e+00 + vertex -7.381629e+01 1.220787e+02 -3.000000e+00 + vertex -7.307164e+01 1.207019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.381629e+01 1.220787e+02 -3.000000e+00 + vertex -7.398408e+01 1.218964e+02 -3.000000e+00 + vertex -7.307164e+01 1.207019e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 7.071068e-01 -0.000000e+00 + outer loop + vertex 7.270186e+01 1.210716e+02 -3.000000e+00 + vertex 7.270186e+01 1.210716e+02 0.000000e+00 + vertex 7.307164e+01 1.207019e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex 7.270186e+01 1.210716e+02 0.000000e+00 + vertex 7.307164e+01 1.207019e+02 0.000000e+00 + vertex 7.307164e+01 1.207019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.403582e+01 1.218509e+02 -3.000000e+00 + vertex 7.270186e+01 1.210716e+02 -3.000000e+00 + vertex 7.307164e+01 1.207019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.425000e+01 1.217010e+02 -3.000000e+00 + vertex 7.403582e+01 1.218509e+02 -3.000000e+00 + vertex 7.307164e+01 1.207019e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex 7.692836e+01 1.207019e+02 0.000000e+00 + vertex 7.729813e+01 1.210716e+02 -3.000000e+00 + vertex 7.692836e+01 1.207019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.614907e+01 1.220358e+02 -3.000000e+00 + vertex 7.596418e+01 1.218509e+02 -3.000000e+00 + vertex 7.692836e+01 1.207019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.729813e+01 1.210716e+02 -3.000000e+00 + vertex 7.614907e+01 1.220358e+02 -3.000000e+00 + vertex 7.692836e+01 1.207019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.729813e+01 1.210716e+02 0.000000e+00 + vertex -1.250000e+02 1.240000e+02 0.000000e+00 + vertex -7.692836e+01 1.207019e+02 0.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex -7.270186e+01 1.210716e+02 0.000000e+00 + vertex -7.270186e+01 1.210716e+02 -3.000000e+00 + vertex -7.307164e+01 1.207019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.270186e+01 1.210716e+02 0.000000e+00 + vertex -7.100000e+01 1.250000e+02 0.000000e+00 + vertex 7.307164e+01 1.207019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.250000e+02 1.240000e+02 0.000000e+00 + vertex 7.729813e+01 1.210716e+02 0.000000e+00 + vertex 7.692836e+01 1.207019e+02 0.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex 7.729813e+01 1.210716e+02 0.000000e+00 + vertex 7.729813e+01 1.210716e+02 -3.000000e+00 + vertex 7.692836e+01 1.207019e+02 0.000000e+00 + endloop + endfacet + facet normal 8.191569e-01 5.735694e-01 -0.000000e+00 + outer loop + vertex -7.759807e+01 1.215000e+02 -3.000000e+00 + vertex -7.759807e+01 1.215000e+02 0.000000e+00 + vertex -7.729813e+01 1.210716e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191569e-01 5.735694e-01 0.000000e+00 + outer loop + vertex -7.759807e+01 1.215000e+02 0.000000e+00 + vertex -7.729813e+01 1.210716e+02 0.000000e+00 + vertex -7.729813e+01 1.210716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.601592e+01 1.218964e+02 -3.000000e+00 + vertex -7.618371e+01 1.220787e+02 -3.000000e+00 + vertex -7.729813e+01 1.210716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.618371e+01 1.220787e+02 -3.000000e+00 + vertex -7.759807e+01 1.215000e+02 -3.000000e+00 + vertex -7.729813e+01 1.210716e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191569e-01 5.735694e-01 0.000000e+00 + outer loop + vertex -7.270186e+01 1.210716e+02 0.000000e+00 + vertex -7.240193e+01 1.215000e+02 -3.000000e+00 + vertex -7.270186e+01 1.210716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.240193e+01 1.215000e+02 -3.000000e+00 + vertex -7.368079e+01 1.222861e+02 -3.000000e+00 + vertex -7.270186e+01 1.210716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.368079e+01 1.222861e+02 -3.000000e+00 + vertex -7.381629e+01 1.220787e+02 -3.000000e+00 + vertex -7.270186e+01 1.210716e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191569e-01 5.735694e-01 -0.000000e+00 + outer loop + vertex 7.240193e+01 1.215000e+02 -3.000000e+00 + vertex 7.240193e+01 1.215000e+02 0.000000e+00 + vertex 7.270186e+01 1.210716e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191569e-01 5.735694e-01 0.000000e+00 + outer loop + vertex 7.240193e+01 1.215000e+02 0.000000e+00 + vertex 7.270186e+01 1.210716e+02 0.000000e+00 + vertex 7.270186e+01 1.210716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.385093e+01 1.220358e+02 -3.000000e+00 + vertex 7.240193e+01 1.215000e+02 -3.000000e+00 + vertex 7.270186e+01 1.210716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.403582e+01 1.218509e+02 -3.000000e+00 + vertex 7.385093e+01 1.220358e+02 -3.000000e+00 + vertex 7.270186e+01 1.210716e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191569e-01 5.735694e-01 0.000000e+00 + outer loop + vertex 7.729813e+01 1.210716e+02 0.000000e+00 + vertex 7.759807e+01 1.215000e+02 -3.000000e+00 + vertex 7.729813e+01 1.210716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.629904e+01 1.222500e+02 -3.000000e+00 + vertex 7.614907e+01 1.220358e+02 -3.000000e+00 + vertex 7.729813e+01 1.210716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.759807e+01 1.215000e+02 -3.000000e+00 + vertex 7.629904e+01 1.222500e+02 -3.000000e+00 + vertex 7.729813e+01 1.210716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.759807e+01 1.215000e+02 0.000000e+00 + vertex -1.250000e+02 1.240000e+02 0.000000e+00 + vertex -7.729813e+01 1.210716e+02 0.000000e+00 + endloop + endfacet + facet normal -8.191569e-01 5.735694e-01 0.000000e+00 + outer loop + vertex -7.240193e+01 1.215000e+02 0.000000e+00 + vertex -7.240193e+01 1.215000e+02 -3.000000e+00 + vertex -7.270186e+01 1.210716e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.240193e+01 1.215000e+02 0.000000e+00 + vertex -7.100000e+01 1.250000e+02 0.000000e+00 + vertex 7.270186e+01 1.210716e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.250000e+02 1.240000e+02 0.000000e+00 + vertex 7.759807e+01 1.215000e+02 0.000000e+00 + vertex 7.729813e+01 1.210716e+02 0.000000e+00 + endloop + endfacet + facet normal -8.191569e-01 5.735694e-01 0.000000e+00 + outer loop + vertex 7.759807e+01 1.215000e+02 0.000000e+00 + vertex 7.759807e+01 1.215000e+02 -3.000000e+00 + vertex 7.729813e+01 1.210716e+02 0.000000e+00 + endloop + endfacet + facet normal 8.716695e-02 9.961937e-01 -0.000000e+00 + outer loop + vertex 7.473953e+01 1.215228e+02 -6.000000e+00 + vertex 7.473953e+01 1.215228e+02 -3.000000e+00 + vertex 7.500000e+01 1.215000e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.716695e-02 9.961937e-01 0.000000e+00 + outer loop + vertex 7.473953e+01 1.215228e+02 -3.000000e+00 + vertex 7.500000e+01 1.215000e+02 -3.000000e+00 + vertex 7.500000e+01 1.215000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.716695e-02 9.961937e-01 0.000000e+00 + outer loop + vertex 7.500000e+01 1.215000e+02 -3.000000e+00 + vertex 7.526048e+01 1.215228e+02 -6.000000e+00 + vertex 7.500000e+01 1.215000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063039e-01 4.226265e-01 -0.000000e+00 + outer loop + vertex -7.781908e+01 1.219739e+02 -3.000000e+00 + vertex -7.781908e+01 1.219739e+02 0.000000e+00 + vertex -7.759807e+01 1.215000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063039e-01 4.226265e-01 0.000000e+00 + outer loop + vertex -7.781908e+01 1.219739e+02 0.000000e+00 + vertex -7.759807e+01 1.215000e+02 0.000000e+00 + vertex -7.759807e+01 1.215000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.618371e+01 1.220787e+02 -3.000000e+00 + vertex -7.781908e+01 1.219739e+02 -3.000000e+00 + vertex -7.759807e+01 1.215000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063039e-01 4.226265e-01 0.000000e+00 + outer loop + vertex -7.240193e+01 1.215000e+02 0.000000e+00 + vertex -7.218092e+01 1.219739e+02 -3.000000e+00 + vertex -7.240193e+01 1.215000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.218092e+01 1.219739e+02 -3.000000e+00 + vertex -7.358127e+01 1.225130e+02 -3.000000e+00 + vertex -7.240193e+01 1.215000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.358127e+01 1.225130e+02 -3.000000e+00 + vertex -7.368079e+01 1.222861e+02 -3.000000e+00 + vertex -7.240193e+01 1.215000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063039e-01 4.226265e-01 -0.000000e+00 + outer loop + vertex 7.218092e+01 1.219739e+02 -3.000000e+00 + vertex 7.218092e+01 1.219739e+02 0.000000e+00 + vertex 7.240193e+01 1.215000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063039e-01 4.226265e-01 0.000000e+00 + outer loop + vertex 7.218092e+01 1.219739e+02 0.000000e+00 + vertex 7.240193e+01 1.215000e+02 0.000000e+00 + vertex 7.240193e+01 1.215000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.370096e+01 1.222500e+02 -3.000000e+00 + vertex 7.218092e+01 1.219739e+02 -3.000000e+00 + vertex 7.240193e+01 1.215000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.385093e+01 1.220358e+02 -3.000000e+00 + vertex 7.370096e+01 1.222500e+02 -3.000000e+00 + vertex 7.240193e+01 1.215000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.716695e-02 9.961937e-01 0.000000e+00 + outer loop + vertex 7.526048e+01 1.215228e+02 -3.000000e+00 + vertex 7.526048e+01 1.215228e+02 -6.000000e+00 + vertex 7.500000e+01 1.215000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063039e-01 4.226265e-01 0.000000e+00 + outer loop + vertex 7.759807e+01 1.215000e+02 0.000000e+00 + vertex 7.781908e+01 1.219739e+02 -3.000000e+00 + vertex 7.759807e+01 1.215000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.640954e+01 1.224870e+02 -3.000000e+00 + vertex 7.629904e+01 1.222500e+02 -3.000000e+00 + vertex 7.759807e+01 1.215000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.781908e+01 1.219739e+02 -3.000000e+00 + vertex 7.640954e+01 1.224870e+02 -3.000000e+00 + vertex 7.759807e+01 1.215000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.781908e+01 1.219739e+02 0.000000e+00 + vertex -1.250000e+02 1.240000e+02 0.000000e+00 + vertex -7.759807e+01 1.215000e+02 0.000000e+00 + endloop + endfacet + facet normal -9.063039e-01 4.226265e-01 0.000000e+00 + outer loop + vertex -7.218092e+01 1.219739e+02 0.000000e+00 + vertex -7.218092e+01 1.219739e+02 -3.000000e+00 + vertex -7.240193e+01 1.215000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.218092e+01 1.219739e+02 0.000000e+00 + vertex -7.100000e+01 1.250000e+02 0.000000e+00 + vertex 7.240193e+01 1.215000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.250000e+02 1.240000e+02 0.000000e+00 + vertex 7.781908e+01 1.219739e+02 0.000000e+00 + vertex 7.759807e+01 1.215000e+02 0.000000e+00 + endloop + endfacet + facet normal -9.063039e-01 4.226265e-01 0.000000e+00 + outer loop + vertex 7.781908e+01 1.219739e+02 0.000000e+00 + vertex 7.781908e+01 1.219739e+02 -3.000000e+00 + vertex 7.759807e+01 1.215000e+02 0.000000e+00 + endloop + endfacet + facet normal 1.645697e-01 9.863655e-01 -0.000000e+00 + outer loop + vertex -7.536823e+01 1.215459e+02 -6.000000e+00 + vertex -7.536823e+01 1.215459e+02 -3.000000e+00 + vertex -7.512387e+01 1.215051e+02 -6.000000e+00 + endloop + endfacet + facet normal 1.645697e-01 9.863655e-01 0.000000e+00 + outer loop + vertex -7.536823e+01 1.215459e+02 -3.000000e+00 + vertex -7.512387e+01 1.215051e+02 -3.000000e+00 + vertex -7.512387e+01 1.215051e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex -7.512387e+01 1.215051e+02 -3.000000e+00 + vertex -7.487613e+01 1.215051e+02 -6.000000e+00 + vertex -7.512387e+01 1.215051e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex -7.512387e+01 1.215051e+02 -3.000000e+00 + vertex -7.487613e+01 1.215051e+02 -3.000000e+00 + vertex -7.487613e+01 1.215051e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.645697e-01 9.863655e-01 0.000000e+00 + outer loop + vertex -7.487613e+01 1.215051e+02 -3.000000e+00 + vertex -7.463177e+01 1.215459e+02 -6.000000e+00 + vertex -7.487613e+01 1.215051e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.645697e-01 9.863655e-01 0.000000e+00 + outer loop + vertex -7.463177e+01 1.215459e+02 -3.000000e+00 + vertex -7.463177e+01 1.215459e+02 -6.000000e+00 + vertex -7.487613e+01 1.215051e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.587940e-01 9.659325e-01 -0.000000e+00 + outer loop + vertex 7.448697e+01 1.215905e+02 -6.000000e+00 + vertex 7.448697e+01 1.215905e+02 -3.000000e+00 + vertex 7.473953e+01 1.215228e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.587940e-01 9.659325e-01 0.000000e+00 + outer loop + vertex 7.448697e+01 1.215905e+02 -3.000000e+00 + vertex 7.473953e+01 1.215228e+02 -3.000000e+00 + vertex 7.473953e+01 1.215228e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588011e-01 9.659306e-01 0.000000e+00 + outer loop + vertex 7.526048e+01 1.215228e+02 -3.000000e+00 + vertex 7.551303e+01 1.215905e+02 -6.000000e+00 + vertex 7.526048e+01 1.215228e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588011e-01 9.659306e-01 0.000000e+00 + outer loop + vertex 7.551303e+01 1.215905e+02 -3.000000e+00 + vertex 7.551303e+01 1.215905e+02 -6.000000e+00 + vertex 7.526048e+01 1.215228e+02 -3.000000e+00 + endloop + endfacet + facet normal 3.247049e-01 9.458154e-01 -0.000000e+00 + outer loop + vertex -7.560255e+01 1.216263e+02 -6.000000e+00 + vertex -7.560255e+01 1.216263e+02 -3.000000e+00 + vertex -7.536823e+01 1.215459e+02 -6.000000e+00 + endloop + endfacet + facet normal 3.247049e-01 9.458154e-01 0.000000e+00 + outer loop + vertex -7.560255e+01 1.216263e+02 -3.000000e+00 + vertex -7.536823e+01 1.215459e+02 -3.000000e+00 + vertex -7.536823e+01 1.215459e+02 -6.000000e+00 + endloop + endfacet + facet normal -3.247141e-01 9.458122e-01 0.000000e+00 + outer loop + vertex -7.463177e+01 1.215459e+02 -3.000000e+00 + vertex -7.439746e+01 1.216263e+02 -6.000000e+00 + vertex -7.463177e+01 1.215459e+02 -6.000000e+00 + endloop + endfacet + facet normal -3.247141e-01 9.458122e-01 0.000000e+00 + outer loop + vertex -7.439746e+01 1.216263e+02 -3.000000e+00 + vertex -7.439746e+01 1.216263e+02 -6.000000e+00 + vertex -7.463177e+01 1.215459e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 9.063010e-01 -0.000000e+00 + outer loop + vertex 7.425000e+01 1.217010e+02 -6.000000e+00 + vertex 7.425000e+01 1.217010e+02 -3.000000e+00 + vertex 7.448697e+01 1.215905e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex 7.425000e+01 1.217010e+02 -3.000000e+00 + vertex 7.448697e+01 1.215905e+02 -3.000000e+00 + vertex 7.448697e+01 1.215905e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex 7.551303e+01 1.215905e+02 -3.000000e+00 + vertex 7.575000e+01 1.217010e+02 -6.000000e+00 + vertex 7.551303e+01 1.215905e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex 7.575000e+01 1.217010e+02 -3.000000e+00 + vertex 7.575000e+01 1.217010e+02 -6.000000e+00 + vertex 7.551303e+01 1.215905e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.759586e-01 8.794677e-01 -0.000000e+00 + outer loop + vertex -7.582042e+01 1.217443e+02 -6.000000e+00 + vertex -7.582042e+01 1.217443e+02 -3.000000e+00 + vertex -7.560255e+01 1.216263e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.759586e-01 8.794677e-01 0.000000e+00 + outer loop + vertex -7.582042e+01 1.217443e+02 -3.000000e+00 + vertex -7.560255e+01 1.216263e+02 -3.000000e+00 + vertex -7.560255e+01 1.216263e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.759460e-01 8.794745e-01 0.000000e+00 + outer loop + vertex -7.439746e+01 1.216263e+02 -3.000000e+00 + vertex -7.417957e+01 1.217443e+02 -6.000000e+00 + vertex -7.439746e+01 1.216263e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.759460e-01 8.794745e-01 0.000000e+00 + outer loop + vertex -7.417957e+01 1.217443e+02 -3.000000e+00 + vertex -7.417957e+01 1.217443e+02 -6.000000e+00 + vertex -7.439746e+01 1.216263e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 8.191636e-01 -0.000000e+00 + outer loop + vertex 7.403582e+01 1.218509e+02 -6.000000e+00 + vertex 7.403582e+01 1.218509e+02 -3.000000e+00 + vertex 7.425000e+01 1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 8.191636e-01 0.000000e+00 + outer loop + vertex 7.403582e+01 1.218509e+02 -3.000000e+00 + vertex 7.425000e+01 1.217010e+02 -3.000000e+00 + vertex 7.425000e+01 1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 8.191636e-01 0.000000e+00 + outer loop + vertex 7.575000e+01 1.217010e+02 -3.000000e+00 + vertex 7.596418e+01 1.218509e+02 -6.000000e+00 + vertex 7.575000e+01 1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.596418e+01 1.218509e+02 -6.000000e+00 + vertex 1.250000e+02 1.240000e+02 -6.000000e+00 + vertex 7.575000e+01 1.217010e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 8.191636e-01 0.000000e+00 + outer loop + vertex 7.596418e+01 1.218509e+02 -3.000000e+00 + vertex 7.596418e+01 1.218509e+02 -6.000000e+00 + vertex 7.575000e+01 1.217010e+02 -3.000000e+00 + endloop + endfacet + facet normal 6.142196e-01 7.891352e-01 -0.000000e+00 + outer loop + vertex -7.601592e+01 1.218964e+02 -6.000000e+00 + vertex -7.601592e+01 1.218964e+02 -3.000000e+00 + vertex -7.582042e+01 1.217443e+02 -6.000000e+00 + endloop + endfacet + facet normal 6.142196e-01 7.891352e-01 0.000000e+00 + outer loop + vertex -7.601592e+01 1.218964e+02 -3.000000e+00 + vertex -7.582042e+01 1.217443e+02 -3.000000e+00 + vertex -7.582042e+01 1.217443e+02 -6.000000e+00 + endloop + endfacet + facet normal -6.142196e-01 7.891352e-01 0.000000e+00 + outer loop + vertex -7.417957e+01 1.217443e+02 -3.000000e+00 + vertex -7.398408e+01 1.218964e+02 -6.000000e+00 + vertex -7.417957e+01 1.217443e+02 -6.000000e+00 + endloop + endfacet + facet normal -6.142196e-01 7.891352e-01 0.000000e+00 + outer loop + vertex -7.398408e+01 1.218964e+02 -3.000000e+00 + vertex -7.398408e+01 1.218964e+02 -6.000000e+00 + vertex -7.417957e+01 1.217443e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 7.071068e-01 -0.000000e+00 + outer loop + vertex 7.385093e+01 1.220358e+02 -6.000000e+00 + vertex 7.385093e+01 1.220358e+02 -3.000000e+00 + vertex 7.403582e+01 1.218509e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex 7.385093e+01 1.220358e+02 -3.000000e+00 + vertex 7.403582e+01 1.218509e+02 -3.000000e+00 + vertex 7.403582e+01 1.218509e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex 7.596418e+01 1.218509e+02 -3.000000e+00 + vertex 7.614907e+01 1.220358e+02 -6.000000e+00 + vertex 7.596418e+01 1.218509e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 1.240000e+02 1.250000e+02 -6.000000e+00 + vertex 1.250000e+02 1.240000e+02 -6.000000e+00 + vertex 7.596418e+01 1.218509e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.614907e+01 1.220358e+02 -6.000000e+00 + vertex 1.240000e+02 1.250000e+02 -6.000000e+00 + vertex 7.596418e+01 1.218509e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex 7.614907e+01 1.220358e+02 -3.000000e+00 + vertex 7.614907e+01 1.220358e+02 -6.000000e+00 + vertex 7.596418e+01 1.218509e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.357056e-01 6.773015e-01 -0.000000e+00 + outer loop + vertex -7.618371e+01 1.220787e+02 -6.000000e+00 + vertex -7.618371e+01 1.220787e+02 -3.000000e+00 + vertex -7.601592e+01 1.218964e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.357056e-01 6.773015e-01 0.000000e+00 + outer loop + vertex -7.618371e+01 1.220787e+02 -3.000000e+00 + vertex -7.601592e+01 1.218964e+02 -3.000000e+00 + vertex -7.601592e+01 1.218964e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.357206e-01 6.772852e-01 0.000000e+00 + outer loop + vertex -7.398408e+01 1.218964e+02 -3.000000e+00 + vertex -7.381629e+01 1.220787e+02 -6.000000e+00 + vertex -7.398408e+01 1.218964e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.357206e-01 6.772852e-01 0.000000e+00 + outer loop + vertex -7.381629e+01 1.220787e+02 -3.000000e+00 + vertex -7.381629e+01 1.220787e+02 -6.000000e+00 + vertex -7.398408e+01 1.218964e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659254e-01 2.588206e-01 -0.000000e+00 + outer loop + vertex -7.795443e+01 1.224791e+02 -3.000000e+00 + vertex -7.795443e+01 1.224791e+02 0.000000e+00 + vertex -7.781908e+01 1.219739e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659254e-01 2.588206e-01 0.000000e+00 + outer loop + vertex -7.795443e+01 1.224791e+02 0.000000e+00 + vertex -7.781908e+01 1.219739e+02 0.000000e+00 + vertex -7.781908e+01 1.219739e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.618371e+01 1.220787e+02 -3.000000e+00 + vertex -7.795443e+01 1.224791e+02 -3.000000e+00 + vertex -7.781908e+01 1.219739e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659290e-01 2.588073e-01 0.000000e+00 + outer loop + vertex -7.218092e+01 1.219739e+02 0.000000e+00 + vertex -7.204558e+01 1.224791e+02 -3.000000e+00 + vertex -7.218092e+01 1.219739e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.204558e+01 1.224791e+02 -3.000000e+00 + vertex -7.352046e+01 1.227531e+02 -3.000000e+00 + vertex -7.218092e+01 1.219739e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.352046e+01 1.227531e+02 -3.000000e+00 + vertex -7.358127e+01 1.225130e+02 -3.000000e+00 + vertex -7.218092e+01 1.219739e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659290e-01 2.588073e-01 -0.000000e+00 + outer loop + vertex 7.204558e+01 1.224791e+02 -3.000000e+00 + vertex 7.204558e+01 1.224791e+02 0.000000e+00 + vertex 7.218092e+01 1.219739e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659290e-01 2.588073e-01 0.000000e+00 + outer loop + vertex 7.204558e+01 1.224791e+02 0.000000e+00 + vertex 7.218092e+01 1.219739e+02 0.000000e+00 + vertex 7.218092e+01 1.219739e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.359046e+01 1.224870e+02 -3.000000e+00 + vertex 7.204558e+01 1.224791e+02 -3.000000e+00 + vertex 7.218092e+01 1.219739e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.370096e+01 1.222500e+02 -3.000000e+00 + vertex 7.359046e+01 1.224870e+02 -3.000000e+00 + vertex 7.218092e+01 1.219739e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659254e-01 2.588206e-01 0.000000e+00 + outer loop + vertex 7.781908e+01 1.219739e+02 0.000000e+00 + vertex 7.795443e+01 1.224791e+02 -3.000000e+00 + vertex 7.781908e+01 1.219739e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.647721e+01 1.227395e+02 -3.000000e+00 + vertex 7.640954e+01 1.224870e+02 -3.000000e+00 + vertex 7.781908e+01 1.219739e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.795443e+01 1.224791e+02 -3.000000e+00 + vertex 7.647721e+01 1.227395e+02 -3.000000e+00 + vertex 7.781908e+01 1.219739e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.795443e+01 1.224791e+02 0.000000e+00 + vertex -1.250000e+02 1.240000e+02 0.000000e+00 + vertex -7.781908e+01 1.219739e+02 0.000000e+00 + endloop + endfacet + facet normal -9.659290e-01 2.588073e-01 0.000000e+00 + outer loop + vertex -7.204558e+01 1.224791e+02 0.000000e+00 + vertex -7.204558e+01 1.224791e+02 -3.000000e+00 + vertex -7.218092e+01 1.219739e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.204558e+01 1.224791e+02 0.000000e+00 + vertex -7.100000e+01 1.250000e+02 0.000000e+00 + vertex 7.218092e+01 1.219739e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.250000e+02 1.240000e+02 0.000000e+00 + vertex 7.795443e+01 1.224791e+02 0.000000e+00 + vertex 7.781908e+01 1.219739e+02 0.000000e+00 + endloop + endfacet + facet normal -9.659254e-01 2.588206e-01 0.000000e+00 + outer loop + vertex 7.795443e+01 1.224791e+02 0.000000e+00 + vertex 7.795443e+01 1.224791e+02 -3.000000e+00 + vertex 7.781908e+01 1.219739e+02 0.000000e+00 + endloop + endfacet + facet normal 8.191636e-01 5.735599e-01 -0.000000e+00 + outer loop + vertex 7.370096e+01 1.222500e+02 -6.000000e+00 + vertex 7.370096e+01 1.222500e+02 -3.000000e+00 + vertex 7.385093e+01 1.220358e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191636e-01 5.735599e-01 0.000000e+00 + outer loop + vertex 7.370096e+01 1.222500e+02 -3.000000e+00 + vertex 7.385093e+01 1.220358e+02 -3.000000e+00 + vertex 7.385093e+01 1.220358e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191503e-01 5.735790e-01 0.000000e+00 + outer loop + vertex 7.614907e+01 1.220358e+02 -3.000000e+00 + vertex 7.629904e+01 1.222500e+02 -6.000000e+00 + vertex 7.614907e+01 1.220358e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.629904e+01 1.222500e+02 -6.000000e+00 + vertex 1.240000e+02 1.250000e+02 -6.000000e+00 + vertex 7.614907e+01 1.220358e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191503e-01 5.735790e-01 0.000000e+00 + outer loop + vertex 7.629904e+01 1.222500e+02 -3.000000e+00 + vertex 7.629904e+01 1.222500e+02 -6.000000e+00 + vertex 7.614907e+01 1.220358e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.371778e-01 5.469309e-01 -0.000000e+00 + outer loop + vertex -7.631921e+01 1.222861e+02 -6.000000e+00 + vertex -7.631921e+01 1.222861e+02 -3.000000e+00 + vertex -7.618371e+01 1.220787e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.371778e-01 5.469309e-01 0.000000e+00 + outer loop + vertex -7.631921e+01 1.222861e+02 -3.000000e+00 + vertex -7.618371e+01 1.220787e+02 -3.000000e+00 + vertex -7.618371e+01 1.220787e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.371640e-01 5.469520e-01 0.000000e+00 + outer loop + vertex -7.381629e+01 1.220787e+02 -3.000000e+00 + vertex -7.368079e+01 1.222861e+02 -6.000000e+00 + vertex -7.381629e+01 1.220787e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.631921e+01 1.222861e+02 -3.000000e+00 + vertex -7.801519e+01 1.241736e+02 -3.000000e+00 + vertex -7.618371e+01 1.220787e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.801519e+01 1.241736e+02 -3.000000e+00 + vertex -7.800000e+01 1.240000e+02 -3.000000e+00 + vertex -7.618371e+01 1.220787e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.800000e+01 1.240000e+02 -3.000000e+00 + vertex -7.800000e+01 1.230000e+02 -3.000000e+00 + vertex -7.618371e+01 1.220787e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.800000e+01 1.230000e+02 -3.000000e+00 + vertex -7.795443e+01 1.224791e+02 -3.000000e+00 + vertex -7.618371e+01 1.220787e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.371640e-01 5.469520e-01 0.000000e+00 + outer loop + vertex -7.368079e+01 1.222861e+02 -3.000000e+00 + vertex -7.368079e+01 1.222861e+02 -6.000000e+00 + vertex -7.381629e+01 1.220787e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 4.226327e-01 -0.000000e+00 + outer loop + vertex 7.359046e+01 1.224870e+02 -6.000000e+00 + vertex 7.359046e+01 1.224870e+02 -3.000000e+00 + vertex 7.370096e+01 1.222500e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex 7.359046e+01 1.224870e+02 -3.000000e+00 + vertex 7.370096e+01 1.222500e+02 -3.000000e+00 + vertex 7.370096e+01 1.222500e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063119e-01 4.226093e-01 0.000000e+00 + outer loop + vertex 7.629904e+01 1.222500e+02 -3.000000e+00 + vertex 7.640954e+01 1.224870e+02 -6.000000e+00 + vertex 7.629904e+01 1.222500e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.640954e+01 1.224870e+02 -6.000000e+00 + vertex 1.240000e+02 1.250000e+02 -6.000000e+00 + vertex 7.629904e+01 1.222500e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063119e-01 4.226093e-01 0.000000e+00 + outer loop + vertex 7.640954e+01 1.224870e+02 -3.000000e+00 + vertex 7.640954e+01 1.224870e+02 -6.000000e+00 + vertex 7.629904e+01 1.222500e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.240000e+02 1.250000e+02 -6.000000e+00 + vertex -7.641873e+01 1.225130e+02 -6.000000e+00 + vertex -7.631921e+01 1.222861e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.157690e-01 4.017053e-01 -0.000000e+00 + outer loop + vertex -7.641873e+01 1.225130e+02 -6.000000e+00 + vertex -7.641873e+01 1.225130e+02 -3.000000e+00 + vertex -7.631921e+01 1.222861e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.157690e-01 4.017053e-01 0.000000e+00 + outer loop + vertex -7.641873e+01 1.225130e+02 -3.000000e+00 + vertex -7.631921e+01 1.222861e+02 -3.000000e+00 + vertex -7.631921e+01 1.222861e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.157690e-01 4.017053e-01 0.000000e+00 + outer loop + vertex -7.368079e+01 1.222861e+02 -3.000000e+00 + vertex -7.358127e+01 1.225130e+02 -6.000000e+00 + vertex -7.368079e+01 1.222861e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.641873e+01 1.225130e+02 -3.000000e+00 + vertex -7.801519e+01 1.241736e+02 -3.000000e+00 + vertex -7.631921e+01 1.222861e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.157690e-01 4.017053e-01 0.000000e+00 + outer loop + vertex -7.358127e+01 1.225130e+02 -3.000000e+00 + vertex -7.358127e+01 1.225130e+02 -6.000000e+00 + vertex -7.368079e+01 1.222861e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961950e-01 8.715281e-02 -0.000000e+00 + outer loop + vertex -7.800000e+01 1.230000e+02 -3.000000e+00 + vertex -7.800000e+01 1.230000e+02 0.000000e+00 + vertex -7.795443e+01 1.224791e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961950e-01 8.715281e-02 0.000000e+00 + outer loop + vertex -7.800000e+01 1.230000e+02 0.000000e+00 + vertex -7.795443e+01 1.224791e+02 0.000000e+00 + vertex -7.795443e+01 1.224791e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961937e-01 8.716695e-02 0.000000e+00 + outer loop + vertex -7.204558e+01 1.224791e+02 0.000000e+00 + vertex -7.200000e+01 1.230000e+02 -3.000000e+00 + vertex -7.204558e+01 1.224791e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 1.230000e+02 -3.000000e+00 + vertex -7.350000e+01 1.230000e+02 -3.000000e+00 + vertex -7.204558e+01 1.224791e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.350000e+01 1.230000e+02 -3.000000e+00 + vertex -7.352046e+01 1.227531e+02 -3.000000e+00 + vertex -7.204558e+01 1.224791e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961937e-01 8.716695e-02 -0.000000e+00 + outer loop + vertex 7.200000e+01 1.230000e+02 -3.000000e+00 + vertex 7.200000e+01 1.230000e+02 0.000000e+00 + vertex 7.204558e+01 1.224791e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961937e-01 8.716695e-02 0.000000e+00 + outer loop + vertex 7.200000e+01 1.230000e+02 0.000000e+00 + vertex 7.204558e+01 1.224791e+02 0.000000e+00 + vertex 7.204558e+01 1.224791e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.352279e+01 1.227395e+02 -3.000000e+00 + vertex 7.200000e+01 1.230000e+02 -3.000000e+00 + vertex 7.204558e+01 1.224791e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.359046e+01 1.224870e+02 -3.000000e+00 + vertex 7.352279e+01 1.227395e+02 -3.000000e+00 + vertex 7.204558e+01 1.224791e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961950e-01 8.715281e-02 0.000000e+00 + outer loop + vertex 7.795443e+01 1.224791e+02 0.000000e+00 + vertex 7.800000e+01 1.230000e+02 -3.000000e+00 + vertex 7.795443e+01 1.224791e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.650000e+01 1.230000e+02 -3.000000e+00 + vertex 7.647721e+01 1.227395e+02 -3.000000e+00 + vertex 7.795443e+01 1.224791e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.800000e+01 1.230000e+02 -3.000000e+00 + vertex 7.650000e+01 1.230000e+02 -3.000000e+00 + vertex 7.795443e+01 1.224791e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.800000e+01 1.230000e+02 0.000000e+00 + vertex -1.250000e+02 1.240000e+02 0.000000e+00 + vertex -7.795443e+01 1.224791e+02 0.000000e+00 + endloop + endfacet + facet normal -9.961937e-01 8.716695e-02 0.000000e+00 + outer loop + vertex -7.200000e+01 1.230000e+02 0.000000e+00 + vertex -7.200000e+01 1.230000e+02 -3.000000e+00 + vertex -7.204558e+01 1.224791e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.200000e+01 1.230000e+02 0.000000e+00 + vertex 7.176604e+01 1.246428e+02 0.000000e+00 + vertex 7.204558e+01 1.224791e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.176604e+01 1.246428e+02 0.000000e+00 + vertex 7.164279e+01 1.247660e+02 0.000000e+00 + vertex 7.204558e+01 1.224791e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.164279e+01 1.247660e+02 0.000000e+00 + vertex 7.150000e+01 1.248660e+02 0.000000e+00 + vertex 7.204558e+01 1.224791e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.150000e+01 1.248660e+02 0.000000e+00 + vertex 7.134202e+01 1.249397e+02 0.000000e+00 + vertex 7.204558e+01 1.224791e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.134202e+01 1.249397e+02 0.000000e+00 + vertex 7.117365e+01 1.249848e+02 0.000000e+00 + vertex 7.204558e+01 1.224791e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.117365e+01 1.249848e+02 0.000000e+00 + vertex 7.100000e+01 1.250000e+02 0.000000e+00 + vertex 7.204558e+01 1.224791e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.100000e+01 1.250000e+02 0.000000e+00 + vertex -7.100000e+01 1.250000e+02 0.000000e+00 + vertex 7.204558e+01 1.224791e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.250000e+02 1.240000e+02 0.000000e+00 + vertex 7.800000e+01 1.230000e+02 0.000000e+00 + vertex 7.795443e+01 1.224791e+02 0.000000e+00 + endloop + endfacet + facet normal -9.961950e-01 8.715281e-02 0.000000e+00 + outer loop + vertex 7.800000e+01 1.230000e+02 0.000000e+00 + vertex 7.800000e+01 1.230000e+02 -3.000000e+00 + vertex 7.795443e+01 1.224791e+02 0.000000e+00 + endloop + endfacet + facet normal 9.659325e-01 2.587940e-01 -0.000000e+00 + outer loop + vertex 7.352279e+01 1.227395e+02 -6.000000e+00 + vertex 7.352279e+01 1.227395e+02 -3.000000e+00 + vertex 7.359046e+01 1.224870e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659325e-01 2.587940e-01 0.000000e+00 + outer loop + vertex 7.352279e+01 1.227395e+02 -3.000000e+00 + vertex 7.359046e+01 1.224870e+02 -3.000000e+00 + vertex 7.359046e+01 1.224870e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.250000e+01 1.250000e+02 -6.000000e+00 + vertex 7.352279e+01 1.227395e+02 -6.000000e+00 + vertex 7.359046e+01 1.224870e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659254e-01 2.588206e-01 0.000000e+00 + outer loop + vertex 7.640954e+01 1.224870e+02 -3.000000e+00 + vertex 7.647721e+01 1.227395e+02 -6.000000e+00 + vertex 7.640954e+01 1.224870e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.647721e+01 1.227395e+02 -6.000000e+00 + vertex 1.240000e+02 1.250000e+02 -6.000000e+00 + vertex 7.640954e+01 1.224870e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659254e-01 2.588206e-01 0.000000e+00 + outer loop + vertex 7.647721e+01 1.227395e+02 -3.000000e+00 + vertex 7.647721e+01 1.227395e+02 -6.000000e+00 + vertex 7.640954e+01 1.224870e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.240000e+02 1.250000e+02 -6.000000e+00 + vertex -7.647954e+01 1.227531e+02 -6.000000e+00 + vertex -7.641873e+01 1.225130e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.694039e-01 2.454712e-01 -0.000000e+00 + outer loop + vertex -7.647954e+01 1.227531e+02 -6.000000e+00 + vertex -7.647954e+01 1.227531e+02 -3.000000e+00 + vertex -7.641873e+01 1.225130e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.694039e-01 2.454712e-01 0.000000e+00 + outer loop + vertex -7.647954e+01 1.227531e+02 -3.000000e+00 + vertex -7.641873e+01 1.225130e+02 -3.000000e+00 + vertex -7.641873e+01 1.225130e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.694039e-01 2.454712e-01 0.000000e+00 + outer loop + vertex -7.358127e+01 1.225130e+02 -3.000000e+00 + vertex -7.352046e+01 1.227531e+02 -6.000000e+00 + vertex -7.358127e+01 1.225130e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.647954e+01 1.227531e+02 -3.000000e+00 + vertex -7.801519e+01 1.241736e+02 -3.000000e+00 + vertex -7.641873e+01 1.225130e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.694039e-01 2.454712e-01 0.000000e+00 + outer loop + vertex -7.352046e+01 1.227531e+02 -3.000000e+00 + vertex -7.352046e+01 1.227531e+02 -6.000000e+00 + vertex -7.358127e+01 1.225130e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961937e-01 8.716695e-02 -0.000000e+00 + outer loop + vertex 7.350000e+01 1.230000e+02 -6.000000e+00 + vertex 7.350000e+01 1.230000e+02 -3.000000e+00 + vertex 7.352279e+01 1.227395e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961937e-01 8.716695e-02 0.000000e+00 + outer loop + vertex 7.350000e+01 1.230000e+02 -3.000000e+00 + vertex 7.352279e+01 1.227395e+02 -3.000000e+00 + vertex 7.352279e+01 1.227395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.250000e+01 1.250000e+02 -6.000000e+00 + vertex 7.350000e+01 1.230000e+02 -6.000000e+00 + vertex 7.352279e+01 1.227395e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961962e-01 8.713867e-02 0.000000e+00 + outer loop + vertex 7.647721e+01 1.227395e+02 -3.000000e+00 + vertex 7.650000e+01 1.230000e+02 -6.000000e+00 + vertex 7.647721e+01 1.227395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.650000e+01 1.230000e+02 -6.000000e+00 + vertex 1.240000e+02 1.250000e+02 -6.000000e+00 + vertex 7.647721e+01 1.227395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 1.230000e+02 -3.000000e+00 + vertex 7.200000e+01 1.230000e+02 -3.000000e+00 + vertex 7.352279e+01 1.227395e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961962e-01 8.713867e-02 0.000000e+00 + outer loop + vertex 7.650000e+01 1.230000e+02 -3.000000e+00 + vertex 7.650000e+01 1.230000e+02 -6.000000e+00 + vertex 7.647721e+01 1.227395e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.240000e+02 1.250000e+02 -6.000000e+00 + vertex -7.650000e+01 1.230000e+02 -6.000000e+00 + vertex -7.647954e+01 1.227531e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.965842e-01 8.258254e-02 -0.000000e+00 + outer loop + vertex -7.650000e+01 1.230000e+02 -6.000000e+00 + vertex -7.650000e+01 1.230000e+02 -3.000000e+00 + vertex -7.647954e+01 1.227531e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.965842e-01 8.258254e-02 0.000000e+00 + outer loop + vertex -7.650000e+01 1.230000e+02 -3.000000e+00 + vertex -7.647954e+01 1.227531e+02 -3.000000e+00 + vertex -7.647954e+01 1.227531e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.965842e-01 8.258254e-02 0.000000e+00 + outer loop + vertex -7.352046e+01 1.227531e+02 -3.000000e+00 + vertex -7.350000e+01 1.230000e+02 -6.000000e+00 + vertex -7.352046e+01 1.227531e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 1.230000e+02 -3.000000e+00 + vertex -7.801519e+01 1.241736e+02 -3.000000e+00 + vertex -7.647954e+01 1.227531e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.965842e-01 8.258254e-02 0.000000e+00 + outer loop + vertex -7.350000e+01 1.230000e+02 -3.000000e+00 + vertex -7.350000e+01 1.230000e+02 -6.000000e+00 + vertex -7.352046e+01 1.227531e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.750000e+01 1.250000e+02 -6.000000e+00 + vertex -7.650000e+01 1.240000e+02 -6.000000e+00 + vertex -7.650000e+01 1.230000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.240000e+02 1.250000e+02 -6.000000e+00 + vertex -7.750000e+01 1.250000e+02 -6.000000e+00 + vertex -7.650000e+01 1.230000e+02 -6.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex -7.650000e+01 1.240000e+02 -6.000000e+00 + vertex -7.650000e+01 1.230000e+02 -3.000000e+00 + vertex -7.650000e+01 1.230000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.350000e+01 1.240000e+02 -6.000000e+00 + vertex -7.348481e+01 1.241736e+02 -6.000000e+00 + vertex -7.350000e+01 1.230000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.348481e+01 1.241736e+02 -6.000000e+00 + vertex -7.343969e+01 1.243420e+02 -6.000000e+00 + vertex -7.350000e+01 1.230000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.343969e+01 1.243420e+02 -6.000000e+00 + vertex -7.336602e+01 1.245000e+02 -6.000000e+00 + vertex -7.350000e+01 1.230000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex -7.350000e+01 1.240000e+02 -3.000000e+00 + vertex -7.350000e+01 1.240000e+02 -6.000000e+00 + vertex -7.350000e+01 1.230000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex -7.350000e+01 1.230000e+02 -3.000000e+00 + vertex -7.350000e+01 1.240000e+02 -3.000000e+00 + vertex -7.350000e+01 1.230000e+02 -6.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex 7.350000e+01 1.240000e+02 -6.000000e+00 + vertex 7.350000e+01 1.230000e+02 -3.000000e+00 + vertex 7.350000e+01 1.230000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.250000e+01 1.250000e+02 -6.000000e+00 + vertex 7.250000e+01 1.250000e+02 -6.000000e+00 + vertex 7.350000e+01 1.230000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.250000e+01 1.250000e+02 -6.000000e+00 + vertex 7.350000e+01 1.240000e+02 -6.000000e+00 + vertex 7.350000e+01 1.230000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex 7.650000e+01 1.240000e+02 -3.000000e+00 + vertex 7.650000e+01 1.240000e+02 -6.000000e+00 + vertex 7.650000e+01 1.230000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex 7.650000e+01 1.230000e+02 -3.000000e+00 + vertex 7.650000e+01 1.240000e+02 -3.000000e+00 + vertex 7.650000e+01 1.230000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.650000e+01 1.240000e+02 -6.000000e+00 + vertex 1.240000e+02 1.250000e+02 -6.000000e+00 + vertex 7.650000e+01 1.230000e+02 -6.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex -7.800000e+01 1.240000e+02 -3.000000e+00 + vertex -7.800000e+01 1.230000e+02 0.000000e+00 + vertex -7.800000e+01 1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex -7.650000e+01 1.240000e+02 -6.000000e+00 + vertex -7.650000e+01 1.240000e+02 -3.000000e+00 + vertex -7.650000e+01 1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 1.240000e+02 -3.000000e+00 + vertex -7.801519e+01 1.241736e+02 -3.000000e+00 + vertex -7.650000e+01 1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 1.230000e+02 -3.000000e+00 + vertex -7.350000e+01 1.240000e+02 -3.000000e+00 + vertex -7.350000e+01 1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex -7.200000e+01 1.240000e+02 0.000000e+00 + vertex -7.200000e+01 1.240000e+02 -3.000000e+00 + vertex -7.200000e+01 1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex -7.200000e+01 1.230000e+02 0.000000e+00 + vertex -7.200000e+01 1.240000e+02 0.000000e+00 + vertex -7.200000e+01 1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 1.240000e+02 -3.000000e+00 + vertex -7.350000e+01 1.240000e+02 -3.000000e+00 + vertex -7.200000e+01 1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex 7.200000e+01 1.240000e+02 -3.000000e+00 + vertex 7.200000e+01 1.230000e+02 0.000000e+00 + vertex 7.200000e+01 1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 1.230000e+02 -3.000000e+00 + vertex 7.200000e+01 1.240000e+02 -3.000000e+00 + vertex 7.200000e+01 1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex 7.350000e+01 1.240000e+02 -6.000000e+00 + vertex 7.350000e+01 1.240000e+02 -3.000000e+00 + vertex 7.350000e+01 1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 1.240000e+02 -3.000000e+00 + vertex 7.200000e+01 1.240000e+02 -3.000000e+00 + vertex 7.350000e+01 1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.800000e+01 1.230000e+02 -3.000000e+00 + vertex 7.650000e+01 1.240000e+02 -3.000000e+00 + vertex 7.650000e+01 1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex 7.800000e+01 1.240000e+02 0.000000e+00 + vertex 7.800000e+01 1.240000e+02 -3.000000e+00 + vertex 7.800000e+01 1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex 7.800000e+01 1.230000e+02 0.000000e+00 + vertex 7.800000e+01 1.240000e+02 0.000000e+00 + vertex 7.800000e+01 1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.800000e+01 1.240000e+02 -3.000000e+00 + vertex 7.650000e+01 1.240000e+02 -3.000000e+00 + vertex 7.800000e+01 1.230000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.800000e+01 1.240000e+02 0.000000e+00 + vertex -1.250000e+02 1.240000e+02 0.000000e+00 + vertex -7.800000e+01 1.230000e+02 0.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex -7.800000e+01 1.240000e+02 -3.000000e+00 + vertex -7.800000e+01 1.240000e+02 0.000000e+00 + vertex -7.800000e+01 1.230000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.200000e+01 1.240000e+02 0.000000e+00 + vertex 7.176604e+01 1.246428e+02 0.000000e+00 + vertex 7.200000e+01 1.230000e+02 0.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex 7.200000e+01 1.240000e+02 -3.000000e+00 + vertex 7.200000e+01 1.240000e+02 0.000000e+00 + vertex 7.200000e+01 1.230000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.250000e+02 1.240000e+02 0.000000e+00 + vertex 7.800000e+01 1.240000e+02 0.000000e+00 + vertex 7.800000e+01 1.230000e+02 0.000000e+00 + endloop + endfacet + facet normal -9.961951e-01 8.715157e-02 0.000000e+00 + outer loop + vertex -1.249848e+02 1.241736e+02 0.000000e+00 + vertex -1.249848e+02 1.241736e+02 -6.000000e+00 + vertex -1.250000e+02 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961951e-01 8.715157e-02 0.000000e+00 + outer loop + vertex -1.250000e+02 1.240000e+02 0.000000e+00 + vertex -1.249848e+02 1.241736e+02 0.000000e+00 + vertex -1.250000e+02 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.656031e+01 1.243420e+02 -6.000000e+00 + vertex -7.651519e+01 1.241736e+02 -6.000000e+00 + vertex -7.650000e+01 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.750000e+01 1.250000e+02 -6.000000e+00 + vertex -7.732635e+01 1.249848e+02 -6.000000e+00 + vertex -7.650000e+01 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.732635e+01 1.249848e+02 -6.000000e+00 + vertex -7.715798e+01 1.249397e+02 -6.000000e+00 + vertex -7.650000e+01 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.715798e+01 1.249397e+02 -6.000000e+00 + vertex -7.700000e+01 1.248660e+02 -6.000000e+00 + vertex -7.650000e+01 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.700000e+01 1.248660e+02 -6.000000e+00 + vertex -7.685721e+01 1.247660e+02 -6.000000e+00 + vertex -7.650000e+01 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.685721e+01 1.247660e+02 -6.000000e+00 + vertex -7.673395e+01 1.246428e+02 -6.000000e+00 + vertex -7.650000e+01 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.673395e+01 1.246428e+02 -6.000000e+00 + vertex -7.663397e+01 1.245000e+02 -6.000000e+00 + vertex -7.650000e+01 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.663397e+01 1.245000e+02 -6.000000e+00 + vertex -7.656031e+01 1.243420e+02 -6.000000e+00 + vertex -7.650000e+01 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961951e-01 8.715157e-02 0.000000e+00 + outer loop + vertex -7.651519e+01 1.241736e+02 -6.000000e+00 + vertex -7.650000e+01 1.240000e+02 -3.000000e+00 + vertex -7.650000e+01 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961951e-01 8.715157e-02 0.000000e+00 + outer loop + vertex -7.350000e+01 1.240000e+02 -3.000000e+00 + vertex -7.348481e+01 1.241736e+02 -3.000000e+00 + vertex -7.350000e+01 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961951e-01 8.715157e-02 0.000000e+00 + outer loop + vertex -7.348481e+01 1.241736e+02 -3.000000e+00 + vertex -7.348481e+01 1.241736e+02 -6.000000e+00 + vertex -7.350000e+01 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.343969e+01 1.243420e+02 -6.000000e+00 + vertex 7.348481e+01 1.241736e+02 -6.000000e+00 + vertex 7.350000e+01 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.250000e+01 1.250000e+02 -6.000000e+00 + vertex 7.267365e+01 1.249848e+02 -6.000000e+00 + vertex 7.350000e+01 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.267365e+01 1.249848e+02 -6.000000e+00 + vertex 7.284202e+01 1.249397e+02 -6.000000e+00 + vertex 7.350000e+01 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.284202e+01 1.249397e+02 -6.000000e+00 + vertex 7.300000e+01 1.248660e+02 -6.000000e+00 + vertex 7.350000e+01 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.300000e+01 1.248660e+02 -6.000000e+00 + vertex 7.314279e+01 1.247660e+02 -6.000000e+00 + vertex 7.350000e+01 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.314279e+01 1.247660e+02 -6.000000e+00 + vertex 7.326604e+01 1.246428e+02 -6.000000e+00 + vertex 7.350000e+01 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.326604e+01 1.246428e+02 -6.000000e+00 + vertex 7.336602e+01 1.245000e+02 -6.000000e+00 + vertex 7.350000e+01 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.336602e+01 1.245000e+02 -6.000000e+00 + vertex 7.343969e+01 1.243420e+02 -6.000000e+00 + vertex 7.350000e+01 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961951e-01 8.715157e-02 0.000000e+00 + outer loop + vertex 7.348481e+01 1.241736e+02 -6.000000e+00 + vertex 7.350000e+01 1.240000e+02 -3.000000e+00 + vertex 7.350000e+01 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.750000e+01 1.250000e+02 -6.000000e+00 + vertex 1.240000e+02 1.250000e+02 -6.000000e+00 + vertex 7.650000e+01 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.651519e+01 1.241736e+02 -6.000000e+00 + vertex 7.750000e+01 1.250000e+02 -6.000000e+00 + vertex 7.650000e+01 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961951e-01 8.715157e-02 0.000000e+00 + outer loop + vertex 7.650000e+01 1.240000e+02 -3.000000e+00 + vertex 7.651519e+01 1.241736e+02 -3.000000e+00 + vertex 7.650000e+01 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961951e-01 8.715157e-02 0.000000e+00 + outer loop + vertex 7.651519e+01 1.241736e+02 -3.000000e+00 + vertex 7.651519e+01 1.241736e+02 -6.000000e+00 + vertex 7.650000e+01 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 1.249397e+02 1.243420e+02 -6.000000e+00 + vertex 1.249848e+02 1.241736e+02 -6.000000e+00 + vertex 1.250000e+02 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 1.240000e+02 1.250000e+02 -6.000000e+00 + vertex 1.241736e+02 1.249848e+02 -6.000000e+00 + vertex 1.250000e+02 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 1.241736e+02 1.249848e+02 -6.000000e+00 + vertex 1.243420e+02 1.249397e+02 -6.000000e+00 + vertex 1.250000e+02 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 1.243420e+02 1.249397e+02 -6.000000e+00 + vertex 1.245000e+02 1.248660e+02 -6.000000e+00 + vertex 1.250000e+02 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 1.245000e+02 1.248660e+02 -6.000000e+00 + vertex 1.246428e+02 1.247660e+02 -6.000000e+00 + vertex 1.250000e+02 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 1.246428e+02 1.247660e+02 -6.000000e+00 + vertex 1.247660e+02 1.246428e+02 -6.000000e+00 + vertex 1.250000e+02 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 1.247660e+02 1.246428e+02 -6.000000e+00 + vertex 1.248660e+02 1.245000e+02 -6.000000e+00 + vertex 1.250000e+02 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 1.248660e+02 1.245000e+02 -6.000000e+00 + vertex 1.249397e+02 1.243420e+02 -6.000000e+00 + vertex 1.250000e+02 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961951e-01 8.715157e-02 0.000000e+00 + outer loop + vertex 1.249848e+02 1.241736e+02 -6.000000e+00 + vertex 1.250000e+02 1.240000e+02 0.000000e+00 + vertex 1.250000e+02 1.240000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961951e-01 8.715157e-02 0.000000e+00 + outer loop + vertex -7.801519e+01 1.241736e+02 -3.000000e+00 + vertex -7.800000e+01 1.240000e+02 0.000000e+00 + vertex -7.800000e+01 1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.651519e+01 1.241736e+02 -3.000000e+00 + vertex -7.801519e+01 1.241736e+02 -3.000000e+00 + vertex -7.650000e+01 1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961951e-01 8.715157e-02 -0.000000e+00 + outer loop + vertex -7.651519e+01 1.241736e+02 -6.000000e+00 + vertex -7.651519e+01 1.241736e+02 -3.000000e+00 + vertex -7.650000e+01 1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 1.240000e+02 -3.000000e+00 + vertex -7.348481e+01 1.241736e+02 -3.000000e+00 + vertex -7.350000e+01 1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.336602e+01 1.245000e+02 -3.000000e+00 + vertex -7.343969e+01 1.243420e+02 -3.000000e+00 + vertex -7.200000e+01 1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.198481e+01 1.241736e+02 -3.000000e+00 + vertex -7.336602e+01 1.245000e+02 -3.000000e+00 + vertex -7.200000e+01 1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.343969e+01 1.243420e+02 -3.000000e+00 + vertex -7.348481e+01 1.241736e+02 -3.000000e+00 + vertex -7.200000e+01 1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961951e-01 8.715157e-02 0.000000e+00 + outer loop + vertex -7.200000e+01 1.240000e+02 0.000000e+00 + vertex -7.198481e+01 1.241736e+02 0.000000e+00 + vertex -7.200000e+01 1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961951e-01 8.715157e-02 0.000000e+00 + outer loop + vertex -7.198481e+01 1.241736e+02 0.000000e+00 + vertex -7.198481e+01 1.241736e+02 -3.000000e+00 + vertex -7.200000e+01 1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 1.240000e+02 -3.000000e+00 + vertex 7.348481e+01 1.241736e+02 -3.000000e+00 + vertex 7.200000e+01 1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.348481e+01 1.241736e+02 -3.000000e+00 + vertex 7.343969e+01 1.243420e+02 -3.000000e+00 + vertex 7.200000e+01 1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.343969e+01 1.243420e+02 -3.000000e+00 + vertex 7.198481e+01 1.241736e+02 -3.000000e+00 + vertex 7.200000e+01 1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961951e-01 8.715157e-02 0.000000e+00 + outer loop + vertex 7.198481e+01 1.241736e+02 -3.000000e+00 + vertex 7.200000e+01 1.240000e+02 0.000000e+00 + vertex 7.200000e+01 1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961951e-01 8.715157e-02 -0.000000e+00 + outer loop + vertex 7.348481e+01 1.241736e+02 -6.000000e+00 + vertex 7.348481e+01 1.241736e+02 -3.000000e+00 + vertex 7.350000e+01 1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.800000e+01 1.240000e+02 -3.000000e+00 + vertex 7.651519e+01 1.241736e+02 -3.000000e+00 + vertex 7.650000e+01 1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.801519e+01 1.241736e+02 -3.000000e+00 + vertex 7.663397e+01 1.245000e+02 -3.000000e+00 + vertex 7.800000e+01 1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.663397e+01 1.245000e+02 -3.000000e+00 + vertex 7.656031e+01 1.243420e+02 -3.000000e+00 + vertex 7.800000e+01 1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.656031e+01 1.243420e+02 -3.000000e+00 + vertex 7.651519e+01 1.241736e+02 -3.000000e+00 + vertex 7.800000e+01 1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961951e-01 8.715157e-02 0.000000e+00 + outer loop + vertex 7.800000e+01 1.240000e+02 0.000000e+00 + vertex 7.801519e+01 1.241736e+02 0.000000e+00 + vertex 7.800000e+01 1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961951e-01 8.715157e-02 0.000000e+00 + outer loop + vertex 7.801519e+01 1.241736e+02 0.000000e+00 + vertex 7.801519e+01 1.241736e+02 -3.000000e+00 + vertex 7.800000e+01 1.240000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.249397e+02 1.243420e+02 0.000000e+00 + vertex -1.249848e+02 1.241736e+02 0.000000e+00 + vertex -1.250000e+02 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.800000e+01 1.240000e+02 0.000000e+00 + vertex -7.900000e+01 1.250000e+02 0.000000e+00 + vertex -1.250000e+02 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.900000e+01 1.250000e+02 0.000000e+00 + vertex -1.240000e+02 1.250000e+02 0.000000e+00 + vertex -1.250000e+02 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.240000e+02 1.250000e+02 0.000000e+00 + vertex -1.241736e+02 1.249848e+02 0.000000e+00 + vertex -1.250000e+02 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.241736e+02 1.249848e+02 0.000000e+00 + vertex -1.243420e+02 1.249397e+02 0.000000e+00 + vertex -1.250000e+02 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.243420e+02 1.249397e+02 0.000000e+00 + vertex -1.245000e+02 1.248660e+02 0.000000e+00 + vertex -1.250000e+02 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.245000e+02 1.248660e+02 0.000000e+00 + vertex -1.246428e+02 1.247660e+02 0.000000e+00 + vertex -1.250000e+02 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.246428e+02 1.247660e+02 0.000000e+00 + vertex -1.247660e+02 1.246428e+02 0.000000e+00 + vertex -1.250000e+02 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.247660e+02 1.246428e+02 0.000000e+00 + vertex -1.248660e+02 1.245000e+02 0.000000e+00 + vertex -1.250000e+02 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.248660e+02 1.245000e+02 0.000000e+00 + vertex -1.249397e+02 1.243420e+02 0.000000e+00 + vertex -1.250000e+02 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.801519e+01 1.241736e+02 0.000000e+00 + vertex -7.900000e+01 1.250000e+02 0.000000e+00 + vertex -7.800000e+01 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 9.961951e-01 8.715157e-02 -0.000000e+00 + outer loop + vertex -7.801519e+01 1.241736e+02 -3.000000e+00 + vertex -7.801519e+01 1.241736e+02 0.000000e+00 + vertex -7.800000e+01 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.193969e+01 1.243420e+02 0.000000e+00 + vertex -7.198481e+01 1.241736e+02 0.000000e+00 + vertex -7.200000e+01 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.100000e+01 1.250000e+02 0.000000e+00 + vertex -7.117365e+01 1.249848e+02 0.000000e+00 + vertex -7.200000e+01 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.117365e+01 1.249848e+02 0.000000e+00 + vertex -7.134202e+01 1.249397e+02 0.000000e+00 + vertex -7.200000e+01 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.134202e+01 1.249397e+02 0.000000e+00 + vertex -7.150000e+01 1.248660e+02 0.000000e+00 + vertex -7.200000e+01 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.150000e+01 1.248660e+02 0.000000e+00 + vertex -7.164279e+01 1.247660e+02 0.000000e+00 + vertex -7.200000e+01 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.164279e+01 1.247660e+02 0.000000e+00 + vertex -7.176604e+01 1.246428e+02 0.000000e+00 + vertex -7.200000e+01 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.176604e+01 1.246428e+02 0.000000e+00 + vertex -7.186603e+01 1.245000e+02 0.000000e+00 + vertex -7.200000e+01 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.186603e+01 1.245000e+02 0.000000e+00 + vertex -7.193969e+01 1.243420e+02 0.000000e+00 + vertex -7.200000e+01 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.198481e+01 1.241736e+02 0.000000e+00 + vertex 7.193969e+01 1.243420e+02 0.000000e+00 + vertex 7.200000e+01 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.193969e+01 1.243420e+02 0.000000e+00 + vertex 7.186603e+01 1.245000e+02 0.000000e+00 + vertex 7.200000e+01 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.186603e+01 1.245000e+02 0.000000e+00 + vertex 7.176604e+01 1.246428e+02 0.000000e+00 + vertex 7.200000e+01 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 9.961951e-01 8.715157e-02 -0.000000e+00 + outer loop + vertex 7.198481e+01 1.241736e+02 -3.000000e+00 + vertex 7.198481e+01 1.241736e+02 0.000000e+00 + vertex 7.200000e+01 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.806031e+01 1.243420e+02 0.000000e+00 + vertex 7.801519e+01 1.241736e+02 0.000000e+00 + vertex 7.800000e+01 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.250000e+02 1.240000e+02 0.000000e+00 + vertex 1.240000e+02 1.250000e+02 0.000000e+00 + vertex 7.800000e+01 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.240000e+02 1.250000e+02 0.000000e+00 + vertex 7.900000e+01 1.250000e+02 0.000000e+00 + vertex 7.800000e+01 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.900000e+01 1.250000e+02 0.000000e+00 + vertex 7.882635e+01 1.249848e+02 0.000000e+00 + vertex 7.800000e+01 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.882635e+01 1.249848e+02 0.000000e+00 + vertex 7.865798e+01 1.249397e+02 0.000000e+00 + vertex 7.800000e+01 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.865798e+01 1.249397e+02 0.000000e+00 + vertex 7.850000e+01 1.248660e+02 0.000000e+00 + vertex 7.800000e+01 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.850000e+01 1.248660e+02 0.000000e+00 + vertex 7.835721e+01 1.247660e+02 0.000000e+00 + vertex 7.800000e+01 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.835721e+01 1.247660e+02 0.000000e+00 + vertex 7.823396e+01 1.246428e+02 0.000000e+00 + vertex 7.800000e+01 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.823396e+01 1.246428e+02 0.000000e+00 + vertex 7.813398e+01 1.245000e+02 0.000000e+00 + vertex 7.800000e+01 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.813398e+01 1.245000e+02 0.000000e+00 + vertex 7.806031e+01 1.243420e+02 0.000000e+00 + vertex 7.800000e+01 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.249848e+02 1.241736e+02 0.000000e+00 + vertex 1.240000e+02 1.250000e+02 0.000000e+00 + vertex 1.250000e+02 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal 9.961951e-01 8.715157e-02 -0.000000e+00 + outer loop + vertex 1.249848e+02 1.241736e+02 -6.000000e+00 + vertex 1.249848e+02 1.241736e+02 0.000000e+00 + vertex 1.250000e+02 1.240000e+02 0.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex -1.249397e+02 1.243420e+02 0.000000e+00 + vertex -1.249397e+02 1.243420e+02 -6.000000e+00 + vertex -1.249848e+02 1.241736e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex -1.249848e+02 1.241736e+02 0.000000e+00 + vertex -1.249397e+02 1.243420e+02 0.000000e+00 + vertex -1.249848e+02 1.241736e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659164e-01 2.588543e-01 0.000000e+00 + outer loop + vertex -7.656031e+01 1.243420e+02 -6.000000e+00 + vertex -7.651519e+01 1.241736e+02 -3.000000e+00 + vertex -7.651519e+01 1.241736e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex -7.348481e+01 1.241736e+02 -3.000000e+00 + vertex -7.343969e+01 1.243420e+02 -3.000000e+00 + vertex -7.348481e+01 1.241736e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex -7.343969e+01 1.243420e+02 -3.000000e+00 + vertex -7.343969e+01 1.243420e+02 -6.000000e+00 + vertex -7.348481e+01 1.241736e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex 7.343969e+01 1.243420e+02 -6.000000e+00 + vertex 7.348481e+01 1.241736e+02 -3.000000e+00 + vertex 7.348481e+01 1.241736e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.656031e+01 1.243420e+02 -6.000000e+00 + vertex 7.750000e+01 1.250000e+02 -6.000000e+00 + vertex 7.651519e+01 1.241736e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659164e-01 2.588543e-01 0.000000e+00 + outer loop + vertex 7.651519e+01 1.241736e+02 -3.000000e+00 + vertex 7.656031e+01 1.243420e+02 -3.000000e+00 + vertex 7.651519e+01 1.241736e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659164e-01 2.588543e-01 0.000000e+00 + outer loop + vertex 7.656031e+01 1.243420e+02 -3.000000e+00 + vertex 7.656031e+01 1.243420e+02 -6.000000e+00 + vertex 7.651519e+01 1.241736e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex 1.249397e+02 1.243420e+02 -6.000000e+00 + vertex 1.249848e+02 1.241736e+02 0.000000e+00 + vertex 1.249848e+02 1.241736e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.651519e+01 1.241736e+02 -3.000000e+00 + vertex -7.656031e+01 1.243420e+02 -3.000000e+00 + vertex -7.801519e+01 1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.656031e+01 1.243420e+02 -3.000000e+00 + vertex -7.663397e+01 1.245000e+02 -3.000000e+00 + vertex -7.801519e+01 1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.663397e+01 1.245000e+02 -3.000000e+00 + vertex -7.673395e+01 1.246428e+02 -3.000000e+00 + vertex -7.801519e+01 1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.673395e+01 1.246428e+02 -3.000000e+00 + vertex -7.806031e+01 1.243420e+02 -3.000000e+00 + vertex -7.801519e+01 1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex -7.806031e+01 1.243420e+02 -3.000000e+00 + vertex -7.801519e+01 1.241736e+02 0.000000e+00 + vertex -7.801519e+01 1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659164e-01 2.588543e-01 -0.000000e+00 + outer loop + vertex -7.656031e+01 1.243420e+02 -6.000000e+00 + vertex -7.656031e+01 1.243420e+02 -3.000000e+00 + vertex -7.651519e+01 1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.326604e+01 1.246428e+02 -3.000000e+00 + vertex -7.336602e+01 1.245000e+02 -3.000000e+00 + vertex -7.198481e+01 1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.193969e+01 1.243420e+02 -3.000000e+00 + vertex -7.326604e+01 1.246428e+02 -3.000000e+00 + vertex -7.198481e+01 1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex -7.198481e+01 1.241736e+02 0.000000e+00 + vertex -7.193969e+01 1.243420e+02 0.000000e+00 + vertex -7.198481e+01 1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex -7.193969e+01 1.243420e+02 0.000000e+00 + vertex -7.193969e+01 1.243420e+02 -3.000000e+00 + vertex -7.198481e+01 1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.326604e+01 1.246428e+02 -3.000000e+00 + vertex 7.193969e+01 1.243420e+02 -3.000000e+00 + vertex 7.198481e+01 1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.343969e+01 1.243420e+02 -3.000000e+00 + vertex 7.336602e+01 1.245000e+02 -3.000000e+00 + vertex 7.198481e+01 1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.336602e+01 1.245000e+02 -3.000000e+00 + vertex 7.326604e+01 1.246428e+02 -3.000000e+00 + vertex 7.198481e+01 1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex 7.193969e+01 1.243420e+02 -3.000000e+00 + vertex 7.198481e+01 1.241736e+02 0.000000e+00 + vertex 7.198481e+01 1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 2.588144e-01 -0.000000e+00 + outer loop + vertex 7.343969e+01 1.243420e+02 -6.000000e+00 + vertex 7.343969e+01 1.243420e+02 -3.000000e+00 + vertex 7.348481e+01 1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.806031e+01 1.243420e+02 -3.000000e+00 + vertex 7.673395e+01 1.246428e+02 -3.000000e+00 + vertex 7.801519e+01 1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.673395e+01 1.246428e+02 -3.000000e+00 + vertex 7.663397e+01 1.245000e+02 -3.000000e+00 + vertex 7.801519e+01 1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex 7.801519e+01 1.241736e+02 0.000000e+00 + vertex 7.806031e+01 1.243420e+02 0.000000e+00 + vertex 7.801519e+01 1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex 7.806031e+01 1.243420e+02 0.000000e+00 + vertex 7.806031e+01 1.243420e+02 -3.000000e+00 + vertex 7.801519e+01 1.241736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.806031e+01 1.243420e+02 0.000000e+00 + vertex -7.900000e+01 1.250000e+02 0.000000e+00 + vertex -7.801519e+01 1.241736e+02 0.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 2.588144e-01 -0.000000e+00 + outer loop + vertex -7.806031e+01 1.243420e+02 -3.000000e+00 + vertex -7.806031e+01 1.243420e+02 0.000000e+00 + vertex -7.801519e+01 1.241736e+02 0.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 2.588144e-01 -0.000000e+00 + outer loop + vertex 7.193969e+01 1.243420e+02 -3.000000e+00 + vertex 7.193969e+01 1.243420e+02 0.000000e+00 + vertex 7.198481e+01 1.241736e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.249397e+02 1.243420e+02 0.000000e+00 + vertex 1.240000e+02 1.250000e+02 0.000000e+00 + vertex 1.249848e+02 1.241736e+02 0.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 2.588144e-01 -0.000000e+00 + outer loop + vertex 1.249397e+02 1.243420e+02 -6.000000e+00 + vertex 1.249397e+02 1.243420e+02 0.000000e+00 + vertex 1.249848e+02 1.241736e+02 0.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex -1.248660e+02 1.245000e+02 0.000000e+00 + vertex -1.248660e+02 1.245000e+02 -6.000000e+00 + vertex -1.249397e+02 1.243420e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex -1.249397e+02 1.243420e+02 0.000000e+00 + vertex -1.248660e+02 1.245000e+02 0.000000e+00 + vertex -1.249397e+02 1.243420e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063174e-01 4.225976e-01 0.000000e+00 + outer loop + vertex -7.663397e+01 1.245000e+02 -6.000000e+00 + vertex -7.656031e+01 1.243420e+02 -3.000000e+00 + vertex -7.656031e+01 1.243420e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex -7.343969e+01 1.243420e+02 -3.000000e+00 + vertex -7.336602e+01 1.245000e+02 -3.000000e+00 + vertex -7.343969e+01 1.243420e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex -7.336602e+01 1.245000e+02 -3.000000e+00 + vertex -7.336602e+01 1.245000e+02 -6.000000e+00 + vertex -7.343969e+01 1.243420e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex 7.336602e+01 1.245000e+02 -6.000000e+00 + vertex 7.343969e+01 1.243420e+02 -3.000000e+00 + vertex 7.343969e+01 1.243420e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.663397e+01 1.245000e+02 -6.000000e+00 + vertex 7.750000e+01 1.250000e+02 -6.000000e+00 + vertex 7.656031e+01 1.243420e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063174e-01 4.225976e-01 0.000000e+00 + outer loop + vertex 7.656031e+01 1.243420e+02 -3.000000e+00 + vertex 7.663397e+01 1.245000e+02 -3.000000e+00 + vertex 7.656031e+01 1.243420e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063174e-01 4.225976e-01 0.000000e+00 + outer loop + vertex 7.663397e+01 1.245000e+02 -3.000000e+00 + vertex 7.663397e+01 1.245000e+02 -6.000000e+00 + vertex 7.656031e+01 1.243420e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex 1.248660e+02 1.245000e+02 -6.000000e+00 + vertex 1.249397e+02 1.243420e+02 0.000000e+00 + vertex 1.249397e+02 1.243420e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.715798e+01 1.249397e+02 -3.000000e+00 + vertex -7.813398e+01 1.245000e+02 -3.000000e+00 + vertex -7.806031e+01 1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.700000e+01 1.248660e+02 -3.000000e+00 + vertex -7.715798e+01 1.249397e+02 -3.000000e+00 + vertex -7.806031e+01 1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.673395e+01 1.246428e+02 -3.000000e+00 + vertex -7.685721e+01 1.247660e+02 -3.000000e+00 + vertex -7.806031e+01 1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.685721e+01 1.247660e+02 -3.000000e+00 + vertex -7.700000e+01 1.248660e+02 -3.000000e+00 + vertex -7.806031e+01 1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex -7.813398e+01 1.245000e+02 -3.000000e+00 + vertex -7.806031e+01 1.243420e+02 0.000000e+00 + vertex -7.806031e+01 1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063174e-01 4.225976e-01 -0.000000e+00 + outer loop + vertex -7.663397e+01 1.245000e+02 -6.000000e+00 + vertex -7.663397e+01 1.245000e+02 -3.000000e+00 + vertex -7.656031e+01 1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.314279e+01 1.247660e+02 -3.000000e+00 + vertex -7.326604e+01 1.246428e+02 -3.000000e+00 + vertex -7.193969e+01 1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.300000e+01 1.248660e+02 -3.000000e+00 + vertex -7.314279e+01 1.247660e+02 -3.000000e+00 + vertex -7.193969e+01 1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.186603e+01 1.245000e+02 -3.000000e+00 + vertex -7.267365e+01 1.249848e+02 -3.000000e+00 + vertex -7.193969e+01 1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.267365e+01 1.249848e+02 -3.000000e+00 + vertex -7.284202e+01 1.249397e+02 -3.000000e+00 + vertex -7.193969e+01 1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.284202e+01 1.249397e+02 -3.000000e+00 + vertex -7.300000e+01 1.248660e+02 -3.000000e+00 + vertex -7.193969e+01 1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063174e-01 4.225976e-01 0.000000e+00 + outer loop + vertex -7.193969e+01 1.243420e+02 0.000000e+00 + vertex -7.186603e+01 1.245000e+02 0.000000e+00 + vertex -7.193969e+01 1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063174e-01 4.225976e-01 0.000000e+00 + outer loop + vertex -7.186603e+01 1.245000e+02 0.000000e+00 + vertex -7.186603e+01 1.245000e+02 -3.000000e+00 + vertex -7.193969e+01 1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.326604e+01 1.246428e+02 -3.000000e+00 + vertex 7.314279e+01 1.247660e+02 -3.000000e+00 + vertex 7.193969e+01 1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.284202e+01 1.249397e+02 -3.000000e+00 + vertex 7.186603e+01 1.245000e+02 -3.000000e+00 + vertex 7.193969e+01 1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.300000e+01 1.248660e+02 -3.000000e+00 + vertex 7.284202e+01 1.249397e+02 -3.000000e+00 + vertex 7.193969e+01 1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.314279e+01 1.247660e+02 -3.000000e+00 + vertex 7.300000e+01 1.248660e+02 -3.000000e+00 + vertex 7.193969e+01 1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063174e-01 4.225976e-01 0.000000e+00 + outer loop + vertex 7.186603e+01 1.245000e+02 -3.000000e+00 + vertex 7.193969e+01 1.243420e+02 0.000000e+00 + vertex 7.193969e+01 1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 4.226327e-01 -0.000000e+00 + outer loop + vertex 7.336602e+01 1.245000e+02 -6.000000e+00 + vertex 7.336602e+01 1.245000e+02 -3.000000e+00 + vertex 7.343969e+01 1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.700000e+01 1.248660e+02 -3.000000e+00 + vertex 7.685721e+01 1.247660e+02 -3.000000e+00 + vertex 7.806031e+01 1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.685721e+01 1.247660e+02 -3.000000e+00 + vertex 7.673395e+01 1.246428e+02 -3.000000e+00 + vertex 7.806031e+01 1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.813398e+01 1.245000e+02 -3.000000e+00 + vertex 7.732635e+01 1.249848e+02 -3.000000e+00 + vertex 7.806031e+01 1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.732635e+01 1.249848e+02 -3.000000e+00 + vertex 7.715798e+01 1.249397e+02 -3.000000e+00 + vertex 7.806031e+01 1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.715798e+01 1.249397e+02 -3.000000e+00 + vertex 7.700000e+01 1.248660e+02 -3.000000e+00 + vertex 7.806031e+01 1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex 7.806031e+01 1.243420e+02 0.000000e+00 + vertex 7.813398e+01 1.245000e+02 0.000000e+00 + vertex 7.806031e+01 1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex 7.813398e+01 1.245000e+02 0.000000e+00 + vertex 7.813398e+01 1.245000e+02 -3.000000e+00 + vertex 7.806031e+01 1.243420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.813398e+01 1.245000e+02 0.000000e+00 + vertex -7.900000e+01 1.250000e+02 0.000000e+00 + vertex -7.806031e+01 1.243420e+02 0.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 4.226327e-01 -0.000000e+00 + outer loop + vertex -7.813398e+01 1.245000e+02 -3.000000e+00 + vertex -7.813398e+01 1.245000e+02 0.000000e+00 + vertex -7.806031e+01 1.243420e+02 0.000000e+00 + endloop + endfacet + facet normal 9.063174e-01 4.225976e-01 -0.000000e+00 + outer loop + vertex 7.186603e+01 1.245000e+02 -3.000000e+00 + vertex 7.186603e+01 1.245000e+02 0.000000e+00 + vertex 7.193969e+01 1.243420e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.248660e+02 1.245000e+02 0.000000e+00 + vertex 1.240000e+02 1.250000e+02 0.000000e+00 + vertex 1.249397e+02 1.243420e+02 0.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 4.226327e-01 -0.000000e+00 + outer loop + vertex 1.248660e+02 1.245000e+02 -6.000000e+00 + vertex 1.248660e+02 1.245000e+02 0.000000e+00 + vertex 1.249397e+02 1.243420e+02 0.000000e+00 + endloop + endfacet + facet normal -8.191616e-01 5.735627e-01 0.000000e+00 + outer loop + vertex -1.247660e+02 1.246428e+02 0.000000e+00 + vertex -1.247660e+02 1.246428e+02 -6.000000e+00 + vertex -1.248660e+02 1.245000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191616e-01 5.735627e-01 0.000000e+00 + outer loop + vertex -1.248660e+02 1.245000e+02 0.000000e+00 + vertex -1.247660e+02 1.246428e+02 0.000000e+00 + vertex -1.248660e+02 1.245000e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191616e-01 5.735627e-01 0.000000e+00 + outer loop + vertex -7.673395e+01 1.246428e+02 -6.000000e+00 + vertex -7.663397e+01 1.245000e+02 -3.000000e+00 + vertex -7.663397e+01 1.245000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191616e-01 5.735627e-01 0.000000e+00 + outer loop + vertex -7.336602e+01 1.245000e+02 -3.000000e+00 + vertex -7.326604e+01 1.246428e+02 -3.000000e+00 + vertex -7.336602e+01 1.245000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191616e-01 5.735627e-01 0.000000e+00 + outer loop + vertex -7.326604e+01 1.246428e+02 -3.000000e+00 + vertex -7.326604e+01 1.246428e+02 -6.000000e+00 + vertex -7.336602e+01 1.245000e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191616e-01 5.735627e-01 0.000000e+00 + outer loop + vertex 7.326604e+01 1.246428e+02 -6.000000e+00 + vertex 7.336602e+01 1.245000e+02 -3.000000e+00 + vertex 7.336602e+01 1.245000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.673395e+01 1.246428e+02 -6.000000e+00 + vertex 7.750000e+01 1.250000e+02 -6.000000e+00 + vertex 7.663397e+01 1.245000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191616e-01 5.735627e-01 0.000000e+00 + outer loop + vertex 7.663397e+01 1.245000e+02 -3.000000e+00 + vertex 7.673395e+01 1.246428e+02 -3.000000e+00 + vertex 7.663397e+01 1.245000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191616e-01 5.735627e-01 0.000000e+00 + outer loop + vertex 7.673395e+01 1.246428e+02 -3.000000e+00 + vertex 7.673395e+01 1.246428e+02 -6.000000e+00 + vertex 7.663397e+01 1.245000e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191616e-01 5.735627e-01 0.000000e+00 + outer loop + vertex 1.247660e+02 1.246428e+02 -6.000000e+00 + vertex 1.248660e+02 1.245000e+02 0.000000e+00 + vertex 1.248660e+02 1.245000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.732635e+01 1.249848e+02 -3.000000e+00 + vertex -7.823396e+01 1.246428e+02 -3.000000e+00 + vertex -7.813398e+01 1.245000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.715798e+01 1.249397e+02 -3.000000e+00 + vertex -7.732635e+01 1.249848e+02 -3.000000e+00 + vertex -7.813398e+01 1.245000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191616e-01 5.735627e-01 0.000000e+00 + outer loop + vertex -7.823396e+01 1.246428e+02 -3.000000e+00 + vertex -7.813398e+01 1.245000e+02 0.000000e+00 + vertex -7.813398e+01 1.245000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191616e-01 5.735627e-01 -0.000000e+00 + outer loop + vertex -7.673395e+01 1.246428e+02 -6.000000e+00 + vertex -7.673395e+01 1.246428e+02 -3.000000e+00 + vertex -7.663397e+01 1.245000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.176604e+01 1.246428e+02 -3.000000e+00 + vertex -7.250000e+01 1.250000e+02 -3.000000e+00 + vertex -7.186603e+01 1.245000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.250000e+01 1.250000e+02 -3.000000e+00 + vertex -7.267365e+01 1.249848e+02 -3.000000e+00 + vertex -7.186603e+01 1.245000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191416e-01 5.735914e-01 0.000000e+00 + outer loop + vertex -7.186603e+01 1.245000e+02 0.000000e+00 + vertex -7.176604e+01 1.246428e+02 0.000000e+00 + vertex -7.186603e+01 1.245000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191416e-01 5.735914e-01 0.000000e+00 + outer loop + vertex -7.176604e+01 1.246428e+02 0.000000e+00 + vertex -7.176604e+01 1.246428e+02 -3.000000e+00 + vertex -7.186603e+01 1.245000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.267365e+01 1.249848e+02 -3.000000e+00 + vertex 7.176604e+01 1.246428e+02 -3.000000e+00 + vertex 7.186603e+01 1.245000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.284202e+01 1.249397e+02 -3.000000e+00 + vertex 7.267365e+01 1.249848e+02 -3.000000e+00 + vertex 7.186603e+01 1.245000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191416e-01 5.735914e-01 0.000000e+00 + outer loop + vertex 7.176604e+01 1.246428e+02 -3.000000e+00 + vertex 7.186603e+01 1.245000e+02 0.000000e+00 + vertex 7.186603e+01 1.245000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191616e-01 5.735627e-01 -0.000000e+00 + outer loop + vertex 7.326604e+01 1.246428e+02 -6.000000e+00 + vertex 7.326604e+01 1.246428e+02 -3.000000e+00 + vertex 7.336602e+01 1.245000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.823396e+01 1.246428e+02 -3.000000e+00 + vertex 7.750000e+01 1.250000e+02 -3.000000e+00 + vertex 7.813398e+01 1.245000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.750000e+01 1.250000e+02 -3.000000e+00 + vertex 7.732635e+01 1.249848e+02 -3.000000e+00 + vertex 7.813398e+01 1.245000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191616e-01 5.735627e-01 0.000000e+00 + outer loop + vertex 7.813398e+01 1.245000e+02 0.000000e+00 + vertex 7.823396e+01 1.246428e+02 0.000000e+00 + vertex 7.813398e+01 1.245000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191616e-01 5.735627e-01 0.000000e+00 + outer loop + vertex 7.823396e+01 1.246428e+02 0.000000e+00 + vertex 7.823396e+01 1.246428e+02 -3.000000e+00 + vertex 7.813398e+01 1.245000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.823396e+01 1.246428e+02 0.000000e+00 + vertex -7.900000e+01 1.250000e+02 0.000000e+00 + vertex -7.813398e+01 1.245000e+02 0.000000e+00 + endloop + endfacet + facet normal 8.191616e-01 5.735627e-01 -0.000000e+00 + outer loop + vertex -7.823396e+01 1.246428e+02 -3.000000e+00 + vertex -7.823396e+01 1.246428e+02 0.000000e+00 + vertex -7.813398e+01 1.245000e+02 0.000000e+00 + endloop + endfacet + facet normal 8.191416e-01 5.735914e-01 -0.000000e+00 + outer loop + vertex 7.176604e+01 1.246428e+02 -3.000000e+00 + vertex 7.176604e+01 1.246428e+02 0.000000e+00 + vertex 7.186603e+01 1.245000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.247660e+02 1.246428e+02 0.000000e+00 + vertex 1.240000e+02 1.250000e+02 0.000000e+00 + vertex 1.248660e+02 1.245000e+02 0.000000e+00 + endloop + endfacet + facet normal 8.191616e-01 5.735627e-01 -0.000000e+00 + outer loop + vertex 1.247660e+02 1.246428e+02 -6.000000e+00 + vertex 1.247660e+02 1.246428e+02 0.000000e+00 + vertex 1.248660e+02 1.245000e+02 0.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex -1.246428e+02 1.247660e+02 0.000000e+00 + vertex -1.246428e+02 1.247660e+02 -6.000000e+00 + vertex -1.247660e+02 1.246428e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex -1.247660e+02 1.246428e+02 0.000000e+00 + vertex -1.246428e+02 1.247660e+02 0.000000e+00 + vertex -1.247660e+02 1.246428e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex -7.685721e+01 1.247660e+02 -6.000000e+00 + vertex -7.673395e+01 1.246428e+02 -3.000000e+00 + vertex -7.673395e+01 1.246428e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex -7.326604e+01 1.246428e+02 -3.000000e+00 + vertex -7.314279e+01 1.247660e+02 -3.000000e+00 + vertex -7.326604e+01 1.246428e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex -7.314279e+01 1.247660e+02 -3.000000e+00 + vertex -7.314279e+01 1.247660e+02 -6.000000e+00 + vertex -7.326604e+01 1.246428e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex 7.314279e+01 1.247660e+02 -6.000000e+00 + vertex 7.326604e+01 1.246428e+02 -3.000000e+00 + vertex 7.326604e+01 1.246428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.685721e+01 1.247660e+02 -6.000000e+00 + vertex 7.750000e+01 1.250000e+02 -6.000000e+00 + vertex 7.673395e+01 1.246428e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex 7.673395e+01 1.246428e+02 -3.000000e+00 + vertex 7.685721e+01 1.247660e+02 -3.000000e+00 + vertex 7.673395e+01 1.246428e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex 7.685721e+01 1.247660e+02 -3.000000e+00 + vertex 7.685721e+01 1.247660e+02 -6.000000e+00 + vertex 7.673395e+01 1.246428e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex 1.246428e+02 1.247660e+02 -6.000000e+00 + vertex 1.247660e+02 1.246428e+02 0.000000e+00 + vertex 1.247660e+02 1.246428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.750000e+01 1.250000e+02 -3.000000e+00 + vertex -7.835721e+01 1.247660e+02 -3.000000e+00 + vertex -7.823396e+01 1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.732635e+01 1.249848e+02 -3.000000e+00 + vertex -7.750000e+01 1.250000e+02 -3.000000e+00 + vertex -7.823396e+01 1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex -7.835721e+01 1.247660e+02 -3.000000e+00 + vertex -7.823396e+01 1.246428e+02 0.000000e+00 + vertex -7.823396e+01 1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 7.071068e-01 -0.000000e+00 + outer loop + vertex -7.685721e+01 1.247660e+02 -6.000000e+00 + vertex -7.685721e+01 1.247660e+02 -3.000000e+00 + vertex -7.673395e+01 1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.164279e+01 1.247660e+02 -3.000000e+00 + vertex -7.250000e+01 1.250000e+02 -3.000000e+00 + vertex -7.176604e+01 1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex -7.176604e+01 1.246428e+02 0.000000e+00 + vertex -7.164279e+01 1.247660e+02 0.000000e+00 + vertex -7.176604e+01 1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex -7.164279e+01 1.247660e+02 0.000000e+00 + vertex -7.164279e+01 1.247660e+02 -3.000000e+00 + vertex -7.176604e+01 1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.250000e+01 1.250000e+02 -3.000000e+00 + vertex 7.164279e+01 1.247660e+02 -3.000000e+00 + vertex 7.176604e+01 1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.267365e+01 1.249848e+02 -3.000000e+00 + vertex 7.250000e+01 1.250000e+02 -3.000000e+00 + vertex 7.176604e+01 1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex 7.164279e+01 1.247660e+02 -3.000000e+00 + vertex 7.176604e+01 1.246428e+02 0.000000e+00 + vertex 7.176604e+01 1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 7.071068e-01 -0.000000e+00 + outer loop + vertex 7.314279e+01 1.247660e+02 -6.000000e+00 + vertex 7.314279e+01 1.247660e+02 -3.000000e+00 + vertex 7.326604e+01 1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.835721e+01 1.247660e+02 -3.000000e+00 + vertex 7.750000e+01 1.250000e+02 -3.000000e+00 + vertex 7.823396e+01 1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex 7.823396e+01 1.246428e+02 0.000000e+00 + vertex 7.835721e+01 1.247660e+02 0.000000e+00 + vertex 7.823396e+01 1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex 7.835721e+01 1.247660e+02 0.000000e+00 + vertex 7.835721e+01 1.247660e+02 -3.000000e+00 + vertex 7.823396e+01 1.246428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.835721e+01 1.247660e+02 0.000000e+00 + vertex -7.900000e+01 1.250000e+02 0.000000e+00 + vertex -7.823396e+01 1.246428e+02 0.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 7.071068e-01 -0.000000e+00 + outer loop + vertex -7.835721e+01 1.247660e+02 -3.000000e+00 + vertex -7.835721e+01 1.247660e+02 0.000000e+00 + vertex -7.823396e+01 1.246428e+02 0.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 7.071068e-01 -0.000000e+00 + outer loop + vertex 7.164279e+01 1.247660e+02 -3.000000e+00 + vertex 7.164279e+01 1.247660e+02 0.000000e+00 + vertex 7.176604e+01 1.246428e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.246428e+02 1.247660e+02 0.000000e+00 + vertex 1.240000e+02 1.250000e+02 0.000000e+00 + vertex 1.247660e+02 1.246428e+02 0.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 7.071068e-01 -0.000000e+00 + outer loop + vertex 1.246428e+02 1.247660e+02 -6.000000e+00 + vertex 1.246428e+02 1.247660e+02 0.000000e+00 + vertex 1.247660e+02 1.246428e+02 0.000000e+00 + endloop + endfacet + facet normal -5.735627e-01 8.191616e-01 0.000000e+00 + outer loop + vertex -1.245000e+02 1.248660e+02 0.000000e+00 + vertex -1.245000e+02 1.248660e+02 -6.000000e+00 + vertex -1.246428e+02 1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735627e-01 8.191616e-01 0.000000e+00 + outer loop + vertex -1.246428e+02 1.247660e+02 0.000000e+00 + vertex -1.245000e+02 1.248660e+02 0.000000e+00 + vertex -1.246428e+02 1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735627e-01 8.191616e-01 0.000000e+00 + outer loop + vertex -7.700000e+01 1.248660e+02 -6.000000e+00 + vertex -7.685721e+01 1.247660e+02 -3.000000e+00 + vertex -7.685721e+01 1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735627e-01 8.191616e-01 0.000000e+00 + outer loop + vertex -7.314279e+01 1.247660e+02 -3.000000e+00 + vertex -7.300000e+01 1.248660e+02 -3.000000e+00 + vertex -7.314279e+01 1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735627e-01 8.191616e-01 0.000000e+00 + outer loop + vertex -7.300000e+01 1.248660e+02 -3.000000e+00 + vertex -7.300000e+01 1.248660e+02 -6.000000e+00 + vertex -7.314279e+01 1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735627e-01 8.191616e-01 0.000000e+00 + outer loop + vertex 7.300000e+01 1.248660e+02 -6.000000e+00 + vertex 7.314279e+01 1.247660e+02 -3.000000e+00 + vertex 7.314279e+01 1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.700000e+01 1.248660e+02 -6.000000e+00 + vertex 7.750000e+01 1.250000e+02 -6.000000e+00 + vertex 7.685721e+01 1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735627e-01 8.191616e-01 0.000000e+00 + outer loop + vertex 7.685721e+01 1.247660e+02 -3.000000e+00 + vertex 7.700000e+01 1.248660e+02 -3.000000e+00 + vertex 7.685721e+01 1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735627e-01 8.191616e-01 0.000000e+00 + outer loop + vertex 7.700000e+01 1.248660e+02 -3.000000e+00 + vertex 7.700000e+01 1.248660e+02 -6.000000e+00 + vertex 7.685721e+01 1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735627e-01 8.191616e-01 0.000000e+00 + outer loop + vertex 1.245000e+02 1.248660e+02 -6.000000e+00 + vertex 1.246428e+02 1.247660e+02 0.000000e+00 + vertex 1.246428e+02 1.247660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.750000e+01 1.250000e+02 -3.000000e+00 + vertex -7.850000e+01 1.248660e+02 -3.000000e+00 + vertex -7.835721e+01 1.247660e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735627e-01 8.191616e-01 0.000000e+00 + outer loop + vertex -7.850000e+01 1.248660e+02 -3.000000e+00 + vertex -7.835721e+01 1.247660e+02 0.000000e+00 + vertex -7.835721e+01 1.247660e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735627e-01 8.191616e-01 -0.000000e+00 + outer loop + vertex -7.700000e+01 1.248660e+02 -6.000000e+00 + vertex -7.700000e+01 1.248660e+02 -3.000000e+00 + vertex -7.685721e+01 1.247660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.150000e+01 1.248660e+02 -3.000000e+00 + vertex -7.250000e+01 1.250000e+02 -3.000000e+00 + vertex -7.164279e+01 1.247660e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735828e-01 8.191476e-01 0.000000e+00 + outer loop + vertex -7.164279e+01 1.247660e+02 0.000000e+00 + vertex -7.150000e+01 1.248660e+02 0.000000e+00 + vertex -7.164279e+01 1.247660e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735828e-01 8.191476e-01 0.000000e+00 + outer loop + vertex -7.150000e+01 1.248660e+02 0.000000e+00 + vertex -7.150000e+01 1.248660e+02 -3.000000e+00 + vertex -7.164279e+01 1.247660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.250000e+01 1.250000e+02 -3.000000e+00 + vertex 7.150000e+01 1.248660e+02 -3.000000e+00 + vertex 7.164279e+01 1.247660e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735828e-01 8.191476e-01 0.000000e+00 + outer loop + vertex 7.150000e+01 1.248660e+02 -3.000000e+00 + vertex 7.164279e+01 1.247660e+02 0.000000e+00 + vertex 7.164279e+01 1.247660e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735627e-01 8.191616e-01 -0.000000e+00 + outer loop + vertex 7.300000e+01 1.248660e+02 -6.000000e+00 + vertex 7.300000e+01 1.248660e+02 -3.000000e+00 + vertex 7.314279e+01 1.247660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.850000e+01 1.248660e+02 -3.000000e+00 + vertex 7.750000e+01 1.250000e+02 -3.000000e+00 + vertex 7.835721e+01 1.247660e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735627e-01 8.191616e-01 0.000000e+00 + outer loop + vertex 7.835721e+01 1.247660e+02 0.000000e+00 + vertex 7.850000e+01 1.248660e+02 0.000000e+00 + vertex 7.835721e+01 1.247660e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735627e-01 8.191616e-01 0.000000e+00 + outer loop + vertex 7.850000e+01 1.248660e+02 0.000000e+00 + vertex 7.850000e+01 1.248660e+02 -3.000000e+00 + vertex 7.835721e+01 1.247660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.850000e+01 1.248660e+02 0.000000e+00 + vertex -7.900000e+01 1.250000e+02 0.000000e+00 + vertex -7.835721e+01 1.247660e+02 0.000000e+00 + endloop + endfacet + facet normal 5.735627e-01 8.191616e-01 -0.000000e+00 + outer loop + vertex -7.850000e+01 1.248660e+02 -3.000000e+00 + vertex -7.850000e+01 1.248660e+02 0.000000e+00 + vertex -7.835721e+01 1.247660e+02 0.000000e+00 + endloop + endfacet + facet normal 5.735828e-01 8.191476e-01 -0.000000e+00 + outer loop + vertex 7.150000e+01 1.248660e+02 -3.000000e+00 + vertex 7.150000e+01 1.248660e+02 0.000000e+00 + vertex 7.164279e+01 1.247660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.245000e+02 1.248660e+02 0.000000e+00 + vertex 1.240000e+02 1.250000e+02 0.000000e+00 + vertex 1.246428e+02 1.247660e+02 0.000000e+00 + endloop + endfacet + facet normal 5.735627e-01 8.191616e-01 -0.000000e+00 + outer loop + vertex 1.245000e+02 1.248660e+02 -6.000000e+00 + vertex 1.245000e+02 1.248660e+02 0.000000e+00 + vertex 1.246428e+02 1.247660e+02 0.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex -1.243420e+02 1.249397e+02 0.000000e+00 + vertex -1.243420e+02 1.249397e+02 -6.000000e+00 + vertex -1.245000e+02 1.248660e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex -1.245000e+02 1.248660e+02 0.000000e+00 + vertex -1.243420e+02 1.249397e+02 0.000000e+00 + vertex -1.245000e+02 1.248660e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex -7.715798e+01 1.249397e+02 -6.000000e+00 + vertex -7.700000e+01 1.248660e+02 -3.000000e+00 + vertex -7.700000e+01 1.248660e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex -7.300000e+01 1.248660e+02 -3.000000e+00 + vertex -7.284202e+01 1.249397e+02 -3.000000e+00 + vertex -7.300000e+01 1.248660e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex -7.284202e+01 1.249397e+02 -3.000000e+00 + vertex -7.284202e+01 1.249397e+02 -6.000000e+00 + vertex -7.300000e+01 1.248660e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex 7.284202e+01 1.249397e+02 -6.000000e+00 + vertex 7.300000e+01 1.248660e+02 -3.000000e+00 + vertex 7.300000e+01 1.248660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.715798e+01 1.249397e+02 -6.000000e+00 + vertex 7.750000e+01 1.250000e+02 -6.000000e+00 + vertex 7.700000e+01 1.248660e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex 7.700000e+01 1.248660e+02 -3.000000e+00 + vertex 7.715798e+01 1.249397e+02 -3.000000e+00 + vertex 7.700000e+01 1.248660e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex 7.715798e+01 1.249397e+02 -3.000000e+00 + vertex 7.715798e+01 1.249397e+02 -6.000000e+00 + vertex 7.700000e+01 1.248660e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex 1.243420e+02 1.249397e+02 -6.000000e+00 + vertex 1.245000e+02 1.248660e+02 0.000000e+00 + vertex 1.245000e+02 1.248660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.750000e+01 1.250000e+02 -3.000000e+00 + vertex -7.865798e+01 1.249397e+02 -3.000000e+00 + vertex -7.850000e+01 1.248660e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226491e-01 9.062934e-01 0.000000e+00 + outer loop + vertex -7.865798e+01 1.249397e+02 -3.000000e+00 + vertex -7.850000e+01 1.248660e+02 0.000000e+00 + vertex -7.850000e+01 1.248660e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 9.063010e-01 -0.000000e+00 + outer loop + vertex -7.715798e+01 1.249397e+02 -6.000000e+00 + vertex -7.715798e+01 1.249397e+02 -3.000000e+00 + vertex -7.700000e+01 1.248660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.134202e+01 1.249397e+02 -3.000000e+00 + vertex -7.250000e+01 1.250000e+02 -3.000000e+00 + vertex -7.150000e+01 1.248660e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex -7.150000e+01 1.248660e+02 0.000000e+00 + vertex -7.134202e+01 1.249397e+02 0.000000e+00 + vertex -7.150000e+01 1.248660e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex -7.134202e+01 1.249397e+02 0.000000e+00 + vertex -7.134202e+01 1.249397e+02 -3.000000e+00 + vertex -7.150000e+01 1.248660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.250000e+01 1.250000e+02 -3.000000e+00 + vertex 7.134202e+01 1.249397e+02 -3.000000e+00 + vertex 7.150000e+01 1.248660e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex 7.134202e+01 1.249397e+02 -3.000000e+00 + vertex 7.150000e+01 1.248660e+02 0.000000e+00 + vertex 7.150000e+01 1.248660e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 9.063010e-01 -0.000000e+00 + outer loop + vertex 7.284202e+01 1.249397e+02 -6.000000e+00 + vertex 7.284202e+01 1.249397e+02 -3.000000e+00 + vertex 7.300000e+01 1.248660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.865798e+01 1.249397e+02 -3.000000e+00 + vertex 7.750000e+01 1.250000e+02 -3.000000e+00 + vertex 7.850000e+01 1.248660e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226491e-01 9.062934e-01 0.000000e+00 + outer loop + vertex 7.850000e+01 1.248660e+02 0.000000e+00 + vertex 7.865798e+01 1.249397e+02 0.000000e+00 + vertex 7.850000e+01 1.248660e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226491e-01 9.062934e-01 0.000000e+00 + outer loop + vertex 7.865798e+01 1.249397e+02 0.000000e+00 + vertex 7.865798e+01 1.249397e+02 -3.000000e+00 + vertex 7.850000e+01 1.248660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.865798e+01 1.249397e+02 0.000000e+00 + vertex -7.900000e+01 1.250000e+02 0.000000e+00 + vertex -7.850000e+01 1.248660e+02 0.000000e+00 + endloop + endfacet + facet normal 4.226491e-01 9.062934e-01 -0.000000e+00 + outer loop + vertex -7.865798e+01 1.249397e+02 -3.000000e+00 + vertex -7.865798e+01 1.249397e+02 0.000000e+00 + vertex -7.850000e+01 1.248660e+02 0.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 9.063010e-01 -0.000000e+00 + outer loop + vertex 7.134202e+01 1.249397e+02 -3.000000e+00 + vertex 7.134202e+01 1.249397e+02 0.000000e+00 + vertex 7.150000e+01 1.248660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.243420e+02 1.249397e+02 0.000000e+00 + vertex 1.240000e+02 1.250000e+02 0.000000e+00 + vertex 1.245000e+02 1.248660e+02 0.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 9.063010e-01 -0.000000e+00 + outer loop + vertex 1.243420e+02 1.249397e+02 -6.000000e+00 + vertex 1.243420e+02 1.249397e+02 0.000000e+00 + vertex 1.245000e+02 1.248660e+02 0.000000e+00 + endloop + endfacet + facet normal -2.588144e-01 9.659271e-01 0.000000e+00 + outer loop + vertex -1.241736e+02 1.249848e+02 0.000000e+00 + vertex -1.241736e+02 1.249848e+02 -6.000000e+00 + vertex -1.243420e+02 1.249397e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588144e-01 9.659271e-01 0.000000e+00 + outer loop + vertex -1.243420e+02 1.249397e+02 0.000000e+00 + vertex -1.241736e+02 1.249848e+02 0.000000e+00 + vertex -1.243420e+02 1.249397e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588144e-01 9.659271e-01 0.000000e+00 + outer loop + vertex -7.732635e+01 1.249848e+02 -6.000000e+00 + vertex -7.715798e+01 1.249397e+02 -3.000000e+00 + vertex -7.715798e+01 1.249397e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588144e-01 9.659271e-01 0.000000e+00 + outer loop + vertex -7.284202e+01 1.249397e+02 -3.000000e+00 + vertex -7.267365e+01 1.249848e+02 -3.000000e+00 + vertex -7.284202e+01 1.249397e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588144e-01 9.659271e-01 0.000000e+00 + outer loop + vertex -7.267365e+01 1.249848e+02 -3.000000e+00 + vertex -7.267365e+01 1.249848e+02 -6.000000e+00 + vertex -7.284202e+01 1.249397e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588144e-01 9.659271e-01 0.000000e+00 + outer loop + vertex 7.267365e+01 1.249848e+02 -6.000000e+00 + vertex 7.284202e+01 1.249397e+02 -3.000000e+00 + vertex 7.284202e+01 1.249397e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.732635e+01 1.249848e+02 -6.000000e+00 + vertex 7.750000e+01 1.250000e+02 -6.000000e+00 + vertex 7.715798e+01 1.249397e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588144e-01 9.659271e-01 0.000000e+00 + outer loop + vertex 7.715798e+01 1.249397e+02 -3.000000e+00 + vertex 7.732635e+01 1.249848e+02 -3.000000e+00 + vertex 7.715798e+01 1.249397e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588144e-01 9.659271e-01 0.000000e+00 + outer loop + vertex 7.732635e+01 1.249848e+02 -3.000000e+00 + vertex 7.732635e+01 1.249848e+02 -6.000000e+00 + vertex 7.715798e+01 1.249397e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588144e-01 9.659271e-01 0.000000e+00 + outer loop + vertex 1.241736e+02 1.249848e+02 -6.000000e+00 + vertex 1.243420e+02 1.249397e+02 0.000000e+00 + vertex 1.243420e+02 1.249397e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.750000e+01 1.250000e+02 -3.000000e+00 + vertex -7.882635e+01 1.249848e+02 -3.000000e+00 + vertex -7.865798e+01 1.249397e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588037e-01 9.659299e-01 0.000000e+00 + outer loop + vertex -7.882635e+01 1.249848e+02 -3.000000e+00 + vertex -7.865798e+01 1.249397e+02 0.000000e+00 + vertex -7.865798e+01 1.249397e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588144e-01 9.659271e-01 -0.000000e+00 + outer loop + vertex -7.732635e+01 1.249848e+02 -6.000000e+00 + vertex -7.732635e+01 1.249848e+02 -3.000000e+00 + vertex -7.715798e+01 1.249397e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.117365e+01 1.249848e+02 -3.000000e+00 + vertex -7.250000e+01 1.250000e+02 -3.000000e+00 + vertex -7.134202e+01 1.249397e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588037e-01 9.659299e-01 0.000000e+00 + outer loop + vertex -7.134202e+01 1.249397e+02 0.000000e+00 + vertex -7.117365e+01 1.249848e+02 0.000000e+00 + vertex -7.134202e+01 1.249397e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588037e-01 9.659299e-01 0.000000e+00 + outer loop + vertex -7.117365e+01 1.249848e+02 0.000000e+00 + vertex -7.117365e+01 1.249848e+02 -3.000000e+00 + vertex -7.134202e+01 1.249397e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.250000e+01 1.250000e+02 -3.000000e+00 + vertex 7.117365e+01 1.249848e+02 -3.000000e+00 + vertex 7.134202e+01 1.249397e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588037e-01 9.659299e-01 0.000000e+00 + outer loop + vertex 7.117365e+01 1.249848e+02 -3.000000e+00 + vertex 7.134202e+01 1.249397e+02 0.000000e+00 + vertex 7.134202e+01 1.249397e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588144e-01 9.659271e-01 -0.000000e+00 + outer loop + vertex 7.267365e+01 1.249848e+02 -6.000000e+00 + vertex 7.267365e+01 1.249848e+02 -3.000000e+00 + vertex 7.284202e+01 1.249397e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.882635e+01 1.249848e+02 -3.000000e+00 + vertex 7.750000e+01 1.250000e+02 -3.000000e+00 + vertex 7.865798e+01 1.249397e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588037e-01 9.659299e-01 0.000000e+00 + outer loop + vertex 7.865798e+01 1.249397e+02 0.000000e+00 + vertex 7.882635e+01 1.249848e+02 0.000000e+00 + vertex 7.865798e+01 1.249397e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588037e-01 9.659299e-01 0.000000e+00 + outer loop + vertex 7.882635e+01 1.249848e+02 0.000000e+00 + vertex 7.882635e+01 1.249848e+02 -3.000000e+00 + vertex 7.865798e+01 1.249397e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.882635e+01 1.249848e+02 0.000000e+00 + vertex -7.900000e+01 1.250000e+02 0.000000e+00 + vertex -7.865798e+01 1.249397e+02 0.000000e+00 + endloop + endfacet + facet normal 2.588037e-01 9.659299e-01 -0.000000e+00 + outer loop + vertex -7.882635e+01 1.249848e+02 -3.000000e+00 + vertex -7.882635e+01 1.249848e+02 0.000000e+00 + vertex -7.865798e+01 1.249397e+02 0.000000e+00 + endloop + endfacet + facet normal 2.588037e-01 9.659299e-01 -0.000000e+00 + outer loop + vertex 7.117365e+01 1.249848e+02 -3.000000e+00 + vertex 7.117365e+01 1.249848e+02 0.000000e+00 + vertex 7.134202e+01 1.249397e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.241736e+02 1.249848e+02 0.000000e+00 + vertex 1.240000e+02 1.250000e+02 0.000000e+00 + vertex 1.243420e+02 1.249397e+02 0.000000e+00 + endloop + endfacet + facet normal 2.588144e-01 9.659271e-01 -0.000000e+00 + outer loop + vertex 1.241736e+02 1.249848e+02 -6.000000e+00 + vertex 1.241736e+02 1.249848e+02 0.000000e+00 + vertex 1.243420e+02 1.249397e+02 0.000000e+00 + endloop + endfacet + facet normal -8.715157e-02 9.961951e-01 0.000000e+00 + outer loop + vertex -1.240000e+02 1.250000e+02 0.000000e+00 + vertex -1.240000e+02 1.250000e+02 -6.000000e+00 + vertex -1.241736e+02 1.249848e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.715157e-02 9.961951e-01 0.000000e+00 + outer loop + vertex -1.241736e+02 1.249848e+02 0.000000e+00 + vertex -1.240000e+02 1.250000e+02 0.000000e+00 + vertex -1.241736e+02 1.249848e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.715157e-02 9.961951e-01 0.000000e+00 + outer loop + vertex -7.750000e+01 1.250000e+02 -6.000000e+00 + vertex -7.732635e+01 1.249848e+02 -3.000000e+00 + vertex -7.732635e+01 1.249848e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.715157e-02 9.961951e-01 0.000000e+00 + outer loop + vertex -7.267365e+01 1.249848e+02 -3.000000e+00 + vertex -7.250000e+01 1.250000e+02 -3.000000e+00 + vertex -7.267365e+01 1.249848e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.715157e-02 9.961951e-01 0.000000e+00 + outer loop + vertex -7.250000e+01 1.250000e+02 -3.000000e+00 + vertex -7.250000e+01 1.250000e+02 -6.000000e+00 + vertex -7.267365e+01 1.249848e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.715157e-02 9.961951e-01 0.000000e+00 + outer loop + vertex 7.250000e+01 1.250000e+02 -6.000000e+00 + vertex 7.267365e+01 1.249848e+02 -3.000000e+00 + vertex 7.267365e+01 1.249848e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.715157e-02 9.961951e-01 0.000000e+00 + outer loop + vertex 7.732635e+01 1.249848e+02 -3.000000e+00 + vertex 7.750000e+01 1.250000e+02 -3.000000e+00 + vertex 7.732635e+01 1.249848e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.715157e-02 9.961951e-01 0.000000e+00 + outer loop + vertex 7.750000e+01 1.250000e+02 -3.000000e+00 + vertex 7.750000e+01 1.250000e+02 -6.000000e+00 + vertex 7.732635e+01 1.249848e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.715157e-02 9.961951e-01 0.000000e+00 + outer loop + vertex 1.240000e+02 1.250000e+02 -6.000000e+00 + vertex 1.241736e+02 1.249848e+02 0.000000e+00 + vertex 1.241736e+02 1.249848e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.750000e+01 1.250000e+02 -3.000000e+00 + vertex -7.900000e+01 1.250000e+02 -3.000000e+00 + vertex -7.882635e+01 1.249848e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.715157e-02 9.961951e-01 0.000000e+00 + outer loop + vertex -7.900000e+01 1.250000e+02 -3.000000e+00 + vertex -7.882635e+01 1.249848e+02 0.000000e+00 + vertex -7.882635e+01 1.249848e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.715157e-02 9.961951e-01 -0.000000e+00 + outer loop + vertex -7.750000e+01 1.250000e+02 -6.000000e+00 + vertex -7.750000e+01 1.250000e+02 -3.000000e+00 + vertex -7.732635e+01 1.249848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.100000e+01 1.250000e+02 -3.000000e+00 + vertex -7.250000e+01 1.250000e+02 -3.000000e+00 + vertex -7.117365e+01 1.249848e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.715528e-02 9.961947e-01 0.000000e+00 + outer loop + vertex -7.117365e+01 1.249848e+02 0.000000e+00 + vertex -7.100000e+01 1.250000e+02 0.000000e+00 + vertex -7.117365e+01 1.249848e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.715528e-02 9.961947e-01 0.000000e+00 + outer loop + vertex -7.100000e+01 1.250000e+02 0.000000e+00 + vertex -7.100000e+01 1.250000e+02 -3.000000e+00 + vertex -7.117365e+01 1.249848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.250000e+01 1.250000e+02 -3.000000e+00 + vertex 7.100000e+01 1.250000e+02 -3.000000e+00 + vertex 7.117365e+01 1.249848e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.715528e-02 9.961947e-01 0.000000e+00 + outer loop + vertex 7.100000e+01 1.250000e+02 -3.000000e+00 + vertex 7.117365e+01 1.249848e+02 0.000000e+00 + vertex 7.117365e+01 1.249848e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.715157e-02 9.961951e-01 -0.000000e+00 + outer loop + vertex 7.250000e+01 1.250000e+02 -6.000000e+00 + vertex 7.250000e+01 1.250000e+02 -3.000000e+00 + vertex 7.267365e+01 1.249848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.900000e+01 1.250000e+02 -3.000000e+00 + vertex 7.750000e+01 1.250000e+02 -3.000000e+00 + vertex 7.882635e+01 1.249848e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.715157e-02 9.961951e-01 0.000000e+00 + outer loop + vertex 7.882635e+01 1.249848e+02 0.000000e+00 + vertex 7.900000e+01 1.250000e+02 0.000000e+00 + vertex 7.882635e+01 1.249848e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.715157e-02 9.961951e-01 0.000000e+00 + outer loop + vertex 7.900000e+01 1.250000e+02 0.000000e+00 + vertex 7.900000e+01 1.250000e+02 -3.000000e+00 + vertex 7.882635e+01 1.249848e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.715157e-02 9.961951e-01 -0.000000e+00 + outer loop + vertex -7.900000e+01 1.250000e+02 -3.000000e+00 + vertex -7.900000e+01 1.250000e+02 0.000000e+00 + vertex -7.882635e+01 1.249848e+02 0.000000e+00 + endloop + endfacet + facet normal 8.715528e-02 9.961947e-01 -0.000000e+00 + outer loop + vertex 7.100000e+01 1.250000e+02 -3.000000e+00 + vertex 7.100000e+01 1.250000e+02 0.000000e+00 + vertex 7.117365e+01 1.249848e+02 0.000000e+00 + endloop + endfacet + facet normal 8.715157e-02 9.961951e-01 -0.000000e+00 + outer loop + vertex 1.240000e+02 1.250000e+02 -6.000000e+00 + vertex 1.240000e+02 1.250000e+02 0.000000e+00 + vertex 1.241736e+02 1.249848e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex -7.900000e+01 1.250000e+02 -3.000000e+00 + vertex -7.750000e+01 1.250000e+02 -6.000000e+00 + vertex -1.240000e+02 1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex -7.900000e+01 1.250000e+02 0.000000e+00 + vertex -7.900000e+01 1.250000e+02 -3.000000e+00 + vertex -1.240000e+02 1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex -1.240000e+02 1.250000e+02 0.000000e+00 + vertex -7.900000e+01 1.250000e+02 0.000000e+00 + vertex -1.240000e+02 1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex -7.900000e+01 1.250000e+02 -3.000000e+00 + vertex -7.750000e+01 1.250000e+02 -3.000000e+00 + vertex -7.750000e+01 1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex -7.100000e+01 1.250000e+02 -3.000000e+00 + vertex 7.250000e+01 1.250000e+02 -6.000000e+00 + vertex -7.250000e+01 1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex -7.250000e+01 1.250000e+02 -3.000000e+00 + vertex -7.100000e+01 1.250000e+02 -3.000000e+00 + vertex -7.250000e+01 1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex 7.100000e+01 1.250000e+02 -3.000000e+00 + vertex 7.250000e+01 1.250000e+02 -3.000000e+00 + vertex 7.250000e+01 1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex -7.100000e+01 1.250000e+02 -3.000000e+00 + vertex 7.100000e+01 1.250000e+02 -3.000000e+00 + vertex 7.250000e+01 1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex 7.750000e+01 1.250000e+02 -3.000000e+00 + vertex 7.900000e+01 1.250000e+02 -3.000000e+00 + vertex 7.750000e+01 1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex 7.900000e+01 1.250000e+02 -3.000000e+00 + vertex 1.240000e+02 1.250000e+02 -6.000000e+00 + vertex 7.750000e+01 1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex 7.900000e+01 1.250000e+02 -3.000000e+00 + vertex 1.240000e+02 1.250000e+02 0.000000e+00 + vertex 1.240000e+02 1.250000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex 7.100000e+01 1.250000e+02 0.000000e+00 + vertex 7.100000e+01 1.250000e+02 -3.000000e+00 + vertex -7.100000e+01 1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex -7.100000e+01 1.250000e+02 0.000000e+00 + vertex 7.100000e+01 1.250000e+02 0.000000e+00 + vertex -7.100000e+01 1.250000e+02 -3.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex 7.900000e+01 1.250000e+02 0.000000e+00 + vertex 1.240000e+02 1.250000e+02 0.000000e+00 + vertex 7.900000e+01 1.250000e+02 -3.000000e+00 + endloop + endfacet +endsolid \ No newline at end of file diff --git a/resources/profiles/Voron/printbed-v2-300.stl b/resources/profiles/Voron/printbed-v2-300.stl new file mode 100644 index 000000000..dd1c028c0 --- /dev/null +++ b/resources/profiles/Voron/printbed-v2-300.stl @@ -0,0 +1,9858 @@ +solid printbed-v2-300 + facet normal -0.000000e+00 -1.000000e+00 0.000000e+00 + outer loop + vertex -7.900000e+01 -1.500000e+02 -3.000000e+00 + vertex -1.490000e+02 -1.500000e+02 0.000000e+00 + vertex -1.490000e+02 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -1.000000e+00 0.000000e+00 + outer loop + vertex -7.750000e+01 -1.500000e+02 -6.000000e+00 + vertex -7.900000e+01 -1.500000e+02 -3.000000e+00 + vertex -1.490000e+02 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.640954e+01 -1.474870e+02 -6.000000e+00 + vertex -7.750000e+01 -1.500000e+02 -6.000000e+00 + vertex -1.490000e+02 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.500000e+02 -1.490000e+02 -6.000000e+00 + vertex -7.640954e+01 -1.474870e+02 -6.000000e+00 + vertex -1.490000e+02 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.491736e+02 -1.499848e+02 -6.000000e+00 + vertex -1.500000e+02 -1.490000e+02 -6.000000e+00 + vertex -1.490000e+02 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.719770e-02 -9.961910e-01 -0.000000e+00 + outer loop + vertex -1.490000e+02 -1.500000e+02 0.000000e+00 + vertex -1.491736e+02 -1.499848e+02 0.000000e+00 + vertex -1.490000e+02 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.719770e-02 -9.961910e-01 -0.000000e+00 + outer loop + vertex -1.491736e+02 -1.499848e+02 0.000000e+00 + vertex -1.491736e+02 -1.499848e+02 -6.000000e+00 + vertex -1.490000e+02 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 -1.000000e+00 -0.000000e+00 + outer loop + vertex -7.750000e+01 -1.500000e+02 -3.000000e+00 + vertex -7.900000e+01 -1.500000e+02 -3.000000e+00 + vertex -7.750000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.640954e+01 -1.474870e+02 -6.000000e+00 + vertex -7.732635e+01 -1.499848e+02 -6.000000e+00 + vertex -7.750000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.719399e-02 -9.961914e-01 0.000000e+00 + outer loop + vertex -7.732635e+01 -1.499848e+02 -6.000000e+00 + vertex -7.750000e+01 -1.500000e+02 -3.000000e+00 + vertex -7.750000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -1.000000e+00 0.000000e+00 + outer loop + vertex 7.250000e+01 -1.500000e+02 -6.000000e+00 + vertex 7.100000e+01 -1.500000e+02 -3.000000e+00 + vertex -7.250000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 -1.000000e+00 0.000000e+00 + outer loop + vertex -7.100000e+01 -1.500000e+02 -3.000000e+00 + vertex -7.250000e+01 -1.500000e+02 -3.000000e+00 + vertex -7.250000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 -1.000000e+00 0.000000e+00 + outer loop + vertex 7.100000e+01 -1.500000e+02 -3.000000e+00 + vertex -7.100000e+01 -1.500000e+02 -3.000000e+00 + vertex -7.250000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.403582e+01 -1.468509e+02 -6.000000e+00 + vertex 7.385093e+01 -1.470358e+02 -6.000000e+00 + vertex -7.250000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.385093e+01 -1.470358e+02 -6.000000e+00 + vertex 7.370096e+01 -1.472500e+02 -6.000000e+00 + vertex -7.250000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.370096e+01 -1.472500e+02 -6.000000e+00 + vertex 7.359046e+01 -1.474870e+02 -6.000000e+00 + vertex -7.250000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.359046e+01 -1.474870e+02 -6.000000e+00 + vertex 7.250000e+01 -1.500000e+02 -6.000000e+00 + vertex -7.250000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.267365e+01 -1.499848e+02 -6.000000e+00 + vertex -7.284202e+01 -1.499397e+02 -6.000000e+00 + vertex -7.250000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.284202e+01 -1.499397e+02 -6.000000e+00 + vertex -7.300000e+01 -1.498660e+02 -6.000000e+00 + vertex -7.250000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.300000e+01 -1.498660e+02 -6.000000e+00 + vertex -7.314279e+01 -1.497660e+02 -6.000000e+00 + vertex -7.250000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.314279e+01 -1.497660e+02 -6.000000e+00 + vertex -7.326604e+01 -1.496428e+02 -6.000000e+00 + vertex -7.250000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.326604e+01 -1.496428e+02 -6.000000e+00 + vertex -7.336602e+01 -1.495000e+02 -6.000000e+00 + vertex -7.250000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.336602e+01 -1.495000e+02 -6.000000e+00 + vertex -7.343969e+01 -1.493420e+02 -6.000000e+00 + vertex -7.250000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.350000e+01 -1.490000e+02 -6.000000e+00 + vertex 7.403582e+01 -1.468509e+02 -6.000000e+00 + vertex -7.250000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.348481e+01 -1.491736e+02 -6.000000e+00 + vertex -7.350000e+01 -1.490000e+02 -6.000000e+00 + vertex -7.250000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.343969e+01 -1.493420e+02 -6.000000e+00 + vertex -7.348481e+01 -1.491736e+02 -6.000000e+00 + vertex -7.250000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.719399e-02 -9.961914e-01 -0.000000e+00 + outer loop + vertex -7.250000e+01 -1.500000e+02 -3.000000e+00 + vertex -7.267365e+01 -1.499848e+02 -3.000000e+00 + vertex -7.250000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.719399e-02 -9.961914e-01 -0.000000e+00 + outer loop + vertex -7.267365e+01 -1.499848e+02 -3.000000e+00 + vertex -7.267365e+01 -1.499848e+02 -6.000000e+00 + vertex -7.250000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 -1.000000e+00 -0.000000e+00 + outer loop + vertex 7.250000e+01 -1.500000e+02 -3.000000e+00 + vertex 7.100000e+01 -1.500000e+02 -3.000000e+00 + vertex 7.250000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.359046e+01 -1.474870e+02 -6.000000e+00 + vertex 7.267365e+01 -1.499848e+02 -6.000000e+00 + vertex 7.250000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.719399e-02 -9.961914e-01 0.000000e+00 + outer loop + vertex 7.267365e+01 -1.499848e+02 -6.000000e+00 + vertex 7.250000e+01 -1.500000e+02 -3.000000e+00 + vertex 7.250000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.650000e+01 -1.480000e+02 -6.000000e+00 + vertex 1.490000e+02 -1.500000e+02 -6.000000e+00 + vertex 7.750000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.734357e+01 -1.499877e+02 -6.000000e+00 + vertex 7.669098e+01 -1.495878e+02 -6.000000e+00 + vertex 7.750000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.669098e+01 -1.495878e+02 -6.000000e+00 + vertex 7.660899e+01 -1.494540e+02 -6.000000e+00 + vertex 7.750000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.660899e+01 -1.494540e+02 -6.000000e+00 + vertex 7.654894e+01 -1.493090e+02 -6.000000e+00 + vertex 7.750000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.654894e+01 -1.493090e+02 -6.000000e+00 + vertex 7.651231e+01 -1.491564e+02 -6.000000e+00 + vertex 7.750000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.651231e+01 -1.491564e+02 -6.000000e+00 + vertex 7.650000e+01 -1.490000e+02 -6.000000e+00 + vertex 7.750000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.650000e+01 -1.490000e+02 -6.000000e+00 + vertex 7.650000e+01 -1.480000e+02 -6.000000e+00 + vertex 7.750000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 -1.000000e+00 0.000000e+00 + outer loop + vertex 7.900000e+01 -1.500000e+02 -3.000000e+00 + vertex 7.750000e+01 -1.500000e+02 -3.000000e+00 + vertex 7.750000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -1.000000e+00 0.000000e+00 + outer loop + vertex 1.490000e+02 -1.500000e+02 -6.000000e+00 + vertex 7.900000e+01 -1.500000e+02 -3.000000e+00 + vertex 7.750000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.853360e-02 -9.969115e-01 -0.000000e+00 + outer loop + vertex 7.750000e+01 -1.500000e+02 -3.000000e+00 + vertex 7.734357e+01 -1.499877e+02 -3.000000e+00 + vertex 7.750000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.853360e-02 -9.969115e-01 -0.000000e+00 + outer loop + vertex 7.734357e+01 -1.499877e+02 -3.000000e+00 + vertex 7.734357e+01 -1.499877e+02 -6.000000e+00 + vertex 7.750000e+01 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.650000e+01 -1.480000e+02 -6.000000e+00 + vertex 1.500000e+02 -1.490000e+02 -6.000000e+00 + vertex 1.490000e+02 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 1.500000e+02 -1.490000e+02 -6.000000e+00 + vertex 1.499848e+02 -1.491736e+02 -6.000000e+00 + vertex 1.490000e+02 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 1.499848e+02 -1.491736e+02 -6.000000e+00 + vertex 1.499397e+02 -1.493420e+02 -6.000000e+00 + vertex 1.490000e+02 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 1.499397e+02 -1.493420e+02 -6.000000e+00 + vertex 1.498660e+02 -1.495000e+02 -6.000000e+00 + vertex 1.490000e+02 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 1.498660e+02 -1.495000e+02 -6.000000e+00 + vertex 1.497660e+02 -1.496428e+02 -6.000000e+00 + vertex 1.490000e+02 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 1.497660e+02 -1.496428e+02 -6.000000e+00 + vertex 1.496428e+02 -1.497660e+02 -6.000000e+00 + vertex 1.490000e+02 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 1.496428e+02 -1.497660e+02 -6.000000e+00 + vertex 1.491736e+02 -1.499848e+02 -6.000000e+00 + vertex 1.490000e+02 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -1.000000e+00 0.000000e+00 + outer loop + vertex 7.900000e+01 -1.500000e+02 0.000000e+00 + vertex 7.900000e+01 -1.500000e+02 -3.000000e+00 + vertex 1.490000e+02 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 -1.000000e+00 -0.000000e+00 + outer loop + vertex 1.490000e+02 -1.500000e+02 0.000000e+00 + vertex 7.900000e+01 -1.500000e+02 0.000000e+00 + vertex 1.490000e+02 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.719770e-02 -9.961910e-01 0.000000e+00 + outer loop + vertex 1.491736e+02 -1.499848e+02 -6.000000e+00 + vertex 1.490000e+02 -1.500000e+02 0.000000e+00 + vertex 1.490000e+02 -1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 -1.000000e+00 -0.000000e+00 + outer loop + vertex -7.900000e+01 -1.500000e+02 0.000000e+00 + vertex -1.490000e+02 -1.500000e+02 0.000000e+00 + vertex -7.900000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.750000e+01 -1.500000e+02 -3.000000e+00 + vertex -7.882635e+01 -1.499848e+02 -3.000000e+00 + vertex -7.900000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.719399e-02 -9.961914e-01 0.000000e+00 + outer loop + vertex -7.882635e+01 -1.499848e+02 -3.000000e+00 + vertex -7.900000e+01 -1.500000e+02 0.000000e+00 + vertex -7.900000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.823396e+01 -1.496428e+02 -3.000000e+00 + vertex -7.835721e+01 -1.497660e+02 -3.000000e+00 + vertex -7.750000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.835721e+01 -1.497660e+02 -3.000000e+00 + vertex -7.850000e+01 -1.498660e+02 -3.000000e+00 + vertex -7.750000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.850000e+01 -1.498660e+02 -3.000000e+00 + vertex -7.865798e+01 -1.499397e+02 -3.000000e+00 + vertex -7.750000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.865798e+01 -1.499397e+02 -3.000000e+00 + vertex -7.882635e+01 -1.499848e+02 -3.000000e+00 + vertex -7.750000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.813398e+01 -1.495000e+02 -3.000000e+00 + vertex -7.823396e+01 -1.496428e+02 -3.000000e+00 + vertex -7.750000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.732635e+01 -1.499848e+02 -3.000000e+00 + vertex -7.813398e+01 -1.495000e+02 -3.000000e+00 + vertex -7.750000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.719399e-02 -9.961914e-01 0.000000e+00 + outer loop + vertex -7.732635e+01 -1.499848e+02 -6.000000e+00 + vertex -7.732635e+01 -1.499848e+02 -3.000000e+00 + vertex -7.750000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.100000e+01 -1.500000e+02 -3.000000e+00 + vertex -7.117365e+01 -1.499848e+02 -3.000000e+00 + vertex -7.250000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.117365e+01 -1.499848e+02 -3.000000e+00 + vertex -7.134202e+01 -1.499397e+02 -3.000000e+00 + vertex -7.250000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.134202e+01 -1.499397e+02 -3.000000e+00 + vertex -7.150000e+01 -1.498660e+02 -3.000000e+00 + vertex -7.250000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.150000e+01 -1.498660e+02 -3.000000e+00 + vertex -7.164279e+01 -1.497660e+02 -3.000000e+00 + vertex -7.250000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.164279e+01 -1.497660e+02 -3.000000e+00 + vertex -7.176604e+01 -1.496428e+02 -3.000000e+00 + vertex -7.250000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.176604e+01 -1.496428e+02 -3.000000e+00 + vertex -7.267365e+01 -1.499848e+02 -3.000000e+00 + vertex -7.250000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -1.000000e+00 0.000000e+00 + outer loop + vertex 7.100000e+01 -1.500000e+02 -3.000000e+00 + vertex -7.100000e+01 -1.500000e+02 0.000000e+00 + vertex -7.100000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.719770e-02 -9.961910e-01 -0.000000e+00 + outer loop + vertex -7.100000e+01 -1.500000e+02 0.000000e+00 + vertex -7.117365e+01 -1.499848e+02 0.000000e+00 + vertex -7.100000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.719770e-02 -9.961910e-01 -0.000000e+00 + outer loop + vertex -7.117365e+01 -1.499848e+02 0.000000e+00 + vertex -7.117365e+01 -1.499848e+02 -3.000000e+00 + vertex -7.100000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 -1.000000e+00 -0.000000e+00 + outer loop + vertex 7.100000e+01 -1.500000e+02 0.000000e+00 + vertex -7.100000e+01 -1.500000e+02 0.000000e+00 + vertex 7.100000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.250000e+01 -1.500000e+02 -3.000000e+00 + vertex 7.117365e+01 -1.499848e+02 -3.000000e+00 + vertex 7.100000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.719770e-02 -9.961910e-01 0.000000e+00 + outer loop + vertex 7.117365e+01 -1.499848e+02 -3.000000e+00 + vertex 7.100000e+01 -1.500000e+02 0.000000e+00 + vertex 7.100000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.176604e+01 -1.496428e+02 -3.000000e+00 + vertex 7.164279e+01 -1.497660e+02 -3.000000e+00 + vertex 7.250000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.164279e+01 -1.497660e+02 -3.000000e+00 + vertex 7.150000e+01 -1.498660e+02 -3.000000e+00 + vertex 7.250000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.150000e+01 -1.498660e+02 -3.000000e+00 + vertex 7.134202e+01 -1.499397e+02 -3.000000e+00 + vertex 7.250000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.134202e+01 -1.499397e+02 -3.000000e+00 + vertex 7.117365e+01 -1.499848e+02 -3.000000e+00 + vertex 7.250000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.186603e+01 -1.495000e+02 -3.000000e+00 + vertex 7.176604e+01 -1.496428e+02 -3.000000e+00 + vertex 7.250000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.267365e+01 -1.499848e+02 -3.000000e+00 + vertex 7.186603e+01 -1.495000e+02 -3.000000e+00 + vertex 7.250000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.719399e-02 -9.961914e-01 0.000000e+00 + outer loop + vertex 7.267365e+01 -1.499848e+02 -6.000000e+00 + vertex 7.267365e+01 -1.499848e+02 -3.000000e+00 + vertex 7.250000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.900000e+01 -1.500000e+02 -3.000000e+00 + vertex 7.882635e+01 -1.499848e+02 -3.000000e+00 + vertex 7.750000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.882635e+01 -1.499848e+02 -3.000000e+00 + vertex 7.865798e+01 -1.499397e+02 -3.000000e+00 + vertex 7.750000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.865798e+01 -1.499397e+02 -3.000000e+00 + vertex 7.850000e+01 -1.498660e+02 -3.000000e+00 + vertex 7.750000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.850000e+01 -1.498660e+02 -3.000000e+00 + vertex 7.835721e+01 -1.497660e+02 -3.000000e+00 + vertex 7.750000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.835721e+01 -1.497660e+02 -3.000000e+00 + vertex 7.823396e+01 -1.496428e+02 -3.000000e+00 + vertex 7.750000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.823396e+01 -1.496428e+02 -3.000000e+00 + vertex 7.734357e+01 -1.499877e+02 -3.000000e+00 + vertex 7.750000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.719399e-02 -9.961914e-01 -0.000000e+00 + outer loop + vertex 7.882635e+01 -1.499848e+02 0.000000e+00 + vertex 7.882635e+01 -1.499848e+02 -3.000000e+00 + vertex 7.900000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.719399e-02 -9.961914e-01 -0.000000e+00 + outer loop + vertex 7.900000e+01 -1.500000e+02 0.000000e+00 + vertex 7.882635e+01 -1.499848e+02 0.000000e+00 + vertex 7.900000e+01 -1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.900000e+01 -1.500000e+02 0.000000e+00 + vertex -7.800000e+01 -1.480000e+02 0.000000e+00 + vertex -1.490000e+02 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.800000e+01 -1.480000e+02 0.000000e+00 + vertex -7.795443e+01 -1.474791e+02 0.000000e+00 + vertex -1.490000e+02 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.795443e+01 -1.474791e+02 0.000000e+00 + vertex -7.781908e+01 -1.469739e+02 0.000000e+00 + vertex -1.490000e+02 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.781908e+01 -1.469739e+02 0.000000e+00 + vertex -7.759807e+01 -1.465000e+02 0.000000e+00 + vertex -1.490000e+02 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.759807e+01 -1.465000e+02 0.000000e+00 + vertex -7.729813e+01 -1.460716e+02 0.000000e+00 + vertex -1.490000e+02 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.729813e+01 -1.460716e+02 0.000000e+00 + vertex -7.552095e+01 1.450456e+02 0.000000e+00 + vertex -1.490000e+02 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.552095e+01 1.450456e+02 0.000000e+00 + vertex -1.491736e+02 -1.499848e+02 0.000000e+00 + vertex -1.490000e+02 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.882635e+01 -1.499848e+02 0.000000e+00 + vertex -7.865798e+01 -1.499397e+02 0.000000e+00 + vertex -7.900000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.865798e+01 -1.499397e+02 0.000000e+00 + vertex -7.850000e+01 -1.498660e+02 0.000000e+00 + vertex -7.900000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.850000e+01 -1.498660e+02 0.000000e+00 + vertex -7.835721e+01 -1.497660e+02 0.000000e+00 + vertex -7.900000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.835721e+01 -1.497660e+02 0.000000e+00 + vertex -7.823396e+01 -1.496428e+02 0.000000e+00 + vertex -7.900000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.823396e+01 -1.496428e+02 0.000000e+00 + vertex -7.813398e+01 -1.495000e+02 0.000000e+00 + vertex -7.900000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.813398e+01 -1.495000e+02 0.000000e+00 + vertex -7.806031e+01 -1.493420e+02 0.000000e+00 + vertex -7.900000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.806031e+01 -1.493420e+02 0.000000e+00 + vertex -7.801519e+01 -1.491736e+02 0.000000e+00 + vertex -7.900000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.801519e+01 -1.491736e+02 0.000000e+00 + vertex -7.800000e+01 -1.490000e+02 0.000000e+00 + vertex -7.900000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.800000e+01 -1.490000e+02 0.000000e+00 + vertex -7.800000e+01 -1.480000e+02 0.000000e+00 + vertex -7.900000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 8.719399e-02 -9.961914e-01 0.000000e+00 + outer loop + vertex -7.882635e+01 -1.499848e+02 -3.000000e+00 + vertex -7.882635e+01 -1.499848e+02 0.000000e+00 + vertex -7.900000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.204558e+01 -1.474791e+02 0.000000e+00 + vertex 7.218092e+01 -1.469739e+02 0.000000e+00 + vertex -7.100000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.218092e+01 -1.469739e+02 0.000000e+00 + vertex 7.240193e+01 -1.465000e+02 0.000000e+00 + vertex -7.100000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.240193e+01 -1.465000e+02 0.000000e+00 + vertex -7.447906e+01 1.450456e+02 0.000000e+00 + vertex -7.100000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.100000e+01 -1.500000e+02 0.000000e+00 + vertex 7.200000e+01 -1.490000e+02 0.000000e+00 + vertex -7.100000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.200000e+01 -1.490000e+02 0.000000e+00 + vertex 7.200000e+01 -1.480000e+02 0.000000e+00 + vertex -7.100000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.200000e+01 -1.480000e+02 0.000000e+00 + vertex 7.204558e+01 -1.474791e+02 0.000000e+00 + vertex -7.100000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.447906e+01 1.450456e+02 0.000000e+00 + vertex -7.218092e+01 -1.469739e+02 0.000000e+00 + vertex -7.100000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.218092e+01 -1.469739e+02 0.000000e+00 + vertex -7.204558e+01 -1.474791e+02 0.000000e+00 + vertex -7.100000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.204558e+01 -1.474791e+02 0.000000e+00 + vertex -7.200000e+01 -1.480000e+02 0.000000e+00 + vertex -7.100000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 -1.480000e+02 0.000000e+00 + vertex -7.200000e+01 -1.490000e+02 0.000000e+00 + vertex -7.100000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 -1.490000e+02 0.000000e+00 + vertex -7.198481e+01 -1.491736e+02 0.000000e+00 + vertex -7.100000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.198481e+01 -1.491736e+02 0.000000e+00 + vertex -7.193969e+01 -1.493420e+02 0.000000e+00 + vertex -7.100000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.193969e+01 -1.493420e+02 0.000000e+00 + vertex -7.186603e+01 -1.495000e+02 0.000000e+00 + vertex -7.100000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.186603e+01 -1.495000e+02 0.000000e+00 + vertex -7.176604e+01 -1.496428e+02 0.000000e+00 + vertex -7.100000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.176604e+01 -1.496428e+02 0.000000e+00 + vertex -7.164279e+01 -1.497660e+02 0.000000e+00 + vertex -7.100000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.164279e+01 -1.497660e+02 0.000000e+00 + vertex -7.150000e+01 -1.498660e+02 0.000000e+00 + vertex -7.100000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.150000e+01 -1.498660e+02 0.000000e+00 + vertex -7.134202e+01 -1.499397e+02 0.000000e+00 + vertex -7.100000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.134202e+01 -1.499397e+02 0.000000e+00 + vertex -7.117365e+01 -1.499848e+02 0.000000e+00 + vertex -7.100000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.150000e+01 -1.498660e+02 0.000000e+00 + vertex 7.164279e+01 -1.497660e+02 0.000000e+00 + vertex 7.100000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.117365e+01 -1.499848e+02 0.000000e+00 + vertex 7.150000e+01 -1.498660e+02 0.000000e+00 + vertex 7.100000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.164279e+01 -1.497660e+02 0.000000e+00 + vertex 7.176604e+01 -1.496428e+02 0.000000e+00 + vertex 7.100000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.176604e+01 -1.496428e+02 0.000000e+00 + vertex 7.186603e+01 -1.495000e+02 0.000000e+00 + vertex 7.100000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.186603e+01 -1.495000e+02 0.000000e+00 + vertex 7.193969e+01 -1.493420e+02 0.000000e+00 + vertex 7.100000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.193969e+01 -1.493420e+02 0.000000e+00 + vertex 7.198481e+01 -1.491736e+02 0.000000e+00 + vertex 7.100000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.198481e+01 -1.491736e+02 0.000000e+00 + vertex 7.200000e+01 -1.490000e+02 0.000000e+00 + vertex 7.100000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 8.719770e-02 -9.961910e-01 0.000000e+00 + outer loop + vertex 7.117365e+01 -1.499848e+02 -3.000000e+00 + vertex 7.117365e+01 -1.499848e+02 0.000000e+00 + vertex 7.100000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 1.490000e+02 -1.500000e+02 0.000000e+00 + vertex 1.500000e+02 -1.490000e+02 0.000000e+00 + vertex 7.900000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.500000e+02 -1.490000e+02 0.000000e+00 + vertex 7.800000e+01 -1.490000e+02 0.000000e+00 + vertex 7.900000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.800000e+01 -1.490000e+02 0.000000e+00 + vertex 7.801519e+01 -1.491736e+02 0.000000e+00 + vertex 7.900000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.801519e+01 -1.491736e+02 0.000000e+00 + vertex 7.806031e+01 -1.493420e+02 0.000000e+00 + vertex 7.900000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.806031e+01 -1.493420e+02 0.000000e+00 + vertex 7.813398e+01 -1.495000e+02 0.000000e+00 + vertex 7.900000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.813398e+01 -1.495000e+02 0.000000e+00 + vertex 7.823396e+01 -1.496428e+02 0.000000e+00 + vertex 7.900000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.823396e+01 -1.496428e+02 0.000000e+00 + vertex 7.835721e+01 -1.497660e+02 0.000000e+00 + vertex 7.900000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.835721e+01 -1.497660e+02 0.000000e+00 + vertex 7.850000e+01 -1.498660e+02 0.000000e+00 + vertex 7.900000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.850000e+01 -1.498660e+02 0.000000e+00 + vertex 7.865798e+01 -1.499397e+02 0.000000e+00 + vertex 7.900000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.865798e+01 -1.499397e+02 0.000000e+00 + vertex 7.882635e+01 -1.499848e+02 0.000000e+00 + vertex 7.900000e+01 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 1.491736e+02 -1.499848e+02 0.000000e+00 + vertex 1.500000e+02 -1.490000e+02 0.000000e+00 + vertex 1.490000e+02 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 8.719770e-02 -9.961910e-01 0.000000e+00 + outer loop + vertex 1.491736e+02 -1.499848e+02 -6.000000e+00 + vertex 1.491736e+02 -1.499848e+02 0.000000e+00 + vertex 1.490000e+02 -1.500000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.719098e+01 -1.499511e+02 -6.000000e+00 + vertex 7.669098e+01 -1.495878e+02 -6.000000e+00 + vertex 7.734357e+01 -1.499877e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.334089e-01 -9.723787e-01 -0.000000e+00 + outer loop + vertex 7.734357e+01 -1.499877e+02 -3.000000e+00 + vertex 7.719098e+01 -1.499511e+02 -3.000000e+00 + vertex 7.734357e+01 -1.499877e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.334089e-01 -9.723787e-01 -0.000000e+00 + outer loop + vertex 7.719098e+01 -1.499511e+02 -3.000000e+00 + vertex 7.719098e+01 -1.499511e+02 -6.000000e+00 + vertex 7.734357e+01 -1.499877e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.823396e+01 -1.496428e+02 -3.000000e+00 + vertex 7.813398e+01 -1.495000e+02 -3.000000e+00 + vertex 7.734357e+01 -1.499877e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.813398e+01 -1.495000e+02 -3.000000e+00 + vertex 7.719098e+01 -1.499511e+02 -3.000000e+00 + vertex 7.734357e+01 -1.499877e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.493420e+02 -1.499397e+02 -6.000000e+00 + vertex -1.500000e+02 -1.490000e+02 -6.000000e+00 + vertex -1.491736e+02 -1.499848e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588543e-01 -9.659164e-01 -0.000000e+00 + outer loop + vertex -1.491736e+02 -1.499848e+02 0.000000e+00 + vertex -1.493420e+02 -1.499397e+02 0.000000e+00 + vertex -1.491736e+02 -1.499848e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588543e-01 -9.659164e-01 -0.000000e+00 + outer loop + vertex -1.493420e+02 -1.499397e+02 0.000000e+00 + vertex -1.493420e+02 -1.499397e+02 -6.000000e+00 + vertex -1.491736e+02 -1.499848e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.640954e+01 -1.474870e+02 -6.000000e+00 + vertex -7.715798e+01 -1.499397e+02 -6.000000e+00 + vertex -7.732635e+01 -1.499848e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588543e-01 -9.659164e-01 0.000000e+00 + outer loop + vertex -7.715798e+01 -1.499397e+02 -6.000000e+00 + vertex -7.732635e+01 -1.499848e+02 -3.000000e+00 + vertex -7.732635e+01 -1.499848e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588543e-01 -9.659164e-01 -0.000000e+00 + outer loop + vertex -7.267365e+01 -1.499848e+02 -3.000000e+00 + vertex -7.284202e+01 -1.499397e+02 -3.000000e+00 + vertex -7.267365e+01 -1.499848e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588543e-01 -9.659164e-01 -0.000000e+00 + outer loop + vertex -7.284202e+01 -1.499397e+02 -3.000000e+00 + vertex -7.284202e+01 -1.499397e+02 -6.000000e+00 + vertex -7.267365e+01 -1.499848e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.359046e+01 -1.474870e+02 -6.000000e+00 + vertex 7.284202e+01 -1.499397e+02 -6.000000e+00 + vertex 7.267365e+01 -1.499848e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588543e-01 -9.659164e-01 0.000000e+00 + outer loop + vertex 7.284202e+01 -1.499397e+02 -6.000000e+00 + vertex 7.267365e+01 -1.499848e+02 -3.000000e+00 + vertex 7.267365e+01 -1.499848e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 1.496428e+02 -1.497660e+02 -6.000000e+00 + vertex 1.493420e+02 -1.499397e+02 -6.000000e+00 + vertex 1.491736e+02 -1.499848e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588543e-01 -9.659164e-01 0.000000e+00 + outer loop + vertex 1.493420e+02 -1.499397e+02 -6.000000e+00 + vertex 1.491736e+02 -1.499848e+02 0.000000e+00 + vertex 1.491736e+02 -1.499848e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588436e-01 -9.659192e-01 0.000000e+00 + outer loop + vertex -7.865798e+01 -1.499397e+02 -3.000000e+00 + vertex -7.882635e+01 -1.499848e+02 0.000000e+00 + vertex -7.882635e+01 -1.499848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.806031e+01 -1.493420e+02 -3.000000e+00 + vertex -7.813398e+01 -1.495000e+02 -3.000000e+00 + vertex -7.732635e+01 -1.499848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.715798e+01 -1.499397e+02 -3.000000e+00 + vertex -7.806031e+01 -1.493420e+02 -3.000000e+00 + vertex -7.732635e+01 -1.499848e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588543e-01 -9.659164e-01 0.000000e+00 + outer loop + vertex -7.715798e+01 -1.499397e+02 -6.000000e+00 + vertex -7.715798e+01 -1.499397e+02 -3.000000e+00 + vertex -7.732635e+01 -1.499848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.176604e+01 -1.496428e+02 -3.000000e+00 + vertex -7.186603e+01 -1.495000e+02 -3.000000e+00 + vertex -7.267365e+01 -1.499848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.186603e+01 -1.495000e+02 -3.000000e+00 + vertex -7.284202e+01 -1.499397e+02 -3.000000e+00 + vertex -7.267365e+01 -1.499848e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588436e-01 -9.659192e-01 -0.000000e+00 + outer loop + vertex -7.117365e+01 -1.499848e+02 0.000000e+00 + vertex -7.134202e+01 -1.499397e+02 0.000000e+00 + vertex -7.117365e+01 -1.499848e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588436e-01 -9.659192e-01 -0.000000e+00 + outer loop + vertex -7.134202e+01 -1.499397e+02 0.000000e+00 + vertex -7.134202e+01 -1.499397e+02 -3.000000e+00 + vertex -7.117365e+01 -1.499848e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588436e-01 -9.659192e-01 0.000000e+00 + outer loop + vertex 7.134202e+01 -1.499397e+02 -3.000000e+00 + vertex 7.117365e+01 -1.499848e+02 0.000000e+00 + vertex 7.117365e+01 -1.499848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.193969e+01 -1.493420e+02 -3.000000e+00 + vertex 7.186603e+01 -1.495000e+02 -3.000000e+00 + vertex 7.267365e+01 -1.499848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.284202e+01 -1.499397e+02 -3.000000e+00 + vertex 7.193969e+01 -1.493420e+02 -3.000000e+00 + vertex 7.267365e+01 -1.499848e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588543e-01 -9.659164e-01 0.000000e+00 + outer loop + vertex 7.284202e+01 -1.499397e+02 -6.000000e+00 + vertex 7.284202e+01 -1.499397e+02 -3.000000e+00 + vertex 7.267365e+01 -1.499848e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588436e-01 -9.659192e-01 -0.000000e+00 + outer loop + vertex 7.865798e+01 -1.499397e+02 0.000000e+00 + vertex 7.865798e+01 -1.499397e+02 -3.000000e+00 + vertex 7.882635e+01 -1.499848e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588436e-01 -9.659192e-01 -0.000000e+00 + outer loop + vertex 7.882635e+01 -1.499848e+02 0.000000e+00 + vertex 7.865798e+01 -1.499397e+02 0.000000e+00 + vertex 7.882635e+01 -1.499848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.552095e+01 1.450456e+02 0.000000e+00 + vertex -1.493420e+02 -1.499397e+02 0.000000e+00 + vertex -1.491736e+02 -1.499848e+02 0.000000e+00 + endloop + endfacet + facet normal 2.588436e-01 -9.659192e-01 0.000000e+00 + outer loop + vertex -7.865798e+01 -1.499397e+02 -3.000000e+00 + vertex -7.865798e+01 -1.499397e+02 0.000000e+00 + vertex -7.882635e+01 -1.499848e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.134202e+01 -1.499397e+02 0.000000e+00 + vertex 7.150000e+01 -1.498660e+02 0.000000e+00 + vertex 7.117365e+01 -1.499848e+02 0.000000e+00 + endloop + endfacet + facet normal 2.588436e-01 -9.659192e-01 0.000000e+00 + outer loop + vertex 7.134202e+01 -1.499397e+02 -3.000000e+00 + vertex 7.134202e+01 -1.499397e+02 0.000000e+00 + vertex 7.117365e+01 -1.499848e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 1.493420e+02 -1.499397e+02 0.000000e+00 + vertex 1.500000e+02 -1.490000e+02 0.000000e+00 + vertex 1.491736e+02 -1.499848e+02 0.000000e+00 + endloop + endfacet + facet normal 2.588543e-01 -9.659164e-01 0.000000e+00 + outer loop + vertex 1.493420e+02 -1.499397e+02 -6.000000e+00 + vertex 1.493420e+02 -1.499397e+02 0.000000e+00 + vertex 1.491736e+02 -1.499848e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.704601e+01 -1.498910e+02 -6.000000e+00 + vertex 7.669098e+01 -1.495878e+02 -6.000000e+00 + vertex 7.719098e+01 -1.499511e+02 -6.000000e+00 + endloop + endfacet + facet normal -3.826929e-01 -9.238756e-01 -0.000000e+00 + outer loop + vertex 7.719098e+01 -1.499511e+02 -3.000000e+00 + vertex 7.704601e+01 -1.498910e+02 -3.000000e+00 + vertex 7.719098e+01 -1.499511e+02 -6.000000e+00 + endloop + endfacet + facet normal -3.826929e-01 -9.238756e-01 -0.000000e+00 + outer loop + vertex 7.704601e+01 -1.498910e+02 -3.000000e+00 + vertex 7.704601e+01 -1.498910e+02 -6.000000e+00 + vertex 7.719098e+01 -1.499511e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.813398e+01 -1.495000e+02 -3.000000e+00 + vertex 7.806031e+01 -1.493420e+02 -3.000000e+00 + vertex 7.719098e+01 -1.499511e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.806031e+01 -1.493420e+02 -3.000000e+00 + vertex 7.704601e+01 -1.498910e+02 -3.000000e+00 + vertex 7.719098e+01 -1.499511e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.495000e+02 -1.498660e+02 -6.000000e+00 + vertex -1.500000e+02 -1.490000e+02 -6.000000e+00 + vertex -1.493420e+02 -1.499397e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.225625e-01 -9.063338e-01 -0.000000e+00 + outer loop + vertex -1.493420e+02 -1.499397e+02 0.000000e+00 + vertex -1.495000e+02 -1.498660e+02 0.000000e+00 + vertex -1.493420e+02 -1.499397e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.225625e-01 -9.063338e-01 -0.000000e+00 + outer loop + vertex -1.495000e+02 -1.498660e+02 0.000000e+00 + vertex -1.495000e+02 -1.498660e+02 -6.000000e+00 + vertex -1.493420e+02 -1.499397e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.647721e+01 -1.477395e+02 -6.000000e+00 + vertex -7.700000e+01 -1.498660e+02 -6.000000e+00 + vertex -7.715798e+01 -1.499397e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.640954e+01 -1.474870e+02 -6.000000e+00 + vertex -7.647721e+01 -1.477395e+02 -6.000000e+00 + vertex -7.715798e+01 -1.499397e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.225625e-01 -9.063338e-01 0.000000e+00 + outer loop + vertex -7.700000e+01 -1.498660e+02 -6.000000e+00 + vertex -7.715798e+01 -1.499397e+02 -3.000000e+00 + vertex -7.715798e+01 -1.499397e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.225625e-01 -9.063338e-01 -0.000000e+00 + outer loop + vertex -7.284202e+01 -1.499397e+02 -3.000000e+00 + vertex -7.300000e+01 -1.498660e+02 -3.000000e+00 + vertex -7.284202e+01 -1.499397e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.225625e-01 -9.063338e-01 -0.000000e+00 + outer loop + vertex -7.300000e+01 -1.498660e+02 -3.000000e+00 + vertex -7.300000e+01 -1.498660e+02 -6.000000e+00 + vertex -7.284202e+01 -1.499397e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.352279e+01 -1.477395e+02 -6.000000e+00 + vertex 7.300000e+01 -1.498660e+02 -6.000000e+00 + vertex 7.284202e+01 -1.499397e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.359046e+01 -1.474870e+02 -6.000000e+00 + vertex 7.352279e+01 -1.477395e+02 -6.000000e+00 + vertex 7.284202e+01 -1.499397e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.225625e-01 -9.063338e-01 0.000000e+00 + outer loop + vertex 7.300000e+01 -1.498660e+02 -6.000000e+00 + vertex 7.284202e+01 -1.499397e+02 -3.000000e+00 + vertex 7.284202e+01 -1.499397e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 1.496428e+02 -1.497660e+02 -6.000000e+00 + vertex 1.495000e+02 -1.498660e+02 -6.000000e+00 + vertex 1.493420e+02 -1.499397e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.225625e-01 -9.063338e-01 0.000000e+00 + outer loop + vertex 1.495000e+02 -1.498660e+02 -6.000000e+00 + vertex 1.493420e+02 -1.499397e+02 0.000000e+00 + vertex 1.493420e+02 -1.499397e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.225789e-01 -9.063261e-01 0.000000e+00 + outer loop + vertex -7.850000e+01 -1.498660e+02 -3.000000e+00 + vertex -7.865798e+01 -1.499397e+02 0.000000e+00 + vertex -7.865798e+01 -1.499397e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.700000e+01 -1.498660e+02 -3.000000e+00 + vertex -7.806031e+01 -1.493420e+02 -3.000000e+00 + vertex -7.715798e+01 -1.499397e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.225625e-01 -9.063338e-01 0.000000e+00 + outer loop + vertex -7.700000e+01 -1.498660e+02 -6.000000e+00 + vertex -7.700000e+01 -1.498660e+02 -3.000000e+00 + vertex -7.715798e+01 -1.499397e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.186603e+01 -1.495000e+02 -3.000000e+00 + vertex -7.193969e+01 -1.493420e+02 -3.000000e+00 + vertex -7.284202e+01 -1.499397e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.193969e+01 -1.493420e+02 -3.000000e+00 + vertex -7.300000e+01 -1.498660e+02 -3.000000e+00 + vertex -7.284202e+01 -1.499397e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.225625e-01 -9.063338e-01 -0.000000e+00 + outer loop + vertex -7.134202e+01 -1.499397e+02 0.000000e+00 + vertex -7.150000e+01 -1.498660e+02 0.000000e+00 + vertex -7.134202e+01 -1.499397e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.225625e-01 -9.063338e-01 -0.000000e+00 + outer loop + vertex -7.150000e+01 -1.498660e+02 0.000000e+00 + vertex -7.150000e+01 -1.498660e+02 -3.000000e+00 + vertex -7.134202e+01 -1.499397e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.225625e-01 -9.063338e-01 0.000000e+00 + outer loop + vertex 7.150000e+01 -1.498660e+02 -3.000000e+00 + vertex 7.134202e+01 -1.499397e+02 0.000000e+00 + vertex 7.134202e+01 -1.499397e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.300000e+01 -1.498660e+02 -3.000000e+00 + vertex 7.193969e+01 -1.493420e+02 -3.000000e+00 + vertex 7.284202e+01 -1.499397e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.225625e-01 -9.063338e-01 0.000000e+00 + outer loop + vertex 7.300000e+01 -1.498660e+02 -6.000000e+00 + vertex 7.300000e+01 -1.498660e+02 -3.000000e+00 + vertex 7.284202e+01 -1.499397e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.225789e-01 -9.063261e-01 -0.000000e+00 + outer loop + vertex 7.850000e+01 -1.498660e+02 0.000000e+00 + vertex 7.850000e+01 -1.498660e+02 -3.000000e+00 + vertex 7.865798e+01 -1.499397e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.225789e-01 -9.063261e-01 -0.000000e+00 + outer loop + vertex 7.865798e+01 -1.499397e+02 0.000000e+00 + vertex 7.850000e+01 -1.498660e+02 0.000000e+00 + vertex 7.865798e+01 -1.499397e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.552095e+01 1.450456e+02 0.000000e+00 + vertex -1.495000e+02 -1.498660e+02 0.000000e+00 + vertex -1.493420e+02 -1.499397e+02 0.000000e+00 + endloop + endfacet + facet normal 4.225789e-01 -9.063261e-01 0.000000e+00 + outer loop + vertex -7.850000e+01 -1.498660e+02 -3.000000e+00 + vertex -7.850000e+01 -1.498660e+02 0.000000e+00 + vertex -7.865798e+01 -1.499397e+02 0.000000e+00 + endloop + endfacet + facet normal 4.225625e-01 -9.063338e-01 0.000000e+00 + outer loop + vertex 7.150000e+01 -1.498660e+02 -3.000000e+00 + vertex 7.150000e+01 -1.498660e+02 0.000000e+00 + vertex 7.134202e+01 -1.499397e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 1.495000e+02 -1.498660e+02 0.000000e+00 + vertex 1.500000e+02 -1.490000e+02 0.000000e+00 + vertex 1.493420e+02 -1.499397e+02 0.000000e+00 + endloop + endfacet + facet normal 4.225625e-01 -9.063338e-01 0.000000e+00 + outer loop + vertex 1.495000e+02 -1.498660e+02 -6.000000e+00 + vertex 1.495000e+02 -1.498660e+02 0.000000e+00 + vertex 1.493420e+02 -1.499397e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.691222e+01 -1.498090e+02 -6.000000e+00 + vertex 7.669098e+01 -1.495878e+02 -6.000000e+00 + vertex 7.704601e+01 -1.498910e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.224964e-01 -8.526415e-01 -0.000000e+00 + outer loop + vertex 7.704601e+01 -1.498910e+02 -3.000000e+00 + vertex 7.691222e+01 -1.498090e+02 -3.000000e+00 + vertex 7.704601e+01 -1.498910e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.224964e-01 -8.526415e-01 -0.000000e+00 + outer loop + vertex 7.691222e+01 -1.498090e+02 -3.000000e+00 + vertex 7.691222e+01 -1.498090e+02 -6.000000e+00 + vertex 7.704601e+01 -1.498910e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.806031e+01 -1.493420e+02 -3.000000e+00 + vertex 7.691222e+01 -1.498090e+02 -3.000000e+00 + vertex 7.704601e+01 -1.498910e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.496428e+02 -1.497660e+02 -6.000000e+00 + vertex -1.500000e+02 -1.490000e+02 -6.000000e+00 + vertex -1.495000e+02 -1.498660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.736115e-01 -8.191275e-01 -0.000000e+00 + outer loop + vertex -1.495000e+02 -1.498660e+02 0.000000e+00 + vertex -1.496428e+02 -1.497660e+02 0.000000e+00 + vertex -1.495000e+02 -1.498660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.736115e-01 -8.191275e-01 -0.000000e+00 + outer loop + vertex -1.496428e+02 -1.497660e+02 0.000000e+00 + vertex -1.496428e+02 -1.497660e+02 -6.000000e+00 + vertex -1.495000e+02 -1.498660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.647721e+01 -1.477395e+02 -6.000000e+00 + vertex -7.685721e+01 -1.497660e+02 -6.000000e+00 + vertex -7.700000e+01 -1.498660e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735914e-01 -8.191416e-01 0.000000e+00 + outer loop + vertex -7.685721e+01 -1.497660e+02 -6.000000e+00 + vertex -7.700000e+01 -1.498660e+02 -3.000000e+00 + vertex -7.700000e+01 -1.498660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735914e-01 -8.191416e-01 -0.000000e+00 + outer loop + vertex -7.300000e+01 -1.498660e+02 -3.000000e+00 + vertex -7.314279e+01 -1.497660e+02 -3.000000e+00 + vertex -7.300000e+01 -1.498660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735914e-01 -8.191416e-01 -0.000000e+00 + outer loop + vertex -7.314279e+01 -1.497660e+02 -3.000000e+00 + vertex -7.314279e+01 -1.497660e+02 -6.000000e+00 + vertex -7.300000e+01 -1.498660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.352279e+01 -1.477395e+02 -6.000000e+00 + vertex 7.314279e+01 -1.497660e+02 -6.000000e+00 + vertex 7.300000e+01 -1.498660e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735914e-01 -8.191416e-01 0.000000e+00 + outer loop + vertex 7.314279e+01 -1.497660e+02 -6.000000e+00 + vertex 7.300000e+01 -1.498660e+02 -3.000000e+00 + vertex 7.300000e+01 -1.498660e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.736115e-01 -8.191275e-01 0.000000e+00 + outer loop + vertex 1.496428e+02 -1.497660e+02 -6.000000e+00 + vertex 1.495000e+02 -1.498660e+02 0.000000e+00 + vertex 1.495000e+02 -1.498660e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735914e-01 -8.191416e-01 0.000000e+00 + outer loop + vertex -7.835721e+01 -1.497660e+02 -3.000000e+00 + vertex -7.850000e+01 -1.498660e+02 0.000000e+00 + vertex -7.850000e+01 -1.498660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.685721e+01 -1.497660e+02 -3.000000e+00 + vertex -7.806031e+01 -1.493420e+02 -3.000000e+00 + vertex -7.700000e+01 -1.498660e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735914e-01 -8.191416e-01 0.000000e+00 + outer loop + vertex -7.685721e+01 -1.497660e+02 -6.000000e+00 + vertex -7.685721e+01 -1.497660e+02 -3.000000e+00 + vertex -7.700000e+01 -1.498660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.193969e+01 -1.493420e+02 -3.000000e+00 + vertex -7.314279e+01 -1.497660e+02 -3.000000e+00 + vertex -7.300000e+01 -1.498660e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.736115e-01 -8.191275e-01 -0.000000e+00 + outer loop + vertex -7.150000e+01 -1.498660e+02 0.000000e+00 + vertex -7.164279e+01 -1.497660e+02 0.000000e+00 + vertex -7.150000e+01 -1.498660e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.736115e-01 -8.191275e-01 -0.000000e+00 + outer loop + vertex -7.164279e+01 -1.497660e+02 0.000000e+00 + vertex -7.164279e+01 -1.497660e+02 -3.000000e+00 + vertex -7.150000e+01 -1.498660e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.736115e-01 -8.191275e-01 0.000000e+00 + outer loop + vertex 7.164279e+01 -1.497660e+02 -3.000000e+00 + vertex 7.150000e+01 -1.498660e+02 0.000000e+00 + vertex 7.150000e+01 -1.498660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.314279e+01 -1.497660e+02 -3.000000e+00 + vertex 7.193969e+01 -1.493420e+02 -3.000000e+00 + vertex 7.300000e+01 -1.498660e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735914e-01 -8.191416e-01 0.000000e+00 + outer loop + vertex 7.314279e+01 -1.497660e+02 -6.000000e+00 + vertex 7.314279e+01 -1.497660e+02 -3.000000e+00 + vertex 7.300000e+01 -1.498660e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735914e-01 -8.191416e-01 -0.000000e+00 + outer loop + vertex 7.835721e+01 -1.497660e+02 0.000000e+00 + vertex 7.835721e+01 -1.497660e+02 -3.000000e+00 + vertex 7.850000e+01 -1.498660e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735914e-01 -8.191416e-01 -0.000000e+00 + outer loop + vertex 7.850000e+01 -1.498660e+02 0.000000e+00 + vertex 7.835721e+01 -1.497660e+02 0.000000e+00 + vertex 7.850000e+01 -1.498660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.552095e+01 1.450456e+02 0.000000e+00 + vertex -1.496428e+02 -1.497660e+02 0.000000e+00 + vertex -1.495000e+02 -1.498660e+02 0.000000e+00 + endloop + endfacet + facet normal 5.735914e-01 -8.191416e-01 0.000000e+00 + outer loop + vertex -7.835721e+01 -1.497660e+02 -3.000000e+00 + vertex -7.835721e+01 -1.497660e+02 0.000000e+00 + vertex -7.850000e+01 -1.498660e+02 0.000000e+00 + endloop + endfacet + facet normal 5.736115e-01 -8.191275e-01 0.000000e+00 + outer loop + vertex 7.164279e+01 -1.497660e+02 -3.000000e+00 + vertex 7.164279e+01 -1.497660e+02 0.000000e+00 + vertex 7.150000e+01 -1.498660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 1.496428e+02 -1.497660e+02 0.000000e+00 + vertex 1.500000e+02 -1.490000e+02 0.000000e+00 + vertex 1.495000e+02 -1.498660e+02 0.000000e+00 + endloop + endfacet + facet normal 5.736115e-01 -8.191275e-01 0.000000e+00 + outer loop + vertex 1.496428e+02 -1.497660e+02 -6.000000e+00 + vertex 1.496428e+02 -1.497660e+02 0.000000e+00 + vertex 1.495000e+02 -1.498660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.679290e+01 -1.497071e+02 -6.000000e+00 + vertex 7.669098e+01 -1.495878e+02 -6.000000e+00 + vertex 7.691222e+01 -1.498090e+02 -6.000000e+00 + endloop + endfacet + facet normal -6.494452e-01 -7.604084e-01 -0.000000e+00 + outer loop + vertex 7.691222e+01 -1.498090e+02 -3.000000e+00 + vertex 7.679290e+01 -1.497071e+02 -3.000000e+00 + vertex 7.691222e+01 -1.498090e+02 -6.000000e+00 + endloop + endfacet + facet normal -6.494452e-01 -7.604084e-01 -0.000000e+00 + outer loop + vertex 7.679290e+01 -1.497071e+02 -3.000000e+00 + vertex 7.679290e+01 -1.497071e+02 -6.000000e+00 + vertex 7.691222e+01 -1.498090e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.806031e+01 -1.493420e+02 -3.000000e+00 + vertex 7.679290e+01 -1.497071e+02 -3.000000e+00 + vertex 7.691222e+01 -1.498090e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.497660e+02 -1.496428e+02 -6.000000e+00 + vertex -1.500000e+02 -1.490000e+02 -6.000000e+00 + vertex -1.496428e+02 -1.497660e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex -1.496428e+02 -1.497660e+02 0.000000e+00 + vertex -1.497660e+02 -1.496428e+02 0.000000e+00 + vertex -1.496428e+02 -1.497660e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex -1.497660e+02 -1.496428e+02 0.000000e+00 + vertex -1.497660e+02 -1.496428e+02 -6.000000e+00 + vertex -1.496428e+02 -1.497660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.647721e+01 -1.477395e+02 -6.000000e+00 + vertex -7.673395e+01 -1.496428e+02 -6.000000e+00 + vertex -7.685721e+01 -1.497660e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 -7.070854e-01 0.000000e+00 + outer loop + vertex -7.673395e+01 -1.496428e+02 -6.000000e+00 + vertex -7.685721e+01 -1.497660e+02 -3.000000e+00 + vertex -7.685721e+01 -1.497660e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071282e-01 -7.070854e-01 -0.000000e+00 + outer loop + vertex -7.314279e+01 -1.497660e+02 -3.000000e+00 + vertex -7.326604e+01 -1.496428e+02 -3.000000e+00 + vertex -7.314279e+01 -1.497660e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071282e-01 -7.070854e-01 -0.000000e+00 + outer loop + vertex -7.326604e+01 -1.496428e+02 -3.000000e+00 + vertex -7.326604e+01 -1.496428e+02 -6.000000e+00 + vertex -7.314279e+01 -1.497660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.352279e+01 -1.477395e+02 -6.000000e+00 + vertex 7.326604e+01 -1.496428e+02 -6.000000e+00 + vertex 7.314279e+01 -1.497660e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 -7.070854e-01 0.000000e+00 + outer loop + vertex 7.326604e+01 -1.496428e+02 -6.000000e+00 + vertex 7.314279e+01 -1.497660e+02 -3.000000e+00 + vertex 7.314279e+01 -1.497660e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex 1.497660e+02 -1.496428e+02 -6.000000e+00 + vertex 1.496428e+02 -1.497660e+02 0.000000e+00 + vertex 1.496428e+02 -1.497660e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 -7.070854e-01 0.000000e+00 + outer loop + vertex -7.823396e+01 -1.496428e+02 -3.000000e+00 + vertex -7.835721e+01 -1.497660e+02 0.000000e+00 + vertex -7.835721e+01 -1.497660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.673395e+01 -1.496428e+02 -3.000000e+00 + vertex -7.806031e+01 -1.493420e+02 -3.000000e+00 + vertex -7.685721e+01 -1.497660e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 -7.070854e-01 0.000000e+00 + outer loop + vertex -7.673395e+01 -1.496428e+02 -6.000000e+00 + vertex -7.673395e+01 -1.496428e+02 -3.000000e+00 + vertex -7.685721e+01 -1.497660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.193969e+01 -1.493420e+02 -3.000000e+00 + vertex -7.326604e+01 -1.496428e+02 -3.000000e+00 + vertex -7.314279e+01 -1.497660e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071282e-01 -7.070854e-01 -0.000000e+00 + outer loop + vertex -7.164279e+01 -1.497660e+02 0.000000e+00 + vertex -7.176604e+01 -1.496428e+02 0.000000e+00 + vertex -7.164279e+01 -1.497660e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071282e-01 -7.070854e-01 -0.000000e+00 + outer loop + vertex -7.176604e+01 -1.496428e+02 0.000000e+00 + vertex -7.176604e+01 -1.496428e+02 -3.000000e+00 + vertex -7.164279e+01 -1.497660e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 -7.070854e-01 0.000000e+00 + outer loop + vertex 7.176604e+01 -1.496428e+02 -3.000000e+00 + vertex 7.164279e+01 -1.497660e+02 0.000000e+00 + vertex 7.164279e+01 -1.497660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.326604e+01 -1.496428e+02 -3.000000e+00 + vertex 7.193969e+01 -1.493420e+02 -3.000000e+00 + vertex 7.314279e+01 -1.497660e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 -7.070854e-01 0.000000e+00 + outer loop + vertex 7.326604e+01 -1.496428e+02 -6.000000e+00 + vertex 7.326604e+01 -1.496428e+02 -3.000000e+00 + vertex 7.314279e+01 -1.497660e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071282e-01 -7.070854e-01 -0.000000e+00 + outer loop + vertex 7.823396e+01 -1.496428e+02 0.000000e+00 + vertex 7.823396e+01 -1.496428e+02 -3.000000e+00 + vertex 7.835721e+01 -1.497660e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071282e-01 -7.070854e-01 -0.000000e+00 + outer loop + vertex 7.835721e+01 -1.497660e+02 0.000000e+00 + vertex 7.823396e+01 -1.496428e+02 0.000000e+00 + vertex 7.835721e+01 -1.497660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.552095e+01 1.450456e+02 0.000000e+00 + vertex -1.497660e+02 -1.496428e+02 0.000000e+00 + vertex -1.496428e+02 -1.497660e+02 0.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 -7.070854e-01 0.000000e+00 + outer loop + vertex -7.823396e+01 -1.496428e+02 -3.000000e+00 + vertex -7.823396e+01 -1.496428e+02 0.000000e+00 + vertex -7.835721e+01 -1.497660e+02 0.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 -7.070854e-01 0.000000e+00 + outer loop + vertex 7.176604e+01 -1.496428e+02 -3.000000e+00 + vertex 7.176604e+01 -1.496428e+02 0.000000e+00 + vertex 7.164279e+01 -1.497660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 1.497660e+02 -1.496428e+02 0.000000e+00 + vertex 1.500000e+02 -1.490000e+02 0.000000e+00 + vertex 1.496428e+02 -1.497660e+02 0.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex 1.497660e+02 -1.496428e+02 -6.000000e+00 + vertex 1.497660e+02 -1.496428e+02 0.000000e+00 + vertex 1.496428e+02 -1.497660e+02 0.000000e+00 + endloop + endfacet + facet normal -7.604049e-01 -6.494492e-01 -0.000000e+00 + outer loop + vertex 7.679290e+01 -1.497071e+02 -3.000000e+00 + vertex 7.669098e+01 -1.495878e+02 -3.000000e+00 + vertex 7.679290e+01 -1.497071e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.604049e-01 -6.494492e-01 -0.000000e+00 + outer loop + vertex 7.669098e+01 -1.495878e+02 -3.000000e+00 + vertex 7.669098e+01 -1.495878e+02 -6.000000e+00 + vertex 7.679290e+01 -1.497071e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.806031e+01 -1.493420e+02 -3.000000e+00 + vertex 7.801519e+01 -1.491736e+02 -3.000000e+00 + vertex 7.679290e+01 -1.497071e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.801519e+01 -1.491736e+02 -3.000000e+00 + vertex 7.669098e+01 -1.495878e+02 -3.000000e+00 + vertex 7.679290e+01 -1.497071e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.498660e+02 -1.495000e+02 -6.000000e+00 + vertex -1.499397e+02 -1.493420e+02 -6.000000e+00 + vertex -1.497660e+02 -1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.499848e+02 -1.491736e+02 -6.000000e+00 + vertex -1.500000e+02 -1.490000e+02 -6.000000e+00 + vertex -1.497660e+02 -1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.499397e+02 -1.493420e+02 -6.000000e+00 + vertex -1.499848e+02 -1.491736e+02 -6.000000e+00 + vertex -1.497660e+02 -1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191275e-01 -5.736115e-01 -0.000000e+00 + outer loop + vertex -1.497660e+02 -1.496428e+02 0.000000e+00 + vertex -1.498660e+02 -1.495000e+02 0.000000e+00 + vertex -1.497660e+02 -1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191275e-01 -5.736115e-01 -0.000000e+00 + outer loop + vertex -1.498660e+02 -1.495000e+02 0.000000e+00 + vertex -1.498660e+02 -1.495000e+02 -6.000000e+00 + vertex -1.497660e+02 -1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.647721e+01 -1.477395e+02 -6.000000e+00 + vertex -7.650000e+01 -1.480000e+02 -6.000000e+00 + vertex -7.673395e+01 -1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.650000e+01 -1.480000e+02 -6.000000e+00 + vertex -7.650000e+01 -1.490000e+02 -6.000000e+00 + vertex -7.673395e+01 -1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.650000e+01 -1.490000e+02 -6.000000e+00 + vertex -7.651519e+01 -1.491736e+02 -6.000000e+00 + vertex -7.673395e+01 -1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.651519e+01 -1.491736e+02 -6.000000e+00 + vertex -7.656031e+01 -1.493420e+02 -6.000000e+00 + vertex -7.673395e+01 -1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.656031e+01 -1.493420e+02 -6.000000e+00 + vertex -7.663397e+01 -1.495000e+02 -6.000000e+00 + vertex -7.673395e+01 -1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191476e-01 -5.735828e-01 0.000000e+00 + outer loop + vertex -7.663397e+01 -1.495000e+02 -6.000000e+00 + vertex -7.673395e+01 -1.496428e+02 -3.000000e+00 + vertex -7.673395e+01 -1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191476e-01 -5.735828e-01 -0.000000e+00 + outer loop + vertex -7.326604e+01 -1.496428e+02 -3.000000e+00 + vertex -7.336602e+01 -1.495000e+02 -3.000000e+00 + vertex -7.326604e+01 -1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191476e-01 -5.735828e-01 -0.000000e+00 + outer loop + vertex -7.336602e+01 -1.495000e+02 -3.000000e+00 + vertex -7.336602e+01 -1.495000e+02 -6.000000e+00 + vertex -7.326604e+01 -1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.352279e+01 -1.477395e+02 -6.000000e+00 + vertex 7.350000e+01 -1.480000e+02 -6.000000e+00 + vertex 7.326604e+01 -1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.350000e+01 -1.480000e+02 -6.000000e+00 + vertex 7.350000e+01 -1.490000e+02 -6.000000e+00 + vertex 7.326604e+01 -1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.350000e+01 -1.490000e+02 -6.000000e+00 + vertex 7.348481e+01 -1.491736e+02 -6.000000e+00 + vertex 7.326604e+01 -1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.348481e+01 -1.491736e+02 -6.000000e+00 + vertex 7.343969e+01 -1.493420e+02 -6.000000e+00 + vertex 7.326604e+01 -1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.343969e+01 -1.493420e+02 -6.000000e+00 + vertex 7.336602e+01 -1.495000e+02 -6.000000e+00 + vertex 7.326604e+01 -1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191476e-01 -5.735828e-01 0.000000e+00 + outer loop + vertex 7.336602e+01 -1.495000e+02 -6.000000e+00 + vertex 7.326604e+01 -1.496428e+02 -3.000000e+00 + vertex 7.326604e+01 -1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191275e-01 -5.736115e-01 0.000000e+00 + outer loop + vertex 1.498660e+02 -1.495000e+02 -6.000000e+00 + vertex 1.497660e+02 -1.496428e+02 0.000000e+00 + vertex 1.497660e+02 -1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191476e-01 -5.735828e-01 0.000000e+00 + outer loop + vertex -7.813398e+01 -1.495000e+02 -3.000000e+00 + vertex -7.823396e+01 -1.496428e+02 0.000000e+00 + vertex -7.823396e+01 -1.496428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.801519e+01 -1.491736e+02 -3.000000e+00 + vertex -7.806031e+01 -1.493420e+02 -3.000000e+00 + vertex -7.673395e+01 -1.496428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.663397e+01 -1.495000e+02 -3.000000e+00 + vertex -7.801519e+01 -1.491736e+02 -3.000000e+00 + vertex -7.673395e+01 -1.496428e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191476e-01 -5.735828e-01 0.000000e+00 + outer loop + vertex -7.663397e+01 -1.495000e+02 -6.000000e+00 + vertex -7.663397e+01 -1.495000e+02 -3.000000e+00 + vertex -7.673395e+01 -1.496428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.193969e+01 -1.493420e+02 -3.000000e+00 + vertex -7.198481e+01 -1.491736e+02 -3.000000e+00 + vertex -7.326604e+01 -1.496428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.198481e+01 -1.491736e+02 -3.000000e+00 + vertex -7.336602e+01 -1.495000e+02 -3.000000e+00 + vertex -7.326604e+01 -1.496428e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191275e-01 -5.736115e-01 -0.000000e+00 + outer loop + vertex -7.176604e+01 -1.496428e+02 0.000000e+00 + vertex -7.186603e+01 -1.495000e+02 0.000000e+00 + vertex -7.176604e+01 -1.496428e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191275e-01 -5.736115e-01 -0.000000e+00 + outer loop + vertex -7.186603e+01 -1.495000e+02 0.000000e+00 + vertex -7.186603e+01 -1.495000e+02 -3.000000e+00 + vertex -7.176604e+01 -1.496428e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191275e-01 -5.736115e-01 0.000000e+00 + outer loop + vertex 7.186603e+01 -1.495000e+02 -3.000000e+00 + vertex 7.176604e+01 -1.496428e+02 0.000000e+00 + vertex 7.176604e+01 -1.496428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.198481e+01 -1.491736e+02 -3.000000e+00 + vertex 7.193969e+01 -1.493420e+02 -3.000000e+00 + vertex 7.326604e+01 -1.496428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.336602e+01 -1.495000e+02 -3.000000e+00 + vertex 7.198481e+01 -1.491736e+02 -3.000000e+00 + vertex 7.326604e+01 -1.496428e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191476e-01 -5.735828e-01 0.000000e+00 + outer loop + vertex 7.336602e+01 -1.495000e+02 -6.000000e+00 + vertex 7.336602e+01 -1.495000e+02 -3.000000e+00 + vertex 7.326604e+01 -1.496428e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191476e-01 -5.735828e-01 -0.000000e+00 + outer loop + vertex 7.813398e+01 -1.495000e+02 0.000000e+00 + vertex 7.813398e+01 -1.495000e+02 -3.000000e+00 + vertex 7.823396e+01 -1.496428e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191476e-01 -5.735828e-01 -0.000000e+00 + outer loop + vertex 7.823396e+01 -1.496428e+02 0.000000e+00 + vertex 7.813398e+01 -1.495000e+02 0.000000e+00 + vertex 7.823396e+01 -1.496428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.552095e+01 1.450456e+02 0.000000e+00 + vertex -1.498660e+02 -1.495000e+02 0.000000e+00 + vertex -1.497660e+02 -1.496428e+02 0.000000e+00 + endloop + endfacet + facet normal 8.191476e-01 -5.735828e-01 0.000000e+00 + outer loop + vertex -7.813398e+01 -1.495000e+02 -3.000000e+00 + vertex -7.813398e+01 -1.495000e+02 0.000000e+00 + vertex -7.823396e+01 -1.496428e+02 0.000000e+00 + endloop + endfacet + facet normal 8.191275e-01 -5.736115e-01 0.000000e+00 + outer loop + vertex 7.186603e+01 -1.495000e+02 -3.000000e+00 + vertex 7.186603e+01 -1.495000e+02 0.000000e+00 + vertex 7.176604e+01 -1.496428e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 1.498660e+02 -1.495000e+02 0.000000e+00 + vertex 1.499397e+02 -1.493420e+02 0.000000e+00 + vertex 1.497660e+02 -1.496428e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 1.499848e+02 -1.491736e+02 0.000000e+00 + vertex 1.500000e+02 -1.490000e+02 0.000000e+00 + vertex 1.497660e+02 -1.496428e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 1.499397e+02 -1.493420e+02 0.000000e+00 + vertex 1.499848e+02 -1.491736e+02 0.000000e+00 + vertex 1.497660e+02 -1.496428e+02 0.000000e+00 + endloop + endfacet + facet normal 8.191275e-01 -5.736115e-01 0.000000e+00 + outer loop + vertex 1.498660e+02 -1.495000e+02 -6.000000e+00 + vertex 1.498660e+02 -1.495000e+02 0.000000e+00 + vertex 1.497660e+02 -1.496428e+02 0.000000e+00 + endloop + endfacet + facet normal -8.526285e-01 -5.225175e-01 -0.000000e+00 + outer loop + vertex 7.669098e+01 -1.495878e+02 -3.000000e+00 + vertex 7.660899e+01 -1.494540e+02 -3.000000e+00 + vertex 7.669098e+01 -1.495878e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.526285e-01 -5.225175e-01 -0.000000e+00 + outer loop + vertex 7.660899e+01 -1.494540e+02 -3.000000e+00 + vertex 7.660899e+01 -1.494540e+02 -6.000000e+00 + vertex 7.669098e+01 -1.495878e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.801519e+01 -1.491736e+02 -3.000000e+00 + vertex 7.660899e+01 -1.494540e+02 -3.000000e+00 + vertex 7.669098e+01 -1.495878e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063338e-01 -4.225625e-01 -0.000000e+00 + outer loop + vertex -1.498660e+02 -1.495000e+02 0.000000e+00 + vertex -1.499397e+02 -1.493420e+02 0.000000e+00 + vertex -1.498660e+02 -1.495000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063338e-01 -4.225625e-01 -0.000000e+00 + outer loop + vertex -1.499397e+02 -1.493420e+02 0.000000e+00 + vertex -1.499397e+02 -1.493420e+02 -6.000000e+00 + vertex -1.498660e+02 -1.495000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063174e-01 -4.225976e-01 0.000000e+00 + outer loop + vertex -7.656031e+01 -1.493420e+02 -6.000000e+00 + vertex -7.663397e+01 -1.495000e+02 -3.000000e+00 + vertex -7.663397e+01 -1.495000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 -4.226327e-01 -0.000000e+00 + outer loop + vertex -7.336602e+01 -1.495000e+02 -3.000000e+00 + vertex -7.343969e+01 -1.493420e+02 -3.000000e+00 + vertex -7.336602e+01 -1.495000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 -4.226327e-01 -0.000000e+00 + outer loop + vertex -7.343969e+01 -1.493420e+02 -3.000000e+00 + vertex -7.343969e+01 -1.493420e+02 -6.000000e+00 + vertex -7.336602e+01 -1.495000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 -4.226327e-01 0.000000e+00 + outer loop + vertex 7.343969e+01 -1.493420e+02 -6.000000e+00 + vertex 7.336602e+01 -1.495000e+02 -3.000000e+00 + vertex 7.336602e+01 -1.495000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063338e-01 -4.225625e-01 0.000000e+00 + outer loop + vertex 1.499397e+02 -1.493420e+02 -6.000000e+00 + vertex 1.498660e+02 -1.495000e+02 0.000000e+00 + vertex 1.498660e+02 -1.495000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 -4.226327e-01 0.000000e+00 + outer loop + vertex -7.806031e+01 -1.493420e+02 -3.000000e+00 + vertex -7.813398e+01 -1.495000e+02 0.000000e+00 + vertex -7.813398e+01 -1.495000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.800000e+01 -1.490000e+02 -3.000000e+00 + vertex -7.801519e+01 -1.491736e+02 -3.000000e+00 + vertex -7.663397e+01 -1.495000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.656031e+01 -1.493420e+02 -3.000000e+00 + vertex -7.800000e+01 -1.490000e+02 -3.000000e+00 + vertex -7.663397e+01 -1.495000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063174e-01 -4.225976e-01 0.000000e+00 + outer loop + vertex -7.656031e+01 -1.493420e+02 -6.000000e+00 + vertex -7.656031e+01 -1.493420e+02 -3.000000e+00 + vertex -7.663397e+01 -1.495000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.198481e+01 -1.491736e+02 -3.000000e+00 + vertex -7.343969e+01 -1.493420e+02 -3.000000e+00 + vertex -7.336602e+01 -1.495000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063174e-01 -4.225976e-01 -0.000000e+00 + outer loop + vertex -7.186603e+01 -1.495000e+02 0.000000e+00 + vertex -7.193969e+01 -1.493420e+02 0.000000e+00 + vertex -7.186603e+01 -1.495000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063174e-01 -4.225976e-01 -0.000000e+00 + outer loop + vertex -7.193969e+01 -1.493420e+02 0.000000e+00 + vertex -7.193969e+01 -1.493420e+02 -3.000000e+00 + vertex -7.186603e+01 -1.495000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063174e-01 -4.225976e-01 0.000000e+00 + outer loop + vertex 7.193969e+01 -1.493420e+02 -3.000000e+00 + vertex 7.186603e+01 -1.495000e+02 0.000000e+00 + vertex 7.186603e+01 -1.495000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.200000e+01 -1.490000e+02 -3.000000e+00 + vertex 7.198481e+01 -1.491736e+02 -3.000000e+00 + vertex 7.336602e+01 -1.495000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.343969e+01 -1.493420e+02 -3.000000e+00 + vertex 7.200000e+01 -1.490000e+02 -3.000000e+00 + vertex 7.336602e+01 -1.495000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 -4.226327e-01 0.000000e+00 + outer loop + vertex 7.343969e+01 -1.493420e+02 -6.000000e+00 + vertex 7.343969e+01 -1.493420e+02 -3.000000e+00 + vertex 7.336602e+01 -1.495000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 -4.226327e-01 -0.000000e+00 + outer loop + vertex 7.806031e+01 -1.493420e+02 0.000000e+00 + vertex 7.806031e+01 -1.493420e+02 -3.000000e+00 + vertex 7.813398e+01 -1.495000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 -4.226327e-01 -0.000000e+00 + outer loop + vertex 7.813398e+01 -1.495000e+02 0.000000e+00 + vertex 7.806031e+01 -1.493420e+02 0.000000e+00 + vertex 7.813398e+01 -1.495000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.552095e+01 1.450456e+02 0.000000e+00 + vertex -1.499397e+02 -1.493420e+02 0.000000e+00 + vertex -1.498660e+02 -1.495000e+02 0.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 -4.226327e-01 0.000000e+00 + outer loop + vertex -7.806031e+01 -1.493420e+02 -3.000000e+00 + vertex -7.806031e+01 -1.493420e+02 0.000000e+00 + vertex -7.813398e+01 -1.495000e+02 0.000000e+00 + endloop + endfacet + facet normal 9.063174e-01 -4.225976e-01 0.000000e+00 + outer loop + vertex 7.193969e+01 -1.493420e+02 -3.000000e+00 + vertex 7.193969e+01 -1.493420e+02 0.000000e+00 + vertex 7.186603e+01 -1.495000e+02 0.000000e+00 + endloop + endfacet + facet normal 9.063338e-01 -4.225625e-01 0.000000e+00 + outer loop + vertex 1.499397e+02 -1.493420e+02 -6.000000e+00 + vertex 1.499397e+02 -1.493420e+02 0.000000e+00 + vertex 1.498660e+02 -1.495000e+02 0.000000e+00 + endloop + endfacet + facet normal -9.238756e-01 -3.826929e-01 -0.000000e+00 + outer loop + vertex 7.660899e+01 -1.494540e+02 -3.000000e+00 + vertex 7.654894e+01 -1.493090e+02 -3.000000e+00 + vertex 7.660899e+01 -1.494540e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.238756e-01 -3.826929e-01 -0.000000e+00 + outer loop + vertex 7.654894e+01 -1.493090e+02 -3.000000e+00 + vertex 7.654894e+01 -1.493090e+02 -6.000000e+00 + vertex 7.660899e+01 -1.494540e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.801519e+01 -1.491736e+02 -3.000000e+00 + vertex 7.654894e+01 -1.493090e+02 -3.000000e+00 + vertex 7.660899e+01 -1.494540e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659164e-01 -2.588543e-01 -0.000000e+00 + outer loop + vertex -1.499397e+02 -1.493420e+02 0.000000e+00 + vertex -1.499848e+02 -1.491736e+02 0.000000e+00 + vertex -1.499397e+02 -1.493420e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659164e-01 -2.588543e-01 -0.000000e+00 + outer loop + vertex -1.499848e+02 -1.491736e+02 0.000000e+00 + vertex -1.499848e+02 -1.491736e+02 -6.000000e+00 + vertex -1.499397e+02 -1.493420e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659164e-01 -2.588543e-01 0.000000e+00 + outer loop + vertex -7.651519e+01 -1.491736e+02 -6.000000e+00 + vertex -7.656031e+01 -1.493420e+02 -3.000000e+00 + vertex -7.656031e+01 -1.493420e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 -2.588144e-01 -0.000000e+00 + outer loop + vertex -7.343969e+01 -1.493420e+02 -3.000000e+00 + vertex -7.348481e+01 -1.491736e+02 -3.000000e+00 + vertex -7.343969e+01 -1.493420e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 -2.588144e-01 -0.000000e+00 + outer loop + vertex -7.348481e+01 -1.491736e+02 -3.000000e+00 + vertex -7.348481e+01 -1.491736e+02 -6.000000e+00 + vertex -7.343969e+01 -1.493420e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 -2.588144e-01 0.000000e+00 + outer loop + vertex 7.348481e+01 -1.491736e+02 -6.000000e+00 + vertex 7.343969e+01 -1.493420e+02 -3.000000e+00 + vertex 7.343969e+01 -1.493420e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659164e-01 -2.588543e-01 0.000000e+00 + outer loop + vertex 1.499848e+02 -1.491736e+02 -6.000000e+00 + vertex 1.499397e+02 -1.493420e+02 0.000000e+00 + vertex 1.499397e+02 -1.493420e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 -2.588144e-01 0.000000e+00 + outer loop + vertex -7.801519e+01 -1.491736e+02 -3.000000e+00 + vertex -7.806031e+01 -1.493420e+02 0.000000e+00 + vertex -7.806031e+01 -1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.651519e+01 -1.491736e+02 -3.000000e+00 + vertex -7.800000e+01 -1.490000e+02 -3.000000e+00 + vertex -7.656031e+01 -1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659164e-01 -2.588543e-01 0.000000e+00 + outer loop + vertex -7.651519e+01 -1.491736e+02 -6.000000e+00 + vertex -7.651519e+01 -1.491736e+02 -3.000000e+00 + vertex -7.656031e+01 -1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 -1.490000e+02 -3.000000e+00 + vertex -7.348481e+01 -1.491736e+02 -3.000000e+00 + vertex -7.343969e+01 -1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.198481e+01 -1.491736e+02 -3.000000e+00 + vertex -7.200000e+01 -1.490000e+02 -3.000000e+00 + vertex -7.343969e+01 -1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 -2.588144e-01 -0.000000e+00 + outer loop + vertex -7.193969e+01 -1.493420e+02 0.000000e+00 + vertex -7.198481e+01 -1.491736e+02 0.000000e+00 + vertex -7.193969e+01 -1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 -2.588144e-01 -0.000000e+00 + outer loop + vertex -7.198481e+01 -1.491736e+02 0.000000e+00 + vertex -7.198481e+01 -1.491736e+02 -3.000000e+00 + vertex -7.193969e+01 -1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 -2.588144e-01 0.000000e+00 + outer loop + vertex 7.198481e+01 -1.491736e+02 -3.000000e+00 + vertex 7.193969e+01 -1.493420e+02 0.000000e+00 + vertex 7.193969e+01 -1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.348481e+01 -1.491736e+02 -3.000000e+00 + vertex 7.200000e+01 -1.490000e+02 -3.000000e+00 + vertex 7.343969e+01 -1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 -2.588144e-01 0.000000e+00 + outer loop + vertex 7.348481e+01 -1.491736e+02 -6.000000e+00 + vertex 7.348481e+01 -1.491736e+02 -3.000000e+00 + vertex 7.343969e+01 -1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 -2.588144e-01 -0.000000e+00 + outer loop + vertex 7.801519e+01 -1.491736e+02 0.000000e+00 + vertex 7.801519e+01 -1.491736e+02 -3.000000e+00 + vertex 7.806031e+01 -1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 -2.588144e-01 -0.000000e+00 + outer loop + vertex 7.806031e+01 -1.493420e+02 0.000000e+00 + vertex 7.801519e+01 -1.491736e+02 0.000000e+00 + vertex 7.806031e+01 -1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.552095e+01 1.450456e+02 0.000000e+00 + vertex -1.499848e+02 -1.491736e+02 0.000000e+00 + vertex -1.499397e+02 -1.493420e+02 0.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 -2.588144e-01 0.000000e+00 + outer loop + vertex -7.801519e+01 -1.491736e+02 -3.000000e+00 + vertex -7.801519e+01 -1.491736e+02 0.000000e+00 + vertex -7.806031e+01 -1.493420e+02 0.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 -2.588144e-01 0.000000e+00 + outer loop + vertex 7.198481e+01 -1.491736e+02 -3.000000e+00 + vertex 7.198481e+01 -1.491736e+02 0.000000e+00 + vertex 7.193969e+01 -1.493420e+02 0.000000e+00 + endloop + endfacet + facet normal 9.659164e-01 -2.588543e-01 0.000000e+00 + outer loop + vertex 1.499848e+02 -1.491736e+02 -6.000000e+00 + vertex 1.499848e+02 -1.491736e+02 0.000000e+00 + vertex 1.499397e+02 -1.493420e+02 0.000000e+00 + endloop + endfacet + facet normal -9.723787e-01 -2.334089e-01 -0.000000e+00 + outer loop + vertex 7.654894e+01 -1.493090e+02 -3.000000e+00 + vertex 7.651231e+01 -1.491564e+02 -3.000000e+00 + vertex 7.654894e+01 -1.493090e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.723787e-01 -2.334089e-01 -0.000000e+00 + outer loop + vertex 7.651231e+01 -1.491564e+02 -3.000000e+00 + vertex 7.651231e+01 -1.491564e+02 -6.000000e+00 + vertex 7.654894e+01 -1.493090e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.800000e+01 -1.490000e+02 -3.000000e+00 + vertex 7.651231e+01 -1.491564e+02 -3.000000e+00 + vertex 7.654894e+01 -1.493090e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.801519e+01 -1.491736e+02 -3.000000e+00 + vertex 7.800000e+01 -1.490000e+02 -3.000000e+00 + vertex 7.654894e+01 -1.493090e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961910e-01 -8.719770e-02 -0.000000e+00 + outer loop + vertex -1.499848e+02 -1.491736e+02 0.000000e+00 + vertex -1.500000e+02 -1.490000e+02 0.000000e+00 + vertex -1.499848e+02 -1.491736e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961910e-01 -8.719770e-02 -0.000000e+00 + outer loop + vertex -1.500000e+02 -1.490000e+02 0.000000e+00 + vertex -1.500000e+02 -1.490000e+02 -6.000000e+00 + vertex -1.499848e+02 -1.491736e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961947e-01 -8.715528e-02 0.000000e+00 + outer loop + vertex -7.650000e+01 -1.490000e+02 -6.000000e+00 + vertex -7.651519e+01 -1.491736e+02 -3.000000e+00 + vertex -7.651519e+01 -1.491736e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961947e-01 -8.715528e-02 -0.000000e+00 + outer loop + vertex -7.348481e+01 -1.491736e+02 -3.000000e+00 + vertex -7.350000e+01 -1.490000e+02 -3.000000e+00 + vertex -7.348481e+01 -1.491736e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961947e-01 -8.715528e-02 -0.000000e+00 + outer loop + vertex -7.350000e+01 -1.490000e+02 -3.000000e+00 + vertex -7.350000e+01 -1.490000e+02 -6.000000e+00 + vertex -7.348481e+01 -1.491736e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961947e-01 -8.715528e-02 0.000000e+00 + outer loop + vertex 7.350000e+01 -1.490000e+02 -6.000000e+00 + vertex 7.348481e+01 -1.491736e+02 -3.000000e+00 + vertex 7.348481e+01 -1.491736e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961910e-01 -8.719770e-02 0.000000e+00 + outer loop + vertex 1.500000e+02 -1.490000e+02 -6.000000e+00 + vertex 1.499848e+02 -1.491736e+02 0.000000e+00 + vertex 1.499848e+02 -1.491736e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961947e-01 -8.715528e-02 0.000000e+00 + outer loop + vertex -7.800000e+01 -1.490000e+02 -3.000000e+00 + vertex -7.801519e+01 -1.491736e+02 0.000000e+00 + vertex -7.801519e+01 -1.491736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 -1.490000e+02 -3.000000e+00 + vertex -7.800000e+01 -1.490000e+02 -3.000000e+00 + vertex -7.651519e+01 -1.491736e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961947e-01 -8.715528e-02 0.000000e+00 + outer loop + vertex -7.650000e+01 -1.490000e+02 -6.000000e+00 + vertex -7.650000e+01 -1.490000e+02 -3.000000e+00 + vertex -7.651519e+01 -1.491736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 -1.490000e+02 -3.000000e+00 + vertex -7.350000e+01 -1.490000e+02 -3.000000e+00 + vertex -7.348481e+01 -1.491736e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961947e-01 -8.715528e-02 -0.000000e+00 + outer loop + vertex -7.198481e+01 -1.491736e+02 0.000000e+00 + vertex -7.200000e+01 -1.490000e+02 0.000000e+00 + vertex -7.198481e+01 -1.491736e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961947e-01 -8.715528e-02 -0.000000e+00 + outer loop + vertex -7.200000e+01 -1.490000e+02 0.000000e+00 + vertex -7.200000e+01 -1.490000e+02 -3.000000e+00 + vertex -7.198481e+01 -1.491736e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961947e-01 -8.715528e-02 0.000000e+00 + outer loop + vertex 7.200000e+01 -1.490000e+02 -3.000000e+00 + vertex 7.198481e+01 -1.491736e+02 0.000000e+00 + vertex 7.198481e+01 -1.491736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 -1.490000e+02 -3.000000e+00 + vertex 7.200000e+01 -1.490000e+02 -3.000000e+00 + vertex 7.348481e+01 -1.491736e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961947e-01 -8.715528e-02 0.000000e+00 + outer loop + vertex 7.350000e+01 -1.490000e+02 -6.000000e+00 + vertex 7.350000e+01 -1.490000e+02 -3.000000e+00 + vertex 7.348481e+01 -1.491736e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961947e-01 -8.715528e-02 -0.000000e+00 + outer loop + vertex 7.800000e+01 -1.490000e+02 0.000000e+00 + vertex 7.800000e+01 -1.490000e+02 -3.000000e+00 + vertex 7.801519e+01 -1.491736e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961947e-01 -8.715528e-02 -0.000000e+00 + outer loop + vertex 7.801519e+01 -1.491736e+02 0.000000e+00 + vertex 7.800000e+01 -1.490000e+02 0.000000e+00 + vertex 7.801519e+01 -1.491736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.552095e+01 1.450456e+02 0.000000e+00 + vertex -1.500000e+02 -1.490000e+02 0.000000e+00 + vertex -1.499848e+02 -1.491736e+02 0.000000e+00 + endloop + endfacet + facet normal 9.961947e-01 -8.715528e-02 0.000000e+00 + outer loop + vertex -7.800000e+01 -1.490000e+02 -3.000000e+00 + vertex -7.800000e+01 -1.490000e+02 0.000000e+00 + vertex -7.801519e+01 -1.491736e+02 0.000000e+00 + endloop + endfacet + facet normal 9.961947e-01 -8.715528e-02 0.000000e+00 + outer loop + vertex 7.200000e+01 -1.490000e+02 -3.000000e+00 + vertex 7.200000e+01 -1.490000e+02 0.000000e+00 + vertex 7.198481e+01 -1.491736e+02 0.000000e+00 + endloop + endfacet + facet normal 9.961910e-01 -8.719770e-02 0.000000e+00 + outer loop + vertex 1.500000e+02 -1.490000e+02 -6.000000e+00 + vertex 1.500000e+02 -1.490000e+02 0.000000e+00 + vertex 1.499848e+02 -1.491736e+02 0.000000e+00 + endloop + endfacet + facet normal -9.969152e-01 -7.848642e-02 -0.000000e+00 + outer loop + vertex 7.651231e+01 -1.491564e+02 -3.000000e+00 + vertex 7.650000e+01 -1.490000e+02 -3.000000e+00 + vertex 7.651231e+01 -1.491564e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.969152e-01 -7.848642e-02 -0.000000e+00 + outer loop + vertex 7.650000e+01 -1.490000e+02 -3.000000e+00 + vertex 7.650000e+01 -1.490000e+02 -6.000000e+00 + vertex 7.651231e+01 -1.491564e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.800000e+01 -1.490000e+02 -3.000000e+00 + vertex 7.650000e+01 -1.490000e+02 -3.000000e+00 + vertex 7.651231e+01 -1.491564e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.500000e+02 1.490000e+02 -6.000000e+00 + vertex -7.575000e+01 -1.467010e+02 -6.000000e+00 + vertex -1.500000e+02 -1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.575000e+01 -1.467010e+02 -6.000000e+00 + vertex -7.596418e+01 -1.468509e+02 -6.000000e+00 + vertex -1.500000e+02 -1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.596418e+01 -1.468509e+02 -6.000000e+00 + vertex -7.614907e+01 -1.470358e+02 -6.000000e+00 + vertex -1.500000e+02 -1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.629904e+01 -1.472500e+02 -6.000000e+00 + vertex -7.640954e+01 -1.474870e+02 -6.000000e+00 + vertex -1.500000e+02 -1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.614907e+01 -1.470358e+02 -6.000000e+00 + vertex -7.629904e+01 -1.472500e+02 -6.000000e+00 + vertex -1.500000e+02 -1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex -1.500000e+02 1.490000e+02 0.000000e+00 + vertex -1.500000e+02 1.490000e+02 -6.000000e+00 + vertex -1.500000e+02 -1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex -1.500000e+02 -1.490000e+02 0.000000e+00 + vertex -1.500000e+02 1.490000e+02 0.000000e+00 + vertex -1.500000e+02 -1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex -7.650000e+01 -1.480000e+02 -6.000000e+00 + vertex -7.650000e+01 -1.490000e+02 -3.000000e+00 + vertex -7.650000e+01 -1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex -7.350000e+01 -1.490000e+02 -3.000000e+00 + vertex -7.350000e+01 -1.480000e+02 -3.000000e+00 + vertex -7.350000e+01 -1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex -7.350000e+01 -1.480000e+02 -3.000000e+00 + vertex -7.350000e+01 -1.480000e+02 -6.000000e+00 + vertex -7.350000e+01 -1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.350000e+01 -1.480000e+02 -6.000000e+00 + vertex 7.425000e+01 -1.467010e+02 -6.000000e+00 + vertex -7.350000e+01 -1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.425000e+01 -1.467010e+02 -6.000000e+00 + vertex 7.403582e+01 -1.468509e+02 -6.000000e+00 + vertex -7.350000e+01 -1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex 7.350000e+01 -1.480000e+02 -6.000000e+00 + vertex 7.350000e+01 -1.490000e+02 -3.000000e+00 + vertex 7.350000e+01 -1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex 7.650000e+01 -1.490000e+02 -3.000000e+00 + vertex 7.650000e+01 -1.480000e+02 -3.000000e+00 + vertex 7.650000e+01 -1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex 7.650000e+01 -1.480000e+02 -3.000000e+00 + vertex 7.650000e+01 -1.480000e+02 -6.000000e+00 + vertex 7.650000e+01 -1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.647721e+01 -1.477395e+02 -6.000000e+00 + vertex 7.640954e+01 -1.474870e+02 -6.000000e+00 + vertex 1.500000e+02 -1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.640954e+01 -1.474870e+02 -6.000000e+00 + vertex 1.500000e+02 1.490000e+02 -6.000000e+00 + vertex 1.500000e+02 -1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.650000e+01 -1.480000e+02 -6.000000e+00 + vertex 7.647721e+01 -1.477395e+02 -6.000000e+00 + vertex 1.500000e+02 -1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex 1.500000e+02 1.490000e+02 -6.000000e+00 + vertex 1.500000e+02 -1.490000e+02 0.000000e+00 + vertex 1.500000e+02 -1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex -7.800000e+01 -1.480000e+02 -3.000000e+00 + vertex -7.800000e+01 -1.490000e+02 0.000000e+00 + vertex -7.800000e+01 -1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 -1.490000e+02 -3.000000e+00 + vertex -7.800000e+01 -1.480000e+02 -3.000000e+00 + vertex -7.800000e+01 -1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex -7.650000e+01 -1.480000e+02 -6.000000e+00 + vertex -7.650000e+01 -1.480000e+02 -3.000000e+00 + vertex -7.650000e+01 -1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 -1.480000e+02 -3.000000e+00 + vertex -7.800000e+01 -1.480000e+02 -3.000000e+00 + vertex -7.650000e+01 -1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 -1.490000e+02 -3.000000e+00 + vertex -7.350000e+01 -1.480000e+02 -3.000000e+00 + vertex -7.350000e+01 -1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex -7.200000e+01 -1.490000e+02 0.000000e+00 + vertex -7.200000e+01 -1.480000e+02 0.000000e+00 + vertex -7.200000e+01 -1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex -7.200000e+01 -1.480000e+02 0.000000e+00 + vertex -7.200000e+01 -1.480000e+02 -3.000000e+00 + vertex -7.200000e+01 -1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 -1.480000e+02 -3.000000e+00 + vertex -7.350000e+01 -1.480000e+02 -3.000000e+00 + vertex -7.200000e+01 -1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex 7.200000e+01 -1.480000e+02 -3.000000e+00 + vertex 7.200000e+01 -1.490000e+02 0.000000e+00 + vertex 7.200000e+01 -1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 -1.490000e+02 -3.000000e+00 + vertex 7.200000e+01 -1.480000e+02 -3.000000e+00 + vertex 7.200000e+01 -1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex 7.350000e+01 -1.480000e+02 -6.000000e+00 + vertex 7.350000e+01 -1.480000e+02 -3.000000e+00 + vertex 7.350000e+01 -1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 -1.480000e+02 -3.000000e+00 + vertex 7.200000e+01 -1.480000e+02 -3.000000e+00 + vertex 7.350000e+01 -1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.800000e+01 -1.490000e+02 -3.000000e+00 + vertex 7.650000e+01 -1.480000e+02 -3.000000e+00 + vertex 7.650000e+01 -1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex 7.800000e+01 -1.490000e+02 0.000000e+00 + vertex 7.800000e+01 -1.480000e+02 0.000000e+00 + vertex 7.800000e+01 -1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex 7.800000e+01 -1.480000e+02 0.000000e+00 + vertex 7.800000e+01 -1.480000e+02 -3.000000e+00 + vertex 7.800000e+01 -1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.800000e+01 -1.480000e+02 -3.000000e+00 + vertex 7.650000e+01 -1.480000e+02 -3.000000e+00 + vertex 7.800000e+01 -1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.602606e+01 1.451809e+02 0.000000e+00 + vertex -7.650000e+01 1.454019e+02 0.000000e+00 + vertex -1.500000e+02 -1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 1.454019e+02 0.000000e+00 + vertex -1.500000e+02 1.490000e+02 0.000000e+00 + vertex -1.500000e+02 -1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.552095e+01 1.450456e+02 0.000000e+00 + vertex -7.602606e+01 1.451809e+02 0.000000e+00 + vertex -1.500000e+02 -1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex -7.800000e+01 -1.480000e+02 -3.000000e+00 + vertex -7.800000e+01 -1.480000e+02 0.000000e+00 + vertex -7.800000e+01 -1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex 7.200000e+01 -1.480000e+02 -3.000000e+00 + vertex 7.200000e+01 -1.480000e+02 0.000000e+00 + vertex 7.200000e+01 -1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.500000e+02 -1.490000e+02 0.000000e+00 + vertex 7.800000e+01 -1.480000e+02 0.000000e+00 + vertex 7.800000e+01 -1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.500000e+02 1.490000e+02 0.000000e+00 + vertex 7.759807e+01 1.465000e+02 0.000000e+00 + vertex 1.500000e+02 -1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.759807e+01 1.465000e+02 0.000000e+00 + vertex 7.729813e+01 1.460716e+02 0.000000e+00 + vertex 1.500000e+02 -1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.781908e+01 -1.469739e+02 0.000000e+00 + vertex 7.795443e+01 -1.474791e+02 0.000000e+00 + vertex 1.500000e+02 -1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.759807e+01 -1.465000e+02 0.000000e+00 + vertex 7.781908e+01 -1.469739e+02 0.000000e+00 + vertex 1.500000e+02 -1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.795443e+01 -1.474791e+02 0.000000e+00 + vertex 7.800000e+01 -1.480000e+02 0.000000e+00 + vertex 1.500000e+02 -1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.729813e+01 1.460716e+02 0.000000e+00 + vertex 7.692836e+01 1.457019e+02 0.000000e+00 + vertex 1.500000e+02 -1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.692836e+01 1.457019e+02 0.000000e+00 + vertex 7.650000e+01 1.454019e+02 0.000000e+00 + vertex 1.500000e+02 -1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.650000e+01 1.454019e+02 0.000000e+00 + vertex 7.759807e+01 -1.465000e+02 0.000000e+00 + vertex 1.500000e+02 -1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex 1.500000e+02 1.490000e+02 -6.000000e+00 + vertex 1.500000e+02 1.490000e+02 0.000000e+00 + vertex 1.500000e+02 -1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 9.961962e-01 -8.713867e-02 0.000000e+00 + outer loop + vertex -7.647721e+01 -1.477395e+02 -6.000000e+00 + vertex -7.647721e+01 -1.477395e+02 -3.000000e+00 + vertex -7.650000e+01 -1.480000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961962e-01 -8.713867e-02 0.000000e+00 + outer loop + vertex -7.647721e+01 -1.477395e+02 -3.000000e+00 + vertex -7.650000e+01 -1.480000e+02 -3.000000e+00 + vertex -7.650000e+01 -1.480000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961937e-01 -8.716695e-02 -0.000000e+00 + outer loop + vertex -7.350000e+01 -1.480000e+02 -3.000000e+00 + vertex -7.352279e+01 -1.477395e+02 -6.000000e+00 + vertex -7.350000e+01 -1.480000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.352279e+01 -1.477395e+02 -6.000000e+00 + vertex 7.425000e+01 -1.467010e+02 -6.000000e+00 + vertex -7.350000e+01 -1.480000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961937e-01 -8.716695e-02 0.000000e+00 + outer loop + vertex 7.352279e+01 -1.477395e+02 -6.000000e+00 + vertex 7.352279e+01 -1.477395e+02 -3.000000e+00 + vertex 7.350000e+01 -1.480000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961937e-01 -8.716695e-02 0.000000e+00 + outer loop + vertex 7.352279e+01 -1.477395e+02 -3.000000e+00 + vertex 7.350000e+01 -1.480000e+02 -3.000000e+00 + vertex 7.350000e+01 -1.480000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961962e-01 -8.713867e-02 -0.000000e+00 + outer loop + vertex 7.650000e+01 -1.480000e+02 -3.000000e+00 + vertex 7.647721e+01 -1.477395e+02 -6.000000e+00 + vertex 7.650000e+01 -1.480000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961950e-01 -8.715281e-02 0.000000e+00 + outer loop + vertex -7.795443e+01 -1.474791e+02 -3.000000e+00 + vertex -7.795443e+01 -1.474791e+02 0.000000e+00 + vertex -7.800000e+01 -1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961950e-01 -8.715281e-02 0.000000e+00 + outer loop + vertex -7.795443e+01 -1.474791e+02 0.000000e+00 + vertex -7.800000e+01 -1.480000e+02 0.000000e+00 + vertex -7.800000e+01 -1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 -1.480000e+02 -3.000000e+00 + vertex -7.795443e+01 -1.474791e+02 -3.000000e+00 + vertex -7.800000e+01 -1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.647721e+01 -1.477395e+02 -3.000000e+00 + vertex -7.795443e+01 -1.474791e+02 -3.000000e+00 + vertex -7.650000e+01 -1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961937e-01 -8.716695e-02 -0.000000e+00 + outer loop + vertex -7.352279e+01 -1.477395e+02 -3.000000e+00 + vertex -7.352279e+01 -1.477395e+02 -6.000000e+00 + vertex -7.350000e+01 -1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 -1.480000e+02 -3.000000e+00 + vertex -7.352279e+01 -1.477395e+02 -3.000000e+00 + vertex -7.350000e+01 -1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961937e-01 -8.716695e-02 -0.000000e+00 + outer loop + vertex -7.200000e+01 -1.480000e+02 0.000000e+00 + vertex -7.204558e+01 -1.474791e+02 -3.000000e+00 + vertex -7.200000e+01 -1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.204558e+01 -1.474791e+02 -3.000000e+00 + vertex -7.352279e+01 -1.477395e+02 -3.000000e+00 + vertex -7.200000e+01 -1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 -1.480000e+02 -3.000000e+00 + vertex 7.204558e+01 -1.474791e+02 -3.000000e+00 + vertex 7.200000e+01 -1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961937e-01 -8.716695e-02 0.000000e+00 + outer loop + vertex 7.204558e+01 -1.474791e+02 -3.000000e+00 + vertex 7.204558e+01 -1.474791e+02 0.000000e+00 + vertex 7.200000e+01 -1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961937e-01 -8.716695e-02 0.000000e+00 + outer loop + vertex 7.204558e+01 -1.474791e+02 0.000000e+00 + vertex 7.200000e+01 -1.480000e+02 0.000000e+00 + vertex 7.200000e+01 -1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.352279e+01 -1.477395e+02 -3.000000e+00 + vertex 7.204558e+01 -1.474791e+02 -3.000000e+00 + vertex 7.350000e+01 -1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961962e-01 -8.713867e-02 -0.000000e+00 + outer loop + vertex 7.647721e+01 -1.477395e+02 -3.000000e+00 + vertex 7.647721e+01 -1.477395e+02 -6.000000e+00 + vertex 7.650000e+01 -1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.800000e+01 -1.480000e+02 -3.000000e+00 + vertex 7.647721e+01 -1.477395e+02 -3.000000e+00 + vertex 7.650000e+01 -1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.795443e+01 -1.474791e+02 -3.000000e+00 + vertex 7.647721e+01 -1.477395e+02 -3.000000e+00 + vertex 7.800000e+01 -1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961950e-01 -8.715281e-02 -0.000000e+00 + outer loop + vertex 7.800000e+01 -1.480000e+02 0.000000e+00 + vertex 7.795443e+01 -1.474791e+02 -3.000000e+00 + vertex 7.800000e+01 -1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961937e-01 -8.716695e-02 -0.000000e+00 + outer loop + vertex -7.204558e+01 -1.474791e+02 0.000000e+00 + vertex -7.204558e+01 -1.474791e+02 -3.000000e+00 + vertex -7.200000e+01 -1.480000e+02 0.000000e+00 + endloop + endfacet + facet normal -9.961950e-01 -8.715281e-02 -0.000000e+00 + outer loop + vertex 7.795443e+01 -1.474791e+02 0.000000e+00 + vertex 7.795443e+01 -1.474791e+02 -3.000000e+00 + vertex 7.800000e+01 -1.480000e+02 0.000000e+00 + endloop + endfacet + facet normal 9.659254e-01 -2.588206e-01 0.000000e+00 + outer loop + vertex -7.640954e+01 -1.474870e+02 -6.000000e+00 + vertex -7.640954e+01 -1.474870e+02 -3.000000e+00 + vertex -7.647721e+01 -1.477395e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659254e-01 -2.588206e-01 0.000000e+00 + outer loop + vertex -7.640954e+01 -1.474870e+02 -3.000000e+00 + vertex -7.647721e+01 -1.477395e+02 -3.000000e+00 + vertex -7.647721e+01 -1.477395e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659325e-01 -2.587940e-01 -0.000000e+00 + outer loop + vertex -7.352279e+01 -1.477395e+02 -3.000000e+00 + vertex -7.359046e+01 -1.474870e+02 -6.000000e+00 + vertex -7.352279e+01 -1.477395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.359046e+01 -1.474870e+02 -6.000000e+00 + vertex 7.425000e+01 -1.467010e+02 -6.000000e+00 + vertex -7.352279e+01 -1.477395e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659325e-01 -2.587940e-01 0.000000e+00 + outer loop + vertex 7.359046e+01 -1.474870e+02 -6.000000e+00 + vertex 7.359046e+01 -1.474870e+02 -3.000000e+00 + vertex 7.352279e+01 -1.477395e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659325e-01 -2.587940e-01 0.000000e+00 + outer loop + vertex 7.359046e+01 -1.474870e+02 -3.000000e+00 + vertex 7.352279e+01 -1.477395e+02 -3.000000e+00 + vertex 7.352279e+01 -1.477395e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659254e-01 -2.588206e-01 -0.000000e+00 + outer loop + vertex 7.647721e+01 -1.477395e+02 -3.000000e+00 + vertex 7.640954e+01 -1.474870e+02 -6.000000e+00 + vertex 7.647721e+01 -1.477395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.781908e+01 -1.469739e+02 -3.000000e+00 + vertex -7.795443e+01 -1.474791e+02 -3.000000e+00 + vertex -7.647721e+01 -1.477395e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.640954e+01 -1.474870e+02 -3.000000e+00 + vertex -7.781908e+01 -1.469739e+02 -3.000000e+00 + vertex -7.647721e+01 -1.477395e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659325e-01 -2.587940e-01 -0.000000e+00 + outer loop + vertex -7.359046e+01 -1.474870e+02 -3.000000e+00 + vertex -7.359046e+01 -1.474870e+02 -6.000000e+00 + vertex -7.352279e+01 -1.477395e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.204558e+01 -1.474791e+02 -3.000000e+00 + vertex -7.359046e+01 -1.474870e+02 -3.000000e+00 + vertex -7.352279e+01 -1.477395e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.218092e+01 -1.469739e+02 -3.000000e+00 + vertex 7.204558e+01 -1.474791e+02 -3.000000e+00 + vertex 7.352279e+01 -1.477395e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.359046e+01 -1.474870e+02 -3.000000e+00 + vertex 7.218092e+01 -1.469739e+02 -3.000000e+00 + vertex 7.352279e+01 -1.477395e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659254e-01 -2.588206e-01 -0.000000e+00 + outer loop + vertex 7.640954e+01 -1.474870e+02 -3.000000e+00 + vertex 7.640954e+01 -1.474870e+02 -6.000000e+00 + vertex 7.647721e+01 -1.477395e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.795443e+01 -1.474791e+02 -3.000000e+00 + vertex 7.640954e+01 -1.474870e+02 -3.000000e+00 + vertex 7.647721e+01 -1.477395e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063119e-01 -4.226093e-01 0.000000e+00 + outer loop + vertex -7.629904e+01 -1.472500e+02 -6.000000e+00 + vertex -7.629904e+01 -1.472500e+02 -3.000000e+00 + vertex -7.640954e+01 -1.474870e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063119e-01 -4.226093e-01 0.000000e+00 + outer loop + vertex -7.629904e+01 -1.472500e+02 -3.000000e+00 + vertex -7.640954e+01 -1.474870e+02 -3.000000e+00 + vertex -7.640954e+01 -1.474870e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 -4.226327e-01 -0.000000e+00 + outer loop + vertex -7.359046e+01 -1.474870e+02 -3.000000e+00 + vertex -7.370096e+01 -1.472500e+02 -6.000000e+00 + vertex -7.359046e+01 -1.474870e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.370096e+01 -1.472500e+02 -6.000000e+00 + vertex 7.425000e+01 -1.467010e+02 -6.000000e+00 + vertex -7.359046e+01 -1.474870e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 -4.226327e-01 0.000000e+00 + outer loop + vertex 7.370096e+01 -1.472500e+02 -6.000000e+00 + vertex 7.370096e+01 -1.472500e+02 -3.000000e+00 + vertex 7.359046e+01 -1.474870e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 -4.226327e-01 0.000000e+00 + outer loop + vertex 7.370096e+01 -1.472500e+02 -3.000000e+00 + vertex 7.359046e+01 -1.474870e+02 -3.000000e+00 + vertex 7.359046e+01 -1.474870e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.629904e+01 -1.472500e+02 -6.000000e+00 + vertex 1.500000e+02 1.490000e+02 -6.000000e+00 + vertex 7.640954e+01 -1.474870e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063119e-01 -4.226093e-01 -0.000000e+00 + outer loop + vertex 7.640954e+01 -1.474870e+02 -3.000000e+00 + vertex 7.629904e+01 -1.472500e+02 -6.000000e+00 + vertex 7.640954e+01 -1.474870e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.759807e+01 -1.465000e+02 -3.000000e+00 + vertex -7.781908e+01 -1.469739e+02 -3.000000e+00 + vertex -7.640954e+01 -1.474870e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.629904e+01 -1.472500e+02 -3.000000e+00 + vertex -7.759807e+01 -1.465000e+02 -3.000000e+00 + vertex -7.640954e+01 -1.474870e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 -4.226327e-01 -0.000000e+00 + outer loop + vertex -7.370096e+01 -1.472500e+02 -3.000000e+00 + vertex -7.370096e+01 -1.472500e+02 -6.000000e+00 + vertex -7.359046e+01 -1.474870e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.218092e+01 -1.469739e+02 -3.000000e+00 + vertex -7.370096e+01 -1.472500e+02 -3.000000e+00 + vertex -7.359046e+01 -1.474870e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.204558e+01 -1.474791e+02 -3.000000e+00 + vertex -7.218092e+01 -1.469739e+02 -3.000000e+00 + vertex -7.359046e+01 -1.474870e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.240193e+01 -1.465000e+02 -3.000000e+00 + vertex 7.218092e+01 -1.469739e+02 -3.000000e+00 + vertex 7.359046e+01 -1.474870e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.370096e+01 -1.472500e+02 -3.000000e+00 + vertex 7.240193e+01 -1.465000e+02 -3.000000e+00 + vertex 7.359046e+01 -1.474870e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063119e-01 -4.226093e-01 -0.000000e+00 + outer loop + vertex 7.629904e+01 -1.472500e+02 -3.000000e+00 + vertex 7.629904e+01 -1.472500e+02 -6.000000e+00 + vertex 7.640954e+01 -1.474870e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.781908e+01 -1.469739e+02 -3.000000e+00 + vertex 7.629904e+01 -1.472500e+02 -3.000000e+00 + vertex 7.640954e+01 -1.474870e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.795443e+01 -1.474791e+02 -3.000000e+00 + vertex 7.781908e+01 -1.469739e+02 -3.000000e+00 + vertex 7.640954e+01 -1.474870e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659254e-01 -2.588206e-01 0.000000e+00 + outer loop + vertex -7.781908e+01 -1.469739e+02 -3.000000e+00 + vertex -7.781908e+01 -1.469739e+02 0.000000e+00 + vertex -7.795443e+01 -1.474791e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659254e-01 -2.588206e-01 0.000000e+00 + outer loop + vertex -7.781908e+01 -1.469739e+02 0.000000e+00 + vertex -7.795443e+01 -1.474791e+02 0.000000e+00 + vertex -7.795443e+01 -1.474791e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659290e-01 -2.588073e-01 -0.000000e+00 + outer loop + vertex -7.204558e+01 -1.474791e+02 0.000000e+00 + vertex -7.218092e+01 -1.469739e+02 -3.000000e+00 + vertex -7.204558e+01 -1.474791e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659290e-01 -2.588073e-01 0.000000e+00 + outer loop + vertex 7.218092e+01 -1.469739e+02 -3.000000e+00 + vertex 7.218092e+01 -1.469739e+02 0.000000e+00 + vertex 7.204558e+01 -1.474791e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659290e-01 -2.588073e-01 0.000000e+00 + outer loop + vertex 7.218092e+01 -1.469739e+02 0.000000e+00 + vertex 7.204558e+01 -1.474791e+02 0.000000e+00 + vertex 7.204558e+01 -1.474791e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659254e-01 -2.588206e-01 -0.000000e+00 + outer loop + vertex 7.795443e+01 -1.474791e+02 0.000000e+00 + vertex 7.781908e+01 -1.469739e+02 -3.000000e+00 + vertex 7.795443e+01 -1.474791e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659290e-01 -2.588073e-01 -0.000000e+00 + outer loop + vertex -7.218092e+01 -1.469739e+02 0.000000e+00 + vertex -7.218092e+01 -1.469739e+02 -3.000000e+00 + vertex -7.204558e+01 -1.474791e+02 0.000000e+00 + endloop + endfacet + facet normal -9.659254e-01 -2.588206e-01 -0.000000e+00 + outer loop + vertex 7.781908e+01 -1.469739e+02 0.000000e+00 + vertex 7.781908e+01 -1.469739e+02 -3.000000e+00 + vertex 7.795443e+01 -1.474791e+02 0.000000e+00 + endloop + endfacet + facet normal 8.191409e-01 -5.735924e-01 0.000000e+00 + outer loop + vertex -7.614907e+01 -1.470358e+02 -6.000000e+00 + vertex -7.614907e+01 -1.470358e+02 -3.000000e+00 + vertex -7.629904e+01 -1.472500e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191409e-01 -5.735924e-01 0.000000e+00 + outer loop + vertex -7.614907e+01 -1.470358e+02 -3.000000e+00 + vertex -7.629904e+01 -1.472500e+02 -3.000000e+00 + vertex -7.629904e+01 -1.472500e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191543e-01 -5.735733e-01 -0.000000e+00 + outer loop + vertex -7.370096e+01 -1.472500e+02 -3.000000e+00 + vertex -7.385093e+01 -1.470358e+02 -6.000000e+00 + vertex -7.370096e+01 -1.472500e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.385093e+01 -1.470358e+02 -6.000000e+00 + vertex 7.425000e+01 -1.467010e+02 -6.000000e+00 + vertex -7.370096e+01 -1.472500e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191543e-01 -5.735733e-01 0.000000e+00 + outer loop + vertex 7.385093e+01 -1.470358e+02 -6.000000e+00 + vertex 7.385093e+01 -1.470358e+02 -3.000000e+00 + vertex 7.370096e+01 -1.472500e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191543e-01 -5.735733e-01 0.000000e+00 + outer loop + vertex 7.385093e+01 -1.470358e+02 -3.000000e+00 + vertex 7.370096e+01 -1.472500e+02 -3.000000e+00 + vertex 7.370096e+01 -1.472500e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.614907e+01 -1.470358e+02 -6.000000e+00 + vertex 1.500000e+02 1.490000e+02 -6.000000e+00 + vertex 7.629904e+01 -1.472500e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191409e-01 -5.735924e-01 -0.000000e+00 + outer loop + vertex 7.629904e+01 -1.472500e+02 -3.000000e+00 + vertex 7.614907e+01 -1.470358e+02 -6.000000e+00 + vertex 7.629904e+01 -1.472500e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.729813e+01 -1.460716e+02 -3.000000e+00 + vertex -7.759807e+01 -1.465000e+02 -3.000000e+00 + vertex -7.629904e+01 -1.472500e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.614907e+01 -1.470358e+02 -3.000000e+00 + vertex -7.729813e+01 -1.460716e+02 -3.000000e+00 + vertex -7.629904e+01 -1.472500e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191543e-01 -5.735733e-01 -0.000000e+00 + outer loop + vertex -7.385093e+01 -1.470358e+02 -3.000000e+00 + vertex -7.385093e+01 -1.470358e+02 -6.000000e+00 + vertex -7.370096e+01 -1.472500e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.240193e+01 -1.465000e+02 -3.000000e+00 + vertex -7.385093e+01 -1.470358e+02 -3.000000e+00 + vertex -7.370096e+01 -1.472500e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.218092e+01 -1.469739e+02 -3.000000e+00 + vertex -7.240193e+01 -1.465000e+02 -3.000000e+00 + vertex -7.370096e+01 -1.472500e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.270186e+01 -1.460716e+02 -3.000000e+00 + vertex 7.240193e+01 -1.465000e+02 -3.000000e+00 + vertex 7.370096e+01 -1.472500e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.385093e+01 -1.470358e+02 -3.000000e+00 + vertex 7.270186e+01 -1.460716e+02 -3.000000e+00 + vertex 7.370096e+01 -1.472500e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191409e-01 -5.735924e-01 -0.000000e+00 + outer loop + vertex 7.614907e+01 -1.470358e+02 -3.000000e+00 + vertex 7.614907e+01 -1.470358e+02 -6.000000e+00 + vertex 7.629904e+01 -1.472500e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.759807e+01 -1.465000e+02 -3.000000e+00 + vertex 7.614907e+01 -1.470358e+02 -3.000000e+00 + vertex 7.629904e+01 -1.472500e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.781908e+01 -1.469739e+02 -3.000000e+00 + vertex 7.759807e+01 -1.465000e+02 -3.000000e+00 + vertex 7.629904e+01 -1.472500e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071210e-01 -7.070925e-01 0.000000e+00 + outer loop + vertex -7.596418e+01 -1.468509e+02 -6.000000e+00 + vertex -7.596418e+01 -1.468509e+02 -3.000000e+00 + vertex -7.614907e+01 -1.470358e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071210e-01 -7.070925e-01 0.000000e+00 + outer loop + vertex -7.596418e+01 -1.468509e+02 -3.000000e+00 + vertex -7.614907e+01 -1.470358e+02 -3.000000e+00 + vertex -7.614907e+01 -1.470358e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071210e-01 -7.070925e-01 -0.000000e+00 + outer loop + vertex -7.385093e+01 -1.470358e+02 -3.000000e+00 + vertex -7.403582e+01 -1.468509e+02 -6.000000e+00 + vertex -7.385093e+01 -1.470358e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.629904e+01 1.472500e+02 -6.000000e+00 + vertex 7.425000e+01 -1.467010e+02 -6.000000e+00 + vertex -7.385093e+01 -1.470358e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.403582e+01 -1.468509e+02 -6.000000e+00 + vertex -7.629904e+01 1.472500e+02 -6.000000e+00 + vertex -7.385093e+01 -1.470358e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071210e-01 -7.070925e-01 0.000000e+00 + outer loop + vertex 7.403582e+01 -1.468509e+02 -6.000000e+00 + vertex 7.403582e+01 -1.468509e+02 -3.000000e+00 + vertex 7.385093e+01 -1.470358e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071210e-01 -7.070925e-01 0.000000e+00 + outer loop + vertex 7.403582e+01 -1.468509e+02 -3.000000e+00 + vertex 7.385093e+01 -1.470358e+02 -3.000000e+00 + vertex 7.385093e+01 -1.470358e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.596418e+01 -1.468509e+02 -6.000000e+00 + vertex 1.500000e+02 1.490000e+02 -6.000000e+00 + vertex 7.614907e+01 -1.470358e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071210e-01 -7.070925e-01 -0.000000e+00 + outer loop + vertex 7.614907e+01 -1.470358e+02 -3.000000e+00 + vertex 7.596418e+01 -1.468509e+02 -6.000000e+00 + vertex 7.614907e+01 -1.470358e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.692836e+01 -1.457019e+02 -3.000000e+00 + vertex -7.729813e+01 -1.460716e+02 -3.000000e+00 + vertex -7.614907e+01 -1.470358e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.596418e+01 -1.468509e+02 -3.000000e+00 + vertex -7.692836e+01 -1.457019e+02 -3.000000e+00 + vertex -7.614907e+01 -1.470358e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071210e-01 -7.070925e-01 -0.000000e+00 + outer loop + vertex -7.403582e+01 -1.468509e+02 -3.000000e+00 + vertex -7.403582e+01 -1.468509e+02 -6.000000e+00 + vertex -7.385093e+01 -1.470358e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.270186e+01 -1.460716e+02 -3.000000e+00 + vertex -7.403582e+01 -1.468509e+02 -3.000000e+00 + vertex -7.385093e+01 -1.470358e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.240193e+01 -1.465000e+02 -3.000000e+00 + vertex -7.270186e+01 -1.460716e+02 -3.000000e+00 + vertex -7.385093e+01 -1.470358e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.307164e+01 -1.457019e+02 -3.000000e+00 + vertex 7.270186e+01 -1.460716e+02 -3.000000e+00 + vertex 7.385093e+01 -1.470358e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.403582e+01 -1.468509e+02 -3.000000e+00 + vertex 7.307164e+01 -1.457019e+02 -3.000000e+00 + vertex 7.385093e+01 -1.470358e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071210e-01 -7.070925e-01 -0.000000e+00 + outer loop + vertex 7.596418e+01 -1.468509e+02 -3.000000e+00 + vertex 7.596418e+01 -1.468509e+02 -6.000000e+00 + vertex 7.614907e+01 -1.470358e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.729813e+01 -1.460716e+02 -3.000000e+00 + vertex 7.596418e+01 -1.468509e+02 -3.000000e+00 + vertex 7.614907e+01 -1.470358e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.759807e+01 -1.465000e+02 -3.000000e+00 + vertex 7.729813e+01 -1.460716e+02 -3.000000e+00 + vertex 7.614907e+01 -1.470358e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063014e-01 -4.226320e-01 0.000000e+00 + outer loop + vertex -7.759807e+01 -1.465000e+02 -3.000000e+00 + vertex -7.759807e+01 -1.465000e+02 0.000000e+00 + vertex -7.781908e+01 -1.469739e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063014e-01 -4.226320e-01 0.000000e+00 + outer loop + vertex -7.759807e+01 -1.465000e+02 0.000000e+00 + vertex -7.781908e+01 -1.469739e+02 0.000000e+00 + vertex -7.781908e+01 -1.469739e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063014e-01 -4.226320e-01 -0.000000e+00 + outer loop + vertex -7.218092e+01 -1.469739e+02 0.000000e+00 + vertex -7.240193e+01 -1.465000e+02 -3.000000e+00 + vertex -7.218092e+01 -1.469739e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063014e-01 -4.226320e-01 0.000000e+00 + outer loop + vertex 7.240193e+01 -1.465000e+02 -3.000000e+00 + vertex 7.240193e+01 -1.465000e+02 0.000000e+00 + vertex 7.218092e+01 -1.469739e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063014e-01 -4.226320e-01 0.000000e+00 + outer loop + vertex 7.240193e+01 -1.465000e+02 0.000000e+00 + vertex 7.218092e+01 -1.469739e+02 0.000000e+00 + vertex 7.218092e+01 -1.469739e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063014e-01 -4.226320e-01 -0.000000e+00 + outer loop + vertex 7.781908e+01 -1.469739e+02 0.000000e+00 + vertex 7.759807e+01 -1.465000e+02 -3.000000e+00 + vertex 7.781908e+01 -1.469739e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.447906e+01 1.450456e+02 0.000000e+00 + vertex -7.240193e+01 -1.465000e+02 0.000000e+00 + vertex -7.218092e+01 -1.469739e+02 0.000000e+00 + endloop + endfacet + facet normal -9.063014e-01 -4.226320e-01 -0.000000e+00 + outer loop + vertex -7.240193e+01 -1.465000e+02 0.000000e+00 + vertex -7.240193e+01 -1.465000e+02 -3.000000e+00 + vertex -7.218092e+01 -1.469739e+02 0.000000e+00 + endloop + endfacet + facet normal -9.063014e-01 -4.226320e-01 -0.000000e+00 + outer loop + vertex 7.759807e+01 -1.465000e+02 0.000000e+00 + vertex 7.759807e+01 -1.465000e+02 -3.000000e+00 + vertex 7.781908e+01 -1.469739e+02 0.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 -8.191636e-01 0.000000e+00 + outer loop + vertex -7.575000e+01 -1.467010e+02 -6.000000e+00 + vertex -7.575000e+01 -1.467010e+02 -3.000000e+00 + vertex -7.596418e+01 -1.468509e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 -8.191636e-01 0.000000e+00 + outer loop + vertex -7.575000e+01 -1.467010e+02 -3.000000e+00 + vertex -7.596418e+01 -1.468509e+02 -3.000000e+00 + vertex -7.596418e+01 -1.468509e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 -8.191636e-01 -0.000000e+00 + outer loop + vertex -7.403582e+01 -1.468509e+02 -3.000000e+00 + vertex -7.425000e+01 -1.467010e+02 -6.000000e+00 + vertex -7.403582e+01 -1.468509e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.425000e+01 -1.467010e+02 -6.000000e+00 + vertex -7.629904e+01 1.472500e+02 -6.000000e+00 + vertex -7.403582e+01 -1.468509e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 -8.191636e-01 0.000000e+00 + outer loop + vertex 7.425000e+01 -1.467010e+02 -6.000000e+00 + vertex 7.425000e+01 -1.467010e+02 -3.000000e+00 + vertex 7.403582e+01 -1.468509e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 -8.191636e-01 0.000000e+00 + outer loop + vertex 7.425000e+01 -1.467010e+02 -3.000000e+00 + vertex 7.403582e+01 -1.468509e+02 -3.000000e+00 + vertex 7.403582e+01 -1.468509e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.575000e+01 -1.467010e+02 -6.000000e+00 + vertex 1.500000e+02 1.490000e+02 -6.000000e+00 + vertex 7.596418e+01 -1.468509e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 -8.191636e-01 -0.000000e+00 + outer loop + vertex 7.596418e+01 -1.468509e+02 -3.000000e+00 + vertex 7.575000e+01 -1.467010e+02 -6.000000e+00 + vertex 7.596418e+01 -1.468509e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 -1.454019e+02 -3.000000e+00 + vertex -7.692836e+01 -1.457019e+02 -3.000000e+00 + vertex -7.596418e+01 -1.468509e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.575000e+01 -1.467010e+02 -3.000000e+00 + vertex -7.650000e+01 -1.454019e+02 -3.000000e+00 + vertex -7.596418e+01 -1.468509e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 -8.191636e-01 -0.000000e+00 + outer loop + vertex -7.425000e+01 -1.467010e+02 -3.000000e+00 + vertex -7.425000e+01 -1.467010e+02 -6.000000e+00 + vertex -7.403582e+01 -1.468509e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.307164e+01 -1.457019e+02 -3.000000e+00 + vertex -7.425000e+01 -1.467010e+02 -3.000000e+00 + vertex -7.403582e+01 -1.468509e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.270186e+01 -1.460716e+02 -3.000000e+00 + vertex -7.307164e+01 -1.457019e+02 -3.000000e+00 + vertex -7.403582e+01 -1.468509e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 -1.454019e+02 -3.000000e+00 + vertex 7.307164e+01 -1.457019e+02 -3.000000e+00 + vertex 7.403582e+01 -1.468509e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.425000e+01 -1.467010e+02 -3.000000e+00 + vertex 7.350000e+01 -1.454019e+02 -3.000000e+00 + vertex 7.403582e+01 -1.468509e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 -8.191636e-01 -0.000000e+00 + outer loop + vertex 7.575000e+01 -1.467010e+02 -3.000000e+00 + vertex 7.575000e+01 -1.467010e+02 -6.000000e+00 + vertex 7.596418e+01 -1.468509e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.692836e+01 -1.457019e+02 -3.000000e+00 + vertex 7.575000e+01 -1.467010e+02 -3.000000e+00 + vertex 7.596418e+01 -1.468509e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.729813e+01 -1.460716e+02 -3.000000e+00 + vertex 7.692836e+01 -1.457019e+02 -3.000000e+00 + vertex 7.596418e+01 -1.468509e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 -9.063010e-01 0.000000e+00 + outer loop + vertex -7.551303e+01 -1.465905e+02 -6.000000e+00 + vertex -7.551303e+01 -1.465905e+02 -3.000000e+00 + vertex -7.575000e+01 -1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 -9.063010e-01 0.000000e+00 + outer loop + vertex -7.551303e+01 -1.465905e+02 -3.000000e+00 + vertex -7.575000e+01 -1.467010e+02 -3.000000e+00 + vertex -7.575000e+01 -1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.500000e+02 1.490000e+02 -6.000000e+00 + vertex -7.551303e+01 -1.465905e+02 -6.000000e+00 + vertex -7.575000e+01 -1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 -9.063010e-01 -0.000000e+00 + outer loop + vertex -7.425000e+01 -1.467010e+02 -3.000000e+00 + vertex -7.448697e+01 -1.465905e+02 -6.000000e+00 + vertex -7.425000e+01 -1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.640954e+01 1.474870e+02 -6.000000e+00 + vertex -7.629904e+01 1.472500e+02 -6.000000e+00 + vertex -7.425000e+01 -1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.448697e+01 -1.465905e+02 -6.000000e+00 + vertex -7.640954e+01 1.474870e+02 -6.000000e+00 + vertex -7.425000e+01 -1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.629904e+01 1.472500e+02 -6.000000e+00 + vertex 7.448697e+01 -1.465905e+02 -6.000000e+00 + vertex 7.425000e+01 -1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 -9.063010e-01 0.000000e+00 + outer loop + vertex 7.448697e+01 -1.465905e+02 -6.000000e+00 + vertex 7.448697e+01 -1.465905e+02 -3.000000e+00 + vertex 7.425000e+01 -1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 -9.063010e-01 0.000000e+00 + outer loop + vertex 7.448697e+01 -1.465905e+02 -3.000000e+00 + vertex 7.425000e+01 -1.467010e+02 -3.000000e+00 + vertex 7.425000e+01 -1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.575000e+01 1.467010e+02 -6.000000e+00 + vertex -7.551303e+01 1.465905e+02 -6.000000e+00 + vertex 7.575000e+01 -1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.385093e+01 1.470358e+02 -6.000000e+00 + vertex 7.403582e+01 1.468509e+02 -6.000000e+00 + vertex 7.575000e+01 -1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.403582e+01 1.468509e+02 -6.000000e+00 + vertex 7.425000e+01 1.467010e+02 -6.000000e+00 + vertex 7.575000e+01 -1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.425000e+01 1.467010e+02 -6.000000e+00 + vertex 7.448697e+01 1.465905e+02 -6.000000e+00 + vertex 7.575000e+01 -1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.551303e+01 -1.465905e+02 -6.000000e+00 + vertex -7.614907e+01 1.470358e+02 -6.000000e+00 + vertex 7.575000e+01 -1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.614907e+01 1.470358e+02 -6.000000e+00 + vertex -7.596418e+01 1.468509e+02 -6.000000e+00 + vertex 7.575000e+01 -1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.596418e+01 1.468509e+02 -6.000000e+00 + vertex -7.575000e+01 1.467010e+02 -6.000000e+00 + vertex 7.575000e+01 -1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.551303e+01 1.465905e+02 -6.000000e+00 + vertex -7.526048e+01 1.465228e+02 -6.000000e+00 + vertex 7.575000e+01 -1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.526048e+01 1.465228e+02 -6.000000e+00 + vertex -7.500000e+01 1.465000e+02 -6.000000e+00 + vertex 7.575000e+01 -1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.500000e+01 1.465000e+02 -6.000000e+00 + vertex 7.385093e+01 1.470358e+02 -6.000000e+00 + vertex 7.575000e+01 -1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 1.499848e+02 1.491736e+02 -6.000000e+00 + vertex 1.500000e+02 1.490000e+02 -6.000000e+00 + vertex 7.575000e+01 -1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.448697e+01 1.465905e+02 -6.000000e+00 + vertex 7.473953e+01 1.465228e+02 -6.000000e+00 + vertex 7.575000e+01 -1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.473953e+01 1.465228e+02 -6.000000e+00 + vertex 7.500000e+01 1.465000e+02 -6.000000e+00 + vertex 7.575000e+01 -1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.500000e+01 1.465000e+02 -6.000000e+00 + vertex 1.499848e+02 1.491736e+02 -6.000000e+00 + vertex 7.575000e+01 -1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 -9.063010e-01 -0.000000e+00 + outer loop + vertex 7.575000e+01 -1.467010e+02 -3.000000e+00 + vertex 7.551303e+01 -1.465905e+02 -6.000000e+00 + vertex 7.575000e+01 -1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.602606e+01 -1.451809e+02 -3.000000e+00 + vertex -7.650000e+01 -1.454019e+02 -3.000000e+00 + vertex -7.575000e+01 -1.467010e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.551303e+01 -1.465905e+02 -3.000000e+00 + vertex -7.602606e+01 -1.451809e+02 -3.000000e+00 + vertex -7.575000e+01 -1.467010e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 -9.063010e-01 -0.000000e+00 + outer loop + vertex -7.448697e+01 -1.465905e+02 -3.000000e+00 + vertex -7.448697e+01 -1.465905e+02 -6.000000e+00 + vertex -7.425000e+01 -1.467010e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.350000e+01 -1.454019e+02 -3.000000e+00 + vertex -7.448697e+01 -1.465905e+02 -3.000000e+00 + vertex -7.425000e+01 -1.467010e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.307164e+01 -1.457019e+02 -3.000000e+00 + vertex -7.350000e+01 -1.454019e+02 -3.000000e+00 + vertex -7.425000e+01 -1.467010e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.397394e+01 -1.451809e+02 -3.000000e+00 + vertex 7.350000e+01 -1.454019e+02 -3.000000e+00 + vertex 7.425000e+01 -1.467010e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.448697e+01 -1.465905e+02 -3.000000e+00 + vertex 7.397394e+01 -1.451809e+02 -3.000000e+00 + vertex 7.425000e+01 -1.467010e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 -9.063010e-01 -0.000000e+00 + outer loop + vertex 7.551303e+01 -1.465905e+02 -3.000000e+00 + vertex 7.551303e+01 -1.465905e+02 -6.000000e+00 + vertex 7.575000e+01 -1.467010e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.650000e+01 -1.454019e+02 -3.000000e+00 + vertex 7.551303e+01 -1.465905e+02 -3.000000e+00 + vertex 7.575000e+01 -1.467010e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.692836e+01 -1.457019e+02 -3.000000e+00 + vertex 7.650000e+01 -1.454019e+02 -3.000000e+00 + vertex 7.575000e+01 -1.467010e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588011e-01 -9.659306e-01 0.000000e+00 + outer loop + vertex -7.526048e+01 -1.465228e+02 -6.000000e+00 + vertex -7.526048e+01 -1.465228e+02 -3.000000e+00 + vertex -7.551303e+01 -1.465905e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588011e-01 -9.659306e-01 0.000000e+00 + outer loop + vertex -7.526048e+01 -1.465228e+02 -3.000000e+00 + vertex -7.551303e+01 -1.465905e+02 -3.000000e+00 + vertex -7.551303e+01 -1.465905e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.500000e+02 1.490000e+02 -6.000000e+00 + vertex -7.526048e+01 -1.465228e+02 -6.000000e+00 + vertex -7.551303e+01 -1.465905e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.587940e-01 -9.659325e-01 -0.000000e+00 + outer loop + vertex -7.448697e+01 -1.465905e+02 -3.000000e+00 + vertex -7.473953e+01 -1.465228e+02 -6.000000e+00 + vertex -7.448697e+01 -1.465905e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.500000e+02 1.490000e+02 -6.000000e+00 + vertex -7.640954e+01 1.474870e+02 -6.000000e+00 + vertex -7.448697e+01 -1.465905e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.473953e+01 -1.465228e+02 -6.000000e+00 + vertex -1.500000e+02 1.490000e+02 -6.000000e+00 + vertex -7.448697e+01 -1.465905e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.629904e+01 1.472500e+02 -6.000000e+00 + vertex 7.473953e+01 -1.465228e+02 -6.000000e+00 + vertex 7.448697e+01 -1.465905e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.587940e-01 -9.659325e-01 0.000000e+00 + outer loop + vertex 7.473953e+01 -1.465228e+02 -6.000000e+00 + vertex 7.473953e+01 -1.465228e+02 -3.000000e+00 + vertex 7.448697e+01 -1.465905e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.587940e-01 -9.659325e-01 0.000000e+00 + outer loop + vertex 7.473953e+01 -1.465228e+02 -3.000000e+00 + vertex 7.448697e+01 -1.465905e+02 -3.000000e+00 + vertex 7.448697e+01 -1.465905e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.526048e+01 -1.465228e+02 -6.000000e+00 + vertex -7.629904e+01 1.472500e+02 -6.000000e+00 + vertex 7.551303e+01 -1.465905e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.629904e+01 1.472500e+02 -6.000000e+00 + vertex -7.614907e+01 1.470358e+02 -6.000000e+00 + vertex 7.551303e+01 -1.465905e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588011e-01 -9.659306e-01 -0.000000e+00 + outer loop + vertex 7.551303e+01 -1.465905e+02 -3.000000e+00 + vertex 7.526048e+01 -1.465228e+02 -6.000000e+00 + vertex 7.551303e+01 -1.465905e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.552095e+01 -1.450456e+02 -3.000000e+00 + vertex -7.602606e+01 -1.451809e+02 -3.000000e+00 + vertex -7.551303e+01 -1.465905e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.526048e+01 -1.465228e+02 -3.000000e+00 + vertex -7.552095e+01 -1.450456e+02 -3.000000e+00 + vertex -7.551303e+01 -1.465905e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.587940e-01 -9.659325e-01 -0.000000e+00 + outer loop + vertex -7.473953e+01 -1.465228e+02 -3.000000e+00 + vertex -7.473953e+01 -1.465228e+02 -6.000000e+00 + vertex -7.448697e+01 -1.465905e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.397394e+01 -1.451809e+02 -3.000000e+00 + vertex -7.473953e+01 -1.465228e+02 -3.000000e+00 + vertex -7.448697e+01 -1.465905e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.350000e+01 -1.454019e+02 -3.000000e+00 + vertex -7.397394e+01 -1.451809e+02 -3.000000e+00 + vertex -7.448697e+01 -1.465905e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.447906e+01 -1.450456e+02 -3.000000e+00 + vertex 7.397394e+01 -1.451809e+02 -3.000000e+00 + vertex 7.448697e+01 -1.465905e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.473953e+01 -1.465228e+02 -3.000000e+00 + vertex 7.447906e+01 -1.450456e+02 -3.000000e+00 + vertex 7.448697e+01 -1.465905e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588011e-01 -9.659306e-01 -0.000000e+00 + outer loop + vertex 7.526048e+01 -1.465228e+02 -3.000000e+00 + vertex 7.526048e+01 -1.465228e+02 -6.000000e+00 + vertex 7.551303e+01 -1.465905e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.602606e+01 -1.451809e+02 -3.000000e+00 + vertex 7.526048e+01 -1.465228e+02 -3.000000e+00 + vertex 7.551303e+01 -1.465905e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.650000e+01 -1.454019e+02 -3.000000e+00 + vertex 7.602606e+01 -1.451809e+02 -3.000000e+00 + vertex 7.551303e+01 -1.465905e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.713867e-02 -9.961962e-01 0.000000e+00 + outer loop + vertex -7.500000e+01 -1.465000e+02 -6.000000e+00 + vertex -7.500000e+01 -1.465000e+02 -3.000000e+00 + vertex -7.526048e+01 -1.465228e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.713867e-02 -9.961962e-01 0.000000e+00 + outer loop + vertex -7.500000e+01 -1.465000e+02 -3.000000e+00 + vertex -7.526048e+01 -1.465228e+02 -3.000000e+00 + vertex -7.526048e+01 -1.465228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.500000e+02 1.490000e+02 -6.000000e+00 + vertex -7.500000e+01 -1.465000e+02 -6.000000e+00 + vertex -7.526048e+01 -1.465228e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.713867e-02 -9.961962e-01 -0.000000e+00 + outer loop + vertex -7.473953e+01 -1.465228e+02 -3.000000e+00 + vertex -7.500000e+01 -1.465000e+02 -6.000000e+00 + vertex -7.473953e+01 -1.465228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.500000e+01 -1.465000e+02 -6.000000e+00 + vertex -1.500000e+02 1.490000e+02 -6.000000e+00 + vertex -7.473953e+01 -1.465228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.629904e+01 1.472500e+02 -6.000000e+00 + vertex 7.500000e+01 -1.465000e+02 -6.000000e+00 + vertex 7.473953e+01 -1.465228e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.713867e-02 -9.961962e-01 0.000000e+00 + outer loop + vertex 7.500000e+01 -1.465000e+02 -6.000000e+00 + vertex 7.500000e+01 -1.465000e+02 -3.000000e+00 + vertex 7.473953e+01 -1.465228e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.713867e-02 -9.961962e-01 0.000000e+00 + outer loop + vertex 7.500000e+01 -1.465000e+02 -3.000000e+00 + vertex 7.473953e+01 -1.465228e+02 -3.000000e+00 + vertex 7.473953e+01 -1.465228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.500000e+01 -1.465000e+02 -6.000000e+00 + vertex -7.629904e+01 1.472500e+02 -6.000000e+00 + vertex 7.526048e+01 -1.465228e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.713867e-02 -9.961962e-01 -0.000000e+00 + outer loop + vertex 7.526048e+01 -1.465228e+02 -3.000000e+00 + vertex 7.500000e+01 -1.465000e+02 -6.000000e+00 + vertex 7.526048e+01 -1.465228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.500000e+01 -1.450000e+02 -3.000000e+00 + vertex -7.552095e+01 -1.450456e+02 -3.000000e+00 + vertex -7.526048e+01 -1.465228e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.500000e+01 -1.465000e+02 -3.000000e+00 + vertex -7.500000e+01 -1.450000e+02 -3.000000e+00 + vertex -7.526048e+01 -1.465228e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.713867e-02 -9.961962e-01 -0.000000e+00 + outer loop + vertex -7.500000e+01 -1.465000e+02 -3.000000e+00 + vertex -7.500000e+01 -1.465000e+02 -6.000000e+00 + vertex -7.473953e+01 -1.465228e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.447906e+01 -1.450456e+02 -3.000000e+00 + vertex -7.500000e+01 -1.465000e+02 -3.000000e+00 + vertex -7.473953e+01 -1.465228e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.397394e+01 -1.451809e+02 -3.000000e+00 + vertex -7.447906e+01 -1.450456e+02 -3.000000e+00 + vertex -7.473953e+01 -1.465228e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.500000e+01 -1.450000e+02 -3.000000e+00 + vertex 7.447906e+01 -1.450456e+02 -3.000000e+00 + vertex 7.473953e+01 -1.465228e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.500000e+01 -1.465000e+02 -3.000000e+00 + vertex 7.500000e+01 -1.450000e+02 -3.000000e+00 + vertex 7.473953e+01 -1.465228e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.713867e-02 -9.961962e-01 -0.000000e+00 + outer loop + vertex 7.500000e+01 -1.465000e+02 -3.000000e+00 + vertex 7.500000e+01 -1.465000e+02 -6.000000e+00 + vertex 7.526048e+01 -1.465228e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.552095e+01 -1.450456e+02 -3.000000e+00 + vertex 7.500000e+01 -1.465000e+02 -3.000000e+00 + vertex 7.526048e+01 -1.465228e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.602606e+01 -1.451809e+02 -3.000000e+00 + vertex 7.552095e+01 -1.450456e+02 -3.000000e+00 + vertex 7.526048e+01 -1.465228e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191569e-01 -5.735694e-01 0.000000e+00 + outer loop + vertex -7.729813e+01 -1.460716e+02 -3.000000e+00 + vertex -7.729813e+01 -1.460716e+02 0.000000e+00 + vertex -7.759807e+01 -1.465000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191569e-01 -5.735694e-01 0.000000e+00 + outer loop + vertex -7.729813e+01 -1.460716e+02 0.000000e+00 + vertex -7.759807e+01 -1.465000e+02 0.000000e+00 + vertex -7.759807e+01 -1.465000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.447906e+01 -1.450456e+02 -3.000000e+00 + vertex -7.500000e+01 -1.450000e+02 -3.000000e+00 + vertex -7.500000e+01 -1.465000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191569e-01 -5.735694e-01 -0.000000e+00 + outer loop + vertex -7.240193e+01 -1.465000e+02 0.000000e+00 + vertex -7.270186e+01 -1.460716e+02 -3.000000e+00 + vertex -7.240193e+01 -1.465000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191569e-01 -5.735694e-01 0.000000e+00 + outer loop + vertex 7.270186e+01 -1.460716e+02 -3.000000e+00 + vertex 7.270186e+01 -1.460716e+02 0.000000e+00 + vertex 7.240193e+01 -1.465000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191569e-01 -5.735694e-01 0.000000e+00 + outer loop + vertex 7.270186e+01 -1.460716e+02 0.000000e+00 + vertex 7.240193e+01 -1.465000e+02 0.000000e+00 + vertex 7.240193e+01 -1.465000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.552095e+01 -1.450456e+02 -3.000000e+00 + vertex 7.500000e+01 -1.450000e+02 -3.000000e+00 + vertex 7.500000e+01 -1.465000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191569e-01 -5.735694e-01 -0.000000e+00 + outer loop + vertex 7.759807e+01 -1.465000e+02 0.000000e+00 + vertex 7.729813e+01 -1.460716e+02 -3.000000e+00 + vertex 7.759807e+01 -1.465000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.447906e+01 1.450456e+02 0.000000e+00 + vertex -7.270186e+01 -1.460716e+02 0.000000e+00 + vertex -7.240193e+01 -1.465000e+02 0.000000e+00 + endloop + endfacet + facet normal -8.191569e-01 -5.735694e-01 -0.000000e+00 + outer loop + vertex -7.270186e+01 -1.460716e+02 0.000000e+00 + vertex -7.270186e+01 -1.460716e+02 -3.000000e+00 + vertex -7.240193e+01 -1.465000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.270186e+01 -1.460716e+02 0.000000e+00 + vertex -7.447906e+01 1.450456e+02 0.000000e+00 + vertex 7.240193e+01 -1.465000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.350000e+01 1.454019e+02 0.000000e+00 + vertex 7.729813e+01 -1.460716e+02 0.000000e+00 + vertex 7.759807e+01 -1.465000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.552095e+01 1.450456e+02 0.000000e+00 + vertex 7.500000e+01 1.450000e+02 0.000000e+00 + vertex 7.759807e+01 -1.465000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.500000e+01 1.450000e+02 0.000000e+00 + vertex 7.447906e+01 1.450456e+02 0.000000e+00 + vertex 7.759807e+01 -1.465000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.447906e+01 1.450456e+02 0.000000e+00 + vertex 7.397394e+01 1.451809e+02 0.000000e+00 + vertex 7.759807e+01 -1.465000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.397394e+01 1.451809e+02 0.000000e+00 + vertex 7.350000e+01 1.454019e+02 0.000000e+00 + vertex 7.759807e+01 -1.465000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 1.454019e+02 0.000000e+00 + vertex 7.307164e+01 1.457019e+02 0.000000e+00 + vertex 7.759807e+01 -1.465000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.307164e+01 1.457019e+02 0.000000e+00 + vertex -7.350000e+01 1.454019e+02 0.000000e+00 + vertex 7.759807e+01 -1.465000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.650000e+01 1.454019e+02 0.000000e+00 + vertex 7.602606e+01 1.451809e+02 0.000000e+00 + vertex 7.759807e+01 -1.465000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.602606e+01 1.451809e+02 0.000000e+00 + vertex 7.552095e+01 1.450456e+02 0.000000e+00 + vertex 7.759807e+01 -1.465000e+02 0.000000e+00 + endloop + endfacet + facet normal -8.191569e-01 -5.735694e-01 -0.000000e+00 + outer loop + vertex 7.729813e+01 -1.460716e+02 0.000000e+00 + vertex 7.729813e+01 -1.460716e+02 -3.000000e+00 + vertex 7.759807e+01 -1.465000e+02 0.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex -7.692836e+01 -1.457019e+02 -3.000000e+00 + vertex -7.692836e+01 -1.457019e+02 0.000000e+00 + vertex -7.729813e+01 -1.460716e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex -7.692836e+01 -1.457019e+02 0.000000e+00 + vertex -7.729813e+01 -1.460716e+02 0.000000e+00 + vertex -7.729813e+01 -1.460716e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex -7.270186e+01 -1.460716e+02 0.000000e+00 + vertex -7.307164e+01 -1.457019e+02 -3.000000e+00 + vertex -7.270186e+01 -1.460716e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex 7.307164e+01 -1.457019e+02 -3.000000e+00 + vertex 7.307164e+01 -1.457019e+02 0.000000e+00 + vertex 7.270186e+01 -1.460716e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex 7.307164e+01 -1.457019e+02 0.000000e+00 + vertex 7.270186e+01 -1.460716e+02 0.000000e+00 + vertex 7.270186e+01 -1.460716e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex 7.729813e+01 -1.460716e+02 0.000000e+00 + vertex 7.692836e+01 -1.457019e+02 -3.000000e+00 + vertex 7.729813e+01 -1.460716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.692836e+01 -1.457019e+02 0.000000e+00 + vertex -7.552095e+01 1.450456e+02 0.000000e+00 + vertex -7.729813e+01 -1.460716e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.447906e+01 1.450456e+02 0.000000e+00 + vertex -7.307164e+01 -1.457019e+02 0.000000e+00 + vertex -7.270186e+01 -1.460716e+02 0.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex -7.307164e+01 -1.457019e+02 0.000000e+00 + vertex -7.307164e+01 -1.457019e+02 -3.000000e+00 + vertex -7.270186e+01 -1.460716e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.307164e+01 -1.457019e+02 0.000000e+00 + vertex -7.447906e+01 1.450456e+02 0.000000e+00 + vertex 7.270186e+01 -1.460716e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.350000e+01 1.454019e+02 0.000000e+00 + vertex 7.692836e+01 -1.457019e+02 0.000000e+00 + vertex 7.729813e+01 -1.460716e+02 0.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex 7.692836e+01 -1.457019e+02 0.000000e+00 + vertex 7.692836e+01 -1.457019e+02 -3.000000e+00 + vertex 7.729813e+01 -1.460716e+02 0.000000e+00 + endloop + endfacet + facet normal 5.735790e-01 -8.191503e-01 0.000000e+00 + outer loop + vertex -7.650000e+01 -1.454019e+02 -3.000000e+00 + vertex -7.650000e+01 -1.454019e+02 0.000000e+00 + vertex -7.692836e+01 -1.457019e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735790e-01 -8.191503e-01 0.000000e+00 + outer loop + vertex -7.650000e+01 -1.454019e+02 0.000000e+00 + vertex -7.692836e+01 -1.457019e+02 0.000000e+00 + vertex -7.692836e+01 -1.457019e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735790e-01 -8.191503e-01 -0.000000e+00 + outer loop + vertex -7.307164e+01 -1.457019e+02 0.000000e+00 + vertex -7.350000e+01 -1.454019e+02 -3.000000e+00 + vertex -7.307164e+01 -1.457019e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735790e-01 -8.191503e-01 0.000000e+00 + outer loop + vertex 7.350000e+01 -1.454019e+02 -3.000000e+00 + vertex 7.350000e+01 -1.454019e+02 0.000000e+00 + vertex 7.307164e+01 -1.457019e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735790e-01 -8.191503e-01 0.000000e+00 + outer loop + vertex 7.350000e+01 -1.454019e+02 0.000000e+00 + vertex 7.307164e+01 -1.457019e+02 0.000000e+00 + vertex 7.307164e+01 -1.457019e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735790e-01 -8.191503e-01 -0.000000e+00 + outer loop + vertex 7.692836e+01 -1.457019e+02 0.000000e+00 + vertex 7.650000e+01 -1.454019e+02 -3.000000e+00 + vertex 7.692836e+01 -1.457019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 -1.454019e+02 0.000000e+00 + vertex -7.552095e+01 1.450456e+02 0.000000e+00 + vertex -7.692836e+01 -1.457019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.447906e+01 1.450456e+02 0.000000e+00 + vertex -7.350000e+01 -1.454019e+02 0.000000e+00 + vertex -7.307164e+01 -1.457019e+02 0.000000e+00 + endloop + endfacet + facet normal -5.735790e-01 -8.191503e-01 -0.000000e+00 + outer loop + vertex -7.350000e+01 -1.454019e+02 0.000000e+00 + vertex -7.350000e+01 -1.454019e+02 -3.000000e+00 + vertex -7.307164e+01 -1.457019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 -1.454019e+02 0.000000e+00 + vertex -7.350000e+01 1.454019e+02 0.000000e+00 + vertex 7.307164e+01 -1.457019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.350000e+01 1.454019e+02 0.000000e+00 + vertex -7.397394e+01 1.451809e+02 0.000000e+00 + vertex 7.307164e+01 -1.457019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.397394e+01 1.451809e+02 0.000000e+00 + vertex -7.447906e+01 1.450456e+02 0.000000e+00 + vertex 7.307164e+01 -1.457019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.350000e+01 1.454019e+02 0.000000e+00 + vertex 7.650000e+01 -1.454019e+02 0.000000e+00 + vertex 7.692836e+01 -1.457019e+02 0.000000e+00 + endloop + endfacet + facet normal -5.735790e-01 -8.191503e-01 -0.000000e+00 + outer loop + vertex 7.650000e+01 -1.454019e+02 0.000000e+00 + vertex 7.650000e+01 -1.454019e+02 -3.000000e+00 + vertex 7.692836e+01 -1.457019e+02 0.000000e+00 + endloop + endfacet + facet normal 4.226148e-01 -9.063094e-01 0.000000e+00 + outer loop + vertex -7.602606e+01 -1.451809e+02 -3.000000e+00 + vertex -7.602606e+01 -1.451809e+02 0.000000e+00 + vertex -7.650000e+01 -1.454019e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226148e-01 -9.063094e-01 0.000000e+00 + outer loop + vertex -7.602606e+01 -1.451809e+02 0.000000e+00 + vertex -7.650000e+01 -1.454019e+02 0.000000e+00 + vertex -7.650000e+01 -1.454019e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226148e-01 -9.063094e-01 -0.000000e+00 + outer loop + vertex -7.350000e+01 -1.454019e+02 0.000000e+00 + vertex -7.397394e+01 -1.451809e+02 -3.000000e+00 + vertex -7.350000e+01 -1.454019e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226148e-01 -9.063094e-01 0.000000e+00 + outer loop + vertex 7.397394e+01 -1.451809e+02 -3.000000e+00 + vertex 7.397394e+01 -1.451809e+02 0.000000e+00 + vertex 7.350000e+01 -1.454019e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226148e-01 -9.063094e-01 0.000000e+00 + outer loop + vertex 7.397394e+01 -1.451809e+02 0.000000e+00 + vertex 7.350000e+01 -1.454019e+02 0.000000e+00 + vertex 7.350000e+01 -1.454019e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226148e-01 -9.063094e-01 -0.000000e+00 + outer loop + vertex 7.650000e+01 -1.454019e+02 0.000000e+00 + vertex 7.602606e+01 -1.451809e+02 -3.000000e+00 + vertex 7.650000e+01 -1.454019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.602606e+01 -1.451809e+02 0.000000e+00 + vertex -7.552095e+01 1.450456e+02 0.000000e+00 + vertex -7.650000e+01 -1.454019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.447906e+01 1.450456e+02 0.000000e+00 + vertex -7.397394e+01 -1.451809e+02 0.000000e+00 + vertex -7.350000e+01 -1.454019e+02 0.000000e+00 + endloop + endfacet + facet normal -4.226148e-01 -9.063094e-01 -0.000000e+00 + outer loop + vertex -7.397394e+01 -1.451809e+02 0.000000e+00 + vertex -7.397394e+01 -1.451809e+02 -3.000000e+00 + vertex -7.350000e+01 -1.454019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.397394e+01 -1.451809e+02 0.000000e+00 + vertex -7.350000e+01 1.454019e+02 0.000000e+00 + vertex 7.350000e+01 -1.454019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.350000e+01 1.454019e+02 0.000000e+00 + vertex 7.602606e+01 -1.451809e+02 0.000000e+00 + vertex 7.650000e+01 -1.454019e+02 0.000000e+00 + endloop + endfacet + facet normal -4.226148e-01 -9.063094e-01 -0.000000e+00 + outer loop + vertex 7.602606e+01 -1.451809e+02 0.000000e+00 + vertex 7.602606e+01 -1.451809e+02 -3.000000e+00 + vertex 7.650000e+01 -1.454019e+02 0.000000e+00 + endloop + endfacet + facet normal 2.588242e-01 -9.659245e-01 0.000000e+00 + outer loop + vertex -7.552095e+01 -1.450456e+02 -3.000000e+00 + vertex -7.552095e+01 -1.450456e+02 0.000000e+00 + vertex -7.602606e+01 -1.451809e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588242e-01 -9.659245e-01 0.000000e+00 + outer loop + vertex -7.552095e+01 -1.450456e+02 0.000000e+00 + vertex -7.602606e+01 -1.451809e+02 0.000000e+00 + vertex -7.602606e+01 -1.451809e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588206e-01 -9.659254e-01 -0.000000e+00 + outer loop + vertex -7.397394e+01 -1.451809e+02 0.000000e+00 + vertex -7.447906e+01 -1.450456e+02 -3.000000e+00 + vertex -7.397394e+01 -1.451809e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588206e-01 -9.659254e-01 0.000000e+00 + outer loop + vertex 7.447906e+01 -1.450456e+02 -3.000000e+00 + vertex 7.447906e+01 -1.450456e+02 0.000000e+00 + vertex 7.397394e+01 -1.451809e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588206e-01 -9.659254e-01 0.000000e+00 + outer loop + vertex 7.447906e+01 -1.450456e+02 0.000000e+00 + vertex 7.397394e+01 -1.451809e+02 0.000000e+00 + vertex 7.397394e+01 -1.451809e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588242e-01 -9.659245e-01 -0.000000e+00 + outer loop + vertex 7.602606e+01 -1.451809e+02 0.000000e+00 + vertex 7.552095e+01 -1.450456e+02 -3.000000e+00 + vertex 7.602606e+01 -1.451809e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.500000e+01 1.450000e+02 0.000000e+00 + vertex -7.552095e+01 1.450456e+02 0.000000e+00 + vertex -7.602606e+01 -1.451809e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.447906e+01 1.450456e+02 0.000000e+00 + vertex -7.500000e+01 1.450000e+02 0.000000e+00 + vertex -7.602606e+01 -1.451809e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.552095e+01 -1.450456e+02 0.000000e+00 + vertex -7.447906e+01 1.450456e+02 0.000000e+00 + vertex -7.602606e+01 -1.451809e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.447906e+01 1.450456e+02 0.000000e+00 + vertex -7.447906e+01 -1.450456e+02 0.000000e+00 + vertex -7.397394e+01 -1.451809e+02 0.000000e+00 + endloop + endfacet + facet normal -2.588206e-01 -9.659254e-01 -0.000000e+00 + outer loop + vertex -7.447906e+01 -1.450456e+02 0.000000e+00 + vertex -7.447906e+01 -1.450456e+02 -3.000000e+00 + vertex -7.397394e+01 -1.451809e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.447906e+01 -1.450456e+02 0.000000e+00 + vertex -7.350000e+01 1.454019e+02 0.000000e+00 + vertex 7.397394e+01 -1.451809e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.350000e+01 1.454019e+02 0.000000e+00 + vertex 7.552095e+01 -1.450456e+02 0.000000e+00 + vertex 7.602606e+01 -1.451809e+02 0.000000e+00 + endloop + endfacet + facet normal -2.588242e-01 -9.659245e-01 -0.000000e+00 + outer loop + vertex 7.552095e+01 -1.450456e+02 0.000000e+00 + vertex 7.552095e+01 -1.450456e+02 -3.000000e+00 + vertex 7.602606e+01 -1.451809e+02 0.000000e+00 + endloop + endfacet + facet normal 8.716695e-02 -9.961937e-01 0.000000e+00 + outer loop + vertex -7.500000e+01 -1.450000e+02 -3.000000e+00 + vertex -7.500000e+01 -1.450000e+02 0.000000e+00 + vertex -7.552095e+01 -1.450456e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.716695e-02 -9.961937e-01 0.000000e+00 + outer loop + vertex -7.500000e+01 -1.450000e+02 0.000000e+00 + vertex -7.552095e+01 -1.450456e+02 0.000000e+00 + vertex -7.552095e+01 -1.450456e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.716695e-02 -9.961937e-01 -0.000000e+00 + outer loop + vertex -7.447906e+01 -1.450456e+02 0.000000e+00 + vertex -7.500000e+01 -1.450000e+02 -3.000000e+00 + vertex -7.447906e+01 -1.450456e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.716695e-02 -9.961937e-01 0.000000e+00 + outer loop + vertex 7.500000e+01 -1.450000e+02 -3.000000e+00 + vertex 7.500000e+01 -1.450000e+02 0.000000e+00 + vertex 7.447906e+01 -1.450456e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.716695e-02 -9.961937e-01 0.000000e+00 + outer loop + vertex 7.500000e+01 -1.450000e+02 0.000000e+00 + vertex 7.447906e+01 -1.450456e+02 0.000000e+00 + vertex 7.447906e+01 -1.450456e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.716695e-02 -9.961937e-01 -0.000000e+00 + outer loop + vertex 7.552095e+01 -1.450456e+02 0.000000e+00 + vertex 7.500000e+01 -1.450000e+02 -3.000000e+00 + vertex 7.552095e+01 -1.450456e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.500000e+01 -1.450000e+02 0.000000e+00 + vertex -7.447906e+01 1.450456e+02 0.000000e+00 + vertex -7.552095e+01 -1.450456e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.447906e+01 1.450456e+02 0.000000e+00 + vertex -7.500000e+01 -1.450000e+02 0.000000e+00 + vertex -7.447906e+01 -1.450456e+02 0.000000e+00 + endloop + endfacet + facet normal -8.716695e-02 -9.961937e-01 -0.000000e+00 + outer loop + vertex -7.500000e+01 -1.450000e+02 0.000000e+00 + vertex -7.500000e+01 -1.450000e+02 -3.000000e+00 + vertex -7.447906e+01 -1.450456e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.500000e+01 -1.450000e+02 0.000000e+00 + vertex -7.350000e+01 1.454019e+02 0.000000e+00 + vertex 7.447906e+01 -1.450456e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.350000e+01 1.454019e+02 0.000000e+00 + vertex 7.500000e+01 -1.450000e+02 0.000000e+00 + vertex 7.552095e+01 -1.450456e+02 0.000000e+00 + endloop + endfacet + facet normal -8.716695e-02 -9.961937e-01 -0.000000e+00 + outer loop + vertex 7.500000e+01 -1.450000e+02 0.000000e+00 + vertex 7.500000e+01 -1.450000e+02 -3.000000e+00 + vertex 7.552095e+01 -1.450456e+02 0.000000e+00 + endloop + endfacet + facet normal 8.716695e-02 9.961937e-01 -0.000000e+00 + outer loop + vertex -7.552095e+01 1.450456e+02 -3.000000e+00 + vertex -7.552095e+01 1.450456e+02 0.000000e+00 + vertex -7.500000e+01 1.450000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.716695e-02 9.961937e-01 0.000000e+00 + outer loop + vertex -7.552095e+01 1.450456e+02 0.000000e+00 + vertex -7.500000e+01 1.450000e+02 0.000000e+00 + vertex -7.500000e+01 1.450000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.716695e-02 9.961937e-01 0.000000e+00 + outer loop + vertex -7.500000e+01 1.450000e+02 0.000000e+00 + vertex -7.447906e+01 1.450456e+02 -3.000000e+00 + vertex -7.500000e+01 1.450000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.447906e+01 1.450456e+02 -3.000000e+00 + vertex -7.473953e+01 1.465228e+02 -3.000000e+00 + vertex -7.500000e+01 1.450000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.473953e+01 1.465228e+02 -3.000000e+00 + vertex -7.500000e+01 1.465000e+02 -3.000000e+00 + vertex -7.500000e+01 1.450000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.500000e+01 1.465000e+02 -3.000000e+00 + vertex -7.552095e+01 1.450456e+02 -3.000000e+00 + vertex -7.500000e+01 1.450000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.716695e-02 9.961937e-01 -0.000000e+00 + outer loop + vertex 7.447906e+01 1.450456e+02 -3.000000e+00 + vertex 7.447906e+01 1.450456e+02 0.000000e+00 + vertex 7.500000e+01 1.450000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.716695e-02 9.961937e-01 0.000000e+00 + outer loop + vertex 7.447906e+01 1.450456e+02 0.000000e+00 + vertex 7.500000e+01 1.450000e+02 0.000000e+00 + vertex 7.500000e+01 1.450000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.716695e-02 9.961937e-01 0.000000e+00 + outer loop + vertex 7.500000e+01 1.450000e+02 0.000000e+00 + vertex 7.552095e+01 1.450456e+02 -3.000000e+00 + vertex 7.500000e+01 1.450000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.500000e+01 1.465000e+02 -3.000000e+00 + vertex 7.447906e+01 1.450456e+02 -3.000000e+00 + vertex 7.500000e+01 1.450000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.526048e+01 1.465228e+02 -3.000000e+00 + vertex 7.500000e+01 1.465000e+02 -3.000000e+00 + vertex 7.500000e+01 1.450000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.552095e+01 1.450456e+02 -3.000000e+00 + vertex 7.526048e+01 1.465228e+02 -3.000000e+00 + vertex 7.500000e+01 1.450000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.716695e-02 9.961937e-01 0.000000e+00 + outer loop + vertex -7.447906e+01 1.450456e+02 0.000000e+00 + vertex -7.447906e+01 1.450456e+02 -3.000000e+00 + vertex -7.500000e+01 1.450000e+02 0.000000e+00 + endloop + endfacet + facet normal -8.716695e-02 9.961937e-01 0.000000e+00 + outer loop + vertex 7.552095e+01 1.450456e+02 0.000000e+00 + vertex 7.552095e+01 1.450456e+02 -3.000000e+00 + vertex 7.500000e+01 1.450000e+02 0.000000e+00 + endloop + endfacet + facet normal 2.588242e-01 9.659245e-01 -0.000000e+00 + outer loop + vertex -7.602606e+01 1.451809e+02 -3.000000e+00 + vertex -7.602606e+01 1.451809e+02 0.000000e+00 + vertex -7.552095e+01 1.450456e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588242e-01 9.659245e-01 0.000000e+00 + outer loop + vertex -7.602606e+01 1.451809e+02 0.000000e+00 + vertex -7.552095e+01 1.450456e+02 0.000000e+00 + vertex -7.552095e+01 1.450456e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.500000e+01 1.465000e+02 -3.000000e+00 + vertex -7.526048e+01 1.465228e+02 -3.000000e+00 + vertex -7.552095e+01 1.450456e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.526048e+01 1.465228e+02 -3.000000e+00 + vertex -7.602606e+01 1.451809e+02 -3.000000e+00 + vertex -7.552095e+01 1.450456e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588206e-01 9.659254e-01 0.000000e+00 + outer loop + vertex -7.447906e+01 1.450456e+02 0.000000e+00 + vertex -7.397394e+01 1.451809e+02 -3.000000e+00 + vertex -7.447906e+01 1.450456e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.397394e+01 1.451809e+02 -3.000000e+00 + vertex -7.448697e+01 1.465905e+02 -3.000000e+00 + vertex -7.447906e+01 1.450456e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.448697e+01 1.465905e+02 -3.000000e+00 + vertex -7.473953e+01 1.465228e+02 -3.000000e+00 + vertex -7.447906e+01 1.450456e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588206e-01 9.659254e-01 -0.000000e+00 + outer loop + vertex 7.397394e+01 1.451809e+02 -3.000000e+00 + vertex 7.397394e+01 1.451809e+02 0.000000e+00 + vertex 7.447906e+01 1.450456e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588206e-01 9.659254e-01 0.000000e+00 + outer loop + vertex 7.397394e+01 1.451809e+02 0.000000e+00 + vertex 7.447906e+01 1.450456e+02 0.000000e+00 + vertex 7.447906e+01 1.450456e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.473953e+01 1.465228e+02 -3.000000e+00 + vertex 7.397394e+01 1.451809e+02 -3.000000e+00 + vertex 7.447906e+01 1.450456e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.500000e+01 1.465000e+02 -3.000000e+00 + vertex 7.473953e+01 1.465228e+02 -3.000000e+00 + vertex 7.447906e+01 1.450456e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588242e-01 9.659245e-01 0.000000e+00 + outer loop + vertex 7.552095e+01 1.450456e+02 0.000000e+00 + vertex 7.602606e+01 1.451809e+02 -3.000000e+00 + vertex 7.552095e+01 1.450456e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.551303e+01 1.465905e+02 -3.000000e+00 + vertex 7.526048e+01 1.465228e+02 -3.000000e+00 + vertex 7.552095e+01 1.450456e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.602606e+01 1.451809e+02 -3.000000e+00 + vertex 7.551303e+01 1.465905e+02 -3.000000e+00 + vertex 7.552095e+01 1.450456e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588206e-01 9.659254e-01 0.000000e+00 + outer loop + vertex -7.397394e+01 1.451809e+02 0.000000e+00 + vertex -7.397394e+01 1.451809e+02 -3.000000e+00 + vertex -7.447906e+01 1.450456e+02 0.000000e+00 + endloop + endfacet + facet normal -2.588242e-01 9.659245e-01 0.000000e+00 + outer loop + vertex 7.602606e+01 1.451809e+02 0.000000e+00 + vertex 7.602606e+01 1.451809e+02 -3.000000e+00 + vertex 7.552095e+01 1.450456e+02 0.000000e+00 + endloop + endfacet + facet normal 4.226148e-01 9.063094e-01 -0.000000e+00 + outer loop + vertex -7.650000e+01 1.454019e+02 -3.000000e+00 + vertex -7.650000e+01 1.454019e+02 0.000000e+00 + vertex -7.602606e+01 1.451809e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226148e-01 9.063094e-01 0.000000e+00 + outer loop + vertex -7.650000e+01 1.454019e+02 0.000000e+00 + vertex -7.602606e+01 1.451809e+02 0.000000e+00 + vertex -7.602606e+01 1.451809e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.526048e+01 1.465228e+02 -3.000000e+00 + vertex -7.551303e+01 1.465905e+02 -3.000000e+00 + vertex -7.602606e+01 1.451809e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.551303e+01 1.465905e+02 -3.000000e+00 + vertex -7.650000e+01 1.454019e+02 -3.000000e+00 + vertex -7.602606e+01 1.451809e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226148e-01 9.063094e-01 0.000000e+00 + outer loop + vertex -7.397394e+01 1.451809e+02 0.000000e+00 + vertex -7.350000e+01 1.454019e+02 -3.000000e+00 + vertex -7.397394e+01 1.451809e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.350000e+01 1.454019e+02 -3.000000e+00 + vertex -7.425000e+01 1.467010e+02 -3.000000e+00 + vertex -7.397394e+01 1.451809e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.425000e+01 1.467010e+02 -3.000000e+00 + vertex -7.448697e+01 1.465905e+02 -3.000000e+00 + vertex -7.397394e+01 1.451809e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226148e-01 9.063094e-01 -0.000000e+00 + outer loop + vertex 7.350000e+01 1.454019e+02 -3.000000e+00 + vertex 7.350000e+01 1.454019e+02 0.000000e+00 + vertex 7.397394e+01 1.451809e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226148e-01 9.063094e-01 0.000000e+00 + outer loop + vertex 7.350000e+01 1.454019e+02 0.000000e+00 + vertex 7.397394e+01 1.451809e+02 0.000000e+00 + vertex 7.397394e+01 1.451809e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.448697e+01 1.465905e+02 -3.000000e+00 + vertex 7.350000e+01 1.454019e+02 -3.000000e+00 + vertex 7.397394e+01 1.451809e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.473953e+01 1.465228e+02 -3.000000e+00 + vertex 7.448697e+01 1.465905e+02 -3.000000e+00 + vertex 7.397394e+01 1.451809e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226148e-01 9.063094e-01 0.000000e+00 + outer loop + vertex 7.602606e+01 1.451809e+02 0.000000e+00 + vertex 7.650000e+01 1.454019e+02 -3.000000e+00 + vertex 7.602606e+01 1.451809e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.575000e+01 1.467010e+02 -3.000000e+00 + vertex 7.551303e+01 1.465905e+02 -3.000000e+00 + vertex 7.602606e+01 1.451809e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.650000e+01 1.454019e+02 -3.000000e+00 + vertex 7.575000e+01 1.467010e+02 -3.000000e+00 + vertex 7.602606e+01 1.451809e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226148e-01 9.063094e-01 0.000000e+00 + outer loop + vertex -7.350000e+01 1.454019e+02 0.000000e+00 + vertex -7.350000e+01 1.454019e+02 -3.000000e+00 + vertex -7.397394e+01 1.451809e+02 0.000000e+00 + endloop + endfacet + facet normal -4.226148e-01 9.063094e-01 0.000000e+00 + outer loop + vertex 7.650000e+01 1.454019e+02 0.000000e+00 + vertex 7.650000e+01 1.454019e+02 -3.000000e+00 + vertex 7.602606e+01 1.451809e+02 0.000000e+00 + endloop + endfacet + facet normal 5.735790e-01 8.191503e-01 -0.000000e+00 + outer loop + vertex -7.692836e+01 1.457019e+02 -3.000000e+00 + vertex -7.692836e+01 1.457019e+02 0.000000e+00 + vertex -7.650000e+01 1.454019e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735790e-01 8.191503e-01 0.000000e+00 + outer loop + vertex -7.692836e+01 1.457019e+02 0.000000e+00 + vertex -7.650000e+01 1.454019e+02 0.000000e+00 + vertex -7.650000e+01 1.454019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.551303e+01 1.465905e+02 -3.000000e+00 + vertex -7.575000e+01 1.467010e+02 -3.000000e+00 + vertex -7.650000e+01 1.454019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.575000e+01 1.467010e+02 -3.000000e+00 + vertex -7.692836e+01 1.457019e+02 -3.000000e+00 + vertex -7.650000e+01 1.454019e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735790e-01 8.191503e-01 0.000000e+00 + outer loop + vertex -7.350000e+01 1.454019e+02 0.000000e+00 + vertex -7.307164e+01 1.457019e+02 -3.000000e+00 + vertex -7.350000e+01 1.454019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.307164e+01 1.457019e+02 -3.000000e+00 + vertex -7.403582e+01 1.468509e+02 -3.000000e+00 + vertex -7.350000e+01 1.454019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.403582e+01 1.468509e+02 -3.000000e+00 + vertex -7.425000e+01 1.467010e+02 -3.000000e+00 + vertex -7.350000e+01 1.454019e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735790e-01 8.191503e-01 -0.000000e+00 + outer loop + vertex 7.307164e+01 1.457019e+02 -3.000000e+00 + vertex 7.307164e+01 1.457019e+02 0.000000e+00 + vertex 7.350000e+01 1.454019e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735790e-01 8.191503e-01 0.000000e+00 + outer loop + vertex 7.307164e+01 1.457019e+02 0.000000e+00 + vertex 7.350000e+01 1.454019e+02 0.000000e+00 + vertex 7.350000e+01 1.454019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.425000e+01 1.467010e+02 -3.000000e+00 + vertex 7.307164e+01 1.457019e+02 -3.000000e+00 + vertex 7.350000e+01 1.454019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.448697e+01 1.465905e+02 -3.000000e+00 + vertex 7.425000e+01 1.467010e+02 -3.000000e+00 + vertex 7.350000e+01 1.454019e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735790e-01 8.191503e-01 0.000000e+00 + outer loop + vertex 7.650000e+01 1.454019e+02 0.000000e+00 + vertex 7.692836e+01 1.457019e+02 -3.000000e+00 + vertex 7.650000e+01 1.454019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.596418e+01 1.468509e+02 -3.000000e+00 + vertex 7.575000e+01 1.467010e+02 -3.000000e+00 + vertex 7.650000e+01 1.454019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.692836e+01 1.457019e+02 -3.000000e+00 + vertex 7.596418e+01 1.468509e+02 -3.000000e+00 + vertex 7.650000e+01 1.454019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.692836e+01 1.457019e+02 0.000000e+00 + vertex -1.500000e+02 1.490000e+02 0.000000e+00 + vertex -7.650000e+01 1.454019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.240193e+01 1.465000e+02 0.000000e+00 + vertex 7.218092e+01 1.469739e+02 0.000000e+00 + vertex -7.350000e+01 1.454019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.218092e+01 1.469739e+02 0.000000e+00 + vertex -7.307164e+01 1.457019e+02 0.000000e+00 + vertex -7.350000e+01 1.454019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.307164e+01 1.457019e+02 0.000000e+00 + vertex 7.270186e+01 1.460716e+02 0.000000e+00 + vertex -7.350000e+01 1.454019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.270186e+01 1.460716e+02 0.000000e+00 + vertex 7.240193e+01 1.465000e+02 0.000000e+00 + vertex -7.350000e+01 1.454019e+02 0.000000e+00 + endloop + endfacet + facet normal -5.735790e-01 8.191503e-01 0.000000e+00 + outer loop + vertex -7.307164e+01 1.457019e+02 0.000000e+00 + vertex -7.307164e+01 1.457019e+02 -3.000000e+00 + vertex -7.350000e+01 1.454019e+02 0.000000e+00 + endloop + endfacet + facet normal -5.735790e-01 8.191503e-01 0.000000e+00 + outer loop + vertex 7.692836e+01 1.457019e+02 0.000000e+00 + vertex 7.692836e+01 1.457019e+02 -3.000000e+00 + vertex 7.650000e+01 1.454019e+02 0.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 7.071068e-01 -0.000000e+00 + outer loop + vertex -7.729813e+01 1.460716e+02 -3.000000e+00 + vertex -7.729813e+01 1.460716e+02 0.000000e+00 + vertex -7.692836e+01 1.457019e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex -7.729813e+01 1.460716e+02 0.000000e+00 + vertex -7.692836e+01 1.457019e+02 0.000000e+00 + vertex -7.692836e+01 1.457019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.575000e+01 1.467010e+02 -3.000000e+00 + vertex -7.596418e+01 1.468509e+02 -3.000000e+00 + vertex -7.692836e+01 1.457019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.596418e+01 1.468509e+02 -3.000000e+00 + vertex -7.729813e+01 1.460716e+02 -3.000000e+00 + vertex -7.692836e+01 1.457019e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex -7.307164e+01 1.457019e+02 0.000000e+00 + vertex -7.270186e+01 1.460716e+02 -3.000000e+00 + vertex -7.307164e+01 1.457019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.270186e+01 1.460716e+02 -3.000000e+00 + vertex -7.385093e+01 1.470358e+02 -3.000000e+00 + vertex -7.307164e+01 1.457019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.385093e+01 1.470358e+02 -3.000000e+00 + vertex -7.403582e+01 1.468509e+02 -3.000000e+00 + vertex -7.307164e+01 1.457019e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 7.071068e-01 -0.000000e+00 + outer loop + vertex 7.270186e+01 1.460716e+02 -3.000000e+00 + vertex 7.270186e+01 1.460716e+02 0.000000e+00 + vertex 7.307164e+01 1.457019e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex 7.270186e+01 1.460716e+02 0.000000e+00 + vertex 7.307164e+01 1.457019e+02 0.000000e+00 + vertex 7.307164e+01 1.457019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.403582e+01 1.468509e+02 -3.000000e+00 + vertex 7.270186e+01 1.460716e+02 -3.000000e+00 + vertex 7.307164e+01 1.457019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.425000e+01 1.467010e+02 -3.000000e+00 + vertex 7.403582e+01 1.468509e+02 -3.000000e+00 + vertex 7.307164e+01 1.457019e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex 7.692836e+01 1.457019e+02 0.000000e+00 + vertex 7.729813e+01 1.460716e+02 -3.000000e+00 + vertex 7.692836e+01 1.457019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.614907e+01 1.470358e+02 -3.000000e+00 + vertex 7.596418e+01 1.468509e+02 -3.000000e+00 + vertex 7.692836e+01 1.457019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.729813e+01 1.460716e+02 -3.000000e+00 + vertex 7.614907e+01 1.470358e+02 -3.000000e+00 + vertex 7.692836e+01 1.457019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.729813e+01 1.460716e+02 0.000000e+00 + vertex -1.500000e+02 1.490000e+02 0.000000e+00 + vertex -7.692836e+01 1.457019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.218092e+01 1.469739e+02 0.000000e+00 + vertex -7.270186e+01 1.460716e+02 0.000000e+00 + vertex -7.307164e+01 1.457019e+02 0.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex -7.270186e+01 1.460716e+02 0.000000e+00 + vertex -7.270186e+01 1.460716e+02 -3.000000e+00 + vertex -7.307164e+01 1.457019e+02 0.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex 7.729813e+01 1.460716e+02 0.000000e+00 + vertex 7.729813e+01 1.460716e+02 -3.000000e+00 + vertex 7.692836e+01 1.457019e+02 0.000000e+00 + endloop + endfacet + facet normal 8.191569e-01 5.735694e-01 -0.000000e+00 + outer loop + vertex -7.759807e+01 1.465000e+02 -3.000000e+00 + vertex -7.759807e+01 1.465000e+02 0.000000e+00 + vertex -7.729813e+01 1.460716e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191569e-01 5.735694e-01 0.000000e+00 + outer loop + vertex -7.759807e+01 1.465000e+02 0.000000e+00 + vertex -7.729813e+01 1.460716e+02 0.000000e+00 + vertex -7.729813e+01 1.460716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.596418e+01 1.468509e+02 -3.000000e+00 + vertex -7.614907e+01 1.470358e+02 -3.000000e+00 + vertex -7.729813e+01 1.460716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.614907e+01 1.470358e+02 -3.000000e+00 + vertex -7.759807e+01 1.465000e+02 -3.000000e+00 + vertex -7.729813e+01 1.460716e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191569e-01 5.735694e-01 0.000000e+00 + outer loop + vertex -7.270186e+01 1.460716e+02 0.000000e+00 + vertex -7.240193e+01 1.465000e+02 -3.000000e+00 + vertex -7.270186e+01 1.460716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.240193e+01 1.465000e+02 -3.000000e+00 + vertex -7.370096e+01 1.472500e+02 -3.000000e+00 + vertex -7.270186e+01 1.460716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.370096e+01 1.472500e+02 -3.000000e+00 + vertex -7.385093e+01 1.470358e+02 -3.000000e+00 + vertex -7.270186e+01 1.460716e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191569e-01 5.735694e-01 -0.000000e+00 + outer loop + vertex 7.240193e+01 1.465000e+02 -3.000000e+00 + vertex 7.240193e+01 1.465000e+02 0.000000e+00 + vertex 7.270186e+01 1.460716e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191569e-01 5.735694e-01 0.000000e+00 + outer loop + vertex 7.240193e+01 1.465000e+02 0.000000e+00 + vertex 7.270186e+01 1.460716e+02 0.000000e+00 + vertex 7.270186e+01 1.460716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.385093e+01 1.470358e+02 -3.000000e+00 + vertex 7.240193e+01 1.465000e+02 -3.000000e+00 + vertex 7.270186e+01 1.460716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.403582e+01 1.468509e+02 -3.000000e+00 + vertex 7.385093e+01 1.470358e+02 -3.000000e+00 + vertex 7.270186e+01 1.460716e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191569e-01 5.735694e-01 0.000000e+00 + outer loop + vertex 7.729813e+01 1.460716e+02 0.000000e+00 + vertex 7.759807e+01 1.465000e+02 -3.000000e+00 + vertex 7.729813e+01 1.460716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.629904e+01 1.472500e+02 -3.000000e+00 + vertex 7.614907e+01 1.470358e+02 -3.000000e+00 + vertex 7.729813e+01 1.460716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.759807e+01 1.465000e+02 -3.000000e+00 + vertex 7.629904e+01 1.472500e+02 -3.000000e+00 + vertex 7.729813e+01 1.460716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.759807e+01 1.465000e+02 0.000000e+00 + vertex -1.500000e+02 1.490000e+02 0.000000e+00 + vertex -7.729813e+01 1.460716e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.218092e+01 1.469739e+02 0.000000e+00 + vertex -7.240193e+01 1.465000e+02 0.000000e+00 + vertex -7.270186e+01 1.460716e+02 0.000000e+00 + endloop + endfacet + facet normal -8.191569e-01 5.735694e-01 0.000000e+00 + outer loop + vertex -7.240193e+01 1.465000e+02 0.000000e+00 + vertex -7.240193e+01 1.465000e+02 -3.000000e+00 + vertex -7.270186e+01 1.460716e+02 0.000000e+00 + endloop + endfacet + facet normal -8.191569e-01 5.735694e-01 0.000000e+00 + outer loop + vertex 7.759807e+01 1.465000e+02 0.000000e+00 + vertex 7.759807e+01 1.465000e+02 -3.000000e+00 + vertex 7.729813e+01 1.460716e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.359046e+01 1.474870e+02 -6.000000e+00 + vertex 7.370096e+01 1.472500e+02 -6.000000e+00 + vertex -7.500000e+01 1.465000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.370096e+01 1.472500e+02 -6.000000e+00 + vertex 7.385093e+01 1.470358e+02 -6.000000e+00 + vertex -7.500000e+01 1.465000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.473953e+01 1.465228e+02 -6.000000e+00 + vertex 7.350000e+01 1.480000e+02 -6.000000e+00 + vertex -7.500000e+01 1.465000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.350000e+01 1.480000e+02 -6.000000e+00 + vertex 7.352279e+01 1.477395e+02 -6.000000e+00 + vertex -7.500000e+01 1.465000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.352279e+01 1.477395e+02 -6.000000e+00 + vertex 7.359046e+01 1.474870e+02 -6.000000e+00 + vertex -7.500000e+01 1.465000e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.713867e-02 9.961962e-01 -0.000000e+00 + outer loop + vertex -7.526048e+01 1.465228e+02 -6.000000e+00 + vertex -7.526048e+01 1.465228e+02 -3.000000e+00 + vertex -7.500000e+01 1.465000e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.713867e-02 9.961962e-01 0.000000e+00 + outer loop + vertex -7.526048e+01 1.465228e+02 -3.000000e+00 + vertex -7.500000e+01 1.465000e+02 -3.000000e+00 + vertex -7.500000e+01 1.465000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.713867e-02 9.961962e-01 0.000000e+00 + outer loop + vertex -7.500000e+01 1.465000e+02 -3.000000e+00 + vertex -7.473953e+01 1.465228e+02 -6.000000e+00 + vertex -7.500000e+01 1.465000e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.713867e-02 9.961962e-01 -0.000000e+00 + outer loop + vertex 7.473953e+01 1.465228e+02 -6.000000e+00 + vertex 7.473953e+01 1.465228e+02 -3.000000e+00 + vertex 7.500000e+01 1.465000e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.713867e-02 9.961962e-01 0.000000e+00 + outer loop + vertex 7.473953e+01 1.465228e+02 -3.000000e+00 + vertex 7.500000e+01 1.465000e+02 -3.000000e+00 + vertex 7.500000e+01 1.465000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.713867e-02 9.961962e-01 0.000000e+00 + outer loop + vertex 7.500000e+01 1.465000e+02 -3.000000e+00 + vertex 7.526048e+01 1.465228e+02 -6.000000e+00 + vertex 7.500000e+01 1.465000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 1.498660e+02 1.495000e+02 -6.000000e+00 + vertex 1.499397e+02 1.493420e+02 -6.000000e+00 + vertex 7.500000e+01 1.465000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 1.497660e+02 1.496428e+02 -6.000000e+00 + vertex 1.498660e+02 1.495000e+02 -6.000000e+00 + vertex 7.500000e+01 1.465000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 1.499397e+02 1.493420e+02 -6.000000e+00 + vertex 1.499848e+02 1.491736e+02 -6.000000e+00 + vertex 7.500000e+01 1.465000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 1.490000e+02 1.500000e+02 -6.000000e+00 + vertex 1.497660e+02 1.496428e+02 -6.000000e+00 + vertex 7.500000e+01 1.465000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.526048e+01 1.465228e+02 -6.000000e+00 + vertex 1.490000e+02 1.500000e+02 -6.000000e+00 + vertex 7.500000e+01 1.465000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063014e-01 4.226320e-01 -0.000000e+00 + outer loop + vertex -7.781908e+01 1.469739e+02 -3.000000e+00 + vertex -7.781908e+01 1.469739e+02 0.000000e+00 + vertex -7.759807e+01 1.465000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063014e-01 4.226320e-01 0.000000e+00 + outer loop + vertex -7.781908e+01 1.469739e+02 0.000000e+00 + vertex -7.759807e+01 1.465000e+02 0.000000e+00 + vertex -7.759807e+01 1.465000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.614907e+01 1.470358e+02 -3.000000e+00 + vertex -7.629904e+01 1.472500e+02 -3.000000e+00 + vertex -7.759807e+01 1.465000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.629904e+01 1.472500e+02 -3.000000e+00 + vertex -7.781908e+01 1.469739e+02 -3.000000e+00 + vertex -7.759807e+01 1.465000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.713867e-02 9.961962e-01 0.000000e+00 + outer loop + vertex -7.473953e+01 1.465228e+02 -3.000000e+00 + vertex -7.473953e+01 1.465228e+02 -6.000000e+00 + vertex -7.500000e+01 1.465000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063014e-01 4.226320e-01 0.000000e+00 + outer loop + vertex -7.240193e+01 1.465000e+02 0.000000e+00 + vertex -7.218092e+01 1.469739e+02 -3.000000e+00 + vertex -7.240193e+01 1.465000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.218092e+01 1.469739e+02 -3.000000e+00 + vertex -7.359046e+01 1.474870e+02 -3.000000e+00 + vertex -7.240193e+01 1.465000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.359046e+01 1.474870e+02 -3.000000e+00 + vertex -7.370096e+01 1.472500e+02 -3.000000e+00 + vertex -7.240193e+01 1.465000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063014e-01 4.226320e-01 -0.000000e+00 + outer loop + vertex 7.218092e+01 1.469739e+02 -3.000000e+00 + vertex 7.218092e+01 1.469739e+02 0.000000e+00 + vertex 7.240193e+01 1.465000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063014e-01 4.226320e-01 0.000000e+00 + outer loop + vertex 7.218092e+01 1.469739e+02 0.000000e+00 + vertex 7.240193e+01 1.465000e+02 0.000000e+00 + vertex 7.240193e+01 1.465000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.370096e+01 1.472500e+02 -3.000000e+00 + vertex 7.218092e+01 1.469739e+02 -3.000000e+00 + vertex 7.240193e+01 1.465000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.385093e+01 1.470358e+02 -3.000000e+00 + vertex 7.370096e+01 1.472500e+02 -3.000000e+00 + vertex 7.240193e+01 1.465000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.713867e-02 9.961962e-01 0.000000e+00 + outer loop + vertex 7.526048e+01 1.465228e+02 -3.000000e+00 + vertex 7.526048e+01 1.465228e+02 -6.000000e+00 + vertex 7.500000e+01 1.465000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063014e-01 4.226320e-01 0.000000e+00 + outer loop + vertex 7.759807e+01 1.465000e+02 0.000000e+00 + vertex 7.781908e+01 1.469739e+02 -3.000000e+00 + vertex 7.759807e+01 1.465000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.640954e+01 1.474870e+02 -3.000000e+00 + vertex 7.629904e+01 1.472500e+02 -3.000000e+00 + vertex 7.759807e+01 1.465000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.781908e+01 1.469739e+02 -3.000000e+00 + vertex 7.640954e+01 1.474870e+02 -3.000000e+00 + vertex 7.759807e+01 1.465000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.781908e+01 1.469739e+02 0.000000e+00 + vertex -1.500000e+02 1.490000e+02 0.000000e+00 + vertex -7.759807e+01 1.465000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.218092e+01 1.469739e+02 0.000000e+00 + vertex -7.218092e+01 1.469739e+02 0.000000e+00 + vertex -7.240193e+01 1.465000e+02 0.000000e+00 + endloop + endfacet + facet normal -9.063014e-01 4.226320e-01 0.000000e+00 + outer loop + vertex -7.218092e+01 1.469739e+02 0.000000e+00 + vertex -7.218092e+01 1.469739e+02 -3.000000e+00 + vertex -7.240193e+01 1.465000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.500000e+02 1.490000e+02 0.000000e+00 + vertex 7.781908e+01 1.469739e+02 0.000000e+00 + vertex 7.759807e+01 1.465000e+02 0.000000e+00 + endloop + endfacet + facet normal -9.063014e-01 4.226320e-01 0.000000e+00 + outer loop + vertex 7.781908e+01 1.469739e+02 0.000000e+00 + vertex 7.781908e+01 1.469739e+02 -3.000000e+00 + vertex 7.759807e+01 1.465000e+02 0.000000e+00 + endloop + endfacet + facet normal 2.588011e-01 9.659306e-01 -0.000000e+00 + outer loop + vertex -7.551303e+01 1.465905e+02 -6.000000e+00 + vertex -7.551303e+01 1.465905e+02 -3.000000e+00 + vertex -7.526048e+01 1.465228e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588011e-01 9.659306e-01 0.000000e+00 + outer loop + vertex -7.551303e+01 1.465905e+02 -3.000000e+00 + vertex -7.526048e+01 1.465228e+02 -3.000000e+00 + vertex -7.526048e+01 1.465228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.448697e+01 1.465905e+02 -6.000000e+00 + vertex 7.250000e+01 1.500000e+02 -6.000000e+00 + vertex -7.473953e+01 1.465228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.250000e+01 1.500000e+02 -6.000000e+00 + vertex 7.350000e+01 1.490000e+02 -6.000000e+00 + vertex -7.473953e+01 1.465228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.350000e+01 1.490000e+02 -6.000000e+00 + vertex 7.350000e+01 1.480000e+02 -6.000000e+00 + vertex -7.473953e+01 1.465228e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.587940e-01 9.659325e-01 0.000000e+00 + outer loop + vertex -7.473953e+01 1.465228e+02 -3.000000e+00 + vertex -7.448697e+01 1.465905e+02 -6.000000e+00 + vertex -7.473953e+01 1.465228e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.587940e-01 9.659325e-01 -0.000000e+00 + outer loop + vertex 7.448697e+01 1.465905e+02 -6.000000e+00 + vertex 7.448697e+01 1.465905e+02 -3.000000e+00 + vertex 7.473953e+01 1.465228e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.587940e-01 9.659325e-01 0.000000e+00 + outer loop + vertex 7.448697e+01 1.465905e+02 -3.000000e+00 + vertex 7.473953e+01 1.465228e+02 -3.000000e+00 + vertex 7.473953e+01 1.465228e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588011e-01 9.659306e-01 0.000000e+00 + outer loop + vertex 7.526048e+01 1.465228e+02 -3.000000e+00 + vertex 7.551303e+01 1.465905e+02 -6.000000e+00 + vertex 7.526048e+01 1.465228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.551303e+01 1.465905e+02 -6.000000e+00 + vertex 1.490000e+02 1.500000e+02 -6.000000e+00 + vertex 7.526048e+01 1.465228e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.587940e-01 9.659325e-01 0.000000e+00 + outer loop + vertex -7.448697e+01 1.465905e+02 -3.000000e+00 + vertex -7.448697e+01 1.465905e+02 -6.000000e+00 + vertex -7.473953e+01 1.465228e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588011e-01 9.659306e-01 0.000000e+00 + outer loop + vertex 7.551303e+01 1.465905e+02 -3.000000e+00 + vertex 7.551303e+01 1.465905e+02 -6.000000e+00 + vertex 7.526048e+01 1.465228e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 9.063010e-01 -0.000000e+00 + outer loop + vertex -7.575000e+01 1.467010e+02 -6.000000e+00 + vertex -7.575000e+01 1.467010e+02 -3.000000e+00 + vertex -7.551303e+01 1.465905e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex -7.575000e+01 1.467010e+02 -3.000000e+00 + vertex -7.551303e+01 1.465905e+02 -3.000000e+00 + vertex -7.551303e+01 1.465905e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.425000e+01 1.467010e+02 -6.000000e+00 + vertex 7.250000e+01 1.500000e+02 -6.000000e+00 + vertex -7.448697e+01 1.465905e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex -7.448697e+01 1.465905e+02 -3.000000e+00 + vertex -7.425000e+01 1.467010e+02 -6.000000e+00 + vertex -7.448697e+01 1.465905e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 9.063010e-01 -0.000000e+00 + outer loop + vertex 7.425000e+01 1.467010e+02 -6.000000e+00 + vertex 7.425000e+01 1.467010e+02 -3.000000e+00 + vertex 7.448697e+01 1.465905e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex 7.425000e+01 1.467010e+02 -3.000000e+00 + vertex 7.448697e+01 1.465905e+02 -3.000000e+00 + vertex 7.448697e+01 1.465905e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex 7.551303e+01 1.465905e+02 -3.000000e+00 + vertex 7.575000e+01 1.467010e+02 -6.000000e+00 + vertex 7.551303e+01 1.465905e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.575000e+01 1.467010e+02 -6.000000e+00 + vertex 1.490000e+02 1.500000e+02 -6.000000e+00 + vertex 7.551303e+01 1.465905e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex -7.425000e+01 1.467010e+02 -3.000000e+00 + vertex -7.425000e+01 1.467010e+02 -6.000000e+00 + vertex -7.448697e+01 1.465905e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex 7.575000e+01 1.467010e+02 -3.000000e+00 + vertex 7.575000e+01 1.467010e+02 -6.000000e+00 + vertex 7.551303e+01 1.465905e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 8.191636e-01 -0.000000e+00 + outer loop + vertex -7.596418e+01 1.468509e+02 -6.000000e+00 + vertex -7.596418e+01 1.468509e+02 -3.000000e+00 + vertex -7.575000e+01 1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 8.191636e-01 0.000000e+00 + outer loop + vertex -7.596418e+01 1.468509e+02 -3.000000e+00 + vertex -7.575000e+01 1.467010e+02 -3.000000e+00 + vertex -7.575000e+01 1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.403582e+01 1.468509e+02 -6.000000e+00 + vertex 7.250000e+01 1.500000e+02 -6.000000e+00 + vertex -7.425000e+01 1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 8.191636e-01 0.000000e+00 + outer loop + vertex -7.425000e+01 1.467010e+02 -3.000000e+00 + vertex -7.403582e+01 1.468509e+02 -6.000000e+00 + vertex -7.425000e+01 1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 8.191636e-01 -0.000000e+00 + outer loop + vertex 7.403582e+01 1.468509e+02 -6.000000e+00 + vertex 7.403582e+01 1.468509e+02 -3.000000e+00 + vertex 7.425000e+01 1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 8.191636e-01 0.000000e+00 + outer loop + vertex 7.403582e+01 1.468509e+02 -3.000000e+00 + vertex 7.425000e+01 1.467010e+02 -3.000000e+00 + vertex 7.425000e+01 1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 8.191636e-01 0.000000e+00 + outer loop + vertex 7.575000e+01 1.467010e+02 -3.000000e+00 + vertex 7.596418e+01 1.468509e+02 -6.000000e+00 + vertex 7.575000e+01 1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.596418e+01 1.468509e+02 -6.000000e+00 + vertex 1.490000e+02 1.500000e+02 -6.000000e+00 + vertex 7.575000e+01 1.467010e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 8.191636e-01 0.000000e+00 + outer loop + vertex -7.403582e+01 1.468509e+02 -3.000000e+00 + vertex -7.403582e+01 1.468509e+02 -6.000000e+00 + vertex -7.425000e+01 1.467010e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 8.191636e-01 0.000000e+00 + outer loop + vertex 7.596418e+01 1.468509e+02 -3.000000e+00 + vertex 7.596418e+01 1.468509e+02 -6.000000e+00 + vertex 7.575000e+01 1.467010e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071210e-01 7.070925e-01 -0.000000e+00 + outer loop + vertex -7.614907e+01 1.470358e+02 -6.000000e+00 + vertex -7.614907e+01 1.470358e+02 -3.000000e+00 + vertex -7.596418e+01 1.468509e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071210e-01 7.070925e-01 0.000000e+00 + outer loop + vertex -7.614907e+01 1.470358e+02 -3.000000e+00 + vertex -7.596418e+01 1.468509e+02 -3.000000e+00 + vertex -7.596418e+01 1.468509e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.385093e+01 1.470358e+02 -6.000000e+00 + vertex 7.250000e+01 1.500000e+02 -6.000000e+00 + vertex -7.403582e+01 1.468509e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071210e-01 7.070925e-01 0.000000e+00 + outer loop + vertex -7.403582e+01 1.468509e+02 -3.000000e+00 + vertex -7.385093e+01 1.470358e+02 -6.000000e+00 + vertex -7.403582e+01 1.468509e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071210e-01 7.070925e-01 -0.000000e+00 + outer loop + vertex 7.385093e+01 1.470358e+02 -6.000000e+00 + vertex 7.385093e+01 1.470358e+02 -3.000000e+00 + vertex 7.403582e+01 1.468509e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071210e-01 7.070925e-01 0.000000e+00 + outer loop + vertex 7.385093e+01 1.470358e+02 -3.000000e+00 + vertex 7.403582e+01 1.468509e+02 -3.000000e+00 + vertex 7.403582e+01 1.468509e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071210e-01 7.070925e-01 0.000000e+00 + outer loop + vertex 7.596418e+01 1.468509e+02 -3.000000e+00 + vertex 7.614907e+01 1.470358e+02 -6.000000e+00 + vertex 7.596418e+01 1.468509e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.614907e+01 1.470358e+02 -6.000000e+00 + vertex 1.490000e+02 1.500000e+02 -6.000000e+00 + vertex 7.596418e+01 1.468509e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071210e-01 7.070925e-01 0.000000e+00 + outer loop + vertex -7.385093e+01 1.470358e+02 -3.000000e+00 + vertex -7.385093e+01 1.470358e+02 -6.000000e+00 + vertex -7.403582e+01 1.468509e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071210e-01 7.070925e-01 0.000000e+00 + outer loop + vertex 7.614907e+01 1.470358e+02 -3.000000e+00 + vertex 7.614907e+01 1.470358e+02 -6.000000e+00 + vertex 7.596418e+01 1.468509e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659254e-01 2.588206e-01 -0.000000e+00 + outer loop + vertex -7.795443e+01 1.474791e+02 -3.000000e+00 + vertex -7.795443e+01 1.474791e+02 0.000000e+00 + vertex -7.781908e+01 1.469739e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659254e-01 2.588206e-01 0.000000e+00 + outer loop + vertex -7.795443e+01 1.474791e+02 0.000000e+00 + vertex -7.781908e+01 1.469739e+02 0.000000e+00 + vertex -7.781908e+01 1.469739e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.629904e+01 1.472500e+02 -3.000000e+00 + vertex -7.640954e+01 1.474870e+02 -3.000000e+00 + vertex -7.781908e+01 1.469739e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.640954e+01 1.474870e+02 -3.000000e+00 + vertex -7.795443e+01 1.474791e+02 -3.000000e+00 + vertex -7.781908e+01 1.469739e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659290e-01 2.588073e-01 0.000000e+00 + outer loop + vertex -7.218092e+01 1.469739e+02 0.000000e+00 + vertex -7.204558e+01 1.474791e+02 -3.000000e+00 + vertex -7.218092e+01 1.469739e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.204558e+01 1.474791e+02 -3.000000e+00 + vertex -7.352279e+01 1.477395e+02 -3.000000e+00 + vertex -7.218092e+01 1.469739e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.352279e+01 1.477395e+02 -3.000000e+00 + vertex -7.359046e+01 1.474870e+02 -3.000000e+00 + vertex -7.218092e+01 1.469739e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659290e-01 2.588073e-01 -0.000000e+00 + outer loop + vertex 7.204558e+01 1.474791e+02 -3.000000e+00 + vertex 7.204558e+01 1.474791e+02 0.000000e+00 + vertex 7.218092e+01 1.469739e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659290e-01 2.588073e-01 0.000000e+00 + outer loop + vertex 7.204558e+01 1.474791e+02 0.000000e+00 + vertex 7.218092e+01 1.469739e+02 0.000000e+00 + vertex 7.218092e+01 1.469739e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.359046e+01 1.474870e+02 -3.000000e+00 + vertex 7.204558e+01 1.474791e+02 -3.000000e+00 + vertex 7.218092e+01 1.469739e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.370096e+01 1.472500e+02 -3.000000e+00 + vertex 7.359046e+01 1.474870e+02 -3.000000e+00 + vertex 7.218092e+01 1.469739e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659254e-01 2.588206e-01 0.000000e+00 + outer loop + vertex 7.781908e+01 1.469739e+02 0.000000e+00 + vertex 7.795443e+01 1.474791e+02 -3.000000e+00 + vertex 7.781908e+01 1.469739e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.647721e+01 1.477395e+02 -3.000000e+00 + vertex 7.640954e+01 1.474870e+02 -3.000000e+00 + vertex 7.781908e+01 1.469739e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.795443e+01 1.474791e+02 -3.000000e+00 + vertex 7.647721e+01 1.477395e+02 -3.000000e+00 + vertex 7.781908e+01 1.469739e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.795443e+01 1.474791e+02 0.000000e+00 + vertex -1.500000e+02 1.490000e+02 0.000000e+00 + vertex -7.781908e+01 1.469739e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.218092e+01 1.469739e+02 0.000000e+00 + vertex -7.204558e+01 1.474791e+02 0.000000e+00 + vertex -7.218092e+01 1.469739e+02 0.000000e+00 + endloop + endfacet + facet normal -9.659290e-01 2.588073e-01 0.000000e+00 + outer loop + vertex -7.204558e+01 1.474791e+02 0.000000e+00 + vertex -7.204558e+01 1.474791e+02 -3.000000e+00 + vertex -7.218092e+01 1.469739e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.204558e+01 1.474791e+02 0.000000e+00 + vertex -7.200000e+01 1.480000e+02 0.000000e+00 + vertex 7.218092e+01 1.469739e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 1.480000e+02 0.000000e+00 + vertex -7.204558e+01 1.474791e+02 0.000000e+00 + vertex 7.218092e+01 1.469739e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.500000e+02 1.490000e+02 0.000000e+00 + vertex 7.795443e+01 1.474791e+02 0.000000e+00 + vertex 7.781908e+01 1.469739e+02 0.000000e+00 + endloop + endfacet + facet normal -9.659254e-01 2.588206e-01 0.000000e+00 + outer loop + vertex 7.795443e+01 1.474791e+02 0.000000e+00 + vertex 7.795443e+01 1.474791e+02 -3.000000e+00 + vertex 7.781908e+01 1.469739e+02 0.000000e+00 + endloop + endfacet + facet normal 8.191409e-01 5.735924e-01 -0.000000e+00 + outer loop + vertex -7.629904e+01 1.472500e+02 -6.000000e+00 + vertex -7.629904e+01 1.472500e+02 -3.000000e+00 + vertex -7.614907e+01 1.470358e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191409e-01 5.735924e-01 0.000000e+00 + outer loop + vertex -7.629904e+01 1.472500e+02 -3.000000e+00 + vertex -7.614907e+01 1.470358e+02 -3.000000e+00 + vertex -7.614907e+01 1.470358e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.370096e+01 1.472500e+02 -6.000000e+00 + vertex 7.250000e+01 1.500000e+02 -6.000000e+00 + vertex -7.385093e+01 1.470358e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191543e-01 5.735733e-01 0.000000e+00 + outer loop + vertex -7.385093e+01 1.470358e+02 -3.000000e+00 + vertex -7.370096e+01 1.472500e+02 -6.000000e+00 + vertex -7.385093e+01 1.470358e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191543e-01 5.735733e-01 -0.000000e+00 + outer loop + vertex 7.370096e+01 1.472500e+02 -6.000000e+00 + vertex 7.370096e+01 1.472500e+02 -3.000000e+00 + vertex 7.385093e+01 1.470358e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191543e-01 5.735733e-01 0.000000e+00 + outer loop + vertex 7.370096e+01 1.472500e+02 -3.000000e+00 + vertex 7.385093e+01 1.470358e+02 -3.000000e+00 + vertex 7.385093e+01 1.470358e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191409e-01 5.735924e-01 0.000000e+00 + outer loop + vertex 7.614907e+01 1.470358e+02 -3.000000e+00 + vertex 7.629904e+01 1.472500e+02 -6.000000e+00 + vertex 7.614907e+01 1.470358e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.629904e+01 1.472500e+02 -6.000000e+00 + vertex 1.490000e+02 1.500000e+02 -6.000000e+00 + vertex 7.614907e+01 1.470358e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191543e-01 5.735733e-01 0.000000e+00 + outer loop + vertex -7.370096e+01 1.472500e+02 -3.000000e+00 + vertex -7.370096e+01 1.472500e+02 -6.000000e+00 + vertex -7.385093e+01 1.470358e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191409e-01 5.735924e-01 0.000000e+00 + outer loop + vertex 7.629904e+01 1.472500e+02 -3.000000e+00 + vertex 7.629904e+01 1.472500e+02 -6.000000e+00 + vertex 7.614907e+01 1.470358e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063119e-01 4.226093e-01 -0.000000e+00 + outer loop + vertex -7.640954e+01 1.474870e+02 -6.000000e+00 + vertex -7.640954e+01 1.474870e+02 -3.000000e+00 + vertex -7.629904e+01 1.472500e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063119e-01 4.226093e-01 0.000000e+00 + outer loop + vertex -7.640954e+01 1.474870e+02 -3.000000e+00 + vertex -7.629904e+01 1.472500e+02 -3.000000e+00 + vertex -7.629904e+01 1.472500e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.359046e+01 1.474870e+02 -6.000000e+00 + vertex 7.250000e+01 1.500000e+02 -6.000000e+00 + vertex -7.370096e+01 1.472500e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex -7.370096e+01 1.472500e+02 -3.000000e+00 + vertex -7.359046e+01 1.474870e+02 -6.000000e+00 + vertex -7.370096e+01 1.472500e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 4.226327e-01 -0.000000e+00 + outer loop + vertex 7.359046e+01 1.474870e+02 -6.000000e+00 + vertex 7.359046e+01 1.474870e+02 -3.000000e+00 + vertex 7.370096e+01 1.472500e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex 7.359046e+01 1.474870e+02 -3.000000e+00 + vertex 7.370096e+01 1.472500e+02 -3.000000e+00 + vertex 7.370096e+01 1.472500e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063119e-01 4.226093e-01 0.000000e+00 + outer loop + vertex 7.629904e+01 1.472500e+02 -3.000000e+00 + vertex 7.640954e+01 1.474870e+02 -6.000000e+00 + vertex 7.629904e+01 1.472500e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.640954e+01 1.474870e+02 -6.000000e+00 + vertex 1.490000e+02 1.500000e+02 -6.000000e+00 + vertex 7.629904e+01 1.472500e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex -7.359046e+01 1.474870e+02 -3.000000e+00 + vertex -7.359046e+01 1.474870e+02 -6.000000e+00 + vertex -7.370096e+01 1.472500e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063119e-01 4.226093e-01 0.000000e+00 + outer loop + vertex 7.640954e+01 1.474870e+02 -3.000000e+00 + vertex 7.640954e+01 1.474870e+02 -6.000000e+00 + vertex 7.629904e+01 1.472500e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961950e-01 8.715281e-02 -0.000000e+00 + outer loop + vertex -7.800000e+01 1.480000e+02 -3.000000e+00 + vertex -7.800000e+01 1.480000e+02 0.000000e+00 + vertex -7.795443e+01 1.474791e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961950e-01 8.715281e-02 0.000000e+00 + outer loop + vertex -7.800000e+01 1.480000e+02 0.000000e+00 + vertex -7.795443e+01 1.474791e+02 0.000000e+00 + vertex -7.795443e+01 1.474791e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.640954e+01 1.474870e+02 -3.000000e+00 + vertex -7.647721e+01 1.477395e+02 -3.000000e+00 + vertex -7.795443e+01 1.474791e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.647721e+01 1.477395e+02 -3.000000e+00 + vertex -7.800000e+01 1.480000e+02 -3.000000e+00 + vertex -7.795443e+01 1.474791e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961937e-01 8.716695e-02 0.000000e+00 + outer loop + vertex -7.204558e+01 1.474791e+02 0.000000e+00 + vertex -7.200000e+01 1.480000e+02 -3.000000e+00 + vertex -7.204558e+01 1.474791e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 1.480000e+02 -3.000000e+00 + vertex -7.350000e+01 1.480000e+02 -3.000000e+00 + vertex -7.204558e+01 1.474791e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.350000e+01 1.480000e+02 -3.000000e+00 + vertex -7.352279e+01 1.477395e+02 -3.000000e+00 + vertex -7.204558e+01 1.474791e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961937e-01 8.716695e-02 -0.000000e+00 + outer loop + vertex 7.200000e+01 1.480000e+02 -3.000000e+00 + vertex 7.200000e+01 1.480000e+02 0.000000e+00 + vertex 7.204558e+01 1.474791e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961937e-01 8.716695e-02 0.000000e+00 + outer loop + vertex 7.200000e+01 1.480000e+02 0.000000e+00 + vertex 7.204558e+01 1.474791e+02 0.000000e+00 + vertex 7.204558e+01 1.474791e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.352279e+01 1.477395e+02 -3.000000e+00 + vertex 7.200000e+01 1.480000e+02 -3.000000e+00 + vertex 7.204558e+01 1.474791e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.359046e+01 1.474870e+02 -3.000000e+00 + vertex 7.352279e+01 1.477395e+02 -3.000000e+00 + vertex 7.204558e+01 1.474791e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961950e-01 8.715281e-02 0.000000e+00 + outer loop + vertex 7.795443e+01 1.474791e+02 0.000000e+00 + vertex 7.800000e+01 1.480000e+02 -3.000000e+00 + vertex 7.795443e+01 1.474791e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.650000e+01 1.480000e+02 -3.000000e+00 + vertex 7.647721e+01 1.477395e+02 -3.000000e+00 + vertex 7.795443e+01 1.474791e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.800000e+01 1.480000e+02 -3.000000e+00 + vertex 7.650000e+01 1.480000e+02 -3.000000e+00 + vertex 7.795443e+01 1.474791e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.800000e+01 1.480000e+02 0.000000e+00 + vertex -1.500000e+02 1.490000e+02 0.000000e+00 + vertex -7.795443e+01 1.474791e+02 0.000000e+00 + endloop + endfacet + facet normal -9.961937e-01 8.716695e-02 0.000000e+00 + outer loop + vertex -7.200000e+01 1.480000e+02 0.000000e+00 + vertex -7.200000e+01 1.480000e+02 -3.000000e+00 + vertex -7.204558e+01 1.474791e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.200000e+01 1.480000e+02 0.000000e+00 + vertex 7.176604e+01 1.496428e+02 0.000000e+00 + vertex 7.204558e+01 1.474791e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.176604e+01 1.496428e+02 0.000000e+00 + vertex 7.164279e+01 1.497660e+02 0.000000e+00 + vertex 7.204558e+01 1.474791e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.164279e+01 1.497660e+02 0.000000e+00 + vertex 7.150000e+01 1.498660e+02 0.000000e+00 + vertex 7.204558e+01 1.474791e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.150000e+01 1.498660e+02 0.000000e+00 + vertex 7.134202e+01 1.499397e+02 0.000000e+00 + vertex 7.204558e+01 1.474791e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.134202e+01 1.499397e+02 0.000000e+00 + vertex 7.117365e+01 1.499848e+02 0.000000e+00 + vertex 7.204558e+01 1.474791e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.117365e+01 1.499848e+02 0.000000e+00 + vertex 7.100000e+01 1.500000e+02 0.000000e+00 + vertex 7.204558e+01 1.474791e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.100000e+01 1.500000e+02 0.000000e+00 + vertex -7.200000e+01 1.480000e+02 0.000000e+00 + vertex 7.204558e+01 1.474791e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.500000e+02 1.490000e+02 0.000000e+00 + vertex 7.800000e+01 1.480000e+02 0.000000e+00 + vertex 7.795443e+01 1.474791e+02 0.000000e+00 + endloop + endfacet + facet normal -9.961950e-01 8.715281e-02 0.000000e+00 + outer loop + vertex 7.800000e+01 1.480000e+02 0.000000e+00 + vertex 7.800000e+01 1.480000e+02 -3.000000e+00 + vertex 7.795443e+01 1.474791e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.500000e+02 1.490000e+02 -6.000000e+00 + vertex -7.647721e+01 1.477395e+02 -6.000000e+00 + vertex -7.640954e+01 1.474870e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659254e-01 2.588206e-01 -0.000000e+00 + outer loop + vertex -7.647721e+01 1.477395e+02 -6.000000e+00 + vertex -7.647721e+01 1.477395e+02 -3.000000e+00 + vertex -7.640954e+01 1.474870e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659254e-01 2.588206e-01 0.000000e+00 + outer loop + vertex -7.647721e+01 1.477395e+02 -3.000000e+00 + vertex -7.640954e+01 1.474870e+02 -3.000000e+00 + vertex -7.640954e+01 1.474870e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.352279e+01 1.477395e+02 -6.000000e+00 + vertex 7.250000e+01 1.500000e+02 -6.000000e+00 + vertex -7.359046e+01 1.474870e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659325e-01 2.587940e-01 0.000000e+00 + outer loop + vertex -7.359046e+01 1.474870e+02 -3.000000e+00 + vertex -7.352279e+01 1.477395e+02 -6.000000e+00 + vertex -7.359046e+01 1.474870e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659325e-01 2.587940e-01 -0.000000e+00 + outer loop + vertex 7.352279e+01 1.477395e+02 -6.000000e+00 + vertex 7.352279e+01 1.477395e+02 -3.000000e+00 + vertex 7.359046e+01 1.474870e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659325e-01 2.587940e-01 0.000000e+00 + outer loop + vertex 7.352279e+01 1.477395e+02 -3.000000e+00 + vertex 7.359046e+01 1.474870e+02 -3.000000e+00 + vertex 7.359046e+01 1.474870e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659254e-01 2.588206e-01 0.000000e+00 + outer loop + vertex 7.640954e+01 1.474870e+02 -3.000000e+00 + vertex 7.647721e+01 1.477395e+02 -6.000000e+00 + vertex 7.640954e+01 1.474870e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.750000e+01 1.500000e+02 -6.000000e+00 + vertex 1.490000e+02 1.500000e+02 -6.000000e+00 + vertex 7.640954e+01 1.474870e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.647721e+01 1.477395e+02 -6.000000e+00 + vertex 7.715798e+01 1.499397e+02 -6.000000e+00 + vertex 7.640954e+01 1.474870e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.715798e+01 1.499397e+02 -6.000000e+00 + vertex 7.732635e+01 1.499848e+02 -6.000000e+00 + vertex 7.640954e+01 1.474870e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.732635e+01 1.499848e+02 -6.000000e+00 + vertex 7.750000e+01 1.500000e+02 -6.000000e+00 + vertex 7.640954e+01 1.474870e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659325e-01 2.587940e-01 0.000000e+00 + outer loop + vertex -7.352279e+01 1.477395e+02 -3.000000e+00 + vertex -7.352279e+01 1.477395e+02 -6.000000e+00 + vertex -7.359046e+01 1.474870e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659254e-01 2.588206e-01 0.000000e+00 + outer loop + vertex 7.647721e+01 1.477395e+02 -3.000000e+00 + vertex 7.647721e+01 1.477395e+02 -6.000000e+00 + vertex 7.640954e+01 1.474870e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.500000e+02 1.490000e+02 -6.000000e+00 + vertex -7.650000e+01 1.480000e+02 -6.000000e+00 + vertex -7.647721e+01 1.477395e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961962e-01 8.713867e-02 -0.000000e+00 + outer loop + vertex -7.650000e+01 1.480000e+02 -6.000000e+00 + vertex -7.650000e+01 1.480000e+02 -3.000000e+00 + vertex -7.647721e+01 1.477395e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961962e-01 8.713867e-02 0.000000e+00 + outer loop + vertex -7.650000e+01 1.480000e+02 -3.000000e+00 + vertex -7.647721e+01 1.477395e+02 -3.000000e+00 + vertex -7.647721e+01 1.477395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.350000e+01 1.480000e+02 -6.000000e+00 + vertex -7.326604e+01 1.496428e+02 -6.000000e+00 + vertex -7.352279e+01 1.477395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.326604e+01 1.496428e+02 -6.000000e+00 + vertex -7.314279e+01 1.497660e+02 -6.000000e+00 + vertex -7.352279e+01 1.477395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.314279e+01 1.497660e+02 -6.000000e+00 + vertex -7.300000e+01 1.498660e+02 -6.000000e+00 + vertex -7.352279e+01 1.477395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.300000e+01 1.498660e+02 -6.000000e+00 + vertex -7.284202e+01 1.499397e+02 -6.000000e+00 + vertex -7.352279e+01 1.477395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.284202e+01 1.499397e+02 -6.000000e+00 + vertex -7.267365e+01 1.499848e+02 -6.000000e+00 + vertex -7.352279e+01 1.477395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.267365e+01 1.499848e+02 -6.000000e+00 + vertex -7.250000e+01 1.500000e+02 -6.000000e+00 + vertex -7.352279e+01 1.477395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.250000e+01 1.500000e+02 -6.000000e+00 + vertex 7.250000e+01 1.500000e+02 -6.000000e+00 + vertex -7.352279e+01 1.477395e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961937e-01 8.716695e-02 0.000000e+00 + outer loop + vertex -7.352279e+01 1.477395e+02 -3.000000e+00 + vertex -7.350000e+01 1.480000e+02 -6.000000e+00 + vertex -7.352279e+01 1.477395e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961937e-01 8.716695e-02 -0.000000e+00 + outer loop + vertex 7.350000e+01 1.480000e+02 -6.000000e+00 + vertex 7.350000e+01 1.480000e+02 -3.000000e+00 + vertex 7.352279e+01 1.477395e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961937e-01 8.716695e-02 0.000000e+00 + outer loop + vertex 7.350000e+01 1.480000e+02 -3.000000e+00 + vertex 7.352279e+01 1.477395e+02 -3.000000e+00 + vertex 7.352279e+01 1.477395e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961962e-01 8.713867e-02 0.000000e+00 + outer loop + vertex 7.647721e+01 1.477395e+02 -3.000000e+00 + vertex 7.650000e+01 1.480000e+02 -6.000000e+00 + vertex 7.647721e+01 1.477395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.673395e+01 1.496428e+02 -6.000000e+00 + vertex 7.685721e+01 1.497660e+02 -6.000000e+00 + vertex 7.647721e+01 1.477395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.650000e+01 1.480000e+02 -6.000000e+00 + vertex 7.673395e+01 1.496428e+02 -6.000000e+00 + vertex 7.647721e+01 1.477395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.685721e+01 1.497660e+02 -6.000000e+00 + vertex 7.700000e+01 1.498660e+02 -6.000000e+00 + vertex 7.647721e+01 1.477395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.700000e+01 1.498660e+02 -6.000000e+00 + vertex 7.715798e+01 1.499397e+02 -6.000000e+00 + vertex 7.647721e+01 1.477395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 1.480000e+02 -3.000000e+00 + vertex -7.800000e+01 1.480000e+02 -3.000000e+00 + vertex -7.647721e+01 1.477395e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961937e-01 8.716695e-02 0.000000e+00 + outer loop + vertex -7.350000e+01 1.480000e+02 -3.000000e+00 + vertex -7.350000e+01 1.480000e+02 -6.000000e+00 + vertex -7.352279e+01 1.477395e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 1.480000e+02 -3.000000e+00 + vertex 7.200000e+01 1.480000e+02 -3.000000e+00 + vertex 7.352279e+01 1.477395e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961962e-01 8.713867e-02 0.000000e+00 + outer loop + vertex 7.650000e+01 1.480000e+02 -3.000000e+00 + vertex 7.650000e+01 1.480000e+02 -6.000000e+00 + vertex 7.647721e+01 1.477395e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.490000e+02 1.500000e+02 -6.000000e+00 + vertex -7.750000e+01 1.500000e+02 -6.000000e+00 + vertex -7.650000e+01 1.480000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.500000e+02 1.490000e+02 -6.000000e+00 + vertex -1.490000e+02 1.500000e+02 -6.000000e+00 + vertex -7.650000e+01 1.480000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.750000e+01 1.500000e+02 -6.000000e+00 + vertex -7.650000e+01 1.490000e+02 -6.000000e+00 + vertex -7.650000e+01 1.480000e+02 -6.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex -7.650000e+01 1.490000e+02 -6.000000e+00 + vertex -7.650000e+01 1.480000e+02 -3.000000e+00 + vertex -7.650000e+01 1.480000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.350000e+01 1.490000e+02 -6.000000e+00 + vertex -7.326604e+01 1.496428e+02 -6.000000e+00 + vertex -7.350000e+01 1.480000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex -7.350000e+01 1.490000e+02 -3.000000e+00 + vertex -7.350000e+01 1.490000e+02 -6.000000e+00 + vertex -7.350000e+01 1.480000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex -7.350000e+01 1.480000e+02 -3.000000e+00 + vertex -7.350000e+01 1.490000e+02 -3.000000e+00 + vertex -7.350000e+01 1.480000e+02 -6.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex 7.350000e+01 1.490000e+02 -6.000000e+00 + vertex 7.350000e+01 1.480000e+02 -3.000000e+00 + vertex 7.350000e+01 1.480000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex 7.650000e+01 1.490000e+02 -3.000000e+00 + vertex 7.650000e+01 1.490000e+02 -6.000000e+00 + vertex 7.650000e+01 1.480000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex 7.650000e+01 1.480000e+02 -3.000000e+00 + vertex 7.650000e+01 1.490000e+02 -3.000000e+00 + vertex 7.650000e+01 1.480000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.650000e+01 1.490000e+02 -6.000000e+00 + vertex 7.673395e+01 1.496428e+02 -6.000000e+00 + vertex 7.650000e+01 1.480000e+02 -6.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex -7.800000e+01 1.490000e+02 -3.000000e+00 + vertex -7.800000e+01 1.480000e+02 0.000000e+00 + vertex -7.800000e+01 1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 1.480000e+02 -3.000000e+00 + vertex -7.800000e+01 1.490000e+02 -3.000000e+00 + vertex -7.800000e+01 1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex -7.650000e+01 1.490000e+02 -6.000000e+00 + vertex -7.650000e+01 1.490000e+02 -3.000000e+00 + vertex -7.650000e+01 1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 1.490000e+02 -3.000000e+00 + vertex -7.800000e+01 1.490000e+02 -3.000000e+00 + vertex -7.650000e+01 1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 1.480000e+02 -3.000000e+00 + vertex -7.350000e+01 1.490000e+02 -3.000000e+00 + vertex -7.350000e+01 1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex -7.200000e+01 1.490000e+02 0.000000e+00 + vertex -7.200000e+01 1.490000e+02 -3.000000e+00 + vertex -7.200000e+01 1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex -7.200000e+01 1.480000e+02 0.000000e+00 + vertex -7.200000e+01 1.490000e+02 0.000000e+00 + vertex -7.200000e+01 1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 1.490000e+02 -3.000000e+00 + vertex -7.350000e+01 1.490000e+02 -3.000000e+00 + vertex -7.200000e+01 1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex 7.200000e+01 1.490000e+02 -3.000000e+00 + vertex 7.200000e+01 1.480000e+02 0.000000e+00 + vertex 7.200000e+01 1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 1.480000e+02 -3.000000e+00 + vertex 7.200000e+01 1.490000e+02 -3.000000e+00 + vertex 7.200000e+01 1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex 7.350000e+01 1.490000e+02 -6.000000e+00 + vertex 7.350000e+01 1.490000e+02 -3.000000e+00 + vertex 7.350000e+01 1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 1.490000e+02 -3.000000e+00 + vertex 7.200000e+01 1.490000e+02 -3.000000e+00 + vertex 7.350000e+01 1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.800000e+01 1.480000e+02 -3.000000e+00 + vertex 7.650000e+01 1.490000e+02 -3.000000e+00 + vertex 7.650000e+01 1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex 7.800000e+01 1.490000e+02 0.000000e+00 + vertex 7.800000e+01 1.490000e+02 -3.000000e+00 + vertex 7.800000e+01 1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex 7.800000e+01 1.480000e+02 0.000000e+00 + vertex 7.800000e+01 1.490000e+02 0.000000e+00 + vertex 7.800000e+01 1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.800000e+01 1.490000e+02 -3.000000e+00 + vertex 7.650000e+01 1.490000e+02 -3.000000e+00 + vertex 7.800000e+01 1.480000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.800000e+01 1.490000e+02 0.000000e+00 + vertex -1.500000e+02 1.490000e+02 0.000000e+00 + vertex -7.800000e+01 1.480000e+02 0.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex -7.800000e+01 1.490000e+02 -3.000000e+00 + vertex -7.800000e+01 1.490000e+02 0.000000e+00 + vertex -7.800000e+01 1.480000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.100000e+01 1.500000e+02 0.000000e+00 + vertex -7.100000e+01 1.500000e+02 0.000000e+00 + vertex -7.200000e+01 1.480000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.100000e+01 1.500000e+02 0.000000e+00 + vertex -7.200000e+01 1.490000e+02 0.000000e+00 + vertex -7.200000e+01 1.480000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.200000e+01 1.490000e+02 0.000000e+00 + vertex 7.176604e+01 1.496428e+02 0.000000e+00 + vertex 7.200000e+01 1.480000e+02 0.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex 7.200000e+01 1.490000e+02 -3.000000e+00 + vertex 7.200000e+01 1.490000e+02 0.000000e+00 + vertex 7.200000e+01 1.480000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.500000e+02 1.490000e+02 0.000000e+00 + vertex 7.800000e+01 1.490000e+02 0.000000e+00 + vertex 7.800000e+01 1.480000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -1.499848e+02 1.491736e+02 -6.000000e+00 + vertex -1.490000e+02 1.500000e+02 -6.000000e+00 + vertex -1.500000e+02 1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961910e-01 8.719770e-02 0.000000e+00 + outer loop + vertex -1.499848e+02 1.491736e+02 0.000000e+00 + vertex -1.499848e+02 1.491736e+02 -6.000000e+00 + vertex -1.500000e+02 1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961910e-01 8.719770e-02 0.000000e+00 + outer loop + vertex -1.500000e+02 1.490000e+02 0.000000e+00 + vertex -1.499848e+02 1.491736e+02 0.000000e+00 + vertex -1.500000e+02 1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.750000e+01 1.500000e+02 -6.000000e+00 + vertex -7.651519e+01 1.491736e+02 -6.000000e+00 + vertex -7.650000e+01 1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961947e-01 8.715528e-02 0.000000e+00 + outer loop + vertex -7.651519e+01 1.491736e+02 -6.000000e+00 + vertex -7.650000e+01 1.490000e+02 -3.000000e+00 + vertex -7.650000e+01 1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.348481e+01 1.491736e+02 -6.000000e+00 + vertex -7.326604e+01 1.496428e+02 -6.000000e+00 + vertex -7.350000e+01 1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961947e-01 8.715528e-02 0.000000e+00 + outer loop + vertex -7.350000e+01 1.490000e+02 -3.000000e+00 + vertex -7.348481e+01 1.491736e+02 -3.000000e+00 + vertex -7.350000e+01 1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961947e-01 8.715528e-02 0.000000e+00 + outer loop + vertex -7.348481e+01 1.491736e+02 -3.000000e+00 + vertex -7.348481e+01 1.491736e+02 -6.000000e+00 + vertex -7.350000e+01 1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.250000e+01 1.500000e+02 -6.000000e+00 + vertex 7.348481e+01 1.491736e+02 -6.000000e+00 + vertex 7.350000e+01 1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961947e-01 8.715528e-02 0.000000e+00 + outer loop + vertex 7.348481e+01 1.491736e+02 -6.000000e+00 + vertex 7.350000e+01 1.490000e+02 -3.000000e+00 + vertex 7.350000e+01 1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.651519e+01 1.491736e+02 -6.000000e+00 + vertex 7.673395e+01 1.496428e+02 -6.000000e+00 + vertex 7.650000e+01 1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961947e-01 8.715528e-02 0.000000e+00 + outer loop + vertex 7.650000e+01 1.490000e+02 -3.000000e+00 + vertex 7.651519e+01 1.491736e+02 -3.000000e+00 + vertex 7.650000e+01 1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961947e-01 8.715528e-02 0.000000e+00 + outer loop + vertex 7.651519e+01 1.491736e+02 -3.000000e+00 + vertex 7.651519e+01 1.491736e+02 -6.000000e+00 + vertex 7.650000e+01 1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961910e-01 8.719770e-02 0.000000e+00 + outer loop + vertex 1.499848e+02 1.491736e+02 -6.000000e+00 + vertex 1.500000e+02 1.490000e+02 0.000000e+00 + vertex 1.500000e+02 1.490000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 1.490000e+02 -3.000000e+00 + vertex -7.651519e+01 1.491736e+02 -3.000000e+00 + vertex -7.800000e+01 1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.651519e+01 1.491736e+02 -3.000000e+00 + vertex -7.656031e+01 1.493420e+02 -3.000000e+00 + vertex -7.800000e+01 1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.656031e+01 1.493420e+02 -3.000000e+00 + vertex -7.801519e+01 1.491736e+02 -3.000000e+00 + vertex -7.800000e+01 1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961947e-01 8.715528e-02 0.000000e+00 + outer loop + vertex -7.801519e+01 1.491736e+02 -3.000000e+00 + vertex -7.800000e+01 1.490000e+02 0.000000e+00 + vertex -7.800000e+01 1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961947e-01 8.715528e-02 -0.000000e+00 + outer loop + vertex -7.651519e+01 1.491736e+02 -6.000000e+00 + vertex -7.651519e+01 1.491736e+02 -3.000000e+00 + vertex -7.650000e+01 1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 1.490000e+02 -3.000000e+00 + vertex -7.348481e+01 1.491736e+02 -3.000000e+00 + vertex -7.350000e+01 1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.198481e+01 1.491736e+02 -3.000000e+00 + vertex -7.336602e+01 1.495000e+02 -3.000000e+00 + vertex -7.200000e+01 1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.336602e+01 1.495000e+02 -3.000000e+00 + vertex -7.343969e+01 1.493420e+02 -3.000000e+00 + vertex -7.200000e+01 1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.343969e+01 1.493420e+02 -3.000000e+00 + vertex -7.348481e+01 1.491736e+02 -3.000000e+00 + vertex -7.200000e+01 1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961947e-01 8.715528e-02 0.000000e+00 + outer loop + vertex -7.200000e+01 1.490000e+02 0.000000e+00 + vertex -7.198481e+01 1.491736e+02 0.000000e+00 + vertex -7.200000e+01 1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961947e-01 8.715528e-02 0.000000e+00 + outer loop + vertex -7.198481e+01 1.491736e+02 0.000000e+00 + vertex -7.198481e+01 1.491736e+02 -3.000000e+00 + vertex -7.200000e+01 1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 1.490000e+02 -3.000000e+00 + vertex 7.348481e+01 1.491736e+02 -3.000000e+00 + vertex 7.200000e+01 1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.348481e+01 1.491736e+02 -3.000000e+00 + vertex 7.343969e+01 1.493420e+02 -3.000000e+00 + vertex 7.200000e+01 1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.343969e+01 1.493420e+02 -3.000000e+00 + vertex 7.198481e+01 1.491736e+02 -3.000000e+00 + vertex 7.200000e+01 1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961947e-01 8.715528e-02 0.000000e+00 + outer loop + vertex 7.198481e+01 1.491736e+02 -3.000000e+00 + vertex 7.200000e+01 1.490000e+02 0.000000e+00 + vertex 7.200000e+01 1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961947e-01 8.715528e-02 -0.000000e+00 + outer loop + vertex 7.348481e+01 1.491736e+02 -6.000000e+00 + vertex 7.348481e+01 1.491736e+02 -3.000000e+00 + vertex 7.350000e+01 1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.800000e+01 1.490000e+02 -3.000000e+00 + vertex 7.651519e+01 1.491736e+02 -3.000000e+00 + vertex 7.650000e+01 1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.801519e+01 1.491736e+02 -3.000000e+00 + vertex 7.663397e+01 1.495000e+02 -3.000000e+00 + vertex 7.800000e+01 1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.663397e+01 1.495000e+02 -3.000000e+00 + vertex 7.656031e+01 1.493420e+02 -3.000000e+00 + vertex 7.800000e+01 1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.656031e+01 1.493420e+02 -3.000000e+00 + vertex 7.651519e+01 1.491736e+02 -3.000000e+00 + vertex 7.800000e+01 1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961947e-01 8.715528e-02 0.000000e+00 + outer loop + vertex 7.800000e+01 1.490000e+02 0.000000e+00 + vertex 7.801519e+01 1.491736e+02 0.000000e+00 + vertex 7.800000e+01 1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961947e-01 8.715528e-02 0.000000e+00 + outer loop + vertex 7.801519e+01 1.491736e+02 0.000000e+00 + vertex 7.801519e+01 1.491736e+02 -3.000000e+00 + vertex 7.800000e+01 1.490000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.900000e+01 1.500000e+02 0.000000e+00 + vertex -1.490000e+02 1.500000e+02 0.000000e+00 + vertex -1.500000e+02 1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.800000e+01 1.490000e+02 0.000000e+00 + vertex -7.900000e+01 1.500000e+02 0.000000e+00 + vertex -1.500000e+02 1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.490000e+02 1.500000e+02 0.000000e+00 + vertex -1.491736e+02 1.499848e+02 0.000000e+00 + vertex -1.500000e+02 1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.491736e+02 1.499848e+02 0.000000e+00 + vertex -1.493420e+02 1.499397e+02 0.000000e+00 + vertex -1.500000e+02 1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.493420e+02 1.499397e+02 0.000000e+00 + vertex -1.495000e+02 1.498660e+02 0.000000e+00 + vertex -1.500000e+02 1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.495000e+02 1.498660e+02 0.000000e+00 + vertex -1.496428e+02 1.497660e+02 0.000000e+00 + vertex -1.500000e+02 1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.496428e+02 1.497660e+02 0.000000e+00 + vertex -1.497660e+02 1.496428e+02 0.000000e+00 + vertex -1.500000e+02 1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.497660e+02 1.496428e+02 0.000000e+00 + vertex -1.499848e+02 1.491736e+02 0.000000e+00 + vertex -1.500000e+02 1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.801519e+01 1.491736e+02 0.000000e+00 + vertex -7.900000e+01 1.500000e+02 0.000000e+00 + vertex -7.800000e+01 1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 9.961947e-01 8.715528e-02 -0.000000e+00 + outer loop + vertex -7.801519e+01 1.491736e+02 -3.000000e+00 + vertex -7.801519e+01 1.491736e+02 0.000000e+00 + vertex -7.800000e+01 1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.100000e+01 1.500000e+02 0.000000e+00 + vertex -7.198481e+01 1.491736e+02 0.000000e+00 + vertex -7.200000e+01 1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.198481e+01 1.491736e+02 0.000000e+00 + vertex 7.176604e+01 1.496428e+02 0.000000e+00 + vertex 7.200000e+01 1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 9.961947e-01 8.715528e-02 -0.000000e+00 + outer loop + vertex 7.198481e+01 1.491736e+02 -3.000000e+00 + vertex 7.198481e+01 1.491736e+02 0.000000e+00 + vertex 7.200000e+01 1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.900000e+01 1.500000e+02 0.000000e+00 + vertex 7.801519e+01 1.491736e+02 0.000000e+00 + vertex 7.800000e+01 1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.490000e+02 1.500000e+02 0.000000e+00 + vertex 7.900000e+01 1.500000e+02 0.000000e+00 + vertex 7.800000e+01 1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.500000e+02 1.490000e+02 0.000000e+00 + vertex 1.490000e+02 1.500000e+02 0.000000e+00 + vertex 7.800000e+01 1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.499848e+02 1.491736e+02 0.000000e+00 + vertex 1.490000e+02 1.500000e+02 0.000000e+00 + vertex 1.500000e+02 1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 9.961910e-01 8.719770e-02 -0.000000e+00 + outer loop + vertex 1.499848e+02 1.491736e+02 -6.000000e+00 + vertex 1.499848e+02 1.491736e+02 0.000000e+00 + vertex 1.500000e+02 1.490000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -1.499397e+02 1.493420e+02 -6.000000e+00 + vertex -1.490000e+02 1.500000e+02 -6.000000e+00 + vertex -1.499848e+02 1.491736e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659164e-01 2.588543e-01 0.000000e+00 + outer loop + vertex -1.499397e+02 1.493420e+02 0.000000e+00 + vertex -1.499397e+02 1.493420e+02 -6.000000e+00 + vertex -1.499848e+02 1.491736e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659164e-01 2.588543e-01 0.000000e+00 + outer loop + vertex -1.499848e+02 1.491736e+02 0.000000e+00 + vertex -1.499397e+02 1.493420e+02 0.000000e+00 + vertex -1.499848e+02 1.491736e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.750000e+01 1.500000e+02 -6.000000e+00 + vertex -7.656031e+01 1.493420e+02 -6.000000e+00 + vertex -7.651519e+01 1.491736e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659164e-01 2.588543e-01 0.000000e+00 + outer loop + vertex -7.656031e+01 1.493420e+02 -6.000000e+00 + vertex -7.651519e+01 1.491736e+02 -3.000000e+00 + vertex -7.651519e+01 1.491736e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.343969e+01 1.493420e+02 -6.000000e+00 + vertex -7.326604e+01 1.496428e+02 -6.000000e+00 + vertex -7.348481e+01 1.491736e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex -7.348481e+01 1.491736e+02 -3.000000e+00 + vertex -7.343969e+01 1.493420e+02 -3.000000e+00 + vertex -7.348481e+01 1.491736e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex -7.343969e+01 1.493420e+02 -3.000000e+00 + vertex -7.343969e+01 1.493420e+02 -6.000000e+00 + vertex -7.348481e+01 1.491736e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.250000e+01 1.500000e+02 -6.000000e+00 + vertex 7.343969e+01 1.493420e+02 -6.000000e+00 + vertex 7.348481e+01 1.491736e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex 7.343969e+01 1.493420e+02 -6.000000e+00 + vertex 7.348481e+01 1.491736e+02 -3.000000e+00 + vertex 7.348481e+01 1.491736e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.656031e+01 1.493420e+02 -6.000000e+00 + vertex 7.673395e+01 1.496428e+02 -6.000000e+00 + vertex 7.651519e+01 1.491736e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659164e-01 2.588543e-01 0.000000e+00 + outer loop + vertex 7.651519e+01 1.491736e+02 -3.000000e+00 + vertex 7.656031e+01 1.493420e+02 -3.000000e+00 + vertex 7.651519e+01 1.491736e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659164e-01 2.588543e-01 0.000000e+00 + outer loop + vertex 7.656031e+01 1.493420e+02 -3.000000e+00 + vertex 7.656031e+01 1.493420e+02 -6.000000e+00 + vertex 7.651519e+01 1.491736e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659164e-01 2.588543e-01 0.000000e+00 + outer loop + vertex 1.499397e+02 1.493420e+02 -6.000000e+00 + vertex 1.499848e+02 1.491736e+02 0.000000e+00 + vertex 1.499848e+02 1.491736e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.673395e+01 1.496428e+02 -3.000000e+00 + vertex -7.806031e+01 1.493420e+02 -3.000000e+00 + vertex -7.801519e+01 1.491736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.656031e+01 1.493420e+02 -3.000000e+00 + vertex -7.663397e+01 1.495000e+02 -3.000000e+00 + vertex -7.801519e+01 1.491736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.663397e+01 1.495000e+02 -3.000000e+00 + vertex -7.673395e+01 1.496428e+02 -3.000000e+00 + vertex -7.801519e+01 1.491736e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex -7.806031e+01 1.493420e+02 -3.000000e+00 + vertex -7.801519e+01 1.491736e+02 0.000000e+00 + vertex -7.801519e+01 1.491736e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659164e-01 2.588543e-01 -0.000000e+00 + outer loop + vertex -7.656031e+01 1.493420e+02 -6.000000e+00 + vertex -7.656031e+01 1.493420e+02 -3.000000e+00 + vertex -7.651519e+01 1.491736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.193969e+01 1.493420e+02 -3.000000e+00 + vertex -7.326604e+01 1.496428e+02 -3.000000e+00 + vertex -7.198481e+01 1.491736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.326604e+01 1.496428e+02 -3.000000e+00 + vertex -7.336602e+01 1.495000e+02 -3.000000e+00 + vertex -7.198481e+01 1.491736e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex -7.198481e+01 1.491736e+02 0.000000e+00 + vertex -7.193969e+01 1.493420e+02 0.000000e+00 + vertex -7.198481e+01 1.491736e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex -7.193969e+01 1.493420e+02 0.000000e+00 + vertex -7.193969e+01 1.493420e+02 -3.000000e+00 + vertex -7.198481e+01 1.491736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.326604e+01 1.496428e+02 -3.000000e+00 + vertex 7.193969e+01 1.493420e+02 -3.000000e+00 + vertex 7.198481e+01 1.491736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.343969e+01 1.493420e+02 -3.000000e+00 + vertex 7.336602e+01 1.495000e+02 -3.000000e+00 + vertex 7.198481e+01 1.491736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.336602e+01 1.495000e+02 -3.000000e+00 + vertex 7.326604e+01 1.496428e+02 -3.000000e+00 + vertex 7.198481e+01 1.491736e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex 7.193969e+01 1.493420e+02 -3.000000e+00 + vertex 7.198481e+01 1.491736e+02 0.000000e+00 + vertex 7.198481e+01 1.491736e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 2.588144e-01 -0.000000e+00 + outer loop + vertex 7.343969e+01 1.493420e+02 -6.000000e+00 + vertex 7.343969e+01 1.493420e+02 -3.000000e+00 + vertex 7.348481e+01 1.491736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.806031e+01 1.493420e+02 -3.000000e+00 + vertex 7.673395e+01 1.496428e+02 -3.000000e+00 + vertex 7.801519e+01 1.491736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.673395e+01 1.496428e+02 -3.000000e+00 + vertex 7.663397e+01 1.495000e+02 -3.000000e+00 + vertex 7.801519e+01 1.491736e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex 7.801519e+01 1.491736e+02 0.000000e+00 + vertex 7.806031e+01 1.493420e+02 0.000000e+00 + vertex 7.801519e+01 1.491736e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex 7.806031e+01 1.493420e+02 0.000000e+00 + vertex 7.806031e+01 1.493420e+02 -3.000000e+00 + vertex 7.801519e+01 1.491736e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.497660e+02 1.496428e+02 0.000000e+00 + vertex -1.499397e+02 1.493420e+02 0.000000e+00 + vertex -1.499848e+02 1.491736e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.806031e+01 1.493420e+02 0.000000e+00 + vertex -7.900000e+01 1.500000e+02 0.000000e+00 + vertex -7.801519e+01 1.491736e+02 0.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 2.588144e-01 -0.000000e+00 + outer loop + vertex -7.806031e+01 1.493420e+02 -3.000000e+00 + vertex -7.806031e+01 1.493420e+02 0.000000e+00 + vertex -7.801519e+01 1.491736e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.100000e+01 1.500000e+02 0.000000e+00 + vertex -7.193969e+01 1.493420e+02 0.000000e+00 + vertex -7.198481e+01 1.491736e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.193969e+01 1.493420e+02 0.000000e+00 + vertex 7.176604e+01 1.496428e+02 0.000000e+00 + vertex 7.198481e+01 1.491736e+02 0.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 2.588144e-01 -0.000000e+00 + outer loop + vertex 7.193969e+01 1.493420e+02 -3.000000e+00 + vertex 7.193969e+01 1.493420e+02 0.000000e+00 + vertex 7.198481e+01 1.491736e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.900000e+01 1.500000e+02 0.000000e+00 + vertex 7.806031e+01 1.493420e+02 0.000000e+00 + vertex 7.801519e+01 1.491736e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.499397e+02 1.493420e+02 0.000000e+00 + vertex 1.490000e+02 1.500000e+02 0.000000e+00 + vertex 1.499848e+02 1.491736e+02 0.000000e+00 + endloop + endfacet + facet normal 9.659164e-01 2.588543e-01 -0.000000e+00 + outer loop + vertex 1.499397e+02 1.493420e+02 -6.000000e+00 + vertex 1.499397e+02 1.493420e+02 0.000000e+00 + vertex 1.499848e+02 1.491736e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -1.498660e+02 1.495000e+02 -6.000000e+00 + vertex -1.490000e+02 1.500000e+02 -6.000000e+00 + vertex -1.499397e+02 1.493420e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063338e-01 4.225625e-01 0.000000e+00 + outer loop + vertex -1.498660e+02 1.495000e+02 0.000000e+00 + vertex -1.498660e+02 1.495000e+02 -6.000000e+00 + vertex -1.499397e+02 1.493420e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063338e-01 4.225625e-01 0.000000e+00 + outer loop + vertex -1.499397e+02 1.493420e+02 0.000000e+00 + vertex -1.498660e+02 1.495000e+02 0.000000e+00 + vertex -1.499397e+02 1.493420e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.750000e+01 1.500000e+02 -6.000000e+00 + vertex -7.663397e+01 1.495000e+02 -6.000000e+00 + vertex -7.656031e+01 1.493420e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063174e-01 4.225976e-01 0.000000e+00 + outer loop + vertex -7.663397e+01 1.495000e+02 -6.000000e+00 + vertex -7.656031e+01 1.493420e+02 -3.000000e+00 + vertex -7.656031e+01 1.493420e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.336602e+01 1.495000e+02 -6.000000e+00 + vertex -7.326604e+01 1.496428e+02 -6.000000e+00 + vertex -7.343969e+01 1.493420e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex -7.343969e+01 1.493420e+02 -3.000000e+00 + vertex -7.336602e+01 1.495000e+02 -3.000000e+00 + vertex -7.343969e+01 1.493420e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex -7.336602e+01 1.495000e+02 -3.000000e+00 + vertex -7.336602e+01 1.495000e+02 -6.000000e+00 + vertex -7.343969e+01 1.493420e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.250000e+01 1.500000e+02 -6.000000e+00 + vertex 7.336602e+01 1.495000e+02 -6.000000e+00 + vertex 7.343969e+01 1.493420e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex 7.336602e+01 1.495000e+02 -6.000000e+00 + vertex 7.343969e+01 1.493420e+02 -3.000000e+00 + vertex 7.343969e+01 1.493420e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.663397e+01 1.495000e+02 -6.000000e+00 + vertex 7.673395e+01 1.496428e+02 -6.000000e+00 + vertex 7.656031e+01 1.493420e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063174e-01 4.225976e-01 0.000000e+00 + outer loop + vertex 7.656031e+01 1.493420e+02 -3.000000e+00 + vertex 7.663397e+01 1.495000e+02 -3.000000e+00 + vertex 7.656031e+01 1.493420e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063174e-01 4.225976e-01 0.000000e+00 + outer loop + vertex 7.663397e+01 1.495000e+02 -3.000000e+00 + vertex 7.663397e+01 1.495000e+02 -6.000000e+00 + vertex 7.656031e+01 1.493420e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063338e-01 4.225625e-01 0.000000e+00 + outer loop + vertex 1.498660e+02 1.495000e+02 -6.000000e+00 + vertex 1.499397e+02 1.493420e+02 0.000000e+00 + vertex 1.499397e+02 1.493420e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.673395e+01 1.496428e+02 -3.000000e+00 + vertex -7.685721e+01 1.497660e+02 -3.000000e+00 + vertex -7.806031e+01 1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.715798e+01 1.499397e+02 -3.000000e+00 + vertex -7.813398e+01 1.495000e+02 -3.000000e+00 + vertex -7.806031e+01 1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.700000e+01 1.498660e+02 -3.000000e+00 + vertex -7.715798e+01 1.499397e+02 -3.000000e+00 + vertex -7.806031e+01 1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.685721e+01 1.497660e+02 -3.000000e+00 + vertex -7.700000e+01 1.498660e+02 -3.000000e+00 + vertex -7.806031e+01 1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex -7.813398e+01 1.495000e+02 -3.000000e+00 + vertex -7.806031e+01 1.493420e+02 0.000000e+00 + vertex -7.806031e+01 1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063174e-01 4.225976e-01 -0.000000e+00 + outer loop + vertex -7.663397e+01 1.495000e+02 -6.000000e+00 + vertex -7.663397e+01 1.495000e+02 -3.000000e+00 + vertex -7.656031e+01 1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.300000e+01 1.498660e+02 -3.000000e+00 + vertex -7.314279e+01 1.497660e+02 -3.000000e+00 + vertex -7.193969e+01 1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.314279e+01 1.497660e+02 -3.000000e+00 + vertex -7.326604e+01 1.496428e+02 -3.000000e+00 + vertex -7.193969e+01 1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.186603e+01 1.495000e+02 -3.000000e+00 + vertex -7.267365e+01 1.499848e+02 -3.000000e+00 + vertex -7.193969e+01 1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.267365e+01 1.499848e+02 -3.000000e+00 + vertex -7.284202e+01 1.499397e+02 -3.000000e+00 + vertex -7.193969e+01 1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.284202e+01 1.499397e+02 -3.000000e+00 + vertex -7.300000e+01 1.498660e+02 -3.000000e+00 + vertex -7.193969e+01 1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063174e-01 4.225976e-01 0.000000e+00 + outer loop + vertex -7.193969e+01 1.493420e+02 0.000000e+00 + vertex -7.186603e+01 1.495000e+02 0.000000e+00 + vertex -7.193969e+01 1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063174e-01 4.225976e-01 0.000000e+00 + outer loop + vertex -7.186603e+01 1.495000e+02 0.000000e+00 + vertex -7.186603e+01 1.495000e+02 -3.000000e+00 + vertex -7.193969e+01 1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.326604e+01 1.496428e+02 -3.000000e+00 + vertex 7.314279e+01 1.497660e+02 -3.000000e+00 + vertex 7.193969e+01 1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.284202e+01 1.499397e+02 -3.000000e+00 + vertex 7.186603e+01 1.495000e+02 -3.000000e+00 + vertex 7.193969e+01 1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.300000e+01 1.498660e+02 -3.000000e+00 + vertex 7.284202e+01 1.499397e+02 -3.000000e+00 + vertex 7.193969e+01 1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.314279e+01 1.497660e+02 -3.000000e+00 + vertex 7.300000e+01 1.498660e+02 -3.000000e+00 + vertex 7.193969e+01 1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063174e-01 4.225976e-01 0.000000e+00 + outer loop + vertex 7.186603e+01 1.495000e+02 -3.000000e+00 + vertex 7.193969e+01 1.493420e+02 0.000000e+00 + vertex 7.193969e+01 1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 4.226327e-01 -0.000000e+00 + outer loop + vertex 7.336602e+01 1.495000e+02 -6.000000e+00 + vertex 7.336602e+01 1.495000e+02 -3.000000e+00 + vertex 7.343969e+01 1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.813398e+01 1.495000e+02 -3.000000e+00 + vertex 7.732635e+01 1.499848e+02 -3.000000e+00 + vertex 7.806031e+01 1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.732635e+01 1.499848e+02 -3.000000e+00 + vertex 7.715798e+01 1.499397e+02 -3.000000e+00 + vertex 7.806031e+01 1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.715798e+01 1.499397e+02 -3.000000e+00 + vertex 7.700000e+01 1.498660e+02 -3.000000e+00 + vertex 7.806031e+01 1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.700000e+01 1.498660e+02 -3.000000e+00 + vertex 7.685721e+01 1.497660e+02 -3.000000e+00 + vertex 7.806031e+01 1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.685721e+01 1.497660e+02 -3.000000e+00 + vertex 7.673395e+01 1.496428e+02 -3.000000e+00 + vertex 7.806031e+01 1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex 7.806031e+01 1.493420e+02 0.000000e+00 + vertex 7.813398e+01 1.495000e+02 0.000000e+00 + vertex 7.806031e+01 1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex 7.813398e+01 1.495000e+02 0.000000e+00 + vertex 7.813398e+01 1.495000e+02 -3.000000e+00 + vertex 7.806031e+01 1.493420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.497660e+02 1.496428e+02 0.000000e+00 + vertex -1.498660e+02 1.495000e+02 0.000000e+00 + vertex -1.499397e+02 1.493420e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.813398e+01 1.495000e+02 0.000000e+00 + vertex -7.900000e+01 1.500000e+02 0.000000e+00 + vertex -7.806031e+01 1.493420e+02 0.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 4.226327e-01 -0.000000e+00 + outer loop + vertex -7.813398e+01 1.495000e+02 -3.000000e+00 + vertex -7.813398e+01 1.495000e+02 0.000000e+00 + vertex -7.806031e+01 1.493420e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.100000e+01 1.500000e+02 0.000000e+00 + vertex -7.186603e+01 1.495000e+02 0.000000e+00 + vertex -7.193969e+01 1.493420e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.186603e+01 1.495000e+02 0.000000e+00 + vertex 7.176604e+01 1.496428e+02 0.000000e+00 + vertex 7.193969e+01 1.493420e+02 0.000000e+00 + endloop + endfacet + facet normal 9.063174e-01 4.225976e-01 -0.000000e+00 + outer loop + vertex 7.186603e+01 1.495000e+02 -3.000000e+00 + vertex 7.186603e+01 1.495000e+02 0.000000e+00 + vertex 7.193969e+01 1.493420e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.900000e+01 1.500000e+02 0.000000e+00 + vertex 7.813398e+01 1.495000e+02 0.000000e+00 + vertex 7.806031e+01 1.493420e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.498660e+02 1.495000e+02 0.000000e+00 + vertex 1.490000e+02 1.500000e+02 0.000000e+00 + vertex 1.499397e+02 1.493420e+02 0.000000e+00 + endloop + endfacet + facet normal 9.063338e-01 4.225625e-01 -0.000000e+00 + outer loop + vertex 1.498660e+02 1.495000e+02 -6.000000e+00 + vertex 1.498660e+02 1.495000e+02 0.000000e+00 + vertex 1.499397e+02 1.493420e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -1.497660e+02 1.496428e+02 -6.000000e+00 + vertex -1.490000e+02 1.500000e+02 -6.000000e+00 + vertex -1.498660e+02 1.495000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191275e-01 5.736115e-01 0.000000e+00 + outer loop + vertex -1.497660e+02 1.496428e+02 0.000000e+00 + vertex -1.497660e+02 1.496428e+02 -6.000000e+00 + vertex -1.498660e+02 1.495000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191275e-01 5.736115e-01 0.000000e+00 + outer loop + vertex -1.498660e+02 1.495000e+02 0.000000e+00 + vertex -1.497660e+02 1.496428e+02 0.000000e+00 + vertex -1.498660e+02 1.495000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.750000e+01 1.500000e+02 -6.000000e+00 + vertex -7.673395e+01 1.496428e+02 -6.000000e+00 + vertex -7.663397e+01 1.495000e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191476e-01 5.735828e-01 0.000000e+00 + outer loop + vertex -7.673395e+01 1.496428e+02 -6.000000e+00 + vertex -7.663397e+01 1.495000e+02 -3.000000e+00 + vertex -7.663397e+01 1.495000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191476e-01 5.735828e-01 0.000000e+00 + outer loop + vertex -7.336602e+01 1.495000e+02 -3.000000e+00 + vertex -7.326604e+01 1.496428e+02 -3.000000e+00 + vertex -7.336602e+01 1.495000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191476e-01 5.735828e-01 0.000000e+00 + outer loop + vertex -7.326604e+01 1.496428e+02 -3.000000e+00 + vertex -7.326604e+01 1.496428e+02 -6.000000e+00 + vertex -7.336602e+01 1.495000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.250000e+01 1.500000e+02 -6.000000e+00 + vertex 7.326604e+01 1.496428e+02 -6.000000e+00 + vertex 7.336602e+01 1.495000e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191476e-01 5.735828e-01 0.000000e+00 + outer loop + vertex 7.326604e+01 1.496428e+02 -6.000000e+00 + vertex 7.336602e+01 1.495000e+02 -3.000000e+00 + vertex 7.336602e+01 1.495000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191476e-01 5.735828e-01 0.000000e+00 + outer loop + vertex 7.663397e+01 1.495000e+02 -3.000000e+00 + vertex 7.673395e+01 1.496428e+02 -3.000000e+00 + vertex 7.663397e+01 1.495000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191476e-01 5.735828e-01 0.000000e+00 + outer loop + vertex 7.673395e+01 1.496428e+02 -3.000000e+00 + vertex 7.673395e+01 1.496428e+02 -6.000000e+00 + vertex 7.663397e+01 1.495000e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191275e-01 5.736115e-01 0.000000e+00 + outer loop + vertex 1.497660e+02 1.496428e+02 -6.000000e+00 + vertex 1.498660e+02 1.495000e+02 0.000000e+00 + vertex 1.498660e+02 1.495000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.732635e+01 1.499848e+02 -3.000000e+00 + vertex -7.823396e+01 1.496428e+02 -3.000000e+00 + vertex -7.813398e+01 1.495000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.715798e+01 1.499397e+02 -3.000000e+00 + vertex -7.732635e+01 1.499848e+02 -3.000000e+00 + vertex -7.813398e+01 1.495000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191476e-01 5.735828e-01 0.000000e+00 + outer loop + vertex -7.823396e+01 1.496428e+02 -3.000000e+00 + vertex -7.813398e+01 1.495000e+02 0.000000e+00 + vertex -7.813398e+01 1.495000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191476e-01 5.735828e-01 -0.000000e+00 + outer loop + vertex -7.673395e+01 1.496428e+02 -6.000000e+00 + vertex -7.673395e+01 1.496428e+02 -3.000000e+00 + vertex -7.663397e+01 1.495000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.176604e+01 1.496428e+02 -3.000000e+00 + vertex -7.250000e+01 1.500000e+02 -3.000000e+00 + vertex -7.186603e+01 1.495000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.250000e+01 1.500000e+02 -3.000000e+00 + vertex -7.267365e+01 1.499848e+02 -3.000000e+00 + vertex -7.186603e+01 1.495000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191275e-01 5.736115e-01 0.000000e+00 + outer loop + vertex -7.186603e+01 1.495000e+02 0.000000e+00 + vertex -7.176604e+01 1.496428e+02 0.000000e+00 + vertex -7.186603e+01 1.495000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191275e-01 5.736115e-01 0.000000e+00 + outer loop + vertex -7.176604e+01 1.496428e+02 0.000000e+00 + vertex -7.176604e+01 1.496428e+02 -3.000000e+00 + vertex -7.186603e+01 1.495000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.267365e+01 1.499848e+02 -3.000000e+00 + vertex 7.176604e+01 1.496428e+02 -3.000000e+00 + vertex 7.186603e+01 1.495000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.284202e+01 1.499397e+02 -3.000000e+00 + vertex 7.267365e+01 1.499848e+02 -3.000000e+00 + vertex 7.186603e+01 1.495000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191275e-01 5.736115e-01 0.000000e+00 + outer loop + vertex 7.176604e+01 1.496428e+02 -3.000000e+00 + vertex 7.186603e+01 1.495000e+02 0.000000e+00 + vertex 7.186603e+01 1.495000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191476e-01 5.735828e-01 -0.000000e+00 + outer loop + vertex 7.326604e+01 1.496428e+02 -6.000000e+00 + vertex 7.326604e+01 1.496428e+02 -3.000000e+00 + vertex 7.336602e+01 1.495000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.823396e+01 1.496428e+02 -3.000000e+00 + vertex 7.750000e+01 1.500000e+02 -3.000000e+00 + vertex 7.813398e+01 1.495000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.750000e+01 1.500000e+02 -3.000000e+00 + vertex 7.732635e+01 1.499848e+02 -3.000000e+00 + vertex 7.813398e+01 1.495000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191476e-01 5.735828e-01 0.000000e+00 + outer loop + vertex 7.813398e+01 1.495000e+02 0.000000e+00 + vertex 7.823396e+01 1.496428e+02 0.000000e+00 + vertex 7.813398e+01 1.495000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191476e-01 5.735828e-01 0.000000e+00 + outer loop + vertex 7.823396e+01 1.496428e+02 0.000000e+00 + vertex 7.823396e+01 1.496428e+02 -3.000000e+00 + vertex 7.813398e+01 1.495000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.823396e+01 1.496428e+02 0.000000e+00 + vertex -7.900000e+01 1.500000e+02 0.000000e+00 + vertex -7.813398e+01 1.495000e+02 0.000000e+00 + endloop + endfacet + facet normal 8.191476e-01 5.735828e-01 -0.000000e+00 + outer loop + vertex -7.823396e+01 1.496428e+02 -3.000000e+00 + vertex -7.823396e+01 1.496428e+02 0.000000e+00 + vertex -7.813398e+01 1.495000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.100000e+01 1.500000e+02 0.000000e+00 + vertex -7.176604e+01 1.496428e+02 0.000000e+00 + vertex -7.186603e+01 1.495000e+02 0.000000e+00 + endloop + endfacet + facet normal 8.191275e-01 5.736115e-01 -0.000000e+00 + outer loop + vertex 7.176604e+01 1.496428e+02 -3.000000e+00 + vertex 7.176604e+01 1.496428e+02 0.000000e+00 + vertex 7.186603e+01 1.495000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.900000e+01 1.500000e+02 0.000000e+00 + vertex 7.823396e+01 1.496428e+02 0.000000e+00 + vertex 7.813398e+01 1.495000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.497660e+02 1.496428e+02 0.000000e+00 + vertex 1.490000e+02 1.500000e+02 0.000000e+00 + vertex 1.498660e+02 1.495000e+02 0.000000e+00 + endloop + endfacet + facet normal 8.191275e-01 5.736115e-01 -0.000000e+00 + outer loop + vertex 1.497660e+02 1.496428e+02 -6.000000e+00 + vertex 1.497660e+02 1.496428e+02 0.000000e+00 + vertex 1.498660e+02 1.495000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -1.496428e+02 1.497660e+02 -6.000000e+00 + vertex -1.490000e+02 1.500000e+02 -6.000000e+00 + vertex -1.497660e+02 1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex -1.496428e+02 1.497660e+02 0.000000e+00 + vertex -1.496428e+02 1.497660e+02 -6.000000e+00 + vertex -1.497660e+02 1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex -1.497660e+02 1.496428e+02 0.000000e+00 + vertex -1.496428e+02 1.497660e+02 0.000000e+00 + vertex -1.497660e+02 1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.750000e+01 1.500000e+02 -6.000000e+00 + vertex -7.685721e+01 1.497660e+02 -6.000000e+00 + vertex -7.673395e+01 1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 7.070854e-01 0.000000e+00 + outer loop + vertex -7.685721e+01 1.497660e+02 -6.000000e+00 + vertex -7.673395e+01 1.496428e+02 -3.000000e+00 + vertex -7.673395e+01 1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071282e-01 7.070854e-01 0.000000e+00 + outer loop + vertex -7.326604e+01 1.496428e+02 -3.000000e+00 + vertex -7.314279e+01 1.497660e+02 -3.000000e+00 + vertex -7.326604e+01 1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071282e-01 7.070854e-01 0.000000e+00 + outer loop + vertex -7.314279e+01 1.497660e+02 -3.000000e+00 + vertex -7.314279e+01 1.497660e+02 -6.000000e+00 + vertex -7.326604e+01 1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.250000e+01 1.500000e+02 -6.000000e+00 + vertex 7.314279e+01 1.497660e+02 -6.000000e+00 + vertex 7.326604e+01 1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 7.070854e-01 0.000000e+00 + outer loop + vertex 7.314279e+01 1.497660e+02 -6.000000e+00 + vertex 7.326604e+01 1.496428e+02 -3.000000e+00 + vertex 7.326604e+01 1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071282e-01 7.070854e-01 0.000000e+00 + outer loop + vertex 7.673395e+01 1.496428e+02 -3.000000e+00 + vertex 7.685721e+01 1.497660e+02 -3.000000e+00 + vertex 7.673395e+01 1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071282e-01 7.070854e-01 0.000000e+00 + outer loop + vertex 7.685721e+01 1.497660e+02 -3.000000e+00 + vertex 7.685721e+01 1.497660e+02 -6.000000e+00 + vertex 7.673395e+01 1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 1.490000e+02 1.500000e+02 -6.000000e+00 + vertex 1.496428e+02 1.497660e+02 -6.000000e+00 + vertex 1.497660e+02 1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex 1.496428e+02 1.497660e+02 -6.000000e+00 + vertex 1.497660e+02 1.496428e+02 0.000000e+00 + vertex 1.497660e+02 1.496428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.750000e+01 1.500000e+02 -3.000000e+00 + vertex -7.835721e+01 1.497660e+02 -3.000000e+00 + vertex -7.823396e+01 1.496428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.732635e+01 1.499848e+02 -3.000000e+00 + vertex -7.750000e+01 1.500000e+02 -3.000000e+00 + vertex -7.823396e+01 1.496428e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 7.070854e-01 0.000000e+00 + outer loop + vertex -7.835721e+01 1.497660e+02 -3.000000e+00 + vertex -7.823396e+01 1.496428e+02 0.000000e+00 + vertex -7.823396e+01 1.496428e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 7.070854e-01 -0.000000e+00 + outer loop + vertex -7.685721e+01 1.497660e+02 -6.000000e+00 + vertex -7.685721e+01 1.497660e+02 -3.000000e+00 + vertex -7.673395e+01 1.496428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.164279e+01 1.497660e+02 -3.000000e+00 + vertex -7.250000e+01 1.500000e+02 -3.000000e+00 + vertex -7.176604e+01 1.496428e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071282e-01 7.070854e-01 0.000000e+00 + outer loop + vertex -7.176604e+01 1.496428e+02 0.000000e+00 + vertex -7.164279e+01 1.497660e+02 0.000000e+00 + vertex -7.176604e+01 1.496428e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071282e-01 7.070854e-01 0.000000e+00 + outer loop + vertex -7.164279e+01 1.497660e+02 0.000000e+00 + vertex -7.164279e+01 1.497660e+02 -3.000000e+00 + vertex -7.176604e+01 1.496428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.250000e+01 1.500000e+02 -3.000000e+00 + vertex 7.164279e+01 1.497660e+02 -3.000000e+00 + vertex 7.176604e+01 1.496428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.267365e+01 1.499848e+02 -3.000000e+00 + vertex 7.250000e+01 1.500000e+02 -3.000000e+00 + vertex 7.176604e+01 1.496428e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 7.070854e-01 0.000000e+00 + outer loop + vertex 7.164279e+01 1.497660e+02 -3.000000e+00 + vertex 7.176604e+01 1.496428e+02 0.000000e+00 + vertex 7.176604e+01 1.496428e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 7.070854e-01 -0.000000e+00 + outer loop + vertex 7.314279e+01 1.497660e+02 -6.000000e+00 + vertex 7.314279e+01 1.497660e+02 -3.000000e+00 + vertex 7.326604e+01 1.496428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.835721e+01 1.497660e+02 -3.000000e+00 + vertex 7.750000e+01 1.500000e+02 -3.000000e+00 + vertex 7.823396e+01 1.496428e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071282e-01 7.070854e-01 0.000000e+00 + outer loop + vertex 7.823396e+01 1.496428e+02 0.000000e+00 + vertex 7.835721e+01 1.497660e+02 0.000000e+00 + vertex 7.823396e+01 1.496428e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071282e-01 7.070854e-01 0.000000e+00 + outer loop + vertex 7.835721e+01 1.497660e+02 0.000000e+00 + vertex 7.835721e+01 1.497660e+02 -3.000000e+00 + vertex 7.823396e+01 1.496428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.835721e+01 1.497660e+02 0.000000e+00 + vertex -7.900000e+01 1.500000e+02 0.000000e+00 + vertex -7.823396e+01 1.496428e+02 0.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 7.070854e-01 -0.000000e+00 + outer loop + vertex -7.835721e+01 1.497660e+02 -3.000000e+00 + vertex -7.835721e+01 1.497660e+02 0.000000e+00 + vertex -7.823396e+01 1.496428e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.100000e+01 1.500000e+02 0.000000e+00 + vertex -7.164279e+01 1.497660e+02 0.000000e+00 + vertex -7.176604e+01 1.496428e+02 0.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 7.070854e-01 -0.000000e+00 + outer loop + vertex 7.164279e+01 1.497660e+02 -3.000000e+00 + vertex 7.164279e+01 1.497660e+02 0.000000e+00 + vertex 7.176604e+01 1.496428e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.900000e+01 1.500000e+02 0.000000e+00 + vertex 7.835721e+01 1.497660e+02 0.000000e+00 + vertex 7.823396e+01 1.496428e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.496428e+02 1.497660e+02 0.000000e+00 + vertex 1.490000e+02 1.500000e+02 0.000000e+00 + vertex 1.497660e+02 1.496428e+02 0.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 7.071068e-01 -0.000000e+00 + outer loop + vertex 1.496428e+02 1.497660e+02 -6.000000e+00 + vertex 1.496428e+02 1.497660e+02 0.000000e+00 + vertex 1.497660e+02 1.496428e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -1.495000e+02 1.498660e+02 -6.000000e+00 + vertex -1.493420e+02 1.499397e+02 -6.000000e+00 + vertex -1.496428e+02 1.497660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -1.491736e+02 1.499848e+02 -6.000000e+00 + vertex -1.490000e+02 1.500000e+02 -6.000000e+00 + vertex -1.496428e+02 1.497660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -1.493420e+02 1.499397e+02 -6.000000e+00 + vertex -1.491736e+02 1.499848e+02 -6.000000e+00 + vertex -1.496428e+02 1.497660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.736115e-01 8.191275e-01 0.000000e+00 + outer loop + vertex -1.495000e+02 1.498660e+02 0.000000e+00 + vertex -1.495000e+02 1.498660e+02 -6.000000e+00 + vertex -1.496428e+02 1.497660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.736115e-01 8.191275e-01 0.000000e+00 + outer loop + vertex -1.496428e+02 1.497660e+02 0.000000e+00 + vertex -1.495000e+02 1.498660e+02 0.000000e+00 + vertex -1.496428e+02 1.497660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.750000e+01 1.500000e+02 -6.000000e+00 + vertex -7.700000e+01 1.498660e+02 -6.000000e+00 + vertex -7.685721e+01 1.497660e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735914e-01 8.191416e-01 0.000000e+00 + outer loop + vertex -7.700000e+01 1.498660e+02 -6.000000e+00 + vertex -7.685721e+01 1.497660e+02 -3.000000e+00 + vertex -7.685721e+01 1.497660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735914e-01 8.191416e-01 0.000000e+00 + outer loop + vertex -7.314279e+01 1.497660e+02 -3.000000e+00 + vertex -7.300000e+01 1.498660e+02 -3.000000e+00 + vertex -7.314279e+01 1.497660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735914e-01 8.191416e-01 0.000000e+00 + outer loop + vertex -7.300000e+01 1.498660e+02 -3.000000e+00 + vertex -7.300000e+01 1.498660e+02 -6.000000e+00 + vertex -7.314279e+01 1.497660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.250000e+01 1.500000e+02 -6.000000e+00 + vertex 7.300000e+01 1.498660e+02 -6.000000e+00 + vertex 7.314279e+01 1.497660e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735914e-01 8.191416e-01 0.000000e+00 + outer loop + vertex 7.300000e+01 1.498660e+02 -6.000000e+00 + vertex 7.314279e+01 1.497660e+02 -3.000000e+00 + vertex 7.314279e+01 1.497660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735914e-01 8.191416e-01 0.000000e+00 + outer loop + vertex 7.685721e+01 1.497660e+02 -3.000000e+00 + vertex 7.700000e+01 1.498660e+02 -3.000000e+00 + vertex 7.685721e+01 1.497660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735914e-01 8.191416e-01 0.000000e+00 + outer loop + vertex 7.700000e+01 1.498660e+02 -3.000000e+00 + vertex 7.700000e+01 1.498660e+02 -6.000000e+00 + vertex 7.685721e+01 1.497660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 1.490000e+02 1.500000e+02 -6.000000e+00 + vertex 1.491736e+02 1.499848e+02 -6.000000e+00 + vertex 1.496428e+02 1.497660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 1.491736e+02 1.499848e+02 -6.000000e+00 + vertex 1.493420e+02 1.499397e+02 -6.000000e+00 + vertex 1.496428e+02 1.497660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 1.493420e+02 1.499397e+02 -6.000000e+00 + vertex 1.495000e+02 1.498660e+02 -6.000000e+00 + vertex 1.496428e+02 1.497660e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.736115e-01 8.191275e-01 0.000000e+00 + outer loop + vertex 1.495000e+02 1.498660e+02 -6.000000e+00 + vertex 1.496428e+02 1.497660e+02 0.000000e+00 + vertex 1.496428e+02 1.497660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.750000e+01 1.500000e+02 -3.000000e+00 + vertex -7.850000e+01 1.498660e+02 -3.000000e+00 + vertex -7.835721e+01 1.497660e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735914e-01 8.191416e-01 0.000000e+00 + outer loop + vertex -7.850000e+01 1.498660e+02 -3.000000e+00 + vertex -7.835721e+01 1.497660e+02 0.000000e+00 + vertex -7.835721e+01 1.497660e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735914e-01 8.191416e-01 -0.000000e+00 + outer loop + vertex -7.700000e+01 1.498660e+02 -6.000000e+00 + vertex -7.700000e+01 1.498660e+02 -3.000000e+00 + vertex -7.685721e+01 1.497660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.150000e+01 1.498660e+02 -3.000000e+00 + vertex -7.250000e+01 1.500000e+02 -3.000000e+00 + vertex -7.164279e+01 1.497660e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.736115e-01 8.191275e-01 0.000000e+00 + outer loop + vertex -7.164279e+01 1.497660e+02 0.000000e+00 + vertex -7.150000e+01 1.498660e+02 0.000000e+00 + vertex -7.164279e+01 1.497660e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.736115e-01 8.191275e-01 0.000000e+00 + outer loop + vertex -7.150000e+01 1.498660e+02 0.000000e+00 + vertex -7.150000e+01 1.498660e+02 -3.000000e+00 + vertex -7.164279e+01 1.497660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.250000e+01 1.500000e+02 -3.000000e+00 + vertex 7.150000e+01 1.498660e+02 -3.000000e+00 + vertex 7.164279e+01 1.497660e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.736115e-01 8.191275e-01 0.000000e+00 + outer loop + vertex 7.150000e+01 1.498660e+02 -3.000000e+00 + vertex 7.164279e+01 1.497660e+02 0.000000e+00 + vertex 7.164279e+01 1.497660e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735914e-01 8.191416e-01 -0.000000e+00 + outer loop + vertex 7.300000e+01 1.498660e+02 -6.000000e+00 + vertex 7.300000e+01 1.498660e+02 -3.000000e+00 + vertex 7.314279e+01 1.497660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.850000e+01 1.498660e+02 -3.000000e+00 + vertex 7.750000e+01 1.500000e+02 -3.000000e+00 + vertex 7.835721e+01 1.497660e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735914e-01 8.191416e-01 0.000000e+00 + outer loop + vertex 7.835721e+01 1.497660e+02 0.000000e+00 + vertex 7.850000e+01 1.498660e+02 0.000000e+00 + vertex 7.835721e+01 1.497660e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735914e-01 8.191416e-01 0.000000e+00 + outer loop + vertex 7.850000e+01 1.498660e+02 0.000000e+00 + vertex 7.850000e+01 1.498660e+02 -3.000000e+00 + vertex 7.835721e+01 1.497660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.850000e+01 1.498660e+02 0.000000e+00 + vertex -7.900000e+01 1.500000e+02 0.000000e+00 + vertex -7.835721e+01 1.497660e+02 0.000000e+00 + endloop + endfacet + facet normal 5.735914e-01 8.191416e-01 -0.000000e+00 + outer loop + vertex -7.850000e+01 1.498660e+02 -3.000000e+00 + vertex -7.850000e+01 1.498660e+02 0.000000e+00 + vertex -7.835721e+01 1.497660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.100000e+01 1.500000e+02 0.000000e+00 + vertex -7.150000e+01 1.498660e+02 0.000000e+00 + vertex -7.164279e+01 1.497660e+02 0.000000e+00 + endloop + endfacet + facet normal 5.736115e-01 8.191275e-01 -0.000000e+00 + outer loop + vertex 7.150000e+01 1.498660e+02 -3.000000e+00 + vertex 7.150000e+01 1.498660e+02 0.000000e+00 + vertex 7.164279e+01 1.497660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.900000e+01 1.500000e+02 0.000000e+00 + vertex 7.850000e+01 1.498660e+02 0.000000e+00 + vertex 7.835721e+01 1.497660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.495000e+02 1.498660e+02 0.000000e+00 + vertex 1.493420e+02 1.499397e+02 0.000000e+00 + vertex 1.496428e+02 1.497660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.491736e+02 1.499848e+02 0.000000e+00 + vertex 1.490000e+02 1.500000e+02 0.000000e+00 + vertex 1.496428e+02 1.497660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.493420e+02 1.499397e+02 0.000000e+00 + vertex 1.491736e+02 1.499848e+02 0.000000e+00 + vertex 1.496428e+02 1.497660e+02 0.000000e+00 + endloop + endfacet + facet normal 5.736115e-01 8.191275e-01 -0.000000e+00 + outer loop + vertex 1.495000e+02 1.498660e+02 -6.000000e+00 + vertex 1.495000e+02 1.498660e+02 0.000000e+00 + vertex 1.496428e+02 1.497660e+02 0.000000e+00 + endloop + endfacet + facet normal -4.225625e-01 9.063338e-01 0.000000e+00 + outer loop + vertex -1.493420e+02 1.499397e+02 0.000000e+00 + vertex -1.493420e+02 1.499397e+02 -6.000000e+00 + vertex -1.495000e+02 1.498660e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.225625e-01 9.063338e-01 0.000000e+00 + outer loop + vertex -1.495000e+02 1.498660e+02 0.000000e+00 + vertex -1.493420e+02 1.499397e+02 0.000000e+00 + vertex -1.495000e+02 1.498660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.750000e+01 1.500000e+02 -6.000000e+00 + vertex -7.715798e+01 1.499397e+02 -6.000000e+00 + vertex -7.700000e+01 1.498660e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.225625e-01 9.063338e-01 0.000000e+00 + outer loop + vertex -7.715798e+01 1.499397e+02 -6.000000e+00 + vertex -7.700000e+01 1.498660e+02 -3.000000e+00 + vertex -7.700000e+01 1.498660e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.225625e-01 9.063338e-01 0.000000e+00 + outer loop + vertex -7.300000e+01 1.498660e+02 -3.000000e+00 + vertex -7.284202e+01 1.499397e+02 -3.000000e+00 + vertex -7.300000e+01 1.498660e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.225625e-01 9.063338e-01 0.000000e+00 + outer loop + vertex -7.284202e+01 1.499397e+02 -3.000000e+00 + vertex -7.284202e+01 1.499397e+02 -6.000000e+00 + vertex -7.300000e+01 1.498660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.250000e+01 1.500000e+02 -6.000000e+00 + vertex 7.284202e+01 1.499397e+02 -6.000000e+00 + vertex 7.300000e+01 1.498660e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.225625e-01 9.063338e-01 0.000000e+00 + outer loop + vertex 7.284202e+01 1.499397e+02 -6.000000e+00 + vertex 7.300000e+01 1.498660e+02 -3.000000e+00 + vertex 7.300000e+01 1.498660e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.225625e-01 9.063338e-01 0.000000e+00 + outer loop + vertex 7.700000e+01 1.498660e+02 -3.000000e+00 + vertex 7.715798e+01 1.499397e+02 -3.000000e+00 + vertex 7.700000e+01 1.498660e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.225625e-01 9.063338e-01 0.000000e+00 + outer loop + vertex 7.715798e+01 1.499397e+02 -3.000000e+00 + vertex 7.715798e+01 1.499397e+02 -6.000000e+00 + vertex 7.700000e+01 1.498660e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.225625e-01 9.063338e-01 0.000000e+00 + outer loop + vertex 1.493420e+02 1.499397e+02 -6.000000e+00 + vertex 1.495000e+02 1.498660e+02 0.000000e+00 + vertex 1.495000e+02 1.498660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.750000e+01 1.500000e+02 -3.000000e+00 + vertex -7.865798e+01 1.499397e+02 -3.000000e+00 + vertex -7.850000e+01 1.498660e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.225789e-01 9.063261e-01 0.000000e+00 + outer loop + vertex -7.865798e+01 1.499397e+02 -3.000000e+00 + vertex -7.850000e+01 1.498660e+02 0.000000e+00 + vertex -7.850000e+01 1.498660e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.225625e-01 9.063338e-01 -0.000000e+00 + outer loop + vertex -7.715798e+01 1.499397e+02 -6.000000e+00 + vertex -7.715798e+01 1.499397e+02 -3.000000e+00 + vertex -7.700000e+01 1.498660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.134202e+01 1.499397e+02 -3.000000e+00 + vertex -7.250000e+01 1.500000e+02 -3.000000e+00 + vertex -7.150000e+01 1.498660e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.225625e-01 9.063338e-01 0.000000e+00 + outer loop + vertex -7.150000e+01 1.498660e+02 0.000000e+00 + vertex -7.134202e+01 1.499397e+02 0.000000e+00 + vertex -7.150000e+01 1.498660e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.225625e-01 9.063338e-01 0.000000e+00 + outer loop + vertex -7.134202e+01 1.499397e+02 0.000000e+00 + vertex -7.134202e+01 1.499397e+02 -3.000000e+00 + vertex -7.150000e+01 1.498660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.250000e+01 1.500000e+02 -3.000000e+00 + vertex 7.134202e+01 1.499397e+02 -3.000000e+00 + vertex 7.150000e+01 1.498660e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.225625e-01 9.063338e-01 0.000000e+00 + outer loop + vertex 7.134202e+01 1.499397e+02 -3.000000e+00 + vertex 7.150000e+01 1.498660e+02 0.000000e+00 + vertex 7.150000e+01 1.498660e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.225625e-01 9.063338e-01 -0.000000e+00 + outer loop + vertex 7.284202e+01 1.499397e+02 -6.000000e+00 + vertex 7.284202e+01 1.499397e+02 -3.000000e+00 + vertex 7.300000e+01 1.498660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.865798e+01 1.499397e+02 -3.000000e+00 + vertex 7.750000e+01 1.500000e+02 -3.000000e+00 + vertex 7.850000e+01 1.498660e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.225789e-01 9.063261e-01 0.000000e+00 + outer loop + vertex 7.850000e+01 1.498660e+02 0.000000e+00 + vertex 7.865798e+01 1.499397e+02 0.000000e+00 + vertex 7.850000e+01 1.498660e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.225789e-01 9.063261e-01 0.000000e+00 + outer loop + vertex 7.865798e+01 1.499397e+02 0.000000e+00 + vertex 7.865798e+01 1.499397e+02 -3.000000e+00 + vertex 7.850000e+01 1.498660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.865798e+01 1.499397e+02 0.000000e+00 + vertex -7.900000e+01 1.500000e+02 0.000000e+00 + vertex -7.850000e+01 1.498660e+02 0.000000e+00 + endloop + endfacet + facet normal 4.225789e-01 9.063261e-01 -0.000000e+00 + outer loop + vertex -7.865798e+01 1.499397e+02 -3.000000e+00 + vertex -7.865798e+01 1.499397e+02 0.000000e+00 + vertex -7.850000e+01 1.498660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.100000e+01 1.500000e+02 0.000000e+00 + vertex -7.134202e+01 1.499397e+02 0.000000e+00 + vertex -7.150000e+01 1.498660e+02 0.000000e+00 + endloop + endfacet + facet normal 4.225625e-01 9.063338e-01 -0.000000e+00 + outer loop + vertex 7.134202e+01 1.499397e+02 -3.000000e+00 + vertex 7.134202e+01 1.499397e+02 0.000000e+00 + vertex 7.150000e+01 1.498660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.900000e+01 1.500000e+02 0.000000e+00 + vertex 7.865798e+01 1.499397e+02 0.000000e+00 + vertex 7.850000e+01 1.498660e+02 0.000000e+00 + endloop + endfacet + facet normal 4.225625e-01 9.063338e-01 -0.000000e+00 + outer loop + vertex 1.493420e+02 1.499397e+02 -6.000000e+00 + vertex 1.493420e+02 1.499397e+02 0.000000e+00 + vertex 1.495000e+02 1.498660e+02 0.000000e+00 + endloop + endfacet + facet normal -2.588543e-01 9.659164e-01 0.000000e+00 + outer loop + vertex -1.491736e+02 1.499848e+02 0.000000e+00 + vertex -1.491736e+02 1.499848e+02 -6.000000e+00 + vertex -1.493420e+02 1.499397e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588543e-01 9.659164e-01 0.000000e+00 + outer loop + vertex -1.493420e+02 1.499397e+02 0.000000e+00 + vertex -1.491736e+02 1.499848e+02 0.000000e+00 + vertex -1.493420e+02 1.499397e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.750000e+01 1.500000e+02 -6.000000e+00 + vertex -7.732635e+01 1.499848e+02 -6.000000e+00 + vertex -7.715798e+01 1.499397e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588543e-01 9.659164e-01 0.000000e+00 + outer loop + vertex -7.732635e+01 1.499848e+02 -6.000000e+00 + vertex -7.715798e+01 1.499397e+02 -3.000000e+00 + vertex -7.715798e+01 1.499397e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588543e-01 9.659164e-01 0.000000e+00 + outer loop + vertex -7.284202e+01 1.499397e+02 -3.000000e+00 + vertex -7.267365e+01 1.499848e+02 -3.000000e+00 + vertex -7.284202e+01 1.499397e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588543e-01 9.659164e-01 0.000000e+00 + outer loop + vertex -7.267365e+01 1.499848e+02 -3.000000e+00 + vertex -7.267365e+01 1.499848e+02 -6.000000e+00 + vertex -7.284202e+01 1.499397e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.250000e+01 1.500000e+02 -6.000000e+00 + vertex 7.267365e+01 1.499848e+02 -6.000000e+00 + vertex 7.284202e+01 1.499397e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588543e-01 9.659164e-01 0.000000e+00 + outer loop + vertex 7.267365e+01 1.499848e+02 -6.000000e+00 + vertex 7.284202e+01 1.499397e+02 -3.000000e+00 + vertex 7.284202e+01 1.499397e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588543e-01 9.659164e-01 0.000000e+00 + outer loop + vertex 7.715798e+01 1.499397e+02 -3.000000e+00 + vertex 7.732635e+01 1.499848e+02 -3.000000e+00 + vertex 7.715798e+01 1.499397e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588543e-01 9.659164e-01 0.000000e+00 + outer loop + vertex 7.732635e+01 1.499848e+02 -3.000000e+00 + vertex 7.732635e+01 1.499848e+02 -6.000000e+00 + vertex 7.715798e+01 1.499397e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588543e-01 9.659164e-01 0.000000e+00 + outer loop + vertex 1.491736e+02 1.499848e+02 -6.000000e+00 + vertex 1.493420e+02 1.499397e+02 0.000000e+00 + vertex 1.493420e+02 1.499397e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.750000e+01 1.500000e+02 -3.000000e+00 + vertex -7.882635e+01 1.499848e+02 -3.000000e+00 + vertex -7.865798e+01 1.499397e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588436e-01 9.659192e-01 0.000000e+00 + outer loop + vertex -7.882635e+01 1.499848e+02 -3.000000e+00 + vertex -7.865798e+01 1.499397e+02 0.000000e+00 + vertex -7.865798e+01 1.499397e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588543e-01 9.659164e-01 -0.000000e+00 + outer loop + vertex -7.732635e+01 1.499848e+02 -6.000000e+00 + vertex -7.732635e+01 1.499848e+02 -3.000000e+00 + vertex -7.715798e+01 1.499397e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.117365e+01 1.499848e+02 -3.000000e+00 + vertex -7.250000e+01 1.500000e+02 -3.000000e+00 + vertex -7.134202e+01 1.499397e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588436e-01 9.659192e-01 0.000000e+00 + outer loop + vertex -7.134202e+01 1.499397e+02 0.000000e+00 + vertex -7.117365e+01 1.499848e+02 0.000000e+00 + vertex -7.134202e+01 1.499397e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588436e-01 9.659192e-01 0.000000e+00 + outer loop + vertex -7.117365e+01 1.499848e+02 0.000000e+00 + vertex -7.117365e+01 1.499848e+02 -3.000000e+00 + vertex -7.134202e+01 1.499397e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.250000e+01 1.500000e+02 -3.000000e+00 + vertex 7.117365e+01 1.499848e+02 -3.000000e+00 + vertex 7.134202e+01 1.499397e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588436e-01 9.659192e-01 0.000000e+00 + outer loop + vertex 7.117365e+01 1.499848e+02 -3.000000e+00 + vertex 7.134202e+01 1.499397e+02 0.000000e+00 + vertex 7.134202e+01 1.499397e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588543e-01 9.659164e-01 -0.000000e+00 + outer loop + vertex 7.267365e+01 1.499848e+02 -6.000000e+00 + vertex 7.267365e+01 1.499848e+02 -3.000000e+00 + vertex 7.284202e+01 1.499397e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.882635e+01 1.499848e+02 -3.000000e+00 + vertex 7.750000e+01 1.500000e+02 -3.000000e+00 + vertex 7.865798e+01 1.499397e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588436e-01 9.659192e-01 0.000000e+00 + outer loop + vertex 7.865798e+01 1.499397e+02 0.000000e+00 + vertex 7.882635e+01 1.499848e+02 0.000000e+00 + vertex 7.865798e+01 1.499397e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588436e-01 9.659192e-01 0.000000e+00 + outer loop + vertex 7.882635e+01 1.499848e+02 0.000000e+00 + vertex 7.882635e+01 1.499848e+02 -3.000000e+00 + vertex 7.865798e+01 1.499397e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.882635e+01 1.499848e+02 0.000000e+00 + vertex -7.900000e+01 1.500000e+02 0.000000e+00 + vertex -7.865798e+01 1.499397e+02 0.000000e+00 + endloop + endfacet + facet normal 2.588436e-01 9.659192e-01 -0.000000e+00 + outer loop + vertex -7.882635e+01 1.499848e+02 -3.000000e+00 + vertex -7.882635e+01 1.499848e+02 0.000000e+00 + vertex -7.865798e+01 1.499397e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.100000e+01 1.500000e+02 0.000000e+00 + vertex -7.117365e+01 1.499848e+02 0.000000e+00 + vertex -7.134202e+01 1.499397e+02 0.000000e+00 + endloop + endfacet + facet normal 2.588436e-01 9.659192e-01 -0.000000e+00 + outer loop + vertex 7.117365e+01 1.499848e+02 -3.000000e+00 + vertex 7.117365e+01 1.499848e+02 0.000000e+00 + vertex 7.134202e+01 1.499397e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.900000e+01 1.500000e+02 0.000000e+00 + vertex 7.882635e+01 1.499848e+02 0.000000e+00 + vertex 7.865798e+01 1.499397e+02 0.000000e+00 + endloop + endfacet + facet normal 2.588543e-01 9.659164e-01 -0.000000e+00 + outer loop + vertex 1.491736e+02 1.499848e+02 -6.000000e+00 + vertex 1.491736e+02 1.499848e+02 0.000000e+00 + vertex 1.493420e+02 1.499397e+02 0.000000e+00 + endloop + endfacet + facet normal -8.719770e-02 9.961910e-01 0.000000e+00 + outer loop + vertex -1.490000e+02 1.500000e+02 0.000000e+00 + vertex -1.490000e+02 1.500000e+02 -6.000000e+00 + vertex -1.491736e+02 1.499848e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.719770e-02 9.961910e-01 0.000000e+00 + outer loop + vertex -1.491736e+02 1.499848e+02 0.000000e+00 + vertex -1.490000e+02 1.500000e+02 0.000000e+00 + vertex -1.491736e+02 1.499848e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.719399e-02 9.961914e-01 0.000000e+00 + outer loop + vertex -7.750000e+01 1.500000e+02 -6.000000e+00 + vertex -7.732635e+01 1.499848e+02 -3.000000e+00 + vertex -7.732635e+01 1.499848e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.719399e-02 9.961914e-01 0.000000e+00 + outer loop + vertex -7.267365e+01 1.499848e+02 -3.000000e+00 + vertex -7.250000e+01 1.500000e+02 -3.000000e+00 + vertex -7.267365e+01 1.499848e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.719399e-02 9.961914e-01 0.000000e+00 + outer loop + vertex -7.250000e+01 1.500000e+02 -3.000000e+00 + vertex -7.250000e+01 1.500000e+02 -6.000000e+00 + vertex -7.267365e+01 1.499848e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.719399e-02 9.961914e-01 0.000000e+00 + outer loop + vertex 7.250000e+01 1.500000e+02 -6.000000e+00 + vertex 7.267365e+01 1.499848e+02 -3.000000e+00 + vertex 7.267365e+01 1.499848e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.719399e-02 9.961914e-01 0.000000e+00 + outer loop + vertex 7.732635e+01 1.499848e+02 -3.000000e+00 + vertex 7.750000e+01 1.500000e+02 -3.000000e+00 + vertex 7.732635e+01 1.499848e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.719399e-02 9.961914e-01 0.000000e+00 + outer loop + vertex 7.750000e+01 1.500000e+02 -3.000000e+00 + vertex 7.750000e+01 1.500000e+02 -6.000000e+00 + vertex 7.732635e+01 1.499848e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.719770e-02 9.961910e-01 0.000000e+00 + outer loop + vertex 1.490000e+02 1.500000e+02 -6.000000e+00 + vertex 1.491736e+02 1.499848e+02 0.000000e+00 + vertex 1.491736e+02 1.499848e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.750000e+01 1.500000e+02 -3.000000e+00 + vertex -7.900000e+01 1.500000e+02 -3.000000e+00 + vertex -7.882635e+01 1.499848e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.719399e-02 9.961914e-01 0.000000e+00 + outer loop + vertex -7.900000e+01 1.500000e+02 -3.000000e+00 + vertex -7.882635e+01 1.499848e+02 0.000000e+00 + vertex -7.882635e+01 1.499848e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.719399e-02 9.961914e-01 -0.000000e+00 + outer loop + vertex -7.750000e+01 1.500000e+02 -6.000000e+00 + vertex -7.750000e+01 1.500000e+02 -3.000000e+00 + vertex -7.732635e+01 1.499848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.100000e+01 1.500000e+02 -3.000000e+00 + vertex -7.250000e+01 1.500000e+02 -3.000000e+00 + vertex -7.117365e+01 1.499848e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.719770e-02 9.961910e-01 0.000000e+00 + outer loop + vertex -7.117365e+01 1.499848e+02 0.000000e+00 + vertex -7.100000e+01 1.500000e+02 0.000000e+00 + vertex -7.117365e+01 1.499848e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.719770e-02 9.961910e-01 0.000000e+00 + outer loop + vertex -7.100000e+01 1.500000e+02 0.000000e+00 + vertex -7.100000e+01 1.500000e+02 -3.000000e+00 + vertex -7.117365e+01 1.499848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.250000e+01 1.500000e+02 -3.000000e+00 + vertex 7.100000e+01 1.500000e+02 -3.000000e+00 + vertex 7.117365e+01 1.499848e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.719770e-02 9.961910e-01 0.000000e+00 + outer loop + vertex 7.100000e+01 1.500000e+02 -3.000000e+00 + vertex 7.117365e+01 1.499848e+02 0.000000e+00 + vertex 7.117365e+01 1.499848e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.719399e-02 9.961914e-01 -0.000000e+00 + outer loop + vertex 7.250000e+01 1.500000e+02 -6.000000e+00 + vertex 7.250000e+01 1.500000e+02 -3.000000e+00 + vertex 7.267365e+01 1.499848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.900000e+01 1.500000e+02 -3.000000e+00 + vertex 7.750000e+01 1.500000e+02 -3.000000e+00 + vertex 7.882635e+01 1.499848e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.719399e-02 9.961914e-01 0.000000e+00 + outer loop + vertex 7.882635e+01 1.499848e+02 0.000000e+00 + vertex 7.900000e+01 1.500000e+02 0.000000e+00 + vertex 7.882635e+01 1.499848e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.719399e-02 9.961914e-01 0.000000e+00 + outer loop + vertex 7.900000e+01 1.500000e+02 0.000000e+00 + vertex 7.900000e+01 1.500000e+02 -3.000000e+00 + vertex 7.882635e+01 1.499848e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.719399e-02 9.961914e-01 -0.000000e+00 + outer loop + vertex -7.900000e+01 1.500000e+02 -3.000000e+00 + vertex -7.900000e+01 1.500000e+02 0.000000e+00 + vertex -7.882635e+01 1.499848e+02 0.000000e+00 + endloop + endfacet + facet normal 8.719770e-02 9.961910e-01 -0.000000e+00 + outer loop + vertex 7.100000e+01 1.500000e+02 -3.000000e+00 + vertex 7.100000e+01 1.500000e+02 0.000000e+00 + vertex 7.117365e+01 1.499848e+02 0.000000e+00 + endloop + endfacet + facet normal 8.719770e-02 9.961910e-01 -0.000000e+00 + outer loop + vertex 1.490000e+02 1.500000e+02 -6.000000e+00 + vertex 1.490000e+02 1.500000e+02 0.000000e+00 + vertex 1.491736e+02 1.499848e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex -7.900000e+01 1.500000e+02 -3.000000e+00 + vertex -7.750000e+01 1.500000e+02 -6.000000e+00 + vertex -1.490000e+02 1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex -7.900000e+01 1.500000e+02 0.000000e+00 + vertex -7.900000e+01 1.500000e+02 -3.000000e+00 + vertex -1.490000e+02 1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex -1.490000e+02 1.500000e+02 0.000000e+00 + vertex -7.900000e+01 1.500000e+02 0.000000e+00 + vertex -1.490000e+02 1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex -7.900000e+01 1.500000e+02 -3.000000e+00 + vertex -7.750000e+01 1.500000e+02 -3.000000e+00 + vertex -7.750000e+01 1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex -7.100000e+01 1.500000e+02 -3.000000e+00 + vertex 7.250000e+01 1.500000e+02 -6.000000e+00 + vertex -7.250000e+01 1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex -7.250000e+01 1.500000e+02 -3.000000e+00 + vertex -7.100000e+01 1.500000e+02 -3.000000e+00 + vertex -7.250000e+01 1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex 7.100000e+01 1.500000e+02 -3.000000e+00 + vertex 7.250000e+01 1.500000e+02 -3.000000e+00 + vertex 7.250000e+01 1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex -7.100000e+01 1.500000e+02 -3.000000e+00 + vertex 7.100000e+01 1.500000e+02 -3.000000e+00 + vertex 7.250000e+01 1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex 7.750000e+01 1.500000e+02 -3.000000e+00 + vertex 7.900000e+01 1.500000e+02 -3.000000e+00 + vertex 7.750000e+01 1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex 7.900000e+01 1.500000e+02 -3.000000e+00 + vertex 1.490000e+02 1.500000e+02 -6.000000e+00 + vertex 7.750000e+01 1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex 7.900000e+01 1.500000e+02 -3.000000e+00 + vertex 1.490000e+02 1.500000e+02 0.000000e+00 + vertex 1.490000e+02 1.500000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex 7.100000e+01 1.500000e+02 0.000000e+00 + vertex 7.100000e+01 1.500000e+02 -3.000000e+00 + vertex -7.100000e+01 1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex -7.100000e+01 1.500000e+02 0.000000e+00 + vertex 7.100000e+01 1.500000e+02 0.000000e+00 + vertex -7.100000e+01 1.500000e+02 -3.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex 7.900000e+01 1.500000e+02 0.000000e+00 + vertex 1.490000e+02 1.500000e+02 0.000000e+00 + vertex 7.900000e+01 1.500000e+02 -3.000000e+00 + endloop + endfacet +endsolid \ No newline at end of file diff --git a/resources/profiles/Voron/printbed-v2-350.stl b/resources/profiles/Voron/printbed-v2-350.stl new file mode 100644 index 000000000..b64dbea96 --- /dev/null +++ b/resources/profiles/Voron/printbed-v2-350.stl @@ -0,0 +1,9858 @@ +solid printbed-v2-350 + facet normal -0.000000e+00 -1.000000e+00 0.000000e+00 + outer loop + vertex -7.900000e+01 -1.750000e+02 -3.000000e+00 + vertex -1.740000e+02 -1.750000e+02 0.000000e+00 + vertex -1.740000e+02 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -1.000000e+00 0.000000e+00 + outer loop + vertex -7.750000e+01 -1.750000e+02 -6.000000e+00 + vertex -7.900000e+01 -1.750000e+02 -3.000000e+00 + vertex -1.740000e+02 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.750000e+02 -1.740000e+02 -6.000000e+00 + vertex -7.596418e+01 -1.718509e+02 -6.000000e+00 + vertex -1.740000e+02 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.596418e+01 -1.718509e+02 -6.000000e+00 + vertex -7.614907e+01 -1.720358e+02 -6.000000e+00 + vertex -1.740000e+02 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.614907e+01 -1.720358e+02 -6.000000e+00 + vertex -7.629904e+01 -1.722500e+02 -6.000000e+00 + vertex -1.740000e+02 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.629904e+01 -1.722500e+02 -6.000000e+00 + vertex -7.640954e+01 -1.724870e+02 -6.000000e+00 + vertex -1.740000e+02 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.640954e+01 -1.724870e+02 -6.000000e+00 + vertex -7.647721e+01 -1.727395e+02 -6.000000e+00 + vertex -1.740000e+02 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.647721e+01 -1.727395e+02 -6.000000e+00 + vertex -7.650000e+01 -1.730000e+02 -6.000000e+00 + vertex -1.740000e+02 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.741737e+02 -1.749848e+02 -6.000000e+00 + vertex -1.750000e+02 -1.740000e+02 -6.000000e+00 + vertex -1.740000e+02 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.650000e+01 -1.730000e+02 -6.000000e+00 + vertex -7.750000e+01 -1.750000e+02 -6.000000e+00 + vertex -1.740000e+02 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.710545e-02 -9.961991e-01 -0.000000e+00 + outer loop + vertex -1.740000e+02 -1.750000e+02 0.000000e+00 + vertex -1.741737e+02 -1.749848e+02 0.000000e+00 + vertex -1.740000e+02 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.710545e-02 -9.961991e-01 -0.000000e+00 + outer loop + vertex -1.741737e+02 -1.749848e+02 0.000000e+00 + vertex -1.741737e+02 -1.749848e+02 -6.000000e+00 + vertex -1.740000e+02 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 -1.000000e+00 -0.000000e+00 + outer loop + vertex -7.750000e+01 -1.750000e+02 -3.000000e+00 + vertex -7.900000e+01 -1.750000e+02 -3.000000e+00 + vertex -7.750000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.650000e+01 -1.730000e+02 -6.000000e+00 + vertex -7.732635e+01 -1.749848e+02 -6.000000e+00 + vertex -7.750000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.710916e-02 -9.961988e-01 0.000000e+00 + outer loop + vertex -7.732635e+01 -1.749848e+02 -6.000000e+00 + vertex -7.750000e+01 -1.750000e+02 -3.000000e+00 + vertex -7.750000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -1.000000e+00 0.000000e+00 + outer loop + vertex 7.250000e+01 -1.750000e+02 -6.000000e+00 + vertex 7.100000e+01 -1.750000e+02 -3.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 -1.000000e+00 0.000000e+00 + outer loop + vertex -7.100000e+01 -1.750000e+02 -3.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -3.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 -1.000000e+00 0.000000e+00 + outer loop + vertex 7.100000e+01 -1.750000e+02 -3.000000e+00 + vertex -7.100000e+01 -1.750000e+02 -3.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.448697e+01 -1.715905e+02 -6.000000e+00 + vertex 7.425000e+01 -1.717010e+02 -6.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.473953e+01 -1.715228e+02 -6.000000e+00 + vertex 7.448697e+01 -1.715905e+02 -6.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.425000e+01 -1.717010e+02 -6.000000e+00 + vertex 7.403582e+01 -1.718509e+02 -6.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.403582e+01 -1.718509e+02 -6.000000e+00 + vertex 7.385093e+01 -1.720358e+02 -6.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.385093e+01 -1.720358e+02 -6.000000e+00 + vertex 7.370096e+01 -1.722500e+02 -6.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.370096e+01 -1.722500e+02 -6.000000e+00 + vertex 7.359046e+01 -1.724870e+02 -6.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.359046e+01 -1.724870e+02 -6.000000e+00 + vertex 7.352279e+01 -1.727395e+02 -6.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.352279e+01 -1.727395e+02 -6.000000e+00 + vertex 7.350000e+01 -1.730000e+02 -6.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.267365e+01 -1.749848e+02 -6.000000e+00 + vertex -7.284202e+01 -1.749397e+02 -6.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.284202e+01 -1.749397e+02 -6.000000e+00 + vertex -7.300000e+01 -1.748660e+02 -6.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.300000e+01 -1.748660e+02 -6.000000e+00 + vertex -7.314279e+01 -1.747660e+02 -6.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.314279e+01 -1.747660e+02 -6.000000e+00 + vertex -7.326604e+01 -1.746428e+02 -6.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.326604e+01 -1.746428e+02 -6.000000e+00 + vertex -7.336602e+01 -1.745000e+02 -6.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.336602e+01 -1.745000e+02 -6.000000e+00 + vertex -7.343969e+01 -1.743420e+02 -6.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.343969e+01 -1.743420e+02 -6.000000e+00 + vertex -7.348481e+01 -1.741737e+02 -6.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.348481e+01 -1.741737e+02 -6.000000e+00 + vertex -7.350000e+01 -1.740000e+02 -6.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.350000e+01 -1.740000e+02 -6.000000e+00 + vertex 7.473953e+01 -1.715228e+02 -6.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.350000e+01 -1.730000e+02 -6.000000e+00 + vertex 7.250000e+01 -1.750000e+02 -6.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.710916e-02 -9.961988e-01 -0.000000e+00 + outer loop + vertex -7.250000e+01 -1.750000e+02 -3.000000e+00 + vertex -7.267365e+01 -1.749848e+02 -3.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.710916e-02 -9.961988e-01 -0.000000e+00 + outer loop + vertex -7.267365e+01 -1.749848e+02 -3.000000e+00 + vertex -7.267365e+01 -1.749848e+02 -6.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 -1.000000e+00 -0.000000e+00 + outer loop + vertex 7.250000e+01 -1.750000e+02 -3.000000e+00 + vertex 7.100000e+01 -1.750000e+02 -3.000000e+00 + vertex 7.250000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.350000e+01 -1.730000e+02 -6.000000e+00 + vertex 7.267365e+01 -1.749848e+02 -6.000000e+00 + vertex 7.250000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.710916e-02 -9.961988e-01 0.000000e+00 + outer loop + vertex 7.267365e+01 -1.749848e+02 -6.000000e+00 + vertex 7.250000e+01 -1.750000e+02 -3.000000e+00 + vertex 7.250000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.650000e+01 -1.730000e+02 -6.000000e+00 + vertex 1.740000e+02 -1.750000e+02 -6.000000e+00 + vertex 7.750000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.734357e+01 -1.749877e+02 -6.000000e+00 + vertex 7.669098e+01 -1.745878e+02 -6.000000e+00 + vertex 7.750000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.669098e+01 -1.745878e+02 -6.000000e+00 + vertex 7.660899e+01 -1.744540e+02 -6.000000e+00 + vertex 7.750000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.660899e+01 -1.744540e+02 -6.000000e+00 + vertex 7.654894e+01 -1.743090e+02 -6.000000e+00 + vertex 7.750000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.654894e+01 -1.743090e+02 -6.000000e+00 + vertex 7.651231e+01 -1.741564e+02 -6.000000e+00 + vertex 7.750000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.651231e+01 -1.741564e+02 -6.000000e+00 + vertex 7.650000e+01 -1.740000e+02 -6.000000e+00 + vertex 7.750000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.650000e+01 -1.740000e+02 -6.000000e+00 + vertex 7.650000e+01 -1.730000e+02 -6.000000e+00 + vertex 7.750000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 -1.000000e+00 0.000000e+00 + outer loop + vertex 7.900000e+01 -1.750000e+02 -3.000000e+00 + vertex 7.750000e+01 -1.750000e+02 -3.000000e+00 + vertex 7.750000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -1.000000e+00 0.000000e+00 + outer loop + vertex 1.740000e+02 -1.750000e+02 -6.000000e+00 + vertex 7.900000e+01 -1.750000e+02 -3.000000e+00 + vertex 7.750000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.843923e-02 -9.969189e-01 -0.000000e+00 + outer loop + vertex 7.750000e+01 -1.750000e+02 -3.000000e+00 + vertex 7.734357e+01 -1.749877e+02 -3.000000e+00 + vertex 7.750000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.843923e-02 -9.969189e-01 -0.000000e+00 + outer loop + vertex 7.734357e+01 -1.749877e+02 -3.000000e+00 + vertex 7.734357e+01 -1.749877e+02 -6.000000e+00 + vertex 7.750000e+01 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.650000e+01 -1.730000e+02 -6.000000e+00 + vertex 1.750000e+02 -1.740000e+02 -6.000000e+00 + vertex 1.740000e+02 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 1.750000e+02 -1.740000e+02 -6.000000e+00 + vertex 1.749848e+02 -1.741737e+02 -6.000000e+00 + vertex 1.740000e+02 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 1.749848e+02 -1.741737e+02 -6.000000e+00 + vertex 1.749397e+02 -1.743420e+02 -6.000000e+00 + vertex 1.740000e+02 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 1.749397e+02 -1.743420e+02 -6.000000e+00 + vertex 1.748660e+02 -1.745000e+02 -6.000000e+00 + vertex 1.740000e+02 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 1.748660e+02 -1.745000e+02 -6.000000e+00 + vertex 1.747660e+02 -1.746428e+02 -6.000000e+00 + vertex 1.740000e+02 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 1.747660e+02 -1.746428e+02 -6.000000e+00 + vertex 1.746428e+02 -1.747660e+02 -6.000000e+00 + vertex 1.740000e+02 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 1.746428e+02 -1.747660e+02 -6.000000e+00 + vertex 1.741737e+02 -1.749848e+02 -6.000000e+00 + vertex 1.740000e+02 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -1.000000e+00 0.000000e+00 + outer loop + vertex 7.900000e+01 -1.750000e+02 0.000000e+00 + vertex 7.900000e+01 -1.750000e+02 -3.000000e+00 + vertex 1.740000e+02 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 -1.000000e+00 -0.000000e+00 + outer loop + vertex 1.740000e+02 -1.750000e+02 0.000000e+00 + vertex 7.900000e+01 -1.750000e+02 0.000000e+00 + vertex 1.740000e+02 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.710545e-02 -9.961991e-01 0.000000e+00 + outer loop + vertex 1.741737e+02 -1.749848e+02 -6.000000e+00 + vertex 1.740000e+02 -1.750000e+02 0.000000e+00 + vertex 1.740000e+02 -1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 -1.000000e+00 -0.000000e+00 + outer loop + vertex -7.900000e+01 -1.750000e+02 0.000000e+00 + vertex -1.740000e+02 -1.750000e+02 0.000000e+00 + vertex -7.900000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.750000e+01 -1.750000e+02 -3.000000e+00 + vertex -7.882635e+01 -1.749848e+02 -3.000000e+00 + vertex -7.900000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.710916e-02 -9.961988e-01 0.000000e+00 + outer loop + vertex -7.882635e+01 -1.749848e+02 -3.000000e+00 + vertex -7.900000e+01 -1.750000e+02 0.000000e+00 + vertex -7.900000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.823396e+01 -1.746428e+02 -3.000000e+00 + vertex -7.835721e+01 -1.747660e+02 -3.000000e+00 + vertex -7.750000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.835721e+01 -1.747660e+02 -3.000000e+00 + vertex -7.850000e+01 -1.748660e+02 -3.000000e+00 + vertex -7.750000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.850000e+01 -1.748660e+02 -3.000000e+00 + vertex -7.865798e+01 -1.749397e+02 -3.000000e+00 + vertex -7.750000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.865798e+01 -1.749397e+02 -3.000000e+00 + vertex -7.882635e+01 -1.749848e+02 -3.000000e+00 + vertex -7.750000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.813398e+01 -1.745000e+02 -3.000000e+00 + vertex -7.823396e+01 -1.746428e+02 -3.000000e+00 + vertex -7.750000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.732635e+01 -1.749848e+02 -3.000000e+00 + vertex -7.813398e+01 -1.745000e+02 -3.000000e+00 + vertex -7.750000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.710916e-02 -9.961988e-01 0.000000e+00 + outer loop + vertex -7.732635e+01 -1.749848e+02 -6.000000e+00 + vertex -7.732635e+01 -1.749848e+02 -3.000000e+00 + vertex -7.750000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.100000e+01 -1.750000e+02 -3.000000e+00 + vertex -7.117365e+01 -1.749848e+02 -3.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.117365e+01 -1.749848e+02 -3.000000e+00 + vertex -7.134202e+01 -1.749397e+02 -3.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.134202e+01 -1.749397e+02 -3.000000e+00 + vertex -7.150000e+01 -1.748660e+02 -3.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.150000e+01 -1.748660e+02 -3.000000e+00 + vertex -7.164279e+01 -1.747660e+02 -3.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.164279e+01 -1.747660e+02 -3.000000e+00 + vertex -7.176604e+01 -1.746428e+02 -3.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.176604e+01 -1.746428e+02 -3.000000e+00 + vertex -7.267365e+01 -1.749848e+02 -3.000000e+00 + vertex -7.250000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -1.000000e+00 0.000000e+00 + outer loop + vertex 7.100000e+01 -1.750000e+02 -3.000000e+00 + vertex -7.100000e+01 -1.750000e+02 0.000000e+00 + vertex -7.100000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.711287e-02 -9.961984e-01 -0.000000e+00 + outer loop + vertex -7.100000e+01 -1.750000e+02 0.000000e+00 + vertex -7.117365e+01 -1.749848e+02 0.000000e+00 + vertex -7.100000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.711287e-02 -9.961984e-01 -0.000000e+00 + outer loop + vertex -7.117365e+01 -1.749848e+02 0.000000e+00 + vertex -7.117365e+01 -1.749848e+02 -3.000000e+00 + vertex -7.100000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 -1.000000e+00 -0.000000e+00 + outer loop + vertex 7.100000e+01 -1.750000e+02 0.000000e+00 + vertex -7.100000e+01 -1.750000e+02 0.000000e+00 + vertex 7.100000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.250000e+01 -1.750000e+02 -3.000000e+00 + vertex 7.117365e+01 -1.749848e+02 -3.000000e+00 + vertex 7.100000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.711287e-02 -9.961984e-01 0.000000e+00 + outer loop + vertex 7.117365e+01 -1.749848e+02 -3.000000e+00 + vertex 7.100000e+01 -1.750000e+02 0.000000e+00 + vertex 7.100000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.176604e+01 -1.746428e+02 -3.000000e+00 + vertex 7.164279e+01 -1.747660e+02 -3.000000e+00 + vertex 7.250000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.164279e+01 -1.747660e+02 -3.000000e+00 + vertex 7.150000e+01 -1.748660e+02 -3.000000e+00 + vertex 7.250000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.150000e+01 -1.748660e+02 -3.000000e+00 + vertex 7.134202e+01 -1.749397e+02 -3.000000e+00 + vertex 7.250000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.134202e+01 -1.749397e+02 -3.000000e+00 + vertex 7.117365e+01 -1.749848e+02 -3.000000e+00 + vertex 7.250000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.186603e+01 -1.745000e+02 -3.000000e+00 + vertex 7.176604e+01 -1.746428e+02 -3.000000e+00 + vertex 7.250000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.267365e+01 -1.749848e+02 -3.000000e+00 + vertex 7.186603e+01 -1.745000e+02 -3.000000e+00 + vertex 7.250000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.710916e-02 -9.961988e-01 0.000000e+00 + outer loop + vertex 7.267365e+01 -1.749848e+02 -6.000000e+00 + vertex 7.267365e+01 -1.749848e+02 -3.000000e+00 + vertex 7.250000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.900000e+01 -1.750000e+02 -3.000000e+00 + vertex 7.882635e+01 -1.749848e+02 -3.000000e+00 + vertex 7.750000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.882635e+01 -1.749848e+02 -3.000000e+00 + vertex 7.865798e+01 -1.749397e+02 -3.000000e+00 + vertex 7.750000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.823396e+01 -1.746428e+02 -3.000000e+00 + vertex 7.734357e+01 -1.749877e+02 -3.000000e+00 + vertex 7.750000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.865798e+01 -1.749397e+02 -3.000000e+00 + vertex 7.850000e+01 -1.748660e+02 -3.000000e+00 + vertex 7.750000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.850000e+01 -1.748660e+02 -3.000000e+00 + vertex 7.835721e+01 -1.747660e+02 -3.000000e+00 + vertex 7.750000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.835721e+01 -1.747660e+02 -3.000000e+00 + vertex 7.823396e+01 -1.746428e+02 -3.000000e+00 + vertex 7.750000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.710916e-02 -9.961988e-01 -0.000000e+00 + outer loop + vertex 7.882635e+01 -1.749848e+02 0.000000e+00 + vertex 7.882635e+01 -1.749848e+02 -3.000000e+00 + vertex 7.900000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.710916e-02 -9.961988e-01 -0.000000e+00 + outer loop + vertex 7.900000e+01 -1.750000e+02 0.000000e+00 + vertex 7.882635e+01 -1.749848e+02 0.000000e+00 + vertex 7.900000e+01 -1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.795443e+01 -1.724790e+02 0.000000e+00 + vertex -7.781908e+01 -1.719739e+02 0.000000e+00 + vertex -1.740000e+02 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.781908e+01 -1.719739e+02 0.000000e+00 + vertex -7.759807e+01 -1.715000e+02 0.000000e+00 + vertex -1.740000e+02 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.759807e+01 -1.715000e+02 0.000000e+00 + vertex -7.729813e+01 -1.710716e+02 0.000000e+00 + vertex -1.740000e+02 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.729813e+01 -1.710716e+02 0.000000e+00 + vertex -7.552095e+01 1.700456e+02 0.000000e+00 + vertex -1.740000e+02 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.552095e+01 1.700456e+02 0.000000e+00 + vertex -1.741737e+02 -1.749848e+02 0.000000e+00 + vertex -1.740000e+02 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.900000e+01 -1.750000e+02 0.000000e+00 + vertex -7.800000e+01 -1.740000e+02 0.000000e+00 + vertex -1.740000e+02 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.800000e+01 -1.740000e+02 0.000000e+00 + vertex -7.800000e+01 -1.730000e+02 0.000000e+00 + vertex -1.740000e+02 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.800000e+01 -1.730000e+02 0.000000e+00 + vertex -7.795443e+01 -1.724790e+02 0.000000e+00 + vertex -1.740000e+02 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.882635e+01 -1.749848e+02 0.000000e+00 + vertex -7.865798e+01 -1.749397e+02 0.000000e+00 + vertex -7.900000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.865798e+01 -1.749397e+02 0.000000e+00 + vertex -7.850000e+01 -1.748660e+02 0.000000e+00 + vertex -7.900000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.850000e+01 -1.748660e+02 0.000000e+00 + vertex -7.835721e+01 -1.747660e+02 0.000000e+00 + vertex -7.900000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.835721e+01 -1.747660e+02 0.000000e+00 + vertex -7.823396e+01 -1.746428e+02 0.000000e+00 + vertex -7.900000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.823396e+01 -1.746428e+02 0.000000e+00 + vertex -7.813398e+01 -1.745000e+02 0.000000e+00 + vertex -7.900000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.813398e+01 -1.745000e+02 0.000000e+00 + vertex -7.806031e+01 -1.743420e+02 0.000000e+00 + vertex -7.900000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.806031e+01 -1.743420e+02 0.000000e+00 + vertex -7.801519e+01 -1.741737e+02 0.000000e+00 + vertex -7.900000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.801519e+01 -1.741737e+02 0.000000e+00 + vertex -7.800000e+01 -1.740000e+02 0.000000e+00 + vertex -7.900000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 8.710916e-02 -9.961988e-01 0.000000e+00 + outer loop + vertex -7.882635e+01 -1.749848e+02 -3.000000e+00 + vertex -7.882635e+01 -1.749848e+02 0.000000e+00 + vertex -7.900000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.100000e+01 -1.750000e+02 0.000000e+00 + vertex 7.200000e+01 -1.730000e+02 0.000000e+00 + vertex -7.100000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.200000e+01 -1.730000e+02 0.000000e+00 + vertex -7.200000e+01 -1.730000e+02 0.000000e+00 + vertex -7.100000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 -1.730000e+02 0.000000e+00 + vertex -7.117365e+01 -1.749848e+02 0.000000e+00 + vertex -7.100000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.150000e+01 -1.748660e+02 0.000000e+00 + vertex 7.164279e+01 -1.747660e+02 0.000000e+00 + vertex 7.100000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.117365e+01 -1.749848e+02 0.000000e+00 + vertex 7.150000e+01 -1.748660e+02 0.000000e+00 + vertex 7.100000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.164279e+01 -1.747660e+02 0.000000e+00 + vertex 7.176604e+01 -1.746428e+02 0.000000e+00 + vertex 7.100000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.176604e+01 -1.746428e+02 0.000000e+00 + vertex 7.186603e+01 -1.745000e+02 0.000000e+00 + vertex 7.100000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.186603e+01 -1.745000e+02 0.000000e+00 + vertex 7.193969e+01 -1.743420e+02 0.000000e+00 + vertex 7.100000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.193969e+01 -1.743420e+02 0.000000e+00 + vertex 7.198481e+01 -1.741737e+02 0.000000e+00 + vertex 7.100000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.198481e+01 -1.741737e+02 0.000000e+00 + vertex 7.200000e+01 -1.740000e+02 0.000000e+00 + vertex 7.100000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.200000e+01 -1.740000e+02 0.000000e+00 + vertex 7.200000e+01 -1.730000e+02 0.000000e+00 + vertex 7.100000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 8.711287e-02 -9.961984e-01 0.000000e+00 + outer loop + vertex 7.117365e+01 -1.749848e+02 -3.000000e+00 + vertex 7.117365e+01 -1.749848e+02 0.000000e+00 + vertex 7.100000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 1.740000e+02 -1.750000e+02 0.000000e+00 + vertex 1.750000e+02 -1.740000e+02 0.000000e+00 + vertex 7.900000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.750000e+02 -1.740000e+02 0.000000e+00 + vertex 7.800000e+01 -1.740000e+02 0.000000e+00 + vertex 7.900000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.800000e+01 -1.740000e+02 0.000000e+00 + vertex 7.801519e+01 -1.741737e+02 0.000000e+00 + vertex 7.900000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.801519e+01 -1.741737e+02 0.000000e+00 + vertex 7.806031e+01 -1.743420e+02 0.000000e+00 + vertex 7.900000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.806031e+01 -1.743420e+02 0.000000e+00 + vertex 7.813398e+01 -1.745000e+02 0.000000e+00 + vertex 7.900000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.813398e+01 -1.745000e+02 0.000000e+00 + vertex 7.823396e+01 -1.746428e+02 0.000000e+00 + vertex 7.900000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.823396e+01 -1.746428e+02 0.000000e+00 + vertex 7.835721e+01 -1.747660e+02 0.000000e+00 + vertex 7.900000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.835721e+01 -1.747660e+02 0.000000e+00 + vertex 7.850000e+01 -1.748660e+02 0.000000e+00 + vertex 7.900000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.850000e+01 -1.748660e+02 0.000000e+00 + vertex 7.865798e+01 -1.749397e+02 0.000000e+00 + vertex 7.900000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.865798e+01 -1.749397e+02 0.000000e+00 + vertex 7.882635e+01 -1.749848e+02 0.000000e+00 + vertex 7.900000e+01 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 1.741737e+02 -1.749848e+02 0.000000e+00 + vertex 1.750000e+02 -1.740000e+02 0.000000e+00 + vertex 1.740000e+02 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 8.710545e-02 -9.961991e-01 0.000000e+00 + outer loop + vertex 1.741737e+02 -1.749848e+02 -6.000000e+00 + vertex 1.741737e+02 -1.749848e+02 0.000000e+00 + vertex 1.740000e+02 -1.750000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.719098e+01 -1.749511e+02 -6.000000e+00 + vertex 7.669098e+01 -1.745878e+02 -6.000000e+00 + vertex 7.734357e+01 -1.749877e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.334089e-01 -9.723787e-01 -0.000000e+00 + outer loop + vertex 7.734357e+01 -1.749877e+02 -3.000000e+00 + vertex 7.719098e+01 -1.749511e+02 -3.000000e+00 + vertex 7.734357e+01 -1.749877e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.334089e-01 -9.723787e-01 -0.000000e+00 + outer loop + vertex 7.719098e+01 -1.749511e+02 -3.000000e+00 + vertex 7.719098e+01 -1.749511e+02 -6.000000e+00 + vertex 7.734357e+01 -1.749877e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.823396e+01 -1.746428e+02 -3.000000e+00 + vertex 7.813398e+01 -1.745000e+02 -3.000000e+00 + vertex 7.734357e+01 -1.749877e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.813398e+01 -1.745000e+02 -3.000000e+00 + vertex 7.719098e+01 -1.749511e+02 -3.000000e+00 + vertex 7.734357e+01 -1.749877e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.743420e+02 -1.749397e+02 -6.000000e+00 + vertex -1.750000e+02 -1.740000e+02 -6.000000e+00 + vertex -1.741737e+02 -1.749848e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588543e-01 -9.659164e-01 -0.000000e+00 + outer loop + vertex -1.741737e+02 -1.749848e+02 0.000000e+00 + vertex -1.743420e+02 -1.749397e+02 0.000000e+00 + vertex -1.741737e+02 -1.749848e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588543e-01 -9.659164e-01 -0.000000e+00 + outer loop + vertex -1.743420e+02 -1.749397e+02 0.000000e+00 + vertex -1.743420e+02 -1.749397e+02 -6.000000e+00 + vertex -1.741737e+02 -1.749848e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.650000e+01 -1.730000e+02 -6.000000e+00 + vertex -7.715798e+01 -1.749397e+02 -6.000000e+00 + vertex -7.732635e+01 -1.749848e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588543e-01 -9.659164e-01 0.000000e+00 + outer loop + vertex -7.715798e+01 -1.749397e+02 -6.000000e+00 + vertex -7.732635e+01 -1.749848e+02 -3.000000e+00 + vertex -7.732635e+01 -1.749848e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588543e-01 -9.659164e-01 -0.000000e+00 + outer loop + vertex -7.267365e+01 -1.749848e+02 -3.000000e+00 + vertex -7.284202e+01 -1.749397e+02 -3.000000e+00 + vertex -7.267365e+01 -1.749848e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588543e-01 -9.659164e-01 -0.000000e+00 + outer loop + vertex -7.284202e+01 -1.749397e+02 -3.000000e+00 + vertex -7.284202e+01 -1.749397e+02 -6.000000e+00 + vertex -7.267365e+01 -1.749848e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.350000e+01 -1.730000e+02 -6.000000e+00 + vertex 7.284202e+01 -1.749397e+02 -6.000000e+00 + vertex 7.267365e+01 -1.749848e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588543e-01 -9.659164e-01 0.000000e+00 + outer loop + vertex 7.284202e+01 -1.749397e+02 -6.000000e+00 + vertex 7.267365e+01 -1.749848e+02 -3.000000e+00 + vertex 7.267365e+01 -1.749848e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 1.746428e+02 -1.747660e+02 -6.000000e+00 + vertex 1.743420e+02 -1.749397e+02 -6.000000e+00 + vertex 1.741737e+02 -1.749848e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588543e-01 -9.659164e-01 0.000000e+00 + outer loop + vertex 1.743420e+02 -1.749397e+02 -6.000000e+00 + vertex 1.741737e+02 -1.749848e+02 0.000000e+00 + vertex 1.741737e+02 -1.749848e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588436e-01 -9.659192e-01 0.000000e+00 + outer loop + vertex -7.865798e+01 -1.749397e+02 -3.000000e+00 + vertex -7.882635e+01 -1.749848e+02 0.000000e+00 + vertex -7.882635e+01 -1.749848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.806031e+01 -1.743420e+02 -3.000000e+00 + vertex -7.813398e+01 -1.745000e+02 -3.000000e+00 + vertex -7.732635e+01 -1.749848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.715798e+01 -1.749397e+02 -3.000000e+00 + vertex -7.806031e+01 -1.743420e+02 -3.000000e+00 + vertex -7.732635e+01 -1.749848e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588543e-01 -9.659164e-01 0.000000e+00 + outer loop + vertex -7.715798e+01 -1.749397e+02 -6.000000e+00 + vertex -7.715798e+01 -1.749397e+02 -3.000000e+00 + vertex -7.732635e+01 -1.749848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.176604e+01 -1.746428e+02 -3.000000e+00 + vertex -7.186603e+01 -1.745000e+02 -3.000000e+00 + vertex -7.267365e+01 -1.749848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.186603e+01 -1.745000e+02 -3.000000e+00 + vertex -7.284202e+01 -1.749397e+02 -3.000000e+00 + vertex -7.267365e+01 -1.749848e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588436e-01 -9.659192e-01 -0.000000e+00 + outer loop + vertex -7.117365e+01 -1.749848e+02 0.000000e+00 + vertex -7.134202e+01 -1.749397e+02 0.000000e+00 + vertex -7.117365e+01 -1.749848e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588436e-01 -9.659192e-01 -0.000000e+00 + outer loop + vertex -7.134202e+01 -1.749397e+02 0.000000e+00 + vertex -7.134202e+01 -1.749397e+02 -3.000000e+00 + vertex -7.117365e+01 -1.749848e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588436e-01 -9.659192e-01 0.000000e+00 + outer loop + vertex 7.134202e+01 -1.749397e+02 -3.000000e+00 + vertex 7.117365e+01 -1.749848e+02 0.000000e+00 + vertex 7.117365e+01 -1.749848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.193969e+01 -1.743420e+02 -3.000000e+00 + vertex 7.186603e+01 -1.745000e+02 -3.000000e+00 + vertex 7.267365e+01 -1.749848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.284202e+01 -1.749397e+02 -3.000000e+00 + vertex 7.193969e+01 -1.743420e+02 -3.000000e+00 + vertex 7.267365e+01 -1.749848e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588543e-01 -9.659164e-01 0.000000e+00 + outer loop + vertex 7.284202e+01 -1.749397e+02 -6.000000e+00 + vertex 7.284202e+01 -1.749397e+02 -3.000000e+00 + vertex 7.267365e+01 -1.749848e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588436e-01 -9.659192e-01 -0.000000e+00 + outer loop + vertex 7.865798e+01 -1.749397e+02 0.000000e+00 + vertex 7.865798e+01 -1.749397e+02 -3.000000e+00 + vertex 7.882635e+01 -1.749848e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588436e-01 -9.659192e-01 -0.000000e+00 + outer loop + vertex 7.882635e+01 -1.749848e+02 0.000000e+00 + vertex 7.865798e+01 -1.749397e+02 0.000000e+00 + vertex 7.882635e+01 -1.749848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.552095e+01 1.700456e+02 0.000000e+00 + vertex -1.743420e+02 -1.749397e+02 0.000000e+00 + vertex -1.741737e+02 -1.749848e+02 0.000000e+00 + endloop + endfacet + facet normal 2.588436e-01 -9.659192e-01 0.000000e+00 + outer loop + vertex -7.865798e+01 -1.749397e+02 -3.000000e+00 + vertex -7.865798e+01 -1.749397e+02 0.000000e+00 + vertex -7.882635e+01 -1.749848e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 -1.730000e+02 0.000000e+00 + vertex -7.134202e+01 -1.749397e+02 0.000000e+00 + vertex -7.117365e+01 -1.749848e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.134202e+01 -1.749397e+02 0.000000e+00 + vertex 7.150000e+01 -1.748660e+02 0.000000e+00 + vertex 7.117365e+01 -1.749848e+02 0.000000e+00 + endloop + endfacet + facet normal 2.588436e-01 -9.659192e-01 0.000000e+00 + outer loop + vertex 7.134202e+01 -1.749397e+02 -3.000000e+00 + vertex 7.134202e+01 -1.749397e+02 0.000000e+00 + vertex 7.117365e+01 -1.749848e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 1.743420e+02 -1.749397e+02 0.000000e+00 + vertex 1.750000e+02 -1.740000e+02 0.000000e+00 + vertex 1.741737e+02 -1.749848e+02 0.000000e+00 + endloop + endfacet + facet normal 2.588543e-01 -9.659164e-01 0.000000e+00 + outer loop + vertex 1.743420e+02 -1.749397e+02 -6.000000e+00 + vertex 1.743420e+02 -1.749397e+02 0.000000e+00 + vertex 1.741737e+02 -1.749848e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.704601e+01 -1.748910e+02 -6.000000e+00 + vertex 7.669098e+01 -1.745878e+02 -6.000000e+00 + vertex 7.719098e+01 -1.749511e+02 -6.000000e+00 + endloop + endfacet + facet normal -3.826929e-01 -9.238756e-01 -0.000000e+00 + outer loop + vertex 7.719098e+01 -1.749511e+02 -3.000000e+00 + vertex 7.704601e+01 -1.748910e+02 -3.000000e+00 + vertex 7.719098e+01 -1.749511e+02 -6.000000e+00 + endloop + endfacet + facet normal -3.826929e-01 -9.238756e-01 -0.000000e+00 + outer loop + vertex 7.704601e+01 -1.748910e+02 -3.000000e+00 + vertex 7.704601e+01 -1.748910e+02 -6.000000e+00 + vertex 7.719098e+01 -1.749511e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.813398e+01 -1.745000e+02 -3.000000e+00 + vertex 7.806031e+01 -1.743420e+02 -3.000000e+00 + vertex 7.719098e+01 -1.749511e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.806031e+01 -1.743420e+02 -3.000000e+00 + vertex 7.704601e+01 -1.748910e+02 -3.000000e+00 + vertex 7.719098e+01 -1.749511e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.745000e+02 -1.748660e+02 -6.000000e+00 + vertex -1.750000e+02 -1.740000e+02 -6.000000e+00 + vertex -1.743420e+02 -1.749397e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 -9.063010e-01 -0.000000e+00 + outer loop + vertex -1.743420e+02 -1.749397e+02 0.000000e+00 + vertex -1.745000e+02 -1.748660e+02 0.000000e+00 + vertex -1.743420e+02 -1.749397e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 -9.063010e-01 -0.000000e+00 + outer loop + vertex -1.745000e+02 -1.748660e+02 0.000000e+00 + vertex -1.745000e+02 -1.748660e+02 -6.000000e+00 + vertex -1.743420e+02 -1.749397e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.650000e+01 -1.730000e+02 -6.000000e+00 + vertex -7.700000e+01 -1.748660e+02 -6.000000e+00 + vertex -7.715798e+01 -1.749397e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 -9.063010e-01 0.000000e+00 + outer loop + vertex -7.700000e+01 -1.748660e+02 -6.000000e+00 + vertex -7.715798e+01 -1.749397e+02 -3.000000e+00 + vertex -7.715798e+01 -1.749397e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 -9.063010e-01 -0.000000e+00 + outer loop + vertex -7.284202e+01 -1.749397e+02 -3.000000e+00 + vertex -7.300000e+01 -1.748660e+02 -3.000000e+00 + vertex -7.284202e+01 -1.749397e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 -9.063010e-01 -0.000000e+00 + outer loop + vertex -7.300000e+01 -1.748660e+02 -3.000000e+00 + vertex -7.300000e+01 -1.748660e+02 -6.000000e+00 + vertex -7.284202e+01 -1.749397e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.350000e+01 -1.730000e+02 -6.000000e+00 + vertex 7.300000e+01 -1.748660e+02 -6.000000e+00 + vertex 7.284202e+01 -1.749397e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 -9.063010e-01 0.000000e+00 + outer loop + vertex 7.300000e+01 -1.748660e+02 -6.000000e+00 + vertex 7.284202e+01 -1.749397e+02 -3.000000e+00 + vertex 7.284202e+01 -1.749397e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 1.746428e+02 -1.747660e+02 -6.000000e+00 + vertex 1.745000e+02 -1.748660e+02 -6.000000e+00 + vertex 1.743420e+02 -1.749397e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 -9.063010e-01 0.000000e+00 + outer loop + vertex 1.745000e+02 -1.748660e+02 -6.000000e+00 + vertex 1.743420e+02 -1.749397e+02 0.000000e+00 + vertex 1.743420e+02 -1.749397e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226491e-01 -9.062934e-01 0.000000e+00 + outer loop + vertex -7.850000e+01 -1.748660e+02 -3.000000e+00 + vertex -7.865798e+01 -1.749397e+02 0.000000e+00 + vertex -7.865798e+01 -1.749397e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.700000e+01 -1.748660e+02 -3.000000e+00 + vertex -7.806031e+01 -1.743420e+02 -3.000000e+00 + vertex -7.715798e+01 -1.749397e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 -9.063010e-01 0.000000e+00 + outer loop + vertex -7.700000e+01 -1.748660e+02 -6.000000e+00 + vertex -7.700000e+01 -1.748660e+02 -3.000000e+00 + vertex -7.715798e+01 -1.749397e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.186603e+01 -1.745000e+02 -3.000000e+00 + vertex -7.193969e+01 -1.743420e+02 -3.000000e+00 + vertex -7.284202e+01 -1.749397e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.193969e+01 -1.743420e+02 -3.000000e+00 + vertex -7.300000e+01 -1.748660e+02 -3.000000e+00 + vertex -7.284202e+01 -1.749397e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 -9.063010e-01 -0.000000e+00 + outer loop + vertex -7.134202e+01 -1.749397e+02 0.000000e+00 + vertex -7.150000e+01 -1.748660e+02 0.000000e+00 + vertex -7.134202e+01 -1.749397e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 -9.063010e-01 -0.000000e+00 + outer loop + vertex -7.150000e+01 -1.748660e+02 0.000000e+00 + vertex -7.150000e+01 -1.748660e+02 -3.000000e+00 + vertex -7.134202e+01 -1.749397e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 -9.063010e-01 0.000000e+00 + outer loop + vertex 7.150000e+01 -1.748660e+02 -3.000000e+00 + vertex 7.134202e+01 -1.749397e+02 0.000000e+00 + vertex 7.134202e+01 -1.749397e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.300000e+01 -1.748660e+02 -3.000000e+00 + vertex 7.193969e+01 -1.743420e+02 -3.000000e+00 + vertex 7.284202e+01 -1.749397e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 -9.063010e-01 0.000000e+00 + outer loop + vertex 7.300000e+01 -1.748660e+02 -6.000000e+00 + vertex 7.300000e+01 -1.748660e+02 -3.000000e+00 + vertex 7.284202e+01 -1.749397e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226491e-01 -9.062934e-01 -0.000000e+00 + outer loop + vertex 7.850000e+01 -1.748660e+02 0.000000e+00 + vertex 7.850000e+01 -1.748660e+02 -3.000000e+00 + vertex 7.865798e+01 -1.749397e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226491e-01 -9.062934e-01 -0.000000e+00 + outer loop + vertex 7.865798e+01 -1.749397e+02 0.000000e+00 + vertex 7.850000e+01 -1.748660e+02 0.000000e+00 + vertex 7.865798e+01 -1.749397e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.552095e+01 1.700456e+02 0.000000e+00 + vertex -1.745000e+02 -1.748660e+02 0.000000e+00 + vertex -1.743420e+02 -1.749397e+02 0.000000e+00 + endloop + endfacet + facet normal 4.226491e-01 -9.062934e-01 0.000000e+00 + outer loop + vertex -7.850000e+01 -1.748660e+02 -3.000000e+00 + vertex -7.850000e+01 -1.748660e+02 0.000000e+00 + vertex -7.865798e+01 -1.749397e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 -1.730000e+02 0.000000e+00 + vertex -7.150000e+01 -1.748660e+02 0.000000e+00 + vertex -7.134202e+01 -1.749397e+02 0.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 -9.063010e-01 0.000000e+00 + outer loop + vertex 7.150000e+01 -1.748660e+02 -3.000000e+00 + vertex 7.150000e+01 -1.748660e+02 0.000000e+00 + vertex 7.134202e+01 -1.749397e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 1.745000e+02 -1.748660e+02 0.000000e+00 + vertex 1.750000e+02 -1.740000e+02 0.000000e+00 + vertex 1.743420e+02 -1.749397e+02 0.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 -9.063010e-01 0.000000e+00 + outer loop + vertex 1.745000e+02 -1.748660e+02 -6.000000e+00 + vertex 1.745000e+02 -1.748660e+02 0.000000e+00 + vertex 1.743420e+02 -1.749397e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.691222e+01 -1.748090e+02 -6.000000e+00 + vertex 7.669098e+01 -1.745878e+02 -6.000000e+00 + vertex 7.704601e+01 -1.748910e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.224964e-01 -8.526415e-01 -0.000000e+00 + outer loop + vertex 7.704601e+01 -1.748910e+02 -3.000000e+00 + vertex 7.691222e+01 -1.748090e+02 -3.000000e+00 + vertex 7.704601e+01 -1.748910e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.224964e-01 -8.526415e-01 -0.000000e+00 + outer loop + vertex 7.691222e+01 -1.748090e+02 -3.000000e+00 + vertex 7.691222e+01 -1.748090e+02 -6.000000e+00 + vertex 7.704601e+01 -1.748910e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.806031e+01 -1.743420e+02 -3.000000e+00 + vertex 7.691222e+01 -1.748090e+02 -3.000000e+00 + vertex 7.704601e+01 -1.748910e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.746428e+02 -1.747660e+02 -6.000000e+00 + vertex -1.750000e+02 -1.740000e+02 -6.000000e+00 + vertex -1.745000e+02 -1.748660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735541e-01 -8.191677e-01 -0.000000e+00 + outer loop + vertex -1.745000e+02 -1.748660e+02 0.000000e+00 + vertex -1.746428e+02 -1.747660e+02 0.000000e+00 + vertex -1.745000e+02 -1.748660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735541e-01 -8.191677e-01 -0.000000e+00 + outer loop + vertex -1.746428e+02 -1.747660e+02 0.000000e+00 + vertex -1.746428e+02 -1.747660e+02 -6.000000e+00 + vertex -1.745000e+02 -1.748660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.650000e+01 -1.730000e+02 -6.000000e+00 + vertex -7.685721e+01 -1.747660e+02 -6.000000e+00 + vertex -7.700000e+01 -1.748660e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735341e-01 -8.191817e-01 0.000000e+00 + outer loop + vertex -7.685721e+01 -1.747660e+02 -6.000000e+00 + vertex -7.700000e+01 -1.748660e+02 -3.000000e+00 + vertex -7.700000e+01 -1.748660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735341e-01 -8.191817e-01 -0.000000e+00 + outer loop + vertex -7.300000e+01 -1.748660e+02 -3.000000e+00 + vertex -7.314279e+01 -1.747660e+02 -3.000000e+00 + vertex -7.300000e+01 -1.748660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735341e-01 -8.191817e-01 -0.000000e+00 + outer loop + vertex -7.314279e+01 -1.747660e+02 -3.000000e+00 + vertex -7.314279e+01 -1.747660e+02 -6.000000e+00 + vertex -7.300000e+01 -1.748660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.350000e+01 -1.730000e+02 -6.000000e+00 + vertex 7.314279e+01 -1.747660e+02 -6.000000e+00 + vertex 7.300000e+01 -1.748660e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735341e-01 -8.191817e-01 0.000000e+00 + outer loop + vertex 7.314279e+01 -1.747660e+02 -6.000000e+00 + vertex 7.300000e+01 -1.748660e+02 -3.000000e+00 + vertex 7.300000e+01 -1.748660e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735541e-01 -8.191677e-01 0.000000e+00 + outer loop + vertex 1.746428e+02 -1.747660e+02 -6.000000e+00 + vertex 1.745000e+02 -1.748660e+02 0.000000e+00 + vertex 1.745000e+02 -1.748660e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735341e-01 -8.191817e-01 0.000000e+00 + outer loop + vertex -7.835721e+01 -1.747660e+02 -3.000000e+00 + vertex -7.850000e+01 -1.748660e+02 0.000000e+00 + vertex -7.850000e+01 -1.748660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.685721e+01 -1.747660e+02 -3.000000e+00 + vertex -7.806031e+01 -1.743420e+02 -3.000000e+00 + vertex -7.700000e+01 -1.748660e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735341e-01 -8.191817e-01 0.000000e+00 + outer loop + vertex -7.685721e+01 -1.747660e+02 -6.000000e+00 + vertex -7.685721e+01 -1.747660e+02 -3.000000e+00 + vertex -7.700000e+01 -1.748660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.193969e+01 -1.743420e+02 -3.000000e+00 + vertex -7.314279e+01 -1.747660e+02 -3.000000e+00 + vertex -7.300000e+01 -1.748660e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735541e-01 -8.191677e-01 -0.000000e+00 + outer loop + vertex -7.150000e+01 -1.748660e+02 0.000000e+00 + vertex -7.164279e+01 -1.747660e+02 0.000000e+00 + vertex -7.150000e+01 -1.748660e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735541e-01 -8.191677e-01 -0.000000e+00 + outer loop + vertex -7.164279e+01 -1.747660e+02 0.000000e+00 + vertex -7.164279e+01 -1.747660e+02 -3.000000e+00 + vertex -7.150000e+01 -1.748660e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735541e-01 -8.191677e-01 0.000000e+00 + outer loop + vertex 7.164279e+01 -1.747660e+02 -3.000000e+00 + vertex 7.150000e+01 -1.748660e+02 0.000000e+00 + vertex 7.150000e+01 -1.748660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.314279e+01 -1.747660e+02 -3.000000e+00 + vertex 7.193969e+01 -1.743420e+02 -3.000000e+00 + vertex 7.300000e+01 -1.748660e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735341e-01 -8.191817e-01 0.000000e+00 + outer loop + vertex 7.314279e+01 -1.747660e+02 -6.000000e+00 + vertex 7.314279e+01 -1.747660e+02 -3.000000e+00 + vertex 7.300000e+01 -1.748660e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735341e-01 -8.191817e-01 -0.000000e+00 + outer loop + vertex 7.835721e+01 -1.747660e+02 0.000000e+00 + vertex 7.835721e+01 -1.747660e+02 -3.000000e+00 + vertex 7.850000e+01 -1.748660e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735341e-01 -8.191817e-01 -0.000000e+00 + outer loop + vertex 7.850000e+01 -1.748660e+02 0.000000e+00 + vertex 7.835721e+01 -1.747660e+02 0.000000e+00 + vertex 7.850000e+01 -1.748660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.552095e+01 1.700456e+02 0.000000e+00 + vertex -1.746428e+02 -1.747660e+02 0.000000e+00 + vertex -1.745000e+02 -1.748660e+02 0.000000e+00 + endloop + endfacet + facet normal 5.735341e-01 -8.191817e-01 0.000000e+00 + outer loop + vertex -7.835721e+01 -1.747660e+02 -3.000000e+00 + vertex -7.835721e+01 -1.747660e+02 0.000000e+00 + vertex -7.850000e+01 -1.748660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 -1.730000e+02 0.000000e+00 + vertex -7.164279e+01 -1.747660e+02 0.000000e+00 + vertex -7.150000e+01 -1.748660e+02 0.000000e+00 + endloop + endfacet + facet normal 5.735541e-01 -8.191677e-01 0.000000e+00 + outer loop + vertex 7.164279e+01 -1.747660e+02 -3.000000e+00 + vertex 7.164279e+01 -1.747660e+02 0.000000e+00 + vertex 7.150000e+01 -1.748660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 1.746428e+02 -1.747660e+02 0.000000e+00 + vertex 1.750000e+02 -1.740000e+02 0.000000e+00 + vertex 1.745000e+02 -1.748660e+02 0.000000e+00 + endloop + endfacet + facet normal 5.735541e-01 -8.191677e-01 0.000000e+00 + outer loop + vertex 1.746428e+02 -1.747660e+02 -6.000000e+00 + vertex 1.746428e+02 -1.747660e+02 0.000000e+00 + vertex 1.745000e+02 -1.748660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.679290e+01 -1.747071e+02 -6.000000e+00 + vertex 7.669098e+01 -1.745878e+02 -6.000000e+00 + vertex 7.691222e+01 -1.748090e+02 -6.000000e+00 + endloop + endfacet + facet normal -6.495001e-01 -7.603615e-01 -0.000000e+00 + outer loop + vertex 7.691222e+01 -1.748090e+02 -3.000000e+00 + vertex 7.679290e+01 -1.747071e+02 -3.000000e+00 + vertex 7.691222e+01 -1.748090e+02 -6.000000e+00 + endloop + endfacet + facet normal -6.495001e-01 -7.603615e-01 -0.000000e+00 + outer loop + vertex 7.679290e+01 -1.747071e+02 -3.000000e+00 + vertex 7.679290e+01 -1.747071e+02 -6.000000e+00 + vertex 7.691222e+01 -1.748090e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.806031e+01 -1.743420e+02 -3.000000e+00 + vertex 7.679290e+01 -1.747071e+02 -3.000000e+00 + vertex 7.691222e+01 -1.748090e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.747660e+02 -1.746428e+02 -6.000000e+00 + vertex -1.750000e+02 -1.740000e+02 -6.000000e+00 + vertex -1.746428e+02 -1.747660e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex -1.746428e+02 -1.747660e+02 0.000000e+00 + vertex -1.747660e+02 -1.746428e+02 0.000000e+00 + vertex -1.746428e+02 -1.747660e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex -1.747660e+02 -1.746428e+02 0.000000e+00 + vertex -1.747660e+02 -1.746428e+02 -6.000000e+00 + vertex -1.746428e+02 -1.747660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.650000e+01 -1.730000e+02 -6.000000e+00 + vertex -7.673395e+01 -1.746428e+02 -6.000000e+00 + vertex -7.685721e+01 -1.747660e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 -7.070854e-01 0.000000e+00 + outer loop + vertex -7.673395e+01 -1.746428e+02 -6.000000e+00 + vertex -7.685721e+01 -1.747660e+02 -3.000000e+00 + vertex -7.685721e+01 -1.747660e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071282e-01 -7.070854e-01 -0.000000e+00 + outer loop + vertex -7.314279e+01 -1.747660e+02 -3.000000e+00 + vertex -7.326604e+01 -1.746428e+02 -3.000000e+00 + vertex -7.314279e+01 -1.747660e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071282e-01 -7.070854e-01 -0.000000e+00 + outer loop + vertex -7.326604e+01 -1.746428e+02 -3.000000e+00 + vertex -7.326604e+01 -1.746428e+02 -6.000000e+00 + vertex -7.314279e+01 -1.747660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.350000e+01 -1.730000e+02 -6.000000e+00 + vertex 7.326604e+01 -1.746428e+02 -6.000000e+00 + vertex 7.314279e+01 -1.747660e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 -7.070854e-01 0.000000e+00 + outer loop + vertex 7.326604e+01 -1.746428e+02 -6.000000e+00 + vertex 7.314279e+01 -1.747660e+02 -3.000000e+00 + vertex 7.314279e+01 -1.747660e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex 1.747660e+02 -1.746428e+02 -6.000000e+00 + vertex 1.746428e+02 -1.747660e+02 0.000000e+00 + vertex 1.746428e+02 -1.747660e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 -7.070854e-01 0.000000e+00 + outer loop + vertex -7.823396e+01 -1.746428e+02 -3.000000e+00 + vertex -7.835721e+01 -1.747660e+02 0.000000e+00 + vertex -7.835721e+01 -1.747660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.673395e+01 -1.746428e+02 -3.000000e+00 + vertex -7.806031e+01 -1.743420e+02 -3.000000e+00 + vertex -7.685721e+01 -1.747660e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 -7.070854e-01 0.000000e+00 + outer loop + vertex -7.673395e+01 -1.746428e+02 -6.000000e+00 + vertex -7.673395e+01 -1.746428e+02 -3.000000e+00 + vertex -7.685721e+01 -1.747660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.193969e+01 -1.743420e+02 -3.000000e+00 + vertex -7.326604e+01 -1.746428e+02 -3.000000e+00 + vertex -7.314279e+01 -1.747660e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071282e-01 -7.070854e-01 -0.000000e+00 + outer loop + vertex -7.164279e+01 -1.747660e+02 0.000000e+00 + vertex -7.176604e+01 -1.746428e+02 0.000000e+00 + vertex -7.164279e+01 -1.747660e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071282e-01 -7.070854e-01 -0.000000e+00 + outer loop + vertex -7.176604e+01 -1.746428e+02 0.000000e+00 + vertex -7.176604e+01 -1.746428e+02 -3.000000e+00 + vertex -7.164279e+01 -1.747660e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 -7.070854e-01 0.000000e+00 + outer loop + vertex 7.176604e+01 -1.746428e+02 -3.000000e+00 + vertex 7.164279e+01 -1.747660e+02 0.000000e+00 + vertex 7.164279e+01 -1.747660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.326604e+01 -1.746428e+02 -3.000000e+00 + vertex 7.193969e+01 -1.743420e+02 -3.000000e+00 + vertex 7.314279e+01 -1.747660e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 -7.070854e-01 0.000000e+00 + outer loop + vertex 7.326604e+01 -1.746428e+02 -6.000000e+00 + vertex 7.326604e+01 -1.746428e+02 -3.000000e+00 + vertex 7.314279e+01 -1.747660e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071282e-01 -7.070854e-01 -0.000000e+00 + outer loop + vertex 7.823396e+01 -1.746428e+02 0.000000e+00 + vertex 7.823396e+01 -1.746428e+02 -3.000000e+00 + vertex 7.835721e+01 -1.747660e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071282e-01 -7.070854e-01 -0.000000e+00 + outer loop + vertex 7.835721e+01 -1.747660e+02 0.000000e+00 + vertex 7.823396e+01 -1.746428e+02 0.000000e+00 + vertex 7.835721e+01 -1.747660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.552095e+01 1.700456e+02 0.000000e+00 + vertex -1.747660e+02 -1.746428e+02 0.000000e+00 + vertex -1.746428e+02 -1.747660e+02 0.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 -7.070854e-01 0.000000e+00 + outer loop + vertex -7.823396e+01 -1.746428e+02 -3.000000e+00 + vertex -7.823396e+01 -1.746428e+02 0.000000e+00 + vertex -7.835721e+01 -1.747660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 -1.730000e+02 0.000000e+00 + vertex -7.176604e+01 -1.746428e+02 0.000000e+00 + vertex -7.164279e+01 -1.747660e+02 0.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 -7.070854e-01 0.000000e+00 + outer loop + vertex 7.176604e+01 -1.746428e+02 -3.000000e+00 + vertex 7.176604e+01 -1.746428e+02 0.000000e+00 + vertex 7.164279e+01 -1.747660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 1.747660e+02 -1.746428e+02 0.000000e+00 + vertex 1.750000e+02 -1.740000e+02 0.000000e+00 + vertex 1.746428e+02 -1.747660e+02 0.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex 1.747660e+02 -1.746428e+02 -6.000000e+00 + vertex 1.747660e+02 -1.746428e+02 0.000000e+00 + vertex 1.746428e+02 -1.747660e+02 0.000000e+00 + endloop + endfacet + facet normal -7.603649e-01 -6.494961e-01 -0.000000e+00 + outer loop + vertex 7.679290e+01 -1.747071e+02 -3.000000e+00 + vertex 7.669098e+01 -1.745878e+02 -3.000000e+00 + vertex 7.679290e+01 -1.747071e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.603649e-01 -6.494961e-01 -0.000000e+00 + outer loop + vertex 7.669098e+01 -1.745878e+02 -3.000000e+00 + vertex 7.669098e+01 -1.745878e+02 -6.000000e+00 + vertex 7.679290e+01 -1.747071e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.801519e+01 -1.741737e+02 -3.000000e+00 + vertex 7.669098e+01 -1.745878e+02 -3.000000e+00 + vertex 7.679290e+01 -1.747071e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.806031e+01 -1.743420e+02 -3.000000e+00 + vertex 7.801519e+01 -1.741737e+02 -3.000000e+00 + vertex 7.679290e+01 -1.747071e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.748660e+02 -1.745000e+02 -6.000000e+00 + vertex -1.749397e+02 -1.743420e+02 -6.000000e+00 + vertex -1.747660e+02 -1.746428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.749848e+02 -1.741737e+02 -6.000000e+00 + vertex -1.750000e+02 -1.740000e+02 -6.000000e+00 + vertex -1.747660e+02 -1.746428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.749397e+02 -1.743420e+02 -6.000000e+00 + vertex -1.749848e+02 -1.741737e+02 -6.000000e+00 + vertex -1.747660e+02 -1.746428e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191677e-01 -5.735541e-01 -0.000000e+00 + outer loop + vertex -1.747660e+02 -1.746428e+02 0.000000e+00 + vertex -1.748660e+02 -1.745000e+02 0.000000e+00 + vertex -1.747660e+02 -1.746428e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191677e-01 -5.735541e-01 -0.000000e+00 + outer loop + vertex -1.748660e+02 -1.745000e+02 0.000000e+00 + vertex -1.748660e+02 -1.745000e+02 -6.000000e+00 + vertex -1.747660e+02 -1.746428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.650000e+01 -1.730000e+02 -6.000000e+00 + vertex -7.663397e+01 -1.745000e+02 -6.000000e+00 + vertex -7.673395e+01 -1.746428e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191476e-01 -5.735828e-01 0.000000e+00 + outer loop + vertex -7.663397e+01 -1.745000e+02 -6.000000e+00 + vertex -7.673395e+01 -1.746428e+02 -3.000000e+00 + vertex -7.673395e+01 -1.746428e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191476e-01 -5.735828e-01 -0.000000e+00 + outer loop + vertex -7.326604e+01 -1.746428e+02 -3.000000e+00 + vertex -7.336602e+01 -1.745000e+02 -3.000000e+00 + vertex -7.326604e+01 -1.746428e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191476e-01 -5.735828e-01 -0.000000e+00 + outer loop + vertex -7.336602e+01 -1.745000e+02 -3.000000e+00 + vertex -7.336602e+01 -1.745000e+02 -6.000000e+00 + vertex -7.326604e+01 -1.746428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.350000e+01 -1.730000e+02 -6.000000e+00 + vertex 7.336602e+01 -1.745000e+02 -6.000000e+00 + vertex 7.326604e+01 -1.746428e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191476e-01 -5.735828e-01 0.000000e+00 + outer loop + vertex 7.336602e+01 -1.745000e+02 -6.000000e+00 + vertex 7.326604e+01 -1.746428e+02 -3.000000e+00 + vertex 7.326604e+01 -1.746428e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191677e-01 -5.735541e-01 0.000000e+00 + outer loop + vertex 1.748660e+02 -1.745000e+02 -6.000000e+00 + vertex 1.747660e+02 -1.746428e+02 0.000000e+00 + vertex 1.747660e+02 -1.746428e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191476e-01 -5.735828e-01 0.000000e+00 + outer loop + vertex -7.813398e+01 -1.745000e+02 -3.000000e+00 + vertex -7.823396e+01 -1.746428e+02 0.000000e+00 + vertex -7.823396e+01 -1.746428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.801519e+01 -1.741737e+02 -3.000000e+00 + vertex -7.806031e+01 -1.743420e+02 -3.000000e+00 + vertex -7.673395e+01 -1.746428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.663397e+01 -1.745000e+02 -3.000000e+00 + vertex -7.801519e+01 -1.741737e+02 -3.000000e+00 + vertex -7.673395e+01 -1.746428e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191476e-01 -5.735828e-01 0.000000e+00 + outer loop + vertex -7.663397e+01 -1.745000e+02 -6.000000e+00 + vertex -7.663397e+01 -1.745000e+02 -3.000000e+00 + vertex -7.673395e+01 -1.746428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.193969e+01 -1.743420e+02 -3.000000e+00 + vertex -7.198481e+01 -1.741737e+02 -3.000000e+00 + vertex -7.326604e+01 -1.746428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.198481e+01 -1.741737e+02 -3.000000e+00 + vertex -7.336602e+01 -1.745000e+02 -3.000000e+00 + vertex -7.326604e+01 -1.746428e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191275e-01 -5.736115e-01 -0.000000e+00 + outer loop + vertex -7.176604e+01 -1.746428e+02 0.000000e+00 + vertex -7.186603e+01 -1.745000e+02 0.000000e+00 + vertex -7.176604e+01 -1.746428e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191275e-01 -5.736115e-01 -0.000000e+00 + outer loop + vertex -7.186603e+01 -1.745000e+02 0.000000e+00 + vertex -7.186603e+01 -1.745000e+02 -3.000000e+00 + vertex -7.176604e+01 -1.746428e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191275e-01 -5.736115e-01 0.000000e+00 + outer loop + vertex 7.186603e+01 -1.745000e+02 -3.000000e+00 + vertex 7.176604e+01 -1.746428e+02 0.000000e+00 + vertex 7.176604e+01 -1.746428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.198481e+01 -1.741737e+02 -3.000000e+00 + vertex 7.193969e+01 -1.743420e+02 -3.000000e+00 + vertex 7.326604e+01 -1.746428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.336602e+01 -1.745000e+02 -3.000000e+00 + vertex 7.198481e+01 -1.741737e+02 -3.000000e+00 + vertex 7.326604e+01 -1.746428e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191476e-01 -5.735828e-01 0.000000e+00 + outer loop + vertex 7.336602e+01 -1.745000e+02 -6.000000e+00 + vertex 7.336602e+01 -1.745000e+02 -3.000000e+00 + vertex 7.326604e+01 -1.746428e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191476e-01 -5.735828e-01 -0.000000e+00 + outer loop + vertex 7.813398e+01 -1.745000e+02 0.000000e+00 + vertex 7.813398e+01 -1.745000e+02 -3.000000e+00 + vertex 7.823396e+01 -1.746428e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191476e-01 -5.735828e-01 -0.000000e+00 + outer loop + vertex 7.823396e+01 -1.746428e+02 0.000000e+00 + vertex 7.813398e+01 -1.745000e+02 0.000000e+00 + vertex 7.823396e+01 -1.746428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.552095e+01 1.700456e+02 0.000000e+00 + vertex -1.748660e+02 -1.745000e+02 0.000000e+00 + vertex -1.747660e+02 -1.746428e+02 0.000000e+00 + endloop + endfacet + facet normal 8.191476e-01 -5.735828e-01 0.000000e+00 + outer loop + vertex -7.813398e+01 -1.745000e+02 -3.000000e+00 + vertex -7.813398e+01 -1.745000e+02 0.000000e+00 + vertex -7.823396e+01 -1.746428e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 -1.730000e+02 0.000000e+00 + vertex -7.186603e+01 -1.745000e+02 0.000000e+00 + vertex -7.176604e+01 -1.746428e+02 0.000000e+00 + endloop + endfacet + facet normal 8.191275e-01 -5.736115e-01 0.000000e+00 + outer loop + vertex 7.186603e+01 -1.745000e+02 -3.000000e+00 + vertex 7.186603e+01 -1.745000e+02 0.000000e+00 + vertex 7.176604e+01 -1.746428e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 1.748660e+02 -1.745000e+02 0.000000e+00 + vertex 1.749397e+02 -1.743420e+02 0.000000e+00 + vertex 1.747660e+02 -1.746428e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 1.749848e+02 -1.741737e+02 0.000000e+00 + vertex 1.750000e+02 -1.740000e+02 0.000000e+00 + vertex 1.747660e+02 -1.746428e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 1.749397e+02 -1.743420e+02 0.000000e+00 + vertex 1.749848e+02 -1.741737e+02 0.000000e+00 + vertex 1.747660e+02 -1.746428e+02 0.000000e+00 + endloop + endfacet + facet normal 8.191677e-01 -5.735541e-01 0.000000e+00 + outer loop + vertex 1.748660e+02 -1.745000e+02 -6.000000e+00 + vertex 1.748660e+02 -1.745000e+02 0.000000e+00 + vertex 1.747660e+02 -1.746428e+02 0.000000e+00 + endloop + endfacet + facet normal -8.526545e-01 -5.224752e-01 -0.000000e+00 + outer loop + vertex 7.669098e+01 -1.745878e+02 -3.000000e+00 + vertex 7.660899e+01 -1.744540e+02 -3.000000e+00 + vertex 7.669098e+01 -1.745878e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.526545e-01 -5.224752e-01 -0.000000e+00 + outer loop + vertex 7.660899e+01 -1.744540e+02 -3.000000e+00 + vertex 7.660899e+01 -1.744540e+02 -6.000000e+00 + vertex 7.669098e+01 -1.745878e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.801519e+01 -1.741737e+02 -3.000000e+00 + vertex 7.660899e+01 -1.744540e+02 -3.000000e+00 + vertex 7.669098e+01 -1.745878e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 -4.226327e-01 -0.000000e+00 + outer loop + vertex -1.748660e+02 -1.745000e+02 0.000000e+00 + vertex -1.749397e+02 -1.743420e+02 0.000000e+00 + vertex -1.748660e+02 -1.745000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 -4.226327e-01 -0.000000e+00 + outer loop + vertex -1.749397e+02 -1.743420e+02 0.000000e+00 + vertex -1.749397e+02 -1.743420e+02 -6.000000e+00 + vertex -1.748660e+02 -1.745000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.650000e+01 -1.730000e+02 -6.000000e+00 + vertex -7.656031e+01 -1.743420e+02 -6.000000e+00 + vertex -7.663397e+01 -1.745000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063174e-01 -4.225976e-01 0.000000e+00 + outer loop + vertex -7.656031e+01 -1.743420e+02 -6.000000e+00 + vertex -7.663397e+01 -1.745000e+02 -3.000000e+00 + vertex -7.663397e+01 -1.745000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 -4.226327e-01 -0.000000e+00 + outer loop + vertex -7.336602e+01 -1.745000e+02 -3.000000e+00 + vertex -7.343969e+01 -1.743420e+02 -3.000000e+00 + vertex -7.336602e+01 -1.745000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 -4.226327e-01 -0.000000e+00 + outer loop + vertex -7.343969e+01 -1.743420e+02 -3.000000e+00 + vertex -7.343969e+01 -1.743420e+02 -6.000000e+00 + vertex -7.336602e+01 -1.745000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.350000e+01 -1.730000e+02 -6.000000e+00 + vertex 7.343969e+01 -1.743420e+02 -6.000000e+00 + vertex 7.336602e+01 -1.745000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 -4.226327e-01 0.000000e+00 + outer loop + vertex 7.343969e+01 -1.743420e+02 -6.000000e+00 + vertex 7.336602e+01 -1.745000e+02 -3.000000e+00 + vertex 7.336602e+01 -1.745000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 -4.226327e-01 0.000000e+00 + outer loop + vertex 1.749397e+02 -1.743420e+02 -6.000000e+00 + vertex 1.748660e+02 -1.745000e+02 0.000000e+00 + vertex 1.748660e+02 -1.745000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 -4.226327e-01 0.000000e+00 + outer loop + vertex -7.806031e+01 -1.743420e+02 -3.000000e+00 + vertex -7.813398e+01 -1.745000e+02 0.000000e+00 + vertex -7.813398e+01 -1.745000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.800000e+01 -1.740000e+02 -3.000000e+00 + vertex -7.801519e+01 -1.741737e+02 -3.000000e+00 + vertex -7.663397e+01 -1.745000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.656031e+01 -1.743420e+02 -3.000000e+00 + vertex -7.800000e+01 -1.740000e+02 -3.000000e+00 + vertex -7.663397e+01 -1.745000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063174e-01 -4.225976e-01 0.000000e+00 + outer loop + vertex -7.656031e+01 -1.743420e+02 -6.000000e+00 + vertex -7.656031e+01 -1.743420e+02 -3.000000e+00 + vertex -7.663397e+01 -1.745000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.198481e+01 -1.741737e+02 -3.000000e+00 + vertex -7.343969e+01 -1.743420e+02 -3.000000e+00 + vertex -7.336602e+01 -1.745000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063174e-01 -4.225976e-01 -0.000000e+00 + outer loop + vertex -7.186603e+01 -1.745000e+02 0.000000e+00 + vertex -7.193969e+01 -1.743420e+02 0.000000e+00 + vertex -7.186603e+01 -1.745000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063174e-01 -4.225976e-01 -0.000000e+00 + outer loop + vertex -7.193969e+01 -1.743420e+02 0.000000e+00 + vertex -7.193969e+01 -1.743420e+02 -3.000000e+00 + vertex -7.186603e+01 -1.745000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063174e-01 -4.225976e-01 0.000000e+00 + outer loop + vertex 7.193969e+01 -1.743420e+02 -3.000000e+00 + vertex 7.186603e+01 -1.745000e+02 0.000000e+00 + vertex 7.186603e+01 -1.745000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.343969e+01 -1.743420e+02 -3.000000e+00 + vertex 7.198481e+01 -1.741737e+02 -3.000000e+00 + vertex 7.336602e+01 -1.745000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 -4.226327e-01 0.000000e+00 + outer loop + vertex 7.343969e+01 -1.743420e+02 -6.000000e+00 + vertex 7.343969e+01 -1.743420e+02 -3.000000e+00 + vertex 7.336602e+01 -1.745000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 -4.226327e-01 -0.000000e+00 + outer loop + vertex 7.806031e+01 -1.743420e+02 0.000000e+00 + vertex 7.806031e+01 -1.743420e+02 -3.000000e+00 + vertex 7.813398e+01 -1.745000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 -4.226327e-01 -0.000000e+00 + outer loop + vertex 7.813398e+01 -1.745000e+02 0.000000e+00 + vertex 7.806031e+01 -1.743420e+02 0.000000e+00 + vertex 7.813398e+01 -1.745000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.552095e+01 1.700456e+02 0.000000e+00 + vertex -1.749397e+02 -1.743420e+02 0.000000e+00 + vertex -1.748660e+02 -1.745000e+02 0.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 -4.226327e-01 0.000000e+00 + outer loop + vertex -7.806031e+01 -1.743420e+02 -3.000000e+00 + vertex -7.806031e+01 -1.743420e+02 0.000000e+00 + vertex -7.813398e+01 -1.745000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 -1.730000e+02 0.000000e+00 + vertex -7.193969e+01 -1.743420e+02 0.000000e+00 + vertex -7.186603e+01 -1.745000e+02 0.000000e+00 + endloop + endfacet + facet normal 9.063174e-01 -4.225976e-01 0.000000e+00 + outer loop + vertex 7.193969e+01 -1.743420e+02 -3.000000e+00 + vertex 7.193969e+01 -1.743420e+02 0.000000e+00 + vertex 7.186603e+01 -1.745000e+02 0.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 -4.226327e-01 0.000000e+00 + outer loop + vertex 1.749397e+02 -1.743420e+02 -6.000000e+00 + vertex 1.749397e+02 -1.743420e+02 0.000000e+00 + vertex 1.748660e+02 -1.745000e+02 0.000000e+00 + endloop + endfacet + facet normal -9.238756e-01 -3.826929e-01 -0.000000e+00 + outer loop + vertex 7.660899e+01 -1.744540e+02 -3.000000e+00 + vertex 7.654894e+01 -1.743090e+02 -3.000000e+00 + vertex 7.660899e+01 -1.744540e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.238756e-01 -3.826929e-01 -0.000000e+00 + outer loop + vertex 7.654894e+01 -1.743090e+02 -3.000000e+00 + vertex 7.654894e+01 -1.743090e+02 -6.000000e+00 + vertex 7.660899e+01 -1.744540e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.801519e+01 -1.741737e+02 -3.000000e+00 + vertex 7.654894e+01 -1.743090e+02 -3.000000e+00 + vertex 7.660899e+01 -1.744540e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659164e-01 -2.588543e-01 -0.000000e+00 + outer loop + vertex -1.749397e+02 -1.743420e+02 0.000000e+00 + vertex -1.749848e+02 -1.741737e+02 0.000000e+00 + vertex -1.749397e+02 -1.743420e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659164e-01 -2.588543e-01 -0.000000e+00 + outer loop + vertex -1.749848e+02 -1.741737e+02 0.000000e+00 + vertex -1.749848e+02 -1.741737e+02 -6.000000e+00 + vertex -1.749397e+02 -1.743420e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.650000e+01 -1.730000e+02 -6.000000e+00 + vertex -7.651519e+01 -1.741737e+02 -6.000000e+00 + vertex -7.656031e+01 -1.743420e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659164e-01 -2.588543e-01 0.000000e+00 + outer loop + vertex -7.651519e+01 -1.741737e+02 -6.000000e+00 + vertex -7.656031e+01 -1.743420e+02 -3.000000e+00 + vertex -7.656031e+01 -1.743420e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 -2.588144e-01 -0.000000e+00 + outer loop + vertex -7.343969e+01 -1.743420e+02 -3.000000e+00 + vertex -7.348481e+01 -1.741737e+02 -3.000000e+00 + vertex -7.343969e+01 -1.743420e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 -2.588144e-01 -0.000000e+00 + outer loop + vertex -7.348481e+01 -1.741737e+02 -3.000000e+00 + vertex -7.348481e+01 -1.741737e+02 -6.000000e+00 + vertex -7.343969e+01 -1.743420e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.350000e+01 -1.730000e+02 -6.000000e+00 + vertex 7.348481e+01 -1.741737e+02 -6.000000e+00 + vertex 7.343969e+01 -1.743420e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 -2.588144e-01 0.000000e+00 + outer loop + vertex 7.348481e+01 -1.741737e+02 -6.000000e+00 + vertex 7.343969e+01 -1.743420e+02 -3.000000e+00 + vertex 7.343969e+01 -1.743420e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659164e-01 -2.588543e-01 0.000000e+00 + outer loop + vertex 1.749848e+02 -1.741737e+02 -6.000000e+00 + vertex 1.749397e+02 -1.743420e+02 0.000000e+00 + vertex 1.749397e+02 -1.743420e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 -2.588144e-01 0.000000e+00 + outer loop + vertex -7.801519e+01 -1.741737e+02 -3.000000e+00 + vertex -7.806031e+01 -1.743420e+02 0.000000e+00 + vertex -7.806031e+01 -1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.651519e+01 -1.741737e+02 -3.000000e+00 + vertex -7.800000e+01 -1.740000e+02 -3.000000e+00 + vertex -7.656031e+01 -1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659164e-01 -2.588543e-01 0.000000e+00 + outer loop + vertex -7.651519e+01 -1.741737e+02 -6.000000e+00 + vertex -7.651519e+01 -1.741737e+02 -3.000000e+00 + vertex -7.656031e+01 -1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.198481e+01 -1.741737e+02 -3.000000e+00 + vertex -7.200000e+01 -1.740000e+02 -3.000000e+00 + vertex -7.343969e+01 -1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 -1.740000e+02 -3.000000e+00 + vertex -7.348481e+01 -1.741737e+02 -3.000000e+00 + vertex -7.343969e+01 -1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 -2.588144e-01 -0.000000e+00 + outer loop + vertex -7.193969e+01 -1.743420e+02 0.000000e+00 + vertex -7.198481e+01 -1.741737e+02 0.000000e+00 + vertex -7.193969e+01 -1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 -2.588144e-01 -0.000000e+00 + outer loop + vertex -7.198481e+01 -1.741737e+02 0.000000e+00 + vertex -7.198481e+01 -1.741737e+02 -3.000000e+00 + vertex -7.193969e+01 -1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 -2.588144e-01 0.000000e+00 + outer loop + vertex 7.198481e+01 -1.741737e+02 -3.000000e+00 + vertex 7.193969e+01 -1.743420e+02 0.000000e+00 + vertex 7.193969e+01 -1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.200000e+01 -1.740000e+02 -3.000000e+00 + vertex 7.198481e+01 -1.741737e+02 -3.000000e+00 + vertex 7.343969e+01 -1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.348481e+01 -1.741737e+02 -3.000000e+00 + vertex 7.200000e+01 -1.740000e+02 -3.000000e+00 + vertex 7.343969e+01 -1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 -2.588144e-01 0.000000e+00 + outer loop + vertex 7.348481e+01 -1.741737e+02 -6.000000e+00 + vertex 7.348481e+01 -1.741737e+02 -3.000000e+00 + vertex 7.343969e+01 -1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 -2.588144e-01 -0.000000e+00 + outer loop + vertex 7.801519e+01 -1.741737e+02 0.000000e+00 + vertex 7.801519e+01 -1.741737e+02 -3.000000e+00 + vertex 7.806031e+01 -1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 -2.588144e-01 -0.000000e+00 + outer loop + vertex 7.806031e+01 -1.743420e+02 0.000000e+00 + vertex 7.801519e+01 -1.741737e+02 0.000000e+00 + vertex 7.806031e+01 -1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.552095e+01 1.700456e+02 0.000000e+00 + vertex -1.749848e+02 -1.741737e+02 0.000000e+00 + vertex -1.749397e+02 -1.743420e+02 0.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 -2.588144e-01 0.000000e+00 + outer loop + vertex -7.801519e+01 -1.741737e+02 -3.000000e+00 + vertex -7.801519e+01 -1.741737e+02 0.000000e+00 + vertex -7.806031e+01 -1.743420e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 -1.730000e+02 0.000000e+00 + vertex -7.198481e+01 -1.741737e+02 0.000000e+00 + vertex -7.193969e+01 -1.743420e+02 0.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 -2.588144e-01 0.000000e+00 + outer loop + vertex 7.198481e+01 -1.741737e+02 -3.000000e+00 + vertex 7.198481e+01 -1.741737e+02 0.000000e+00 + vertex 7.193969e+01 -1.743420e+02 0.000000e+00 + endloop + endfacet + facet normal 9.659164e-01 -2.588543e-01 0.000000e+00 + outer loop + vertex 1.749848e+02 -1.741737e+02 -6.000000e+00 + vertex 1.749848e+02 -1.741737e+02 0.000000e+00 + vertex 1.749397e+02 -1.743420e+02 0.000000e+00 + endloop + endfacet + facet normal -9.723787e-01 -2.334089e-01 -0.000000e+00 + outer loop + vertex 7.654894e+01 -1.743090e+02 -3.000000e+00 + vertex 7.651231e+01 -1.741564e+02 -3.000000e+00 + vertex 7.654894e+01 -1.743090e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.723787e-01 -2.334089e-01 -0.000000e+00 + outer loop + vertex 7.651231e+01 -1.741564e+02 -3.000000e+00 + vertex 7.651231e+01 -1.741564e+02 -6.000000e+00 + vertex 7.654894e+01 -1.743090e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.801519e+01 -1.741737e+02 -3.000000e+00 + vertex 7.800000e+01 -1.740000e+02 -3.000000e+00 + vertex 7.654894e+01 -1.743090e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.800000e+01 -1.740000e+02 -3.000000e+00 + vertex 7.651231e+01 -1.741564e+02 -3.000000e+00 + vertex 7.654894e+01 -1.743090e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961991e-01 -8.710545e-02 -0.000000e+00 + outer loop + vertex -1.749848e+02 -1.741737e+02 0.000000e+00 + vertex -1.750000e+02 -1.740000e+02 0.000000e+00 + vertex -1.749848e+02 -1.741737e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961991e-01 -8.710545e-02 -0.000000e+00 + outer loop + vertex -1.750000e+02 -1.740000e+02 0.000000e+00 + vertex -1.750000e+02 -1.740000e+02 -6.000000e+00 + vertex -1.749848e+02 -1.741737e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.650000e+01 -1.730000e+02 -6.000000e+00 + vertex -7.650000e+01 -1.740000e+02 -6.000000e+00 + vertex -7.651519e+01 -1.741737e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961954e-01 -8.714786e-02 0.000000e+00 + outer loop + vertex -7.650000e+01 -1.740000e+02 -6.000000e+00 + vertex -7.651519e+01 -1.741737e+02 -3.000000e+00 + vertex -7.651519e+01 -1.741737e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961954e-01 -8.714786e-02 -0.000000e+00 + outer loop + vertex -7.348481e+01 -1.741737e+02 -3.000000e+00 + vertex -7.350000e+01 -1.740000e+02 -3.000000e+00 + vertex -7.348481e+01 -1.741737e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961954e-01 -8.714786e-02 -0.000000e+00 + outer loop + vertex -7.350000e+01 -1.740000e+02 -3.000000e+00 + vertex -7.350000e+01 -1.740000e+02 -6.000000e+00 + vertex -7.348481e+01 -1.741737e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.350000e+01 -1.730000e+02 -6.000000e+00 + vertex 7.350000e+01 -1.740000e+02 -6.000000e+00 + vertex 7.348481e+01 -1.741737e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961954e-01 -8.714786e-02 0.000000e+00 + outer loop + vertex 7.350000e+01 -1.740000e+02 -6.000000e+00 + vertex 7.348481e+01 -1.741737e+02 -3.000000e+00 + vertex 7.348481e+01 -1.741737e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961991e-01 -8.710545e-02 0.000000e+00 + outer loop + vertex 1.750000e+02 -1.740000e+02 -6.000000e+00 + vertex 1.749848e+02 -1.741737e+02 0.000000e+00 + vertex 1.749848e+02 -1.741737e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961954e-01 -8.714786e-02 0.000000e+00 + outer loop + vertex -7.800000e+01 -1.740000e+02 -3.000000e+00 + vertex -7.801519e+01 -1.741737e+02 0.000000e+00 + vertex -7.801519e+01 -1.741737e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 -1.740000e+02 -3.000000e+00 + vertex -7.800000e+01 -1.740000e+02 -3.000000e+00 + vertex -7.651519e+01 -1.741737e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961954e-01 -8.714786e-02 0.000000e+00 + outer loop + vertex -7.650000e+01 -1.740000e+02 -6.000000e+00 + vertex -7.650000e+01 -1.740000e+02 -3.000000e+00 + vertex -7.651519e+01 -1.741737e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 -1.740000e+02 -3.000000e+00 + vertex -7.350000e+01 -1.740000e+02 -3.000000e+00 + vertex -7.348481e+01 -1.741737e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961954e-01 -8.714786e-02 -0.000000e+00 + outer loop + vertex -7.198481e+01 -1.741737e+02 0.000000e+00 + vertex -7.200000e+01 -1.740000e+02 0.000000e+00 + vertex -7.198481e+01 -1.741737e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961954e-01 -8.714786e-02 -0.000000e+00 + outer loop + vertex -7.200000e+01 -1.740000e+02 0.000000e+00 + vertex -7.200000e+01 -1.740000e+02 -3.000000e+00 + vertex -7.198481e+01 -1.741737e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961954e-01 -8.714786e-02 0.000000e+00 + outer loop + vertex 7.200000e+01 -1.740000e+02 -3.000000e+00 + vertex 7.198481e+01 -1.741737e+02 0.000000e+00 + vertex 7.198481e+01 -1.741737e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 -1.740000e+02 -3.000000e+00 + vertex 7.200000e+01 -1.740000e+02 -3.000000e+00 + vertex 7.348481e+01 -1.741737e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961954e-01 -8.714786e-02 0.000000e+00 + outer loop + vertex 7.350000e+01 -1.740000e+02 -6.000000e+00 + vertex 7.350000e+01 -1.740000e+02 -3.000000e+00 + vertex 7.348481e+01 -1.741737e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961954e-01 -8.714786e-02 -0.000000e+00 + outer loop + vertex 7.800000e+01 -1.740000e+02 0.000000e+00 + vertex 7.800000e+01 -1.740000e+02 -3.000000e+00 + vertex 7.801519e+01 -1.741737e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961954e-01 -8.714786e-02 -0.000000e+00 + outer loop + vertex 7.801519e+01 -1.741737e+02 0.000000e+00 + vertex 7.800000e+01 -1.740000e+02 0.000000e+00 + vertex 7.801519e+01 -1.741737e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.552095e+01 1.700456e+02 0.000000e+00 + vertex -1.750000e+02 -1.740000e+02 0.000000e+00 + vertex -1.749848e+02 -1.741737e+02 0.000000e+00 + endloop + endfacet + facet normal 9.961954e-01 -8.714786e-02 0.000000e+00 + outer loop + vertex -7.800000e+01 -1.740000e+02 -3.000000e+00 + vertex -7.800000e+01 -1.740000e+02 0.000000e+00 + vertex -7.801519e+01 -1.741737e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 -1.730000e+02 0.000000e+00 + vertex -7.200000e+01 -1.740000e+02 0.000000e+00 + vertex -7.198481e+01 -1.741737e+02 0.000000e+00 + endloop + endfacet + facet normal 9.961954e-01 -8.714786e-02 0.000000e+00 + outer loop + vertex 7.200000e+01 -1.740000e+02 -3.000000e+00 + vertex 7.200000e+01 -1.740000e+02 0.000000e+00 + vertex 7.198481e+01 -1.741737e+02 0.000000e+00 + endloop + endfacet + facet normal 9.961991e-01 -8.710545e-02 0.000000e+00 + outer loop + vertex 1.750000e+02 -1.740000e+02 -6.000000e+00 + vertex 1.750000e+02 -1.740000e+02 0.000000e+00 + vertex 1.749848e+02 -1.741737e+02 0.000000e+00 + endloop + endfacet + facet normal -9.969152e-01 -7.848642e-02 -0.000000e+00 + outer loop + vertex 7.651231e+01 -1.741564e+02 -3.000000e+00 + vertex 7.650000e+01 -1.740000e+02 -3.000000e+00 + vertex 7.651231e+01 -1.741564e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.969152e-01 -7.848642e-02 -0.000000e+00 + outer loop + vertex 7.650000e+01 -1.740000e+02 -3.000000e+00 + vertex 7.650000e+01 -1.740000e+02 -6.000000e+00 + vertex 7.651231e+01 -1.741564e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.800000e+01 -1.740000e+02 -3.000000e+00 + vertex 7.650000e+01 -1.740000e+02 -3.000000e+00 + vertex 7.651231e+01 -1.741564e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.750000e+02 1.740000e+02 -6.000000e+00 + vertex -7.575000e+01 -1.717010e+02 -6.000000e+00 + vertex -1.750000e+02 -1.740000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.575000e+01 -1.717010e+02 -6.000000e+00 + vertex -7.596418e+01 -1.718509e+02 -6.000000e+00 + vertex -1.750000e+02 -1.740000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex -1.750000e+02 1.740000e+02 0.000000e+00 + vertex -1.750000e+02 1.740000e+02 -6.000000e+00 + vertex -1.750000e+02 -1.740000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex -1.750000e+02 -1.740000e+02 0.000000e+00 + vertex -1.750000e+02 1.740000e+02 0.000000e+00 + vertex -1.750000e+02 -1.740000e+02 -6.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex -7.650000e+01 -1.730000e+02 -6.000000e+00 + vertex -7.650000e+01 -1.740000e+02 -3.000000e+00 + vertex -7.650000e+01 -1.740000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex -7.350000e+01 -1.740000e+02 -3.000000e+00 + vertex -7.350000e+01 -1.730000e+02 -3.000000e+00 + vertex -7.350000e+01 -1.740000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex -7.350000e+01 -1.730000e+02 -3.000000e+00 + vertex -7.350000e+01 -1.730000e+02 -6.000000e+00 + vertex -7.350000e+01 -1.740000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.350000e+01 -1.730000e+02 -6.000000e+00 + vertex 7.473953e+01 -1.715228e+02 -6.000000e+00 + vertex -7.350000e+01 -1.740000e+02 -6.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex 7.350000e+01 -1.730000e+02 -6.000000e+00 + vertex 7.350000e+01 -1.740000e+02 -3.000000e+00 + vertex 7.350000e+01 -1.740000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex 7.650000e+01 -1.740000e+02 -3.000000e+00 + vertex 7.650000e+01 -1.730000e+02 -3.000000e+00 + vertex 7.650000e+01 -1.740000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex 7.650000e+01 -1.730000e+02 -3.000000e+00 + vertex 7.650000e+01 -1.730000e+02 -6.000000e+00 + vertex 7.650000e+01 -1.740000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.647721e+01 -1.727395e+02 -6.000000e+00 + vertex 1.750000e+02 1.740000e+02 -6.000000e+00 + vertex 1.750000e+02 -1.740000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.650000e+01 -1.730000e+02 -6.000000e+00 + vertex 7.647721e+01 -1.727395e+02 -6.000000e+00 + vertex 1.750000e+02 -1.740000e+02 -6.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex 1.750000e+02 1.740000e+02 -6.000000e+00 + vertex 1.750000e+02 -1.740000e+02 0.000000e+00 + vertex 1.750000e+02 -1.740000e+02 -6.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex -7.800000e+01 -1.730000e+02 -3.000000e+00 + vertex -7.800000e+01 -1.740000e+02 0.000000e+00 + vertex -7.800000e+01 -1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 -1.740000e+02 -3.000000e+00 + vertex -7.800000e+01 -1.730000e+02 -3.000000e+00 + vertex -7.800000e+01 -1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex -7.650000e+01 -1.730000e+02 -6.000000e+00 + vertex -7.650000e+01 -1.730000e+02 -3.000000e+00 + vertex -7.650000e+01 -1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 -1.730000e+02 -3.000000e+00 + vertex -7.800000e+01 -1.730000e+02 -3.000000e+00 + vertex -7.650000e+01 -1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 -1.740000e+02 -3.000000e+00 + vertex -7.350000e+01 -1.730000e+02 -3.000000e+00 + vertex -7.350000e+01 -1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex -7.200000e+01 -1.740000e+02 0.000000e+00 + vertex -7.200000e+01 -1.730000e+02 0.000000e+00 + vertex -7.200000e+01 -1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex -7.200000e+01 -1.730000e+02 0.000000e+00 + vertex -7.200000e+01 -1.730000e+02 -3.000000e+00 + vertex -7.200000e+01 -1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 -1.730000e+02 -3.000000e+00 + vertex -7.350000e+01 -1.730000e+02 -3.000000e+00 + vertex -7.200000e+01 -1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex 7.200000e+01 -1.730000e+02 -3.000000e+00 + vertex 7.200000e+01 -1.740000e+02 0.000000e+00 + vertex 7.200000e+01 -1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 -1.740000e+02 -3.000000e+00 + vertex 7.200000e+01 -1.730000e+02 -3.000000e+00 + vertex 7.200000e+01 -1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex 7.350000e+01 -1.730000e+02 -6.000000e+00 + vertex 7.350000e+01 -1.730000e+02 -3.000000e+00 + vertex 7.350000e+01 -1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 -1.730000e+02 -3.000000e+00 + vertex 7.200000e+01 -1.730000e+02 -3.000000e+00 + vertex 7.350000e+01 -1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.800000e+01 -1.740000e+02 -3.000000e+00 + vertex 7.650000e+01 -1.730000e+02 -3.000000e+00 + vertex 7.650000e+01 -1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex 7.800000e+01 -1.740000e+02 0.000000e+00 + vertex 7.800000e+01 -1.730000e+02 0.000000e+00 + vertex 7.800000e+01 -1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex 7.800000e+01 -1.730000e+02 0.000000e+00 + vertex 7.800000e+01 -1.730000e+02 -3.000000e+00 + vertex 7.800000e+01 -1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.800000e+01 -1.730000e+02 -3.000000e+00 + vertex 7.650000e+01 -1.730000e+02 -3.000000e+00 + vertex 7.800000e+01 -1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.602606e+01 1.701809e+02 0.000000e+00 + vertex -7.650000e+01 1.704019e+02 0.000000e+00 + vertex -1.750000e+02 -1.740000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 1.704019e+02 0.000000e+00 + vertex -1.750000e+02 1.740000e+02 0.000000e+00 + vertex -1.750000e+02 -1.740000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.552095e+01 1.700456e+02 0.000000e+00 + vertex -7.602606e+01 1.701809e+02 0.000000e+00 + vertex -1.750000e+02 -1.740000e+02 0.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex -7.800000e+01 -1.730000e+02 -3.000000e+00 + vertex -7.800000e+01 -1.730000e+02 0.000000e+00 + vertex -7.800000e+01 -1.740000e+02 0.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex 7.200000e+01 -1.730000e+02 -3.000000e+00 + vertex 7.200000e+01 -1.730000e+02 0.000000e+00 + vertex 7.200000e+01 -1.740000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.750000e+02 -1.740000e+02 0.000000e+00 + vertex 7.800000e+01 -1.730000e+02 0.000000e+00 + vertex 7.800000e+01 -1.740000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.729813e+01 -1.710716e+02 0.000000e+00 + vertex 7.759807e+01 -1.715000e+02 0.000000e+00 + vertex 1.750000e+02 -1.740000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.759807e+01 -1.715000e+02 0.000000e+00 + vertex 7.781908e+01 -1.719739e+02 0.000000e+00 + vertex 1.750000e+02 -1.740000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.781908e+01 -1.719739e+02 0.000000e+00 + vertex 7.795443e+01 -1.724790e+02 0.000000e+00 + vertex 1.750000e+02 -1.740000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.750000e+02 1.740000e+02 0.000000e+00 + vertex 7.650000e+01 -1.704019e+02 0.000000e+00 + vertex 1.750000e+02 -1.740000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.650000e+01 -1.704019e+02 0.000000e+00 + vertex 7.692836e+01 -1.707019e+02 0.000000e+00 + vertex 1.750000e+02 -1.740000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.692836e+01 -1.707019e+02 0.000000e+00 + vertex 7.729813e+01 -1.710716e+02 0.000000e+00 + vertex 1.750000e+02 -1.740000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.795443e+01 -1.724790e+02 0.000000e+00 + vertex 7.800000e+01 -1.730000e+02 0.000000e+00 + vertex 1.750000e+02 -1.740000e+02 0.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex 1.750000e+02 1.740000e+02 -6.000000e+00 + vertex 1.750000e+02 1.740000e+02 0.000000e+00 + vertex 1.750000e+02 -1.740000e+02 0.000000e+00 + endloop + endfacet + facet normal 9.961962e-01 -8.713867e-02 0.000000e+00 + outer loop + vertex -7.647721e+01 -1.727395e+02 -6.000000e+00 + vertex -7.647721e+01 -1.727395e+02 -3.000000e+00 + vertex -7.650000e+01 -1.730000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961962e-01 -8.713867e-02 0.000000e+00 + outer loop + vertex -7.647721e+01 -1.727395e+02 -3.000000e+00 + vertex -7.650000e+01 -1.730000e+02 -3.000000e+00 + vertex -7.650000e+01 -1.730000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961937e-01 -8.716695e-02 -0.000000e+00 + outer loop + vertex -7.350000e+01 -1.730000e+02 -3.000000e+00 + vertex -7.352279e+01 -1.727395e+02 -6.000000e+00 + vertex -7.350000e+01 -1.730000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.500000e+01 -1.715000e+02 -6.000000e+00 + vertex 7.473953e+01 -1.715228e+02 -6.000000e+00 + vertex -7.350000e+01 -1.730000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.352279e+01 -1.727395e+02 -6.000000e+00 + vertex 7.500000e+01 -1.715000e+02 -6.000000e+00 + vertex -7.350000e+01 -1.730000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961937e-01 -8.716695e-02 0.000000e+00 + outer loop + vertex 7.352279e+01 -1.727395e+02 -6.000000e+00 + vertex 7.352279e+01 -1.727395e+02 -3.000000e+00 + vertex 7.350000e+01 -1.730000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961937e-01 -8.716695e-02 0.000000e+00 + outer loop + vertex 7.352279e+01 -1.727395e+02 -3.000000e+00 + vertex 7.350000e+01 -1.730000e+02 -3.000000e+00 + vertex 7.350000e+01 -1.730000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961962e-01 -8.713867e-02 -0.000000e+00 + outer loop + vertex 7.650000e+01 -1.730000e+02 -3.000000e+00 + vertex 7.647721e+01 -1.727395e+02 -6.000000e+00 + vertex 7.650000e+01 -1.730000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961950e-01 -8.715281e-02 0.000000e+00 + outer loop + vertex -7.795443e+01 -1.724790e+02 -3.000000e+00 + vertex -7.795443e+01 -1.724790e+02 0.000000e+00 + vertex -7.800000e+01 -1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961950e-01 -8.715281e-02 0.000000e+00 + outer loop + vertex -7.795443e+01 -1.724790e+02 0.000000e+00 + vertex -7.800000e+01 -1.730000e+02 0.000000e+00 + vertex -7.800000e+01 -1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 -1.730000e+02 -3.000000e+00 + vertex -7.795443e+01 -1.724790e+02 -3.000000e+00 + vertex -7.800000e+01 -1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.647721e+01 -1.727395e+02 -3.000000e+00 + vertex -7.795443e+01 -1.724790e+02 -3.000000e+00 + vertex -7.650000e+01 -1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961937e-01 -8.716695e-02 -0.000000e+00 + outer loop + vertex -7.352279e+01 -1.727395e+02 -3.000000e+00 + vertex -7.352279e+01 -1.727395e+02 -6.000000e+00 + vertex -7.350000e+01 -1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 -1.730000e+02 -3.000000e+00 + vertex -7.352279e+01 -1.727395e+02 -3.000000e+00 + vertex -7.350000e+01 -1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961937e-01 -8.716695e-02 -0.000000e+00 + outer loop + vertex -7.200000e+01 -1.730000e+02 0.000000e+00 + vertex -7.204558e+01 -1.724790e+02 -3.000000e+00 + vertex -7.200000e+01 -1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.204558e+01 -1.724790e+02 -3.000000e+00 + vertex -7.352279e+01 -1.727395e+02 -3.000000e+00 + vertex -7.200000e+01 -1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 -1.730000e+02 -3.000000e+00 + vertex 7.204558e+01 -1.724790e+02 -3.000000e+00 + vertex 7.200000e+01 -1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961937e-01 -8.716695e-02 0.000000e+00 + outer loop + vertex 7.204558e+01 -1.724790e+02 -3.000000e+00 + vertex 7.204558e+01 -1.724790e+02 0.000000e+00 + vertex 7.200000e+01 -1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961937e-01 -8.716695e-02 0.000000e+00 + outer loop + vertex 7.204558e+01 -1.724790e+02 0.000000e+00 + vertex 7.200000e+01 -1.730000e+02 0.000000e+00 + vertex 7.200000e+01 -1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.352279e+01 -1.727395e+02 -3.000000e+00 + vertex 7.204558e+01 -1.724790e+02 -3.000000e+00 + vertex 7.350000e+01 -1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961962e-01 -8.713867e-02 -0.000000e+00 + outer loop + vertex 7.647721e+01 -1.727395e+02 -3.000000e+00 + vertex 7.647721e+01 -1.727395e+02 -6.000000e+00 + vertex 7.650000e+01 -1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.800000e+01 -1.730000e+02 -3.000000e+00 + vertex 7.647721e+01 -1.727395e+02 -3.000000e+00 + vertex 7.650000e+01 -1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.795443e+01 -1.724790e+02 -3.000000e+00 + vertex 7.647721e+01 -1.727395e+02 -3.000000e+00 + vertex 7.800000e+01 -1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961950e-01 -8.715281e-02 -0.000000e+00 + outer loop + vertex 7.800000e+01 -1.730000e+02 0.000000e+00 + vertex 7.795443e+01 -1.724790e+02 -3.000000e+00 + vertex 7.800000e+01 -1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.200000e+01 -1.730000e+02 0.000000e+00 + vertex -7.204558e+01 -1.724790e+02 0.000000e+00 + vertex -7.200000e+01 -1.730000e+02 0.000000e+00 + endloop + endfacet + facet normal -9.961937e-01 -8.716695e-02 -0.000000e+00 + outer loop + vertex -7.204558e+01 -1.724790e+02 0.000000e+00 + vertex -7.204558e+01 -1.724790e+02 -3.000000e+00 + vertex -7.200000e+01 -1.730000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.204558e+01 -1.724790e+02 0.000000e+00 + vertex -7.204558e+01 -1.724790e+02 0.000000e+00 + vertex 7.200000e+01 -1.730000e+02 0.000000e+00 + endloop + endfacet + facet normal -9.961950e-01 -8.715281e-02 -0.000000e+00 + outer loop + vertex 7.795443e+01 -1.724790e+02 0.000000e+00 + vertex 7.795443e+01 -1.724790e+02 -3.000000e+00 + vertex 7.800000e+01 -1.730000e+02 0.000000e+00 + endloop + endfacet + facet normal 9.659216e-01 -2.588348e-01 0.000000e+00 + outer loop + vertex -7.640954e+01 -1.724870e+02 -6.000000e+00 + vertex -7.640954e+01 -1.724870e+02 -3.000000e+00 + vertex -7.647721e+01 -1.727395e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659216e-01 -2.588348e-01 0.000000e+00 + outer loop + vertex -7.640954e+01 -1.724870e+02 -3.000000e+00 + vertex -7.647721e+01 -1.727395e+02 -3.000000e+00 + vertex -7.647721e+01 -1.727395e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659287e-01 -2.588083e-01 -0.000000e+00 + outer loop + vertex -7.352279e+01 -1.727395e+02 -3.000000e+00 + vertex -7.359046e+01 -1.724870e+02 -6.000000e+00 + vertex -7.352279e+01 -1.727395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 1.740000e+02 1.750000e+02 -6.000000e+00 + vertex 7.500000e+01 -1.715000e+02 -6.000000e+00 + vertex -7.352279e+01 -1.727395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.359046e+01 -1.724870e+02 -6.000000e+00 + vertex 1.740000e+02 1.750000e+02 -6.000000e+00 + vertex -7.352279e+01 -1.727395e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659287e-01 -2.588083e-01 0.000000e+00 + outer loop + vertex 7.359046e+01 -1.724870e+02 -6.000000e+00 + vertex 7.359046e+01 -1.724870e+02 -3.000000e+00 + vertex 7.352279e+01 -1.727395e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659287e-01 -2.588083e-01 0.000000e+00 + outer loop + vertex 7.359046e+01 -1.724870e+02 -3.000000e+00 + vertex 7.352279e+01 -1.727395e+02 -3.000000e+00 + vertex 7.352279e+01 -1.727395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.640954e+01 -1.724870e+02 -6.000000e+00 + vertex 1.750000e+02 1.740000e+02 -6.000000e+00 + vertex 7.647721e+01 -1.727395e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659216e-01 -2.588348e-01 -0.000000e+00 + outer loop + vertex 7.647721e+01 -1.727395e+02 -3.000000e+00 + vertex 7.640954e+01 -1.724870e+02 -6.000000e+00 + vertex 7.647721e+01 -1.727395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.781908e+01 -1.719739e+02 -3.000000e+00 + vertex -7.795443e+01 -1.724790e+02 -3.000000e+00 + vertex -7.647721e+01 -1.727395e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.640954e+01 -1.724870e+02 -3.000000e+00 + vertex -7.781908e+01 -1.719739e+02 -3.000000e+00 + vertex -7.647721e+01 -1.727395e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659287e-01 -2.588083e-01 -0.000000e+00 + outer loop + vertex -7.359046e+01 -1.724870e+02 -3.000000e+00 + vertex -7.359046e+01 -1.724870e+02 -6.000000e+00 + vertex -7.352279e+01 -1.727395e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.204558e+01 -1.724790e+02 -3.000000e+00 + vertex -7.359046e+01 -1.724870e+02 -3.000000e+00 + vertex -7.352279e+01 -1.727395e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.218092e+01 -1.719739e+02 -3.000000e+00 + vertex 7.204558e+01 -1.724790e+02 -3.000000e+00 + vertex 7.352279e+01 -1.727395e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.359046e+01 -1.724870e+02 -3.000000e+00 + vertex 7.218092e+01 -1.719739e+02 -3.000000e+00 + vertex 7.352279e+01 -1.727395e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659216e-01 -2.588348e-01 -0.000000e+00 + outer loop + vertex 7.640954e+01 -1.724870e+02 -3.000000e+00 + vertex 7.640954e+01 -1.724870e+02 -6.000000e+00 + vertex 7.647721e+01 -1.727395e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.795443e+01 -1.724790e+02 -3.000000e+00 + vertex 7.640954e+01 -1.724870e+02 -3.000000e+00 + vertex 7.647721e+01 -1.727395e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063119e-01 -4.226093e-01 0.000000e+00 + outer loop + vertex -7.629904e+01 -1.722500e+02 -6.000000e+00 + vertex -7.629904e+01 -1.722500e+02 -3.000000e+00 + vertex -7.640954e+01 -1.724870e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063119e-01 -4.226093e-01 0.000000e+00 + outer loop + vertex -7.629904e+01 -1.722500e+02 -3.000000e+00 + vertex -7.640954e+01 -1.724870e+02 -3.000000e+00 + vertex -7.640954e+01 -1.724870e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 -4.226327e-01 -0.000000e+00 + outer loop + vertex -7.359046e+01 -1.724870e+02 -3.000000e+00 + vertex -7.370096e+01 -1.722500e+02 -6.000000e+00 + vertex -7.359046e+01 -1.724870e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.370096e+01 -1.722500e+02 -6.000000e+00 + vertex 1.740000e+02 1.750000e+02 -6.000000e+00 + vertex -7.359046e+01 -1.724870e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 -4.226327e-01 0.000000e+00 + outer loop + vertex 7.370096e+01 -1.722500e+02 -6.000000e+00 + vertex 7.370096e+01 -1.722500e+02 -3.000000e+00 + vertex 7.359046e+01 -1.724870e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 -4.226327e-01 0.000000e+00 + outer loop + vertex 7.370096e+01 -1.722500e+02 -3.000000e+00 + vertex 7.359046e+01 -1.724870e+02 -3.000000e+00 + vertex 7.359046e+01 -1.724870e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.629904e+01 -1.722500e+02 -6.000000e+00 + vertex 1.750000e+02 1.740000e+02 -6.000000e+00 + vertex 7.640954e+01 -1.724870e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063119e-01 -4.226093e-01 -0.000000e+00 + outer loop + vertex 7.640954e+01 -1.724870e+02 -3.000000e+00 + vertex 7.629904e+01 -1.722500e+02 -6.000000e+00 + vertex 7.640954e+01 -1.724870e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.759807e+01 -1.715000e+02 -3.000000e+00 + vertex -7.781908e+01 -1.719739e+02 -3.000000e+00 + vertex -7.640954e+01 -1.724870e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.629904e+01 -1.722500e+02 -3.000000e+00 + vertex -7.759807e+01 -1.715000e+02 -3.000000e+00 + vertex -7.640954e+01 -1.724870e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 -4.226327e-01 -0.000000e+00 + outer loop + vertex -7.370096e+01 -1.722500e+02 -3.000000e+00 + vertex -7.370096e+01 -1.722500e+02 -6.000000e+00 + vertex -7.359046e+01 -1.724870e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.218092e+01 -1.719739e+02 -3.000000e+00 + vertex -7.370096e+01 -1.722500e+02 -3.000000e+00 + vertex -7.359046e+01 -1.724870e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.204558e+01 -1.724790e+02 -3.000000e+00 + vertex -7.218092e+01 -1.719739e+02 -3.000000e+00 + vertex -7.359046e+01 -1.724870e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.240193e+01 -1.715000e+02 -3.000000e+00 + vertex 7.218092e+01 -1.719739e+02 -3.000000e+00 + vertex 7.359046e+01 -1.724870e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.370096e+01 -1.722500e+02 -3.000000e+00 + vertex 7.240193e+01 -1.715000e+02 -3.000000e+00 + vertex 7.359046e+01 -1.724870e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063119e-01 -4.226093e-01 -0.000000e+00 + outer loop + vertex 7.629904e+01 -1.722500e+02 -3.000000e+00 + vertex 7.629904e+01 -1.722500e+02 -6.000000e+00 + vertex 7.640954e+01 -1.724870e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.781908e+01 -1.719739e+02 -3.000000e+00 + vertex 7.629904e+01 -1.722500e+02 -3.000000e+00 + vertex 7.640954e+01 -1.724870e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.795443e+01 -1.724790e+02 -3.000000e+00 + vertex 7.781908e+01 -1.719739e+02 -3.000000e+00 + vertex 7.640954e+01 -1.724870e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659235e-01 -2.588277e-01 0.000000e+00 + outer loop + vertex -7.781908e+01 -1.719739e+02 -3.000000e+00 + vertex -7.781908e+01 -1.719739e+02 0.000000e+00 + vertex -7.795443e+01 -1.724790e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659235e-01 -2.588277e-01 0.000000e+00 + outer loop + vertex -7.781908e+01 -1.719739e+02 0.000000e+00 + vertex -7.795443e+01 -1.724790e+02 0.000000e+00 + vertex -7.795443e+01 -1.724790e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 -2.588144e-01 -0.000000e+00 + outer loop + vertex -7.204558e+01 -1.724790e+02 0.000000e+00 + vertex -7.218092e+01 -1.719739e+02 -3.000000e+00 + vertex -7.204558e+01 -1.724790e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 -2.588144e-01 0.000000e+00 + outer loop + vertex 7.218092e+01 -1.719739e+02 -3.000000e+00 + vertex 7.218092e+01 -1.719739e+02 0.000000e+00 + vertex 7.204558e+01 -1.724790e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 -2.588144e-01 0.000000e+00 + outer loop + vertex 7.218092e+01 -1.719739e+02 0.000000e+00 + vertex 7.204558e+01 -1.724790e+02 0.000000e+00 + vertex 7.204558e+01 -1.724790e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659235e-01 -2.588277e-01 -0.000000e+00 + outer loop + vertex 7.795443e+01 -1.724790e+02 0.000000e+00 + vertex 7.781908e+01 -1.719739e+02 -3.000000e+00 + vertex 7.795443e+01 -1.724790e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.240193e+01 -1.715000e+02 0.000000e+00 + vertex 7.270186e+01 -1.710716e+02 0.000000e+00 + vertex -7.204558e+01 -1.724790e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.218092e+01 -1.719739e+02 0.000000e+00 + vertex 7.240193e+01 -1.715000e+02 0.000000e+00 + vertex -7.204558e+01 -1.724790e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 -1.704019e+02 0.000000e+00 + vertex -7.218092e+01 -1.719739e+02 0.000000e+00 + vertex -7.204558e+01 -1.724790e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.307164e+01 -1.707019e+02 0.000000e+00 + vertex 7.350000e+01 -1.704019e+02 0.000000e+00 + vertex -7.204558e+01 -1.724790e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.270186e+01 -1.710716e+02 0.000000e+00 + vertex 7.307164e+01 -1.707019e+02 0.000000e+00 + vertex -7.204558e+01 -1.724790e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.204558e+01 -1.724790e+02 0.000000e+00 + vertex 7.218092e+01 -1.719739e+02 0.000000e+00 + vertex -7.204558e+01 -1.724790e+02 0.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 -2.588144e-01 -0.000000e+00 + outer loop + vertex -7.218092e+01 -1.719739e+02 0.000000e+00 + vertex -7.218092e+01 -1.719739e+02 -3.000000e+00 + vertex -7.204558e+01 -1.724790e+02 0.000000e+00 + endloop + endfacet + facet normal -9.659235e-01 -2.588277e-01 -0.000000e+00 + outer loop + vertex 7.781908e+01 -1.719739e+02 0.000000e+00 + vertex 7.781908e+01 -1.719739e+02 -3.000000e+00 + vertex 7.795443e+01 -1.724790e+02 0.000000e+00 + endloop + endfacet + facet normal 8.191596e-01 -5.735656e-01 0.000000e+00 + outer loop + vertex -7.614907e+01 -1.720358e+02 -6.000000e+00 + vertex -7.614907e+01 -1.720358e+02 -3.000000e+00 + vertex -7.629904e+01 -1.722500e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191596e-01 -5.735656e-01 0.000000e+00 + outer loop + vertex -7.614907e+01 -1.720358e+02 -3.000000e+00 + vertex -7.629904e+01 -1.722500e+02 -3.000000e+00 + vertex -7.629904e+01 -1.722500e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191730e-01 -5.735465e-01 -0.000000e+00 + outer loop + vertex -7.370096e+01 -1.722500e+02 -3.000000e+00 + vertex -7.385093e+01 -1.720358e+02 -6.000000e+00 + vertex -7.370096e+01 -1.722500e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.385093e+01 -1.720358e+02 -6.000000e+00 + vertex 1.740000e+02 1.750000e+02 -6.000000e+00 + vertex -7.370096e+01 -1.722500e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191730e-01 -5.735465e-01 0.000000e+00 + outer loop + vertex 7.385093e+01 -1.720358e+02 -6.000000e+00 + vertex 7.385093e+01 -1.720358e+02 -3.000000e+00 + vertex 7.370096e+01 -1.722500e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191730e-01 -5.735465e-01 0.000000e+00 + outer loop + vertex 7.385093e+01 -1.720358e+02 -3.000000e+00 + vertex 7.370096e+01 -1.722500e+02 -3.000000e+00 + vertex 7.370096e+01 -1.722500e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.614907e+01 -1.720358e+02 -6.000000e+00 + vertex 1.750000e+02 1.740000e+02 -6.000000e+00 + vertex 7.629904e+01 -1.722500e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191596e-01 -5.735656e-01 -0.000000e+00 + outer loop + vertex 7.629904e+01 -1.722500e+02 -3.000000e+00 + vertex 7.614907e+01 -1.720358e+02 -6.000000e+00 + vertex 7.629904e+01 -1.722500e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.729813e+01 -1.710716e+02 -3.000000e+00 + vertex -7.759807e+01 -1.715000e+02 -3.000000e+00 + vertex -7.629904e+01 -1.722500e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.614907e+01 -1.720358e+02 -3.000000e+00 + vertex -7.729813e+01 -1.710716e+02 -3.000000e+00 + vertex -7.629904e+01 -1.722500e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191730e-01 -5.735465e-01 -0.000000e+00 + outer loop + vertex -7.385093e+01 -1.720358e+02 -3.000000e+00 + vertex -7.385093e+01 -1.720358e+02 -6.000000e+00 + vertex -7.370096e+01 -1.722500e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.240193e+01 -1.715000e+02 -3.000000e+00 + vertex -7.385093e+01 -1.720358e+02 -3.000000e+00 + vertex -7.370096e+01 -1.722500e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.218092e+01 -1.719739e+02 -3.000000e+00 + vertex -7.240193e+01 -1.715000e+02 -3.000000e+00 + vertex -7.370096e+01 -1.722500e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.270186e+01 -1.710716e+02 -3.000000e+00 + vertex 7.240193e+01 -1.715000e+02 -3.000000e+00 + vertex 7.370096e+01 -1.722500e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.385093e+01 -1.720358e+02 -3.000000e+00 + vertex 7.270186e+01 -1.710716e+02 -3.000000e+00 + vertex 7.370096e+01 -1.722500e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191596e-01 -5.735656e-01 -0.000000e+00 + outer loop + vertex 7.614907e+01 -1.720358e+02 -3.000000e+00 + vertex 7.614907e+01 -1.720358e+02 -6.000000e+00 + vertex 7.629904e+01 -1.722500e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.759807e+01 -1.715000e+02 -3.000000e+00 + vertex 7.614907e+01 -1.720358e+02 -3.000000e+00 + vertex 7.629904e+01 -1.722500e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.781908e+01 -1.719739e+02 -3.000000e+00 + vertex 7.759807e+01 -1.715000e+02 -3.000000e+00 + vertex 7.629904e+01 -1.722500e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.070925e-01 -7.071210e-01 0.000000e+00 + outer loop + vertex -7.596418e+01 -1.718509e+02 -6.000000e+00 + vertex -7.596418e+01 -1.718509e+02 -3.000000e+00 + vertex -7.614907e+01 -1.720358e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.070925e-01 -7.071210e-01 0.000000e+00 + outer loop + vertex -7.596418e+01 -1.718509e+02 -3.000000e+00 + vertex -7.614907e+01 -1.720358e+02 -3.000000e+00 + vertex -7.614907e+01 -1.720358e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.070925e-01 -7.071210e-01 -0.000000e+00 + outer loop + vertex -7.385093e+01 -1.720358e+02 -3.000000e+00 + vertex -7.403582e+01 -1.718509e+02 -6.000000e+00 + vertex -7.385093e+01 -1.720358e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.403582e+01 -1.718509e+02 -6.000000e+00 + vertex 1.740000e+02 1.750000e+02 -6.000000e+00 + vertex -7.385093e+01 -1.720358e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.070925e-01 -7.071210e-01 0.000000e+00 + outer loop + vertex 7.403582e+01 -1.718509e+02 -6.000000e+00 + vertex 7.403582e+01 -1.718509e+02 -3.000000e+00 + vertex 7.385093e+01 -1.720358e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.070925e-01 -7.071210e-01 0.000000e+00 + outer loop + vertex 7.403582e+01 -1.718509e+02 -3.000000e+00 + vertex 7.385093e+01 -1.720358e+02 -3.000000e+00 + vertex 7.385093e+01 -1.720358e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.596418e+01 -1.718509e+02 -6.000000e+00 + vertex 1.750000e+02 1.740000e+02 -6.000000e+00 + vertex 7.614907e+01 -1.720358e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.070925e-01 -7.071210e-01 -0.000000e+00 + outer loop + vertex 7.614907e+01 -1.720358e+02 -3.000000e+00 + vertex 7.596418e+01 -1.718509e+02 -6.000000e+00 + vertex 7.614907e+01 -1.720358e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.692836e+01 -1.707019e+02 -3.000000e+00 + vertex -7.729813e+01 -1.710716e+02 -3.000000e+00 + vertex -7.614907e+01 -1.720358e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.596418e+01 -1.718509e+02 -3.000000e+00 + vertex -7.692836e+01 -1.707019e+02 -3.000000e+00 + vertex -7.614907e+01 -1.720358e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.070925e-01 -7.071210e-01 -0.000000e+00 + outer loop + vertex -7.403582e+01 -1.718509e+02 -3.000000e+00 + vertex -7.403582e+01 -1.718509e+02 -6.000000e+00 + vertex -7.385093e+01 -1.720358e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.270186e+01 -1.710716e+02 -3.000000e+00 + vertex -7.403582e+01 -1.718509e+02 -3.000000e+00 + vertex -7.385093e+01 -1.720358e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.240193e+01 -1.715000e+02 -3.000000e+00 + vertex -7.270186e+01 -1.710716e+02 -3.000000e+00 + vertex -7.385093e+01 -1.720358e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.307164e+01 -1.707019e+02 -3.000000e+00 + vertex 7.270186e+01 -1.710716e+02 -3.000000e+00 + vertex 7.385093e+01 -1.720358e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.403582e+01 -1.718509e+02 -3.000000e+00 + vertex 7.307164e+01 -1.707019e+02 -3.000000e+00 + vertex 7.385093e+01 -1.720358e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.070925e-01 -7.071210e-01 -0.000000e+00 + outer loop + vertex 7.596418e+01 -1.718509e+02 -3.000000e+00 + vertex 7.596418e+01 -1.718509e+02 -6.000000e+00 + vertex 7.614907e+01 -1.720358e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.729813e+01 -1.710716e+02 -3.000000e+00 + vertex 7.596418e+01 -1.718509e+02 -3.000000e+00 + vertex 7.614907e+01 -1.720358e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.759807e+01 -1.715000e+02 -3.000000e+00 + vertex 7.729813e+01 -1.710716e+02 -3.000000e+00 + vertex 7.614907e+01 -1.720358e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063065e-01 -4.226210e-01 0.000000e+00 + outer loop + vertex -7.759807e+01 -1.715000e+02 -3.000000e+00 + vertex -7.759807e+01 -1.715000e+02 0.000000e+00 + vertex -7.781908e+01 -1.719739e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063065e-01 -4.226210e-01 0.000000e+00 + outer loop + vertex -7.759807e+01 -1.715000e+02 0.000000e+00 + vertex -7.781908e+01 -1.719739e+02 0.000000e+00 + vertex -7.781908e+01 -1.719739e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063065e-01 -4.226210e-01 -0.000000e+00 + outer loop + vertex -7.218092e+01 -1.719739e+02 0.000000e+00 + vertex -7.240193e+01 -1.715000e+02 -3.000000e+00 + vertex -7.218092e+01 -1.719739e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063065e-01 -4.226210e-01 0.000000e+00 + outer loop + vertex 7.240193e+01 -1.715000e+02 -3.000000e+00 + vertex 7.240193e+01 -1.715000e+02 0.000000e+00 + vertex 7.218092e+01 -1.719739e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063065e-01 -4.226210e-01 0.000000e+00 + outer loop + vertex 7.240193e+01 -1.715000e+02 0.000000e+00 + vertex 7.218092e+01 -1.719739e+02 0.000000e+00 + vertex 7.218092e+01 -1.719739e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063065e-01 -4.226210e-01 -0.000000e+00 + outer loop + vertex 7.781908e+01 -1.719739e+02 0.000000e+00 + vertex 7.759807e+01 -1.715000e+02 -3.000000e+00 + vertex 7.781908e+01 -1.719739e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 -1.704019e+02 0.000000e+00 + vertex -7.240193e+01 -1.715000e+02 0.000000e+00 + vertex -7.218092e+01 -1.719739e+02 0.000000e+00 + endloop + endfacet + facet normal -9.063065e-01 -4.226210e-01 -0.000000e+00 + outer loop + vertex -7.240193e+01 -1.715000e+02 0.000000e+00 + vertex -7.240193e+01 -1.715000e+02 -3.000000e+00 + vertex -7.218092e+01 -1.719739e+02 0.000000e+00 + endloop + endfacet + facet normal -9.063065e-01 -4.226210e-01 -0.000000e+00 + outer loop + vertex 7.759807e+01 -1.715000e+02 0.000000e+00 + vertex 7.759807e+01 -1.715000e+02 -3.000000e+00 + vertex 7.781908e+01 -1.719739e+02 0.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 -8.191636e-01 0.000000e+00 + outer loop + vertex -7.575000e+01 -1.717010e+02 -6.000000e+00 + vertex -7.575000e+01 -1.717010e+02 -3.000000e+00 + vertex -7.596418e+01 -1.718509e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 -8.191636e-01 0.000000e+00 + outer loop + vertex -7.575000e+01 -1.717010e+02 -3.000000e+00 + vertex -7.596418e+01 -1.718509e+02 -3.000000e+00 + vertex -7.596418e+01 -1.718509e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 -8.191636e-01 -0.000000e+00 + outer loop + vertex -7.403582e+01 -1.718509e+02 -3.000000e+00 + vertex -7.425000e+01 -1.717010e+02 -6.000000e+00 + vertex -7.403582e+01 -1.718509e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.425000e+01 -1.717010e+02 -6.000000e+00 + vertex 1.740000e+02 1.750000e+02 -6.000000e+00 + vertex -7.403582e+01 -1.718509e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 -8.191636e-01 0.000000e+00 + outer loop + vertex 7.425000e+01 -1.717010e+02 -6.000000e+00 + vertex 7.425000e+01 -1.717010e+02 -3.000000e+00 + vertex 7.403582e+01 -1.718509e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 -8.191636e-01 0.000000e+00 + outer loop + vertex 7.425000e+01 -1.717010e+02 -3.000000e+00 + vertex 7.403582e+01 -1.718509e+02 -3.000000e+00 + vertex 7.403582e+01 -1.718509e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.575000e+01 -1.717010e+02 -6.000000e+00 + vertex 1.750000e+02 1.740000e+02 -6.000000e+00 + vertex 7.596418e+01 -1.718509e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 -8.191636e-01 -0.000000e+00 + outer loop + vertex 7.596418e+01 -1.718509e+02 -3.000000e+00 + vertex 7.575000e+01 -1.717010e+02 -6.000000e+00 + vertex 7.596418e+01 -1.718509e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 -1.704019e+02 -3.000000e+00 + vertex -7.692836e+01 -1.707019e+02 -3.000000e+00 + vertex -7.596418e+01 -1.718509e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.575000e+01 -1.717010e+02 -3.000000e+00 + vertex -7.650000e+01 -1.704019e+02 -3.000000e+00 + vertex -7.596418e+01 -1.718509e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 -8.191636e-01 -0.000000e+00 + outer loop + vertex -7.425000e+01 -1.717010e+02 -3.000000e+00 + vertex -7.425000e+01 -1.717010e+02 -6.000000e+00 + vertex -7.403582e+01 -1.718509e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.307164e+01 -1.707019e+02 -3.000000e+00 + vertex -7.425000e+01 -1.717010e+02 -3.000000e+00 + vertex -7.403582e+01 -1.718509e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.270186e+01 -1.710716e+02 -3.000000e+00 + vertex -7.307164e+01 -1.707019e+02 -3.000000e+00 + vertex -7.403582e+01 -1.718509e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 -1.704019e+02 -3.000000e+00 + vertex 7.307164e+01 -1.707019e+02 -3.000000e+00 + vertex 7.403582e+01 -1.718509e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.425000e+01 -1.717010e+02 -3.000000e+00 + vertex 7.350000e+01 -1.704019e+02 -3.000000e+00 + vertex 7.403582e+01 -1.718509e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 -8.191636e-01 -0.000000e+00 + outer loop + vertex 7.575000e+01 -1.717010e+02 -3.000000e+00 + vertex 7.575000e+01 -1.717010e+02 -6.000000e+00 + vertex 7.596418e+01 -1.718509e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.692836e+01 -1.707019e+02 -3.000000e+00 + vertex 7.575000e+01 -1.717010e+02 -3.000000e+00 + vertex 7.596418e+01 -1.718509e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.729813e+01 -1.710716e+02 -3.000000e+00 + vertex 7.692836e+01 -1.707019e+02 -3.000000e+00 + vertex 7.596418e+01 -1.718509e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 -9.063010e-01 0.000000e+00 + outer loop + vertex -7.551303e+01 -1.715905e+02 -6.000000e+00 + vertex -7.551303e+01 -1.715905e+02 -3.000000e+00 + vertex -7.575000e+01 -1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 -9.063010e-01 0.000000e+00 + outer loop + vertex -7.551303e+01 -1.715905e+02 -3.000000e+00 + vertex -7.575000e+01 -1.717010e+02 -3.000000e+00 + vertex -7.575000e+01 -1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.575000e+01 1.717010e+02 -6.000000e+00 + vertex -7.551303e+01 1.715905e+02 -6.000000e+00 + vertex -7.575000e+01 -1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.551303e+01 1.715905e+02 -6.000000e+00 + vertex -7.526048e+01 1.715228e+02 -6.000000e+00 + vertex -7.575000e+01 -1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.526048e+01 1.715228e+02 -6.000000e+00 + vertex -7.551303e+01 -1.715905e+02 -6.000000e+00 + vertex -7.575000e+01 -1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.629904e+01 1.722500e+02 -6.000000e+00 + vertex -7.614907e+01 1.720358e+02 -6.000000e+00 + vertex -7.575000e+01 -1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.614907e+01 1.720358e+02 -6.000000e+00 + vertex -7.596418e+01 1.718509e+02 -6.000000e+00 + vertex -7.575000e+01 -1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.596418e+01 1.718509e+02 -6.000000e+00 + vertex -7.575000e+01 1.717010e+02 -6.000000e+00 + vertex -7.575000e+01 -1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.750000e+02 1.740000e+02 -6.000000e+00 + vertex -7.629904e+01 1.722500e+02 -6.000000e+00 + vertex -7.575000e+01 -1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 -9.063010e-01 -0.000000e+00 + outer loop + vertex -7.425000e+01 -1.717010e+02 -3.000000e+00 + vertex -7.448697e+01 -1.715905e+02 -6.000000e+00 + vertex -7.425000e+01 -1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.425000e+01 1.717010e+02 -6.000000e+00 + vertex 7.448697e+01 1.715905e+02 -6.000000e+00 + vertex -7.425000e+01 -1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.448697e+01 1.715905e+02 -6.000000e+00 + vertex 7.473953e+01 1.715228e+02 -6.000000e+00 + vertex -7.425000e+01 -1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.473953e+01 1.715228e+02 -6.000000e+00 + vertex 7.500000e+01 1.715000e+02 -6.000000e+00 + vertex -7.425000e+01 -1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.500000e+01 1.715000e+02 -6.000000e+00 + vertex 1.740000e+02 1.750000e+02 -6.000000e+00 + vertex -7.425000e+01 -1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.370096e+01 1.722500e+02 -6.000000e+00 + vertex 7.385093e+01 1.720358e+02 -6.000000e+00 + vertex -7.425000e+01 -1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.385093e+01 1.720358e+02 -6.000000e+00 + vertex 7.403582e+01 1.718509e+02 -6.000000e+00 + vertex -7.425000e+01 -1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.403582e+01 1.718509e+02 -6.000000e+00 + vertex 7.425000e+01 1.717010e+02 -6.000000e+00 + vertex -7.425000e+01 -1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.448697e+01 -1.715905e+02 -6.000000e+00 + vertex -7.500000e+01 1.715000e+02 -6.000000e+00 + vertex -7.425000e+01 -1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.500000e+01 1.715000e+02 -6.000000e+00 + vertex -7.473953e+01 1.715228e+02 -6.000000e+00 + vertex -7.425000e+01 -1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.473953e+01 1.715228e+02 -6.000000e+00 + vertex 7.370096e+01 1.722500e+02 -6.000000e+00 + vertex -7.425000e+01 -1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 -9.063010e-01 0.000000e+00 + outer loop + vertex 7.448697e+01 -1.715905e+02 -6.000000e+00 + vertex 7.448697e+01 -1.715905e+02 -3.000000e+00 + vertex 7.425000e+01 -1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 -9.063010e-01 0.000000e+00 + outer loop + vertex 7.448697e+01 -1.715905e+02 -3.000000e+00 + vertex 7.425000e+01 -1.717010e+02 -3.000000e+00 + vertex 7.425000e+01 -1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 1.749848e+02 1.741737e+02 -6.000000e+00 + vertex 1.750000e+02 1.740000e+02 -6.000000e+00 + vertex 7.575000e+01 -1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.551303e+01 -1.715905e+02 -6.000000e+00 + vertex 1.749848e+02 1.741737e+02 -6.000000e+00 + vertex 7.575000e+01 -1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 -9.063010e-01 -0.000000e+00 + outer loop + vertex 7.575000e+01 -1.717010e+02 -3.000000e+00 + vertex 7.551303e+01 -1.715905e+02 -6.000000e+00 + vertex 7.575000e+01 -1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.602606e+01 -1.701809e+02 -3.000000e+00 + vertex -7.650000e+01 -1.704019e+02 -3.000000e+00 + vertex -7.575000e+01 -1.717010e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.551303e+01 -1.715905e+02 -3.000000e+00 + vertex -7.602606e+01 -1.701809e+02 -3.000000e+00 + vertex -7.575000e+01 -1.717010e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 -9.063010e-01 -0.000000e+00 + outer loop + vertex -7.448697e+01 -1.715905e+02 -3.000000e+00 + vertex -7.448697e+01 -1.715905e+02 -6.000000e+00 + vertex -7.425000e+01 -1.717010e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.350000e+01 -1.704019e+02 -3.000000e+00 + vertex -7.448697e+01 -1.715905e+02 -3.000000e+00 + vertex -7.425000e+01 -1.717010e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.307164e+01 -1.707019e+02 -3.000000e+00 + vertex -7.350000e+01 -1.704019e+02 -3.000000e+00 + vertex -7.425000e+01 -1.717010e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.397394e+01 -1.701809e+02 -3.000000e+00 + vertex 7.350000e+01 -1.704019e+02 -3.000000e+00 + vertex 7.425000e+01 -1.717010e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.448697e+01 -1.715905e+02 -3.000000e+00 + vertex 7.397394e+01 -1.701809e+02 -3.000000e+00 + vertex 7.425000e+01 -1.717010e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 -9.063010e-01 -0.000000e+00 + outer loop + vertex 7.551303e+01 -1.715905e+02 -3.000000e+00 + vertex 7.551303e+01 -1.715905e+02 -6.000000e+00 + vertex 7.575000e+01 -1.717010e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.650000e+01 -1.704019e+02 -3.000000e+00 + vertex 7.551303e+01 -1.715905e+02 -3.000000e+00 + vertex 7.575000e+01 -1.717010e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.692836e+01 -1.707019e+02 -3.000000e+00 + vertex 7.650000e+01 -1.704019e+02 -3.000000e+00 + vertex 7.575000e+01 -1.717010e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588543e-01 -9.659164e-01 0.000000e+00 + outer loop + vertex -7.526048e+01 -1.715228e+02 -6.000000e+00 + vertex -7.526048e+01 -1.715228e+02 -3.000000e+00 + vertex -7.551303e+01 -1.715905e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588543e-01 -9.659164e-01 0.000000e+00 + outer loop + vertex -7.526048e+01 -1.715228e+02 -3.000000e+00 + vertex -7.551303e+01 -1.715905e+02 -3.000000e+00 + vertex -7.551303e+01 -1.715905e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.526048e+01 1.715228e+02 -6.000000e+00 + vertex -7.526048e+01 -1.715228e+02 -6.000000e+00 + vertex -7.551303e+01 -1.715905e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588472e-01 -9.659183e-01 -0.000000e+00 + outer loop + vertex -7.448697e+01 -1.715905e+02 -3.000000e+00 + vertex -7.473953e+01 -1.715228e+02 -6.000000e+00 + vertex -7.448697e+01 -1.715905e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.473953e+01 -1.715228e+02 -6.000000e+00 + vertex -7.500000e+01 1.715000e+02 -6.000000e+00 + vertex -7.448697e+01 -1.715905e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588472e-01 -9.659183e-01 0.000000e+00 + outer loop + vertex 7.473953e+01 -1.715228e+02 -6.000000e+00 + vertex 7.473953e+01 -1.715228e+02 -3.000000e+00 + vertex 7.448697e+01 -1.715905e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588472e-01 -9.659183e-01 0.000000e+00 + outer loop + vertex 7.473953e+01 -1.715228e+02 -3.000000e+00 + vertex 7.448697e+01 -1.715905e+02 -3.000000e+00 + vertex 7.448697e+01 -1.715905e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 1.741737e+02 1.749848e+02 -6.000000e+00 + vertex 1.743420e+02 1.749397e+02 -6.000000e+00 + vertex 7.551303e+01 -1.715905e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 1.743420e+02 1.749397e+02 -6.000000e+00 + vertex 1.745000e+02 1.748660e+02 -6.000000e+00 + vertex 7.551303e+01 -1.715905e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 1.745000e+02 1.748660e+02 -6.000000e+00 + vertex 1.746428e+02 1.747660e+02 -6.000000e+00 + vertex 7.551303e+01 -1.715905e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 1.746428e+02 1.747660e+02 -6.000000e+00 + vertex 1.747660e+02 1.746428e+02 -6.000000e+00 + vertex 7.551303e+01 -1.715905e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 1.747660e+02 1.746428e+02 -6.000000e+00 + vertex 1.748660e+02 1.745000e+02 -6.000000e+00 + vertex 7.551303e+01 -1.715905e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 1.749397e+02 1.743420e+02 -6.000000e+00 + vertex 1.749848e+02 1.741737e+02 -6.000000e+00 + vertex 7.551303e+01 -1.715905e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 1.748660e+02 1.745000e+02 -6.000000e+00 + vertex 1.749397e+02 1.743420e+02 -6.000000e+00 + vertex 7.551303e+01 -1.715905e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 1.740000e+02 1.750000e+02 -6.000000e+00 + vertex 1.741737e+02 1.749848e+02 -6.000000e+00 + vertex 7.551303e+01 -1.715905e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.526048e+01 -1.715228e+02 -6.000000e+00 + vertex 1.740000e+02 1.750000e+02 -6.000000e+00 + vertex 7.551303e+01 -1.715905e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588543e-01 -9.659164e-01 -0.000000e+00 + outer loop + vertex 7.551303e+01 -1.715905e+02 -3.000000e+00 + vertex 7.526048e+01 -1.715228e+02 -6.000000e+00 + vertex 7.551303e+01 -1.715905e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.552095e+01 -1.700456e+02 -3.000000e+00 + vertex -7.602606e+01 -1.701809e+02 -3.000000e+00 + vertex -7.551303e+01 -1.715905e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.526048e+01 -1.715228e+02 -3.000000e+00 + vertex -7.552095e+01 -1.700456e+02 -3.000000e+00 + vertex -7.551303e+01 -1.715905e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588472e-01 -9.659183e-01 -0.000000e+00 + outer loop + vertex -7.473953e+01 -1.715228e+02 -3.000000e+00 + vertex -7.473953e+01 -1.715228e+02 -6.000000e+00 + vertex -7.448697e+01 -1.715905e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.397394e+01 -1.701809e+02 -3.000000e+00 + vertex -7.473953e+01 -1.715228e+02 -3.000000e+00 + vertex -7.448697e+01 -1.715905e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.350000e+01 -1.704019e+02 -3.000000e+00 + vertex -7.397394e+01 -1.701809e+02 -3.000000e+00 + vertex -7.448697e+01 -1.715905e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.447906e+01 -1.700456e+02 -3.000000e+00 + vertex 7.397394e+01 -1.701809e+02 -3.000000e+00 + vertex 7.448697e+01 -1.715905e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.473953e+01 -1.715228e+02 -3.000000e+00 + vertex 7.447906e+01 -1.700456e+02 -3.000000e+00 + vertex 7.448697e+01 -1.715905e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588543e-01 -9.659164e-01 -0.000000e+00 + outer loop + vertex 7.526048e+01 -1.715228e+02 -3.000000e+00 + vertex 7.526048e+01 -1.715228e+02 -6.000000e+00 + vertex 7.551303e+01 -1.715905e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.602606e+01 -1.701809e+02 -3.000000e+00 + vertex 7.526048e+01 -1.715228e+02 -3.000000e+00 + vertex 7.551303e+01 -1.715905e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.650000e+01 -1.704019e+02 -3.000000e+00 + vertex 7.602606e+01 -1.701809e+02 -3.000000e+00 + vertex 7.551303e+01 -1.715905e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.713867e-02 -9.961962e-01 0.000000e+00 + outer loop + vertex -7.500000e+01 -1.715000e+02 -6.000000e+00 + vertex -7.500000e+01 -1.715000e+02 -3.000000e+00 + vertex -7.526048e+01 -1.715228e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.713867e-02 -9.961962e-01 0.000000e+00 + outer loop + vertex -7.500000e+01 -1.715000e+02 -3.000000e+00 + vertex -7.526048e+01 -1.715228e+02 -3.000000e+00 + vertex -7.526048e+01 -1.715228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.526048e+01 1.715228e+02 -6.000000e+00 + vertex -7.500000e+01 -1.715000e+02 -6.000000e+00 + vertex -7.526048e+01 -1.715228e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.713867e-02 -9.961962e-01 -0.000000e+00 + outer loop + vertex -7.473953e+01 -1.715228e+02 -3.000000e+00 + vertex -7.500000e+01 -1.715000e+02 -6.000000e+00 + vertex -7.473953e+01 -1.715228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.500000e+01 -1.715000e+02 -6.000000e+00 + vertex -7.500000e+01 1.715000e+02 -6.000000e+00 + vertex -7.473953e+01 -1.715228e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.713867e-02 -9.961962e-01 0.000000e+00 + outer loop + vertex 7.500000e+01 -1.715000e+02 -6.000000e+00 + vertex 7.500000e+01 -1.715000e+02 -3.000000e+00 + vertex 7.473953e+01 -1.715228e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.713867e-02 -9.961962e-01 0.000000e+00 + outer loop + vertex 7.500000e+01 -1.715000e+02 -3.000000e+00 + vertex 7.473953e+01 -1.715228e+02 -3.000000e+00 + vertex 7.473953e+01 -1.715228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.500000e+01 -1.715000e+02 -6.000000e+00 + vertex 1.740000e+02 1.750000e+02 -6.000000e+00 + vertex 7.526048e+01 -1.715228e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.713867e-02 -9.961962e-01 -0.000000e+00 + outer loop + vertex 7.526048e+01 -1.715228e+02 -3.000000e+00 + vertex 7.500000e+01 -1.715000e+02 -6.000000e+00 + vertex 7.526048e+01 -1.715228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.500000e+01 -1.700000e+02 -3.000000e+00 + vertex -7.552095e+01 -1.700456e+02 -3.000000e+00 + vertex -7.526048e+01 -1.715228e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.500000e+01 -1.715000e+02 -3.000000e+00 + vertex -7.500000e+01 -1.700000e+02 -3.000000e+00 + vertex -7.526048e+01 -1.715228e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.713867e-02 -9.961962e-01 -0.000000e+00 + outer loop + vertex -7.500000e+01 -1.715000e+02 -3.000000e+00 + vertex -7.500000e+01 -1.715000e+02 -6.000000e+00 + vertex -7.473953e+01 -1.715228e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.447906e+01 -1.700456e+02 -3.000000e+00 + vertex -7.500000e+01 -1.715000e+02 -3.000000e+00 + vertex -7.473953e+01 -1.715228e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.397394e+01 -1.701809e+02 -3.000000e+00 + vertex -7.447906e+01 -1.700456e+02 -3.000000e+00 + vertex -7.473953e+01 -1.715228e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.500000e+01 -1.700000e+02 -3.000000e+00 + vertex 7.447906e+01 -1.700456e+02 -3.000000e+00 + vertex 7.473953e+01 -1.715228e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.500000e+01 -1.715000e+02 -3.000000e+00 + vertex 7.500000e+01 -1.700000e+02 -3.000000e+00 + vertex 7.473953e+01 -1.715228e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.713867e-02 -9.961962e-01 -0.000000e+00 + outer loop + vertex 7.500000e+01 -1.715000e+02 -3.000000e+00 + vertex 7.500000e+01 -1.715000e+02 -6.000000e+00 + vertex 7.526048e+01 -1.715228e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.552095e+01 -1.700456e+02 -3.000000e+00 + vertex 7.500000e+01 -1.715000e+02 -3.000000e+00 + vertex 7.526048e+01 -1.715228e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.602606e+01 -1.701809e+02 -3.000000e+00 + vertex 7.552095e+01 -1.700456e+02 -3.000000e+00 + vertex 7.526048e+01 -1.715228e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.526048e+01 1.715228e+02 -6.000000e+00 + vertex -7.500000e+01 1.715000e+02 -6.000000e+00 + vertex -7.500000e+01 -1.715000e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191569e-01 -5.735694e-01 0.000000e+00 + outer loop + vertex -7.729813e+01 -1.710716e+02 -3.000000e+00 + vertex -7.729813e+01 -1.710716e+02 0.000000e+00 + vertex -7.759807e+01 -1.715000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191569e-01 -5.735694e-01 0.000000e+00 + outer loop + vertex -7.729813e+01 -1.710716e+02 0.000000e+00 + vertex -7.759807e+01 -1.715000e+02 0.000000e+00 + vertex -7.759807e+01 -1.715000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.447906e+01 -1.700456e+02 -3.000000e+00 + vertex -7.500000e+01 -1.700000e+02 -3.000000e+00 + vertex -7.500000e+01 -1.715000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191569e-01 -5.735694e-01 -0.000000e+00 + outer loop + vertex -7.240193e+01 -1.715000e+02 0.000000e+00 + vertex -7.270186e+01 -1.710716e+02 -3.000000e+00 + vertex -7.240193e+01 -1.715000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191569e-01 -5.735694e-01 0.000000e+00 + outer loop + vertex 7.270186e+01 -1.710716e+02 -3.000000e+00 + vertex 7.270186e+01 -1.710716e+02 0.000000e+00 + vertex 7.240193e+01 -1.715000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191569e-01 -5.735694e-01 0.000000e+00 + outer loop + vertex 7.270186e+01 -1.710716e+02 0.000000e+00 + vertex 7.240193e+01 -1.715000e+02 0.000000e+00 + vertex 7.240193e+01 -1.715000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.552095e+01 -1.700456e+02 -3.000000e+00 + vertex 7.500000e+01 -1.700000e+02 -3.000000e+00 + vertex 7.500000e+01 -1.715000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191569e-01 -5.735694e-01 -0.000000e+00 + outer loop + vertex 7.759807e+01 -1.715000e+02 0.000000e+00 + vertex 7.729813e+01 -1.710716e+02 -3.000000e+00 + vertex 7.759807e+01 -1.715000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 -1.704019e+02 0.000000e+00 + vertex -7.270186e+01 -1.710716e+02 0.000000e+00 + vertex -7.240193e+01 -1.715000e+02 0.000000e+00 + endloop + endfacet + facet normal -8.191569e-01 -5.735694e-01 -0.000000e+00 + outer loop + vertex -7.270186e+01 -1.710716e+02 0.000000e+00 + vertex -7.270186e+01 -1.710716e+02 -3.000000e+00 + vertex -7.240193e+01 -1.715000e+02 0.000000e+00 + endloop + endfacet + facet normal -8.191569e-01 -5.735694e-01 -0.000000e+00 + outer loop + vertex 7.729813e+01 -1.710716e+02 0.000000e+00 + vertex 7.729813e+01 -1.710716e+02 -3.000000e+00 + vertex 7.759807e+01 -1.715000e+02 0.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex -7.692836e+01 -1.707019e+02 -3.000000e+00 + vertex -7.692836e+01 -1.707019e+02 0.000000e+00 + vertex -7.729813e+01 -1.710716e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex -7.692836e+01 -1.707019e+02 0.000000e+00 + vertex -7.729813e+01 -1.710716e+02 0.000000e+00 + vertex -7.729813e+01 -1.710716e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex -7.270186e+01 -1.710716e+02 0.000000e+00 + vertex -7.307164e+01 -1.707019e+02 -3.000000e+00 + vertex -7.270186e+01 -1.710716e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex 7.307164e+01 -1.707019e+02 -3.000000e+00 + vertex 7.307164e+01 -1.707019e+02 0.000000e+00 + vertex 7.270186e+01 -1.710716e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 -7.071068e-01 0.000000e+00 + outer loop + vertex 7.307164e+01 -1.707019e+02 0.000000e+00 + vertex 7.270186e+01 -1.710716e+02 0.000000e+00 + vertex 7.270186e+01 -1.710716e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex 7.729813e+01 -1.710716e+02 0.000000e+00 + vertex 7.692836e+01 -1.707019e+02 -3.000000e+00 + vertex 7.729813e+01 -1.710716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.692836e+01 -1.707019e+02 0.000000e+00 + vertex -7.552095e+01 1.700456e+02 0.000000e+00 + vertex -7.729813e+01 -1.710716e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 -1.704019e+02 0.000000e+00 + vertex -7.307164e+01 -1.707019e+02 0.000000e+00 + vertex -7.270186e+01 -1.710716e+02 0.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex -7.307164e+01 -1.707019e+02 0.000000e+00 + vertex -7.307164e+01 -1.707019e+02 -3.000000e+00 + vertex -7.270186e+01 -1.710716e+02 0.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 -7.071068e-01 -0.000000e+00 + outer loop + vertex 7.692836e+01 -1.707019e+02 0.000000e+00 + vertex 7.692836e+01 -1.707019e+02 -3.000000e+00 + vertex 7.729813e+01 -1.710716e+02 0.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 -8.191636e-01 0.000000e+00 + outer loop + vertex -7.650000e+01 -1.704019e+02 -3.000000e+00 + vertex -7.650000e+01 -1.704019e+02 0.000000e+00 + vertex -7.692836e+01 -1.707019e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 -8.191636e-01 0.000000e+00 + outer loop + vertex -7.650000e+01 -1.704019e+02 0.000000e+00 + vertex -7.692836e+01 -1.707019e+02 0.000000e+00 + vertex -7.692836e+01 -1.707019e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 -8.191636e-01 -0.000000e+00 + outer loop + vertex -7.307164e+01 -1.707019e+02 0.000000e+00 + vertex -7.350000e+01 -1.704019e+02 -3.000000e+00 + vertex -7.307164e+01 -1.707019e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 -8.191636e-01 0.000000e+00 + outer loop + vertex 7.350000e+01 -1.704019e+02 -3.000000e+00 + vertex 7.350000e+01 -1.704019e+02 0.000000e+00 + vertex 7.307164e+01 -1.707019e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 -8.191636e-01 0.000000e+00 + outer loop + vertex 7.350000e+01 -1.704019e+02 0.000000e+00 + vertex 7.307164e+01 -1.707019e+02 0.000000e+00 + vertex 7.307164e+01 -1.707019e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 -8.191636e-01 -0.000000e+00 + outer loop + vertex 7.692836e+01 -1.707019e+02 0.000000e+00 + vertex 7.650000e+01 -1.704019e+02 -3.000000e+00 + vertex 7.692836e+01 -1.707019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 -1.704019e+02 0.000000e+00 + vertex -7.552095e+01 1.700456e+02 0.000000e+00 + vertex -7.692836e+01 -1.707019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 -1.704019e+02 0.000000e+00 + vertex -7.350000e+01 -1.704019e+02 0.000000e+00 + vertex -7.307164e+01 -1.707019e+02 0.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 -8.191636e-01 -0.000000e+00 + outer loop + vertex -7.350000e+01 -1.704019e+02 0.000000e+00 + vertex -7.350000e+01 -1.704019e+02 -3.000000e+00 + vertex -7.307164e+01 -1.707019e+02 0.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 -8.191636e-01 -0.000000e+00 + outer loop + vertex 7.650000e+01 -1.704019e+02 0.000000e+00 + vertex 7.650000e+01 -1.704019e+02 -3.000000e+00 + vertex 7.692836e+01 -1.707019e+02 0.000000e+00 + endloop + endfacet + facet normal 4.226382e-01 -9.062985e-01 0.000000e+00 + outer loop + vertex -7.602606e+01 -1.701809e+02 -3.000000e+00 + vertex -7.602606e+01 -1.701809e+02 0.000000e+00 + vertex -7.650000e+01 -1.704019e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226382e-01 -9.062985e-01 0.000000e+00 + outer loop + vertex -7.602606e+01 -1.701809e+02 0.000000e+00 + vertex -7.650000e+01 -1.704019e+02 0.000000e+00 + vertex -7.650000e+01 -1.704019e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226382e-01 -9.062985e-01 -0.000000e+00 + outer loop + vertex -7.350000e+01 -1.704019e+02 0.000000e+00 + vertex -7.397394e+01 -1.701809e+02 -3.000000e+00 + vertex -7.350000e+01 -1.704019e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226382e-01 -9.062985e-01 0.000000e+00 + outer loop + vertex 7.397394e+01 -1.701809e+02 -3.000000e+00 + vertex 7.397394e+01 -1.701809e+02 0.000000e+00 + vertex 7.350000e+01 -1.704019e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226382e-01 -9.062985e-01 0.000000e+00 + outer loop + vertex 7.397394e+01 -1.701809e+02 0.000000e+00 + vertex 7.350000e+01 -1.704019e+02 0.000000e+00 + vertex 7.350000e+01 -1.704019e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226382e-01 -9.062985e-01 -0.000000e+00 + outer loop + vertex 7.650000e+01 -1.704019e+02 0.000000e+00 + vertex 7.602606e+01 -1.701809e+02 -3.000000e+00 + vertex 7.650000e+01 -1.704019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.500000e+01 1.700000e+02 0.000000e+00 + vertex -7.552095e+01 1.700456e+02 0.000000e+00 + vertex -7.650000e+01 -1.704019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.447906e+01 1.700456e+02 0.000000e+00 + vertex -7.500000e+01 1.700000e+02 0.000000e+00 + vertex -7.650000e+01 -1.704019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.602606e+01 -1.701809e+02 0.000000e+00 + vertex 7.447906e+01 1.700456e+02 0.000000e+00 + vertex -7.650000e+01 -1.704019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.500000e+01 1.700000e+02 0.000000e+00 + vertex -7.397394e+01 -1.701809e+02 0.000000e+00 + vertex -7.350000e+01 -1.704019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 -1.704019e+02 0.000000e+00 + vertex 7.500000e+01 1.700000e+02 0.000000e+00 + vertex -7.350000e+01 -1.704019e+02 0.000000e+00 + endloop + endfacet + facet normal -4.226382e-01 -9.062985e-01 -0.000000e+00 + outer loop + vertex -7.397394e+01 -1.701809e+02 0.000000e+00 + vertex -7.397394e+01 -1.701809e+02 -3.000000e+00 + vertex -7.350000e+01 -1.704019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.397394e+01 -1.701809e+02 0.000000e+00 + vertex 7.500000e+01 1.700000e+02 0.000000e+00 + vertex 7.350000e+01 -1.704019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.650000e+01 1.704019e+02 0.000000e+00 + vertex 7.602606e+01 1.701809e+02 0.000000e+00 + vertex 7.650000e+01 -1.704019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.750000e+02 1.740000e+02 0.000000e+00 + vertex 7.729813e+01 1.710716e+02 0.000000e+00 + vertex 7.650000e+01 -1.704019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.729813e+01 1.710716e+02 0.000000e+00 + vertex 7.692836e+01 1.707019e+02 0.000000e+00 + vertex 7.650000e+01 -1.704019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.692836e+01 1.707019e+02 0.000000e+00 + vertex 7.650000e+01 1.704019e+02 0.000000e+00 + vertex 7.650000e+01 -1.704019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.602606e+01 1.701809e+02 0.000000e+00 + vertex 7.602606e+01 -1.701809e+02 0.000000e+00 + vertex 7.650000e+01 -1.704019e+02 0.000000e+00 + endloop + endfacet + facet normal -4.226382e-01 -9.062985e-01 -0.000000e+00 + outer loop + vertex 7.602606e+01 -1.701809e+02 0.000000e+00 + vertex 7.602606e+01 -1.701809e+02 -3.000000e+00 + vertex 7.650000e+01 -1.704019e+02 0.000000e+00 + endloop + endfacet + facet normal 2.588242e-01 -9.659245e-01 0.000000e+00 + outer loop + vertex -7.552095e+01 -1.700456e+02 -3.000000e+00 + vertex -7.552095e+01 -1.700456e+02 0.000000e+00 + vertex -7.602606e+01 -1.701809e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588242e-01 -9.659245e-01 0.000000e+00 + outer loop + vertex -7.552095e+01 -1.700456e+02 0.000000e+00 + vertex -7.602606e+01 -1.701809e+02 0.000000e+00 + vertex -7.602606e+01 -1.701809e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588206e-01 -9.659254e-01 -0.000000e+00 + outer loop + vertex -7.397394e+01 -1.701809e+02 0.000000e+00 + vertex -7.447906e+01 -1.700456e+02 -3.000000e+00 + vertex -7.397394e+01 -1.701809e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588206e-01 -9.659254e-01 0.000000e+00 + outer loop + vertex 7.447906e+01 -1.700456e+02 -3.000000e+00 + vertex 7.447906e+01 -1.700456e+02 0.000000e+00 + vertex 7.397394e+01 -1.701809e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588206e-01 -9.659254e-01 0.000000e+00 + outer loop + vertex 7.447906e+01 -1.700456e+02 0.000000e+00 + vertex 7.397394e+01 -1.701809e+02 0.000000e+00 + vertex 7.397394e+01 -1.701809e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588242e-01 -9.659245e-01 -0.000000e+00 + outer loop + vertex 7.602606e+01 -1.701809e+02 0.000000e+00 + vertex 7.552095e+01 -1.700456e+02 -3.000000e+00 + vertex 7.602606e+01 -1.701809e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.500000e+01 1.700000e+02 0.000000e+00 + vertex 7.447906e+01 1.700456e+02 0.000000e+00 + vertex -7.602606e+01 -1.701809e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.552095e+01 -1.700456e+02 0.000000e+00 + vertex 7.500000e+01 1.700000e+02 0.000000e+00 + vertex -7.602606e+01 -1.701809e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.500000e+01 1.700000e+02 0.000000e+00 + vertex -7.447906e+01 -1.700456e+02 0.000000e+00 + vertex -7.397394e+01 -1.701809e+02 0.000000e+00 + endloop + endfacet + facet normal -2.588206e-01 -9.659254e-01 -0.000000e+00 + outer loop + vertex -7.447906e+01 -1.700456e+02 0.000000e+00 + vertex -7.447906e+01 -1.700456e+02 -3.000000e+00 + vertex -7.397394e+01 -1.701809e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.447906e+01 -1.700456e+02 0.000000e+00 + vertex 7.500000e+01 1.700000e+02 0.000000e+00 + vertex 7.397394e+01 -1.701809e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.602606e+01 1.701809e+02 0.000000e+00 + vertex 7.552095e+01 -1.700456e+02 0.000000e+00 + vertex 7.602606e+01 -1.701809e+02 0.000000e+00 + endloop + endfacet + facet normal -2.588242e-01 -9.659245e-01 -0.000000e+00 + outer loop + vertex 7.552095e+01 -1.700456e+02 0.000000e+00 + vertex 7.552095e+01 -1.700456e+02 -3.000000e+00 + vertex 7.602606e+01 -1.701809e+02 0.000000e+00 + endloop + endfacet + facet normal 8.713867e-02 -9.961962e-01 0.000000e+00 + outer loop + vertex -7.500000e+01 -1.700000e+02 -3.000000e+00 + vertex -7.500000e+01 -1.700000e+02 0.000000e+00 + vertex -7.552095e+01 -1.700456e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.713867e-02 -9.961962e-01 0.000000e+00 + outer loop + vertex -7.500000e+01 -1.700000e+02 0.000000e+00 + vertex -7.552095e+01 -1.700456e+02 0.000000e+00 + vertex -7.552095e+01 -1.700456e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.713867e-02 -9.961962e-01 -0.000000e+00 + outer loop + vertex -7.447906e+01 -1.700456e+02 0.000000e+00 + vertex -7.500000e+01 -1.700000e+02 -3.000000e+00 + vertex -7.447906e+01 -1.700456e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.713867e-02 -9.961962e-01 0.000000e+00 + outer loop + vertex 7.500000e+01 -1.700000e+02 -3.000000e+00 + vertex 7.500000e+01 -1.700000e+02 0.000000e+00 + vertex 7.447906e+01 -1.700456e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.713867e-02 -9.961962e-01 0.000000e+00 + outer loop + vertex 7.500000e+01 -1.700000e+02 0.000000e+00 + vertex 7.447906e+01 -1.700456e+02 0.000000e+00 + vertex 7.447906e+01 -1.700456e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.713867e-02 -9.961962e-01 -0.000000e+00 + outer loop + vertex 7.552095e+01 -1.700456e+02 0.000000e+00 + vertex 7.500000e+01 -1.700000e+02 -3.000000e+00 + vertex 7.552095e+01 -1.700456e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex -7.500000e+01 -1.700000e+02 0.000000e+00 + vertex 7.500000e+01 1.700000e+02 0.000000e+00 + vertex -7.552095e+01 -1.700456e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.500000e+01 1.700000e+02 0.000000e+00 + vertex -7.500000e+01 -1.700000e+02 0.000000e+00 + vertex -7.447906e+01 -1.700456e+02 0.000000e+00 + endloop + endfacet + facet normal -8.713867e-02 -9.961962e-01 -0.000000e+00 + outer loop + vertex -7.500000e+01 -1.700000e+02 0.000000e+00 + vertex -7.500000e+01 -1.700000e+02 -3.000000e+00 + vertex -7.447906e+01 -1.700456e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 1.000000e+00 + outer loop + vertex 7.500000e+01 -1.700000e+02 0.000000e+00 + vertex 7.500000e+01 1.700000e+02 0.000000e+00 + vertex 7.447906e+01 -1.700456e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.602606e+01 1.701809e+02 0.000000e+00 + vertex 7.500000e+01 -1.700000e+02 0.000000e+00 + vertex 7.552095e+01 -1.700456e+02 0.000000e+00 + endloop + endfacet + facet normal -8.713867e-02 -9.961962e-01 -0.000000e+00 + outer loop + vertex 7.500000e+01 -1.700000e+02 0.000000e+00 + vertex 7.500000e+01 -1.700000e+02 -3.000000e+00 + vertex 7.552095e+01 -1.700456e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.602606e+01 1.701809e+02 0.000000e+00 + vertex 7.552095e+01 1.700456e+02 0.000000e+00 + vertex 7.500000e+01 -1.700000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.552095e+01 1.700456e+02 0.000000e+00 + vertex 7.500000e+01 1.700000e+02 0.000000e+00 + vertex 7.500000e+01 -1.700000e+02 0.000000e+00 + endloop + endfacet + facet normal 8.713867e-02 9.961962e-01 -0.000000e+00 + outer loop + vertex -7.552095e+01 1.700456e+02 -3.000000e+00 + vertex -7.552095e+01 1.700456e+02 0.000000e+00 + vertex -7.500000e+01 1.700000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.713867e-02 9.961962e-01 0.000000e+00 + outer loop + vertex -7.552095e+01 1.700456e+02 0.000000e+00 + vertex -7.500000e+01 1.700000e+02 0.000000e+00 + vertex -7.500000e+01 1.700000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.713867e-02 9.961962e-01 0.000000e+00 + outer loop + vertex -7.500000e+01 1.700000e+02 0.000000e+00 + vertex -7.447906e+01 1.700456e+02 -3.000000e+00 + vertex -7.500000e+01 1.700000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.447906e+01 1.700456e+02 -3.000000e+00 + vertex -7.473953e+01 1.715228e+02 -3.000000e+00 + vertex -7.500000e+01 1.700000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.473953e+01 1.715228e+02 -3.000000e+00 + vertex -7.500000e+01 1.715000e+02 -3.000000e+00 + vertex -7.500000e+01 1.700000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.500000e+01 1.715000e+02 -3.000000e+00 + vertex -7.552095e+01 1.700456e+02 -3.000000e+00 + vertex -7.500000e+01 1.700000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.713867e-02 9.961962e-01 -0.000000e+00 + outer loop + vertex 7.447906e+01 1.700456e+02 -3.000000e+00 + vertex 7.447906e+01 1.700456e+02 0.000000e+00 + vertex 7.500000e+01 1.700000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.713867e-02 9.961962e-01 0.000000e+00 + outer loop + vertex 7.447906e+01 1.700456e+02 0.000000e+00 + vertex 7.500000e+01 1.700000e+02 0.000000e+00 + vertex 7.500000e+01 1.700000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.713867e-02 9.961962e-01 0.000000e+00 + outer loop + vertex 7.500000e+01 1.700000e+02 0.000000e+00 + vertex 7.552095e+01 1.700456e+02 -3.000000e+00 + vertex 7.500000e+01 1.700000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.552095e+01 1.700456e+02 -3.000000e+00 + vertex 7.526048e+01 1.715228e+02 -3.000000e+00 + vertex 7.500000e+01 1.700000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.526048e+01 1.715228e+02 -3.000000e+00 + vertex 7.500000e+01 1.715000e+02 -3.000000e+00 + vertex 7.500000e+01 1.700000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.500000e+01 1.715000e+02 -3.000000e+00 + vertex 7.447906e+01 1.700456e+02 -3.000000e+00 + vertex 7.500000e+01 1.700000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.204558e+01 1.724790e+02 0.000000e+00 + vertex -7.447906e+01 1.700456e+02 0.000000e+00 + vertex -7.500000e+01 1.700000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.447906e+01 1.700456e+02 0.000000e+00 + vertex 7.397394e+01 1.701809e+02 0.000000e+00 + vertex -7.500000e+01 1.700000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.397394e+01 1.701809e+02 0.000000e+00 + vertex 7.350000e+01 1.704019e+02 0.000000e+00 + vertex -7.500000e+01 1.700000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 1.704019e+02 0.000000e+00 + vertex 7.307164e+01 1.707019e+02 0.000000e+00 + vertex -7.500000e+01 1.700000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.307164e+01 1.707019e+02 0.000000e+00 + vertex 7.270186e+01 1.710716e+02 0.000000e+00 + vertex -7.500000e+01 1.700000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.270186e+01 1.710716e+02 0.000000e+00 + vertex 7.240193e+01 1.715000e+02 0.000000e+00 + vertex -7.500000e+01 1.700000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.240193e+01 1.715000e+02 0.000000e+00 + vertex 7.218092e+01 1.719739e+02 0.000000e+00 + vertex -7.500000e+01 1.700000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.218092e+01 1.719739e+02 0.000000e+00 + vertex 7.204558e+01 1.724790e+02 0.000000e+00 + vertex -7.500000e+01 1.700000e+02 0.000000e+00 + endloop + endfacet + facet normal -8.713867e-02 9.961962e-01 0.000000e+00 + outer loop + vertex -7.447906e+01 1.700456e+02 0.000000e+00 + vertex -7.447906e+01 1.700456e+02 -3.000000e+00 + vertex -7.500000e+01 1.700000e+02 0.000000e+00 + endloop + endfacet + facet normal -8.713867e-02 9.961962e-01 0.000000e+00 + outer loop + vertex 7.552095e+01 1.700456e+02 0.000000e+00 + vertex 7.552095e+01 1.700456e+02 -3.000000e+00 + vertex 7.500000e+01 1.700000e+02 0.000000e+00 + endloop + endfacet + facet normal 2.588242e-01 9.659245e-01 -0.000000e+00 + outer loop + vertex -7.602606e+01 1.701809e+02 -3.000000e+00 + vertex -7.602606e+01 1.701809e+02 0.000000e+00 + vertex -7.552095e+01 1.700456e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588242e-01 9.659245e-01 0.000000e+00 + outer loop + vertex -7.602606e+01 1.701809e+02 0.000000e+00 + vertex -7.552095e+01 1.700456e+02 0.000000e+00 + vertex -7.552095e+01 1.700456e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.500000e+01 1.715000e+02 -3.000000e+00 + vertex -7.526048e+01 1.715228e+02 -3.000000e+00 + vertex -7.552095e+01 1.700456e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.526048e+01 1.715228e+02 -3.000000e+00 + vertex -7.602606e+01 1.701809e+02 -3.000000e+00 + vertex -7.552095e+01 1.700456e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588206e-01 9.659254e-01 0.000000e+00 + outer loop + vertex -7.447906e+01 1.700456e+02 0.000000e+00 + vertex -7.397394e+01 1.701809e+02 -3.000000e+00 + vertex -7.447906e+01 1.700456e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.397394e+01 1.701809e+02 -3.000000e+00 + vertex -7.448697e+01 1.715905e+02 -3.000000e+00 + vertex -7.447906e+01 1.700456e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.448697e+01 1.715905e+02 -3.000000e+00 + vertex -7.473953e+01 1.715228e+02 -3.000000e+00 + vertex -7.447906e+01 1.700456e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588206e-01 9.659254e-01 -0.000000e+00 + outer loop + vertex 7.397394e+01 1.701809e+02 -3.000000e+00 + vertex 7.397394e+01 1.701809e+02 0.000000e+00 + vertex 7.447906e+01 1.700456e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588206e-01 9.659254e-01 0.000000e+00 + outer loop + vertex 7.397394e+01 1.701809e+02 0.000000e+00 + vertex 7.447906e+01 1.700456e+02 0.000000e+00 + vertex 7.447906e+01 1.700456e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.500000e+01 1.715000e+02 -3.000000e+00 + vertex 7.473953e+01 1.715228e+02 -3.000000e+00 + vertex 7.447906e+01 1.700456e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.473953e+01 1.715228e+02 -3.000000e+00 + vertex 7.397394e+01 1.701809e+02 -3.000000e+00 + vertex 7.447906e+01 1.700456e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588242e-01 9.659245e-01 0.000000e+00 + outer loop + vertex 7.552095e+01 1.700456e+02 0.000000e+00 + vertex 7.602606e+01 1.701809e+02 -3.000000e+00 + vertex 7.552095e+01 1.700456e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.602606e+01 1.701809e+02 -3.000000e+00 + vertex 7.551303e+01 1.715905e+02 -3.000000e+00 + vertex 7.552095e+01 1.700456e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.551303e+01 1.715905e+02 -3.000000e+00 + vertex 7.526048e+01 1.715228e+02 -3.000000e+00 + vertex 7.552095e+01 1.700456e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.204558e+01 1.724790e+02 0.000000e+00 + vertex -7.397394e+01 1.701809e+02 0.000000e+00 + vertex -7.447906e+01 1.700456e+02 0.000000e+00 + endloop + endfacet + facet normal -2.588206e-01 9.659254e-01 0.000000e+00 + outer loop + vertex -7.397394e+01 1.701809e+02 0.000000e+00 + vertex -7.397394e+01 1.701809e+02 -3.000000e+00 + vertex -7.447906e+01 1.700456e+02 0.000000e+00 + endloop + endfacet + facet normal -2.588242e-01 9.659245e-01 0.000000e+00 + outer loop + vertex 7.602606e+01 1.701809e+02 0.000000e+00 + vertex 7.602606e+01 1.701809e+02 -3.000000e+00 + vertex 7.552095e+01 1.700456e+02 0.000000e+00 + endloop + endfacet + facet normal 4.226382e-01 9.062985e-01 -0.000000e+00 + outer loop + vertex -7.650000e+01 1.704019e+02 -3.000000e+00 + vertex -7.650000e+01 1.704019e+02 0.000000e+00 + vertex -7.602606e+01 1.701809e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226382e-01 9.062985e-01 0.000000e+00 + outer loop + vertex -7.650000e+01 1.704019e+02 0.000000e+00 + vertex -7.602606e+01 1.701809e+02 0.000000e+00 + vertex -7.602606e+01 1.701809e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.526048e+01 1.715228e+02 -3.000000e+00 + vertex -7.551303e+01 1.715905e+02 -3.000000e+00 + vertex -7.602606e+01 1.701809e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.551303e+01 1.715905e+02 -3.000000e+00 + vertex -7.650000e+01 1.704019e+02 -3.000000e+00 + vertex -7.602606e+01 1.701809e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226382e-01 9.062985e-01 0.000000e+00 + outer loop + vertex -7.397394e+01 1.701809e+02 0.000000e+00 + vertex -7.350000e+01 1.704019e+02 -3.000000e+00 + vertex -7.397394e+01 1.701809e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.350000e+01 1.704019e+02 -3.000000e+00 + vertex -7.425000e+01 1.717010e+02 -3.000000e+00 + vertex -7.397394e+01 1.701809e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.425000e+01 1.717010e+02 -3.000000e+00 + vertex -7.448697e+01 1.715905e+02 -3.000000e+00 + vertex -7.397394e+01 1.701809e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226382e-01 9.062985e-01 -0.000000e+00 + outer loop + vertex 7.350000e+01 1.704019e+02 -3.000000e+00 + vertex 7.350000e+01 1.704019e+02 0.000000e+00 + vertex 7.397394e+01 1.701809e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226382e-01 9.062985e-01 0.000000e+00 + outer loop + vertex 7.350000e+01 1.704019e+02 0.000000e+00 + vertex 7.397394e+01 1.701809e+02 0.000000e+00 + vertex 7.397394e+01 1.701809e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.473953e+01 1.715228e+02 -3.000000e+00 + vertex 7.448697e+01 1.715905e+02 -3.000000e+00 + vertex 7.397394e+01 1.701809e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.448697e+01 1.715905e+02 -3.000000e+00 + vertex 7.350000e+01 1.704019e+02 -3.000000e+00 + vertex 7.397394e+01 1.701809e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226382e-01 9.062985e-01 0.000000e+00 + outer loop + vertex 7.602606e+01 1.701809e+02 0.000000e+00 + vertex 7.650000e+01 1.704019e+02 -3.000000e+00 + vertex 7.602606e+01 1.701809e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.650000e+01 1.704019e+02 -3.000000e+00 + vertex 7.575000e+01 1.717010e+02 -3.000000e+00 + vertex 7.602606e+01 1.701809e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.575000e+01 1.717010e+02 -3.000000e+00 + vertex 7.551303e+01 1.715905e+02 -3.000000e+00 + vertex 7.602606e+01 1.701809e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.204558e+01 1.724790e+02 0.000000e+00 + vertex -7.350000e+01 1.704019e+02 0.000000e+00 + vertex -7.397394e+01 1.701809e+02 0.000000e+00 + endloop + endfacet + facet normal -4.226382e-01 9.062985e-01 0.000000e+00 + outer loop + vertex -7.350000e+01 1.704019e+02 0.000000e+00 + vertex -7.350000e+01 1.704019e+02 -3.000000e+00 + vertex -7.397394e+01 1.701809e+02 0.000000e+00 + endloop + endfacet + facet normal -4.226382e-01 9.062985e-01 0.000000e+00 + outer loop + vertex 7.650000e+01 1.704019e+02 0.000000e+00 + vertex 7.650000e+01 1.704019e+02 -3.000000e+00 + vertex 7.602606e+01 1.701809e+02 0.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 8.191636e-01 -0.000000e+00 + outer loop + vertex -7.692836e+01 1.707019e+02 -3.000000e+00 + vertex -7.692836e+01 1.707019e+02 0.000000e+00 + vertex -7.650000e+01 1.704019e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 8.191636e-01 0.000000e+00 + outer loop + vertex -7.692836e+01 1.707019e+02 0.000000e+00 + vertex -7.650000e+01 1.704019e+02 0.000000e+00 + vertex -7.650000e+01 1.704019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.551303e+01 1.715905e+02 -3.000000e+00 + vertex -7.575000e+01 1.717010e+02 -3.000000e+00 + vertex -7.650000e+01 1.704019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.575000e+01 1.717010e+02 -3.000000e+00 + vertex -7.692836e+01 1.707019e+02 -3.000000e+00 + vertex -7.650000e+01 1.704019e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 8.191636e-01 0.000000e+00 + outer loop + vertex -7.350000e+01 1.704019e+02 0.000000e+00 + vertex -7.307164e+01 1.707019e+02 -3.000000e+00 + vertex -7.350000e+01 1.704019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.307164e+01 1.707019e+02 -3.000000e+00 + vertex -7.403582e+01 1.718509e+02 -3.000000e+00 + vertex -7.350000e+01 1.704019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.403582e+01 1.718509e+02 -3.000000e+00 + vertex -7.425000e+01 1.717010e+02 -3.000000e+00 + vertex -7.350000e+01 1.704019e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 8.191636e-01 -0.000000e+00 + outer loop + vertex 7.307164e+01 1.707019e+02 -3.000000e+00 + vertex 7.307164e+01 1.707019e+02 0.000000e+00 + vertex 7.350000e+01 1.704019e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 8.191636e-01 0.000000e+00 + outer loop + vertex 7.307164e+01 1.707019e+02 0.000000e+00 + vertex 7.350000e+01 1.704019e+02 0.000000e+00 + vertex 7.350000e+01 1.704019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.448697e+01 1.715905e+02 -3.000000e+00 + vertex 7.425000e+01 1.717010e+02 -3.000000e+00 + vertex 7.350000e+01 1.704019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.425000e+01 1.717010e+02 -3.000000e+00 + vertex 7.307164e+01 1.707019e+02 -3.000000e+00 + vertex 7.350000e+01 1.704019e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 8.191636e-01 0.000000e+00 + outer loop + vertex 7.650000e+01 1.704019e+02 0.000000e+00 + vertex 7.692836e+01 1.707019e+02 -3.000000e+00 + vertex 7.650000e+01 1.704019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.692836e+01 1.707019e+02 -3.000000e+00 + vertex 7.596418e+01 1.718509e+02 -3.000000e+00 + vertex 7.650000e+01 1.704019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.596418e+01 1.718509e+02 -3.000000e+00 + vertex 7.575000e+01 1.717010e+02 -3.000000e+00 + vertex 7.650000e+01 1.704019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.692836e+01 1.707019e+02 0.000000e+00 + vertex -1.750000e+02 1.740000e+02 0.000000e+00 + vertex -7.650000e+01 1.704019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.204558e+01 1.724790e+02 0.000000e+00 + vertex -7.307164e+01 1.707019e+02 0.000000e+00 + vertex -7.350000e+01 1.704019e+02 0.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 8.191636e-01 0.000000e+00 + outer loop + vertex -7.307164e+01 1.707019e+02 0.000000e+00 + vertex -7.307164e+01 1.707019e+02 -3.000000e+00 + vertex -7.350000e+01 1.704019e+02 0.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 8.191636e-01 0.000000e+00 + outer loop + vertex 7.692836e+01 1.707019e+02 0.000000e+00 + vertex 7.692836e+01 1.707019e+02 -3.000000e+00 + vertex 7.650000e+01 1.704019e+02 0.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 7.071068e-01 -0.000000e+00 + outer loop + vertex -7.729813e+01 1.710716e+02 -3.000000e+00 + vertex -7.729813e+01 1.710716e+02 0.000000e+00 + vertex -7.692836e+01 1.707019e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex -7.729813e+01 1.710716e+02 0.000000e+00 + vertex -7.692836e+01 1.707019e+02 0.000000e+00 + vertex -7.692836e+01 1.707019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.575000e+01 1.717010e+02 -3.000000e+00 + vertex -7.596418e+01 1.718509e+02 -3.000000e+00 + vertex -7.692836e+01 1.707019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.596418e+01 1.718509e+02 -3.000000e+00 + vertex -7.729813e+01 1.710716e+02 -3.000000e+00 + vertex -7.692836e+01 1.707019e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex -7.307164e+01 1.707019e+02 0.000000e+00 + vertex -7.270186e+01 1.710716e+02 -3.000000e+00 + vertex -7.307164e+01 1.707019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.270186e+01 1.710716e+02 -3.000000e+00 + vertex -7.385093e+01 1.720358e+02 -3.000000e+00 + vertex -7.307164e+01 1.707019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.385093e+01 1.720358e+02 -3.000000e+00 + vertex -7.403582e+01 1.718509e+02 -3.000000e+00 + vertex -7.307164e+01 1.707019e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 7.071068e-01 -0.000000e+00 + outer loop + vertex 7.270186e+01 1.710716e+02 -3.000000e+00 + vertex 7.270186e+01 1.710716e+02 0.000000e+00 + vertex 7.307164e+01 1.707019e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex 7.270186e+01 1.710716e+02 0.000000e+00 + vertex 7.307164e+01 1.707019e+02 0.000000e+00 + vertex 7.307164e+01 1.707019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.425000e+01 1.717010e+02 -3.000000e+00 + vertex 7.403582e+01 1.718509e+02 -3.000000e+00 + vertex 7.307164e+01 1.707019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.403582e+01 1.718509e+02 -3.000000e+00 + vertex 7.270186e+01 1.710716e+02 -3.000000e+00 + vertex 7.307164e+01 1.707019e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex 7.692836e+01 1.707019e+02 0.000000e+00 + vertex 7.729813e+01 1.710716e+02 -3.000000e+00 + vertex 7.692836e+01 1.707019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.729813e+01 1.710716e+02 -3.000000e+00 + vertex 7.614907e+01 1.720358e+02 -3.000000e+00 + vertex 7.692836e+01 1.707019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.614907e+01 1.720358e+02 -3.000000e+00 + vertex 7.596418e+01 1.718509e+02 -3.000000e+00 + vertex 7.692836e+01 1.707019e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.729813e+01 1.710716e+02 0.000000e+00 + vertex -1.750000e+02 1.740000e+02 0.000000e+00 + vertex -7.692836e+01 1.707019e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.204558e+01 1.724790e+02 0.000000e+00 + vertex -7.270186e+01 1.710716e+02 0.000000e+00 + vertex -7.307164e+01 1.707019e+02 0.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex -7.270186e+01 1.710716e+02 0.000000e+00 + vertex -7.270186e+01 1.710716e+02 -3.000000e+00 + vertex -7.307164e+01 1.707019e+02 0.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex 7.729813e+01 1.710716e+02 0.000000e+00 + vertex 7.729813e+01 1.710716e+02 -3.000000e+00 + vertex 7.692836e+01 1.707019e+02 0.000000e+00 + endloop + endfacet + facet normal 8.191569e-01 5.735694e-01 -0.000000e+00 + outer loop + vertex -7.759807e+01 1.715000e+02 -3.000000e+00 + vertex -7.759807e+01 1.715000e+02 0.000000e+00 + vertex -7.729813e+01 1.710716e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191569e-01 5.735694e-01 0.000000e+00 + outer loop + vertex -7.759807e+01 1.715000e+02 0.000000e+00 + vertex -7.729813e+01 1.710716e+02 0.000000e+00 + vertex -7.729813e+01 1.710716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.596418e+01 1.718509e+02 -3.000000e+00 + vertex -7.614907e+01 1.720358e+02 -3.000000e+00 + vertex -7.729813e+01 1.710716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.614907e+01 1.720358e+02 -3.000000e+00 + vertex -7.759807e+01 1.715000e+02 -3.000000e+00 + vertex -7.729813e+01 1.710716e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191569e-01 5.735694e-01 0.000000e+00 + outer loop + vertex -7.270186e+01 1.710716e+02 0.000000e+00 + vertex -7.240193e+01 1.715000e+02 -3.000000e+00 + vertex -7.270186e+01 1.710716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.240193e+01 1.715000e+02 -3.000000e+00 + vertex -7.370096e+01 1.722500e+02 -3.000000e+00 + vertex -7.270186e+01 1.710716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.370096e+01 1.722500e+02 -3.000000e+00 + vertex -7.385093e+01 1.720358e+02 -3.000000e+00 + vertex -7.270186e+01 1.710716e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191569e-01 5.735694e-01 -0.000000e+00 + outer loop + vertex 7.240193e+01 1.715000e+02 -3.000000e+00 + vertex 7.240193e+01 1.715000e+02 0.000000e+00 + vertex 7.270186e+01 1.710716e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191569e-01 5.735694e-01 0.000000e+00 + outer loop + vertex 7.240193e+01 1.715000e+02 0.000000e+00 + vertex 7.270186e+01 1.710716e+02 0.000000e+00 + vertex 7.270186e+01 1.710716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.403582e+01 1.718509e+02 -3.000000e+00 + vertex 7.385093e+01 1.720358e+02 -3.000000e+00 + vertex 7.270186e+01 1.710716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.385093e+01 1.720358e+02 -3.000000e+00 + vertex 7.240193e+01 1.715000e+02 -3.000000e+00 + vertex 7.270186e+01 1.710716e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191569e-01 5.735694e-01 0.000000e+00 + outer loop + vertex 7.729813e+01 1.710716e+02 0.000000e+00 + vertex 7.759807e+01 1.715000e+02 -3.000000e+00 + vertex 7.729813e+01 1.710716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.759807e+01 1.715000e+02 -3.000000e+00 + vertex 7.629904e+01 1.722500e+02 -3.000000e+00 + vertex 7.729813e+01 1.710716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.629904e+01 1.722500e+02 -3.000000e+00 + vertex 7.614907e+01 1.720358e+02 -3.000000e+00 + vertex 7.729813e+01 1.710716e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.759807e+01 1.715000e+02 0.000000e+00 + vertex -1.750000e+02 1.740000e+02 0.000000e+00 + vertex -7.729813e+01 1.710716e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.204558e+01 1.724790e+02 0.000000e+00 + vertex -7.240193e+01 1.715000e+02 0.000000e+00 + vertex -7.270186e+01 1.710716e+02 0.000000e+00 + endloop + endfacet + facet normal -8.191569e-01 5.735694e-01 0.000000e+00 + outer loop + vertex -7.240193e+01 1.715000e+02 0.000000e+00 + vertex -7.240193e+01 1.715000e+02 -3.000000e+00 + vertex -7.270186e+01 1.710716e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.750000e+02 1.740000e+02 0.000000e+00 + vertex 7.759807e+01 1.715000e+02 0.000000e+00 + vertex 7.729813e+01 1.710716e+02 0.000000e+00 + endloop + endfacet + facet normal -8.191569e-01 5.735694e-01 0.000000e+00 + outer loop + vertex 7.759807e+01 1.715000e+02 0.000000e+00 + vertex 7.759807e+01 1.715000e+02 -3.000000e+00 + vertex 7.729813e+01 1.710716e+02 0.000000e+00 + endloop + endfacet + facet normal 8.713867e-02 9.961962e-01 -0.000000e+00 + outer loop + vertex -7.526048e+01 1.715228e+02 -6.000000e+00 + vertex -7.526048e+01 1.715228e+02 -3.000000e+00 + vertex -7.500000e+01 1.715000e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.713867e-02 9.961962e-01 0.000000e+00 + outer loop + vertex -7.526048e+01 1.715228e+02 -3.000000e+00 + vertex -7.500000e+01 1.715000e+02 -3.000000e+00 + vertex -7.500000e+01 1.715000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.713867e-02 9.961962e-01 0.000000e+00 + outer loop + vertex -7.500000e+01 1.715000e+02 -3.000000e+00 + vertex -7.473953e+01 1.715228e+02 -6.000000e+00 + vertex -7.500000e+01 1.715000e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.713867e-02 9.961962e-01 -0.000000e+00 + outer loop + vertex 7.473953e+01 1.715228e+02 -6.000000e+00 + vertex 7.473953e+01 1.715228e+02 -3.000000e+00 + vertex 7.500000e+01 1.715000e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.713867e-02 9.961962e-01 0.000000e+00 + outer loop + vertex 7.473953e+01 1.715228e+02 -3.000000e+00 + vertex 7.500000e+01 1.715000e+02 -3.000000e+00 + vertex 7.500000e+01 1.715000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.713867e-02 9.961962e-01 0.000000e+00 + outer loop + vertex 7.500000e+01 1.715000e+02 -3.000000e+00 + vertex 7.526048e+01 1.715228e+02 -6.000000e+00 + vertex 7.500000e+01 1.715000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.526048e+01 1.715228e+02 -6.000000e+00 + vertex 1.740000e+02 1.750000e+02 -6.000000e+00 + vertex 7.500000e+01 1.715000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063065e-01 4.226210e-01 -0.000000e+00 + outer loop + vertex -7.781908e+01 1.719739e+02 -3.000000e+00 + vertex -7.781908e+01 1.719739e+02 0.000000e+00 + vertex -7.759807e+01 1.715000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063065e-01 4.226210e-01 0.000000e+00 + outer loop + vertex -7.781908e+01 1.719739e+02 0.000000e+00 + vertex -7.759807e+01 1.715000e+02 0.000000e+00 + vertex -7.759807e+01 1.715000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.614907e+01 1.720358e+02 -3.000000e+00 + vertex -7.629904e+01 1.722500e+02 -3.000000e+00 + vertex -7.759807e+01 1.715000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.629904e+01 1.722500e+02 -3.000000e+00 + vertex -7.781908e+01 1.719739e+02 -3.000000e+00 + vertex -7.759807e+01 1.715000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.713867e-02 9.961962e-01 0.000000e+00 + outer loop + vertex -7.473953e+01 1.715228e+02 -3.000000e+00 + vertex -7.473953e+01 1.715228e+02 -6.000000e+00 + vertex -7.500000e+01 1.715000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063065e-01 4.226210e-01 0.000000e+00 + outer loop + vertex -7.240193e+01 1.715000e+02 0.000000e+00 + vertex -7.218092e+01 1.719739e+02 -3.000000e+00 + vertex -7.240193e+01 1.715000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.218092e+01 1.719739e+02 -3.000000e+00 + vertex -7.359046e+01 1.724870e+02 -3.000000e+00 + vertex -7.240193e+01 1.715000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.359046e+01 1.724870e+02 -3.000000e+00 + vertex -7.370096e+01 1.722500e+02 -3.000000e+00 + vertex -7.240193e+01 1.715000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063065e-01 4.226210e-01 -0.000000e+00 + outer loop + vertex 7.218092e+01 1.719739e+02 -3.000000e+00 + vertex 7.218092e+01 1.719739e+02 0.000000e+00 + vertex 7.240193e+01 1.715000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063065e-01 4.226210e-01 0.000000e+00 + outer loop + vertex 7.218092e+01 1.719739e+02 0.000000e+00 + vertex 7.240193e+01 1.715000e+02 0.000000e+00 + vertex 7.240193e+01 1.715000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.385093e+01 1.720358e+02 -3.000000e+00 + vertex 7.370096e+01 1.722500e+02 -3.000000e+00 + vertex 7.240193e+01 1.715000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.370096e+01 1.722500e+02 -3.000000e+00 + vertex 7.218092e+01 1.719739e+02 -3.000000e+00 + vertex 7.240193e+01 1.715000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.713867e-02 9.961962e-01 0.000000e+00 + outer loop + vertex 7.526048e+01 1.715228e+02 -3.000000e+00 + vertex 7.526048e+01 1.715228e+02 -6.000000e+00 + vertex 7.500000e+01 1.715000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063065e-01 4.226210e-01 0.000000e+00 + outer loop + vertex 7.759807e+01 1.715000e+02 0.000000e+00 + vertex 7.781908e+01 1.719739e+02 -3.000000e+00 + vertex 7.759807e+01 1.715000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.781908e+01 1.719739e+02 -3.000000e+00 + vertex 7.640954e+01 1.724870e+02 -3.000000e+00 + vertex 7.759807e+01 1.715000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.640954e+01 1.724870e+02 -3.000000e+00 + vertex 7.629904e+01 1.722500e+02 -3.000000e+00 + vertex 7.759807e+01 1.715000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.781908e+01 1.719739e+02 0.000000e+00 + vertex -1.750000e+02 1.740000e+02 0.000000e+00 + vertex -7.759807e+01 1.715000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.204558e+01 1.724790e+02 0.000000e+00 + vertex -7.218092e+01 1.719739e+02 0.000000e+00 + vertex -7.240193e+01 1.715000e+02 0.000000e+00 + endloop + endfacet + facet normal -9.063065e-01 4.226210e-01 0.000000e+00 + outer loop + vertex -7.218092e+01 1.719739e+02 0.000000e+00 + vertex -7.218092e+01 1.719739e+02 -3.000000e+00 + vertex -7.240193e+01 1.715000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.750000e+02 1.740000e+02 0.000000e+00 + vertex 7.781908e+01 1.719739e+02 0.000000e+00 + vertex 7.759807e+01 1.715000e+02 0.000000e+00 + endloop + endfacet + facet normal -9.063065e-01 4.226210e-01 0.000000e+00 + outer loop + vertex 7.781908e+01 1.719739e+02 0.000000e+00 + vertex 7.781908e+01 1.719739e+02 -3.000000e+00 + vertex 7.759807e+01 1.715000e+02 0.000000e+00 + endloop + endfacet + facet normal 2.588543e-01 9.659164e-01 -0.000000e+00 + outer loop + vertex -7.551303e+01 1.715905e+02 -6.000000e+00 + vertex -7.551303e+01 1.715905e+02 -3.000000e+00 + vertex -7.526048e+01 1.715228e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588543e-01 9.659164e-01 0.000000e+00 + outer loop + vertex -7.551303e+01 1.715905e+02 -3.000000e+00 + vertex -7.526048e+01 1.715228e+02 -3.000000e+00 + vertex -7.526048e+01 1.715228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.448697e+01 1.715905e+02 -6.000000e+00 + vertex 7.370096e+01 1.722500e+02 -6.000000e+00 + vertex -7.473953e+01 1.715228e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588472e-01 9.659183e-01 0.000000e+00 + outer loop + vertex -7.473953e+01 1.715228e+02 -3.000000e+00 + vertex -7.448697e+01 1.715905e+02 -6.000000e+00 + vertex -7.473953e+01 1.715228e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588472e-01 9.659183e-01 -0.000000e+00 + outer loop + vertex 7.448697e+01 1.715905e+02 -6.000000e+00 + vertex 7.448697e+01 1.715905e+02 -3.000000e+00 + vertex 7.473953e+01 1.715228e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588472e-01 9.659183e-01 0.000000e+00 + outer loop + vertex 7.448697e+01 1.715905e+02 -3.000000e+00 + vertex 7.473953e+01 1.715228e+02 -3.000000e+00 + vertex 7.473953e+01 1.715228e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588543e-01 9.659164e-01 0.000000e+00 + outer loop + vertex 7.526048e+01 1.715228e+02 -3.000000e+00 + vertex 7.551303e+01 1.715905e+02 -6.000000e+00 + vertex 7.526048e+01 1.715228e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.551303e+01 1.715905e+02 -6.000000e+00 + vertex 1.740000e+02 1.750000e+02 -6.000000e+00 + vertex 7.526048e+01 1.715228e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588472e-01 9.659183e-01 0.000000e+00 + outer loop + vertex -7.448697e+01 1.715905e+02 -3.000000e+00 + vertex -7.448697e+01 1.715905e+02 -6.000000e+00 + vertex -7.473953e+01 1.715228e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588543e-01 9.659164e-01 0.000000e+00 + outer loop + vertex 7.551303e+01 1.715905e+02 -3.000000e+00 + vertex 7.551303e+01 1.715905e+02 -6.000000e+00 + vertex 7.526048e+01 1.715228e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 9.063010e-01 -0.000000e+00 + outer loop + vertex -7.575000e+01 1.717010e+02 -6.000000e+00 + vertex -7.575000e+01 1.717010e+02 -3.000000e+00 + vertex -7.551303e+01 1.715905e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex -7.575000e+01 1.717010e+02 -3.000000e+00 + vertex -7.551303e+01 1.715905e+02 -3.000000e+00 + vertex -7.551303e+01 1.715905e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.425000e+01 1.717010e+02 -6.000000e+00 + vertex 7.370096e+01 1.722500e+02 -6.000000e+00 + vertex -7.448697e+01 1.715905e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex -7.448697e+01 1.715905e+02 -3.000000e+00 + vertex -7.425000e+01 1.717010e+02 -6.000000e+00 + vertex -7.448697e+01 1.715905e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 9.063010e-01 -0.000000e+00 + outer loop + vertex 7.425000e+01 1.717010e+02 -6.000000e+00 + vertex 7.425000e+01 1.717010e+02 -3.000000e+00 + vertex 7.448697e+01 1.715905e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex 7.425000e+01 1.717010e+02 -3.000000e+00 + vertex 7.448697e+01 1.715905e+02 -3.000000e+00 + vertex 7.448697e+01 1.715905e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex 7.551303e+01 1.715905e+02 -3.000000e+00 + vertex 7.575000e+01 1.717010e+02 -6.000000e+00 + vertex 7.551303e+01 1.715905e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.575000e+01 1.717010e+02 -6.000000e+00 + vertex 1.740000e+02 1.750000e+02 -6.000000e+00 + vertex 7.551303e+01 1.715905e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex -7.425000e+01 1.717010e+02 -3.000000e+00 + vertex -7.425000e+01 1.717010e+02 -6.000000e+00 + vertex -7.448697e+01 1.715905e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex 7.575000e+01 1.717010e+02 -3.000000e+00 + vertex 7.575000e+01 1.717010e+02 -6.000000e+00 + vertex 7.551303e+01 1.715905e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 8.191636e-01 -0.000000e+00 + outer loop + vertex -7.596418e+01 1.718509e+02 -6.000000e+00 + vertex -7.596418e+01 1.718509e+02 -3.000000e+00 + vertex -7.575000e+01 1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 8.191636e-01 0.000000e+00 + outer loop + vertex -7.596418e+01 1.718509e+02 -3.000000e+00 + vertex -7.575000e+01 1.717010e+02 -3.000000e+00 + vertex -7.575000e+01 1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.403582e+01 1.718509e+02 -6.000000e+00 + vertex 7.370096e+01 1.722500e+02 -6.000000e+00 + vertex -7.425000e+01 1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 8.191636e-01 0.000000e+00 + outer loop + vertex -7.425000e+01 1.717010e+02 -3.000000e+00 + vertex -7.403582e+01 1.718509e+02 -6.000000e+00 + vertex -7.425000e+01 1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 8.191636e-01 -0.000000e+00 + outer loop + vertex 7.403582e+01 1.718509e+02 -6.000000e+00 + vertex 7.403582e+01 1.718509e+02 -3.000000e+00 + vertex 7.425000e+01 1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735599e-01 8.191636e-01 0.000000e+00 + outer loop + vertex 7.403582e+01 1.718509e+02 -3.000000e+00 + vertex 7.425000e+01 1.717010e+02 -3.000000e+00 + vertex 7.425000e+01 1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 8.191636e-01 0.000000e+00 + outer loop + vertex 7.575000e+01 1.717010e+02 -3.000000e+00 + vertex 7.596418e+01 1.718509e+02 -6.000000e+00 + vertex 7.575000e+01 1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.596418e+01 1.718509e+02 -6.000000e+00 + vertex 1.740000e+02 1.750000e+02 -6.000000e+00 + vertex 7.575000e+01 1.717010e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 8.191636e-01 0.000000e+00 + outer loop + vertex -7.403582e+01 1.718509e+02 -3.000000e+00 + vertex -7.403582e+01 1.718509e+02 -6.000000e+00 + vertex -7.425000e+01 1.717010e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735599e-01 8.191636e-01 0.000000e+00 + outer loop + vertex 7.596418e+01 1.718509e+02 -3.000000e+00 + vertex 7.596418e+01 1.718509e+02 -6.000000e+00 + vertex 7.575000e+01 1.717010e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.070925e-01 7.071210e-01 -0.000000e+00 + outer loop + vertex -7.614907e+01 1.720358e+02 -6.000000e+00 + vertex -7.614907e+01 1.720358e+02 -3.000000e+00 + vertex -7.596418e+01 1.718509e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.070925e-01 7.071210e-01 0.000000e+00 + outer loop + vertex -7.614907e+01 1.720358e+02 -3.000000e+00 + vertex -7.596418e+01 1.718509e+02 -3.000000e+00 + vertex -7.596418e+01 1.718509e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.385093e+01 1.720358e+02 -6.000000e+00 + vertex 7.370096e+01 1.722500e+02 -6.000000e+00 + vertex -7.403582e+01 1.718509e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.070925e-01 7.071210e-01 0.000000e+00 + outer loop + vertex -7.403582e+01 1.718509e+02 -3.000000e+00 + vertex -7.385093e+01 1.720358e+02 -6.000000e+00 + vertex -7.403582e+01 1.718509e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.070925e-01 7.071210e-01 -0.000000e+00 + outer loop + vertex 7.385093e+01 1.720358e+02 -6.000000e+00 + vertex 7.385093e+01 1.720358e+02 -3.000000e+00 + vertex 7.403582e+01 1.718509e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.070925e-01 7.071210e-01 0.000000e+00 + outer loop + vertex 7.385093e+01 1.720358e+02 -3.000000e+00 + vertex 7.403582e+01 1.718509e+02 -3.000000e+00 + vertex 7.403582e+01 1.718509e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.070925e-01 7.071210e-01 0.000000e+00 + outer loop + vertex 7.596418e+01 1.718509e+02 -3.000000e+00 + vertex 7.614907e+01 1.720358e+02 -6.000000e+00 + vertex 7.596418e+01 1.718509e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.614907e+01 1.720358e+02 -6.000000e+00 + vertex 1.740000e+02 1.750000e+02 -6.000000e+00 + vertex 7.596418e+01 1.718509e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.070925e-01 7.071210e-01 0.000000e+00 + outer loop + vertex -7.385093e+01 1.720358e+02 -3.000000e+00 + vertex -7.385093e+01 1.720358e+02 -6.000000e+00 + vertex -7.403582e+01 1.718509e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.070925e-01 7.071210e-01 0.000000e+00 + outer loop + vertex 7.614907e+01 1.720358e+02 -3.000000e+00 + vertex 7.614907e+01 1.720358e+02 -6.000000e+00 + vertex 7.596418e+01 1.718509e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659235e-01 2.588277e-01 -0.000000e+00 + outer loop + vertex -7.795443e+01 1.724790e+02 -3.000000e+00 + vertex -7.795443e+01 1.724790e+02 0.000000e+00 + vertex -7.781908e+01 1.719739e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659235e-01 2.588277e-01 0.000000e+00 + outer loop + vertex -7.795443e+01 1.724790e+02 0.000000e+00 + vertex -7.781908e+01 1.719739e+02 0.000000e+00 + vertex -7.781908e+01 1.719739e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.629904e+01 1.722500e+02 -3.000000e+00 + vertex -7.640954e+01 1.724870e+02 -3.000000e+00 + vertex -7.781908e+01 1.719739e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.640954e+01 1.724870e+02 -3.000000e+00 + vertex -7.795443e+01 1.724790e+02 -3.000000e+00 + vertex -7.781908e+01 1.719739e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex -7.218092e+01 1.719739e+02 0.000000e+00 + vertex -7.204558e+01 1.724790e+02 -3.000000e+00 + vertex -7.218092e+01 1.719739e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.204558e+01 1.724790e+02 -3.000000e+00 + vertex -7.352279e+01 1.727395e+02 -3.000000e+00 + vertex -7.218092e+01 1.719739e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.352279e+01 1.727395e+02 -3.000000e+00 + vertex -7.359046e+01 1.724870e+02 -3.000000e+00 + vertex -7.218092e+01 1.719739e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 2.588144e-01 -0.000000e+00 + outer loop + vertex 7.204558e+01 1.724790e+02 -3.000000e+00 + vertex 7.204558e+01 1.724790e+02 0.000000e+00 + vertex 7.218092e+01 1.719739e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex 7.204558e+01 1.724790e+02 0.000000e+00 + vertex 7.218092e+01 1.719739e+02 0.000000e+00 + vertex 7.218092e+01 1.719739e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.370096e+01 1.722500e+02 -3.000000e+00 + vertex 7.359046e+01 1.724870e+02 -3.000000e+00 + vertex 7.218092e+01 1.719739e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.359046e+01 1.724870e+02 -3.000000e+00 + vertex 7.204558e+01 1.724790e+02 -3.000000e+00 + vertex 7.218092e+01 1.719739e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659235e-01 2.588277e-01 0.000000e+00 + outer loop + vertex 7.781908e+01 1.719739e+02 0.000000e+00 + vertex 7.795443e+01 1.724790e+02 -3.000000e+00 + vertex 7.781908e+01 1.719739e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.795443e+01 1.724790e+02 -3.000000e+00 + vertex 7.647721e+01 1.727395e+02 -3.000000e+00 + vertex 7.781908e+01 1.719739e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.647721e+01 1.727395e+02 -3.000000e+00 + vertex 7.640954e+01 1.724870e+02 -3.000000e+00 + vertex 7.781908e+01 1.719739e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.795443e+01 1.724790e+02 0.000000e+00 + vertex -1.750000e+02 1.740000e+02 0.000000e+00 + vertex -7.781908e+01 1.719739e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.204558e+01 1.724790e+02 0.000000e+00 + vertex -7.204558e+01 1.724790e+02 0.000000e+00 + vertex -7.218092e+01 1.719739e+02 0.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex -7.204558e+01 1.724790e+02 0.000000e+00 + vertex -7.204558e+01 1.724790e+02 -3.000000e+00 + vertex -7.218092e+01 1.719739e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.750000e+02 1.740000e+02 0.000000e+00 + vertex 7.795443e+01 1.724790e+02 0.000000e+00 + vertex 7.781908e+01 1.719739e+02 0.000000e+00 + endloop + endfacet + facet normal -9.659235e-01 2.588277e-01 0.000000e+00 + outer loop + vertex 7.795443e+01 1.724790e+02 0.000000e+00 + vertex 7.795443e+01 1.724790e+02 -3.000000e+00 + vertex 7.781908e+01 1.719739e+02 0.000000e+00 + endloop + endfacet + facet normal 8.191596e-01 5.735656e-01 -0.000000e+00 + outer loop + vertex -7.629904e+01 1.722500e+02 -6.000000e+00 + vertex -7.629904e+01 1.722500e+02 -3.000000e+00 + vertex -7.614907e+01 1.720358e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191596e-01 5.735656e-01 0.000000e+00 + outer loop + vertex -7.629904e+01 1.722500e+02 -3.000000e+00 + vertex -7.614907e+01 1.720358e+02 -3.000000e+00 + vertex -7.614907e+01 1.720358e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.370096e+01 1.722500e+02 -6.000000e+00 + vertex 7.370096e+01 1.722500e+02 -6.000000e+00 + vertex -7.385093e+01 1.720358e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191730e-01 5.735465e-01 0.000000e+00 + outer loop + vertex -7.385093e+01 1.720358e+02 -3.000000e+00 + vertex -7.370096e+01 1.722500e+02 -6.000000e+00 + vertex -7.385093e+01 1.720358e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191730e-01 5.735465e-01 -0.000000e+00 + outer loop + vertex 7.370096e+01 1.722500e+02 -6.000000e+00 + vertex 7.370096e+01 1.722500e+02 -3.000000e+00 + vertex 7.385093e+01 1.720358e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191730e-01 5.735465e-01 0.000000e+00 + outer loop + vertex 7.370096e+01 1.722500e+02 -3.000000e+00 + vertex 7.385093e+01 1.720358e+02 -3.000000e+00 + vertex 7.385093e+01 1.720358e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191596e-01 5.735656e-01 0.000000e+00 + outer loop + vertex 7.614907e+01 1.720358e+02 -3.000000e+00 + vertex 7.629904e+01 1.722500e+02 -6.000000e+00 + vertex 7.614907e+01 1.720358e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.629904e+01 1.722500e+02 -6.000000e+00 + vertex 1.740000e+02 1.750000e+02 -6.000000e+00 + vertex 7.614907e+01 1.720358e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191730e-01 5.735465e-01 0.000000e+00 + outer loop + vertex -7.370096e+01 1.722500e+02 -3.000000e+00 + vertex -7.370096e+01 1.722500e+02 -6.000000e+00 + vertex -7.385093e+01 1.720358e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191596e-01 5.735656e-01 0.000000e+00 + outer loop + vertex 7.629904e+01 1.722500e+02 -3.000000e+00 + vertex 7.629904e+01 1.722500e+02 -6.000000e+00 + vertex 7.614907e+01 1.720358e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.750000e+02 1.740000e+02 -6.000000e+00 + vertex -7.640954e+01 1.724870e+02 -6.000000e+00 + vertex -7.629904e+01 1.722500e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063119e-01 4.226093e-01 -0.000000e+00 + outer loop + vertex -7.640954e+01 1.724870e+02 -6.000000e+00 + vertex -7.640954e+01 1.724870e+02 -3.000000e+00 + vertex -7.629904e+01 1.722500e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063119e-01 4.226093e-01 0.000000e+00 + outer loop + vertex -7.640954e+01 1.724870e+02 -3.000000e+00 + vertex -7.629904e+01 1.722500e+02 -3.000000e+00 + vertex -7.629904e+01 1.722500e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.359046e+01 1.724870e+02 -6.000000e+00 + vertex 7.370096e+01 1.722500e+02 -6.000000e+00 + vertex -7.370096e+01 1.722500e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex -7.370096e+01 1.722500e+02 -3.000000e+00 + vertex -7.359046e+01 1.724870e+02 -6.000000e+00 + vertex -7.370096e+01 1.722500e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 4.226327e-01 -0.000000e+00 + outer loop + vertex 7.359046e+01 1.724870e+02 -6.000000e+00 + vertex 7.359046e+01 1.724870e+02 -3.000000e+00 + vertex 7.370096e+01 1.722500e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex 7.359046e+01 1.724870e+02 -3.000000e+00 + vertex 7.370096e+01 1.722500e+02 -3.000000e+00 + vertex 7.370096e+01 1.722500e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.352279e+01 1.727395e+02 -6.000000e+00 + vertex 7.359046e+01 1.724870e+02 -6.000000e+00 + vertex 7.370096e+01 1.722500e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.359046e+01 1.724870e+02 -6.000000e+00 + vertex -7.352279e+01 1.727395e+02 -6.000000e+00 + vertex 7.370096e+01 1.722500e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063119e-01 4.226093e-01 0.000000e+00 + outer loop + vertex 7.629904e+01 1.722500e+02 -3.000000e+00 + vertex 7.640954e+01 1.724870e+02 -6.000000e+00 + vertex 7.629904e+01 1.722500e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.640954e+01 1.724870e+02 -6.000000e+00 + vertex 1.740000e+02 1.750000e+02 -6.000000e+00 + vertex 7.629904e+01 1.722500e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex -7.359046e+01 1.724870e+02 -3.000000e+00 + vertex -7.359046e+01 1.724870e+02 -6.000000e+00 + vertex -7.370096e+01 1.722500e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063119e-01 4.226093e-01 0.000000e+00 + outer loop + vertex 7.640954e+01 1.724870e+02 -3.000000e+00 + vertex 7.640954e+01 1.724870e+02 -6.000000e+00 + vertex 7.629904e+01 1.722500e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961950e-01 8.715281e-02 -0.000000e+00 + outer loop + vertex -7.800000e+01 1.730000e+02 -3.000000e+00 + vertex -7.800000e+01 1.730000e+02 0.000000e+00 + vertex -7.795443e+01 1.724790e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961950e-01 8.715281e-02 0.000000e+00 + outer loop + vertex -7.800000e+01 1.730000e+02 0.000000e+00 + vertex -7.795443e+01 1.724790e+02 0.000000e+00 + vertex -7.795443e+01 1.724790e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.640954e+01 1.724870e+02 -3.000000e+00 + vertex -7.647721e+01 1.727395e+02 -3.000000e+00 + vertex -7.795443e+01 1.724790e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.647721e+01 1.727395e+02 -3.000000e+00 + vertex -7.800000e+01 1.730000e+02 -3.000000e+00 + vertex -7.795443e+01 1.724790e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961937e-01 8.716695e-02 0.000000e+00 + outer loop + vertex -7.204558e+01 1.724790e+02 0.000000e+00 + vertex -7.200000e+01 1.730000e+02 -3.000000e+00 + vertex -7.204558e+01 1.724790e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 1.730000e+02 -3.000000e+00 + vertex -7.350000e+01 1.730000e+02 -3.000000e+00 + vertex -7.204558e+01 1.724790e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.350000e+01 1.730000e+02 -3.000000e+00 + vertex -7.352279e+01 1.727395e+02 -3.000000e+00 + vertex -7.204558e+01 1.724790e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961937e-01 8.716695e-02 -0.000000e+00 + outer loop + vertex 7.200000e+01 1.730000e+02 -3.000000e+00 + vertex 7.200000e+01 1.730000e+02 0.000000e+00 + vertex 7.204558e+01 1.724790e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961937e-01 8.716695e-02 0.000000e+00 + outer loop + vertex 7.200000e+01 1.730000e+02 0.000000e+00 + vertex 7.204558e+01 1.724790e+02 0.000000e+00 + vertex 7.204558e+01 1.724790e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.359046e+01 1.724870e+02 -3.000000e+00 + vertex 7.352279e+01 1.727395e+02 -3.000000e+00 + vertex 7.204558e+01 1.724790e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.352279e+01 1.727395e+02 -3.000000e+00 + vertex 7.200000e+01 1.730000e+02 -3.000000e+00 + vertex 7.204558e+01 1.724790e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961950e-01 8.715281e-02 0.000000e+00 + outer loop + vertex 7.795443e+01 1.724790e+02 0.000000e+00 + vertex 7.800000e+01 1.730000e+02 -3.000000e+00 + vertex 7.795443e+01 1.724790e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.800000e+01 1.730000e+02 -3.000000e+00 + vertex 7.650000e+01 1.730000e+02 -3.000000e+00 + vertex 7.795443e+01 1.724790e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.650000e+01 1.730000e+02 -3.000000e+00 + vertex 7.647721e+01 1.727395e+02 -3.000000e+00 + vertex 7.795443e+01 1.724790e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.800000e+01 1.730000e+02 0.000000e+00 + vertex -1.750000e+02 1.740000e+02 0.000000e+00 + vertex -7.795443e+01 1.724790e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.204558e+01 1.724790e+02 0.000000e+00 + vertex -7.200000e+01 1.730000e+02 0.000000e+00 + vertex -7.204558e+01 1.724790e+02 0.000000e+00 + endloop + endfacet + facet normal -9.961937e-01 8.716695e-02 0.000000e+00 + outer loop + vertex -7.200000e+01 1.730000e+02 0.000000e+00 + vertex -7.200000e+01 1.730000e+02 -3.000000e+00 + vertex -7.204558e+01 1.724790e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.200000e+01 1.730000e+02 0.000000e+00 + vertex -7.200000e+01 1.730000e+02 0.000000e+00 + vertex 7.204558e+01 1.724790e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.750000e+02 1.740000e+02 0.000000e+00 + vertex 7.800000e+01 1.730000e+02 0.000000e+00 + vertex 7.795443e+01 1.724790e+02 0.000000e+00 + endloop + endfacet + facet normal -9.961950e-01 8.715281e-02 0.000000e+00 + outer loop + vertex 7.800000e+01 1.730000e+02 0.000000e+00 + vertex 7.800000e+01 1.730000e+02 -3.000000e+00 + vertex 7.795443e+01 1.724790e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.750000e+02 1.740000e+02 -6.000000e+00 + vertex -7.647721e+01 1.727395e+02 -6.000000e+00 + vertex -7.640954e+01 1.724870e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659216e-01 2.588348e-01 -0.000000e+00 + outer loop + vertex -7.647721e+01 1.727395e+02 -6.000000e+00 + vertex -7.647721e+01 1.727395e+02 -3.000000e+00 + vertex -7.640954e+01 1.724870e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659216e-01 2.588348e-01 0.000000e+00 + outer loop + vertex -7.647721e+01 1.727395e+02 -3.000000e+00 + vertex -7.640954e+01 1.724870e+02 -3.000000e+00 + vertex -7.640954e+01 1.724870e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659287e-01 2.588083e-01 0.000000e+00 + outer loop + vertex -7.359046e+01 1.724870e+02 -3.000000e+00 + vertex -7.352279e+01 1.727395e+02 -6.000000e+00 + vertex -7.359046e+01 1.724870e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659287e-01 2.588083e-01 -0.000000e+00 + outer loop + vertex 7.352279e+01 1.727395e+02 -6.000000e+00 + vertex 7.352279e+01 1.727395e+02 -3.000000e+00 + vertex 7.359046e+01 1.724870e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659287e-01 2.588083e-01 0.000000e+00 + outer loop + vertex 7.352279e+01 1.727395e+02 -3.000000e+00 + vertex 7.359046e+01 1.724870e+02 -3.000000e+00 + vertex 7.359046e+01 1.724870e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.352279e+01 1.727395e+02 -6.000000e+00 + vertex 7.352279e+01 1.727395e+02 -6.000000e+00 + vertex 7.359046e+01 1.724870e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659216e-01 2.588348e-01 0.000000e+00 + outer loop + vertex 7.640954e+01 1.724870e+02 -3.000000e+00 + vertex 7.647721e+01 1.727395e+02 -6.000000e+00 + vertex 7.640954e+01 1.724870e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.750000e+01 1.750000e+02 -6.000000e+00 + vertex 1.740000e+02 1.750000e+02 -6.000000e+00 + vertex 7.640954e+01 1.724870e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.647721e+01 1.727395e+02 -6.000000e+00 + vertex 7.715798e+01 1.749397e+02 -6.000000e+00 + vertex 7.640954e+01 1.724870e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.715798e+01 1.749397e+02 -6.000000e+00 + vertex 7.732635e+01 1.749848e+02 -6.000000e+00 + vertex 7.640954e+01 1.724870e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.732635e+01 1.749848e+02 -6.000000e+00 + vertex 7.750000e+01 1.750000e+02 -6.000000e+00 + vertex 7.640954e+01 1.724870e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659287e-01 2.588083e-01 0.000000e+00 + outer loop + vertex -7.352279e+01 1.727395e+02 -3.000000e+00 + vertex -7.352279e+01 1.727395e+02 -6.000000e+00 + vertex -7.359046e+01 1.724870e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659216e-01 2.588348e-01 0.000000e+00 + outer loop + vertex 7.647721e+01 1.727395e+02 -3.000000e+00 + vertex 7.647721e+01 1.727395e+02 -6.000000e+00 + vertex 7.640954e+01 1.724870e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.750000e+02 1.740000e+02 -6.000000e+00 + vertex -7.650000e+01 1.730000e+02 -6.000000e+00 + vertex -7.647721e+01 1.727395e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961962e-01 8.713867e-02 -0.000000e+00 + outer loop + vertex -7.650000e+01 1.730000e+02 -6.000000e+00 + vertex -7.650000e+01 1.730000e+02 -3.000000e+00 + vertex -7.647721e+01 1.727395e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961962e-01 8.713867e-02 0.000000e+00 + outer loop + vertex -7.650000e+01 1.730000e+02 -3.000000e+00 + vertex -7.647721e+01 1.727395e+02 -3.000000e+00 + vertex -7.647721e+01 1.727395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.350000e+01 1.730000e+02 -6.000000e+00 + vertex 7.350000e+01 1.730000e+02 -6.000000e+00 + vertex -7.352279e+01 1.727395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.350000e+01 1.730000e+02 -6.000000e+00 + vertex 7.352279e+01 1.727395e+02 -6.000000e+00 + vertex -7.352279e+01 1.727395e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961937e-01 8.716695e-02 0.000000e+00 + outer loop + vertex -7.352279e+01 1.727395e+02 -3.000000e+00 + vertex -7.350000e+01 1.730000e+02 -6.000000e+00 + vertex -7.352279e+01 1.727395e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961937e-01 8.716695e-02 -0.000000e+00 + outer loop + vertex 7.350000e+01 1.730000e+02 -6.000000e+00 + vertex 7.350000e+01 1.730000e+02 -3.000000e+00 + vertex 7.352279e+01 1.727395e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961937e-01 8.716695e-02 0.000000e+00 + outer loop + vertex 7.350000e+01 1.730000e+02 -3.000000e+00 + vertex 7.352279e+01 1.727395e+02 -3.000000e+00 + vertex 7.352279e+01 1.727395e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961962e-01 8.713867e-02 0.000000e+00 + outer loop + vertex 7.647721e+01 1.727395e+02 -3.000000e+00 + vertex 7.650000e+01 1.730000e+02 -6.000000e+00 + vertex 7.647721e+01 1.727395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.673395e+01 1.746428e+02 -6.000000e+00 + vertex 7.685721e+01 1.747660e+02 -6.000000e+00 + vertex 7.647721e+01 1.727395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.650000e+01 1.730000e+02 -6.000000e+00 + vertex 7.673395e+01 1.746428e+02 -6.000000e+00 + vertex 7.647721e+01 1.727395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.685721e+01 1.747660e+02 -6.000000e+00 + vertex 7.700000e+01 1.748660e+02 -6.000000e+00 + vertex 7.647721e+01 1.727395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.700000e+01 1.748660e+02 -6.000000e+00 + vertex 7.715798e+01 1.749397e+02 -6.000000e+00 + vertex 7.647721e+01 1.727395e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 1.730000e+02 -3.000000e+00 + vertex -7.800000e+01 1.730000e+02 -3.000000e+00 + vertex -7.647721e+01 1.727395e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961937e-01 8.716695e-02 0.000000e+00 + outer loop + vertex -7.350000e+01 1.730000e+02 -3.000000e+00 + vertex -7.350000e+01 1.730000e+02 -6.000000e+00 + vertex -7.352279e+01 1.727395e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 1.730000e+02 -3.000000e+00 + vertex 7.200000e+01 1.730000e+02 -3.000000e+00 + vertex 7.352279e+01 1.727395e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961962e-01 8.713867e-02 0.000000e+00 + outer loop + vertex 7.650000e+01 1.730000e+02 -3.000000e+00 + vertex 7.650000e+01 1.730000e+02 -6.000000e+00 + vertex 7.647721e+01 1.727395e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.750000e+02 1.740000e+02 -6.000000e+00 + vertex -7.650000e+01 1.740000e+02 -6.000000e+00 + vertex -7.650000e+01 1.730000e+02 -6.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex -7.650000e+01 1.740000e+02 -6.000000e+00 + vertex -7.650000e+01 1.730000e+02 -3.000000e+00 + vertex -7.650000e+01 1.730000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.350000e+01 1.740000e+02 -6.000000e+00 + vertex -7.348481e+01 1.741737e+02 -6.000000e+00 + vertex -7.350000e+01 1.730000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.348481e+01 1.741737e+02 -6.000000e+00 + vertex -7.343969e+01 1.743420e+02 -6.000000e+00 + vertex -7.350000e+01 1.730000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.343969e+01 1.743420e+02 -6.000000e+00 + vertex -7.336602e+01 1.745000e+02 -6.000000e+00 + vertex -7.350000e+01 1.730000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.336602e+01 1.745000e+02 -6.000000e+00 + vertex -7.326604e+01 1.746428e+02 -6.000000e+00 + vertex -7.350000e+01 1.730000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.326604e+01 1.746428e+02 -6.000000e+00 + vertex -7.314279e+01 1.747660e+02 -6.000000e+00 + vertex -7.350000e+01 1.730000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.314279e+01 1.747660e+02 -6.000000e+00 + vertex -7.300000e+01 1.748660e+02 -6.000000e+00 + vertex -7.350000e+01 1.730000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.300000e+01 1.748660e+02 -6.000000e+00 + vertex -7.284202e+01 1.749397e+02 -6.000000e+00 + vertex -7.350000e+01 1.730000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.250000e+01 1.750000e+02 -6.000000e+00 + vertex 7.350000e+01 1.730000e+02 -6.000000e+00 + vertex -7.350000e+01 1.730000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.267365e+01 1.749848e+02 -6.000000e+00 + vertex -7.250000e+01 1.750000e+02 -6.000000e+00 + vertex -7.350000e+01 1.730000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -7.284202e+01 1.749397e+02 -6.000000e+00 + vertex -7.267365e+01 1.749848e+02 -6.000000e+00 + vertex -7.350000e+01 1.730000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex -7.350000e+01 1.740000e+02 -3.000000e+00 + vertex -7.350000e+01 1.740000e+02 -6.000000e+00 + vertex -7.350000e+01 1.730000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex -7.350000e+01 1.730000e+02 -3.000000e+00 + vertex -7.350000e+01 1.740000e+02 -3.000000e+00 + vertex -7.350000e+01 1.730000e+02 -6.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex 7.350000e+01 1.740000e+02 -6.000000e+00 + vertex 7.350000e+01 1.730000e+02 -3.000000e+00 + vertex 7.350000e+01 1.730000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.250000e+01 1.750000e+02 -6.000000e+00 + vertex 7.250000e+01 1.750000e+02 -6.000000e+00 + vertex 7.350000e+01 1.730000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.250000e+01 1.750000e+02 -6.000000e+00 + vertex 7.350000e+01 1.740000e+02 -6.000000e+00 + vertex 7.350000e+01 1.730000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex 7.650000e+01 1.740000e+02 -3.000000e+00 + vertex 7.650000e+01 1.740000e+02 -6.000000e+00 + vertex 7.650000e+01 1.730000e+02 -6.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex 7.650000e+01 1.730000e+02 -3.000000e+00 + vertex 7.650000e+01 1.740000e+02 -3.000000e+00 + vertex 7.650000e+01 1.730000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.650000e+01 1.740000e+02 -6.000000e+00 + vertex 7.673395e+01 1.746428e+02 -6.000000e+00 + vertex 7.650000e+01 1.730000e+02 -6.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex -7.800000e+01 1.740000e+02 -3.000000e+00 + vertex -7.800000e+01 1.730000e+02 0.000000e+00 + vertex -7.800000e+01 1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 1.730000e+02 -3.000000e+00 + vertex -7.800000e+01 1.740000e+02 -3.000000e+00 + vertex -7.800000e+01 1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex -7.650000e+01 1.740000e+02 -6.000000e+00 + vertex -7.650000e+01 1.740000e+02 -3.000000e+00 + vertex -7.650000e+01 1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 1.740000e+02 -3.000000e+00 + vertex -7.800000e+01 1.740000e+02 -3.000000e+00 + vertex -7.650000e+01 1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 1.730000e+02 -3.000000e+00 + vertex -7.350000e+01 1.740000e+02 -3.000000e+00 + vertex -7.350000e+01 1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex -7.200000e+01 1.740000e+02 0.000000e+00 + vertex -7.200000e+01 1.740000e+02 -3.000000e+00 + vertex -7.200000e+01 1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex -7.200000e+01 1.730000e+02 0.000000e+00 + vertex -7.200000e+01 1.740000e+02 0.000000e+00 + vertex -7.200000e+01 1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 1.740000e+02 -3.000000e+00 + vertex -7.350000e+01 1.740000e+02 -3.000000e+00 + vertex -7.200000e+01 1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex 7.200000e+01 1.740000e+02 -3.000000e+00 + vertex 7.200000e+01 1.730000e+02 0.000000e+00 + vertex 7.200000e+01 1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 1.730000e+02 -3.000000e+00 + vertex 7.200000e+01 1.740000e+02 -3.000000e+00 + vertex 7.200000e+01 1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex 7.350000e+01 1.740000e+02 -6.000000e+00 + vertex 7.350000e+01 1.740000e+02 -3.000000e+00 + vertex 7.350000e+01 1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 1.740000e+02 -3.000000e+00 + vertex 7.200000e+01 1.740000e+02 -3.000000e+00 + vertex 7.350000e+01 1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.800000e+01 1.730000e+02 -3.000000e+00 + vertex 7.650000e+01 1.740000e+02 -3.000000e+00 + vertex 7.650000e+01 1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex 7.800000e+01 1.740000e+02 0.000000e+00 + vertex 7.800000e+01 1.740000e+02 -3.000000e+00 + vertex 7.800000e+01 1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal -1.000000e+00 0.000000e+00 0.000000e+00 + outer loop + vertex 7.800000e+01 1.730000e+02 0.000000e+00 + vertex 7.800000e+01 1.740000e+02 0.000000e+00 + vertex 7.800000e+01 1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.800000e+01 1.740000e+02 -3.000000e+00 + vertex 7.650000e+01 1.740000e+02 -3.000000e+00 + vertex 7.800000e+01 1.730000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.800000e+01 1.740000e+02 0.000000e+00 + vertex -1.750000e+02 1.740000e+02 0.000000e+00 + vertex -7.800000e+01 1.730000e+02 0.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex -7.800000e+01 1.740000e+02 -3.000000e+00 + vertex -7.800000e+01 1.740000e+02 0.000000e+00 + vertex -7.800000e+01 1.730000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.100000e+01 1.750000e+02 0.000000e+00 + vertex -7.100000e+01 1.750000e+02 0.000000e+00 + vertex -7.200000e+01 1.730000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.200000e+01 1.730000e+02 0.000000e+00 + vertex 7.100000e+01 1.750000e+02 0.000000e+00 + vertex -7.200000e+01 1.730000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.100000e+01 1.750000e+02 0.000000e+00 + vertex -7.200000e+01 1.740000e+02 0.000000e+00 + vertex -7.200000e+01 1.730000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.200000e+01 1.740000e+02 0.000000e+00 + vertex 7.198481e+01 1.741737e+02 0.000000e+00 + vertex 7.200000e+01 1.730000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.198481e+01 1.741737e+02 0.000000e+00 + vertex 7.193969e+01 1.743420e+02 0.000000e+00 + vertex 7.200000e+01 1.730000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.193969e+01 1.743420e+02 0.000000e+00 + vertex 7.186603e+01 1.745000e+02 0.000000e+00 + vertex 7.200000e+01 1.730000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.186603e+01 1.745000e+02 0.000000e+00 + vertex 7.176604e+01 1.746428e+02 0.000000e+00 + vertex 7.200000e+01 1.730000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.176604e+01 1.746428e+02 0.000000e+00 + vertex 7.164279e+01 1.747660e+02 0.000000e+00 + vertex 7.200000e+01 1.730000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.164279e+01 1.747660e+02 0.000000e+00 + vertex 7.150000e+01 1.748660e+02 0.000000e+00 + vertex 7.200000e+01 1.730000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.150000e+01 1.748660e+02 0.000000e+00 + vertex 7.134202e+01 1.749397e+02 0.000000e+00 + vertex 7.200000e+01 1.730000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.117365e+01 1.749848e+02 0.000000e+00 + vertex 7.100000e+01 1.750000e+02 0.000000e+00 + vertex 7.200000e+01 1.730000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.134202e+01 1.749397e+02 0.000000e+00 + vertex 7.117365e+01 1.749848e+02 0.000000e+00 + vertex 7.200000e+01 1.730000e+02 0.000000e+00 + endloop + endfacet + facet normal 1.000000e+00 0.000000e+00 -0.000000e+00 + outer loop + vertex 7.200000e+01 1.740000e+02 -3.000000e+00 + vertex 7.200000e+01 1.740000e+02 0.000000e+00 + vertex 7.200000e+01 1.730000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.750000e+02 1.740000e+02 0.000000e+00 + vertex 1.740000e+02 1.750000e+02 0.000000e+00 + vertex 7.800000e+01 1.730000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.740000e+02 1.750000e+02 0.000000e+00 + vertex 7.900000e+01 1.750000e+02 0.000000e+00 + vertex 7.800000e+01 1.730000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.900000e+01 1.750000e+02 0.000000e+00 + vertex 7.800000e+01 1.740000e+02 0.000000e+00 + vertex 7.800000e+01 1.730000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -1.740000e+02 1.750000e+02 -6.000000e+00 + vertex -7.650000e+01 1.740000e+02 -6.000000e+00 + vertex -1.750000e+02 1.740000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -1.749848e+02 1.741737e+02 -6.000000e+00 + vertex -1.740000e+02 1.750000e+02 -6.000000e+00 + vertex -1.750000e+02 1.740000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961991e-01 8.710545e-02 0.000000e+00 + outer loop + vertex -1.749848e+02 1.741737e+02 0.000000e+00 + vertex -1.749848e+02 1.741737e+02 -6.000000e+00 + vertex -1.750000e+02 1.740000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961991e-01 8.710545e-02 0.000000e+00 + outer loop + vertex -1.750000e+02 1.740000e+02 0.000000e+00 + vertex -1.749848e+02 1.741737e+02 0.000000e+00 + vertex -1.750000e+02 1.740000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.750000e+01 1.750000e+02 -6.000000e+00 + vertex -7.651519e+01 1.741737e+02 -6.000000e+00 + vertex -7.650000e+01 1.740000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -1.740000e+02 1.750000e+02 -6.000000e+00 + vertex -7.750000e+01 1.750000e+02 -6.000000e+00 + vertex -7.650000e+01 1.740000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961954e-01 8.714786e-02 0.000000e+00 + outer loop + vertex -7.651519e+01 1.741737e+02 -6.000000e+00 + vertex -7.650000e+01 1.740000e+02 -3.000000e+00 + vertex -7.650000e+01 1.740000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961954e-01 8.714786e-02 0.000000e+00 + outer loop + vertex -7.350000e+01 1.740000e+02 -3.000000e+00 + vertex -7.348481e+01 1.741737e+02 -3.000000e+00 + vertex -7.350000e+01 1.740000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961954e-01 8.714786e-02 0.000000e+00 + outer loop + vertex -7.348481e+01 1.741737e+02 -3.000000e+00 + vertex -7.348481e+01 1.741737e+02 -6.000000e+00 + vertex -7.350000e+01 1.740000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.250000e+01 1.750000e+02 -6.000000e+00 + vertex 7.348481e+01 1.741737e+02 -6.000000e+00 + vertex 7.350000e+01 1.740000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961954e-01 8.714786e-02 0.000000e+00 + outer loop + vertex 7.348481e+01 1.741737e+02 -6.000000e+00 + vertex 7.350000e+01 1.740000e+02 -3.000000e+00 + vertex 7.350000e+01 1.740000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.651519e+01 1.741737e+02 -6.000000e+00 + vertex 7.673395e+01 1.746428e+02 -6.000000e+00 + vertex 7.650000e+01 1.740000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961954e-01 8.714786e-02 0.000000e+00 + outer loop + vertex 7.650000e+01 1.740000e+02 -3.000000e+00 + vertex 7.651519e+01 1.741737e+02 -3.000000e+00 + vertex 7.650000e+01 1.740000e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.961954e-01 8.714786e-02 0.000000e+00 + outer loop + vertex 7.651519e+01 1.741737e+02 -3.000000e+00 + vertex 7.651519e+01 1.741737e+02 -6.000000e+00 + vertex 7.650000e+01 1.740000e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.961991e-01 8.710545e-02 0.000000e+00 + outer loop + vertex 1.749848e+02 1.741737e+02 -6.000000e+00 + vertex 1.750000e+02 1.740000e+02 0.000000e+00 + vertex 1.750000e+02 1.740000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.650000e+01 1.740000e+02 -3.000000e+00 + vertex -7.651519e+01 1.741737e+02 -3.000000e+00 + vertex -7.800000e+01 1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.651519e+01 1.741737e+02 -3.000000e+00 + vertex -7.656031e+01 1.743420e+02 -3.000000e+00 + vertex -7.800000e+01 1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.656031e+01 1.743420e+02 -3.000000e+00 + vertex -7.801519e+01 1.741737e+02 -3.000000e+00 + vertex -7.800000e+01 1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961954e-01 8.714786e-02 0.000000e+00 + outer loop + vertex -7.801519e+01 1.741737e+02 -3.000000e+00 + vertex -7.800000e+01 1.740000e+02 0.000000e+00 + vertex -7.800000e+01 1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961954e-01 8.714786e-02 -0.000000e+00 + outer loop + vertex -7.651519e+01 1.741737e+02 -6.000000e+00 + vertex -7.651519e+01 1.741737e+02 -3.000000e+00 + vertex -7.650000e+01 1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.200000e+01 1.740000e+02 -3.000000e+00 + vertex -7.348481e+01 1.741737e+02 -3.000000e+00 + vertex -7.350000e+01 1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.198481e+01 1.741737e+02 -3.000000e+00 + vertex -7.336602e+01 1.745000e+02 -3.000000e+00 + vertex -7.200000e+01 1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.336602e+01 1.745000e+02 -3.000000e+00 + vertex -7.343969e+01 1.743420e+02 -3.000000e+00 + vertex -7.200000e+01 1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.343969e+01 1.743420e+02 -3.000000e+00 + vertex -7.348481e+01 1.741737e+02 -3.000000e+00 + vertex -7.200000e+01 1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961954e-01 8.714786e-02 0.000000e+00 + outer loop + vertex -7.200000e+01 1.740000e+02 0.000000e+00 + vertex -7.198481e+01 1.741737e+02 0.000000e+00 + vertex -7.200000e+01 1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961954e-01 8.714786e-02 0.000000e+00 + outer loop + vertex -7.198481e+01 1.741737e+02 0.000000e+00 + vertex -7.198481e+01 1.741737e+02 -3.000000e+00 + vertex -7.200000e+01 1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.343969e+01 1.743420e+02 -3.000000e+00 + vertex 7.198481e+01 1.741737e+02 -3.000000e+00 + vertex 7.200000e+01 1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.348481e+01 1.741737e+02 -3.000000e+00 + vertex 7.343969e+01 1.743420e+02 -3.000000e+00 + vertex 7.200000e+01 1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.350000e+01 1.740000e+02 -3.000000e+00 + vertex 7.348481e+01 1.741737e+02 -3.000000e+00 + vertex 7.200000e+01 1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961954e-01 8.714786e-02 0.000000e+00 + outer loop + vertex 7.198481e+01 1.741737e+02 -3.000000e+00 + vertex 7.200000e+01 1.740000e+02 0.000000e+00 + vertex 7.200000e+01 1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.961954e-01 8.714786e-02 -0.000000e+00 + outer loop + vertex 7.348481e+01 1.741737e+02 -6.000000e+00 + vertex 7.348481e+01 1.741737e+02 -3.000000e+00 + vertex 7.350000e+01 1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.800000e+01 1.740000e+02 -3.000000e+00 + vertex 7.651519e+01 1.741737e+02 -3.000000e+00 + vertex 7.650000e+01 1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.801519e+01 1.741737e+02 -3.000000e+00 + vertex 7.663397e+01 1.745000e+02 -3.000000e+00 + vertex 7.800000e+01 1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.663397e+01 1.745000e+02 -3.000000e+00 + vertex 7.656031e+01 1.743420e+02 -3.000000e+00 + vertex 7.800000e+01 1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.656031e+01 1.743420e+02 -3.000000e+00 + vertex 7.651519e+01 1.741737e+02 -3.000000e+00 + vertex 7.800000e+01 1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961954e-01 8.714786e-02 0.000000e+00 + outer loop + vertex 7.800000e+01 1.740000e+02 0.000000e+00 + vertex 7.801519e+01 1.741737e+02 0.000000e+00 + vertex 7.800000e+01 1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.961954e-01 8.714786e-02 0.000000e+00 + outer loop + vertex 7.801519e+01 1.741737e+02 0.000000e+00 + vertex 7.801519e+01 1.741737e+02 -3.000000e+00 + vertex 7.800000e+01 1.740000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.900000e+01 1.750000e+02 0.000000e+00 + vertex -1.740000e+02 1.750000e+02 0.000000e+00 + vertex -1.750000e+02 1.740000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.800000e+01 1.740000e+02 0.000000e+00 + vertex -7.900000e+01 1.750000e+02 0.000000e+00 + vertex -1.750000e+02 1.740000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.740000e+02 1.750000e+02 0.000000e+00 + vertex -1.741737e+02 1.749848e+02 0.000000e+00 + vertex -1.750000e+02 1.740000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.741737e+02 1.749848e+02 0.000000e+00 + vertex -1.743420e+02 1.749397e+02 0.000000e+00 + vertex -1.750000e+02 1.740000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.743420e+02 1.749397e+02 0.000000e+00 + vertex -1.745000e+02 1.748660e+02 0.000000e+00 + vertex -1.750000e+02 1.740000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.745000e+02 1.748660e+02 0.000000e+00 + vertex -1.746428e+02 1.747660e+02 0.000000e+00 + vertex -1.750000e+02 1.740000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.746428e+02 1.747660e+02 0.000000e+00 + vertex -1.747660e+02 1.746428e+02 0.000000e+00 + vertex -1.750000e+02 1.740000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.747660e+02 1.746428e+02 0.000000e+00 + vertex -1.749848e+02 1.741737e+02 0.000000e+00 + vertex -1.750000e+02 1.740000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.801519e+01 1.741737e+02 0.000000e+00 + vertex -7.900000e+01 1.750000e+02 0.000000e+00 + vertex -7.800000e+01 1.740000e+02 0.000000e+00 + endloop + endfacet + facet normal 9.961954e-01 8.714786e-02 -0.000000e+00 + outer loop + vertex -7.801519e+01 1.741737e+02 -3.000000e+00 + vertex -7.801519e+01 1.741737e+02 0.000000e+00 + vertex -7.800000e+01 1.740000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.100000e+01 1.750000e+02 0.000000e+00 + vertex -7.198481e+01 1.741737e+02 0.000000e+00 + vertex -7.200000e+01 1.740000e+02 0.000000e+00 + endloop + endfacet + facet normal 9.961954e-01 8.714786e-02 -0.000000e+00 + outer loop + vertex 7.198481e+01 1.741737e+02 -3.000000e+00 + vertex 7.198481e+01 1.741737e+02 0.000000e+00 + vertex 7.200000e+01 1.740000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.900000e+01 1.750000e+02 0.000000e+00 + vertex 7.801519e+01 1.741737e+02 0.000000e+00 + vertex 7.800000e+01 1.740000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.749848e+02 1.741737e+02 0.000000e+00 + vertex 1.740000e+02 1.750000e+02 0.000000e+00 + vertex 1.750000e+02 1.740000e+02 0.000000e+00 + endloop + endfacet + facet normal 9.961991e-01 8.710545e-02 -0.000000e+00 + outer loop + vertex 1.749848e+02 1.741737e+02 -6.000000e+00 + vertex 1.749848e+02 1.741737e+02 0.000000e+00 + vertex 1.750000e+02 1.740000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -1.749397e+02 1.743420e+02 -6.000000e+00 + vertex -1.740000e+02 1.750000e+02 -6.000000e+00 + vertex -1.749848e+02 1.741737e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659164e-01 2.588543e-01 0.000000e+00 + outer loop + vertex -1.749397e+02 1.743420e+02 0.000000e+00 + vertex -1.749397e+02 1.743420e+02 -6.000000e+00 + vertex -1.749848e+02 1.741737e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659164e-01 2.588543e-01 0.000000e+00 + outer loop + vertex -1.749848e+02 1.741737e+02 0.000000e+00 + vertex -1.749397e+02 1.743420e+02 0.000000e+00 + vertex -1.749848e+02 1.741737e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.750000e+01 1.750000e+02 -6.000000e+00 + vertex -7.656031e+01 1.743420e+02 -6.000000e+00 + vertex -7.651519e+01 1.741737e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659164e-01 2.588543e-01 0.000000e+00 + outer loop + vertex -7.656031e+01 1.743420e+02 -6.000000e+00 + vertex -7.651519e+01 1.741737e+02 -3.000000e+00 + vertex -7.651519e+01 1.741737e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex -7.348481e+01 1.741737e+02 -3.000000e+00 + vertex -7.343969e+01 1.743420e+02 -3.000000e+00 + vertex -7.348481e+01 1.741737e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex -7.343969e+01 1.743420e+02 -3.000000e+00 + vertex -7.343969e+01 1.743420e+02 -6.000000e+00 + vertex -7.348481e+01 1.741737e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.250000e+01 1.750000e+02 -6.000000e+00 + vertex 7.343969e+01 1.743420e+02 -6.000000e+00 + vertex 7.348481e+01 1.741737e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex 7.343969e+01 1.743420e+02 -6.000000e+00 + vertex 7.348481e+01 1.741737e+02 -3.000000e+00 + vertex 7.348481e+01 1.741737e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.656031e+01 1.743420e+02 -6.000000e+00 + vertex 7.673395e+01 1.746428e+02 -6.000000e+00 + vertex 7.651519e+01 1.741737e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659164e-01 2.588543e-01 0.000000e+00 + outer loop + vertex 7.651519e+01 1.741737e+02 -3.000000e+00 + vertex 7.656031e+01 1.743420e+02 -3.000000e+00 + vertex 7.651519e+01 1.741737e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.659164e-01 2.588543e-01 0.000000e+00 + outer loop + vertex 7.656031e+01 1.743420e+02 -3.000000e+00 + vertex 7.656031e+01 1.743420e+02 -6.000000e+00 + vertex 7.651519e+01 1.741737e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.659164e-01 2.588543e-01 0.000000e+00 + outer loop + vertex 1.749397e+02 1.743420e+02 -6.000000e+00 + vertex 1.749848e+02 1.741737e+02 0.000000e+00 + vertex 1.749848e+02 1.741737e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.673395e+01 1.746428e+02 -3.000000e+00 + vertex -7.806031e+01 1.743420e+02 -3.000000e+00 + vertex -7.801519e+01 1.741737e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.656031e+01 1.743420e+02 -3.000000e+00 + vertex -7.663397e+01 1.745000e+02 -3.000000e+00 + vertex -7.801519e+01 1.741737e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.663397e+01 1.745000e+02 -3.000000e+00 + vertex -7.673395e+01 1.746428e+02 -3.000000e+00 + vertex -7.801519e+01 1.741737e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex -7.806031e+01 1.743420e+02 -3.000000e+00 + vertex -7.801519e+01 1.741737e+02 0.000000e+00 + vertex -7.801519e+01 1.741737e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659164e-01 2.588543e-01 -0.000000e+00 + outer loop + vertex -7.656031e+01 1.743420e+02 -6.000000e+00 + vertex -7.656031e+01 1.743420e+02 -3.000000e+00 + vertex -7.651519e+01 1.741737e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.193969e+01 1.743420e+02 -3.000000e+00 + vertex -7.326604e+01 1.746428e+02 -3.000000e+00 + vertex -7.198481e+01 1.741737e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.326604e+01 1.746428e+02 -3.000000e+00 + vertex -7.336602e+01 1.745000e+02 -3.000000e+00 + vertex -7.198481e+01 1.741737e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex -7.198481e+01 1.741737e+02 0.000000e+00 + vertex -7.193969e+01 1.743420e+02 0.000000e+00 + vertex -7.198481e+01 1.741737e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex -7.193969e+01 1.743420e+02 0.000000e+00 + vertex -7.193969e+01 1.743420e+02 -3.000000e+00 + vertex -7.198481e+01 1.741737e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.326604e+01 1.746428e+02 -3.000000e+00 + vertex 7.193969e+01 1.743420e+02 -3.000000e+00 + vertex 7.198481e+01 1.741737e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.336602e+01 1.745000e+02 -3.000000e+00 + vertex 7.326604e+01 1.746428e+02 -3.000000e+00 + vertex 7.198481e+01 1.741737e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.343969e+01 1.743420e+02 -3.000000e+00 + vertex 7.336602e+01 1.745000e+02 -3.000000e+00 + vertex 7.198481e+01 1.741737e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex 7.193969e+01 1.743420e+02 -3.000000e+00 + vertex 7.198481e+01 1.741737e+02 0.000000e+00 + vertex 7.198481e+01 1.741737e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 2.588144e-01 -0.000000e+00 + outer loop + vertex 7.343969e+01 1.743420e+02 -6.000000e+00 + vertex 7.343969e+01 1.743420e+02 -3.000000e+00 + vertex 7.348481e+01 1.741737e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.806031e+01 1.743420e+02 -3.000000e+00 + vertex 7.673395e+01 1.746428e+02 -3.000000e+00 + vertex 7.801519e+01 1.741737e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.673395e+01 1.746428e+02 -3.000000e+00 + vertex 7.663397e+01 1.745000e+02 -3.000000e+00 + vertex 7.801519e+01 1.741737e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex 7.801519e+01 1.741737e+02 0.000000e+00 + vertex 7.806031e+01 1.743420e+02 0.000000e+00 + vertex 7.801519e+01 1.741737e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.659271e-01 2.588144e-01 0.000000e+00 + outer loop + vertex 7.806031e+01 1.743420e+02 0.000000e+00 + vertex 7.806031e+01 1.743420e+02 -3.000000e+00 + vertex 7.801519e+01 1.741737e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.747660e+02 1.746428e+02 0.000000e+00 + vertex -1.749397e+02 1.743420e+02 0.000000e+00 + vertex -1.749848e+02 1.741737e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.806031e+01 1.743420e+02 0.000000e+00 + vertex -7.900000e+01 1.750000e+02 0.000000e+00 + vertex -7.801519e+01 1.741737e+02 0.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 2.588144e-01 -0.000000e+00 + outer loop + vertex -7.806031e+01 1.743420e+02 -3.000000e+00 + vertex -7.806031e+01 1.743420e+02 0.000000e+00 + vertex -7.801519e+01 1.741737e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.100000e+01 1.750000e+02 0.000000e+00 + vertex -7.193969e+01 1.743420e+02 0.000000e+00 + vertex -7.198481e+01 1.741737e+02 0.000000e+00 + endloop + endfacet + facet normal 9.659271e-01 2.588144e-01 -0.000000e+00 + outer loop + vertex 7.193969e+01 1.743420e+02 -3.000000e+00 + vertex 7.193969e+01 1.743420e+02 0.000000e+00 + vertex 7.198481e+01 1.741737e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.900000e+01 1.750000e+02 0.000000e+00 + vertex 7.806031e+01 1.743420e+02 0.000000e+00 + vertex 7.801519e+01 1.741737e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.749397e+02 1.743420e+02 0.000000e+00 + vertex 1.740000e+02 1.750000e+02 0.000000e+00 + vertex 1.749848e+02 1.741737e+02 0.000000e+00 + endloop + endfacet + facet normal 9.659164e-01 2.588543e-01 -0.000000e+00 + outer loop + vertex 1.749397e+02 1.743420e+02 -6.000000e+00 + vertex 1.749397e+02 1.743420e+02 0.000000e+00 + vertex 1.749848e+02 1.741737e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -1.748660e+02 1.745000e+02 -6.000000e+00 + vertex -1.740000e+02 1.750000e+02 -6.000000e+00 + vertex -1.749397e+02 1.743420e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex -1.748660e+02 1.745000e+02 0.000000e+00 + vertex -1.748660e+02 1.745000e+02 -6.000000e+00 + vertex -1.749397e+02 1.743420e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex -1.749397e+02 1.743420e+02 0.000000e+00 + vertex -1.748660e+02 1.745000e+02 0.000000e+00 + vertex -1.749397e+02 1.743420e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.750000e+01 1.750000e+02 -6.000000e+00 + vertex -7.663397e+01 1.745000e+02 -6.000000e+00 + vertex -7.656031e+01 1.743420e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063174e-01 4.225976e-01 0.000000e+00 + outer loop + vertex -7.663397e+01 1.745000e+02 -6.000000e+00 + vertex -7.656031e+01 1.743420e+02 -3.000000e+00 + vertex -7.656031e+01 1.743420e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex -7.343969e+01 1.743420e+02 -3.000000e+00 + vertex -7.336602e+01 1.745000e+02 -3.000000e+00 + vertex -7.343969e+01 1.743420e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex -7.336602e+01 1.745000e+02 -3.000000e+00 + vertex -7.336602e+01 1.745000e+02 -6.000000e+00 + vertex -7.343969e+01 1.743420e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.250000e+01 1.750000e+02 -6.000000e+00 + vertex 7.336602e+01 1.745000e+02 -6.000000e+00 + vertex 7.343969e+01 1.743420e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex 7.336602e+01 1.745000e+02 -6.000000e+00 + vertex 7.343969e+01 1.743420e+02 -3.000000e+00 + vertex 7.343969e+01 1.743420e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex 7.663397e+01 1.745000e+02 -6.000000e+00 + vertex 7.673395e+01 1.746428e+02 -6.000000e+00 + vertex 7.656031e+01 1.743420e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063174e-01 4.225976e-01 0.000000e+00 + outer loop + vertex 7.656031e+01 1.743420e+02 -3.000000e+00 + vertex 7.663397e+01 1.745000e+02 -3.000000e+00 + vertex 7.656031e+01 1.743420e+02 -6.000000e+00 + endloop + endfacet + facet normal -9.063174e-01 4.225976e-01 0.000000e+00 + outer loop + vertex 7.663397e+01 1.745000e+02 -3.000000e+00 + vertex 7.663397e+01 1.745000e+02 -6.000000e+00 + vertex 7.656031e+01 1.743420e+02 -6.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex 1.748660e+02 1.745000e+02 -6.000000e+00 + vertex 1.749397e+02 1.743420e+02 0.000000e+00 + vertex 1.749397e+02 1.743420e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.673395e+01 1.746428e+02 -3.000000e+00 + vertex -7.685721e+01 1.747660e+02 -3.000000e+00 + vertex -7.806031e+01 1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.715798e+01 1.749397e+02 -3.000000e+00 + vertex -7.813398e+01 1.745000e+02 -3.000000e+00 + vertex -7.806031e+01 1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.700000e+01 1.748660e+02 -3.000000e+00 + vertex -7.715798e+01 1.749397e+02 -3.000000e+00 + vertex -7.806031e+01 1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.685721e+01 1.747660e+02 -3.000000e+00 + vertex -7.700000e+01 1.748660e+02 -3.000000e+00 + vertex -7.806031e+01 1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex -7.813398e+01 1.745000e+02 -3.000000e+00 + vertex -7.806031e+01 1.743420e+02 0.000000e+00 + vertex -7.806031e+01 1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063174e-01 4.225976e-01 -0.000000e+00 + outer loop + vertex -7.663397e+01 1.745000e+02 -6.000000e+00 + vertex -7.663397e+01 1.745000e+02 -3.000000e+00 + vertex -7.656031e+01 1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.186603e+01 1.745000e+02 -3.000000e+00 + vertex -7.267365e+01 1.749848e+02 -3.000000e+00 + vertex -7.193969e+01 1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.267365e+01 1.749848e+02 -3.000000e+00 + vertex -7.284202e+01 1.749397e+02 -3.000000e+00 + vertex -7.193969e+01 1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.284202e+01 1.749397e+02 -3.000000e+00 + vertex -7.300000e+01 1.748660e+02 -3.000000e+00 + vertex -7.193969e+01 1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.300000e+01 1.748660e+02 -3.000000e+00 + vertex -7.314279e+01 1.747660e+02 -3.000000e+00 + vertex -7.193969e+01 1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.314279e+01 1.747660e+02 -3.000000e+00 + vertex -7.326604e+01 1.746428e+02 -3.000000e+00 + vertex -7.193969e+01 1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063174e-01 4.225976e-01 0.000000e+00 + outer loop + vertex -7.193969e+01 1.743420e+02 0.000000e+00 + vertex -7.186603e+01 1.745000e+02 0.000000e+00 + vertex -7.193969e+01 1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063174e-01 4.225976e-01 0.000000e+00 + outer loop + vertex -7.186603e+01 1.745000e+02 0.000000e+00 + vertex -7.186603e+01 1.745000e+02 -3.000000e+00 + vertex -7.193969e+01 1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.326604e+01 1.746428e+02 -3.000000e+00 + vertex 7.314279e+01 1.747660e+02 -3.000000e+00 + vertex 7.193969e+01 1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.284202e+01 1.749397e+02 -3.000000e+00 + vertex 7.186603e+01 1.745000e+02 -3.000000e+00 + vertex 7.193969e+01 1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.300000e+01 1.748660e+02 -3.000000e+00 + vertex 7.284202e+01 1.749397e+02 -3.000000e+00 + vertex 7.193969e+01 1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.314279e+01 1.747660e+02 -3.000000e+00 + vertex 7.300000e+01 1.748660e+02 -3.000000e+00 + vertex 7.193969e+01 1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063174e-01 4.225976e-01 0.000000e+00 + outer loop + vertex 7.186603e+01 1.745000e+02 -3.000000e+00 + vertex 7.193969e+01 1.743420e+02 0.000000e+00 + vertex 7.193969e+01 1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 4.226327e-01 -0.000000e+00 + outer loop + vertex 7.336602e+01 1.745000e+02 -6.000000e+00 + vertex 7.336602e+01 1.745000e+02 -3.000000e+00 + vertex 7.343969e+01 1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.813398e+01 1.745000e+02 -3.000000e+00 + vertex 7.732635e+01 1.749848e+02 -3.000000e+00 + vertex 7.806031e+01 1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.732635e+01 1.749848e+02 -3.000000e+00 + vertex 7.715798e+01 1.749397e+02 -3.000000e+00 + vertex 7.806031e+01 1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.715798e+01 1.749397e+02 -3.000000e+00 + vertex 7.700000e+01 1.748660e+02 -3.000000e+00 + vertex 7.806031e+01 1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.700000e+01 1.748660e+02 -3.000000e+00 + vertex 7.685721e+01 1.747660e+02 -3.000000e+00 + vertex 7.806031e+01 1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.685721e+01 1.747660e+02 -3.000000e+00 + vertex 7.673395e+01 1.746428e+02 -3.000000e+00 + vertex 7.806031e+01 1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex 7.806031e+01 1.743420e+02 0.000000e+00 + vertex 7.813398e+01 1.745000e+02 0.000000e+00 + vertex 7.806031e+01 1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal -9.063010e-01 4.226327e-01 0.000000e+00 + outer loop + vertex 7.813398e+01 1.745000e+02 0.000000e+00 + vertex 7.813398e+01 1.745000e+02 -3.000000e+00 + vertex 7.806031e+01 1.743420e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -1.747660e+02 1.746428e+02 0.000000e+00 + vertex -1.748660e+02 1.745000e+02 0.000000e+00 + vertex -1.749397e+02 1.743420e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.813398e+01 1.745000e+02 0.000000e+00 + vertex -7.900000e+01 1.750000e+02 0.000000e+00 + vertex -7.806031e+01 1.743420e+02 0.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 4.226327e-01 -0.000000e+00 + outer loop + vertex -7.813398e+01 1.745000e+02 -3.000000e+00 + vertex -7.813398e+01 1.745000e+02 0.000000e+00 + vertex -7.806031e+01 1.743420e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.100000e+01 1.750000e+02 0.000000e+00 + vertex -7.186603e+01 1.745000e+02 0.000000e+00 + vertex -7.193969e+01 1.743420e+02 0.000000e+00 + endloop + endfacet + facet normal 9.063174e-01 4.225976e-01 -0.000000e+00 + outer loop + vertex 7.186603e+01 1.745000e+02 -3.000000e+00 + vertex 7.186603e+01 1.745000e+02 0.000000e+00 + vertex 7.193969e+01 1.743420e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.900000e+01 1.750000e+02 0.000000e+00 + vertex 7.813398e+01 1.745000e+02 0.000000e+00 + vertex 7.806031e+01 1.743420e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.748660e+02 1.745000e+02 0.000000e+00 + vertex 1.740000e+02 1.750000e+02 0.000000e+00 + vertex 1.749397e+02 1.743420e+02 0.000000e+00 + endloop + endfacet + facet normal 9.063010e-01 4.226327e-01 -0.000000e+00 + outer loop + vertex 1.748660e+02 1.745000e+02 -6.000000e+00 + vertex 1.748660e+02 1.745000e+02 0.000000e+00 + vertex 1.749397e+02 1.743420e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -1.747660e+02 1.746428e+02 -6.000000e+00 + vertex -1.740000e+02 1.750000e+02 -6.000000e+00 + vertex -1.748660e+02 1.745000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191677e-01 5.735541e-01 0.000000e+00 + outer loop + vertex -1.747660e+02 1.746428e+02 0.000000e+00 + vertex -1.747660e+02 1.746428e+02 -6.000000e+00 + vertex -1.748660e+02 1.745000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191677e-01 5.735541e-01 0.000000e+00 + outer loop + vertex -1.748660e+02 1.745000e+02 0.000000e+00 + vertex -1.747660e+02 1.746428e+02 0.000000e+00 + vertex -1.748660e+02 1.745000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.750000e+01 1.750000e+02 -6.000000e+00 + vertex -7.673395e+01 1.746428e+02 -6.000000e+00 + vertex -7.663397e+01 1.745000e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191476e-01 5.735828e-01 0.000000e+00 + outer loop + vertex -7.673395e+01 1.746428e+02 -6.000000e+00 + vertex -7.663397e+01 1.745000e+02 -3.000000e+00 + vertex -7.663397e+01 1.745000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191476e-01 5.735828e-01 0.000000e+00 + outer loop + vertex -7.336602e+01 1.745000e+02 -3.000000e+00 + vertex -7.326604e+01 1.746428e+02 -3.000000e+00 + vertex -7.336602e+01 1.745000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191476e-01 5.735828e-01 0.000000e+00 + outer loop + vertex -7.326604e+01 1.746428e+02 -3.000000e+00 + vertex -7.326604e+01 1.746428e+02 -6.000000e+00 + vertex -7.336602e+01 1.745000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.250000e+01 1.750000e+02 -6.000000e+00 + vertex 7.326604e+01 1.746428e+02 -6.000000e+00 + vertex 7.336602e+01 1.745000e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191476e-01 5.735828e-01 0.000000e+00 + outer loop + vertex 7.326604e+01 1.746428e+02 -6.000000e+00 + vertex 7.336602e+01 1.745000e+02 -3.000000e+00 + vertex 7.336602e+01 1.745000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191476e-01 5.735828e-01 0.000000e+00 + outer loop + vertex 7.663397e+01 1.745000e+02 -3.000000e+00 + vertex 7.673395e+01 1.746428e+02 -3.000000e+00 + vertex 7.663397e+01 1.745000e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.191476e-01 5.735828e-01 0.000000e+00 + outer loop + vertex 7.673395e+01 1.746428e+02 -3.000000e+00 + vertex 7.673395e+01 1.746428e+02 -6.000000e+00 + vertex 7.663397e+01 1.745000e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.191677e-01 5.735541e-01 0.000000e+00 + outer loop + vertex 1.747660e+02 1.746428e+02 -6.000000e+00 + vertex 1.748660e+02 1.745000e+02 0.000000e+00 + vertex 1.748660e+02 1.745000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.732635e+01 1.749848e+02 -3.000000e+00 + vertex -7.823396e+01 1.746428e+02 -3.000000e+00 + vertex -7.813398e+01 1.745000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.715798e+01 1.749397e+02 -3.000000e+00 + vertex -7.732635e+01 1.749848e+02 -3.000000e+00 + vertex -7.813398e+01 1.745000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191476e-01 5.735828e-01 0.000000e+00 + outer loop + vertex -7.823396e+01 1.746428e+02 -3.000000e+00 + vertex -7.813398e+01 1.745000e+02 0.000000e+00 + vertex -7.813398e+01 1.745000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191476e-01 5.735828e-01 -0.000000e+00 + outer loop + vertex -7.673395e+01 1.746428e+02 -6.000000e+00 + vertex -7.673395e+01 1.746428e+02 -3.000000e+00 + vertex -7.663397e+01 1.745000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.176604e+01 1.746428e+02 -3.000000e+00 + vertex -7.250000e+01 1.750000e+02 -3.000000e+00 + vertex -7.186603e+01 1.745000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.250000e+01 1.750000e+02 -3.000000e+00 + vertex -7.267365e+01 1.749848e+02 -3.000000e+00 + vertex -7.186603e+01 1.745000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191275e-01 5.736115e-01 0.000000e+00 + outer loop + vertex -7.186603e+01 1.745000e+02 0.000000e+00 + vertex -7.176604e+01 1.746428e+02 0.000000e+00 + vertex -7.186603e+01 1.745000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191275e-01 5.736115e-01 0.000000e+00 + outer loop + vertex -7.176604e+01 1.746428e+02 0.000000e+00 + vertex -7.176604e+01 1.746428e+02 -3.000000e+00 + vertex -7.186603e+01 1.745000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.267365e+01 1.749848e+02 -3.000000e+00 + vertex 7.176604e+01 1.746428e+02 -3.000000e+00 + vertex 7.186603e+01 1.745000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.284202e+01 1.749397e+02 -3.000000e+00 + vertex 7.267365e+01 1.749848e+02 -3.000000e+00 + vertex 7.186603e+01 1.745000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191275e-01 5.736115e-01 0.000000e+00 + outer loop + vertex 7.176604e+01 1.746428e+02 -3.000000e+00 + vertex 7.186603e+01 1.745000e+02 0.000000e+00 + vertex 7.186603e+01 1.745000e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.191476e-01 5.735828e-01 -0.000000e+00 + outer loop + vertex 7.326604e+01 1.746428e+02 -6.000000e+00 + vertex 7.326604e+01 1.746428e+02 -3.000000e+00 + vertex 7.336602e+01 1.745000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.823396e+01 1.746428e+02 -3.000000e+00 + vertex 7.750000e+01 1.750000e+02 -3.000000e+00 + vertex 7.813398e+01 1.745000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.750000e+01 1.750000e+02 -3.000000e+00 + vertex 7.732635e+01 1.749848e+02 -3.000000e+00 + vertex 7.813398e+01 1.745000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191476e-01 5.735828e-01 0.000000e+00 + outer loop + vertex 7.813398e+01 1.745000e+02 0.000000e+00 + vertex 7.823396e+01 1.746428e+02 0.000000e+00 + vertex 7.813398e+01 1.745000e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.191476e-01 5.735828e-01 0.000000e+00 + outer loop + vertex 7.823396e+01 1.746428e+02 0.000000e+00 + vertex 7.823396e+01 1.746428e+02 -3.000000e+00 + vertex 7.813398e+01 1.745000e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.823396e+01 1.746428e+02 0.000000e+00 + vertex -7.900000e+01 1.750000e+02 0.000000e+00 + vertex -7.813398e+01 1.745000e+02 0.000000e+00 + endloop + endfacet + facet normal 8.191476e-01 5.735828e-01 -0.000000e+00 + outer loop + vertex -7.823396e+01 1.746428e+02 -3.000000e+00 + vertex -7.823396e+01 1.746428e+02 0.000000e+00 + vertex -7.813398e+01 1.745000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.100000e+01 1.750000e+02 0.000000e+00 + vertex -7.176604e+01 1.746428e+02 0.000000e+00 + vertex -7.186603e+01 1.745000e+02 0.000000e+00 + endloop + endfacet + facet normal 8.191275e-01 5.736115e-01 -0.000000e+00 + outer loop + vertex 7.176604e+01 1.746428e+02 -3.000000e+00 + vertex 7.176604e+01 1.746428e+02 0.000000e+00 + vertex 7.186603e+01 1.745000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.900000e+01 1.750000e+02 0.000000e+00 + vertex 7.823396e+01 1.746428e+02 0.000000e+00 + vertex 7.813398e+01 1.745000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.747660e+02 1.746428e+02 0.000000e+00 + vertex 1.740000e+02 1.750000e+02 0.000000e+00 + vertex 1.748660e+02 1.745000e+02 0.000000e+00 + endloop + endfacet + facet normal 8.191677e-01 5.735541e-01 -0.000000e+00 + outer loop + vertex 1.747660e+02 1.746428e+02 -6.000000e+00 + vertex 1.747660e+02 1.746428e+02 0.000000e+00 + vertex 1.748660e+02 1.745000e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -1.746428e+02 1.747660e+02 -6.000000e+00 + vertex -1.740000e+02 1.750000e+02 -6.000000e+00 + vertex -1.747660e+02 1.746428e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex -1.746428e+02 1.747660e+02 0.000000e+00 + vertex -1.746428e+02 1.747660e+02 -6.000000e+00 + vertex -1.747660e+02 1.746428e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex -1.747660e+02 1.746428e+02 0.000000e+00 + vertex -1.746428e+02 1.747660e+02 0.000000e+00 + vertex -1.747660e+02 1.746428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.750000e+01 1.750000e+02 -6.000000e+00 + vertex -7.685721e+01 1.747660e+02 -6.000000e+00 + vertex -7.673395e+01 1.746428e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 7.070854e-01 0.000000e+00 + outer loop + vertex -7.685721e+01 1.747660e+02 -6.000000e+00 + vertex -7.673395e+01 1.746428e+02 -3.000000e+00 + vertex -7.673395e+01 1.746428e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071282e-01 7.070854e-01 0.000000e+00 + outer loop + vertex -7.326604e+01 1.746428e+02 -3.000000e+00 + vertex -7.314279e+01 1.747660e+02 -3.000000e+00 + vertex -7.326604e+01 1.746428e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071282e-01 7.070854e-01 0.000000e+00 + outer loop + vertex -7.314279e+01 1.747660e+02 -3.000000e+00 + vertex -7.314279e+01 1.747660e+02 -6.000000e+00 + vertex -7.326604e+01 1.746428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.250000e+01 1.750000e+02 -6.000000e+00 + vertex 7.314279e+01 1.747660e+02 -6.000000e+00 + vertex 7.326604e+01 1.746428e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 7.070854e-01 0.000000e+00 + outer loop + vertex 7.314279e+01 1.747660e+02 -6.000000e+00 + vertex 7.326604e+01 1.746428e+02 -3.000000e+00 + vertex 7.326604e+01 1.746428e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071282e-01 7.070854e-01 0.000000e+00 + outer loop + vertex 7.673395e+01 1.746428e+02 -3.000000e+00 + vertex 7.685721e+01 1.747660e+02 -3.000000e+00 + vertex 7.673395e+01 1.746428e+02 -6.000000e+00 + endloop + endfacet + facet normal -7.071282e-01 7.070854e-01 0.000000e+00 + outer loop + vertex 7.685721e+01 1.747660e+02 -3.000000e+00 + vertex 7.685721e+01 1.747660e+02 -6.000000e+00 + vertex 7.673395e+01 1.746428e+02 -6.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 7.071068e-01 0.000000e+00 + outer loop + vertex 1.746428e+02 1.747660e+02 -6.000000e+00 + vertex 1.747660e+02 1.746428e+02 0.000000e+00 + vertex 1.747660e+02 1.746428e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.750000e+01 1.750000e+02 -3.000000e+00 + vertex -7.835721e+01 1.747660e+02 -3.000000e+00 + vertex -7.823396e+01 1.746428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.732635e+01 1.749848e+02 -3.000000e+00 + vertex -7.750000e+01 1.750000e+02 -3.000000e+00 + vertex -7.823396e+01 1.746428e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 7.070854e-01 0.000000e+00 + outer loop + vertex -7.835721e+01 1.747660e+02 -3.000000e+00 + vertex -7.823396e+01 1.746428e+02 0.000000e+00 + vertex -7.823396e+01 1.746428e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 7.070854e-01 -0.000000e+00 + outer loop + vertex -7.685721e+01 1.747660e+02 -6.000000e+00 + vertex -7.685721e+01 1.747660e+02 -3.000000e+00 + vertex -7.673395e+01 1.746428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.164279e+01 1.747660e+02 -3.000000e+00 + vertex -7.250000e+01 1.750000e+02 -3.000000e+00 + vertex -7.176604e+01 1.746428e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071282e-01 7.070854e-01 0.000000e+00 + outer loop + vertex -7.176604e+01 1.746428e+02 0.000000e+00 + vertex -7.164279e+01 1.747660e+02 0.000000e+00 + vertex -7.176604e+01 1.746428e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071282e-01 7.070854e-01 0.000000e+00 + outer loop + vertex -7.164279e+01 1.747660e+02 0.000000e+00 + vertex -7.164279e+01 1.747660e+02 -3.000000e+00 + vertex -7.176604e+01 1.746428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.250000e+01 1.750000e+02 -3.000000e+00 + vertex 7.164279e+01 1.747660e+02 -3.000000e+00 + vertex 7.176604e+01 1.746428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.267365e+01 1.749848e+02 -3.000000e+00 + vertex 7.250000e+01 1.750000e+02 -3.000000e+00 + vertex 7.176604e+01 1.746428e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 7.070854e-01 0.000000e+00 + outer loop + vertex 7.164279e+01 1.747660e+02 -3.000000e+00 + vertex 7.176604e+01 1.746428e+02 0.000000e+00 + vertex 7.176604e+01 1.746428e+02 -3.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 7.070854e-01 -0.000000e+00 + outer loop + vertex 7.314279e+01 1.747660e+02 -6.000000e+00 + vertex 7.314279e+01 1.747660e+02 -3.000000e+00 + vertex 7.326604e+01 1.746428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.835721e+01 1.747660e+02 -3.000000e+00 + vertex 7.750000e+01 1.750000e+02 -3.000000e+00 + vertex 7.823396e+01 1.746428e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071282e-01 7.070854e-01 0.000000e+00 + outer loop + vertex 7.823396e+01 1.746428e+02 0.000000e+00 + vertex 7.835721e+01 1.747660e+02 0.000000e+00 + vertex 7.823396e+01 1.746428e+02 -3.000000e+00 + endloop + endfacet + facet normal -7.071282e-01 7.070854e-01 0.000000e+00 + outer loop + vertex 7.835721e+01 1.747660e+02 0.000000e+00 + vertex 7.835721e+01 1.747660e+02 -3.000000e+00 + vertex 7.823396e+01 1.746428e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.835721e+01 1.747660e+02 0.000000e+00 + vertex -7.900000e+01 1.750000e+02 0.000000e+00 + vertex -7.823396e+01 1.746428e+02 0.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 7.070854e-01 -0.000000e+00 + outer loop + vertex -7.835721e+01 1.747660e+02 -3.000000e+00 + vertex -7.835721e+01 1.747660e+02 0.000000e+00 + vertex -7.823396e+01 1.746428e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.100000e+01 1.750000e+02 0.000000e+00 + vertex -7.164279e+01 1.747660e+02 0.000000e+00 + vertex -7.176604e+01 1.746428e+02 0.000000e+00 + endloop + endfacet + facet normal 7.071282e-01 7.070854e-01 -0.000000e+00 + outer loop + vertex 7.164279e+01 1.747660e+02 -3.000000e+00 + vertex 7.164279e+01 1.747660e+02 0.000000e+00 + vertex 7.176604e+01 1.746428e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.900000e+01 1.750000e+02 0.000000e+00 + vertex 7.835721e+01 1.747660e+02 0.000000e+00 + vertex 7.823396e+01 1.746428e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.746428e+02 1.747660e+02 0.000000e+00 + vertex 1.740000e+02 1.750000e+02 0.000000e+00 + vertex 1.747660e+02 1.746428e+02 0.000000e+00 + endloop + endfacet + facet normal 7.071068e-01 7.071068e-01 -0.000000e+00 + outer loop + vertex 1.746428e+02 1.747660e+02 -6.000000e+00 + vertex 1.746428e+02 1.747660e+02 0.000000e+00 + vertex 1.747660e+02 1.746428e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -1.745000e+02 1.748660e+02 -6.000000e+00 + vertex -1.743420e+02 1.749397e+02 -6.000000e+00 + vertex -1.746428e+02 1.747660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -1.741737e+02 1.749848e+02 -6.000000e+00 + vertex -1.740000e+02 1.750000e+02 -6.000000e+00 + vertex -1.746428e+02 1.747660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00 + outer loop + vertex -1.743420e+02 1.749397e+02 -6.000000e+00 + vertex -1.741737e+02 1.749848e+02 -6.000000e+00 + vertex -1.746428e+02 1.747660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735541e-01 8.191677e-01 0.000000e+00 + outer loop + vertex -1.745000e+02 1.748660e+02 0.000000e+00 + vertex -1.745000e+02 1.748660e+02 -6.000000e+00 + vertex -1.746428e+02 1.747660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735541e-01 8.191677e-01 0.000000e+00 + outer loop + vertex -1.746428e+02 1.747660e+02 0.000000e+00 + vertex -1.745000e+02 1.748660e+02 0.000000e+00 + vertex -1.746428e+02 1.747660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.750000e+01 1.750000e+02 -6.000000e+00 + vertex -7.700000e+01 1.748660e+02 -6.000000e+00 + vertex -7.685721e+01 1.747660e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735341e-01 8.191817e-01 0.000000e+00 + outer loop + vertex -7.700000e+01 1.748660e+02 -6.000000e+00 + vertex -7.685721e+01 1.747660e+02 -3.000000e+00 + vertex -7.685721e+01 1.747660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735341e-01 8.191817e-01 0.000000e+00 + outer loop + vertex -7.314279e+01 1.747660e+02 -3.000000e+00 + vertex -7.300000e+01 1.748660e+02 -3.000000e+00 + vertex -7.314279e+01 1.747660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735341e-01 8.191817e-01 0.000000e+00 + outer loop + vertex -7.300000e+01 1.748660e+02 -3.000000e+00 + vertex -7.300000e+01 1.748660e+02 -6.000000e+00 + vertex -7.314279e+01 1.747660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.250000e+01 1.750000e+02 -6.000000e+00 + vertex 7.300000e+01 1.748660e+02 -6.000000e+00 + vertex 7.314279e+01 1.747660e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735341e-01 8.191817e-01 0.000000e+00 + outer loop + vertex 7.300000e+01 1.748660e+02 -6.000000e+00 + vertex 7.314279e+01 1.747660e+02 -3.000000e+00 + vertex 7.314279e+01 1.747660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735341e-01 8.191817e-01 0.000000e+00 + outer loop + vertex 7.685721e+01 1.747660e+02 -3.000000e+00 + vertex 7.700000e+01 1.748660e+02 -3.000000e+00 + vertex 7.685721e+01 1.747660e+02 -6.000000e+00 + endloop + endfacet + facet normal -5.735341e-01 8.191817e-01 0.000000e+00 + outer loop + vertex 7.700000e+01 1.748660e+02 -3.000000e+00 + vertex 7.700000e+01 1.748660e+02 -6.000000e+00 + vertex 7.685721e+01 1.747660e+02 -6.000000e+00 + endloop + endfacet + facet normal 5.735541e-01 8.191677e-01 0.000000e+00 + outer loop + vertex 1.745000e+02 1.748660e+02 -6.000000e+00 + vertex 1.746428e+02 1.747660e+02 0.000000e+00 + vertex 1.746428e+02 1.747660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.750000e+01 1.750000e+02 -3.000000e+00 + vertex -7.850000e+01 1.748660e+02 -3.000000e+00 + vertex -7.835721e+01 1.747660e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735341e-01 8.191817e-01 0.000000e+00 + outer loop + vertex -7.850000e+01 1.748660e+02 -3.000000e+00 + vertex -7.835721e+01 1.747660e+02 0.000000e+00 + vertex -7.835721e+01 1.747660e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735341e-01 8.191817e-01 -0.000000e+00 + outer loop + vertex -7.700000e+01 1.748660e+02 -6.000000e+00 + vertex -7.700000e+01 1.748660e+02 -3.000000e+00 + vertex -7.685721e+01 1.747660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.150000e+01 1.748660e+02 -3.000000e+00 + vertex -7.250000e+01 1.750000e+02 -3.000000e+00 + vertex -7.164279e+01 1.747660e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735541e-01 8.191677e-01 0.000000e+00 + outer loop + vertex -7.164279e+01 1.747660e+02 0.000000e+00 + vertex -7.150000e+01 1.748660e+02 0.000000e+00 + vertex -7.164279e+01 1.747660e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735541e-01 8.191677e-01 0.000000e+00 + outer loop + vertex -7.150000e+01 1.748660e+02 0.000000e+00 + vertex -7.150000e+01 1.748660e+02 -3.000000e+00 + vertex -7.164279e+01 1.747660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.250000e+01 1.750000e+02 -3.000000e+00 + vertex 7.150000e+01 1.748660e+02 -3.000000e+00 + vertex 7.164279e+01 1.747660e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735541e-01 8.191677e-01 0.000000e+00 + outer loop + vertex 7.150000e+01 1.748660e+02 -3.000000e+00 + vertex 7.164279e+01 1.747660e+02 0.000000e+00 + vertex 7.164279e+01 1.747660e+02 -3.000000e+00 + endloop + endfacet + facet normal 5.735341e-01 8.191817e-01 -0.000000e+00 + outer loop + vertex 7.300000e+01 1.748660e+02 -6.000000e+00 + vertex 7.300000e+01 1.748660e+02 -3.000000e+00 + vertex 7.314279e+01 1.747660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.850000e+01 1.748660e+02 -3.000000e+00 + vertex 7.750000e+01 1.750000e+02 -3.000000e+00 + vertex 7.835721e+01 1.747660e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735341e-01 8.191817e-01 0.000000e+00 + outer loop + vertex 7.835721e+01 1.747660e+02 0.000000e+00 + vertex 7.850000e+01 1.748660e+02 0.000000e+00 + vertex 7.835721e+01 1.747660e+02 -3.000000e+00 + endloop + endfacet + facet normal -5.735341e-01 8.191817e-01 0.000000e+00 + outer loop + vertex 7.850000e+01 1.748660e+02 0.000000e+00 + vertex 7.850000e+01 1.748660e+02 -3.000000e+00 + vertex 7.835721e+01 1.747660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.850000e+01 1.748660e+02 0.000000e+00 + vertex -7.900000e+01 1.750000e+02 0.000000e+00 + vertex -7.835721e+01 1.747660e+02 0.000000e+00 + endloop + endfacet + facet normal 5.735341e-01 8.191817e-01 -0.000000e+00 + outer loop + vertex -7.850000e+01 1.748660e+02 -3.000000e+00 + vertex -7.850000e+01 1.748660e+02 0.000000e+00 + vertex -7.835721e+01 1.747660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.100000e+01 1.750000e+02 0.000000e+00 + vertex -7.150000e+01 1.748660e+02 0.000000e+00 + vertex -7.164279e+01 1.747660e+02 0.000000e+00 + endloop + endfacet + facet normal 5.735541e-01 8.191677e-01 -0.000000e+00 + outer loop + vertex 7.150000e+01 1.748660e+02 -3.000000e+00 + vertex 7.150000e+01 1.748660e+02 0.000000e+00 + vertex 7.164279e+01 1.747660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.900000e+01 1.750000e+02 0.000000e+00 + vertex 7.850000e+01 1.748660e+02 0.000000e+00 + vertex 7.835721e+01 1.747660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.745000e+02 1.748660e+02 0.000000e+00 + vertex 1.743420e+02 1.749397e+02 0.000000e+00 + vertex 1.746428e+02 1.747660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.741737e+02 1.749848e+02 0.000000e+00 + vertex 1.740000e+02 1.750000e+02 0.000000e+00 + vertex 1.746428e+02 1.747660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 1.743420e+02 1.749397e+02 0.000000e+00 + vertex 1.741737e+02 1.749848e+02 0.000000e+00 + vertex 1.746428e+02 1.747660e+02 0.000000e+00 + endloop + endfacet + facet normal 5.735541e-01 8.191677e-01 -0.000000e+00 + outer loop + vertex 1.745000e+02 1.748660e+02 -6.000000e+00 + vertex 1.745000e+02 1.748660e+02 0.000000e+00 + vertex 1.746428e+02 1.747660e+02 0.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex -1.743420e+02 1.749397e+02 0.000000e+00 + vertex -1.743420e+02 1.749397e+02 -6.000000e+00 + vertex -1.745000e+02 1.748660e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex -1.745000e+02 1.748660e+02 0.000000e+00 + vertex -1.743420e+02 1.749397e+02 0.000000e+00 + vertex -1.745000e+02 1.748660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.750000e+01 1.750000e+02 -6.000000e+00 + vertex -7.715798e+01 1.749397e+02 -6.000000e+00 + vertex -7.700000e+01 1.748660e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex -7.715798e+01 1.749397e+02 -6.000000e+00 + vertex -7.700000e+01 1.748660e+02 -3.000000e+00 + vertex -7.700000e+01 1.748660e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex -7.300000e+01 1.748660e+02 -3.000000e+00 + vertex -7.284202e+01 1.749397e+02 -3.000000e+00 + vertex -7.300000e+01 1.748660e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex -7.284202e+01 1.749397e+02 -3.000000e+00 + vertex -7.284202e+01 1.749397e+02 -6.000000e+00 + vertex -7.300000e+01 1.748660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.250000e+01 1.750000e+02 -6.000000e+00 + vertex 7.267365e+01 1.749848e+02 -6.000000e+00 + vertex 7.300000e+01 1.748660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex 7.267365e+01 1.749848e+02 -6.000000e+00 + vertex 7.284202e+01 1.749397e+02 -6.000000e+00 + vertex 7.300000e+01 1.748660e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex 7.284202e+01 1.749397e+02 -6.000000e+00 + vertex 7.300000e+01 1.748660e+02 -3.000000e+00 + vertex 7.300000e+01 1.748660e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex 7.700000e+01 1.748660e+02 -3.000000e+00 + vertex 7.715798e+01 1.749397e+02 -3.000000e+00 + vertex 7.700000e+01 1.748660e+02 -6.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex 7.715798e+01 1.749397e+02 -3.000000e+00 + vertex 7.715798e+01 1.749397e+02 -6.000000e+00 + vertex 7.700000e+01 1.748660e+02 -6.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex 1.743420e+02 1.749397e+02 -6.000000e+00 + vertex 1.745000e+02 1.748660e+02 0.000000e+00 + vertex 1.745000e+02 1.748660e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.750000e+01 1.750000e+02 -3.000000e+00 + vertex -7.865798e+01 1.749397e+02 -3.000000e+00 + vertex -7.850000e+01 1.748660e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226491e-01 9.062934e-01 0.000000e+00 + outer loop + vertex -7.865798e+01 1.749397e+02 -3.000000e+00 + vertex -7.850000e+01 1.748660e+02 0.000000e+00 + vertex -7.850000e+01 1.748660e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 9.063010e-01 -0.000000e+00 + outer loop + vertex -7.715798e+01 1.749397e+02 -6.000000e+00 + vertex -7.715798e+01 1.749397e+02 -3.000000e+00 + vertex -7.700000e+01 1.748660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.134202e+01 1.749397e+02 -3.000000e+00 + vertex -7.250000e+01 1.750000e+02 -3.000000e+00 + vertex -7.150000e+01 1.748660e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex -7.150000e+01 1.748660e+02 0.000000e+00 + vertex -7.134202e+01 1.749397e+02 0.000000e+00 + vertex -7.150000e+01 1.748660e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex -7.134202e+01 1.749397e+02 0.000000e+00 + vertex -7.134202e+01 1.749397e+02 -3.000000e+00 + vertex -7.150000e+01 1.748660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.250000e+01 1.750000e+02 -3.000000e+00 + vertex 7.134202e+01 1.749397e+02 -3.000000e+00 + vertex 7.150000e+01 1.748660e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 9.063010e-01 0.000000e+00 + outer loop + vertex 7.134202e+01 1.749397e+02 -3.000000e+00 + vertex 7.150000e+01 1.748660e+02 0.000000e+00 + vertex 7.150000e+01 1.748660e+02 -3.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 9.063010e-01 -0.000000e+00 + outer loop + vertex 7.284202e+01 1.749397e+02 -6.000000e+00 + vertex 7.284202e+01 1.749397e+02 -3.000000e+00 + vertex 7.300000e+01 1.748660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.865798e+01 1.749397e+02 -3.000000e+00 + vertex 7.750000e+01 1.750000e+02 -3.000000e+00 + vertex 7.850000e+01 1.748660e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226491e-01 9.062934e-01 0.000000e+00 + outer loop + vertex 7.850000e+01 1.748660e+02 0.000000e+00 + vertex 7.865798e+01 1.749397e+02 0.000000e+00 + vertex 7.850000e+01 1.748660e+02 -3.000000e+00 + endloop + endfacet + facet normal -4.226491e-01 9.062934e-01 0.000000e+00 + outer loop + vertex 7.865798e+01 1.749397e+02 0.000000e+00 + vertex 7.865798e+01 1.749397e+02 -3.000000e+00 + vertex 7.850000e+01 1.748660e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.865798e+01 1.749397e+02 0.000000e+00 + vertex -7.900000e+01 1.750000e+02 0.000000e+00 + vertex -7.850000e+01 1.748660e+02 0.000000e+00 + endloop + endfacet + facet normal 4.226491e-01 9.062934e-01 -0.000000e+00 + outer loop + vertex -7.865798e+01 1.749397e+02 -3.000000e+00 + vertex -7.865798e+01 1.749397e+02 0.000000e+00 + vertex -7.850000e+01 1.748660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.100000e+01 1.750000e+02 0.000000e+00 + vertex -7.134202e+01 1.749397e+02 0.000000e+00 + vertex -7.150000e+01 1.748660e+02 0.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 9.063010e-01 -0.000000e+00 + outer loop + vertex 7.134202e+01 1.749397e+02 -3.000000e+00 + vertex 7.134202e+01 1.749397e+02 0.000000e+00 + vertex 7.150000e+01 1.748660e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.900000e+01 1.750000e+02 0.000000e+00 + vertex 7.865798e+01 1.749397e+02 0.000000e+00 + vertex 7.850000e+01 1.748660e+02 0.000000e+00 + endloop + endfacet + facet normal 4.226327e-01 9.063010e-01 -0.000000e+00 + outer loop + vertex 1.743420e+02 1.749397e+02 -6.000000e+00 + vertex 1.743420e+02 1.749397e+02 0.000000e+00 + vertex 1.745000e+02 1.748660e+02 0.000000e+00 + endloop + endfacet + facet normal -2.588543e-01 9.659164e-01 0.000000e+00 + outer loop + vertex -1.741737e+02 1.749848e+02 0.000000e+00 + vertex -1.741737e+02 1.749848e+02 -6.000000e+00 + vertex -1.743420e+02 1.749397e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588543e-01 9.659164e-01 0.000000e+00 + outer loop + vertex -1.743420e+02 1.749397e+02 0.000000e+00 + vertex -1.741737e+02 1.749848e+02 0.000000e+00 + vertex -1.743420e+02 1.749397e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 -1.000000e+00 + outer loop + vertex -7.750000e+01 1.750000e+02 -6.000000e+00 + vertex -7.732635e+01 1.749848e+02 -6.000000e+00 + vertex -7.715798e+01 1.749397e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588543e-01 9.659164e-01 0.000000e+00 + outer loop + vertex -7.732635e+01 1.749848e+02 -6.000000e+00 + vertex -7.715798e+01 1.749397e+02 -3.000000e+00 + vertex -7.715798e+01 1.749397e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588543e-01 9.659164e-01 0.000000e+00 + outer loop + vertex -7.284202e+01 1.749397e+02 -3.000000e+00 + vertex -7.267365e+01 1.749848e+02 -3.000000e+00 + vertex -7.284202e+01 1.749397e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588543e-01 9.659164e-01 0.000000e+00 + outer loop + vertex -7.267365e+01 1.749848e+02 -3.000000e+00 + vertex -7.267365e+01 1.749848e+02 -6.000000e+00 + vertex -7.284202e+01 1.749397e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588543e-01 9.659164e-01 0.000000e+00 + outer loop + vertex 7.267365e+01 1.749848e+02 -6.000000e+00 + vertex 7.284202e+01 1.749397e+02 -3.000000e+00 + vertex 7.284202e+01 1.749397e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588543e-01 9.659164e-01 0.000000e+00 + outer loop + vertex 7.715798e+01 1.749397e+02 -3.000000e+00 + vertex 7.732635e+01 1.749848e+02 -3.000000e+00 + vertex 7.715798e+01 1.749397e+02 -6.000000e+00 + endloop + endfacet + facet normal -2.588543e-01 9.659164e-01 0.000000e+00 + outer loop + vertex 7.732635e+01 1.749848e+02 -3.000000e+00 + vertex 7.732635e+01 1.749848e+02 -6.000000e+00 + vertex 7.715798e+01 1.749397e+02 -6.000000e+00 + endloop + endfacet + facet normal 2.588543e-01 9.659164e-01 0.000000e+00 + outer loop + vertex 1.741737e+02 1.749848e+02 -6.000000e+00 + vertex 1.743420e+02 1.749397e+02 0.000000e+00 + vertex 1.743420e+02 1.749397e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.750000e+01 1.750000e+02 -3.000000e+00 + vertex -7.882635e+01 1.749848e+02 -3.000000e+00 + vertex -7.865798e+01 1.749397e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588436e-01 9.659192e-01 0.000000e+00 + outer loop + vertex -7.882635e+01 1.749848e+02 -3.000000e+00 + vertex -7.865798e+01 1.749397e+02 0.000000e+00 + vertex -7.865798e+01 1.749397e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588543e-01 9.659164e-01 -0.000000e+00 + outer loop + vertex -7.732635e+01 1.749848e+02 -6.000000e+00 + vertex -7.732635e+01 1.749848e+02 -3.000000e+00 + vertex -7.715798e+01 1.749397e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.117365e+01 1.749848e+02 -3.000000e+00 + vertex -7.250000e+01 1.750000e+02 -3.000000e+00 + vertex -7.134202e+01 1.749397e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588436e-01 9.659192e-01 0.000000e+00 + outer loop + vertex -7.134202e+01 1.749397e+02 0.000000e+00 + vertex -7.117365e+01 1.749848e+02 0.000000e+00 + vertex -7.134202e+01 1.749397e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588436e-01 9.659192e-01 0.000000e+00 + outer loop + vertex -7.117365e+01 1.749848e+02 0.000000e+00 + vertex -7.117365e+01 1.749848e+02 -3.000000e+00 + vertex -7.134202e+01 1.749397e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.250000e+01 1.750000e+02 -3.000000e+00 + vertex 7.117365e+01 1.749848e+02 -3.000000e+00 + vertex 7.134202e+01 1.749397e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588436e-01 9.659192e-01 0.000000e+00 + outer loop + vertex 7.117365e+01 1.749848e+02 -3.000000e+00 + vertex 7.134202e+01 1.749397e+02 0.000000e+00 + vertex 7.134202e+01 1.749397e+02 -3.000000e+00 + endloop + endfacet + facet normal 2.588543e-01 9.659164e-01 -0.000000e+00 + outer loop + vertex 7.267365e+01 1.749848e+02 -6.000000e+00 + vertex 7.267365e+01 1.749848e+02 -3.000000e+00 + vertex 7.284202e+01 1.749397e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.882635e+01 1.749848e+02 -3.000000e+00 + vertex 7.750000e+01 1.750000e+02 -3.000000e+00 + vertex 7.865798e+01 1.749397e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588436e-01 9.659192e-01 0.000000e+00 + outer loop + vertex 7.865798e+01 1.749397e+02 0.000000e+00 + vertex 7.882635e+01 1.749848e+02 0.000000e+00 + vertex 7.865798e+01 1.749397e+02 -3.000000e+00 + endloop + endfacet + facet normal -2.588436e-01 9.659192e-01 0.000000e+00 + outer loop + vertex 7.882635e+01 1.749848e+02 0.000000e+00 + vertex 7.882635e+01 1.749848e+02 -3.000000e+00 + vertex 7.865798e+01 1.749397e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.882635e+01 1.749848e+02 0.000000e+00 + vertex -7.900000e+01 1.750000e+02 0.000000e+00 + vertex -7.865798e+01 1.749397e+02 0.000000e+00 + endloop + endfacet + facet normal 2.588436e-01 9.659192e-01 -0.000000e+00 + outer loop + vertex -7.882635e+01 1.749848e+02 -3.000000e+00 + vertex -7.882635e+01 1.749848e+02 0.000000e+00 + vertex -7.865798e+01 1.749397e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.100000e+01 1.750000e+02 0.000000e+00 + vertex -7.117365e+01 1.749848e+02 0.000000e+00 + vertex -7.134202e+01 1.749397e+02 0.000000e+00 + endloop + endfacet + facet normal 2.588436e-01 9.659192e-01 -0.000000e+00 + outer loop + vertex 7.117365e+01 1.749848e+02 -3.000000e+00 + vertex 7.117365e+01 1.749848e+02 0.000000e+00 + vertex 7.134202e+01 1.749397e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.900000e+01 1.750000e+02 0.000000e+00 + vertex 7.882635e+01 1.749848e+02 0.000000e+00 + vertex 7.865798e+01 1.749397e+02 0.000000e+00 + endloop + endfacet + facet normal 2.588543e-01 9.659164e-01 -0.000000e+00 + outer loop + vertex 1.741737e+02 1.749848e+02 -6.000000e+00 + vertex 1.741737e+02 1.749848e+02 0.000000e+00 + vertex 1.743420e+02 1.749397e+02 0.000000e+00 + endloop + endfacet + facet normal -8.710545e-02 9.961991e-01 0.000000e+00 + outer loop + vertex -1.740000e+02 1.750000e+02 0.000000e+00 + vertex -1.740000e+02 1.750000e+02 -6.000000e+00 + vertex -1.741737e+02 1.749848e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.710545e-02 9.961991e-01 0.000000e+00 + outer loop + vertex -1.741737e+02 1.749848e+02 0.000000e+00 + vertex -1.740000e+02 1.750000e+02 0.000000e+00 + vertex -1.741737e+02 1.749848e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.710916e-02 9.961988e-01 0.000000e+00 + outer loop + vertex -7.750000e+01 1.750000e+02 -6.000000e+00 + vertex -7.732635e+01 1.749848e+02 -3.000000e+00 + vertex -7.732635e+01 1.749848e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.710916e-02 9.961988e-01 0.000000e+00 + outer loop + vertex -7.267365e+01 1.749848e+02 -3.000000e+00 + vertex -7.250000e+01 1.750000e+02 -3.000000e+00 + vertex -7.267365e+01 1.749848e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.710916e-02 9.961988e-01 0.000000e+00 + outer loop + vertex -7.250000e+01 1.750000e+02 -3.000000e+00 + vertex -7.250000e+01 1.750000e+02 -6.000000e+00 + vertex -7.267365e+01 1.749848e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.710916e-02 9.961988e-01 0.000000e+00 + outer loop + vertex 7.250000e+01 1.750000e+02 -6.000000e+00 + vertex 7.267365e+01 1.749848e+02 -3.000000e+00 + vertex 7.267365e+01 1.749848e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.710916e-02 9.961988e-01 0.000000e+00 + outer loop + vertex 7.732635e+01 1.749848e+02 -3.000000e+00 + vertex 7.750000e+01 1.750000e+02 -3.000000e+00 + vertex 7.732635e+01 1.749848e+02 -6.000000e+00 + endloop + endfacet + facet normal -8.710916e-02 9.961988e-01 0.000000e+00 + outer loop + vertex 7.750000e+01 1.750000e+02 -3.000000e+00 + vertex 7.750000e+01 1.750000e+02 -6.000000e+00 + vertex 7.732635e+01 1.749848e+02 -6.000000e+00 + endloop + endfacet + facet normal 8.710545e-02 9.961991e-01 0.000000e+00 + outer loop + vertex 1.740000e+02 1.750000e+02 -6.000000e+00 + vertex 1.741737e+02 1.749848e+02 0.000000e+00 + vertex 1.741737e+02 1.749848e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.750000e+01 1.750000e+02 -3.000000e+00 + vertex -7.900000e+01 1.750000e+02 -3.000000e+00 + vertex -7.882635e+01 1.749848e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.710916e-02 9.961988e-01 0.000000e+00 + outer loop + vertex -7.900000e+01 1.750000e+02 -3.000000e+00 + vertex -7.882635e+01 1.749848e+02 0.000000e+00 + vertex -7.882635e+01 1.749848e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.710916e-02 9.961988e-01 -0.000000e+00 + outer loop + vertex -7.750000e+01 1.750000e+02 -6.000000e+00 + vertex -7.750000e+01 1.750000e+02 -3.000000e+00 + vertex -7.732635e+01 1.749848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex -7.100000e+01 1.750000e+02 -3.000000e+00 + vertex -7.250000e+01 1.750000e+02 -3.000000e+00 + vertex -7.117365e+01 1.749848e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.711287e-02 9.961984e-01 0.000000e+00 + outer loop + vertex -7.117365e+01 1.749848e+02 0.000000e+00 + vertex -7.100000e+01 1.750000e+02 0.000000e+00 + vertex -7.117365e+01 1.749848e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.711287e-02 9.961984e-01 0.000000e+00 + outer loop + vertex -7.100000e+01 1.750000e+02 0.000000e+00 + vertex -7.100000e+01 1.750000e+02 -3.000000e+00 + vertex -7.117365e+01 1.749848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.250000e+01 1.750000e+02 -3.000000e+00 + vertex 7.100000e+01 1.750000e+02 -3.000000e+00 + vertex 7.117365e+01 1.749848e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.711287e-02 9.961984e-01 0.000000e+00 + outer loop + vertex 7.100000e+01 1.750000e+02 -3.000000e+00 + vertex 7.117365e+01 1.749848e+02 0.000000e+00 + vertex 7.117365e+01 1.749848e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.710916e-02 9.961988e-01 -0.000000e+00 + outer loop + vertex 7.250000e+01 1.750000e+02 -6.000000e+00 + vertex 7.250000e+01 1.750000e+02 -3.000000e+00 + vertex 7.267365e+01 1.749848e+02 -3.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 0.000000e+00 1.000000e+00 + outer loop + vertex 7.900000e+01 1.750000e+02 -3.000000e+00 + vertex 7.750000e+01 1.750000e+02 -3.000000e+00 + vertex 7.882635e+01 1.749848e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.710916e-02 9.961988e-01 0.000000e+00 + outer loop + vertex 7.882635e+01 1.749848e+02 0.000000e+00 + vertex 7.900000e+01 1.750000e+02 0.000000e+00 + vertex 7.882635e+01 1.749848e+02 -3.000000e+00 + endloop + endfacet + facet normal -8.710916e-02 9.961988e-01 0.000000e+00 + outer loop + vertex 7.900000e+01 1.750000e+02 0.000000e+00 + vertex 7.900000e+01 1.750000e+02 -3.000000e+00 + vertex 7.882635e+01 1.749848e+02 -3.000000e+00 + endloop + endfacet + facet normal 8.710916e-02 9.961988e-01 -0.000000e+00 + outer loop + vertex -7.900000e+01 1.750000e+02 -3.000000e+00 + vertex -7.900000e+01 1.750000e+02 0.000000e+00 + vertex -7.882635e+01 1.749848e+02 0.000000e+00 + endloop + endfacet + facet normal 8.711287e-02 9.961984e-01 -0.000000e+00 + outer loop + vertex 7.100000e+01 1.750000e+02 -3.000000e+00 + vertex 7.100000e+01 1.750000e+02 0.000000e+00 + vertex 7.117365e+01 1.749848e+02 0.000000e+00 + endloop + endfacet + facet normal 8.710545e-02 9.961991e-01 -0.000000e+00 + outer loop + vertex 1.740000e+02 1.750000e+02 -6.000000e+00 + vertex 1.740000e+02 1.750000e+02 0.000000e+00 + vertex 1.741737e+02 1.749848e+02 0.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex -7.900000e+01 1.750000e+02 -3.000000e+00 + vertex -7.750000e+01 1.750000e+02 -6.000000e+00 + vertex -1.740000e+02 1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex -7.900000e+01 1.750000e+02 0.000000e+00 + vertex -7.900000e+01 1.750000e+02 -3.000000e+00 + vertex -1.740000e+02 1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex -1.740000e+02 1.750000e+02 0.000000e+00 + vertex -7.900000e+01 1.750000e+02 0.000000e+00 + vertex -1.740000e+02 1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex -7.900000e+01 1.750000e+02 -3.000000e+00 + vertex -7.750000e+01 1.750000e+02 -3.000000e+00 + vertex -7.750000e+01 1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex -7.100000e+01 1.750000e+02 -3.000000e+00 + vertex 7.250000e+01 1.750000e+02 -6.000000e+00 + vertex -7.250000e+01 1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex -7.250000e+01 1.750000e+02 -3.000000e+00 + vertex -7.100000e+01 1.750000e+02 -3.000000e+00 + vertex -7.250000e+01 1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex 7.100000e+01 1.750000e+02 -3.000000e+00 + vertex 7.250000e+01 1.750000e+02 -3.000000e+00 + vertex 7.250000e+01 1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex -7.100000e+01 1.750000e+02 -3.000000e+00 + vertex 7.100000e+01 1.750000e+02 -3.000000e+00 + vertex 7.250000e+01 1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex 7.750000e+01 1.750000e+02 -3.000000e+00 + vertex 7.900000e+01 1.750000e+02 -3.000000e+00 + vertex 7.750000e+01 1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex 7.900000e+01 1.750000e+02 -3.000000e+00 + vertex 1.740000e+02 1.750000e+02 -6.000000e+00 + vertex 7.750000e+01 1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex 7.900000e+01 1.750000e+02 -3.000000e+00 + vertex 1.740000e+02 1.750000e+02 0.000000e+00 + vertex 1.740000e+02 1.750000e+02 -6.000000e+00 + endloop + endfacet + facet normal 0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex 7.100000e+01 1.750000e+02 0.000000e+00 + vertex 7.100000e+01 1.750000e+02 -3.000000e+00 + vertex -7.100000e+01 1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex -7.100000e+01 1.750000e+02 0.000000e+00 + vertex 7.100000e+01 1.750000e+02 0.000000e+00 + vertex -7.100000e+01 1.750000e+02 -3.000000e+00 + endloop + endfacet + facet normal -0.000000e+00 1.000000e+00 0.000000e+00 + outer loop + vertex 7.900000e+01 1.750000e+02 0.000000e+00 + vertex 1.740000e+02 1.750000e+02 0.000000e+00 + vertex 7.900000e+01 1.750000e+02 -3.000000e+00 + endloop + endfacet +endsolid \ No newline at end of file diff --git a/src/glew/README.md b/src/glew/README.md index f31cd0ce2..a5942cac5 100644 --- a/src/glew/README.md +++ b/src/glew/README.md @@ -2,6 +2,8 @@ THIS IS NOT THE COMPLETE GLEW DISTRIBUTION. ONLY FILES NEEDED FOR COMPILING GLEW # GLEW - The OpenGL Extension Wrangler Library +The OpenGL Extension Wrangler Library (GLEW) is a cross-platform open-source C/C++ extension loading library. GLEW provides efficient run-time mechanisms for determining which OpenGL extensions are supported on the target platform. OpenGL core and extension functionality is exposed in a single header file. GLEW has been tested on a variety of operating systems, including Windows, Linux, Mac OS X, FreeBSD, Irix, and Solaris. + ![](http://glew.sourceforge.net/glew.png) http://glew.sourceforge.net/ @@ -12,40 +14,71 @@ https://github.com/nigels-com/glew [![Gitter](https://badges.gitter.im/nigels-com/glew.svg)](https://gitter.im/nigels-com/glew?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) [![Download](https://img.shields.io/sourceforge/dm/glew.svg)](https://sourceforge.net/projects/glew/files/latest/download) +## Table of Contents + +* [Downloads](#downloads) + * [Recent snapshots](#recent-snapshots) +* [Build](#build) + * [Linux and Mac](#linux-and-mac) + * [Using GNU Make](#using-gnu-make) + * [Install build tools](#install-build-tools) + * [Build](#build-1) + * [Linux EGL](#linux-egl) + * [Linux OSMesa](#linux-osmesa) + * [Linux mingw-w64](#linux-mingw-w64) + * [Using cmake](#using-cmake) + * [Install build tools](#install-build-tools-1) + * [Build](#build-2) + * [Windows](#windows) + * [Visual Studio](#visual-studio) + * [MSYS/Mingw](#msysmingw) + * [MSYS2/Mingw-w64](#msys2mingw-w64) +* [glewinfo](#glewinfo) +* [Code Generation](#code-generation) +* [Authors](#authors) +* [Contributions](#contributions) +* [Copyright and Licensing](#copyright-and-licensing) + ## Downloads -Current release is [2.0.0](https://sourceforge.net/projects/glew/files/glew/2.0.0/). +Current release is [2.1.0](https://sourceforge.net/projects/glew/files/glew/2.1.0/). [(Change Log)](http://glew.sourceforge.net/log.html) -Sources available as -[ZIP](https://sourceforge.net/projects/glew/files/glew/2.0.0/glew-2.0.0.zip/download) or -[TGZ](https://sourceforge.net/projects/glew/files/glew/2.0.0/glew-2.0.0.tgz/download). +Sources available as +[ZIP](https://sourceforge.net/projects/glew/files/glew/2.1.0/glew-2.1.0.zip/download) or +[TGZ](https://sourceforge.net/projects/glew/files/glew/2.1.0/glew-2.1.0.tgz/download). -Windows binaries for [32-bit and 64-bit](https://sourceforge.net/projects/glew/files/glew/2.0.0/glew-2.0.0-win32.zip/download). +Windows binaries for [32-bit and 64-bit](https://sourceforge.net/projects/glew/files/glew/2.1.0/glew-2.1.0-win32.zip/download). ### Recent snapshots Snapshots may contain new features, bug-fixes or new OpenGL extensions ahead of tested, official releases. -[glew-20160708.tgz](http://sourceforge.net/projects/glew/files/glew/snapshots/glew-20160708.tgz/download) -*GLEW 2.0.0 RC: Core context, EGL support, no MX* +[glew-20200115.tgz](https://sourceforge.net/projects/glew/files/glew/snapshots/glew-20200115.tgz/download) *GLEW 2.2.0 RC3: fixes* -[glew-20160402.tgz](http://sourceforge.net/projects/glew/files/glew/snapshots/glew-20160402.tgz/download) -*GLEW 2.0.0 RC: Core context, EGL support, no MX* +[glew-20190928.tgz](https://sourceforge.net/projects/glew/files/glew/snapshots/glew-20190928.tgz/download) *GLEW 2.2.0 RC2: New extensions, bug fixes* ## Build -From a downloaded tarball or zip archive: +It is highly recommended to build from a tgz or zip release snapshot. +The code generation workflow is a complex brew of gnu make, perl and python, that works best on Linux or Mac. +The code generation is known to work on Windows using [MSYS2](https://www.msys2.org/). +For most end-users of GLEW the official releases are the best choice, with first class support. ### Linux and Mac #### Using GNU Make +GNU make is the primary build system for GLEW, historically. +It includes targets for building the sources and headers, for maintenance purposes. + ##### Install build tools -Debian/Ubuntu/Mint: `$ sudo apt-get install build-essential libxmu-dev libxi-dev libgl-dev libosmesa-dev git` +Debian/Ubuntu/Mint: `$ sudo apt-get install build-essential libxmu-dev libxi-dev libgl-dev` -RedHat/CentOS/Fedora: `$ sudo yum install libXmu-devel libXi-devel libGL-devel git` +RedHat/CentOS/Fedora: `$ sudo yum install libXmu-devel libXi-devel libGL-devel` + +FreeBSD: `# pkg install xorg lang/gcc git cmake gmake bash python perl5` ##### Build @@ -53,24 +86,46 @@ RedHat/CentOS/Fedora: `$ sudo yum install libXmu-devel libXi-devel libGL-devel $ sudo make install $ make clean -Targets: `all, glew.lib, glew.bin, clean, install, uninstall` +Targets: `all, glew.lib (sub-targets: glew.lib.shared, glew.lib.static), glew.bin, clean, install, uninstall` Variables: `SYSTEM=linux-clang, GLEW_DEST=/usr/local, STRIP=` +_Note: you may need to call `make` in the **auto** folder first_ + +##### Linux EGL + + $ sudo apt install libegl1-mesa-dev + $ make SYSTEM=linux-egl + +##### Linux OSMesa + + $ sudo apt install libosmesa-dev + $ make SYSTEM=linux-osmesa + +##### Linux mingw-w64 + + $ sudo apt install mingw-w64 + $ make SYSTEM=linux-mingw32 + $ make SYSTEM=linux-mingw64 + #### Using cmake +The cmake build is mostly contributer maintained. +Due to the multitude of use cases this is maintained on a _best effort_ basis. +Pull requests are welcome. + *CMake 2.8.12 or higher is required.* ##### Install build tools -Debian/Ubuntu/Mint: `$ sudo apt-get install build-essential libXmu-dev libXi-dev libgl-dev git cmake` +Debian/Ubuntu/Mint: `$ sudo apt-get install build-essential libxmu-dev libxi-dev libgl-dev cmake git` -RedHat/CentOS/Fedora: `$ sudo yum install libXmu-devel libXi-devel libGL-devel git cmake` +RedHat/CentOS/Fedora: `$ sudo yum install libXmu-devel libXi-devel libGL-devel cmake git` ##### Build $ cd build - $ cmake ./cmake + $ cmake ./cmake $ make -j4 | Target | Description | @@ -94,9 +149,9 @@ RedHat/CentOS/Fedora: `$ sudo yum install libXmu-devel libXi-devel libGL-devel g #### Visual Studio -Use the provided Visual Studio project file in build/vc12/ +Use the provided Visual Studio project file in build/vc15/ -Projects for vc6 and vc10 are also provided +Projects for vc6, vc10, vc12 and vc14 are also provided #### MSYS/Mingw @@ -116,7 +171,7 @@ Available from [Msys2](http://msys2.github.io/) and/or [Mingw-w64](http://mingw- Requirements: bash, make, gcc - $ pacman -S gcc make mingw-w64-i686-gcc mingw-w64-x86_64-gcc + $ pacman -S gcc make mingw-w64-i686-gcc mingw-w64-x86_64-gcc $ make $ make install $ make install.all @@ -126,8 +181,8 @@ Alternative toolchain: `SYSTEM=msys, SYSTEM=msys-win32, SYSTEM=msys-win64` ## glewinfo `glewinfo` is a command-line tool useful for inspecting the capabilities of an -OpenGL implementation and GLEW support for that. Please include the output of -`glewinfo` with bug reports, as appropriate. +OpenGL implementation and GLEW support for that. Please include `glewinfo.txt` +with bug reports, as appropriate. --------------------------- GLEW Extension Info @@ -147,12 +202,12 @@ OpenGL implementation and GLEW support for that. Please include the output of glDrawRangeElements: OK glTexImage3D: OK glTexSubImage3D: OK - + ... ## Code Generation -A Unix or Mac environment is neded for building GLEW from scratch to +A Unix or Mac environment is needed for building GLEW from scratch to include new extensions, or customize the code generation. The extension data is regenerated from the top level source directory with: @@ -163,10 +218,6 @@ download a pre-generated (unsupported) snapshot: https://sourceforge.net/projects/glew/files/glew/snapshots/ -Travis-built snapshots are also available: - -https://glew.s3.amazonaws.com/index.html - ## Authors GLEW is currently maintained by [Nigel Stewart](https://github.com/nigels-com) @@ -175,20 +226,35 @@ with bug fixes, new OpenGL extension support and new releases. GLEW was developed by [Milan Ikits](http://www.cs.utah.edu/~ikits/) and [Marcelo Magallon](http://wwwvis.informatik.uni-stuttgart.de/~magallon/). Aaron Lefohn, Joe Kniss, and Chris Wyman were the first users and also -assisted with the design and debugging process. +assisted with the design and debugging process. The acronym GLEW originates from Aaron Lefohn. Pasi Kärkkäinen identified and fixed several problems with GLX and SDL. Nate Robins created the `wglinfo` utility, to -which modifications were made by Michael Wimmer. +which modifications were made by Michael Wimmer. + +## Contributions + +GLEW welcomes community contributions. Typically these are co-ordinated +via [Issues](https://github.com/nigels-com/glew/issues) or +[Pull Requests](https://github.com/nigels-com/glew/pulls) in the +GitHub web interface. + +Be sure to mention platform and compiler toolchain details when filing +a bug report. The output of `glewinfo` can be quite useful for discussion +also. + +Generally GLEW is usually released once a year, around the time of the Siggraph +computer graphics conference. If you're not using the current release +version of GLEW, be sure to check if the issue or bug is fixed there. ## Copyright and Licensing GLEW is originally derived from the EXTGL project by Lev Povalahev. -The source code is licensed under the -[Modified BSD License](http://glew.sourceforge.net/glew.txt), the +The source code is licensed under the +[Modified BSD License](http://glew.sourceforge.net/glew.txt), the [Mesa 3-D License](http://glew.sourceforge.net/mesa.txt) (MIT) and the [Khronos License](http://glew.sourceforge.net/khronos.txt) (MIT). -The automatic code generation scripts are released under the +The automatic code generation scripts are released under the [GNU GPL](http://glew.sourceforge.net/gpl.txt). diff --git a/src/glew/include/GL/glew.h b/src/glew/include/GL/glew.h index 702265c38..234591bb5 100644 --- a/src/glew/include/GL/glew.h +++ b/src/glew/include/GL/glew.h @@ -1,6 +1,6 @@ /* ** The OpenGL Extension Wrangler Library -** Copyright (C) 2008-2015, Nigel Stewart +** Copyright (C) 2008-2019, Nigel Stewart ** Copyright (C) 2002-2008, Milan Ikits ** Copyright (C) 2002-2008, Marcelo E. Magallon ** Copyright (C) 2002, Lev Povalahev @@ -93,7 +93,7 @@ #if defined(__REGAL_H__) #error Regal.h included before glew.h #endif -#if defined(__glext_h_) || defined(__GLEXT_H_) +#if defined(__glext_h_) || defined(__GLEXT_H_) || defined(__gl_glext_h_) #error glext.h included before glew.h #endif #if defined(__gl_ATI_h_) @@ -109,6 +109,7 @@ #define __X_GL_H #define __glext_h_ #define __GLEXT_H_ +#define __gl_glext_h_ #define __gl_ATI_h_ #if defined(_WIN32) @@ -218,15 +219,26 @@ typedef _W64 int ptrdiff_t; * (mem, 2004-01-04) */ -#include +#if defined(__APPLE__) || defined(__linux__) +# if defined(__cplusplus) +# include +# include +# else +# include +# include +# endif +#else + +# include /* SGI MIPSPro doesn't like stdint.h in C++ mode */ /* ID: 3376260 Solaris 9 has inttypes.h, but not stdint.h */ -#if (defined(__sgi) || defined(__sun)) && !defined(__GNUC__) -#include -#else -#include +# if (defined(__sgi) || defined(__sun)) && !defined(__GNUC__) +# include +# else +# include +# endif #endif #define GLEW_APIENTRY_DEFINED @@ -263,6 +275,9 @@ typedef _W64 int ptrdiff_t; #define GLEWAPIENTRY #endif +#define GLEW_VAR_EXPORT GLEWAPI +#define GLEW_FUN_EXPORT GLEWAPI + #ifdef __cplusplus extern "C" { #endif @@ -307,6 +322,8 @@ typedef struct __GLsync *GLsync; typedef char GLchar; +typedef void *GLeglImageOES; /* GL_EXT_EGL_image_storage */ + #define GL_ZERO 0 #define GL_FALSE 0 #define GL_LOGIC_OP 0x0BF1 @@ -1842,7 +1859,7 @@ typedef GLboolean (GLAPIENTRY * PFNGLISPROGRAMPROC) (GLuint program); typedef GLboolean (GLAPIENTRY * PFNGLISSHADERPROC) (GLuint shader); typedef void (GLAPIENTRY * PFNGLLINKPROGRAMPROC) (GLuint program); typedef void (GLAPIENTRY * PFNGLSHADERSOURCEPROC) (GLuint shader, GLsizei count, const GLchar *const* string, const GLint* length); -typedef void (GLAPIENTRY * PFNGLSTENCILFUNCSEPARATEPROC) (GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask); +typedef void (GLAPIENTRY * PFNGLSTENCILFUNCSEPARATEPROC) (GLenum face, GLenum func, GLint ref, GLuint mask); typedef void (GLAPIENTRY * PFNGLSTENCILMASKSEPARATEPROC) (GLenum face, GLuint mask); typedef void (GLAPIENTRY * PFNGLSTENCILOPSEPARATEPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); typedef void (GLAPIENTRY * PFNGLUNIFORM1FPROC) (GLint location, GLfloat v0); @@ -2493,6 +2510,46 @@ typedef void (GLAPIENTRY * PFNGLGETNUNIFORMDVPROC) (GLuint program, GLint locati #endif /* GL_VERSION_4_5 */ +/* ----------------------------- GL_VERSION_4_6 ---------------------------- */ + +#ifndef GL_VERSION_4_6 +#define GL_VERSION_4_6 1 + +#define GL_CONTEXT_FLAG_NO_ERROR_BIT 0x00000008 +#define GL_PARAMETER_BUFFER 0x80EE +#define GL_PARAMETER_BUFFER_BINDING 0x80EF +#define GL_TRANSFORM_FEEDBACK_OVERFLOW 0x82EC +#define GL_TRANSFORM_FEEDBACK_STREAM_OVERFLOW 0x82ED +#define GL_VERTICES_SUBMITTED 0x82EE +#define GL_PRIMITIVES_SUBMITTED 0x82EF +#define GL_VERTEX_SHADER_INVOCATIONS 0x82F0 +#define GL_TESS_CONTROL_SHADER_PATCHES 0x82F1 +#define GL_TESS_EVALUATION_SHADER_INVOCATIONS 0x82F2 +#define GL_GEOMETRY_SHADER_PRIMITIVES_EMITTED 0x82F3 +#define GL_FRAGMENT_SHADER_INVOCATIONS 0x82F4 +#define GL_COMPUTE_SHADER_INVOCATIONS 0x82F5 +#define GL_CLIPPING_INPUT_PRIMITIVES 0x82F6 +#define GL_CLIPPING_OUTPUT_PRIMITIVES 0x82F7 +#define GL_TEXTURE_MAX_ANISOTROPY 0x84FE +#define GL_MAX_TEXTURE_MAX_ANISOTROPY 0x84FF +#define GL_POLYGON_OFFSET_CLAMP 0x8E1B +#define GL_SHADER_BINARY_FORMAT_SPIR_V 0x9551 +#define GL_SPIR_V_BINARY 0x9552 +#define GL_SPIR_V_EXTENSIONS 0x9553 +#define GL_NUM_SPIR_V_EXTENSIONS 0x9554 + +typedef void (GLAPIENTRY * PFNGLMULTIDRAWARRAYSINDIRECTCOUNTPROC) (GLenum mode, const GLvoid *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride); +typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTPROC) (GLenum mode, GLenum type, const GLvoid *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride); +typedef void (GLAPIENTRY * PFNGLSPECIALIZESHADERPROC) (GLuint shader, const GLchar *pEntryPoint, GLuint numSpecializationConstants, const GLuint *pConstantIndex, const GLuint *pConstantValue); + +#define glMultiDrawArraysIndirectCount GLEW_GET_FUN(__glewMultiDrawArraysIndirectCount) +#define glMultiDrawElementsIndirectCount GLEW_GET_FUN(__glewMultiDrawElementsIndirectCount) +#define glSpecializeShader GLEW_GET_FUN(__glewSpecializeShader) + +#define GLEW_VERSION_4_6 GLEW_GET_VAR(__GLEW_VERSION_4_6) + +#endif /* GL_VERSION_4_6 */ + /* -------------------------- GL_3DFX_multisample -------------------------- */ #ifndef GL_3DFX_multisample @@ -2544,6 +2601,31 @@ typedef void (GLAPIENTRY * PFNGLTBUFFERMASK3DFXPROC) (GLuint mask); #endif /* GL_AMD_blend_minmax_factor */ +/* --------------------- GL_AMD_compressed_3DC_texture --------------------- */ + +#ifndef GL_AMD_compressed_3DC_texture +#define GL_AMD_compressed_3DC_texture 1 + +#define GL_3DC_X_AMD 0x87F9 +#define GL_3DC_XY_AMD 0x87FA + +#define GLEW_AMD_compressed_3DC_texture GLEW_GET_VAR(__GLEW_AMD_compressed_3DC_texture) + +#endif /* GL_AMD_compressed_3DC_texture */ + +/* --------------------- GL_AMD_compressed_ATC_texture --------------------- */ + +#ifndef GL_AMD_compressed_ATC_texture +#define GL_AMD_compressed_ATC_texture 1 + +#define GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD 0x87EE +#define GL_ATC_RGB_AMD 0x8C92 +#define GL_ATC_RGBA_EXPLICIT_ALPHA_AMD 0x8C93 + +#define GLEW_AMD_compressed_ATC_texture GLEW_GET_VAR(__GLEW_AMD_compressed_ATC_texture) + +#endif /* GL_AMD_compressed_ATC_texture */ + /* ----------------------- GL_AMD_conservative_depth ----------------------- */ #ifndef GL_AMD_conservative_depth @@ -2620,6 +2702,52 @@ typedef void (GLAPIENTRY * PFNGLBLENDFUNCSEPARATEINDEXEDAMDPROC) (GLuint buf, GL #endif /* GL_AMD_draw_buffers_blend */ +/* ---------------- GL_AMD_framebuffer_multisample_advanced ---------------- */ + +#ifndef GL_AMD_framebuffer_multisample_advanced +#define GL_AMD_framebuffer_multisample_advanced 1 + +#define GL_RENDERBUFFER_STORAGE_SAMPLES_AMD 0x91B2 +#define GL_MAX_COLOR_FRAMEBUFFER_SAMPLES_AMD 0x91B3 +#define GL_MAX_COLOR_FRAMEBUFFER_STORAGE_SAMPLES_AMD 0x91B4 +#define GL_MAX_DEPTH_STENCIL_FRAMEBUFFER_SAMPLES_AMD 0x91B5 +#define GL_NUM_SUPPORTED_MULTISAMPLE_MODES_AMD 0x91B6 +#define GL_SUPPORTED_MULTISAMPLE_MODES_AMD 0x91B7 + +typedef void (GLAPIENTRY * PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEADVANCEDAMDPROC) (GLuint renderbuffer, GLsizei samples, GLsizei storageSamples, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (GLAPIENTRY * PFNGLRENDERBUFFERSTORAGEMULTISAMPLEADVANCEDAMDPROC) (GLenum target, GLsizei samples, GLsizei storageSamples, GLenum internalformat, GLsizei width, GLsizei height); + +#define glNamedRenderbufferStorageMultisampleAdvancedAMD GLEW_GET_FUN(__glewNamedRenderbufferStorageMultisampleAdvancedAMD) +#define glRenderbufferStorageMultisampleAdvancedAMD GLEW_GET_FUN(__glewRenderbufferStorageMultisampleAdvancedAMD) + +#define GLEW_AMD_framebuffer_multisample_advanced GLEW_GET_VAR(__GLEW_AMD_framebuffer_multisample_advanced) + +#endif /* GL_AMD_framebuffer_multisample_advanced */ + +/* ------------------ GL_AMD_framebuffer_sample_positions ------------------ */ + +#ifndef GL_AMD_framebuffer_sample_positions +#define GL_AMD_framebuffer_sample_positions 1 + +#define GL_SUBSAMPLE_DISTANCE_AMD 0x883F +#define GL_PIXELS_PER_SAMPLE_PATTERN_X_AMD 0x91AE +#define GL_PIXELS_PER_SAMPLE_PATTERN_Y_AMD 0x91AF +#define GL_ALL_PIXELS_AMD 0xFFFFFFFF + +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERSAMPLEPOSITIONSFVAMDPROC) (GLenum target, GLuint numsamples, GLuint pixelindex, const GLfloat* values); +typedef void (GLAPIENTRY * PFNGLGETFRAMEBUFFERPARAMETERFVAMDPROC) (GLenum target, GLenum pname, GLuint numsamples, GLuint pixelindex, GLsizei size, GLfloat* values); +typedef void (GLAPIENTRY * PFNGLGETNAMEDFRAMEBUFFERPARAMETERFVAMDPROC) (GLuint framebuffer, GLenum pname, GLuint numsamples, GLuint pixelindex, GLsizei size, GLfloat* values); +typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERSAMPLEPOSITIONSFVAMDPROC) (GLuint framebuffer, GLuint numsamples, GLuint pixelindex, const GLfloat* values); + +#define glFramebufferSamplePositionsfvAMD GLEW_GET_FUN(__glewFramebufferSamplePositionsfvAMD) +#define glGetFramebufferParameterfvAMD GLEW_GET_FUN(__glewGetFramebufferParameterfvAMD) +#define glGetNamedFramebufferParameterfvAMD GLEW_GET_FUN(__glewGetNamedFramebufferParameterfvAMD) +#define glNamedFramebufferSamplePositionsfvAMD GLEW_GET_FUN(__glewNamedFramebufferSamplePositionsfvAMD) + +#define GLEW_AMD_framebuffer_sample_positions GLEW_GET_VAR(__GLEW_AMD_framebuffer_sample_positions) + +#endif /* GL_AMD_framebuffer_sample_positions */ + /* --------------------------- GL_AMD_gcn_shader --------------------------- */ #ifndef GL_AMD_gcn_shader @@ -2629,6 +2757,77 @@ typedef void (GLAPIENTRY * PFNGLBLENDFUNCSEPARATEINDEXEDAMDPROC) (GLuint buf, GL #endif /* GL_AMD_gcn_shader */ +/* ---------------------- GL_AMD_gpu_shader_half_float --------------------- */ + +#ifndef GL_AMD_gpu_shader_half_float +#define GL_AMD_gpu_shader_half_float 1 + +#define GL_FLOAT16_NV 0x8FF8 +#define GL_FLOAT16_VEC2_NV 0x8FF9 +#define GL_FLOAT16_VEC3_NV 0x8FFA +#define GL_FLOAT16_VEC4_NV 0x8FFB +#define GL_FLOAT16_MAT2_AMD 0x91C5 +#define GL_FLOAT16_MAT3_AMD 0x91C6 +#define GL_FLOAT16_MAT4_AMD 0x91C7 +#define GL_FLOAT16_MAT2x3_AMD 0x91C8 +#define GL_FLOAT16_MAT2x4_AMD 0x91C9 +#define GL_FLOAT16_MAT3x2_AMD 0x91CA +#define GL_FLOAT16_MAT3x4_AMD 0x91CB +#define GL_FLOAT16_MAT4x2_AMD 0x91CC +#define GL_FLOAT16_MAT4x3_AMD 0x91CD + +#define GLEW_AMD_gpu_shader_half_float GLEW_GET_VAR(__GLEW_AMD_gpu_shader_half_float) + +#endif /* GL_AMD_gpu_shader_half_float */ + +/* ------------------- GL_AMD_gpu_shader_half_float_fetch ------------------ */ + +#ifndef GL_AMD_gpu_shader_half_float_fetch +#define GL_AMD_gpu_shader_half_float_fetch 1 + +#define GL_FLOAT16_SAMPLER_1D_AMD 0x91CE +#define GL_FLOAT16_SAMPLER_2D_AMD 0x91CF +#define GL_FLOAT16_SAMPLER_3D_AMD 0x91D0 +#define GL_FLOAT16_SAMPLER_CUBE_AMD 0x91D1 +#define GL_FLOAT16_SAMPLER_2D_RECT_AMD 0x91D2 +#define GL_FLOAT16_SAMPLER_1D_ARRAY_AMD 0x91D3 +#define GL_FLOAT16_SAMPLER_2D_ARRAY_AMD 0x91D4 +#define GL_FLOAT16_SAMPLER_CUBE_MAP_ARRAY_AMD 0x91D5 +#define GL_FLOAT16_SAMPLER_BUFFER_AMD 0x91D6 +#define GL_FLOAT16_SAMPLER_2D_MULTISAMPLE_AMD 0x91D7 +#define GL_FLOAT16_SAMPLER_2D_MULTISAMPLE_ARRAY_AMD 0x91D8 +#define GL_FLOAT16_SAMPLER_1D_SHADOW_AMD 0x91D9 +#define GL_FLOAT16_SAMPLER_2D_SHADOW_AMD 0x91DA +#define GL_FLOAT16_SAMPLER_2D_RECT_SHADOW_AMD 0x91DB +#define GL_FLOAT16_SAMPLER_1D_ARRAY_SHADOW_AMD 0x91DC +#define GL_FLOAT16_SAMPLER_2D_ARRAY_SHADOW_AMD 0x91DD +#define GL_FLOAT16_SAMPLER_CUBE_SHADOW_AMD 0x91DE +#define GL_FLOAT16_SAMPLER_CUBE_MAP_ARRAY_SHADOW_AMD 0x91DF +#define GL_FLOAT16_IMAGE_1D_AMD 0x91E0 +#define GL_FLOAT16_IMAGE_2D_AMD 0x91E1 +#define GL_FLOAT16_IMAGE_3D_AMD 0x91E2 +#define GL_FLOAT16_IMAGE_2D_RECT_AMD 0x91E3 +#define GL_FLOAT16_IMAGE_CUBE_AMD 0x91E4 +#define GL_FLOAT16_IMAGE_1D_ARRAY_AMD 0x91E5 +#define GL_FLOAT16_IMAGE_2D_ARRAY_AMD 0x91E6 +#define GL_FLOAT16_IMAGE_CUBE_MAP_ARRAY_AMD 0x91E7 +#define GL_FLOAT16_IMAGE_BUFFER_AMD 0x91E8 +#define GL_FLOAT16_IMAGE_2D_MULTISAMPLE_AMD 0x91E9 +#define GL_FLOAT16_IMAGE_2D_MULTISAMPLE_ARRAY_AMD 0x91EA + +#define GLEW_AMD_gpu_shader_half_float_fetch GLEW_GET_VAR(__GLEW_AMD_gpu_shader_half_float_fetch) + +#endif /* GL_AMD_gpu_shader_half_float_fetch */ + +/* ------------------------ GL_AMD_gpu_shader_int16 ------------------------ */ + +#ifndef GL_AMD_gpu_shader_int16 +#define GL_AMD_gpu_shader_int16 1 + +#define GLEW_AMD_gpu_shader_int16 GLEW_GET_VAR(__GLEW_AMD_gpu_shader_int16) + +#endif /* GL_AMD_gpu_shader_int16 */ + /* ------------------------ GL_AMD_gpu_shader_int64 ------------------------ */ #ifndef GL_AMD_gpu_shader_int64 @@ -2771,6 +2970,17 @@ typedef void (GLAPIENTRY * PFNGLSELECTPERFMONITORCOUNTERSAMDPROC) (GLuint monito #endif /* GL_AMD_pinned_memory */ +/* ----------------------- GL_AMD_program_binary_Z400 ---------------------- */ + +#ifndef GL_AMD_program_binary_Z400 +#define GL_AMD_program_binary_Z400 1 + +#define GL_Z400_BINARY_AMD 0x8740 + +#define GLEW_AMD_program_binary_Z400 GLEW_GET_VAR(__GLEW_AMD_program_binary_Z400) + +#endif /* GL_AMD_program_binary_Z400 */ + /* ----------------------- GL_AMD_query_buffer_object ---------------------- */ #ifndef GL_AMD_query_buffer_object @@ -2804,7 +3014,7 @@ typedef void (GLAPIENTRY * PFNGLSETMULTISAMPLEFVAMDPROC) (GLenum pname, GLuint i #ifndef GL_AMD_seamless_cubemap_per_texture #define GL_AMD_seamless_cubemap_per_texture 1 -#define GL_TEXTURE_CUBE_MAP_SEAMLESS_ARB 0x884F +#define GL_TEXTURE_CUBE_MAP_SEAMLESS 0x884F #define GLEW_AMD_seamless_cubemap_per_texture GLEW_GET_VAR(__GLEW_AMD_seamless_cubemap_per_texture) @@ -2819,6 +3029,33 @@ typedef void (GLAPIENTRY * PFNGLSETMULTISAMPLEFVAMDPROC) (GLenum pname, GLuint i #endif /* GL_AMD_shader_atomic_counter_ops */ +/* -------------------------- GL_AMD_shader_ballot ------------------------- */ + +#ifndef GL_AMD_shader_ballot +#define GL_AMD_shader_ballot 1 + +#define GLEW_AMD_shader_ballot GLEW_GET_VAR(__GLEW_AMD_shader_ballot) + +#endif /* GL_AMD_shader_ballot */ + +/* ---------------- GL_AMD_shader_explicit_vertex_parameter ---------------- */ + +#ifndef GL_AMD_shader_explicit_vertex_parameter +#define GL_AMD_shader_explicit_vertex_parameter 1 + +#define GLEW_AMD_shader_explicit_vertex_parameter GLEW_GET_VAR(__GLEW_AMD_shader_explicit_vertex_parameter) + +#endif /* GL_AMD_shader_explicit_vertex_parameter */ + +/* ------------------- GL_AMD_shader_image_load_store_lod ------------------ */ + +#ifndef GL_AMD_shader_image_load_store_lod +#define GL_AMD_shader_image_load_store_lod 1 + +#define GLEW_AMD_shader_image_load_store_lod GLEW_GET_VAR(__GLEW_AMD_shader_image_load_store_lod) + +#endif /* GL_AMD_shader_image_load_store_lod */ + /* ---------------------- GL_AMD_shader_stencil_export --------------------- */ #ifndef GL_AMD_shader_stencil_export @@ -2889,6 +3126,15 @@ typedef void (GLAPIENTRY * PFNGLSTENCILOPVALUEAMDPROC) (GLenum face, GLuint valu #endif /* GL_AMD_stencil_operation_extended */ +/* --------------------- GL_AMD_texture_gather_bias_lod -------------------- */ + +#ifndef GL_AMD_texture_gather_bias_lod +#define GL_AMD_texture_gather_bias_lod 1 + +#define GLEW_AMD_texture_gather_bias_lod GLEW_GET_VAR(__GLEW_AMD_texture_gather_bias_lod) + +#endif /* GL_AMD_texture_gather_bias_lod */ + /* ------------------------ GL_AMD_texture_texture4 ------------------------ */ #ifndef GL_AMD_texture_texture4 @@ -2959,6 +3205,15 @@ typedef void (GLAPIENTRY * PFNGLTESSELLATIONMODEAMDPROC) (GLenum mode); #endif /* GL_AMD_vertex_shader_viewport_index */ +/* -------------------- GL_ANDROID_extension_pack_es31a -------------------- */ + +#ifndef GL_ANDROID_extension_pack_es31a +#define GL_ANDROID_extension_pack_es31a 1 + +#define GLEW_ANDROID_extension_pack_es31a GLEW_GET_VAR(__GLEW_ANDROID_extension_pack_es31a) + +#endif /* GL_ANDROID_extension_pack_es31a */ + /* ------------------------- GL_ANGLE_depth_texture ------------------------ */ #ifndef GL_ANGLE_depth_texture @@ -3175,6 +3430,47 @@ typedef void (GLAPIENTRY * PFNGLGETTRANSLATEDSHADERSOURCEANGLEPROC) (GLuint shad #endif /* GL_APPLE_client_storage */ +/* ------------------------- GL_APPLE_clip_distance ------------------------ */ + +#ifndef GL_APPLE_clip_distance +#define GL_APPLE_clip_distance 1 + +#define GL_MAX_CLIP_DISTANCES_APPLE 0x0D32 +#define GL_CLIP_DISTANCE0_APPLE 0x3000 +#define GL_CLIP_DISTANCE1_APPLE 0x3001 +#define GL_CLIP_DISTANCE2_APPLE 0x3002 +#define GL_CLIP_DISTANCE3_APPLE 0x3003 +#define GL_CLIP_DISTANCE4_APPLE 0x3004 +#define GL_CLIP_DISTANCE5_APPLE 0x3005 +#define GL_CLIP_DISTANCE6_APPLE 0x3006 +#define GL_CLIP_DISTANCE7_APPLE 0x3007 + +#define GLEW_APPLE_clip_distance GLEW_GET_VAR(__GLEW_APPLE_clip_distance) + +#endif /* GL_APPLE_clip_distance */ + +/* ------------------- GL_APPLE_color_buffer_packed_float ------------------ */ + +#ifndef GL_APPLE_color_buffer_packed_float +#define GL_APPLE_color_buffer_packed_float 1 + +#define GLEW_APPLE_color_buffer_packed_float GLEW_GET_VAR(__GLEW_APPLE_color_buffer_packed_float) + +#endif /* GL_APPLE_color_buffer_packed_float */ + +/* ---------------------- GL_APPLE_copy_texture_levels --------------------- */ + +#ifndef GL_APPLE_copy_texture_levels +#define GL_APPLE_copy_texture_levels 1 + +typedef void (GLAPIENTRY * PFNGLCOPYTEXTURELEVELSAPPLEPROC) (GLuint destinationTexture, GLuint sourceTexture, GLint sourceBaseLevel, GLsizei sourceLevelCount); + +#define glCopyTextureLevelsAPPLE GLEW_GET_FUN(__glewCopyTextureLevelsAPPLE) + +#define GLEW_APPLE_copy_texture_levels GLEW_GET_VAR(__GLEW_APPLE_copy_texture_levels) + +#endif /* GL_APPLE_copy_texture_levels */ + /* ------------------------- GL_APPLE_element_array ------------------------ */ #ifndef GL_APPLE_element_array @@ -3272,6 +3568,29 @@ typedef void (GLAPIENTRY * PFNGLFLUSHMAPPEDBUFFERRANGEAPPLEPROC) (GLenum target, #endif /* GL_APPLE_flush_buffer_range */ +/* -------------------- GL_APPLE_framebuffer_multisample ------------------- */ + +#ifndef GL_APPLE_framebuffer_multisample +#define GL_APPLE_framebuffer_multisample 1 + +#define GL_DRAW_FRAMEBUFFER_BINDING_APPLE 0x8CA6 +#define GL_READ_FRAMEBUFFER_APPLE 0x8CA8 +#define GL_DRAW_FRAMEBUFFER_APPLE 0x8CA9 +#define GL_READ_FRAMEBUFFER_BINDING_APPLE 0x8CAA +#define GL_RENDERBUFFER_SAMPLES_APPLE 0x8CAB +#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_APPLE 0x8D56 +#define GL_MAX_SAMPLES_APPLE 0x8D57 + +typedef void (GLAPIENTRY * PFNGLRENDERBUFFERSTORAGEMULTISAMPLEAPPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (GLAPIENTRY * PFNGLRESOLVEMULTISAMPLEFRAMEBUFFERAPPLEPROC) (void); + +#define glRenderbufferStorageMultisampleAPPLE GLEW_GET_FUN(__glewRenderbufferStorageMultisampleAPPLE) +#define glResolveMultisampleFramebufferAPPLE GLEW_GET_FUN(__glewResolveMultisampleFramebufferAPPLE) + +#define GLEW_APPLE_framebuffer_multisample GLEW_GET_VAR(__GLEW_APPLE_framebuffer_multisample) + +#endif /* GL_APPLE_framebuffer_multisample */ + /* ----------------------- GL_APPLE_object_purgeable ----------------------- */ #ifndef GL_APPLE_object_purgeable @@ -3344,6 +3663,94 @@ typedef GLenum (GLAPIENTRY * PFNGLOBJECTUNPURGEABLEAPPLEPROC) (GLenum objectType #endif /* GL_APPLE_specular_vector */ +/* ----------------------------- GL_APPLE_sync ----------------------------- */ + +#ifndef GL_APPLE_sync +#define GL_APPLE_sync 1 + +#define GL_SYNC_FLUSH_COMMANDS_BIT_APPLE 0x00000001 +#define GL_SYNC_OBJECT_APPLE 0x8A53 +#define GL_MAX_SERVER_WAIT_TIMEOUT_APPLE 0x9111 +#define GL_OBJECT_TYPE_APPLE 0x9112 +#define GL_SYNC_CONDITION_APPLE 0x9113 +#define GL_SYNC_STATUS_APPLE 0x9114 +#define GL_SYNC_FLAGS_APPLE 0x9115 +#define GL_SYNC_FENCE_APPLE 0x9116 +#define GL_SYNC_GPU_COMMANDS_COMPLETE_APPLE 0x9117 +#define GL_UNSIGNALED_APPLE 0x9118 +#define GL_SIGNALED_APPLE 0x9119 +#define GL_ALREADY_SIGNALED_APPLE 0x911A +#define GL_TIMEOUT_EXPIRED_APPLE 0x911B +#define GL_CONDITION_SATISFIED_APPLE 0x911C +#define GL_WAIT_FAILED_APPLE 0x911D +#define GL_TIMEOUT_IGNORED_APPLE 0xFFFFFFFFFFFFFFFFull + +typedef GLenum (GLAPIENTRY * PFNGLCLIENTWAITSYNCAPPLEPROC) (GLsync GLsync, GLbitfield flags, GLuint64 timeout); +typedef void (GLAPIENTRY * PFNGLDELETESYNCAPPLEPROC) (GLsync GLsync); +typedef GLsync (GLAPIENTRY * PFNGLFENCESYNCAPPLEPROC) (GLenum condition, GLbitfield flags); +typedef void (GLAPIENTRY * PFNGLGETINTEGER64VAPPLEPROC) (GLenum pname, GLint64* params); +typedef void (GLAPIENTRY * PFNGLGETSYNCIVAPPLEPROC) (GLsync GLsync, GLenum pname, GLsizei bufSize, GLsizei* length, GLint *values); +typedef GLboolean (GLAPIENTRY * PFNGLISSYNCAPPLEPROC) (GLsync GLsync); +typedef void (GLAPIENTRY * PFNGLWAITSYNCAPPLEPROC) (GLsync GLsync, GLbitfield flags, GLuint64 timeout); + +#define glClientWaitSyncAPPLE GLEW_GET_FUN(__glewClientWaitSyncAPPLE) +#define glDeleteSyncAPPLE GLEW_GET_FUN(__glewDeleteSyncAPPLE) +#define glFenceSyncAPPLE GLEW_GET_FUN(__glewFenceSyncAPPLE) +#define glGetInteger64vAPPLE GLEW_GET_FUN(__glewGetInteger64vAPPLE) +#define glGetSyncivAPPLE GLEW_GET_FUN(__glewGetSyncivAPPLE) +#define glIsSyncAPPLE GLEW_GET_FUN(__glewIsSyncAPPLE) +#define glWaitSyncAPPLE GLEW_GET_FUN(__glewWaitSyncAPPLE) + +#define GLEW_APPLE_sync GLEW_GET_VAR(__GLEW_APPLE_sync) + +#endif /* GL_APPLE_sync */ + +/* -------------------- GL_APPLE_texture_2D_limited_npot ------------------- */ + +#ifndef GL_APPLE_texture_2D_limited_npot +#define GL_APPLE_texture_2D_limited_npot 1 + +#define GLEW_APPLE_texture_2D_limited_npot GLEW_GET_VAR(__GLEW_APPLE_texture_2D_limited_npot) + +#endif /* GL_APPLE_texture_2D_limited_npot */ + +/* -------------------- GL_APPLE_texture_format_BGRA8888 ------------------- */ + +#ifndef GL_APPLE_texture_format_BGRA8888 +#define GL_APPLE_texture_format_BGRA8888 1 + +#define GL_BGRA_EXT 0x80E1 +#define GL_BGRA8_EXT 0x93A1 + +#define GLEW_APPLE_texture_format_BGRA8888 GLEW_GET_VAR(__GLEW_APPLE_texture_format_BGRA8888) + +#endif /* GL_APPLE_texture_format_BGRA8888 */ + +/* ----------------------- GL_APPLE_texture_max_level ---------------------- */ + +#ifndef GL_APPLE_texture_max_level +#define GL_APPLE_texture_max_level 1 + +#define GL_TEXTURE_MAX_LEVEL_APPLE 0x813D + +#define GLEW_APPLE_texture_max_level GLEW_GET_VAR(__GLEW_APPLE_texture_max_level) + +#endif /* GL_APPLE_texture_max_level */ + +/* --------------------- GL_APPLE_texture_packed_float --------------------- */ + +#ifndef GL_APPLE_texture_packed_float +#define GL_APPLE_texture_packed_float 1 + +#define GL_R11F_G11F_B10F_APPLE 0x8C3A +#define GL_UNSIGNED_INT_10F_11F_11F_REV_APPLE 0x8C3B +#define GL_RGB9_E5_APPLE 0x8C3D +#define GL_UNSIGNED_INT_5_9_9_9_REV_APPLE 0x8C3E + +#define GLEW_APPLE_texture_packed_float GLEW_GET_VAR(__GLEW_APPLE_texture_packed_float) + +#endif /* GL_APPLE_texture_packed_float */ + /* ------------------------- GL_APPLE_texture_range ------------------------ */ #ifndef GL_APPLE_texture_range @@ -3672,10 +4079,8 @@ typedef GLint (GLAPIENTRY * PFNGLGETFRAGDATAINDEXPROC) (GLuint program, const GL #define GL_BUFFER_STORAGE_FLAGS 0x8220 typedef void (GLAPIENTRY * PFNGLBUFFERSTORAGEPROC) (GLenum target, GLsizeiptr size, const void *data, GLbitfield flags); -typedef void (GLAPIENTRY * PFNGLNAMEDBUFFERSTORAGEEXTPROC) (GLuint buffer, GLsizeiptr size, const void *data, GLbitfield flags); #define glBufferStorage GLEW_GET_FUN(__glewBufferStorage) -#define glNamedBufferStorageEXT GLEW_GET_FUN(__glewNamedBufferStorageEXT) #define GLEW_ARB_buffer_storage GLEW_GET_VAR(__GLEW_ARB_buffer_storage) @@ -4023,7 +4428,7 @@ typedef void (GLAPIENTRY * PFNGLBLITNAMEDFRAMEBUFFERPROC) (GLuint readFramebuffe typedef GLenum (GLAPIENTRY * PFNGLCHECKNAMEDFRAMEBUFFERSTATUSPROC) (GLuint framebuffer, GLenum target); typedef void (GLAPIENTRY * PFNGLCLEARNAMEDBUFFERDATAPROC) (GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const void *data); typedef void (GLAPIENTRY * PFNGLCLEARNAMEDBUFFERSUBDATAPROC) (GLuint buffer, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data); -typedef void (GLAPIENTRY * PFNGLCLEARNAMEDFRAMEBUFFERFIPROC) (GLuint framebuffer, GLenum buffer, GLfloat depth, GLint stencil); +typedef void (GLAPIENTRY * PFNGLCLEARNAMEDFRAMEBUFFERFIPROC) (GLuint framebuffer, GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); typedef void (GLAPIENTRY * PFNGLCLEARNAMEDFRAMEBUFFERFVPROC) (GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLfloat* value); typedef void (GLAPIENTRY * PFNGLCLEARNAMEDFRAMEBUFFERIVPROC) (GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLint* value); typedef void (GLAPIENTRY * PFNGLCLEARNAMEDFRAMEBUFFERUIVPROC) (GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLuint* value); @@ -4055,10 +4460,10 @@ typedef void (GLAPIENTRY * PFNGLGETNAMEDBUFFERSUBDATAPROC) (GLuint buffer, GLint typedef void (GLAPIENTRY * PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVPROC) (GLuint framebuffer, GLenum attachment, GLenum pname, GLint* params); typedef void (GLAPIENTRY * PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVPROC) (GLuint framebuffer, GLenum pname, GLint* param); typedef void (GLAPIENTRY * PFNGLGETNAMEDRENDERBUFFERPARAMETERIVPROC) (GLuint renderbuffer, GLenum pname, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETQUERYBUFFEROBJECTI64VPROC) (GLuint id,GLuint buffer,GLenum pname,GLintptr offset); -typedef void (GLAPIENTRY * PFNGLGETQUERYBUFFEROBJECTIVPROC) (GLuint id,GLuint buffer,GLenum pname,GLintptr offset); -typedef void (GLAPIENTRY * PFNGLGETQUERYBUFFEROBJECTUI64VPROC) (GLuint id,GLuint buffer,GLenum pname,GLintptr offset); -typedef void (GLAPIENTRY * PFNGLGETQUERYBUFFEROBJECTUIVPROC) (GLuint id,GLuint buffer,GLenum pname,GLintptr offset); +typedef void (GLAPIENTRY * PFNGLGETQUERYBUFFEROBJECTI64VPROC) (GLuint id, GLuint buffer, GLenum pname, GLintptr offset); +typedef void (GLAPIENTRY * PFNGLGETQUERYBUFFEROBJECTIVPROC) (GLuint id, GLuint buffer, GLenum pname, GLintptr offset); +typedef void (GLAPIENTRY * PFNGLGETQUERYBUFFEROBJECTUI64VPROC) (GLuint id, GLuint buffer, GLenum pname, GLintptr offset); +typedef void (GLAPIENTRY * PFNGLGETQUERYBUFFEROBJECTUIVPROC) (GLuint id, GLuint buffer, GLenum pname, GLintptr offset); typedef void (GLAPIENTRY * PFNGLGETTEXTUREIMAGEPROC) (GLuint texture, GLint level, GLenum format, GLenum type, GLsizei bufSize, void *pixels); typedef void (GLAPIENTRY * PFNGLGETTEXTURELEVELPARAMETERFVPROC) (GLuint texture, GLint level, GLenum pname, GLfloat* params); typedef void (GLAPIENTRY * PFNGLGETTEXTURELEVELPARAMETERIVPROC) (GLuint texture, GLint level, GLenum pname, GLint* params); @@ -4274,9 +4679,9 @@ typedef void (GLAPIENTRY * PFNGLBLENDFUNCIARBPROC) (GLuint buf, GLenum src, GLen #define GL_ARB_draw_elements_base_vertex 1 typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSBASEVERTEXPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex); -typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount, GLint basevertex); +typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex); typedef void (GLAPIENTRY * PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex); -typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC) (GLenum mode, const GLsizei* count, GLenum type, const void *const *indices, GLsizei primcount, const GLint *basevertex); +typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC) (GLenum mode, const GLsizei* count, GLenum type, const void*const *indices, GLsizei drawcount, const GLint *basevertex); #define glDrawElementsBaseVertex GLEW_GET_FUN(__glewDrawElementsBaseVertex) #define glDrawElementsInstancedBaseVertex GLEW_GET_FUN(__glewDrawElementsInstancedBaseVertex) @@ -4663,6 +5068,22 @@ typedef void (GLAPIENTRY * PFNGLGETTEXTURESUBIMAGEPROC) (GLuint texture, GLint l #endif /* GL_ARB_get_texture_sub_image */ +/* ---------------------------- GL_ARB_gl_spirv ---------------------------- */ + +#ifndef GL_ARB_gl_spirv +#define GL_ARB_gl_spirv 1 + +#define GL_SHADER_BINARY_FORMAT_SPIR_V_ARB 0x9551 +#define GL_SPIR_V_BINARY_ARB 0x9552 + +typedef void (GLAPIENTRY * PFNGLSPECIALIZESHADERARBPROC) (GLuint shader, const GLchar* pEntryPoint, GLuint numSpecializationConstants, const GLuint* pConstantIndex, const GLuint* pConstantValue); + +#define glSpecializeShaderARB GLEW_GET_FUN(__glewSpecializeShaderARB) + +#define GLEW_ARB_gl_spirv GLEW_GET_VAR(__GLEW_ARB_gl_spirv) + +#endif /* GL_ARB_gl_spirv */ + /* --------------------------- GL_ARB_gpu_shader5 -------------------------- */ #ifndef GL_ARB_gpu_shader5 @@ -5562,6 +5983,21 @@ typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERFVARBPROC) (GLenum pname, const GL #endif /* GL_ARB_point_sprite */ +/* ---------------------- GL_ARB_polygon_offset_clamp ---------------------- */ + +#ifndef GL_ARB_polygon_offset_clamp +#define GL_ARB_polygon_offset_clamp 1 + +#define GL_POLYGON_OFFSET_CLAMP 0x8E1B + +typedef void (GLAPIENTRY * PFNGLPOLYGONOFFSETCLAMPPROC) (GLfloat factor, GLfloat units, GLfloat clamp); + +#define glPolygonOffsetClamp GLEW_GET_FUN(__glewPolygonOffsetClamp) + +#define GLEW_ARB_polygon_offset_clamp GLEW_GET_VAR(__GLEW_ARB_polygon_offset_clamp) + +#endif /* GL_ARB_polygon_offset_clamp */ + /* ----------------------- GL_ARB_post_depth_coverage ---------------------- */ #ifndef GL_ARB_post_depth_coverage @@ -6543,10 +6979,8 @@ typedef void (GLAPIENTRY * PFNGLBUFFERPAGECOMMITMENTARBPROC) (GLenum target, GLi #define GL_NUM_SPARSE_LEVELS_ARB 0x91AA typedef void (GLAPIENTRY * PFNGLTEXPAGECOMMITMENTARBPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit); -typedef void (GLAPIENTRY * PFNGLTEXTUREPAGECOMMITMENTEXTPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit); #define glTexPageCommitmentARB GLEW_GET_FUN(__glewTexPageCommitmentARB) -#define glTexturePageCommitmentEXT GLEW_GET_FUN(__glewTexturePageCommitmentEXT) #define GLEW_ARB_sparse_texture GLEW_GET_VAR(__GLEW_ARB_sparse_texture) @@ -6570,6 +7004,18 @@ typedef void (GLAPIENTRY * PFNGLTEXTUREPAGECOMMITMENTEXTPROC) (GLuint texture, G #endif /* GL_ARB_sparse_texture_clamp */ +/* ------------------------ GL_ARB_spirv_extensions ------------------------ */ + +#ifndef GL_ARB_spirv_extensions +#define GL_ARB_spirv_extensions 1 + +#define GL_SPIR_V_EXTENSIONS 0x9553 +#define GL_NUM_SPIR_V_EXTENSIONS 0x9554 + +#define GLEW_ARB_spirv_extensions GLEW_GET_VAR(__GLEW_ARB_spirv_extensions) + +#endif /* GL_ARB_spirv_extensions */ + /* ------------------------ GL_ARB_stencil_texturing ----------------------- */ #ifndef GL_ARB_stencil_texturing @@ -6600,7 +7046,7 @@ typedef void (GLAPIENTRY * PFNGLTEXTUREPAGECOMMITMENTEXTPROC) (GLuint texture, G #define GL_TIMEOUT_EXPIRED 0x911B #define GL_CONDITION_SATISFIED 0x911C #define GL_WAIT_FAILED 0x911D -#define GL_TIMEOUT_IGNORED 0xFFFFFFFFFFFFFFFF +#define GL_TIMEOUT_IGNORED 0xFFFFFFFFFFFFFFFFull typedef GLenum (GLAPIENTRY * PFNGLCLIENTWAITSYNCPROC) (GLsync GLsync,GLbitfield flags,GLuint64 timeout); typedef void (GLAPIENTRY * PFNGLDELETESYNCPROC) (GLsync GLsync); @@ -6907,6 +7353,18 @@ typedef void (GLAPIENTRY * PFNGLGETCOMPRESSEDTEXIMAGEARBPROC) (GLenum target, GL #endif /* GL_ARB_texture_env_dot3 */ +/* ------------------- GL_ARB_texture_filter_anisotropic ------------------- */ + +#ifndef GL_ARB_texture_filter_anisotropic +#define GL_ARB_texture_filter_anisotropic 1 + +#define GL_TEXTURE_MAX_ANISOTROPY 0x84FE +#define GL_MAX_TEXTURE_MAX_ANISOTROPY 0x84FF + +#define GLEW_ARB_texture_filter_anisotropic GLEW_GET_VAR(__GLEW_ARB_texture_filter_anisotropic) + +#endif /* GL_ARB_texture_filter_anisotropic */ + /* ---------------------- GL_ARB_texture_filter_minmax --------------------- */ #ifndef GL_ARB_texture_filter_minmax @@ -7135,16 +7593,10 @@ typedef void (GLAPIENTRY * PFNGLTEXIMAGE3DMULTISAMPLEPROC) (GLenum target, GLsiz typedef void (GLAPIENTRY * PFNGLTEXSTORAGE1DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); typedef void (GLAPIENTRY * PFNGLTEXSTORAGE2DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); typedef void (GLAPIENTRY * PFNGLTEXSTORAGE3DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); -typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGE1DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); -typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGE2DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGE3DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); #define glTexStorage1D GLEW_GET_FUN(__glewTexStorage1D) #define glTexStorage2D GLEW_GET_FUN(__glewTexStorage2D) #define glTexStorage3D GLEW_GET_FUN(__glewTexStorage3D) -#define glTextureStorage1DEXT GLEW_GET_FUN(__glewTextureStorage1DEXT) -#define glTextureStorage2DEXT GLEW_GET_FUN(__glewTextureStorage2DEXT) -#define glTextureStorage3DEXT GLEW_GET_FUN(__glewTextureStorage3DEXT) #define GLEW_ARB_texture_storage GLEW_GET_VAR(__GLEW_ARB_texture_storage) @@ -7363,7 +7815,7 @@ typedef void (GLAPIENTRY * PFNGLMULTTRANSPOSEMATRIXFARBPROC) (GLfloat m[16]); #define GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER 0x8A44 #define GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER 0x8A45 #define GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER 0x8A46 -#define GL_INVALID_INDEX 0xFFFFFFFF +#define GL_INVALID_INDEX 0xFFFFFFFFu typedef void (GLAPIENTRY * PFNGLBINDBUFFERBASEPROC) (GLenum target, GLuint index, GLuint buffer); typedef void (GLAPIENTRY * PFNGLBINDBUFFERRANGEPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); @@ -8069,6 +8521,71 @@ typedef void (GLAPIENTRY * PFNGLWINDOWPOS3SVARBPROC) (const GLshort* p); #endif /* GL_ARB_window_pos */ +/* ----------------------- GL_ARM_mali_program_binary ---------------------- */ + +#ifndef GL_ARM_mali_program_binary +#define GL_ARM_mali_program_binary 1 + +#define GL_MALI_PROGRAM_BINARY_ARM 0x8F61 + +#define GLEW_ARM_mali_program_binary GLEW_GET_VAR(__GLEW_ARM_mali_program_binary) + +#endif /* GL_ARM_mali_program_binary */ + +/* ----------------------- GL_ARM_mali_shader_binary ----------------------- */ + +#ifndef GL_ARM_mali_shader_binary +#define GL_ARM_mali_shader_binary 1 + +#define GL_MALI_SHADER_BINARY_ARM 0x8F60 + +#define GLEW_ARM_mali_shader_binary GLEW_GET_VAR(__GLEW_ARM_mali_shader_binary) + +#endif /* GL_ARM_mali_shader_binary */ + +/* ------------------------------ GL_ARM_rgba8 ----------------------------- */ + +#ifndef GL_ARM_rgba8 +#define GL_ARM_rgba8 1 + +#define GL_RGBA8_OES 0x8058 + +#define GLEW_ARM_rgba8 GLEW_GET_VAR(__GLEW_ARM_rgba8) + +#endif /* GL_ARM_rgba8 */ + +/* -------------------- GL_ARM_shader_framebuffer_fetch -------------------- */ + +#ifndef GL_ARM_shader_framebuffer_fetch +#define GL_ARM_shader_framebuffer_fetch 1 + +#define GL_FETCH_PER_SAMPLE_ARM 0x8F65 +#define GL_FRAGMENT_SHADER_FRAMEBUFFER_FETCH_MRT_ARM 0x8F66 + +#define GLEW_ARM_shader_framebuffer_fetch GLEW_GET_VAR(__GLEW_ARM_shader_framebuffer_fetch) + +#endif /* GL_ARM_shader_framebuffer_fetch */ + +/* ------------- GL_ARM_shader_framebuffer_fetch_depth_stencil ------------- */ + +#ifndef GL_ARM_shader_framebuffer_fetch_depth_stencil +#define GL_ARM_shader_framebuffer_fetch_depth_stencil 1 + +#define GLEW_ARM_shader_framebuffer_fetch_depth_stencil GLEW_GET_VAR(__GLEW_ARM_shader_framebuffer_fetch_depth_stencil) + +#endif /* GL_ARM_shader_framebuffer_fetch_depth_stencil */ + +/* ---------------- GL_ARM_texture_unnormalized_coordinates ---------------- */ + +#ifndef GL_ARM_texture_unnormalized_coordinates +#define GL_ARM_texture_unnormalized_coordinates 1 + +#define GL_TEXTURE_UNNORMALIZED_COORDINATES_ARM 0x8F6A + +#define GLEW_ARM_texture_unnormalized_coordinates GLEW_GET_VAR(__GLEW_ARM_texture_unnormalized_coordinates) + +#endif /* GL_ARM_texture_unnormalized_coordinates */ + /* ------------------------- GL_ATIX_point_sprites ------------------------- */ #ifndef GL_ATIX_point_sprites @@ -8620,6 +9137,30 @@ typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM4SVATIPROC) (GLenum stream, const GL #endif /* GL_ATI_vertex_streams */ +/* ------------------------- GL_DMP_program_binary ------------------------- */ + +#ifndef GL_DMP_program_binary +#define GL_DMP_program_binary 1 + +#define GL_SMAPHS30_PROGRAM_BINARY_DMP 0x9251 +#define GL_SMAPHS_PROGRAM_BINARY_DMP 0x9252 +#define GL_DMP_PROGRAM_BINARY_DMP 0x9253 + +#define GLEW_DMP_program_binary GLEW_GET_VAR(__GLEW_DMP_program_binary) + +#endif /* GL_DMP_program_binary */ + +/* -------------------------- GL_DMP_shader_binary ------------------------- */ + +#ifndef GL_DMP_shader_binary +#define GL_DMP_shader_binary 1 + +#define GL_SHADER_BINARY_DMP 0x9250 + +#define GLEW_DMP_shader_binary GLEW_GET_VAR(__GLEW_DMP_shader_binary) + +#endif /* GL_DMP_shader_binary */ + /* --------------------------- GL_EXT_422_pixels --------------------------- */ #ifndef GL_EXT_422_pixels @@ -8646,6 +9187,59 @@ typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM4SVATIPROC) (GLenum stream, const GL #endif /* GL_EXT_Cg_shader */ +/* ------------------------- GL_EXT_EGL_image_array ------------------------ */ + +#ifndef GL_EXT_EGL_image_array +#define GL_EXT_EGL_image_array 1 + +#define GLEW_EXT_EGL_image_array GLEW_GET_VAR(__GLEW_EXT_EGL_image_array) + +#endif /* GL_EXT_EGL_image_array */ + +/* ------------------ GL_EXT_EGL_image_external_wrap_modes ----------------- */ + +#ifndef GL_EXT_EGL_image_external_wrap_modes +#define GL_EXT_EGL_image_external_wrap_modes 1 + +#define GLEW_EXT_EGL_image_external_wrap_modes GLEW_GET_VAR(__GLEW_EXT_EGL_image_external_wrap_modes) + +#endif /* GL_EXT_EGL_image_external_wrap_modes */ + +/* ------------------------ GL_EXT_EGL_image_storage ----------------------- */ + +#ifndef GL_EXT_EGL_image_storage +#define GL_EXT_EGL_image_storage 1 + +typedef void (GLAPIENTRY * PFNGLEGLIMAGETARGETTEXSTORAGEEXTPROC) (GLenum target, GLeglImageOES image, const GLint* attrib_list); +typedef void (GLAPIENTRY * PFNGLEGLIMAGETARGETTEXTURESTORAGEEXTPROC) (GLuint texture, GLeglImageOES image, const GLint* attrib_list); + +#define glEGLImageTargetTexStorageEXT GLEW_GET_FUN(__glewEGLImageTargetTexStorageEXT) +#define glEGLImageTargetTextureStorageEXT GLEW_GET_FUN(__glewEGLImageTargetTextureStorageEXT) + +#define GLEW_EXT_EGL_image_storage GLEW_GET_VAR(__GLEW_EXT_EGL_image_storage) + +#endif /* GL_EXT_EGL_image_storage */ + +/* ---------------------------- GL_EXT_EGL_sync ---------------------------- */ + +#ifndef GL_EXT_EGL_sync +#define GL_EXT_EGL_sync 1 + +#define GLEW_EXT_EGL_sync GLEW_GET_VAR(__GLEW_EXT_EGL_sync) + +#endif /* GL_EXT_EGL_sync */ + +/* --------------------------- GL_EXT_YUV_target --------------------------- */ + +#ifndef GL_EXT_YUV_target +#define GL_EXT_YUV_target 1 + +#define GL_SAMPLER_EXTERNAL_2D_Y2Y_EXT 0x8BE7 + +#define GLEW_EXT_YUV_target GLEW_GET_VAR(__GLEW_EXT_YUV_target) + +#endif /* GL_EXT_YUV_target */ + /* ------------------------------ GL_EXT_abgr ------------------------------ */ #ifndef GL_EXT_abgr @@ -8657,6 +9251,23 @@ typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM4SVATIPROC) (GLenum stream, const GL #endif /* GL_EXT_abgr */ +/* -------------------------- GL_EXT_base_instance ------------------------- */ + +#ifndef GL_EXT_base_instance +#define GL_EXT_base_instance 1 + +typedef void (GLAPIENTRY * PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEEXTPROC) (GLenum mode, GLint first, GLsizei count, GLsizei instancecount, GLuint baseinstance); +typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEEXTPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLuint baseinstance); +typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEEXTPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex, GLuint baseinstance); + +#define glDrawArraysInstancedBaseInstanceEXT GLEW_GET_FUN(__glewDrawArraysInstancedBaseInstanceEXT) +#define glDrawElementsInstancedBaseInstanceEXT GLEW_GET_FUN(__glewDrawElementsInstancedBaseInstanceEXT) +#define glDrawElementsInstancedBaseVertexBaseInstanceEXT GLEW_GET_FUN(__glewDrawElementsInstancedBaseVertexBaseInstanceEXT) + +#define GLEW_EXT_base_instance GLEW_GET_VAR(__GLEW_EXT_base_instance) + +#endif /* GL_EXT_base_instance */ + /* ------------------------------ GL_EXT_bgra ------------------------------ */ #ifndef GL_EXT_bgra @@ -8728,6 +9339,31 @@ typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONSEPARATEEXTPROC) (GLenum modeRGB, G #endif /* GL_EXT_blend_equation_separate */ +/* ----------------------- GL_EXT_blend_func_extended ---------------------- */ + +#ifndef GL_EXT_blend_func_extended +#define GL_EXT_blend_func_extended 1 + +#define GL_SRC_ALPHA_SATURATE_EXT 0x0308 +#define GL_SRC1_ALPHA_EXT 0x8589 +#define GL_SRC1_COLOR_EXT 0x88F9 +#define GL_ONE_MINUS_SRC1_COLOR_EXT 0x88FA +#define GL_ONE_MINUS_SRC1_ALPHA_EXT 0x88FB +#define GL_MAX_DUAL_SOURCE_DRAW_BUFFERS_EXT 0x88FC +#define GL_LOCATION_INDEX_EXT 0x930F + +typedef void (GLAPIENTRY * PFNGLBINDFRAGDATALOCATIONINDEXEDEXTPROC) (GLuint program, GLuint colorNumber, GLuint index, const GLchar * name); +typedef GLint (GLAPIENTRY * PFNGLGETFRAGDATAINDEXEXTPROC) (GLuint program, const GLchar * name); +typedef GLint (GLAPIENTRY * PFNGLGETPROGRAMRESOURCELOCATIONINDEXEXTPROC) (GLuint program, GLenum programInterface, const GLchar* name); + +#define glBindFragDataLocationIndexedEXT GLEW_GET_FUN(__glewBindFragDataLocationIndexedEXT) +#define glGetFragDataIndexEXT GLEW_GET_FUN(__glewGetFragDataIndexEXT) +#define glGetProgramResourceLocationIndexEXT GLEW_GET_FUN(__glewGetProgramResourceLocationIndexEXT) + +#define GLEW_EXT_blend_func_extended GLEW_GET_VAR(__GLEW_EXT_blend_func_extended) + +#endif /* GL_EXT_blend_func_extended */ + /* ----------------------- GL_EXT_blend_func_separate ---------------------- */ #ifndef GL_EXT_blend_func_separate @@ -8785,6 +9421,87 @@ typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONEXTPROC) (GLenum mode); #endif /* GL_EXT_blend_subtract */ +/* ------------------------- GL_EXT_buffer_storage ------------------------- */ + +#ifndef GL_EXT_buffer_storage +#define GL_EXT_buffer_storage 1 + +#define GL_MAP_READ_BIT 0x0001 +#define GL_MAP_WRITE_BIT 0x0002 +#define GL_MAP_PERSISTENT_BIT_EXT 0x0040 +#define GL_MAP_COHERENT_BIT_EXT 0x0080 +#define GL_DYNAMIC_STORAGE_BIT_EXT 0x0100 +#define GL_CLIENT_STORAGE_BIT_EXT 0x0200 +#define GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT_EXT 0x00004000 +#define GL_BUFFER_IMMUTABLE_STORAGE_EXT 0x821F +#define GL_BUFFER_STORAGE_FLAGS_EXT 0x8220 + +typedef void (GLAPIENTRY * PFNGLBUFFERSTORAGEEXTPROC) (GLenum target, GLsizeiptr size, const void *data, GLbitfield flags); +typedef void (GLAPIENTRY * PFNGLNAMEDBUFFERSTORAGEEXTPROC) (GLuint buffer, GLsizeiptr size, const void *data, GLbitfield flags); + +#define glBufferStorageEXT GLEW_GET_FUN(__glewBufferStorageEXT) +#define glNamedBufferStorageEXT GLEW_GET_FUN(__glewNamedBufferStorageEXT) + +#define GLEW_EXT_buffer_storage GLEW_GET_VAR(__GLEW_EXT_buffer_storage) + +#endif /* GL_EXT_buffer_storage */ + +/* -------------------------- GL_EXT_clear_texture ------------------------- */ + +#ifndef GL_EXT_clear_texture +#define GL_EXT_clear_texture 1 + +typedef void (GLAPIENTRY * PFNGLCLEARTEXIMAGEEXTPROC) (GLuint texture, GLint level, GLenum format, GLenum type, const void *data); +typedef void (GLAPIENTRY * PFNGLCLEARTEXSUBIMAGEEXTPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *data); + +#define glClearTexImageEXT GLEW_GET_FUN(__glewClearTexImageEXT) +#define glClearTexSubImageEXT GLEW_GET_FUN(__glewClearTexSubImageEXT) + +#define GLEW_EXT_clear_texture GLEW_GET_VAR(__GLEW_EXT_clear_texture) + +#endif /* GL_EXT_clear_texture */ + +/* -------------------------- GL_EXT_clip_control -------------------------- */ + +#ifndef GL_EXT_clip_control +#define GL_EXT_clip_control 1 + +#define GL_LOWER_LEFT_EXT 0x8CA1 +#define GL_UPPER_LEFT_EXT 0x8CA2 +#define GL_CLIP_ORIGIN_EXT 0x935C +#define GL_CLIP_DEPTH_MODE_EXT 0x935D +#define GL_NEGATIVE_ONE_TO_ONE_EXT 0x935E +#define GL_ZERO_TO_ONE_EXT 0x935F + +typedef void (GLAPIENTRY * PFNGLCLIPCONTROLEXTPROC) (GLenum origin, GLenum depth); + +#define glClipControlEXT GLEW_GET_FUN(__glewClipControlEXT) + +#define GLEW_EXT_clip_control GLEW_GET_VAR(__GLEW_EXT_clip_control) + +#endif /* GL_EXT_clip_control */ + +/* ----------------------- GL_EXT_clip_cull_distance ----------------------- */ + +#ifndef GL_EXT_clip_cull_distance +#define GL_EXT_clip_cull_distance 1 + +#define GL_MAX_CLIP_DISTANCES_EXT 0x0D32 +#define GL_CLIP_DISTANCE0_EXT 0x3000 +#define GL_CLIP_DISTANCE1_EXT 0x3001 +#define GL_CLIP_DISTANCE2_EXT 0x3002 +#define GL_CLIP_DISTANCE3_EXT 0x3003 +#define GL_CLIP_DISTANCE4_EXT 0x3004 +#define GL_CLIP_DISTANCE5_EXT 0x3005 +#define GL_CLIP_DISTANCE6_EXT 0x3006 +#define GL_CLIP_DISTANCE7_EXT 0x3007 +#define GL_MAX_CULL_DISTANCES_EXT 0x82F9 +#define GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES_EXT 0x82FA + +#define GLEW_EXT_clip_cull_distance GLEW_GET_VAR(__GLEW_EXT_clip_cull_distance) + +#endif /* GL_EXT_clip_cull_distance */ + /* ------------------------ GL_EXT_clip_volume_hint ------------------------ */ #ifndef GL_EXT_clip_volume_hint @@ -8810,6 +9527,31 @@ typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONEXTPROC) (GLenum mode); #endif /* GL_EXT_cmyka */ +/* ----------------------- GL_EXT_color_buffer_float ----------------------- */ + +#ifndef GL_EXT_color_buffer_float +#define GL_EXT_color_buffer_float 1 + +#define GLEW_EXT_color_buffer_float GLEW_GET_VAR(__GLEW_EXT_color_buffer_float) + +#endif /* GL_EXT_color_buffer_float */ + +/* --------------------- GL_EXT_color_buffer_half_float -------------------- */ + +#ifndef GL_EXT_color_buffer_half_float +#define GL_EXT_color_buffer_half_float 1 + +#define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT 0x8211 +#define GL_R16F_EXT 0x822D +#define GL_RG16F_EXT 0x822F +#define GL_RGBA16F_EXT 0x881A +#define GL_RGB16F_EXT 0x881B +#define GL_UNSIGNED_NORMALIZED_EXT 0x8C17 + +#define GLEW_EXT_color_buffer_half_float GLEW_GET_VAR(__GLEW_EXT_color_buffer_half_float) + +#endif /* GL_EXT_color_buffer_half_float */ + /* ------------------------- GL_EXT_color_subtable ------------------------- */ #ifndef GL_EXT_color_subtable @@ -8843,6 +9585,24 @@ typedef void (GLAPIENTRY * PFNGLUNLOCKARRAYSEXTPROC) (void); #endif /* GL_EXT_compiled_vertex_array */ +/* ---------------- GL_EXT_compressed_ETC1_RGB8_sub_texture ---------------- */ + +#ifndef GL_EXT_compressed_ETC1_RGB8_sub_texture +#define GL_EXT_compressed_ETC1_RGB8_sub_texture 1 + +#define GLEW_EXT_compressed_ETC1_RGB8_sub_texture GLEW_GET_VAR(__GLEW_EXT_compressed_ETC1_RGB8_sub_texture) + +#endif /* GL_EXT_compressed_ETC1_RGB8_sub_texture */ + +/* ----------------------- GL_EXT_conservative_depth ----------------------- */ + +#ifndef GL_EXT_conservative_depth +#define GL_EXT_conservative_depth 1 + +#define GLEW_EXT_conservative_depth GLEW_GET_VAR(__GLEW_EXT_conservative_depth) + +#endif /* GL_EXT_conservative_depth */ + /* --------------------------- GL_EXT_convolution -------------------------- */ #ifndef GL_EXT_convolution @@ -8931,6 +9691,19 @@ typedef void (GLAPIENTRY * PFNGLTANGENTPOINTEREXTPROC) (GLenum type, GLsizei str #endif /* GL_EXT_coordinate_frame */ +/* --------------------------- GL_EXT_copy_image --------------------------- */ + +#ifndef GL_EXT_copy_image +#define GL_EXT_copy_image 1 + +typedef void (GLAPIENTRY * PFNGLCOPYIMAGESUBDATAEXTPROC) (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth); + +#define glCopyImageSubDataEXT GLEW_GET_FUN(__glewCopyImageSubDataEXT) + +#define GLEW_EXT_copy_image GLEW_GET_VAR(__GLEW_EXT_copy_image) + +#endif /* GL_EXT_copy_image */ + /* -------------------------- GL_EXT_copy_texture -------------------------- */ #ifndef GL_EXT_copy_texture @@ -9026,6 +9799,17 @@ typedef void (GLAPIENTRY * PFNGLDEPTHBOUNDSEXTPROC) (GLclampd zmin, GLclampd zma #endif /* GL_EXT_depth_bounds_test */ +/* --------------------------- GL_EXT_depth_clamp -------------------------- */ + +#ifndef GL_EXT_depth_clamp +#define GL_EXT_depth_clamp 1 + +#define GL_DEPTH_CLAMP_EXT 0x864F + +#define GLEW_EXT_depth_clamp GLEW_GET_VAR(__GLEW_EXT_depth_clamp) + +#endif /* GL_EXT_depth_clamp */ + /* ----------------------- GL_EXT_direct_state_access ---------------------- */ #ifndef GL_EXT_direct_state_access @@ -9469,6 +10253,110 @@ typedef void (GLAPIENTRY * PFNGLVERTEXARRAYVERTEXOFFSETEXTPROC) (GLuint vaobj, G #endif /* GL_EXT_direct_state_access */ +/* ----------------------- GL_EXT_discard_framebuffer ---------------------- */ + +#ifndef GL_EXT_discard_framebuffer +#define GL_EXT_discard_framebuffer 1 + +#define GL_COLOR_EXT 0x1800 +#define GL_DEPTH_EXT 0x1801 +#define GL_STENCIL_EXT 0x1802 + +typedef void (GLAPIENTRY * PFNGLDISCARDFRAMEBUFFEREXTPROC) (GLenum target, GLsizei numAttachments, const GLenum* attachments); + +#define glDiscardFramebufferEXT GLEW_GET_FUN(__glewDiscardFramebufferEXT) + +#define GLEW_EXT_discard_framebuffer GLEW_GET_VAR(__GLEW_EXT_discard_framebuffer) + +#endif /* GL_EXT_discard_framebuffer */ + +/* ---------------------- GL_EXT_disjoint_timer_query ---------------------- */ + +#ifndef GL_EXT_disjoint_timer_query +#define GL_EXT_disjoint_timer_query 1 + +#define GL_QUERY_COUNTER_BITS_EXT 0x8864 +#define GL_CURRENT_QUERY_EXT 0x8865 +#define GL_QUERY_RESULT_EXT 0x8866 +#define GL_QUERY_RESULT_AVAILABLE_EXT 0x8867 +#define GL_TIME_ELAPSED_EXT 0x88BF +#define GL_TIMESTAMP_EXT 0x8E28 +#define GL_GPU_DISJOINT_EXT 0x8FBB + +typedef void (GLAPIENTRY * PFNGLBEGINQUERYEXTPROC) (GLenum target, GLuint id); +typedef void (GLAPIENTRY * PFNGLDELETEQUERIESEXTPROC) (GLsizei n, const GLuint* ids); +typedef void (GLAPIENTRY * PFNGLENDQUERYEXTPROC) (GLenum target); +typedef void (GLAPIENTRY * PFNGLGENQUERIESEXTPROC) (GLsizei n, GLuint* ids); +typedef void (GLAPIENTRY * PFNGLGETINTEGER64VEXTPROC) (GLenum pname, GLint64* data); +typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTIVEXTPROC) (GLuint id, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTUIVEXTPROC) (GLuint id, GLenum pname, GLuint* params); +typedef void (GLAPIENTRY * PFNGLGETQUERYIVEXTPROC) (GLenum target, GLenum pname, GLint* params); +typedef GLboolean (GLAPIENTRY * PFNGLISQUERYEXTPROC) (GLuint id); +typedef void (GLAPIENTRY * PFNGLQUERYCOUNTEREXTPROC) (GLuint id, GLenum target); + +#define glBeginQueryEXT GLEW_GET_FUN(__glewBeginQueryEXT) +#define glDeleteQueriesEXT GLEW_GET_FUN(__glewDeleteQueriesEXT) +#define glEndQueryEXT GLEW_GET_FUN(__glewEndQueryEXT) +#define glGenQueriesEXT GLEW_GET_FUN(__glewGenQueriesEXT) +#define glGetInteger64vEXT GLEW_GET_FUN(__glewGetInteger64vEXT) +#define glGetQueryObjectivEXT GLEW_GET_FUN(__glewGetQueryObjectivEXT) +#define glGetQueryObjectuivEXT GLEW_GET_FUN(__glewGetQueryObjectuivEXT) +#define glGetQueryivEXT GLEW_GET_FUN(__glewGetQueryivEXT) +#define glIsQueryEXT GLEW_GET_FUN(__glewIsQueryEXT) +#define glQueryCounterEXT GLEW_GET_FUN(__glewQueryCounterEXT) + +#define GLEW_EXT_disjoint_timer_query GLEW_GET_VAR(__GLEW_EXT_disjoint_timer_query) + +#endif /* GL_EXT_disjoint_timer_query */ + +/* -------------------------- GL_EXT_draw_buffers -------------------------- */ + +#ifndef GL_EXT_draw_buffers +#define GL_EXT_draw_buffers 1 + +#define GL_MAX_DRAW_BUFFERS_EXT 0x8824 +#define GL_DRAW_BUFFER0_EXT 0x8825 +#define GL_DRAW_BUFFER1_EXT 0x8826 +#define GL_DRAW_BUFFER2_EXT 0x8827 +#define GL_DRAW_BUFFER3_EXT 0x8828 +#define GL_DRAW_BUFFER4_EXT 0x8829 +#define GL_DRAW_BUFFER5_EXT 0x882A +#define GL_DRAW_BUFFER6_EXT 0x882B +#define GL_DRAW_BUFFER7_EXT 0x882C +#define GL_DRAW_BUFFER8_EXT 0x882D +#define GL_DRAW_BUFFER9_EXT 0x882E +#define GL_DRAW_BUFFER10_EXT 0x882F +#define GL_DRAW_BUFFER11_EXT 0x8830 +#define GL_DRAW_BUFFER12_EXT 0x8831 +#define GL_DRAW_BUFFER13_EXT 0x8832 +#define GL_DRAW_BUFFER14_EXT 0x8833 +#define GL_DRAW_BUFFER15_EXT 0x8834 +#define GL_MAX_COLOR_ATTACHMENTS_EXT 0x8CDF +#define GL_COLOR_ATTACHMENT0_EXT 0x8CE0 +#define GL_COLOR_ATTACHMENT1_EXT 0x8CE1 +#define GL_COLOR_ATTACHMENT2_EXT 0x8CE2 +#define GL_COLOR_ATTACHMENT3_EXT 0x8CE3 +#define GL_COLOR_ATTACHMENT4_EXT 0x8CE4 +#define GL_COLOR_ATTACHMENT5_EXT 0x8CE5 +#define GL_COLOR_ATTACHMENT6_EXT 0x8CE6 +#define GL_COLOR_ATTACHMENT7_EXT 0x8CE7 +#define GL_COLOR_ATTACHMENT8_EXT 0x8CE8 +#define GL_COLOR_ATTACHMENT9_EXT 0x8CE9 +#define GL_COLOR_ATTACHMENT10_EXT 0x8CEA +#define GL_COLOR_ATTACHMENT11_EXT 0x8CEB +#define GL_COLOR_ATTACHMENT12_EXT 0x8CEC +#define GL_COLOR_ATTACHMENT13_EXT 0x8CED +#define GL_COLOR_ATTACHMENT14_EXT 0x8CEE +#define GL_COLOR_ATTACHMENT15_EXT 0x8CEF + +typedef void (GLAPIENTRY * PFNGLDRAWBUFFERSEXTPROC) (GLsizei n, const GLenum* bufs); + +#define glDrawBuffersEXT GLEW_GET_FUN(__glewDrawBuffersEXT) + +#define GLEW_EXT_draw_buffers GLEW_GET_VAR(__GLEW_EXT_draw_buffers) + +#endif /* GL_EXT_draw_buffers */ + /* -------------------------- GL_EXT_draw_buffers2 ------------------------- */ #ifndef GL_EXT_draw_buffers2 @@ -9492,6 +10380,52 @@ typedef GLboolean (GLAPIENTRY * PFNGLISENABLEDINDEXEDEXTPROC) (GLenum target, GL #endif /* GL_EXT_draw_buffers2 */ +/* ---------------------- GL_EXT_draw_buffers_indexed ---------------------- */ + +#ifndef GL_EXT_draw_buffers_indexed +#define GL_EXT_draw_buffers_indexed 1 + +typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONSEPARATEIEXTPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha); +typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONIEXTPROC) (GLuint buf, GLenum mode); +typedef void (GLAPIENTRY * PFNGLBLENDFUNCSEPARATEIEXTPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); +typedef void (GLAPIENTRY * PFNGLBLENDFUNCIEXTPROC) (GLuint buf, GLenum src, GLenum dst); +typedef void (GLAPIENTRY * PFNGLCOLORMASKIEXTPROC) (GLuint buf, GLboolean r, GLboolean g, GLboolean b, GLboolean a); +typedef void (GLAPIENTRY * PFNGLDISABLEIEXTPROC) (GLenum target, GLuint index); +typedef void (GLAPIENTRY * PFNGLENABLEIEXTPROC) (GLenum target, GLuint index); +typedef GLboolean (GLAPIENTRY * PFNGLISENABLEDIEXTPROC) (GLenum target, GLuint index); + +#define glBlendEquationSeparateiEXT GLEW_GET_FUN(__glewBlendEquationSeparateiEXT) +#define glBlendEquationiEXT GLEW_GET_FUN(__glewBlendEquationiEXT) +#define glBlendFuncSeparateiEXT GLEW_GET_FUN(__glewBlendFuncSeparateiEXT) +#define glBlendFunciEXT GLEW_GET_FUN(__glewBlendFunciEXT) +#define glColorMaskiEXT GLEW_GET_FUN(__glewColorMaskiEXT) +#define glDisableiEXT GLEW_GET_FUN(__glewDisableiEXT) +#define glEnableiEXT GLEW_GET_FUN(__glewEnableiEXT) +#define glIsEnablediEXT GLEW_GET_FUN(__glewIsEnablediEXT) + +#define GLEW_EXT_draw_buffers_indexed GLEW_GET_VAR(__GLEW_EXT_draw_buffers_indexed) + +#endif /* GL_EXT_draw_buffers_indexed */ + +/* -------------------- GL_EXT_draw_elements_base_vertex ------------------- */ + +#ifndef GL_EXT_draw_elements_base_vertex +#define GL_EXT_draw_elements_base_vertex 1 + +typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSBASEVERTEXEXTPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex); +typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXEXTPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex); +typedef void (GLAPIENTRY * PFNGLDRAWRANGEELEMENTSBASEVERTEXEXTPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex); +typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTSBASEVERTEXEXTPROC) (GLenum mode, const GLsizei* count, GLenum type, const void *const *indices, GLsizei primcount, const GLint *basevertex); + +#define glDrawElementsBaseVertexEXT GLEW_GET_FUN(__glewDrawElementsBaseVertexEXT) +#define glDrawElementsInstancedBaseVertexEXT GLEW_GET_FUN(__glewDrawElementsInstancedBaseVertexEXT) +#define glDrawRangeElementsBaseVertexEXT GLEW_GET_FUN(__glewDrawRangeElementsBaseVertexEXT) +#define glMultiDrawElementsBaseVertexEXT GLEW_GET_FUN(__glewMultiDrawElementsBaseVertexEXT) + +#define GLEW_EXT_draw_elements_base_vertex GLEW_GET_VAR(__GLEW_EXT_draw_elements_base_vertex) + +#endif /* GL_EXT_draw_elements_base_vertex */ + /* ------------------------- GL_EXT_draw_instanced ------------------------- */ #ifndef GL_EXT_draw_instanced @@ -9523,6 +10457,47 @@ typedef void (GLAPIENTRY * PFNGLDRAWRANGEELEMENTSEXTPROC) (GLenum mode, GLuint s #endif /* GL_EXT_draw_range_elements */ +/* --------------------- GL_EXT_draw_transform_feedback -------------------- */ + +#ifndef GL_EXT_draw_transform_feedback +#define GL_EXT_draw_transform_feedback 1 + +typedef void (GLAPIENTRY * PFNGLDRAWTRANSFORMFEEDBACKEXTPROC) (GLenum mode, GLuint id); +typedef void (GLAPIENTRY * PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDEXTPROC) (GLenum mode, GLuint id, GLsizei instancecount); + +#define glDrawTransformFeedbackEXT GLEW_GET_FUN(__glewDrawTransformFeedbackEXT) +#define glDrawTransformFeedbackInstancedEXT GLEW_GET_FUN(__glewDrawTransformFeedbackInstancedEXT) + +#define GLEW_EXT_draw_transform_feedback GLEW_GET_VAR(__GLEW_EXT_draw_transform_feedback) + +#endif /* GL_EXT_draw_transform_feedback */ + +/* ------------------------- GL_EXT_external_buffer ------------------------ */ + +#ifndef GL_EXT_external_buffer +#define GL_EXT_external_buffer 1 + +typedef void* GLeglClientBufferEXT; + +typedef void (GLAPIENTRY * PFNGLBUFFERSTORAGEEXTERNALEXTPROC) (GLenum target, GLintptr offset, GLsizeiptr size, GLeglClientBufferEXT clientBuffer, GLbitfield flags); +typedef void (GLAPIENTRY * PFNGLNAMEDBUFFERSTORAGEEXTERNALEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, GLeglClientBufferEXT clientBuffer, GLbitfield flags); + +#define glBufferStorageExternalEXT GLEW_GET_FUN(__glewBufferStorageExternalEXT) +#define glNamedBufferStorageExternalEXT GLEW_GET_FUN(__glewNamedBufferStorageExternalEXT) + +#define GLEW_EXT_external_buffer GLEW_GET_VAR(__GLEW_EXT_external_buffer) + +#endif /* GL_EXT_external_buffer */ + +/* --------------------------- GL_EXT_float_blend -------------------------- */ + +#ifndef GL_EXT_float_blend +#define GL_EXT_float_blend 1 + +#define GLEW_EXT_float_blend GLEW_GET_VAR(__GLEW_EXT_float_blend) + +#endif /* GL_EXT_float_blend */ + /* ---------------------------- GL_EXT_fog_coord --------------------------- */ #ifndef GL_EXT_fog_coord @@ -9553,6 +10528,15 @@ typedef void (GLAPIENTRY * PFNGLFOGCOORDFVEXTPROC) (const GLfloat *coord); #endif /* GL_EXT_fog_coord */ +/* --------------------------- GL_EXT_frag_depth --------------------------- */ + +#ifndef GL_EXT_frag_depth +#define GL_EXT_frag_depth 1 + +#define GLEW_EXT_frag_depth GLEW_GET_VAR(__GLEW_EXT_frag_depth) + +#endif /* GL_EXT_frag_depth */ + /* ------------------------ GL_EXT_fragment_lighting ----------------------- */ #ifndef GL_EXT_fragment_lighting @@ -9771,6 +10755,92 @@ typedef void (GLAPIENTRY * PFNGLRENDERBUFFERSTORAGEEXTPROC) (GLenum target, GLen #endif /* GL_EXT_framebuffer_sRGB */ +/* ----------------------- GL_EXT_geometry_point_size ---------------------- */ + +#ifndef GL_EXT_geometry_point_size +#define GL_EXT_geometry_point_size 1 + +#define GL_GEOMETRY_SHADER_BIT_EXT 0x00000004 +#define GL_LINES_ADJACENCY_EXT 0xA +#define GL_LINE_STRIP_ADJACENCY_EXT 0xB +#define GL_TRIANGLES_ADJACENCY_EXT 0xC +#define GL_TRIANGLE_STRIP_ADJACENCY_EXT 0xD +#define GL_LAYER_PROVOKING_VERTEX_EXT 0x825E +#define GL_UNDEFINED_VERTEX_EXT 0x8260 +#define GL_GEOMETRY_SHADER_INVOCATIONS_EXT 0x887F +#define GL_GEOMETRY_LINKED_VERTICES_OUT_EXT 0x8916 +#define GL_GEOMETRY_LINKED_INPUT_TYPE_EXT 0x8917 +#define GL_GEOMETRY_LINKED_OUTPUT_TYPE_EXT 0x8918 +#define GL_MAX_GEOMETRY_UNIFORM_BLOCKS_EXT 0x8A2C +#define GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS_EXT 0x8A32 +#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT 0x8C29 +#define GL_PRIMITIVES_GENERATED_EXT 0x8C87 +#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT 0x8DA7 +#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT 0x8DA8 +#define GL_GEOMETRY_SHADER_EXT 0x8DD9 +#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT 0x8DDF +#define GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT 0x8DE0 +#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT 0x8DE1 +#define GL_FIRST_VERTEX_CONVENTION_EXT 0x8E4D +#define GL_LAST_VERTEX_CONVENTION_EXT 0x8E4E +#define GL_MAX_GEOMETRY_SHADER_INVOCATIONS_EXT 0x8E5A +#define GL_MAX_GEOMETRY_IMAGE_UNIFORMS_EXT 0x90CD +#define GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS_EXT 0x90D7 +#define GL_MAX_GEOMETRY_INPUT_COMPONENTS_EXT 0x9123 +#define GL_MAX_GEOMETRY_OUTPUT_COMPONENTS_EXT 0x9124 +#define GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS_EXT 0x92CF +#define GL_MAX_GEOMETRY_ATOMIC_COUNTERS_EXT 0x92D5 +#define GL_REFERENCED_BY_GEOMETRY_SHADER_EXT 0x9309 +#define GL_FRAMEBUFFER_DEFAULT_LAYERS_EXT 0x9312 +#define GL_MAX_FRAMEBUFFER_LAYERS_EXT 0x9317 + +#define GLEW_EXT_geometry_point_size GLEW_GET_VAR(__GLEW_EXT_geometry_point_size) + +#endif /* GL_EXT_geometry_point_size */ + +/* ------------------------- GL_EXT_geometry_shader ------------------------ */ + +#ifndef GL_EXT_geometry_shader +#define GL_EXT_geometry_shader 1 + +#define GL_GEOMETRY_SHADER_BIT_EXT 0x00000004 +#define GL_LINES_ADJACENCY_EXT 0xA +#define GL_LINE_STRIP_ADJACENCY_EXT 0xB +#define GL_TRIANGLES_ADJACENCY_EXT 0xC +#define GL_TRIANGLE_STRIP_ADJACENCY_EXT 0xD +#define GL_LAYER_PROVOKING_VERTEX_EXT 0x825E +#define GL_UNDEFINED_VERTEX_EXT 0x8260 +#define GL_GEOMETRY_SHADER_INVOCATIONS_EXT 0x887F +#define GL_GEOMETRY_LINKED_VERTICES_OUT_EXT 0x8916 +#define GL_GEOMETRY_LINKED_INPUT_TYPE_EXT 0x8917 +#define GL_GEOMETRY_LINKED_OUTPUT_TYPE_EXT 0x8918 +#define GL_MAX_GEOMETRY_UNIFORM_BLOCKS_EXT 0x8A2C +#define GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS_EXT 0x8A32 +#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT 0x8C29 +#define GL_PRIMITIVES_GENERATED_EXT 0x8C87 +#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT 0x8DA7 +#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT 0x8DA8 +#define GL_GEOMETRY_SHADER_EXT 0x8DD9 +#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT 0x8DDF +#define GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT 0x8DE0 +#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT 0x8DE1 +#define GL_FIRST_VERTEX_CONVENTION_EXT 0x8E4D +#define GL_LAST_VERTEX_CONVENTION_EXT 0x8E4E +#define GL_MAX_GEOMETRY_SHADER_INVOCATIONS_EXT 0x8E5A +#define GL_MAX_GEOMETRY_IMAGE_UNIFORMS_EXT 0x90CD +#define GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS_EXT 0x90D7 +#define GL_MAX_GEOMETRY_INPUT_COMPONENTS_EXT 0x9123 +#define GL_MAX_GEOMETRY_OUTPUT_COMPONENTS_EXT 0x9124 +#define GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS_EXT 0x92CF +#define GL_MAX_GEOMETRY_ATOMIC_COUNTERS_EXT 0x92D5 +#define GL_REFERENCED_BY_GEOMETRY_SHADER_EXT 0x9309 +#define GL_FRAMEBUFFER_DEFAULT_LAYERS_EXT 0x9312 +#define GL_MAX_FRAMEBUFFER_LAYERS_EXT 0x9317 + +#define GLEW_EXT_geometry_shader GLEW_GET_VAR(__GLEW_EXT_geometry_shader) + +#endif /* GL_EXT_geometry_shader */ + /* ------------------------ GL_EXT_geometry_shader4 ------------------------ */ #ifndef GL_EXT_geometry_shader4 @@ -9930,6 +11000,15 @@ typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBIPOINTEREXTPROC) (GLuint index, GLin #endif /* GL_EXT_gpu_shader4 */ +/* --------------------------- GL_EXT_gpu_shader5 -------------------------- */ + +#ifndef GL_EXT_gpu_shader5 +#define GL_EXT_gpu_shader5 1 + +#define GLEW_EXT_gpu_shader5 GLEW_GET_VAR(__GLEW_EXT_gpu_shader5) + +#endif /* GL_EXT_gpu_shader5 */ + /* ---------------------------- GL_EXT_histogram --------------------------- */ #ifndef GL_EXT_histogram @@ -10019,6 +11098,21 @@ typedef void (GLAPIENTRY * PFNGLINDEXMATERIALEXTPROC) (GLenum face, GLenum mode) #endif /* GL_EXT_index_texture */ +/* ------------------------ GL_EXT_instanced_arrays ------------------------ */ + +#ifndef GL_EXT_instanced_arrays +#define GL_EXT_instanced_arrays 1 + +#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_EXT 0x88FE + +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBDIVISOREXTPROC) (GLuint index, GLuint divisor); + +#define glVertexAttribDivisorEXT GLEW_GET_FUN(__glewVertexAttribDivisorEXT) + +#define GLEW_EXT_instanced_arrays GLEW_GET_VAR(__GLEW_EXT_instanced_arrays) + +#endif /* GL_EXT_instanced_arrays */ + /* -------------------------- GL_EXT_light_texture ------------------------- */ #ifndef GL_EXT_light_texture @@ -10046,6 +11140,131 @@ typedef void (GLAPIENTRY * PFNGLTEXTUREMATERIALEXTPROC) (GLenum face, GLenum mod #endif /* GL_EXT_light_texture */ +/* ------------------------ GL_EXT_map_buffer_range ------------------------ */ + +#ifndef GL_EXT_map_buffer_range +#define GL_EXT_map_buffer_range 1 + +#define GL_MAP_READ_BIT_EXT 0x0001 +#define GL_MAP_WRITE_BIT_EXT 0x0002 +#define GL_MAP_INVALIDATE_RANGE_BIT_EXT 0x0004 +#define GL_MAP_INVALIDATE_BUFFER_BIT_EXT 0x0008 +#define GL_MAP_FLUSH_EXPLICIT_BIT_EXT 0x0010 +#define GL_MAP_UNSYNCHRONIZED_BIT_EXT 0x0020 + +typedef void (GLAPIENTRY * PFNGLFLUSHMAPPEDBUFFERRANGEEXTPROC) (GLenum target, GLintptr offset, GLsizeiptr length); +typedef void * (GLAPIENTRY * PFNGLMAPBUFFERRANGEEXTPROC) (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); + +#define glFlushMappedBufferRangeEXT GLEW_GET_FUN(__glewFlushMappedBufferRangeEXT) +#define glMapBufferRangeEXT GLEW_GET_FUN(__glewMapBufferRangeEXT) + +#define GLEW_EXT_map_buffer_range GLEW_GET_VAR(__GLEW_EXT_map_buffer_range) + +#endif /* GL_EXT_map_buffer_range */ + +/* -------------------------- GL_EXT_memory_object ------------------------- */ + +#ifndef GL_EXT_memory_object +#define GL_EXT_memory_object 1 + +#define GL_UUID_SIZE_EXT 16 +#define GL_TEXTURE_TILING_EXT 0x9580 +#define GL_DEDICATED_MEMORY_OBJECT_EXT 0x9581 +#define GL_NUM_TILING_TYPES_EXT 0x9582 +#define GL_TILING_TYPES_EXT 0x9583 +#define GL_OPTIMAL_TILING_EXT 0x9584 +#define GL_LINEAR_TILING_EXT 0x9585 +#define GL_NUM_DEVICE_UUIDS_EXT 0x9596 +#define GL_DEVICE_UUID_EXT 0x9597 +#define GL_DRIVER_UUID_EXT 0x9598 +#define GL_PROTECTED_MEMORY_OBJECT_EXT 0x959B + +typedef void (GLAPIENTRY * PFNGLBUFFERSTORAGEMEMEXTPROC) (GLenum target, GLsizeiptr size, GLuint memory, GLuint64 offset); +typedef void (GLAPIENTRY * PFNGLCREATEMEMORYOBJECTSEXTPROC) (GLsizei n, GLuint* memoryObjects); +typedef void (GLAPIENTRY * PFNGLDELETEMEMORYOBJECTSEXTPROC) (GLsizei n, const GLuint* memoryObjects); +typedef void (GLAPIENTRY * PFNGLGETMEMORYOBJECTPARAMETERIVEXTPROC) (GLuint memoryObject, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETUNSIGNEDBYTEI_VEXTPROC) (GLenum target, GLuint index, GLubyte* data); +typedef void (GLAPIENTRY * PFNGLGETUNSIGNEDBYTEVEXTPROC) (GLenum pname, GLubyte* data); +typedef GLboolean (GLAPIENTRY * PFNGLISMEMORYOBJECTEXTPROC) (GLuint memoryObject); +typedef void (GLAPIENTRY * PFNGLMEMORYOBJECTPARAMETERIVEXTPROC) (GLuint memoryObject, GLenum pname, const GLint* params); +typedef void (GLAPIENTRY * PFNGLNAMEDBUFFERSTORAGEMEMEXTPROC) (GLuint buffer, GLsizeiptr size, GLuint memory, GLuint64 offset); +typedef void (GLAPIENTRY * PFNGLTEXSTORAGEMEM1DEXTPROC) (GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLuint memory, GLuint64 offset); +typedef void (GLAPIENTRY * PFNGLTEXSTORAGEMEM2DEXTPROC) (GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLuint memory, GLuint64 offset); +typedef void (GLAPIENTRY * PFNGLTEXSTORAGEMEM2DMULTISAMPLEEXTPROC) (GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset); +typedef void (GLAPIENTRY * PFNGLTEXSTORAGEMEM3DEXTPROC) (GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset); +typedef void (GLAPIENTRY * PFNGLTEXSTORAGEMEM3DMULTISAMPLEEXTPROC) (GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset); +typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGEMEM1DEXTPROC) (GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLuint memory, GLuint64 offset); +typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGEMEM2DEXTPROC) (GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLuint memory, GLuint64 offset); +typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGEMEM2DMULTISAMPLEEXTPROC) (GLuint texture, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset); +typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGEMEM3DEXTPROC) (GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset); +typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGEMEM3DMULTISAMPLEEXTPROC) (GLuint texture, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset); + +#define glBufferStorageMemEXT GLEW_GET_FUN(__glewBufferStorageMemEXT) +#define glCreateMemoryObjectsEXT GLEW_GET_FUN(__glewCreateMemoryObjectsEXT) +#define glDeleteMemoryObjectsEXT GLEW_GET_FUN(__glewDeleteMemoryObjectsEXT) +#define glGetMemoryObjectParameterivEXT GLEW_GET_FUN(__glewGetMemoryObjectParameterivEXT) +#define glGetUnsignedBytei_vEXT GLEW_GET_FUN(__glewGetUnsignedBytei_vEXT) +#define glGetUnsignedBytevEXT GLEW_GET_FUN(__glewGetUnsignedBytevEXT) +#define glIsMemoryObjectEXT GLEW_GET_FUN(__glewIsMemoryObjectEXT) +#define glMemoryObjectParameterivEXT GLEW_GET_FUN(__glewMemoryObjectParameterivEXT) +#define glNamedBufferStorageMemEXT GLEW_GET_FUN(__glewNamedBufferStorageMemEXT) +#define glTexStorageMem1DEXT GLEW_GET_FUN(__glewTexStorageMem1DEXT) +#define glTexStorageMem2DEXT GLEW_GET_FUN(__glewTexStorageMem2DEXT) +#define glTexStorageMem2DMultisampleEXT GLEW_GET_FUN(__glewTexStorageMem2DMultisampleEXT) +#define glTexStorageMem3DEXT GLEW_GET_FUN(__glewTexStorageMem3DEXT) +#define glTexStorageMem3DMultisampleEXT GLEW_GET_FUN(__glewTexStorageMem3DMultisampleEXT) +#define glTextureStorageMem1DEXT GLEW_GET_FUN(__glewTextureStorageMem1DEXT) +#define glTextureStorageMem2DEXT GLEW_GET_FUN(__glewTextureStorageMem2DEXT) +#define glTextureStorageMem2DMultisampleEXT GLEW_GET_FUN(__glewTextureStorageMem2DMultisampleEXT) +#define glTextureStorageMem3DEXT GLEW_GET_FUN(__glewTextureStorageMem3DEXT) +#define glTextureStorageMem3DMultisampleEXT GLEW_GET_FUN(__glewTextureStorageMem3DMultisampleEXT) + +#define GLEW_EXT_memory_object GLEW_GET_VAR(__GLEW_EXT_memory_object) + +#endif /* GL_EXT_memory_object */ + +/* ------------------------ GL_EXT_memory_object_fd ------------------------ */ + +#ifndef GL_EXT_memory_object_fd +#define GL_EXT_memory_object_fd 1 + +#define GL_HANDLE_TYPE_OPAQUE_FD_EXT 0x9586 + +typedef void (GLAPIENTRY * PFNGLIMPORTMEMORYFDEXTPROC) (GLuint memory, GLuint64 size, GLenum handleType, GLint fd); + +#define glImportMemoryFdEXT GLEW_GET_FUN(__glewImportMemoryFdEXT) + +#define GLEW_EXT_memory_object_fd GLEW_GET_VAR(__GLEW_EXT_memory_object_fd) + +#endif /* GL_EXT_memory_object_fd */ + +/* ----------------------- GL_EXT_memory_object_win32 ---------------------- */ + +#ifndef GL_EXT_memory_object_win32 +#define GL_EXT_memory_object_win32 1 + +#define GL_LUID_SIZE_EXT 8 +#define GL_HANDLE_TYPE_OPAQUE_WIN32_EXT 0x9587 +#define GL_HANDLE_TYPE_OPAQUE_WIN32_KMT_EXT 0x9588 +#define GL_HANDLE_TYPE_D3D12_TILEPOOL_EXT 0x9589 +#define GL_HANDLE_TYPE_D3D12_RESOURCE_EXT 0x958A +#define GL_HANDLE_TYPE_D3D11_IMAGE_EXT 0x958B +#define GL_HANDLE_TYPE_D3D11_IMAGE_KMT_EXT 0x958C +#define GL_HANDLE_TYPE_D3D12_FENCE_EXT 0x9594 +#define GL_D3D12_FENCE_VALUE_EXT 0x9595 +#define GL_DEVICE_LUID_EXT 0x9599 +#define GL_DEVICE_NODE_MASK_EXT 0x959A + +typedef void (GLAPIENTRY * PFNGLIMPORTMEMORYWIN32HANDLEEXTPROC) (GLuint memory, GLuint64 size, GLenum handleType, void *handle); +typedef void (GLAPIENTRY * PFNGLIMPORTMEMORYWIN32NAMEEXTPROC) (GLuint memory, GLuint64 size, GLenum handleType, const void *name); + +#define glImportMemoryWin32HandleEXT GLEW_GET_FUN(__glewImportMemoryWin32HandleEXT) +#define glImportMemoryWin32NameEXT GLEW_GET_FUN(__glewImportMemoryWin32NameEXT) + +#define GLEW_EXT_memory_object_win32 GLEW_GET_VAR(__GLEW_EXT_memory_object_win32) + +#endif /* GL_EXT_memory_object_win32 */ + /* ------------------------- GL_EXT_misc_attribute ------------------------- */ #ifndef GL_EXT_misc_attribute @@ -10070,6 +11289,30 @@ typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTSEXTPROC) (GLenum mode, GLsizei* #endif /* GL_EXT_multi_draw_arrays */ +/* ----------------------- GL_EXT_multi_draw_indirect ---------------------- */ + +#ifndef GL_EXT_multi_draw_indirect +#define GL_EXT_multi_draw_indirect 1 + +typedef void (GLAPIENTRY * PFNGLMULTIDRAWARRAYSINDIRECTEXTPROC) (GLenum mode, const void *indirect, GLsizei drawcount, GLsizei stride); +typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTSINDIRECTEXTPROC) (GLenum mode, GLenum type, const void *indirect, GLsizei drawcount, GLsizei stride); + +#define glMultiDrawArraysIndirectEXT GLEW_GET_FUN(__glewMultiDrawArraysIndirectEXT) +#define glMultiDrawElementsIndirectEXT GLEW_GET_FUN(__glewMultiDrawElementsIndirectEXT) + +#define GLEW_EXT_multi_draw_indirect GLEW_GET_VAR(__GLEW_EXT_multi_draw_indirect) + +#endif /* GL_EXT_multi_draw_indirect */ + +/* ------------------------ GL_EXT_multiple_textures ----------------------- */ + +#ifndef GL_EXT_multiple_textures +#define GL_EXT_multiple_textures 1 + +#define GLEW_EXT_multiple_textures GLEW_GET_VAR(__GLEW_EXT_multiple_textures) + +#endif /* GL_EXT_multiple_textures */ + /* --------------------------- GL_EXT_multisample -------------------------- */ #ifndef GL_EXT_multisample @@ -10103,6 +11346,110 @@ typedef void (GLAPIENTRY * PFNGLSAMPLEPATTERNEXTPROC) (GLenum pattern); #endif /* GL_EXT_multisample */ +/* -------------------- GL_EXT_multisample_compatibility ------------------- */ + +#ifndef GL_EXT_multisample_compatibility +#define GL_EXT_multisample_compatibility 1 + +#define GL_MULTISAMPLE_EXT 0x809D +#define GL_SAMPLE_ALPHA_TO_ONE_EXT 0x809F + +#define GLEW_EXT_multisample_compatibility GLEW_GET_VAR(__GLEW_EXT_multisample_compatibility) + +#endif /* GL_EXT_multisample_compatibility */ + +/* ----------------- GL_EXT_multisampled_render_to_texture ----------------- */ + +#ifndef GL_EXT_multisampled_render_to_texture +#define GL_EXT_multisampled_render_to_texture 1 + +#define GL_RENDERBUFFER_SAMPLES_EXT 0x8CAB +#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT 0x8D56 +#define GL_MAX_SAMPLES_EXT 0x8D57 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT 0x8D6C + +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples); + +#define glFramebufferTexture2DMultisampleEXT GLEW_GET_FUN(__glewFramebufferTexture2DMultisampleEXT) + +#define GLEW_EXT_multisampled_render_to_texture GLEW_GET_VAR(__GLEW_EXT_multisampled_render_to_texture) + +#endif /* GL_EXT_multisampled_render_to_texture */ + +/* ----------------- GL_EXT_multisampled_render_to_texture2 ---------------- */ + +#ifndef GL_EXT_multisampled_render_to_texture2 +#define GL_EXT_multisampled_render_to_texture2 1 + +#define GLEW_EXT_multisampled_render_to_texture2 GLEW_GET_VAR(__GLEW_EXT_multisampled_render_to_texture2) + +#endif /* GL_EXT_multisampled_render_to_texture2 */ + +/* --------------------- GL_EXT_multiview_draw_buffers --------------------- */ + +#ifndef GL_EXT_multiview_draw_buffers +#define GL_EXT_multiview_draw_buffers 1 + +#define GL_DRAW_BUFFER_EXT 0x0C01 +#define GL_READ_BUFFER_EXT 0x0C02 +#define GL_COLOR_ATTACHMENT_EXT 0x90F0 +#define GL_MULTIVIEW_EXT 0x90F1 +#define GL_MAX_MULTIVIEW_BUFFERS_EXT 0x90F2 + +typedef void (GLAPIENTRY * PFNGLDRAWBUFFERSINDEXEDEXTPROC) (GLint n, const GLenum* location, const GLint *indices); +typedef void (GLAPIENTRY * PFNGLGETINTEGERI_VEXTPROC) (GLenum target, GLuint index, GLint* data); +typedef void (GLAPIENTRY * PFNGLREADBUFFERINDEXEDEXTPROC) (GLenum src, GLint index); + +#define glDrawBuffersIndexedEXT GLEW_GET_FUN(__glewDrawBuffersIndexedEXT) +#define glGetIntegeri_vEXT GLEW_GET_FUN(__glewGetIntegeri_vEXT) +#define glReadBufferIndexedEXT GLEW_GET_FUN(__glewReadBufferIndexedEXT) + +#define GLEW_EXT_multiview_draw_buffers GLEW_GET_VAR(__GLEW_EXT_multiview_draw_buffers) + +#endif /* GL_EXT_multiview_draw_buffers */ + +/* ------------- GL_EXT_multiview_tessellation_geometry_shader ------------- */ + +#ifndef GL_EXT_multiview_tessellation_geometry_shader +#define GL_EXT_multiview_tessellation_geometry_shader 1 + +#define GLEW_EXT_multiview_tessellation_geometry_shader GLEW_GET_VAR(__GLEW_EXT_multiview_tessellation_geometry_shader) + +#endif /* GL_EXT_multiview_tessellation_geometry_shader */ + +/* ------------------ GL_EXT_multiview_texture_multisample ----------------- */ + +#ifndef GL_EXT_multiview_texture_multisample +#define GL_EXT_multiview_texture_multisample 1 + +#define GLEW_EXT_multiview_texture_multisample GLEW_GET_VAR(__GLEW_EXT_multiview_texture_multisample) + +#endif /* GL_EXT_multiview_texture_multisample */ + +/* ---------------------- GL_EXT_multiview_timer_query --------------------- */ + +#ifndef GL_EXT_multiview_timer_query +#define GL_EXT_multiview_timer_query 1 + +#define GLEW_EXT_multiview_timer_query GLEW_GET_VAR(__GLEW_EXT_multiview_timer_query) + +#endif /* GL_EXT_multiview_timer_query */ + +/* --------------------- GL_EXT_occlusion_query_boolean -------------------- */ + +#ifndef GL_EXT_occlusion_query_boolean +#define GL_EXT_occlusion_query_boolean 1 + +#define GL_CURRENT_QUERY_EXT 0x8865 +#define GL_QUERY_RESULT_EXT 0x8866 +#define GL_QUERY_RESULT_AVAILABLE_EXT 0x8867 +#define GL_ANY_SAMPLES_PASSED_EXT 0x8C2F +#define GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT 0x8D6A + +#define GLEW_EXT_occlusion_query_boolean GLEW_GET_VAR(__GLEW_EXT_occlusion_query_boolean) + +#endif /* GL_EXT_occlusion_query_boolean */ + /* ---------------------- GL_EXT_packed_depth_stencil ---------------------- */ #ifndef GL_EXT_packed_depth_stencil @@ -10303,6 +11650,33 @@ typedef void (GLAPIENTRY * PFNGLPOLYGONOFFSETCLAMPEXTPROC) (GLfloat factor, GLfl #endif /* GL_EXT_post_depth_coverage */ +/* --------------------- GL_EXT_primitive_bounding_box --------------------- */ + +#ifndef GL_EXT_primitive_bounding_box +#define GL_EXT_primitive_bounding_box 1 + +#define GL_PRIMITIVE_BOUNDING_BOX_EXT 0x92BE + +typedef void (GLAPIENTRY * PFNGLPRIMITIVEBOUNDINGBOXEXTPROC) (GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW); + +#define glPrimitiveBoundingBoxEXT GLEW_GET_FUN(__glewPrimitiveBoundingBoxEXT) + +#define GLEW_EXT_primitive_bounding_box GLEW_GET_VAR(__GLEW_EXT_primitive_bounding_box) + +#endif /* GL_EXT_primitive_bounding_box */ + +/* ----------------------- GL_EXT_protected_textures ----------------------- */ + +#ifndef GL_EXT_protected_textures +#define GL_EXT_protected_textures 1 + +#define GL_CONTEXT_FLAG_PROTECTED_CONTENT_BIT_EXT 0x00000010 +#define GL_TEXTURE_PROTECTED_EXT 0x8BFA + +#define GLEW_EXT_protected_textures GLEW_GET_VAR(__GLEW_EXT_protected_textures) + +#endif /* GL_EXT_protected_textures */ + /* ------------------------ GL_EXT_provoking_vertex ------------------------ */ #ifndef GL_EXT_provoking_vertex @@ -10321,6 +11695,20 @@ typedef void (GLAPIENTRY * PFNGLPROVOKINGVERTEXEXTPROC) (GLenum mode); #endif /* GL_EXT_provoking_vertex */ +/* --------------------------- GL_EXT_pvrtc_sRGB --------------------------- */ + +#ifndef GL_EXT_pvrtc_sRGB +#define GL_EXT_pvrtc_sRGB 1 + +#define GL_COMPRESSED_SRGB_PVRTC_2BPPV1_EXT 0x8A54 +#define GL_COMPRESSED_SRGB_PVRTC_4BPPV1_EXT 0x8A55 +#define GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV1_EXT 0x8A56 +#define GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV1_EXT 0x8A57 + +#define GLEW_EXT_pvrtc_sRGB GLEW_GET_VAR(__GLEW_EXT_pvrtc_sRGB) + +#endif /* GL_EXT_pvrtc_sRGB */ + /* ----------------------- GL_EXT_raster_multisample ----------------------- */ #ifndef GL_EXT_raster_multisample @@ -10355,6 +11743,37 @@ typedef void (GLAPIENTRY * PFNGLRASTERSAMPLESEXTPROC) (GLuint samples, GLboolean #endif /* GL_EXT_raster_multisample */ +/* ------------------------ GL_EXT_read_format_bgra ------------------------ */ + +#ifndef GL_EXT_read_format_bgra +#define GL_EXT_read_format_bgra 1 + +#define GL_BGRA_EXT 0x80E1 +#define GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT 0x8365 +#define GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT 0x8366 + +#define GLEW_EXT_read_format_bgra GLEW_GET_VAR(__GLEW_EXT_read_format_bgra) + +#endif /* GL_EXT_read_format_bgra */ + +/* -------------------------- GL_EXT_render_snorm -------------------------- */ + +#ifndef GL_EXT_render_snorm +#define GL_EXT_render_snorm 1 + +#define GL_BYTE 0x1400 +#define GL_SHORT 0x1402 +#define GL_R8_SNORM 0x8F94 +#define GL_RG8_SNORM 0x8F95 +#define GL_RGBA8_SNORM 0x8F97 +#define GL_R16_SNORM_EXT 0x8F98 +#define GL_RG16_SNORM_EXT 0x8F99 +#define GL_RGBA16_SNORM_EXT 0x8F9B + +#define GLEW_EXT_render_snorm GLEW_GET_VAR(__GLEW_EXT_render_snorm) + +#endif /* GL_EXT_render_snorm */ + /* ------------------------- GL_EXT_rescale_normal ------------------------- */ #ifndef GL_EXT_rescale_normal @@ -10366,6 +11785,56 @@ typedef void (GLAPIENTRY * PFNGLRASTERSAMPLESEXTPROC) (GLuint samples, GLboolean #endif /* GL_EXT_rescale_normal */ +/* --------------------------- GL_EXT_robustness --------------------------- */ + +#ifndef GL_EXT_robustness +#define GL_EXT_robustness 1 + +#define GL_LOSE_CONTEXT_ON_RESET_EXT 0x8252 +#define GL_GUILTY_CONTEXT_RESET_EXT 0x8253 +#define GL_INNOCENT_CONTEXT_RESET_EXT 0x8254 +#define GL_UNKNOWN_CONTEXT_RESET_EXT 0x8255 +#define GL_RESET_NOTIFICATION_STRATEGY_EXT 0x8256 +#define GL_NO_RESET_NOTIFICATION_EXT 0x8261 +#define GL_CONTEXT_ROBUST_ACCESS_EXT 0x90F3 + +typedef void (GLAPIENTRY * PFNGLGETNUNIFORMFVEXTPROC) (GLuint program, GLint location, GLsizei bufSize, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETNUNIFORMIVEXTPROC) (GLuint program, GLint location, GLsizei bufSize, GLint* params); +typedef void (GLAPIENTRY * PFNGLREADNPIXELSEXTPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data); + +#define glGetnUniformfvEXT GLEW_GET_FUN(__glewGetnUniformfvEXT) +#define glGetnUniformivEXT GLEW_GET_FUN(__glewGetnUniformivEXT) +#define glReadnPixelsEXT GLEW_GET_FUN(__glewReadnPixelsEXT) + +#define GLEW_EXT_robustness GLEW_GET_VAR(__GLEW_EXT_robustness) + +#endif /* GL_EXT_robustness */ + +/* ------------------------------ GL_EXT_sRGB ------------------------------ */ + +#ifndef GL_EXT_sRGB +#define GL_EXT_sRGB 1 + +#define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT 0x8210 +#define GL_SRGB_EXT 0x8C40 +#define GL_SRGB_ALPHA_EXT 0x8C42 +#define GL_SRGB8_ALPHA8_EXT 0x8C43 + +#define GLEW_EXT_sRGB GLEW_GET_VAR(__GLEW_EXT_sRGB) + +#endif /* GL_EXT_sRGB */ + +/* ----------------------- GL_EXT_sRGB_write_control ----------------------- */ + +#ifndef GL_EXT_sRGB_write_control +#define GL_EXT_sRGB_write_control 1 + +#define GL_FRAMEBUFFER_SRGB_EXT 0x8DB9 + +#define GLEW_EXT_sRGB_write_control GLEW_GET_VAR(__GLEW_EXT_sRGB_write_control) + +#endif /* GL_EXT_sRGB_write_control */ + /* -------------------------- GL_EXT_scene_marker -------------------------- */ #ifndef GL_EXT_scene_marker @@ -10434,6 +11903,69 @@ typedef void (GLAPIENTRY * PFNGLSECONDARYCOLORPOINTEREXTPROC) (GLint size, GLenu #endif /* GL_EXT_secondary_color */ +/* ---------------------------- GL_EXT_semaphore --------------------------- */ + +#ifndef GL_EXT_semaphore +#define GL_EXT_semaphore 1 + +#define GL_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_EXT 0x9530 +#define GL_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_EXT 0x9531 +#define GL_LAYOUT_GENERAL_EXT 0x958D +#define GL_LAYOUT_COLOR_ATTACHMENT_EXT 0x958E +#define GL_LAYOUT_DEPTH_STENCIL_ATTACHMENT_EXT 0x958F +#define GL_LAYOUT_DEPTH_STENCIL_READ_ONLY_EXT 0x9590 +#define GL_LAYOUT_SHADER_READ_ONLY_EXT 0x9591 +#define GL_LAYOUT_TRANSFER_SRC_EXT 0x9592 +#define GL_LAYOUT_TRANSFER_DST_EXT 0x9593 + +typedef void (GLAPIENTRY * PFNGLDELETESEMAPHORESEXTPROC) (GLsizei n, const GLuint* semaphores); +typedef void (GLAPIENTRY * PFNGLGENSEMAPHORESEXTPROC) (GLsizei n, GLuint* semaphores); +typedef void (GLAPIENTRY * PFNGLGETSEMAPHOREPARAMETERUI64VEXTPROC) (GLuint semaphore, GLenum pname, GLuint64* params); +typedef GLboolean (GLAPIENTRY * PFNGLISSEMAPHOREEXTPROC) (GLuint semaphore); +typedef void (GLAPIENTRY * PFNGLSEMAPHOREPARAMETERUI64VEXTPROC) (GLuint semaphore, GLenum pname, const GLuint64* params); +typedef void (GLAPIENTRY * PFNGLSIGNALSEMAPHOREEXTPROC) (GLuint semaphore, GLuint numBufferBarriers, const GLuint* buffers, GLuint numTextureBarriers, const GLuint *textures, const GLenum *dstLayouts); +typedef void (GLAPIENTRY * PFNGLWAITSEMAPHOREEXTPROC) (GLuint semaphore, GLuint numBufferBarriers, const GLuint* buffers, GLuint numTextureBarriers, const GLuint *textures, const GLenum *srcLayouts); + +#define glDeleteSemaphoresEXT GLEW_GET_FUN(__glewDeleteSemaphoresEXT) +#define glGenSemaphoresEXT GLEW_GET_FUN(__glewGenSemaphoresEXT) +#define glGetSemaphoreParameterui64vEXT GLEW_GET_FUN(__glewGetSemaphoreParameterui64vEXT) +#define glIsSemaphoreEXT GLEW_GET_FUN(__glewIsSemaphoreEXT) +#define glSemaphoreParameterui64vEXT GLEW_GET_FUN(__glewSemaphoreParameterui64vEXT) +#define glSignalSemaphoreEXT GLEW_GET_FUN(__glewSignalSemaphoreEXT) +#define glWaitSemaphoreEXT GLEW_GET_FUN(__glewWaitSemaphoreEXT) + +#define GLEW_EXT_semaphore GLEW_GET_VAR(__GLEW_EXT_semaphore) + +#endif /* GL_EXT_semaphore */ + +/* -------------------------- GL_EXT_semaphore_fd -------------------------- */ + +#ifndef GL_EXT_semaphore_fd +#define GL_EXT_semaphore_fd 1 + +typedef void (GLAPIENTRY * PFNGLIMPORTSEMAPHOREFDEXTPROC) (GLuint semaphore, GLenum handleType, GLint fd); + +#define glImportSemaphoreFdEXT GLEW_GET_FUN(__glewImportSemaphoreFdEXT) + +#define GLEW_EXT_semaphore_fd GLEW_GET_VAR(__GLEW_EXT_semaphore_fd) + +#endif /* GL_EXT_semaphore_fd */ + +/* ------------------------- GL_EXT_semaphore_win32 ------------------------ */ + +#ifndef GL_EXT_semaphore_win32 +#define GL_EXT_semaphore_win32 1 + +typedef void (GLAPIENTRY * PFNGLIMPORTSEMAPHOREWIN32HANDLEEXTPROC) (GLuint semaphore, GLenum handleType, void *handle); +typedef void (GLAPIENTRY * PFNGLIMPORTSEMAPHOREWIN32NAMEEXTPROC) (GLuint semaphore, GLenum handleType, const void *name); + +#define glImportSemaphoreWin32HandleEXT GLEW_GET_FUN(__glewImportSemaphoreWin32HandleEXT) +#define glImportSemaphoreWin32NameEXT GLEW_GET_FUN(__glewImportSemaphoreWin32NameEXT) + +#define GLEW_EXT_semaphore_win32 GLEW_GET_VAR(__GLEW_EXT_semaphore_win32) + +#endif /* GL_EXT_semaphore_win32 */ + /* --------------------- GL_EXT_separate_shader_objects -------------------- */ #ifndef GL_EXT_separate_shader_objects @@ -10466,6 +11998,41 @@ typedef void (GLAPIENTRY * PFNGLUSESHADERPROGRAMEXTPROC) (GLenum type, GLuint pr #endif /* GL_EXT_separate_specular_color */ +/* -------------------- GL_EXT_shader_framebuffer_fetch -------------------- */ + +#ifndef GL_EXT_shader_framebuffer_fetch +#define GL_EXT_shader_framebuffer_fetch 1 + +#define GL_FRAGMENT_SHADER_DISCARDS_SAMPLES_EXT 0x8A52 + +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERFETCHBARRIEREXTPROC) (void); + +#define glFramebufferFetchBarrierEXT GLEW_GET_FUN(__glewFramebufferFetchBarrierEXT) + +#define GLEW_EXT_shader_framebuffer_fetch GLEW_GET_VAR(__GLEW_EXT_shader_framebuffer_fetch) + +#endif /* GL_EXT_shader_framebuffer_fetch */ + +/* -------------- GL_EXT_shader_framebuffer_fetch_non_coherent ------------- */ + +#ifndef GL_EXT_shader_framebuffer_fetch_non_coherent +#define GL_EXT_shader_framebuffer_fetch_non_coherent 1 + +#define GL_FRAGMENT_SHADER_DISCARDS_SAMPLES_EXT 0x8A52 + +#define GLEW_EXT_shader_framebuffer_fetch_non_coherent GLEW_GET_VAR(__GLEW_EXT_shader_framebuffer_fetch_non_coherent) + +#endif /* GL_EXT_shader_framebuffer_fetch_non_coherent */ + +/* ------------------------ GL_EXT_shader_group_vote ----------------------- */ + +#ifndef GL_EXT_shader_group_vote +#define GL_EXT_shader_group_vote 1 + +#define GLEW_EXT_shader_group_vote GLEW_GET_VAR(__GLEW_EXT_shader_group_vote) + +#endif /* GL_EXT_shader_group_vote */ + /* ------------------- GL_EXT_shader_image_load_formatted ------------------ */ #ifndef GL_EXT_shader_image_load_formatted @@ -10546,6 +12113,15 @@ typedef void (GLAPIENTRY * PFNGLMEMORYBARRIEREXTPROC) (GLbitfield barriers); #endif /* GL_EXT_shader_image_load_store */ +/* ------------------- GL_EXT_shader_implicit_conversions ------------------ */ + +#ifndef GL_EXT_shader_implicit_conversions +#define GL_EXT_shader_implicit_conversions 1 + +#define GLEW_EXT_shader_implicit_conversions GLEW_GET_VAR(__GLEW_EXT_shader_implicit_conversions) + +#endif /* GL_EXT_shader_implicit_conversions */ + /* ----------------------- GL_EXT_shader_integer_mix ----------------------- */ #ifndef GL_EXT_shader_integer_mix @@ -10555,6 +12131,67 @@ typedef void (GLAPIENTRY * PFNGLMEMORYBARRIEREXTPROC) (GLbitfield barriers); #endif /* GL_EXT_shader_integer_mix */ +/* ------------------------ GL_EXT_shader_io_blocks ------------------------ */ + +#ifndef GL_EXT_shader_io_blocks +#define GL_EXT_shader_io_blocks 1 + +#define GLEW_EXT_shader_io_blocks GLEW_GET_VAR(__GLEW_EXT_shader_io_blocks) + +#endif /* GL_EXT_shader_io_blocks */ + +/* ------------- GL_EXT_shader_non_constant_global_initializers ------------ */ + +#ifndef GL_EXT_shader_non_constant_global_initializers +#define GL_EXT_shader_non_constant_global_initializers 1 + +#define GLEW_EXT_shader_non_constant_global_initializers GLEW_GET_VAR(__GLEW_EXT_shader_non_constant_global_initializers) + +#endif /* GL_EXT_shader_non_constant_global_initializers */ + +/* ------------------- GL_EXT_shader_pixel_local_storage ------------------- */ + +#ifndef GL_EXT_shader_pixel_local_storage +#define GL_EXT_shader_pixel_local_storage 1 + +#define GL_MAX_SHADER_PIXEL_LOCAL_STORAGE_FAST_SIZE_EXT 0x8F63 +#define GL_SHADER_PIXEL_LOCAL_STORAGE_EXT 0x8F64 +#define GL_MAX_SHADER_PIXEL_LOCAL_STORAGE_SIZE_EXT 0x8F67 + +#define GLEW_EXT_shader_pixel_local_storage GLEW_GET_VAR(__GLEW_EXT_shader_pixel_local_storage) + +#endif /* GL_EXT_shader_pixel_local_storage */ + +/* ------------------- GL_EXT_shader_pixel_local_storage2 ------------------ */ + +#ifndef GL_EXT_shader_pixel_local_storage2 +#define GL_EXT_shader_pixel_local_storage2 1 + +#define GL_MAX_SHADER_COMBINED_LOCAL_STORAGE_FAST_SIZE_EXT 0x9650 +#define GL_MAX_SHADER_COMBINED_LOCAL_STORAGE_SIZE_EXT 0x9651 +#define GL_FRAMEBUFFER_INCOMPLETE_INSUFFICIENT_SHADER_COMBINED_LOCAL_STORAGE_EXT 0x9652 + +typedef void (GLAPIENTRY * PFNGLCLEARPIXELLOCALSTORAGEUIEXTPROC) (GLsizei offset, GLsizei n, const GLuint* values); +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERPIXELLOCALSTORAGESIZEEXTPROC) (GLuint target, GLsizei size); +typedef GLsizei (GLAPIENTRY * PFNGLGETFRAMEBUFFERPIXELLOCALSTORAGESIZEEXTPROC) (GLuint target); + +#define glClearPixelLocalStorageuiEXT GLEW_GET_FUN(__glewClearPixelLocalStorageuiEXT) +#define glFramebufferPixelLocalStorageSizeEXT GLEW_GET_FUN(__glewFramebufferPixelLocalStorageSizeEXT) +#define glGetFramebufferPixelLocalStorageSizeEXT GLEW_GET_FUN(__glewGetFramebufferPixelLocalStorageSizeEXT) + +#define GLEW_EXT_shader_pixel_local_storage2 GLEW_GET_VAR(__GLEW_EXT_shader_pixel_local_storage2) + +#endif /* GL_EXT_shader_pixel_local_storage2 */ + +/* ----------------------- GL_EXT_shader_texture_lod ----------------------- */ + +#ifndef GL_EXT_shader_texture_lod +#define GL_EXT_shader_texture_lod 1 + +#define GLEW_EXT_shader_texture_lod GLEW_GET_VAR(__GLEW_EXT_shader_texture_lod) + +#endif /* GL_EXT_shader_texture_lod */ + /* -------------------------- GL_EXT_shadow_funcs -------------------------- */ #ifndef GL_EXT_shadow_funcs @@ -10564,6 +12201,20 @@ typedef void (GLAPIENTRY * PFNGLMEMORYBARRIEREXTPROC) (GLbitfield barriers); #endif /* GL_EXT_shadow_funcs */ +/* ------------------------- GL_EXT_shadow_samplers ------------------------ */ + +#ifndef GL_EXT_shadow_samplers +#define GL_EXT_shadow_samplers 1 + +#define GL_TEXTURE_COMPARE_MODE_EXT 0x884C +#define GL_TEXTURE_COMPARE_FUNC_EXT 0x884D +#define GL_COMPARE_REF_TO_TEXTURE_EXT 0x884E +#define GL_SAMPLER_2D_SHADOW_EXT 0x8B62 + +#define GLEW_EXT_shadow_samplers GLEW_GET_VAR(__GLEW_EXT_shadow_samplers) + +#endif /* GL_EXT_shadow_samplers */ + /* --------------------- GL_EXT_shared_texture_palette --------------------- */ #ifndef GL_EXT_shared_texture_palette @@ -10575,6 +12226,38 @@ typedef void (GLAPIENTRY * PFNGLMEMORYBARRIEREXTPROC) (GLbitfield barriers); #endif /* GL_EXT_shared_texture_palette */ +/* ------------------------- GL_EXT_sparse_texture ------------------------- */ + +#ifndef GL_EXT_sparse_texture +#define GL_EXT_sparse_texture 1 + +#define GL_TEXTURE_2D 0x0DE1 +#define GL_TEXTURE_3D 0x806F +#define GL_TEXTURE_CUBE_MAP 0x8513 +#define GL_TEXTURE_2D_ARRAY 0x8C1A +#define GL_TEXTURE_CUBE_MAP_ARRAY_OES 0x9009 +#define GL_VIRTUAL_PAGE_SIZE_X_EXT 0x9195 +#define GL_VIRTUAL_PAGE_SIZE_Y_EXT 0x9196 +#define GL_VIRTUAL_PAGE_SIZE_Z_EXT 0x9197 +#define GL_MAX_SPARSE_TEXTURE_SIZE_EXT 0x9198 +#define GL_MAX_SPARSE_3D_TEXTURE_SIZE_EXT 0x9199 +#define GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS_EXT 0x919A +#define GL_TEXTURE_SPARSE_EXT 0x91A6 +#define GL_VIRTUAL_PAGE_SIZE_INDEX_EXT 0x91A7 +#define GL_NUM_VIRTUAL_PAGE_SIZES_EXT 0x91A8 +#define GL_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_EXT 0x91A9 +#define GL_NUM_SPARSE_LEVELS_EXT 0x91AA + +typedef void (GLAPIENTRY * PFNGLTEXPAGECOMMITMENTEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit); +typedef void (GLAPIENTRY * PFNGLTEXTUREPAGECOMMITMENTEXTPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit); + +#define glTexPageCommitmentEXT GLEW_GET_FUN(__glewTexPageCommitmentEXT) +#define glTexturePageCommitmentEXT GLEW_GET_FUN(__glewTexturePageCommitmentEXT) + +#define GLEW_EXT_sparse_texture GLEW_GET_VAR(__GLEW_EXT_sparse_texture) + +#endif /* GL_EXT_sparse_texture */ + /* ------------------------- GL_EXT_sparse_texture2 ------------------------ */ #ifndef GL_EXT_sparse_texture2 @@ -10584,6 +12267,15 @@ typedef void (GLAPIENTRY * PFNGLMEMORYBARRIEREXTPROC) (GLbitfield barriers); #endif /* GL_EXT_sparse_texture2 */ +/* ----------------------- GL_EXT_static_vertex_array ---------------------- */ + +#ifndef GL_EXT_static_vertex_array +#define GL_EXT_static_vertex_array 1 + +#define GLEW_EXT_static_vertex_array GLEW_GET_VAR(__GLEW_EXT_static_vertex_array) + +#endif /* GL_EXT_static_vertex_array */ + /* ------------------------ GL_EXT_stencil_clear_tag ----------------------- */ #ifndef GL_EXT_stencil_clear_tag @@ -10641,6 +12333,116 @@ typedef void (GLAPIENTRY * PFNGLTEXSUBIMAGE3DEXTPROC) (GLenum target, GLint leve #endif /* GL_EXT_subtexture */ +/* --------------------- GL_EXT_tessellation_point_size -------------------- */ + +#ifndef GL_EXT_tessellation_point_size +#define GL_EXT_tessellation_point_size 1 + +#define GL_QUADS_EXT 0x0007 +#define GL_TESS_CONTROL_SHADER_BIT_EXT 0x00000008 +#define GL_PATCHES_EXT 0xE +#define GL_TESS_EVALUATION_SHADER_BIT_EXT 0x00000010 +#define GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED 0x8221 +#define GL_MAX_TESS_CONTROL_INPUT_COMPONENTS_EXT 0x886C +#define GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS_EXT 0x886D +#define GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS_EXT 0x8E1E +#define GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT 0x8E1F +#define GL_PATCH_VERTICES_EXT 0x8E72 +#define GL_TESS_CONTROL_OUTPUT_VERTICES_EXT 0x8E75 +#define GL_TESS_GEN_MODE_EXT 0x8E76 +#define GL_TESS_GEN_SPACING_EXT 0x8E77 +#define GL_TESS_GEN_VERTEX_ORDER_EXT 0x8E78 +#define GL_TESS_GEN_POINT_MODE_EXT 0x8E79 +#define GL_ISOLINES_EXT 0x8E7A +#define GL_FRACTIONAL_ODD_EXT 0x8E7B +#define GL_FRACTIONAL_EVEN_EXT 0x8E7C +#define GL_MAX_PATCH_VERTICES_EXT 0x8E7D +#define GL_MAX_TESS_GEN_LEVEL_EXT 0x8E7E +#define GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS_EXT 0x8E7F +#define GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT 0x8E80 +#define GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS_EXT 0x8E81 +#define GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS_EXT 0x8E82 +#define GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS_EXT 0x8E83 +#define GL_MAX_TESS_PATCH_COMPONENTS_EXT 0x8E84 +#define GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS_EXT 0x8E85 +#define GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS_EXT 0x8E86 +#define GL_TESS_EVALUATION_SHADER_EXT 0x8E87 +#define GL_TESS_CONTROL_SHADER_EXT 0x8E88 +#define GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS_EXT 0x8E89 +#define GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS_EXT 0x8E8A +#define GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS_EXT 0x90CB +#define GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS_EXT 0x90CC +#define GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS_EXT 0x90D8 +#define GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS_EXT 0x90D9 +#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS_EXT 0x92CD +#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS_EXT 0x92CE +#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS_EXT 0x92D3 +#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS_EXT 0x92D4 +#define GL_IS_PER_PATCH_EXT 0x92E7 +#define GL_REFERENCED_BY_TESS_CONTROL_SHADER_EXT 0x9307 +#define GL_REFERENCED_BY_TESS_EVALUATION_SHADER_EXT 0x9308 + +typedef void (GLAPIENTRY * PFNGLPATCHPARAMETERIEXTPROC) (GLenum pname, GLint value); + +#define glPatchParameteriEXT GLEW_GET_FUN(__glewPatchParameteriEXT) + +#define GLEW_EXT_tessellation_point_size GLEW_GET_VAR(__GLEW_EXT_tessellation_point_size) + +#endif /* GL_EXT_tessellation_point_size */ + +/* ----------------------- GL_EXT_tessellation_shader ---------------------- */ + +#ifndef GL_EXT_tessellation_shader +#define GL_EXT_tessellation_shader 1 + +#define GL_QUADS_EXT 0x0007 +#define GL_TESS_CONTROL_SHADER_BIT_EXT 0x00000008 +#define GL_PATCHES_EXT 0xE +#define GL_TESS_EVALUATION_SHADER_BIT_EXT 0x00000010 +#define GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED 0x8221 +#define GL_MAX_TESS_CONTROL_INPUT_COMPONENTS_EXT 0x886C +#define GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS_EXT 0x886D +#define GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS_EXT 0x8E1E +#define GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT 0x8E1F +#define GL_PATCH_VERTICES_EXT 0x8E72 +#define GL_TESS_CONTROL_OUTPUT_VERTICES_EXT 0x8E75 +#define GL_TESS_GEN_MODE_EXT 0x8E76 +#define GL_TESS_GEN_SPACING_EXT 0x8E77 +#define GL_TESS_GEN_VERTEX_ORDER_EXT 0x8E78 +#define GL_TESS_GEN_POINT_MODE_EXT 0x8E79 +#define GL_ISOLINES_EXT 0x8E7A +#define GL_FRACTIONAL_ODD_EXT 0x8E7B +#define GL_FRACTIONAL_EVEN_EXT 0x8E7C +#define GL_MAX_PATCH_VERTICES_EXT 0x8E7D +#define GL_MAX_TESS_GEN_LEVEL_EXT 0x8E7E +#define GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS_EXT 0x8E7F +#define GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT 0x8E80 +#define GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS_EXT 0x8E81 +#define GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS_EXT 0x8E82 +#define GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS_EXT 0x8E83 +#define GL_MAX_TESS_PATCH_COMPONENTS_EXT 0x8E84 +#define GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS_EXT 0x8E85 +#define GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS_EXT 0x8E86 +#define GL_TESS_EVALUATION_SHADER_EXT 0x8E87 +#define GL_TESS_CONTROL_SHADER_EXT 0x8E88 +#define GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS_EXT 0x8E89 +#define GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS_EXT 0x8E8A +#define GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS_EXT 0x90CB +#define GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS_EXT 0x90CC +#define GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS_EXT 0x90D8 +#define GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS_EXT 0x90D9 +#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS_EXT 0x92CD +#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS_EXT 0x92CE +#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS_EXT 0x92D3 +#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS_EXT 0x92D4 +#define GL_IS_PER_PATCH_EXT 0x92E7 +#define GL_REFERENCED_BY_TESS_CONTROL_SHADER_EXT 0x9307 +#define GL_REFERENCED_BY_TESS_EVALUATION_SHADER_EXT 0x9308 + +#define GLEW_EXT_tessellation_shader GLEW_GET_VAR(__GLEW_EXT_tessellation_shader) + +#endif /* GL_EXT_tessellation_shader */ + /* ----------------------------- GL_EXT_texture ---------------------------- */ #ifndef GL_EXT_texture @@ -10738,6 +12540,52 @@ typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC) (GLenum target, #endif /* GL_EXT_texture_array */ +/* ---------------------- GL_EXT_texture_border_clamp ---------------------- */ + +#ifndef GL_EXT_texture_border_clamp +#define GL_EXT_texture_border_clamp 1 + +#define GL_TEXTURE_BORDER_COLOR_EXT 0x1004 +#define GL_CLAMP_TO_BORDER_EXT 0x812D + +typedef void (GLAPIENTRY * PFNGLGETSAMPLERPARAMETERIIVEXTPROC) (GLuint sampler, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETSAMPLERPARAMETERIUIVEXTPROC) (GLuint sampler, GLenum pname, GLuint* params); +typedef void (GLAPIENTRY * PFNGLSAMPLERPARAMETERIIVEXTPROC) (GLuint sampler, GLenum pname, const GLint* params); +typedef void (GLAPIENTRY * PFNGLSAMPLERPARAMETERIUIVEXTPROC) (GLuint sampler, GLenum pname, const GLuint* params); + +#define glGetSamplerParameterIivEXT GLEW_GET_FUN(__glewGetSamplerParameterIivEXT) +#define glGetSamplerParameterIuivEXT GLEW_GET_FUN(__glewGetSamplerParameterIuivEXT) +#define glSamplerParameterIivEXT GLEW_GET_FUN(__glewSamplerParameterIivEXT) +#define glSamplerParameterIuivEXT GLEW_GET_FUN(__glewSamplerParameterIuivEXT) + +#define GLEW_EXT_texture_border_clamp GLEW_GET_VAR(__GLEW_EXT_texture_border_clamp) + +#endif /* GL_EXT_texture_border_clamp */ + +/* ------------------------- GL_EXT_texture_buffer ------------------------- */ + +#ifndef GL_EXT_texture_buffer +#define GL_EXT_texture_buffer 1 + +#define GL_TEXTURE_BUFFER_BINDING_EXT 0x8C2A +#define GL_TEXTURE_BUFFER_EXT 0x8C2A +#define GL_MAX_TEXTURE_BUFFER_SIZE_EXT 0x8C2B +#define GL_TEXTURE_BINDING_BUFFER_EXT 0x8C2C +#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT 0x8C2D +#define GL_SAMPLER_BUFFER_EXT 0x8DC2 +#define GL_INT_SAMPLER_BUFFER_EXT 0x8DD0 +#define GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT 0x8DD8 +#define GL_IMAGE_BUFFER_EXT 0x9051 +#define GL_INT_IMAGE_BUFFER_EXT 0x905C +#define GL_UNSIGNED_INT_IMAGE_BUFFER_EXT 0x9067 +#define GL_TEXTURE_BUFFER_OFFSET_EXT 0x919D +#define GL_TEXTURE_BUFFER_SIZE_EXT 0x919E +#define GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT_EXT 0x919F + +#define GLEW_EXT_texture_buffer GLEW_GET_VAR(__GLEW_EXT_texture_buffer) + +#endif /* GL_EXT_texture_buffer */ + /* ---------------------- GL_EXT_texture_buffer_object --------------------- */ #ifndef GL_EXT_texture_buffer_object @@ -10757,6 +12605,42 @@ typedef void (GLAPIENTRY * PFNGLTEXBUFFEREXTPROC) (GLenum target, GLenum interna #endif /* GL_EXT_texture_buffer_object */ +/* -------------- GL_EXT_texture_compression_astc_decode_mode -------------- */ + +#ifndef GL_EXT_texture_compression_astc_decode_mode +#define GL_EXT_texture_compression_astc_decode_mode 1 + +#define GL_TEXTURE_ASTC_DECODE_PRECISION_EXT 0x8F69 + +#define GLEW_EXT_texture_compression_astc_decode_mode GLEW_GET_VAR(__GLEW_EXT_texture_compression_astc_decode_mode) + +#endif /* GL_EXT_texture_compression_astc_decode_mode */ + +/* ----------- GL_EXT_texture_compression_astc_decode_mode_rgb9e5 ---------- */ + +#ifndef GL_EXT_texture_compression_astc_decode_mode_rgb9e5 +#define GL_EXT_texture_compression_astc_decode_mode_rgb9e5 1 + +#define GL_TEXTURE_ASTC_DECODE_PRECISION_EXT 0x8F69 + +#define GLEW_EXT_texture_compression_astc_decode_mode_rgb9e5 GLEW_GET_VAR(__GLEW_EXT_texture_compression_astc_decode_mode_rgb9e5) + +#endif /* GL_EXT_texture_compression_astc_decode_mode_rgb9e5 */ + +/* -------------------- GL_EXT_texture_compression_bptc -------------------- */ + +#ifndef GL_EXT_texture_compression_bptc +#define GL_EXT_texture_compression_bptc 1 + +#define GL_COMPRESSED_RGBA_BPTC_UNORM_EXT 0x8E8C +#define GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT 0x8E8D +#define GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT 0x8E8E +#define GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT 0x8E8F + +#define GLEW_EXT_texture_compression_bptc GLEW_GET_VAR(__GLEW_EXT_texture_compression_bptc) + +#endif /* GL_EXT_texture_compression_bptc */ + /* -------------------- GL_EXT_texture_compression_dxt1 -------------------- */ #ifndef GL_EXT_texture_compression_dxt1 @@ -10808,6 +12692,20 @@ typedef void (GLAPIENTRY * PFNGLTEXBUFFEREXTPROC) (GLenum target, GLenum interna #endif /* GL_EXT_texture_compression_s3tc */ +/* ------------------ GL_EXT_texture_compression_s3tc_srgb ----------------- */ + +#ifndef GL_EXT_texture_compression_s3tc_srgb +#define GL_EXT_texture_compression_s3tc_srgb 1 + +#define GL_COMPRESSED_SRGB_S3TC_DXT1_EXT 0x8C4C +#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT 0x8C4D +#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT 0x8C4E +#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT 0x8C4F + +#define GLEW_EXT_texture_compression_s3tc_srgb GLEW_GET_VAR(__GLEW_EXT_texture_compression_s3tc_srgb) + +#endif /* GL_EXT_texture_compression_s3tc_srgb */ + /* ------------------------ GL_EXT_texture_cube_map ------------------------ */ #ifndef GL_EXT_texture_cube_map @@ -10830,6 +12728,25 @@ typedef void (GLAPIENTRY * PFNGLTEXBUFFEREXTPROC) (GLenum target, GLenum interna #endif /* GL_EXT_texture_cube_map */ +/* --------------------- GL_EXT_texture_cube_map_array --------------------- */ + +#ifndef GL_EXT_texture_cube_map_array +#define GL_EXT_texture_cube_map_array 1 + +#define GL_TEXTURE_CUBE_MAP_ARRAY_EXT 0x9009 +#define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_EXT 0x900A +#define GL_SAMPLER_CUBE_MAP_ARRAY_EXT 0x900C +#define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_EXT 0x900D +#define GL_INT_SAMPLER_CUBE_MAP_ARRAY_EXT 0x900E +#define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_EXT 0x900F +#define GL_IMAGE_CUBE_MAP_ARRAY_EXT 0x9054 +#define GL_INT_IMAGE_CUBE_MAP_ARRAY_EXT 0x905F +#define GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT 0x906A + +#define GLEW_EXT_texture_cube_map_array GLEW_GET_VAR(__GLEW_EXT_texture_cube_map_array) + +#endif /* GL_EXT_texture_cube_map_array */ + /* ----------------------- GL_EXT_texture_edge_clamp ----------------------- */ #ifndef GL_EXT_texture_edge_clamp @@ -10926,6 +12843,28 @@ typedef void (GLAPIENTRY * PFNGLTEXBUFFEREXTPROC) (GLenum target, GLenum interna #endif /* GL_EXT_texture_filter_minmax */ +/* --------------------- GL_EXT_texture_format_BGRA8888 -------------------- */ + +#ifndef GL_EXT_texture_format_BGRA8888 +#define GL_EXT_texture_format_BGRA8888 1 + +#define GL_BGRA_EXT 0x80E1 + +#define GLEW_EXT_texture_format_BGRA8888 GLEW_GET_VAR(__GLEW_EXT_texture_format_BGRA8888) + +#endif /* GL_EXT_texture_format_BGRA8888 */ + +/* ------------------ GL_EXT_texture_format_sRGB_override ------------------ */ + +#ifndef GL_EXT_texture_format_sRGB_override +#define GL_EXT_texture_format_sRGB_override 1 + +#define GL_TEXTURE_FORMAT_SRGB_OVERRIDE_EXT 0x8FBF + +#define GLEW_EXT_texture_format_sRGB_override GLEW_GET_VAR(__GLEW_EXT_texture_format_sRGB_override) + +#endif /* GL_EXT_texture_format_sRGB_override */ + /* ------------------------- GL_EXT_texture_integer ------------------------ */ #ifndef GL_EXT_texture_integer @@ -11023,6 +12962,35 @@ typedef void (GLAPIENTRY * PFNGLTEXPARAMETERIUIVEXTPROC) (GLenum target, GLenum #endif /* GL_EXT_texture_mirror_clamp */ +/* ------------------ GL_EXT_texture_mirror_clamp_to_edge ------------------ */ + +#ifndef GL_EXT_texture_mirror_clamp_to_edge +#define GL_EXT_texture_mirror_clamp_to_edge 1 + +#define GL_MIRROR_CLAMP_TO_EDGE_EXT 0x8743 + +#define GLEW_EXT_texture_mirror_clamp_to_edge GLEW_GET_VAR(__GLEW_EXT_texture_mirror_clamp_to_edge) + +#endif /* GL_EXT_texture_mirror_clamp_to_edge */ + +/* ------------------------- GL_EXT_texture_norm16 ------------------------- */ + +#ifndef GL_EXT_texture_norm16 +#define GL_EXT_texture_norm16 1 + +#define GL_RGB16_EXT 0x8054 +#define GL_RGBA16_EXT 0x805B +#define GL_R16_EXT 0x822A +#define GL_RG16_EXT 0x822C +#define GL_R16_SNORM_EXT 0x8F98 +#define GL_RG16_SNORM_EXT 0x8F99 +#define GL_RGB16_SNORM_EXT 0x8F9A +#define GL_RGBA16_SNORM_EXT 0x8F9B + +#define GLEW_EXT_texture_norm16 GLEW_GET_VAR(__GLEW_EXT_texture_norm16) + +#endif /* GL_EXT_texture_norm16 */ + /* ------------------------- GL_EXT_texture_object ------------------------- */ #ifndef GL_EXT_texture_object @@ -11068,6 +13036,15 @@ typedef void (GLAPIENTRY * PFNGLTEXTURENORMALEXTPROC) (GLenum mode); #endif /* GL_EXT_texture_perturb_normal */ +/* ------------------------ GL_EXT_texture_query_lod ----------------------- */ + +#ifndef GL_EXT_texture_query_lod +#define GL_EXT_texture_query_lod 1 + +#define GLEW_EXT_texture_query_lod GLEW_GET_VAR(__GLEW_EXT_texture_query_lod) + +#endif /* GL_EXT_texture_query_lod */ + /* ------------------------ GL_EXT_texture_rectangle ----------------------- */ #ifndef GL_EXT_texture_rectangle @@ -11082,6 +13059,20 @@ typedef void (GLAPIENTRY * PFNGLTEXTURENORMALEXTPROC) (GLenum mode); #endif /* GL_EXT_texture_rectangle */ +/* --------------------------- GL_EXT_texture_rg --------------------------- */ + +#ifndef GL_EXT_texture_rg +#define GL_EXT_texture_rg 1 + +#define GL_RED_EXT 0x1903 +#define GL_RG_EXT 0x8227 +#define GL_R8_EXT 0x8229 +#define GL_RG8_EXT 0x822B + +#define GLEW_EXT_texture_rg GLEW_GET_VAR(__GLEW_EXT_texture_rg) + +#endif /* GL_EXT_texture_rg */ + /* -------------------------- GL_EXT_texture_sRGB -------------------------- */ #ifndef GL_EXT_texture_sRGB @@ -11108,6 +13099,28 @@ typedef void (GLAPIENTRY * PFNGLTEXTURENORMALEXTPROC) (GLenum mode); #endif /* GL_EXT_texture_sRGB */ +/* ------------------------- GL_EXT_texture_sRGB_R8 ------------------------ */ + +#ifndef GL_EXT_texture_sRGB_R8 +#define GL_EXT_texture_sRGB_R8 1 + +#define GL_SR8_EXT 0x8FBD + +#define GLEW_EXT_texture_sRGB_R8 GLEW_GET_VAR(__GLEW_EXT_texture_sRGB_R8) + +#endif /* GL_EXT_texture_sRGB_R8 */ + +/* ------------------------ GL_EXT_texture_sRGB_RG8 ------------------------ */ + +#ifndef GL_EXT_texture_sRGB_RG8 +#define GL_EXT_texture_sRGB_RG8 1 + +#define GL_SRG8_EXT 0x8FBE + +#define GLEW_EXT_texture_sRGB_RG8 GLEW_GET_VAR(__GLEW_EXT_texture_sRGB_RG8) + +#endif /* GL_EXT_texture_sRGB_RG8 */ + /* ----------------------- GL_EXT_texture_sRGB_decode ---------------------- */ #ifndef GL_EXT_texture_sRGB_decode @@ -11121,6 +13134,15 @@ typedef void (GLAPIENTRY * PFNGLTEXTURENORMALEXTPROC) (GLenum mode); #endif /* GL_EXT_texture_sRGB_decode */ +/* ----------------------- GL_EXT_texture_shadow_lod ----------------------- */ + +#ifndef GL_EXT_texture_shadow_lod +#define GL_EXT_texture_shadow_lod 1 + +#define GLEW_EXT_texture_shadow_lod GLEW_GET_VAR(__GLEW_EXT_texture_shadow_lod) + +#endif /* GL_EXT_texture_shadow_lod */ + /* --------------------- GL_EXT_texture_shared_exponent -------------------- */ #ifndef GL_EXT_texture_shared_exponent @@ -11169,6 +13191,54 @@ typedef void (GLAPIENTRY * PFNGLTEXTURENORMALEXTPROC) (GLenum mode); #endif /* GL_EXT_texture_snorm */ +/* ------------------------- GL_EXT_texture_storage ------------------------ */ + +#ifndef GL_EXT_texture_storage +#define GL_EXT_texture_storage 1 + +#define GL_ALPHA8_EXT 0x803C +#define GL_LUMINANCE8_EXT 0x8040 +#define GL_LUMINANCE8_ALPHA8_EXT 0x8045 +#define GL_RGB10_EXT 0x8052 +#define GL_RGB10_A2_EXT 0x8059 +#define GL_R8_EXT 0x8229 +#define GL_RG8_EXT 0x822B +#define GL_R16F_EXT 0x822D +#define GL_R32F_EXT 0x822E +#define GL_RG16F_EXT 0x822F +#define GL_RG32F_EXT 0x8230 +#define GL_RGBA32F_EXT 0x8814 +#define GL_RGB32F_EXT 0x8815 +#define GL_ALPHA32F_EXT 0x8816 +#define GL_LUMINANCE32F_EXT 0x8818 +#define GL_LUMINANCE_ALPHA32F_EXT 0x8819 +#define GL_RGBA16F_EXT 0x881A +#define GL_RGB16F_EXT 0x881B +#define GL_ALPHA16F_EXT 0x881C +#define GL_LUMINANCE16F_EXT 0x881E +#define GL_LUMINANCE_ALPHA16F_EXT 0x881F +#define GL_RGB_RAW_422_APPLE 0x8A51 +#define GL_TEXTURE_IMMUTABLE_FORMAT_EXT 0x912F +#define GL_BGRA8_EXT 0x93A1 + +typedef void (GLAPIENTRY * PFNGLTEXSTORAGE1DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); +typedef void (GLAPIENTRY * PFNGLTEXSTORAGE2DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (GLAPIENTRY * PFNGLTEXSTORAGE3DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); +typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGE1DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); +typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGE2DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGE3DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); + +#define glTexStorage1DEXT GLEW_GET_FUN(__glewTexStorage1DEXT) +#define glTexStorage2DEXT GLEW_GET_FUN(__glewTexStorage2DEXT) +#define glTexStorage3DEXT GLEW_GET_FUN(__glewTexStorage3DEXT) +#define glTextureStorage1DEXT GLEW_GET_FUN(__glewTextureStorage1DEXT) +#define glTextureStorage2DEXT GLEW_GET_FUN(__glewTextureStorage2DEXT) +#define glTextureStorage3DEXT GLEW_GET_FUN(__glewTextureStorage3DEXT) + +#define GLEW_EXT_texture_storage GLEW_GET_VAR(__GLEW_EXT_texture_storage) + +#endif /* GL_EXT_texture_storage */ + /* ------------------------- GL_EXT_texture_swizzle ------------------------ */ #ifndef GL_EXT_texture_swizzle @@ -11184,6 +13254,36 @@ typedef void (GLAPIENTRY * PFNGLTEXTURENORMALEXTPROC) (GLenum mode); #endif /* GL_EXT_texture_swizzle */ +/* ------------------- GL_EXT_texture_type_2_10_10_10_REV ------------------ */ + +#ifndef GL_EXT_texture_type_2_10_10_10_REV +#define GL_EXT_texture_type_2_10_10_10_REV 1 + +#define GL_UNSIGNED_INT_2_10_10_10_REV_EXT 0x8368 + +#define GLEW_EXT_texture_type_2_10_10_10_REV GLEW_GET_VAR(__GLEW_EXT_texture_type_2_10_10_10_REV) + +#endif /* GL_EXT_texture_type_2_10_10_10_REV */ + +/* -------------------------- GL_EXT_texture_view -------------------------- */ + +#ifndef GL_EXT_texture_view +#define GL_EXT_texture_view 1 + +#define GL_TEXTURE_VIEW_MIN_LEVEL_EXT 0x82DB +#define GL_TEXTURE_VIEW_NUM_LEVELS_EXT 0x82DC +#define GL_TEXTURE_VIEW_MIN_LAYER_EXT 0x82DD +#define GL_TEXTURE_VIEW_NUM_LAYERS_EXT 0x82DE +#define GL_TEXTURE_IMMUTABLE_LEVELS 0x82DF + +typedef void (GLAPIENTRY * PFNGLTEXTUREVIEWEXTPROC) (GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers); + +#define glTextureViewEXT GLEW_GET_FUN(__glewTextureViewEXT) + +#define GLEW_EXT_texture_view GLEW_GET_VAR(__GLEW_EXT_texture_view) + +#endif /* GL_EXT_texture_view */ + /* --------------------------- GL_EXT_timer_query -------------------------- */ #ifndef GL_EXT_timer_query @@ -11242,6 +13342,19 @@ typedef void (GLAPIENTRY * PFNGLTRANSFORMFEEDBACKVARYINGSEXTPROC) (GLuint progra #endif /* GL_EXT_transform_feedback */ +/* ------------------------- GL_EXT_unpack_subimage ------------------------ */ + +#ifndef GL_EXT_unpack_subimage +#define GL_EXT_unpack_subimage 1 + +#define GL_UNPACK_ROW_LENGTH_EXT 0x0CF2 +#define GL_UNPACK_SKIP_ROWS_EXT 0x0CF3 +#define GL_UNPACK_SKIP_PIXELS_EXT 0x0CF4 + +#define GLEW_EXT_unpack_subimage GLEW_GET_VAR(__GLEW_EXT_unpack_subimage) + +#endif /* GL_EXT_unpack_subimage */ + /* -------------------------- GL_EXT_vertex_array -------------------------- */ #ifndef GL_EXT_vertex_array @@ -11314,6 +13427,23 @@ typedef void (GLAPIENTRY * PFNGLVERTEXPOINTEREXTPROC) (GLint size, GLenum type, #endif /* GL_EXT_vertex_array_bgra */ +/* ----------------------- GL_EXT_vertex_array_setXXX ---------------------- */ + +#ifndef GL_EXT_vertex_array_setXXX +#define GL_EXT_vertex_array_setXXX 1 + +typedef void (GLAPIENTRY * PFNGLBINDARRAYSETEXTPROC) (const void *arrayset); +typedef const void * (GLAPIENTRY * PFNGLCREATEARRAYSETEXTPROC) (void); +typedef void (GLAPIENTRY * PFNGLDELETEARRAYSETSEXTPROC) (GLsizei n, const void *arrayset[]); + +#define glBindArraySetEXT GLEW_GET_FUN(__glewBindArraySetEXT) +#define glCreateArraySetExt GLEW_GET_FUN(__glewCreateArraySetExt) +#define glDeleteArraySetsEXT GLEW_GET_FUN(__glewDeleteArraySetsEXT) + +#define GLEW_EXT_vertex_array_setXXX GLEW_GET_VAR(__GLEW_EXT_vertex_array_setXXX) + +#endif /* GL_EXT_vertex_array_setXXX */ + /* ----------------------- GL_EXT_vertex_attrib_64bit ---------------------- */ #ifndef GL_EXT_vertex_attrib_64bit @@ -11597,6 +13727,41 @@ typedef void (GLAPIENTRY * PFNGLVERTEXWEIGHTFVEXTPROC) (GLfloat* weight); #endif /* GL_EXT_vertex_weighting */ +/* ------------------------ GL_EXT_win32_keyed_mutex ----------------------- */ + +#ifndef GL_EXT_win32_keyed_mutex +#define GL_EXT_win32_keyed_mutex 1 + +typedef GLboolean (GLAPIENTRY * PFNGLACQUIREKEYEDMUTEXWIN32EXTPROC) (GLuint memory, GLuint64 key, GLuint timeout); +typedef GLboolean (GLAPIENTRY * PFNGLRELEASEKEYEDMUTEXWIN32EXTPROC) (GLuint memory, GLuint64 key); + +#define glAcquireKeyedMutexWin32EXT GLEW_GET_FUN(__glewAcquireKeyedMutexWin32EXT) +#define glReleaseKeyedMutexWin32EXT GLEW_GET_FUN(__glewReleaseKeyedMutexWin32EXT) + +#define GLEW_EXT_win32_keyed_mutex GLEW_GET_VAR(__GLEW_EXT_win32_keyed_mutex) + +#endif /* GL_EXT_win32_keyed_mutex */ + +/* ------------------------ GL_EXT_window_rectangles ----------------------- */ + +#ifndef GL_EXT_window_rectangles +#define GL_EXT_window_rectangles 1 + +#define GL_INCLUSIVE_EXT 0x8F10 +#define GL_EXCLUSIVE_EXT 0x8F11 +#define GL_WINDOW_RECTANGLE_EXT 0x8F12 +#define GL_WINDOW_RECTANGLE_MODE_EXT 0x8F13 +#define GL_MAX_WINDOW_RECTANGLES_EXT 0x8F14 +#define GL_NUM_WINDOW_RECTANGLES_EXT 0x8F15 + +typedef void (GLAPIENTRY * PFNGLWINDOWRECTANGLESEXTPROC) (GLenum mode, GLsizei count, const GLint box[]); + +#define glWindowRectanglesEXT GLEW_GET_FUN(__glewWindowRectanglesEXT) + +#define GLEW_EXT_window_rectangles GLEW_GET_VAR(__GLEW_EXT_window_rectangles) + +#endif /* GL_EXT_window_rectangles */ + /* ------------------------- GL_EXT_x11_sync_object ------------------------ */ #ifndef GL_EXT_x11_sync_object @@ -11612,6 +13777,17 @@ typedef GLsync (GLAPIENTRY * PFNGLIMPORTSYNCEXTPROC) (GLenum external_sync_type, #endif /* GL_EXT_x11_sync_object */ +/* ----------------------- GL_FJ_shader_binary_GCCSO ----------------------- */ + +#ifndef GL_FJ_shader_binary_GCCSO +#define GL_FJ_shader_binary_GCCSO 1 + +#define GL_GCCSO_SHADER_BINARY_FJ 0x9260 + +#define GLEW_FJ_shader_binary_GCCSO GLEW_GET_VAR(__GLEW_FJ_shader_binary_GCCSO) + +#endif /* GL_FJ_shader_binary_GCCSO */ + /* ---------------------- GL_GREMEDY_frame_terminator ---------------------- */ #ifndef GL_GREMEDY_frame_terminator @@ -11792,6 +13968,159 @@ typedef void (GLAPIENTRY * PFNGLVERTEXPOINTERLISTIBMPROC) (GLint size, GLenum ty #endif /* GL_IBM_vertex_array_lists */ +/* ------------------------ GL_IMG_bindless_texture ------------------------ */ + +#ifndef GL_IMG_bindless_texture +#define GL_IMG_bindless_texture 1 + +typedef GLuint64 (GLAPIENTRY * PFNGLGETTEXTUREHANDLEIMGPROC) (GLuint texture); +typedef GLuint64 (GLAPIENTRY * PFNGLGETTEXTURESAMPLERHANDLEIMGPROC) (GLuint texture, GLuint sampler); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMHANDLEUI64IMGPROC) (GLuint program, GLint location, GLuint64 value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMHANDLEUI64VIMGPROC) (GLuint program, GLint location, GLsizei count, const GLuint64* values); +typedef void (GLAPIENTRY * PFNGLUNIFORMHANDLEUI64IMGPROC) (GLint location, GLuint64 value); +typedef void (GLAPIENTRY * PFNGLUNIFORMHANDLEUI64VIMGPROC) (GLint location, GLsizei count, const GLuint64* value); + +#define glGetTextureHandleIMG GLEW_GET_FUN(__glewGetTextureHandleIMG) +#define glGetTextureSamplerHandleIMG GLEW_GET_FUN(__glewGetTextureSamplerHandleIMG) +#define glProgramUniformHandleui64IMG GLEW_GET_FUN(__glewProgramUniformHandleui64IMG) +#define glProgramUniformHandleui64vIMG GLEW_GET_FUN(__glewProgramUniformHandleui64vIMG) +#define glUniformHandleui64IMG GLEW_GET_FUN(__glewUniformHandleui64IMG) +#define glUniformHandleui64vIMG GLEW_GET_FUN(__glewUniformHandleui64vIMG) + +#define GLEW_IMG_bindless_texture GLEW_GET_VAR(__GLEW_IMG_bindless_texture) + +#endif /* GL_IMG_bindless_texture */ + +/* --------------------- GL_IMG_framebuffer_downsample --------------------- */ + +#ifndef GL_IMG_framebuffer_downsample +#define GL_IMG_framebuffer_downsample 1 + +#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_AND_DOWNSAMPLE_IMG 0x913C +#define GL_NUM_DOWNSAMPLE_SCALES_IMG 0x913D +#define GL_DOWNSAMPLE_SCALES_IMG 0x913E +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SCALE_IMG 0x913F + +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURE2DDOWNSAMPLEIMGPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint xscale, GLint yscale); +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURELAYERDOWNSAMPLEIMGPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer, GLint xscale, GLint yscale); + +#define glFramebufferTexture2DDownsampleIMG GLEW_GET_FUN(__glewFramebufferTexture2DDownsampleIMG) +#define glFramebufferTextureLayerDownsampleIMG GLEW_GET_FUN(__glewFramebufferTextureLayerDownsampleIMG) + +#define GLEW_IMG_framebuffer_downsample GLEW_GET_VAR(__GLEW_IMG_framebuffer_downsample) + +#endif /* GL_IMG_framebuffer_downsample */ + +/* ----------------- GL_IMG_multisampled_render_to_texture ----------------- */ + +#ifndef GL_IMG_multisampled_render_to_texture +#define GL_IMG_multisampled_render_to_texture 1 + +#define GL_RENDERBUFFER_SAMPLES_IMG 0x9133 +#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_IMG 0x9134 +#define GL_MAX_SAMPLES_IMG 0x9135 +#define GL_TEXTURE_SAMPLES_IMG 0x9136 + +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEIMGPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples); +typedef void (GLAPIENTRY * PFNGLRENDERBUFFERSTORAGEMULTISAMPLEIMGPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); + +#define glFramebufferTexture2DMultisampleIMG GLEW_GET_FUN(__glewFramebufferTexture2DMultisampleIMG) +#define glRenderbufferStorageMultisampleIMG GLEW_GET_FUN(__glewRenderbufferStorageMultisampleIMG) + +#define GLEW_IMG_multisampled_render_to_texture GLEW_GET_VAR(__GLEW_IMG_multisampled_render_to_texture) + +#endif /* GL_IMG_multisampled_render_to_texture */ + +/* ------------------------- GL_IMG_program_binary ------------------------- */ + +#ifndef GL_IMG_program_binary +#define GL_IMG_program_binary 1 + +#define GL_SGX_PROGRAM_BINARY_IMG 0x9130 + +#define GLEW_IMG_program_binary GLEW_GET_VAR(__GLEW_IMG_program_binary) + +#endif /* GL_IMG_program_binary */ + +/* --------------------------- GL_IMG_read_format -------------------------- */ + +#ifndef GL_IMG_read_format +#define GL_IMG_read_format 1 + +#define GL_BGRA_IMG 0x80E1 +#define GL_UNSIGNED_SHORT_4_4_4_4_REV_IMG 0x8365 + +#define GLEW_IMG_read_format GLEW_GET_VAR(__GLEW_IMG_read_format) + +#endif /* GL_IMG_read_format */ + +/* -------------------------- GL_IMG_shader_binary ------------------------- */ + +#ifndef GL_IMG_shader_binary +#define GL_IMG_shader_binary 1 + +#define GL_SGX_BINARY_IMG 0x8C0A + +#define GLEW_IMG_shader_binary GLEW_GET_VAR(__GLEW_IMG_shader_binary) + +#endif /* GL_IMG_shader_binary */ + +/* -------------------- GL_IMG_texture_compression_pvrtc ------------------- */ + +#ifndef GL_IMG_texture_compression_pvrtc +#define GL_IMG_texture_compression_pvrtc 1 + +#define GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG 0x8C00 +#define GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG 0x8C01 +#define GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG 0x8C02 +#define GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG 0x8C03 + +#define GLEW_IMG_texture_compression_pvrtc GLEW_GET_VAR(__GLEW_IMG_texture_compression_pvrtc) + +#endif /* GL_IMG_texture_compression_pvrtc */ + +/* ------------------- GL_IMG_texture_compression_pvrtc2 ------------------- */ + +#ifndef GL_IMG_texture_compression_pvrtc2 +#define GL_IMG_texture_compression_pvrtc2 1 + +#define GL_COMPRESSED_RGBA_PVRTC_2BPPV2_IMG 0x9137 +#define GL_COMPRESSED_RGBA_PVRTC_4BPPV2_IMG 0x9138 + +#define GLEW_IMG_texture_compression_pvrtc2 GLEW_GET_VAR(__GLEW_IMG_texture_compression_pvrtc2) + +#endif /* GL_IMG_texture_compression_pvrtc2 */ + +/* --------------- GL_IMG_texture_env_enhanced_fixed_function -------------- */ + +#ifndef GL_IMG_texture_env_enhanced_fixed_function +#define GL_IMG_texture_env_enhanced_fixed_function 1 + +#define GL_DOT3_RGBA_IMG 0x86AF +#define GL_MODULATE_COLOR_IMG 0x8C04 +#define GL_RECIP_ADD_SIGNED_ALPHA_IMG 0x8C05 +#define GL_TEXTURE_ALPHA_MODULATE_IMG 0x8C06 +#define GL_FACTOR_ALPHA_MODULATE_IMG 0x8C07 +#define GL_FRAGMENT_ALPHA_MODULATE_IMG 0x8C08 +#define GL_ADD_BLEND_IMG 0x8C09 + +#define GLEW_IMG_texture_env_enhanced_fixed_function GLEW_GET_VAR(__GLEW_IMG_texture_env_enhanced_fixed_function) + +#endif /* GL_IMG_texture_env_enhanced_fixed_function */ + +/* ---------------------- GL_IMG_texture_filter_cubic ---------------------- */ + +#ifndef GL_IMG_texture_filter_cubic +#define GL_IMG_texture_filter_cubic 1 + +#define GL_CUBIC_IMG 0x9139 +#define GL_CUBIC_MIPMAP_NEAREST_IMG 0x913A +#define GL_CUBIC_MIPMAP_LINEAR_IMG 0x913B + +#define GLEW_IMG_texture_filter_cubic GLEW_GET_VAR(__GLEW_IMG_texture_filter_cubic) + +#endif /* GL_IMG_texture_filter_cubic */ + /* -------------------------- GL_INGR_color_clamp -------------------------- */ #ifndef GL_INGR_color_clamp @@ -11821,6 +14150,28 @@ typedef void (GLAPIENTRY * PFNGLVERTEXPOINTERLISTIBMPROC) (GLint size, GLenum ty #endif /* GL_INGR_interlace_read */ +/* ----------------------- GL_INTEL_blackhole_render ----------------------- */ + +#ifndef GL_INTEL_blackhole_render +#define GL_INTEL_blackhole_render 1 + +#define GL_BLACKHOLE_RENDER_INTEL 0x83FC + +#define GLEW_INTEL_blackhole_render GLEW_GET_VAR(__GLEW_INTEL_blackhole_render) + +#endif /* GL_INTEL_blackhole_render */ + +/* ------------------ GL_INTEL_conservative_rasterization ------------------ */ + +#ifndef GL_INTEL_conservative_rasterization +#define GL_INTEL_conservative_rasterization 1 + +#define GL_CONSERVATIVE_RASTERIZATION_INTEL 0x83FE + +#define GLEW_INTEL_conservative_rasterization GLEW_GET_VAR(__GLEW_INTEL_conservative_rasterization) + +#endif /* GL_INTEL_conservative_rasterization */ + /* ------------------- GL_INTEL_fragment_shader_ordering ------------------- */ #ifndef GL_INTEL_fragment_shader_ordering @@ -11938,6 +14289,15 @@ typedef void (GLAPIENTRY * PFNGLGETPERFQUERYINFOINTELPROC) (GLuint queryId, GLui #endif /* GL_INTEL_performance_query */ +/* ------------------- GL_INTEL_shader_integer_functions2 ------------------ */ + +#ifndef GL_INTEL_shader_integer_functions2 +#define GL_INTEL_shader_integer_functions2 1 + +#define GLEW_INTEL_shader_integer_functions2 GLEW_GET_VAR(__GLEW_INTEL_shader_integer_functions2) + +#endif /* GL_INTEL_shader_integer_functions2 */ + /* ------------------------ GL_INTEL_texture_scissor ----------------------- */ #ifndef GL_INTEL_texture_scissor @@ -12057,9 +14417,9 @@ typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGECONTROLPROC) (GLenum source, GLenum typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGEINSERTPROC) (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar* buf); typedef GLuint (GLAPIENTRY * PFNGLGETDEBUGMESSAGELOGPROC) (GLuint count, GLsizei bufSize, GLenum* sources, GLenum* types, GLuint* ids, GLenum* severities, GLsizei* lengths, GLchar* messageLog); typedef void (GLAPIENTRY * PFNGLGETOBJECTLABELPROC) (GLenum identifier, GLuint name, GLsizei bufSize, GLsizei* length, GLchar *label); -typedef void (GLAPIENTRY * PFNGLGETOBJECTPTRLABELPROC) (const void *ptr, GLsizei bufSize, GLsizei* length, GLchar *label); +typedef void (GLAPIENTRY * PFNGLGETOBJECTPTRLABELPROC) (void* ptr, GLsizei bufSize, GLsizei* length, GLchar *label); typedef void (GLAPIENTRY * PFNGLOBJECTLABELPROC) (GLenum identifier, GLuint name, GLsizei length, const GLchar* label); -typedef void (GLAPIENTRY * PFNGLOBJECTPTRLABELPROC) (const void *ptr, GLsizei length, const GLchar* label); +typedef void (GLAPIENTRY * PFNGLOBJECTPTRLABELPROC) (void* ptr, GLsizei length, const GLchar* label); typedef void (GLAPIENTRY * PFNGLPOPDEBUGGROUPPROC) (void); typedef void (GLAPIENTRY * PFNGLPUSHDEBUGGROUPPROC) (GLenum source, GLuint id, GLsizei length, const GLchar * message); @@ -12089,6 +14449,22 @@ typedef void (GLAPIENTRY * PFNGLPUSHDEBUGGROUPPROC) (GLenum source, GLuint id, G #endif /* GL_KHR_no_error */ +/* --------------------- GL_KHR_parallel_shader_compile -------------------- */ + +#ifndef GL_KHR_parallel_shader_compile +#define GL_KHR_parallel_shader_compile 1 + +#define GL_MAX_SHADER_COMPILER_THREADS_KHR 0x91B0 +#define GL_COMPLETION_STATUS_KHR 0x91B1 + +typedef void (GLAPIENTRY * PFNGLMAXSHADERCOMPILERTHREADSKHRPROC) (GLuint count); + +#define glMaxShaderCompilerThreadsKHR GLEW_GET_FUN(__glewMaxShaderCompilerThreadsKHR) + +#define GLEW_KHR_parallel_shader_compile GLEW_GET_VAR(__GLEW_KHR_parallel_shader_compile) + +#endif /* GL_KHR_parallel_shader_compile */ + /* ------------------ GL_KHR_robust_buffer_access_behavior ----------------- */ #ifndef GL_KHR_robust_buffer_access_behavior @@ -12126,6 +14502,28 @@ typedef void (GLAPIENTRY * PFNGLREADNPIXELSPROC) (GLint x, GLint y, GLsizei widt #endif /* GL_KHR_robustness */ +/* ------------------------- GL_KHR_shader_subgroup ------------------------ */ + +#ifndef GL_KHR_shader_subgroup +#define GL_KHR_shader_subgroup 1 + +#define GL_SUBGROUP_FEATURE_BASIC_BIT_KHR 0x00000001 +#define GL_SUBGROUP_FEATURE_VOTE_BIT_KHR 0x00000002 +#define GL_SUBGROUP_FEATURE_ARITHMETIC_BIT_KHR 0x00000004 +#define GL_SUBGROUP_FEATURE_BALLOT_BIT_KHR 0x00000008 +#define GL_SUBGROUP_FEATURE_SHUFFLE_BIT_KHR 0x00000010 +#define GL_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT_KHR 0x00000020 +#define GL_SUBGROUP_FEATURE_CLUSTERED_BIT_KHR 0x00000040 +#define GL_SUBGROUP_FEATURE_QUAD_BIT_KHR 0x00000080 +#define GL_SUBGROUP_SIZE_KHR 0x9532 +#define GL_SUBGROUP_SUPPORTED_STAGES_KHR 0x9533 +#define GL_SUBGROUP_SUPPORTED_FEATURES_KHR 0x9534 +#define GL_SUBGROUP_QUAD_ALL_STAGES_KHR 0x9535 + +#define GLEW_KHR_shader_subgroup GLEW_GET_VAR(__GLEW_KHR_shader_subgroup) + +#endif /* GL_KHR_shader_subgroup */ + /* ------------------ GL_KHR_texture_compression_astc_hdr ------------------ */ #ifndef GL_KHR_texture_compression_astc_hdr @@ -12145,6 +14543,16 @@ typedef void (GLAPIENTRY * PFNGLREADNPIXELSPROC) (GLint x, GLint y, GLsizei widt #define GL_COMPRESSED_RGBA_ASTC_10x10_KHR 0x93BB #define GL_COMPRESSED_RGBA_ASTC_12x10_KHR 0x93BC #define GL_COMPRESSED_RGBA_ASTC_12x12_KHR 0x93BD +#define GL_COMPRESSED_RGBA_ASTC_3x3x3_OES 0x93C0 +#define GL_COMPRESSED_RGBA_ASTC_4x3x3_OES 0x93C1 +#define GL_COMPRESSED_RGBA_ASTC_4x4x3_OES 0x93C2 +#define GL_COMPRESSED_RGBA_ASTC_4x4x4_OES 0x93C3 +#define GL_COMPRESSED_RGBA_ASTC_5x4x4_OES 0x93C4 +#define GL_COMPRESSED_RGBA_ASTC_5x5x4_OES 0x93C5 +#define GL_COMPRESSED_RGBA_ASTC_5x5x5_OES 0x93C6 +#define GL_COMPRESSED_RGBA_ASTC_6x5x5_OES 0x93C7 +#define GL_COMPRESSED_RGBA_ASTC_6x6x5_OES 0x93C8 +#define GL_COMPRESSED_RGBA_ASTC_6x6x6_OES 0x93C9 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR 0x93D0 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR 0x93D1 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR 0x93D2 @@ -12159,6 +14567,16 @@ typedef void (GLAPIENTRY * PFNGLREADNPIXELSPROC) (GLint x, GLint y, GLsizei widt #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR 0x93DB #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR 0x93DC #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR 0x93DD +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_3x3x3_OES 0x93E0 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x3x3_OES 0x93E1 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x3_OES 0x93E2 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x4_OES 0x93E3 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4x4_OES 0x93E4 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x4_OES 0x93E5 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x5_OES 0x93E6 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5x5_OES 0x93E7 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x5_OES 0x93E8 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x6_OES 0x93E9 #define GLEW_KHR_texture_compression_astc_hdr GLEW_GET_VAR(__GLEW_KHR_texture_compression_astc_hdr) @@ -12183,6 +14601,16 @@ typedef void (GLAPIENTRY * PFNGLREADNPIXELSPROC) (GLint x, GLint y, GLsizei widt #define GL_COMPRESSED_RGBA_ASTC_10x10_KHR 0x93BB #define GL_COMPRESSED_RGBA_ASTC_12x10_KHR 0x93BC #define GL_COMPRESSED_RGBA_ASTC_12x12_KHR 0x93BD +#define GL_COMPRESSED_RGBA_ASTC_3x3x3_OES 0x93C0 +#define GL_COMPRESSED_RGBA_ASTC_4x3x3_OES 0x93C1 +#define GL_COMPRESSED_RGBA_ASTC_4x4x3_OES 0x93C2 +#define GL_COMPRESSED_RGBA_ASTC_4x4x4_OES 0x93C3 +#define GL_COMPRESSED_RGBA_ASTC_5x4x4_OES 0x93C4 +#define GL_COMPRESSED_RGBA_ASTC_5x5x4_OES 0x93C5 +#define GL_COMPRESSED_RGBA_ASTC_5x5x5_OES 0x93C6 +#define GL_COMPRESSED_RGBA_ASTC_6x5x5_OES 0x93C7 +#define GL_COMPRESSED_RGBA_ASTC_6x6x5_OES 0x93C8 +#define GL_COMPRESSED_RGBA_ASTC_6x6x6_OES 0x93C9 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR 0x93D0 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR 0x93D1 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR 0x93D2 @@ -12197,11 +14625,30 @@ typedef void (GLAPIENTRY * PFNGLREADNPIXELSPROC) (GLint x, GLint y, GLsizei widt #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR 0x93DB #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR 0x93DC #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR 0x93DD +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_3x3x3_OES 0x93E0 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x3x3_OES 0x93E1 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x3_OES 0x93E2 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x4_OES 0x93E3 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4x4_OES 0x93E4 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x4_OES 0x93E5 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x5_OES 0x93E6 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5x5_OES 0x93E7 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x5_OES 0x93E8 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x6_OES 0x93E9 #define GLEW_KHR_texture_compression_astc_ldr GLEW_GET_VAR(__GLEW_KHR_texture_compression_astc_ldr) #endif /* GL_KHR_texture_compression_astc_ldr */ +/* --------------- GL_KHR_texture_compression_astc_sliced_3d --------------- */ + +#ifndef GL_KHR_texture_compression_astc_sliced_3d +#define GL_KHR_texture_compression_astc_sliced_3d 1 + +#define GLEW_KHR_texture_compression_astc_sliced_3d GLEW_GET_VAR(__GLEW_KHR_texture_compression_astc_sliced_3d) + +#endif /* GL_KHR_texture_compression_astc_sliced_3d */ + /* -------------------------- GL_KTX_buffer_region ------------------------- */ #ifndef GL_KTX_buffer_region @@ -12244,6 +14691,23 @@ typedef void (GLAPIENTRY * PFNGLREADBUFFERREGIONPROC) (GLuint region, GLint x, G #endif /* GL_MESAX_texture_stack */ +/* ----------------------- GL_MESA_framebuffer_flip_y ---------------------- */ + +#ifndef GL_MESA_framebuffer_flip_y +#define GL_MESA_framebuffer_flip_y 1 + +#define GL_FRAMEBUFFER_FLIP_Y_MESA 0x8BBB + +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERPARAMETERIMESAPROC) (GLenum target, GLenum pname, GLint param); +typedef void (GLAPIENTRY * PFNGLGETFRAMEBUFFERPARAMETERIVMESAPROC) (GLenum target, GLenum pname, GLint* params); + +#define glFramebufferParameteriMESA GLEW_GET_FUN(__glewFramebufferParameteriMESA) +#define glGetFramebufferParameterivMESA GLEW_GET_FUN(__glewGetFramebufferParameterivMESA) + +#define GLEW_MESA_framebuffer_flip_y GLEW_GET_VAR(__GLEW_MESA_framebuffer_flip_y) + +#endif /* GL_MESA_framebuffer_flip_y */ + /* -------------------------- GL_MESA_pack_invert -------------------------- */ #ifndef GL_MESA_pack_invert @@ -12255,6 +14719,17 @@ typedef void (GLAPIENTRY * PFNGLREADBUFFERREGIONPROC) (GLuint region, GLint x, G #endif /* GL_MESA_pack_invert */ +/* --------------------- GL_MESA_program_binary_formats -------------------- */ + +#ifndef GL_MESA_program_binary_formats +#define GL_MESA_program_binary_formats 1 + +#define GL_PROGRAM_BINARY_FORMAT_MESA 0x875F + +#define GLEW_MESA_program_binary_formats GLEW_GET_VAR(__GLEW_MESA_program_binary_formats) + +#endif /* GL_MESA_program_binary_formats */ + /* ------------------------- GL_MESA_resize_buffers ------------------------ */ #ifndef GL_MESA_resize_buffers @@ -12268,6 +14743,24 @@ typedef void (GLAPIENTRY * PFNGLRESIZEBUFFERSMESAPROC) (void); #endif /* GL_MESA_resize_buffers */ +/* -------------------- GL_MESA_shader_integer_functions ------------------- */ + +#ifndef GL_MESA_shader_integer_functions +#define GL_MESA_shader_integer_functions 1 + +#define GLEW_MESA_shader_integer_functions GLEW_GET_VAR(__GLEW_MESA_shader_integer_functions) + +#endif /* GL_MESA_shader_integer_functions */ + +/* ----------------------- GL_MESA_tile_raster_order ----------------------- */ + +#ifndef GL_MESA_tile_raster_order +#define GL_MESA_tile_raster_order 1 + +#define GLEW_MESA_tile_raster_order GLEW_GET_VAR(__GLEW_MESA_tile_raster_order) + +#endif /* GL_MESA_tile_raster_order */ + /* --------------------------- GL_MESA_window_pos -------------------------- */ #ifndef GL_MESA_window_pos @@ -12340,6 +14833,15 @@ typedef void (GLAPIENTRY * PFNGLWINDOWPOS4SVMESAPROC) (const GLshort* p); #endif /* GL_MESA_ycbcr_texture */ +/* ----------- GL_NVX_blend_equation_advanced_multi_draw_buffers ----------- */ + +#ifndef GL_NVX_blend_equation_advanced_multi_draw_buffers +#define GL_NVX_blend_equation_advanced_multi_draw_buffers 1 + +#define GLEW_NVX_blend_equation_advanced_multi_draw_buffers GLEW_GET_VAR(__GLEW_NVX_blend_equation_advanced_multi_draw_buffers) + +#endif /* GL_NVX_blend_equation_advanced_multi_draw_buffers */ + /* ----------------------- GL_NVX_conditional_render ----------------------- */ #ifndef GL_NVX_conditional_render @@ -12370,6 +14872,134 @@ typedef void (GLAPIENTRY * PFNGLENDCONDITIONALRENDERNVXPROC) (void); #endif /* GL_NVX_gpu_memory_info */ +/* ------------------------- GL_NVX_gpu_multicast2 ------------------------- */ + +#ifndef GL_NVX_gpu_multicast2 +#define GL_NVX_gpu_multicast2 1 + +#define GL_UPLOAD_GPU_MASK_NVX 0x954A + +typedef GLsync (GLAPIENTRY * PFNGLASYNCCOPYBUFFERSUBDATANVXPROC) (GLsizei waitSemaphoreCount, const GLuint* waitSemaphoreArray, const GLuint64 *fenceValueArray, GLuint readGpu, GLbitfield writeGpuMask, GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size, GLsizei signalSemaphoreCount, const GLuint *signalSemaphoreArray, const GLuint64 *signalValueArray); +typedef GLuint (GLAPIENTRY * PFNGLASYNCCOPYIMAGESUBDATANVXPROC) (GLsizei waitSemaphoreCount, const GLuint* waitSemaphoreArray, const GLuint64 *waitValueArray, GLuint srcGpu, GLbitfield dstGpuMask, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth, GLsizei signalSemaphoreCount, const GLuint *signalSemaphoreArray, const GLuint64 *signalValueArray); +typedef void (GLAPIENTRY * PFNGLMULTICASTSCISSORARRAYVNVXPROC) (GLuint gpu, GLuint first, GLsizei count, const GLint* v); +typedef void (GLAPIENTRY * PFNGLMULTICASTVIEWPORTARRAYVNVXPROC) (GLuint gpu, GLuint first, GLsizei count, const GLfloat* v); +typedef void (GLAPIENTRY * PFNGLMULTICASTVIEWPORTPOSITIONWSCALENVXPROC) (GLuint gpu, GLuint index, GLfloat xcoeff, GLfloat ycoeff); +typedef void (GLAPIENTRY * PFNGLUPLOADGPUMASKNVXPROC) (GLbitfield mask); + +#define glAsyncCopyBufferSubDataNVX GLEW_GET_FUN(__glewAsyncCopyBufferSubDataNVX) +#define glAsyncCopyImageSubDataNVX GLEW_GET_FUN(__glewAsyncCopyImageSubDataNVX) +#define glMulticastScissorArrayvNVX GLEW_GET_FUN(__glewMulticastScissorArrayvNVX) +#define glMulticastViewportArrayvNVX GLEW_GET_FUN(__glewMulticastViewportArrayvNVX) +#define glMulticastViewportPositionWScaleNVX GLEW_GET_FUN(__glewMulticastViewportPositionWScaleNVX) +#define glUploadGpuMaskNVX GLEW_GET_FUN(__glewUploadGpuMaskNVX) + +#define GLEW_NVX_gpu_multicast2 GLEW_GET_VAR(__GLEW_NVX_gpu_multicast2) + +#endif /* GL_NVX_gpu_multicast2 */ + +/* ---------------------- GL_NVX_linked_gpu_multicast ---------------------- */ + +#ifndef GL_NVX_linked_gpu_multicast +#define GL_NVX_linked_gpu_multicast 1 + +#define GL_LGPU_SEPARATE_STORAGE_BIT_NVX 0x0800 +#define GL_MAX_LGPU_GPUS_NVX 0x92BA + +typedef void (GLAPIENTRY * PFNGLLGPUCOPYIMAGESUBDATANVXPROC) (GLuint sourceGpu, GLbitfield destinationGpuMask, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srxY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth); +typedef void (GLAPIENTRY * PFNGLLGPUINTERLOCKNVXPROC) (void); +typedef void (GLAPIENTRY * PFNGLLGPUNAMEDBUFFERSUBDATANVXPROC) (GLbitfield gpuMask, GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data); + +#define glLGPUCopyImageSubDataNVX GLEW_GET_FUN(__glewLGPUCopyImageSubDataNVX) +#define glLGPUInterlockNVX GLEW_GET_FUN(__glewLGPUInterlockNVX) +#define glLGPUNamedBufferSubDataNVX GLEW_GET_FUN(__glewLGPUNamedBufferSubDataNVX) + +#define GLEW_NVX_linked_gpu_multicast GLEW_GET_VAR(__GLEW_NVX_linked_gpu_multicast) + +#endif /* GL_NVX_linked_gpu_multicast */ + +/* ------------------------- GL_NVX_progress_fence ------------------------- */ + +#ifndef GL_NVX_progress_fence +#define GL_NVX_progress_fence 1 + +typedef void (GLAPIENTRY * PFNGLCLIENTWAITSEMAPHOREUI64NVXPROC) (GLsizei fenceObjectCount, const GLuint* semaphoreArray, const GLuint64 *fenceValueArray); +typedef void (GLAPIENTRY * PFNGLSIGNALSEMAPHOREUI64NVXPROC) (GLuint signalGpu, GLsizei fenceObjectCount, const GLuint* semaphoreArray, const GLuint64 *fenceValueArray); +typedef void (GLAPIENTRY * PFNGLWAITSEMAPHOREUI64NVXPROC) (GLuint waitGpu, GLsizei fenceObjectCount, const GLuint* semaphoreArray, const GLuint64 *fenceValueArray); + +#define glClientWaitSemaphoreui64NVX GLEW_GET_FUN(__glewClientWaitSemaphoreui64NVX) +#define glSignalSemaphoreui64NVX GLEW_GET_FUN(__glewSignalSemaphoreui64NVX) +#define glWaitSemaphoreui64NVX GLEW_GET_FUN(__glewWaitSemaphoreui64NVX) + +#define GLEW_NVX_progress_fence GLEW_GET_VAR(__GLEW_NVX_progress_fence) + +#endif /* GL_NVX_progress_fence */ + +/* ------------------------ GL_NV_3dvision_settings ------------------------ */ + +#ifndef GL_NV_3dvision_settings +#define GL_NV_3dvision_settings 1 + +#define GL_3DVISION_STEREO_NV 0x90F4 +#define GL_STEREO_SEPARATION_NV 0x90F5 +#define GL_STEREO_CONVERGENCE_NV 0x90F6 +#define GL_STEREO_CUTOFF_NV 0x90F7 +#define GL_STEREO_PROJECTION_NV 0x90F8 +#define GL_STEREO_PROJECTION_PERSPECTIVE_NV 0x90F9 +#define GL_STEREO_PROJECTION_ORTHO_NV 0x90FA + +typedef void (GLAPIENTRY * PFNGLSTEREOPARAMETERFNVPROC) (GLenum pname, GLfloat param); +typedef void (GLAPIENTRY * PFNGLSTEREOPARAMETERINVPROC) (GLenum pname, GLint param); + +#define glStereoParameterfNV GLEW_GET_FUN(__glewStereoParameterfNV) +#define glStereoParameteriNV GLEW_GET_FUN(__glewStereoParameteriNV) + +#define GLEW_NV_3dvision_settings GLEW_GET_VAR(__GLEW_NV_3dvision_settings) + +#endif /* GL_NV_3dvision_settings */ + +/* ------------------- GL_NV_EGL_stream_consumer_external ------------------ */ + +#ifndef GL_NV_EGL_stream_consumer_external +#define GL_NV_EGL_stream_consumer_external 1 + +#define GL_TEXTURE_EXTERNAL_OES 0x8D65 +#define GL_SAMPLER_EXTERNAL_OES 0x8D66 +#define GL_TEXTURE_BINDING_EXTERNAL_OES 0x8D67 +#define GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES 0x8D68 + +#define GLEW_NV_EGL_stream_consumer_external GLEW_GET_VAR(__GLEW_NV_EGL_stream_consumer_external) + +#endif /* GL_NV_EGL_stream_consumer_external */ + +/* ----------------- GL_NV_alpha_to_coverage_dither_control ---------------- */ + +#ifndef GL_NV_alpha_to_coverage_dither_control +#define GL_NV_alpha_to_coverage_dither_control 1 + +#define GL_ALPHA_TO_COVERAGE_DITHER_MODE_NV 0x92BF +#define GL_ALPHA_TO_COVERAGE_DITHER_DEFAULT_NV 0x934D +#define GL_ALPHA_TO_COVERAGE_DITHER_ENABLE_NV 0x934E +#define GL_ALPHA_TO_COVERAGE_DITHER_DISABLE_NV 0x934F + +typedef void (GLAPIENTRY * PFNGLALPHATOCOVERAGEDITHERCONTROLNVPROC) (GLenum mode); + +#define glAlphaToCoverageDitherControlNV GLEW_GET_FUN(__glewAlphaToCoverageDitherControlNV) + +#define GLEW_NV_alpha_to_coverage_dither_control GLEW_GET_VAR(__GLEW_NV_alpha_to_coverage_dither_control) + +#endif /* GL_NV_alpha_to_coverage_dither_control */ + +/* ------------------------------- GL_NV_bgr ------------------------------- */ + +#ifndef GL_NV_bgr +#define GL_NV_bgr 1 + +#define GL_BGR_NV 0x80E0 + +#define GLEW_NV_bgr GLEW_GET_VAR(__GLEW_NV_bgr) + +#endif /* GL_NV_bgr */ + /* ------------------- GL_NV_bindless_multi_draw_indirect ------------------ */ #ifndef GL_NV_bindless_multi_draw_indirect @@ -12512,6 +15142,18 @@ typedef void (GLAPIENTRY * PFNGLBLENDPARAMETERINVPROC) (GLenum pname, GLint valu #endif /* GL_NV_blend_equation_advanced_coherent */ +/* ----------------------- GL_NV_blend_minmax_factor ----------------------- */ + +#ifndef GL_NV_blend_minmax_factor +#define GL_NV_blend_minmax_factor 1 + +#define GL_FACTOR_MIN_AMD 0x901C +#define GL_FACTOR_MAX_AMD 0x901D + +#define GLEW_NV_blend_minmax_factor GLEW_GET_VAR(__GLEW_NV_blend_minmax_factor) + +#endif /* GL_NV_blend_minmax_factor */ + /* --------------------------- GL_NV_blend_square -------------------------- */ #ifndef GL_NV_blend_square @@ -12521,6 +15163,88 @@ typedef void (GLAPIENTRY * PFNGLBLENDPARAMETERINVPROC) (GLenum pname, GLint valu #endif /* GL_NV_blend_square */ +/* ----------------------- GL_NV_clip_space_w_scaling ---------------------- */ + +#ifndef GL_NV_clip_space_w_scaling +#define GL_NV_clip_space_w_scaling 1 + +#define GL_VIEWPORT_POSITION_W_SCALE_NV 0x937C +#define GL_VIEWPORT_POSITION_W_SCALE_X_COEFF_NV 0x937D +#define GL_VIEWPORT_POSITION_W_SCALE_Y_COEFF_NV 0x937E + +typedef void (GLAPIENTRY * PFNGLVIEWPORTPOSITIONWSCALENVPROC) (GLuint index, GLfloat xcoeff, GLfloat ycoeff); + +#define glViewportPositionWScaleNV GLEW_GET_FUN(__glewViewportPositionWScaleNV) + +#define GLEW_NV_clip_space_w_scaling GLEW_GET_VAR(__GLEW_NV_clip_space_w_scaling) + +#endif /* GL_NV_clip_space_w_scaling */ + +/* --------------------------- GL_NV_command_list -------------------------- */ + +#ifndef GL_NV_command_list +#define GL_NV_command_list 1 + +#define GL_TERMINATE_SEQUENCE_COMMAND_NV 0x0000 +#define GL_NOP_COMMAND_NV 0x0001 +#define GL_DRAW_ELEMENTS_COMMAND_NV 0x0002 +#define GL_DRAW_ARRAYS_COMMAND_NV 0x0003 +#define GL_DRAW_ELEMENTS_STRIP_COMMAND_NV 0x0004 +#define GL_DRAW_ARRAYS_STRIP_COMMAND_NV 0x0005 +#define GL_DRAW_ELEMENTS_INSTANCED_COMMAND_NV 0x0006 +#define GL_DRAW_ARRAYS_INSTANCED_COMMAND_NV 0x0007 +#define GL_ELEMENT_ADDRESS_COMMAND_NV 0x0008 +#define GL_ATTRIBUTE_ADDRESS_COMMAND_NV 0x0009 +#define GL_UNIFORM_ADDRESS_COMMAND_NV 0x000a +#define GL_BLEND_COLOR_COMMAND_NV 0x000b +#define GL_STENCIL_REF_COMMAND_NV 0x000c +#define GL_LINE_WIDTH_COMMAND_NV 0x000d +#define GL_POLYGON_OFFSET_COMMAND_NV 0x000e +#define GL_ALPHA_REF_COMMAND_NV 0x000f +#define GL_VIEWPORT_COMMAND_NV 0x0010 +#define GL_SCISSOR_COMMAND_NV 0x0011 +#define GL_FRONT_FACE_COMMAND_NV 0x0012 + +typedef void (GLAPIENTRY * PFNGLCALLCOMMANDLISTNVPROC) (GLuint list); +typedef void (GLAPIENTRY * PFNGLCOMMANDLISTSEGMENTSNVPROC) (GLuint list, GLuint segments); +typedef void (GLAPIENTRY * PFNGLCOMPILECOMMANDLISTNVPROC) (GLuint list); +typedef void (GLAPIENTRY * PFNGLCREATECOMMANDLISTSNVPROC) (GLsizei n, GLuint* lists); +typedef void (GLAPIENTRY * PFNGLCREATESTATESNVPROC) (GLsizei n, GLuint* states); +typedef void (GLAPIENTRY * PFNGLDELETECOMMANDLISTSNVPROC) (GLsizei n, const GLuint* lists); +typedef void (GLAPIENTRY * PFNGLDELETESTATESNVPROC) (GLsizei n, const GLuint* states); +typedef void (GLAPIENTRY * PFNGLDRAWCOMMANDSADDRESSNVPROC) (GLenum primitiveMode, const GLuint64* indirects, const GLsizei* sizes, GLuint count); +typedef void (GLAPIENTRY * PFNGLDRAWCOMMANDSNVPROC) (GLenum primitiveMode, GLuint buffer, const GLintptr* indirects, const GLsizei* sizes, GLuint count); +typedef void (GLAPIENTRY * PFNGLDRAWCOMMANDSSTATESADDRESSNVPROC) (const GLuint64* indirects, const GLsizei* sizes, const GLuint* states, const GLuint* fbos, GLuint count); +typedef void (GLAPIENTRY * PFNGLDRAWCOMMANDSSTATESNVPROC) (GLuint buffer, const GLintptr* indirects, const GLsizei* sizes, const GLuint* states, const GLuint* fbos, GLuint count); +typedef GLuint (GLAPIENTRY * PFNGLGETCOMMANDHEADERNVPROC) (GLenum tokenID, GLuint size); +typedef GLushort (GLAPIENTRY * PFNGLGETSTAGEINDEXNVPROC) (GLenum shadertype); +typedef GLboolean (GLAPIENTRY * PFNGLISCOMMANDLISTNVPROC) (GLuint list); +typedef GLboolean (GLAPIENTRY * PFNGLISSTATENVPROC) (GLuint state); +typedef void (GLAPIENTRY * PFNGLLISTDRAWCOMMANDSSTATESCLIENTNVPROC) (GLuint list, GLuint segment, const void** indirects, const GLsizei* sizes, const GLuint* states, const GLuint* fbos, GLuint count); +typedef void (GLAPIENTRY * PFNGLSTATECAPTURENVPROC) (GLuint state, GLenum mode); + +#define glCallCommandListNV GLEW_GET_FUN(__glewCallCommandListNV) +#define glCommandListSegmentsNV GLEW_GET_FUN(__glewCommandListSegmentsNV) +#define glCompileCommandListNV GLEW_GET_FUN(__glewCompileCommandListNV) +#define glCreateCommandListsNV GLEW_GET_FUN(__glewCreateCommandListsNV) +#define glCreateStatesNV GLEW_GET_FUN(__glewCreateStatesNV) +#define glDeleteCommandListsNV GLEW_GET_FUN(__glewDeleteCommandListsNV) +#define glDeleteStatesNV GLEW_GET_FUN(__glewDeleteStatesNV) +#define glDrawCommandsAddressNV GLEW_GET_FUN(__glewDrawCommandsAddressNV) +#define glDrawCommandsNV GLEW_GET_FUN(__glewDrawCommandsNV) +#define glDrawCommandsStatesAddressNV GLEW_GET_FUN(__glewDrawCommandsStatesAddressNV) +#define glDrawCommandsStatesNV GLEW_GET_FUN(__glewDrawCommandsStatesNV) +#define glGetCommandHeaderNV GLEW_GET_FUN(__glewGetCommandHeaderNV) +#define glGetStageIndexNV GLEW_GET_FUN(__glewGetStageIndexNV) +#define glIsCommandListNV GLEW_GET_FUN(__glewIsCommandListNV) +#define glIsStateNV GLEW_GET_FUN(__glewIsStateNV) +#define glListDrawCommandsStatesClientNV GLEW_GET_FUN(__glewListDrawCommandsStatesClientNV) +#define glStateCaptureNV GLEW_GET_FUN(__glewStateCaptureNV) + +#define GLEW_NV_command_list GLEW_GET_VAR(__GLEW_NV_command_list) + +#endif /* GL_NV_command_list */ + /* ------------------------- GL_NV_compute_program5 ------------------------ */ #ifndef GL_NV_compute_program5 @@ -12533,6 +15257,15 @@ typedef void (GLAPIENTRY * PFNGLBLENDPARAMETERINVPROC) (GLenum pname, GLint valu #endif /* GL_NV_compute_program5 */ +/* -------------------- GL_NV_compute_shader_derivatives ------------------- */ + +#ifndef GL_NV_compute_shader_derivatives +#define GL_NV_compute_shader_derivatives 1 + +#define GLEW_NV_compute_shader_derivatives GLEW_GET_VAR(__GLEW_NV_compute_shader_derivatives) + +#endif /* GL_NV_compute_shader_derivatives */ + /* ------------------------ GL_NV_conditional_render ----------------------- */ #ifndef GL_NV_conditional_render @@ -12588,6 +15321,59 @@ typedef void (GLAPIENTRY * PFNGLCONSERVATIVERASTERPARAMETERFNVPROC) (GLenum pnam #endif /* GL_NV_conservative_raster_dilate */ +/* ------------------- GL_NV_conservative_raster_pre_snap ------------------ */ + +#ifndef GL_NV_conservative_raster_pre_snap +#define GL_NV_conservative_raster_pre_snap 1 + +#define GL_CONSERVATIVE_RASTER_MODE_PRE_SNAP_NV 0x9550 + +#define GLEW_NV_conservative_raster_pre_snap GLEW_GET_VAR(__GLEW_NV_conservative_raster_pre_snap) + +#endif /* GL_NV_conservative_raster_pre_snap */ + +/* -------------- GL_NV_conservative_raster_pre_snap_triangles ------------- */ + +#ifndef GL_NV_conservative_raster_pre_snap_triangles +#define GL_NV_conservative_raster_pre_snap_triangles 1 + +#define GL_CONSERVATIVE_RASTER_MODE_NV 0x954D +#define GL_CONSERVATIVE_RASTER_MODE_POST_SNAP_NV 0x954E +#define GL_CONSERVATIVE_RASTER_MODE_PRE_SNAP_TRIANGLES_NV 0x954F + +typedef void (GLAPIENTRY * PFNGLCONSERVATIVERASTERPARAMETERINVPROC) (GLenum pname, GLint param); + +#define glConservativeRasterParameteriNV GLEW_GET_FUN(__glewConservativeRasterParameteriNV) + +#define GLEW_NV_conservative_raster_pre_snap_triangles GLEW_GET_VAR(__GLEW_NV_conservative_raster_pre_snap_triangles) + +#endif /* GL_NV_conservative_raster_pre_snap_triangles */ + +/* --------------- GL_NV_conservative_raster_underestimation --------------- */ + +#ifndef GL_NV_conservative_raster_underestimation +#define GL_NV_conservative_raster_underestimation 1 + +#define GLEW_NV_conservative_raster_underestimation GLEW_GET_VAR(__GLEW_NV_conservative_raster_underestimation) + +#endif /* GL_NV_conservative_raster_underestimation */ + +/* --------------------------- GL_NV_copy_buffer --------------------------- */ + +#ifndef GL_NV_copy_buffer +#define GL_NV_copy_buffer 1 + +#define GL_COPY_READ_BUFFER_NV 0x8F36 +#define GL_COPY_WRITE_BUFFER_NV 0x8F37 + +typedef void (GLAPIENTRY * PFNGLCOPYBUFFERSUBDATANVPROC) (GLenum readtarget, GLenum writetarget, GLintptr readoffset, GLintptr writeoffset, GLsizeiptr size); + +#define glCopyBufferSubDataNV GLEW_GET_FUN(__glewCopyBufferSubDataNV) + +#define GLEW_NV_copy_buffer GLEW_GET_VAR(__GLEW_NV_copy_buffer) + +#endif /* GL_NV_copy_buffer */ + /* ----------------------- GL_NV_copy_depth_to_color ----------------------- */ #ifndef GL_NV_copy_depth_to_color @@ -12658,6 +15444,17 @@ typedef void (GLAPIENTRY * PFNGLDEPTHRANGEDNVPROC) (GLdouble zNear, GLdouble zFa #endif /* GL_NV_depth_clamp */ +/* ------------------------- GL_NV_depth_nonlinear ------------------------- */ + +#ifndef GL_NV_depth_nonlinear +#define GL_NV_depth_nonlinear 1 + +#define GL_DEPTH_COMPONENT16_NONLINEAR_NV 0x8E2C + +#define GLEW_NV_depth_nonlinear GLEW_GET_VAR(__GLEW_NV_depth_nonlinear) + +#endif /* GL_NV_depth_nonlinear */ + /* ---------------------- GL_NV_depth_range_unclamped ---------------------- */ #ifndef GL_NV_depth_range_unclamped @@ -12673,6 +15470,68 @@ typedef void (GLAPIENTRY * PFNGLDEPTHRANGEDNVPROC) (GLdouble zNear, GLdouble zFa #endif /* GL_NV_depth_range_unclamped */ +/* --------------------------- GL_NV_draw_buffers -------------------------- */ + +#ifndef GL_NV_draw_buffers +#define GL_NV_draw_buffers 1 + +#define GL_MAX_DRAW_BUFFERS_NV 0x8824 +#define GL_DRAW_BUFFER0_NV 0x8825 +#define GL_DRAW_BUFFER1_NV 0x8826 +#define GL_DRAW_BUFFER2_NV 0x8827 +#define GL_DRAW_BUFFER3_NV 0x8828 +#define GL_DRAW_BUFFER4_NV 0x8829 +#define GL_DRAW_BUFFER5_NV 0x882A +#define GL_DRAW_BUFFER6_NV 0x882B +#define GL_DRAW_BUFFER7_NV 0x882C +#define GL_DRAW_BUFFER8_NV 0x882D +#define GL_DRAW_BUFFER9_NV 0x882E +#define GL_DRAW_BUFFER10_NV 0x882F +#define GL_DRAW_BUFFER11_NV 0x8830 +#define GL_DRAW_BUFFER12_NV 0x8831 +#define GL_DRAW_BUFFER13_NV 0x8832 +#define GL_DRAW_BUFFER14_NV 0x8833 +#define GL_DRAW_BUFFER15_NV 0x8834 +#define GL_COLOR_ATTACHMENT0_NV 0x8CE0 +#define GL_COLOR_ATTACHMENT1_NV 0x8CE1 +#define GL_COLOR_ATTACHMENT2_NV 0x8CE2 +#define GL_COLOR_ATTACHMENT3_NV 0x8CE3 +#define GL_COLOR_ATTACHMENT4_NV 0x8CE4 +#define GL_COLOR_ATTACHMENT5_NV 0x8CE5 +#define GL_COLOR_ATTACHMENT6_NV 0x8CE6 +#define GL_COLOR_ATTACHMENT7_NV 0x8CE7 +#define GL_COLOR_ATTACHMENT8_NV 0x8CE8 +#define GL_COLOR_ATTACHMENT9_NV 0x8CE9 +#define GL_COLOR_ATTACHMENT10_NV 0x8CEA +#define GL_COLOR_ATTACHMENT11_NV 0x8CEB +#define GL_COLOR_ATTACHMENT12_NV 0x8CEC +#define GL_COLOR_ATTACHMENT13_NV 0x8CED +#define GL_COLOR_ATTACHMENT14_NV 0x8CEE +#define GL_COLOR_ATTACHMENT15_NV 0x8CEF + +typedef void (GLAPIENTRY * PFNGLDRAWBUFFERSNVPROC) (GLsizei n, const GLenum* bufs); + +#define glDrawBuffersNV GLEW_GET_FUN(__glewDrawBuffersNV) + +#define GLEW_NV_draw_buffers GLEW_GET_VAR(__GLEW_NV_draw_buffers) + +#endif /* GL_NV_draw_buffers */ + +/* -------------------------- GL_NV_draw_instanced ------------------------- */ + +#ifndef GL_NV_draw_instanced +#define GL_NV_draw_instanced 1 + +typedef void (GLAPIENTRY * PFNGLDRAWARRAYSINSTANCEDNVPROC) (GLenum mode, GLint first, GLsizei count, GLsizei primcount); +typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDNVPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount); + +#define glDrawArraysInstancedNV GLEW_GET_FUN(__glewDrawArraysInstancedNV) +#define glDrawElementsInstancedNV GLEW_GET_FUN(__glewDrawElementsInstancedNV) + +#define GLEW_NV_draw_instanced GLEW_GET_VAR(__GLEW_NV_draw_instanced) + +#endif /* GL_NV_draw_instanced */ + /* --------------------------- GL_NV_draw_texture -------------------------- */ #ifndef GL_NV_draw_texture @@ -12686,6 +15545,29 @@ typedef void (GLAPIENTRY * PFNGLDRAWTEXTURENVPROC) (GLuint texture, GLuint sampl #endif /* GL_NV_draw_texture */ +/* ------------------------ GL_NV_draw_vulkan_image ------------------------ */ + +#ifndef GL_NV_draw_vulkan_image +#define GL_NV_draw_vulkan_image 1 + +typedef void (APIENTRY *GLVULKANPROCNV)(void); + +typedef void (GLAPIENTRY * PFNGLDRAWVKIMAGENVPROC) (GLuint64 vkImage, GLuint sampler, GLfloat x0, GLfloat y0, GLfloat x1, GLfloat y1, GLfloat z, GLfloat s0, GLfloat t0, GLfloat s1, GLfloat t1); +typedef GLVULKANPROCNV (GLAPIENTRY * PFNGLGETVKPROCADDRNVPROC) (const GLchar* name); +typedef void (GLAPIENTRY * PFNGLSIGNALVKFENCENVPROC) (GLuint64 vkFence); +typedef void (GLAPIENTRY * PFNGLSIGNALVKSEMAPHORENVPROC) (GLuint64 vkSemaphore); +typedef void (GLAPIENTRY * PFNGLWAITVKSEMAPHORENVPROC) (GLuint64 vkSemaphore); + +#define glDrawVkImageNV GLEW_GET_FUN(__glewDrawVkImageNV) +#define glGetVkProcAddrNV GLEW_GET_FUN(__glewGetVkProcAddrNV) +#define glSignalVkFenceNV GLEW_GET_FUN(__glewSignalVkFenceNV) +#define glSignalVkSemaphoreNV GLEW_GET_FUN(__glewSignalVkSemaphoreNV) +#define glWaitVkSemaphoreNV GLEW_GET_FUN(__glewWaitVkSemaphoreNV) + +#define GLEW_NV_draw_vulkan_image GLEW_GET_VAR(__GLEW_NV_draw_vulkan_image) + +#endif /* GL_NV_draw_vulkan_image */ + /* ---------------------------- GL_NV_evaluators --------------------------- */ #ifndef GL_NV_evaluators @@ -12740,6 +15622,15 @@ typedef void (GLAPIENTRY * PFNGLMAPPARAMETERIVNVPROC) (GLenum target, GLenum pna #endif /* GL_NV_evaluators */ +/* --------------------- GL_NV_explicit_attrib_location -------------------- */ + +#ifndef GL_NV_explicit_attrib_location +#define GL_NV_explicit_attrib_location 1 + +#define GLEW_NV_explicit_attrib_location GLEW_GET_VAR(__GLEW_NV_explicit_attrib_location) + +#endif /* GL_NV_explicit_attrib_location */ + /* ----------------------- GL_NV_explicit_multisample ---------------------- */ #ifndef GL_NV_explicit_multisample @@ -12768,6 +15659,33 @@ typedef void (GLAPIENTRY * PFNGLTEXRENDERBUFFERNVPROC) (GLenum target, GLuint re #endif /* GL_NV_explicit_multisample */ +/* ---------------------- GL_NV_fbo_color_attachments ---------------------- */ + +#ifndef GL_NV_fbo_color_attachments +#define GL_NV_fbo_color_attachments 1 + +#define GL_MAX_COLOR_ATTACHMENTS_NV 0x8CDF +#define GL_COLOR_ATTACHMENT0_NV 0x8CE0 +#define GL_COLOR_ATTACHMENT1_NV 0x8CE1 +#define GL_COLOR_ATTACHMENT2_NV 0x8CE2 +#define GL_COLOR_ATTACHMENT3_NV 0x8CE3 +#define GL_COLOR_ATTACHMENT4_NV 0x8CE4 +#define GL_COLOR_ATTACHMENT5_NV 0x8CE5 +#define GL_COLOR_ATTACHMENT6_NV 0x8CE6 +#define GL_COLOR_ATTACHMENT7_NV 0x8CE7 +#define GL_COLOR_ATTACHMENT8_NV 0x8CE8 +#define GL_COLOR_ATTACHMENT9_NV 0x8CE9 +#define GL_COLOR_ATTACHMENT10_NV 0x8CEA +#define GL_COLOR_ATTACHMENT11_NV 0x8CEB +#define GL_COLOR_ATTACHMENT12_NV 0x8CEC +#define GL_COLOR_ATTACHMENT13_NV 0x8CED +#define GL_COLOR_ATTACHMENT14_NV 0x8CEE +#define GL_COLOR_ATTACHMENT15_NV 0x8CEF + +#define GLEW_NV_fbo_color_attachments GLEW_GET_VAR(__GLEW_NV_fbo_color_attachments) + +#endif /* GL_NV_fbo_color_attachments */ + /* ------------------------------ GL_NV_fence ------------------------------ */ #ifndef GL_NV_fence @@ -12925,6 +15843,15 @@ typedef void (GLAPIENTRY * PFNGLPROGRAMNAMEDPARAMETER4FVNVPROC) (GLuint id, GLsi #endif /* GL_NV_fragment_program_option */ +/* ------------------- GL_NV_fragment_shader_barycentric ------------------- */ + +#ifndef GL_NV_fragment_shader_barycentric +#define GL_NV_fragment_shader_barycentric 1 + +#define GLEW_NV_fragment_shader_barycentric GLEW_GET_VAR(__GLEW_NV_fragment_shader_barycentric) + +#endif /* GL_NV_fragment_shader_barycentric */ + /* -------------------- GL_NV_fragment_shader_interlock -------------------- */ #ifndef GL_NV_fragment_shader_interlock @@ -12934,6 +15861,24 @@ typedef void (GLAPIENTRY * PFNGLPROGRAMNAMEDPARAMETER4FVNVPROC) (GLuint id, GLsi #endif /* GL_NV_fragment_shader_interlock */ +/* ------------------------- GL_NV_framebuffer_blit ------------------------ */ + +#ifndef GL_NV_framebuffer_blit +#define GL_NV_framebuffer_blit 1 + +#define GL_DRAW_FRAMEBUFFER_BINDING_NV 0x8CA6 +#define GL_READ_FRAMEBUFFER_NV 0x8CA8 +#define GL_DRAW_FRAMEBUFFER_NV 0x8CA9 +#define GL_READ_FRAMEBUFFER_BINDING_NV 0x8CAA + +typedef void (GLAPIENTRY * PFNGLBLITFRAMEBUFFERNVPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); + +#define glBlitFramebufferNV GLEW_GET_FUN(__glewBlitFramebufferNV) + +#define GLEW_NV_framebuffer_blit GLEW_GET_VAR(__GLEW_NV_framebuffer_blit) + +#endif /* GL_NV_framebuffer_blit */ + /* -------------------- GL_NV_framebuffer_mixed_samples -------------------- */ #ifndef GL_NV_framebuffer_mixed_samples @@ -12958,6 +15903,23 @@ typedef void (GLAPIENTRY * PFNGLPROGRAMNAMEDPARAMETER4FVNVPROC) (GLuint id, GLsi #endif /* GL_NV_framebuffer_mixed_samples */ +/* --------------------- GL_NV_framebuffer_multisample --------------------- */ + +#ifndef GL_NV_framebuffer_multisample +#define GL_NV_framebuffer_multisample 1 + +#define GL_RENDERBUFFER_SAMPLES_NV 0x8CAB +#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_NV 0x8D56 +#define GL_MAX_SAMPLES_NV 0x8D57 + +typedef void (GLAPIENTRY * PFNGLRENDERBUFFERSTORAGEMULTISAMPLENVPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); + +#define glRenderbufferStorageMultisampleNV GLEW_GET_FUN(__glewRenderbufferStorageMultisampleNV) + +#define GLEW_NV_framebuffer_multisample GLEW_GET_VAR(__GLEW_NV_framebuffer_multisample) + +#endif /* GL_NV_framebuffer_multisample */ + /* ----------------- GL_NV_framebuffer_multisample_coverage ---------------- */ #ifndef GL_NV_framebuffer_multisample_coverage @@ -12976,6 +15938,15 @@ typedef void (GLAPIENTRY * PFNGLRENDERBUFFERSTORAGEMULTISAMPLECOVERAGENVPROC) (G #endif /* GL_NV_framebuffer_multisample_coverage */ +/* ----------------------- GL_NV_generate_mipmap_sRGB ---------------------- */ + +#ifndef GL_NV_generate_mipmap_sRGB +#define GL_NV_generate_mipmap_sRGB 1 + +#define GLEW_NV_generate_mipmap_sRGB GLEW_GET_VAR(__GLEW_NV_generate_mipmap_sRGB) + +#endif /* GL_NV_generate_mipmap_sRGB */ + /* ------------------------ GL_NV_geometry_program4 ------------------------ */ #ifndef GL_NV_geometry_program4 @@ -13011,6 +15982,47 @@ typedef void (GLAPIENTRY * PFNGLPROGRAMVERTEXLIMITNVPROC) (GLenum target, GLint #endif /* GL_NV_geometry_shader_passthrough */ +/* -------------------------- GL_NV_gpu_multicast -------------------------- */ + +#ifndef GL_NV_gpu_multicast +#define GL_NV_gpu_multicast 1 + +#define GL_PER_GPU_STORAGE_BIT_NV 0x0800 +#define GL_MULTICAST_GPUS_NV 0x92BA +#define GL_PER_GPU_STORAGE_NV 0x9548 +#define GL_MULTICAST_PROGRAMMABLE_SAMPLE_LOCATION_NV 0x9549 +#define GL_RENDER_GPU_MASK_NV 0x9558 + +typedef void (GLAPIENTRY * PFNGLMULTICASTBARRIERNVPROC) (void); +typedef void (GLAPIENTRY * PFNGLMULTICASTBLITFRAMEBUFFERNVPROC) (GLuint srcGpu, GLuint dstGpu, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); +typedef void (GLAPIENTRY * PFNGLMULTICASTBUFFERSUBDATANVPROC) (GLbitfield gpuMask, GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data); +typedef void (GLAPIENTRY * PFNGLMULTICASTCOPYBUFFERSUBDATANVPROC) (GLuint readGpu, GLbitfield writeGpuMask, GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); +typedef void (GLAPIENTRY * PFNGLMULTICASTCOPYIMAGESUBDATANVPROC) (GLuint srcGpu, GLbitfield dstGpuMask, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth); +typedef void (GLAPIENTRY * PFNGLMULTICASTFRAMEBUFFERSAMPLELOCATIONSFVNVPROC) (GLuint gpu, GLuint framebuffer, GLuint start, GLsizei count, const GLfloat* v); +typedef void (GLAPIENTRY * PFNGLMULTICASTGETQUERYOBJECTI64VNVPROC) (GLuint gpu, GLuint id, GLenum pname, GLint64* params); +typedef void (GLAPIENTRY * PFNGLMULTICASTGETQUERYOBJECTIVNVPROC) (GLuint gpu, GLuint id, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLMULTICASTGETQUERYOBJECTUI64VNVPROC) (GLuint gpu, GLuint id, GLenum pname, GLuint64* params); +typedef void (GLAPIENTRY * PFNGLMULTICASTGETQUERYOBJECTUIVNVPROC) (GLuint gpu, GLuint id, GLenum pname, GLuint* params); +typedef void (GLAPIENTRY * PFNGLMULTICASTWAITSYNCNVPROC) (GLuint signalGpu, GLbitfield waitGpuMask); +typedef void (GLAPIENTRY * PFNGLRENDERGPUMASKNVPROC) (GLbitfield mask); + +#define glMulticastBarrierNV GLEW_GET_FUN(__glewMulticastBarrierNV) +#define glMulticastBlitFramebufferNV GLEW_GET_FUN(__glewMulticastBlitFramebufferNV) +#define glMulticastBufferSubDataNV GLEW_GET_FUN(__glewMulticastBufferSubDataNV) +#define glMulticastCopyBufferSubDataNV GLEW_GET_FUN(__glewMulticastCopyBufferSubDataNV) +#define glMulticastCopyImageSubDataNV GLEW_GET_FUN(__glewMulticastCopyImageSubDataNV) +#define glMulticastFramebufferSampleLocationsfvNV GLEW_GET_FUN(__glewMulticastFramebufferSampleLocationsfvNV) +#define glMulticastGetQueryObjecti64vNV GLEW_GET_FUN(__glewMulticastGetQueryObjecti64vNV) +#define glMulticastGetQueryObjectivNV GLEW_GET_FUN(__glewMulticastGetQueryObjectivNV) +#define glMulticastGetQueryObjectui64vNV GLEW_GET_FUN(__glewMulticastGetQueryObjectui64vNV) +#define glMulticastGetQueryObjectuivNV GLEW_GET_FUN(__glewMulticastGetQueryObjectuivNV) +#define glMulticastWaitSyncNV GLEW_GET_FUN(__glewMulticastWaitSyncNV) +#define glRenderGpuMaskNV GLEW_GET_FUN(__glewRenderGpuMaskNV) + +#define GLEW_NV_gpu_multicast GLEW_GET_VAR(__GLEW_NV_gpu_multicast) + +#endif /* GL_NV_gpu_multicast */ + /* --------------------------- GL_NV_gpu_program4 -------------------------- */ #ifndef GL_NV_gpu_program4 @@ -13304,6 +16316,30 @@ typedef void (GLAPIENTRY * PFNGLVERTEXWEIGHTHVNVPROC) (const GLhalf* weight); #endif /* GL_NV_half_float */ +/* -------------------------- GL_NV_image_formats -------------------------- */ + +#ifndef GL_NV_image_formats +#define GL_NV_image_formats 1 + +#define GLEW_NV_image_formats GLEW_GET_VAR(__GLEW_NV_image_formats) + +#endif /* GL_NV_image_formats */ + +/* ------------------------- GL_NV_instanced_arrays ------------------------ */ + +#ifndef GL_NV_instanced_arrays +#define GL_NV_instanced_arrays 1 + +#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_NV 0x88FE + +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBDIVISORNVPROC) (GLuint index, GLuint divisor); + +#define glVertexAttribDivisorNV GLEW_GET_FUN(__glewVertexAttribDivisorNV) + +#define GLEW_NV_instanced_arrays GLEW_GET_VAR(__GLEW_NV_instanced_arrays) + +#endif /* GL_NV_instanced_arrays */ + /* ------------------- GL_NV_internalformat_sample_query ------------------- */ #ifndef GL_NV_internalformat_sample_query @@ -13334,6 +16370,108 @@ typedef void (GLAPIENTRY * PFNGLGETINTERNALFORMATSAMPLEIVNVPROC) (GLenum target, #endif /* GL_NV_light_max_exponent */ +/* ------------------------ GL_NV_memory_attachment ------------------------ */ + +#ifndef GL_NV_memory_attachment +#define GL_NV_memory_attachment 1 + +#define GL_ATTACHED_MEMORY_OBJECT_NV 0x95A4 +#define GL_ATTACHED_MEMORY_OFFSET_NV 0x95A5 +#define GL_MEMORY_ATTACHABLE_ALIGNMENT_NV 0x95A6 +#define GL_MEMORY_ATTACHABLE_SIZE_NV 0x95A7 +#define GL_MEMORY_ATTACHABLE_NV 0x95A8 +#define GL_DETACHED_MEMORY_INCARNATION_NV 0x95A9 +#define GL_DETACHED_TEXTURES_NV 0x95AA +#define GL_DETACHED_BUFFERS_NV 0x95AB +#define GL_MAX_DETACHED_TEXTURES_NV 0x95AC +#define GL_MAX_DETACHED_BUFFERS_NV 0x95AD + +typedef void (GLAPIENTRY * PFNGLBUFFERATTACHMEMORYNVPROC) (GLenum target, GLuint memory, GLuint64 offset); +typedef void (GLAPIENTRY * PFNGLGETMEMORYOBJECTDETACHEDRESOURCESUIVNVPROC) (GLuint memory, GLenum pname, GLint first, GLsizei count, GLuint* params); +typedef void (GLAPIENTRY * PFNGLNAMEDBUFFERATTACHMEMORYNVPROC) (GLuint buffer, GLuint memory, GLuint64 offset); +typedef void (GLAPIENTRY * PFNGLRESETMEMORYOBJECTPARAMETERNVPROC) (GLuint memory, GLenum pname); +typedef void (GLAPIENTRY * PFNGLTEXATTACHMEMORYNVPROC) (GLenum target, GLuint memory, GLuint64 offset); +typedef void (GLAPIENTRY * PFNGLTEXTUREATTACHMEMORYNVPROC) (GLuint texture, GLuint memory, GLuint64 offset); + +#define glBufferAttachMemoryNV GLEW_GET_FUN(__glewBufferAttachMemoryNV) +#define glGetMemoryObjectDetachedResourcesuivNV GLEW_GET_FUN(__glewGetMemoryObjectDetachedResourcesuivNV) +#define glNamedBufferAttachMemoryNV GLEW_GET_FUN(__glewNamedBufferAttachMemoryNV) +#define glResetMemoryObjectParameterNV GLEW_GET_FUN(__glewResetMemoryObjectParameterNV) +#define glTexAttachMemoryNV GLEW_GET_FUN(__glewTexAttachMemoryNV) +#define glTextureAttachMemoryNV GLEW_GET_FUN(__glewTextureAttachMemoryNV) + +#define GLEW_NV_memory_attachment GLEW_GET_VAR(__GLEW_NV_memory_attachment) + +#endif /* GL_NV_memory_attachment */ + +/* --------------------------- GL_NV_mesh_shader --------------------------- */ + +#ifndef GL_NV_mesh_shader +#define GL_NV_mesh_shader 1 + +#define GL_MESH_SHADER_BIT_NV 0x00000040 +#define GL_TASK_SHADER_BIT_NV 0x00000080 +#define GL_MAX_MESH_UNIFORM_BLOCKS_NV 0x8E60 +#define GL_MAX_MESH_TEXTURE_IMAGE_UNITS_NV 0x8E61 +#define GL_MAX_MESH_IMAGE_UNIFORMS_NV 0x8E62 +#define GL_MAX_MESH_UNIFORM_COMPONENTS_NV 0x8E63 +#define GL_MAX_MESH_ATOMIC_COUNTER_BUFFERS_NV 0x8E64 +#define GL_MAX_MESH_ATOMIC_COUNTERS_NV 0x8E65 +#define GL_MAX_MESH_SHADER_STORAGE_BLOCKS_NV 0x8E66 +#define GL_MAX_COMBINED_MESH_UNIFORM_COMPONENTS_NV 0x8E67 +#define GL_MAX_TASK_UNIFORM_BLOCKS_NV 0x8E68 +#define GL_MAX_TASK_TEXTURE_IMAGE_UNITS_NV 0x8E69 +#define GL_MAX_TASK_IMAGE_UNIFORMS_NV 0x8E6A +#define GL_MAX_TASK_UNIFORM_COMPONENTS_NV 0x8E6B +#define GL_MAX_TASK_ATOMIC_COUNTER_BUFFERS_NV 0x8E6C +#define GL_MAX_TASK_ATOMIC_COUNTERS_NV 0x8E6D +#define GL_MAX_TASK_SHADER_STORAGE_BLOCKS_NV 0x8E6E +#define GL_MAX_COMBINED_TASK_UNIFORM_COMPONENTS_NV 0x8E6F +#define GL_MESH_OUTPUT_PER_VERTEX_GRANULARITY_NV 0x92DF +#define GL_MAX_MESH_TOTAL_MEMORY_SIZE_NV 0x9536 +#define GL_MAX_TASK_TOTAL_MEMORY_SIZE_NV 0x9537 +#define GL_MAX_MESH_OUTPUT_VERTICES_NV 0x9538 +#define GL_MAX_MESH_OUTPUT_PRIMITIVES_NV 0x9539 +#define GL_MAX_TASK_OUTPUT_COUNT_NV 0x953A +#define GL_MAX_MESH_WORK_GROUP_SIZE_NV 0x953B +#define GL_MAX_TASK_WORK_GROUP_SIZE_NV 0x953C +#define GL_MAX_DRAW_MESH_TASKS_COUNT_NV 0x953D +#define GL_MESH_WORK_GROUP_SIZE_NV 0x953E +#define GL_TASK_WORK_GROUP_SIZE_NV 0x953F +#define GL_MESH_OUTPUT_PER_PRIMITIVE_GRANULARITY_NV 0x9543 +#define GL_MAX_MESH_VIEWS_NV 0x9557 +#define GL_MESH_SHADER_NV 0x9559 +#define GL_TASK_SHADER_NV 0x955A +#define GL_MESH_VERTICES_OUT_NV 0x9579 +#define GL_MESH_PRIMITIVES_OUT_NV 0x957A +#define GL_MESH_OUTPUT_TYPE_NV 0x957B +#define GL_MESH_SUBROUTINE_NV 0x957C +#define GL_TASK_SUBROUTINE_NV 0x957D +#define GL_MESH_SUBROUTINE_UNIFORM_NV 0x957E +#define GL_TASK_SUBROUTINE_UNIFORM_NV 0x957F +#define GL_UNIFORM_BLOCK_REFERENCED_BY_MESH_SHADER_NV 0x959C +#define GL_UNIFORM_BLOCK_REFERENCED_BY_TASK_SHADER_NV 0x959D +#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_MESH_SHADER_NV 0x959E +#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TASK_SHADER_NV 0x959F +#define GL_REFERENCED_BY_MESH_SHADER_NV 0x95A0 +#define GL_REFERENCED_BY_TASK_SHADER_NV 0x95A1 +#define GL_MAX_MESH_WORK_GROUP_INVOCATIONS_NV 0x95A2 +#define GL_MAX_TASK_WORK_GROUP_INVOCATIONS_NV 0x95A3 + +typedef void (GLAPIENTRY * PFNGLDRAWMESHTASKSINDIRECTNVPROC) (GLintptr indirect); +typedef void (GLAPIENTRY * PFNGLDRAWMESHTASKSNVPROC) (GLuint first, GLuint count); +typedef void (GLAPIENTRY * PFNGLMULTIDRAWMESHTASKSINDIRECTCOUNTNVPROC) (GLintptr indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride); +typedef void (GLAPIENTRY * PFNGLMULTIDRAWMESHTASKSINDIRECTNVPROC) (GLintptr indirect, GLsizei drawcount, GLsizei stride); + +#define glDrawMeshTasksIndirectNV GLEW_GET_FUN(__glewDrawMeshTasksIndirectNV) +#define glDrawMeshTasksNV GLEW_GET_FUN(__glewDrawMeshTasksNV) +#define glMultiDrawMeshTasksIndirectCountNV GLEW_GET_FUN(__glewMultiDrawMeshTasksIndirectCountNV) +#define glMultiDrawMeshTasksIndirectNV GLEW_GET_FUN(__glewMultiDrawMeshTasksIndirectNV) + +#define GLEW_NV_mesh_shader GLEW_GET_VAR(__GLEW_NV_mesh_shader) + +#endif /* GL_NV_mesh_shader */ + /* ----------------------- GL_NV_multisample_coverage ---------------------- */ #ifndef GL_NV_multisample_coverage @@ -13356,6 +16494,36 @@ typedef void (GLAPIENTRY * PFNGLGETINTERNALFORMATSAMPLEIVNVPROC) (GLenum target, #endif /* GL_NV_multisample_filter_hint */ +/* ----------------------- GL_NV_non_square_matrices ----------------------- */ + +#ifndef GL_NV_non_square_matrices +#define GL_NV_non_square_matrices 1 + +#define GL_FLOAT_MAT2x3_NV 0x8B65 +#define GL_FLOAT_MAT2x4_NV 0x8B66 +#define GL_FLOAT_MAT3x2_NV 0x8B67 +#define GL_FLOAT_MAT3x4_NV 0x8B68 +#define GL_FLOAT_MAT4x2_NV 0x8B69 +#define GL_FLOAT_MAT4x3_NV 0x8B6A + +typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX2X3FVNVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX2X4FVNVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX3X2FVNVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX3X4FVNVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX4X2FVNVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX4X3FVNVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); + +#define glUniformMatrix2x3fvNV GLEW_GET_FUN(__glewUniformMatrix2x3fvNV) +#define glUniformMatrix2x4fvNV GLEW_GET_FUN(__glewUniformMatrix2x4fvNV) +#define glUniformMatrix3x2fvNV GLEW_GET_FUN(__glewUniformMatrix3x2fvNV) +#define glUniformMatrix3x4fvNV GLEW_GET_FUN(__glewUniformMatrix3x4fvNV) +#define glUniformMatrix4x2fvNV GLEW_GET_FUN(__glewUniformMatrix4x2fvNV) +#define glUniformMatrix4x3fvNV GLEW_GET_FUN(__glewUniformMatrix4x3fvNV) + +#define GLEW_NV_non_square_matrices GLEW_GET_VAR(__GLEW_NV_non_square_matrices) + +#endif /* GL_NV_non_square_matrices */ + /* ------------------------- GL_NV_occlusion_query ------------------------- */ #ifndef GL_NV_occlusion_query @@ -13386,6 +16554,19 @@ typedef GLboolean (GLAPIENTRY * PFNGLISOCCLUSIONQUERYNVPROC) (GLuint id); #endif /* GL_NV_occlusion_query */ +/* -------------------------- GL_NV_pack_subimage -------------------------- */ + +#ifndef GL_NV_pack_subimage +#define GL_NV_pack_subimage 1 + +#define GL_PACK_ROW_LENGTH_NV 0x0D02 +#define GL_PACK_SKIP_ROWS_NV 0x0D03 +#define GL_PACK_SKIP_PIXELS_NV 0x0D04 + +#define GLEW_NV_pack_subimage GLEW_GET_VAR(__GLEW_NV_pack_subimage) + +#endif /* GL_NV_pack_subimage */ + /* ----------------------- GL_NV_packed_depth_stencil ---------------------- */ #ifndef GL_NV_packed_depth_stencil @@ -13398,6 +16579,30 @@ typedef GLboolean (GLAPIENTRY * PFNGLISOCCLUSIONQUERYNVPROC) (GLuint id); #endif /* GL_NV_packed_depth_stencil */ +/* --------------------------- GL_NV_packed_float -------------------------- */ + +#ifndef GL_NV_packed_float +#define GL_NV_packed_float 1 + +#define GL_R11F_G11F_B10F_NV 0x8C3A +#define GL_UNSIGNED_INT_10F_11F_11F_REV_NV 0x8C3B + +#define GLEW_NV_packed_float GLEW_GET_VAR(__GLEW_NV_packed_float) + +#endif /* GL_NV_packed_float */ + +/* ----------------------- GL_NV_packed_float_linear ----------------------- */ + +#ifndef GL_NV_packed_float_linear +#define GL_NV_packed_float_linear 1 + +#define GL_R11F_G11F_B10F_NV 0x8C3A +#define GL_UNSIGNED_INT_10F_11F_11F_REV_NV 0x8C3B + +#define GLEW_NV_packed_float_linear GLEW_GET_VAR(__GLEW_NV_packed_float_linear) + +#endif /* GL_NV_packed_float_linear */ + /* --------------------- GL_NV_parameter_buffer_object --------------------- */ #ifndef GL_NV_parameter_buffer_object @@ -13730,6 +16935,20 @@ typedef void (GLAPIENTRY * PFNGLWEIGHTPATHSNVPROC) (GLuint resultPath, GLsizei n #endif /* GL_NV_path_rendering_shared_edge */ +/* ----------------------- GL_NV_pixel_buffer_object ----------------------- */ + +#ifndef GL_NV_pixel_buffer_object +#define GL_NV_pixel_buffer_object 1 + +#define GL_PIXEL_PACK_BUFFER_NV 0x88EB +#define GL_PIXEL_UNPACK_BUFFER_NV 0x88EC +#define GL_PIXEL_PACK_BUFFER_BINDING_NV 0x88ED +#define GL_PIXEL_UNPACK_BUFFER_BINDING_NV 0x88EF + +#define GLEW_NV_pixel_buffer_object GLEW_GET_VAR(__GLEW_NV_pixel_buffer_object) + +#endif /* GL_NV_pixel_buffer_object */ + /* ------------------------- GL_NV_pixel_data_range ------------------------ */ #ifndef GL_NV_pixel_data_range @@ -13752,6 +16971,17 @@ typedef void (GLAPIENTRY * PFNGLPIXELDATARANGENVPROC) (GLenum target, GLsizei le #endif /* GL_NV_pixel_data_range */ +/* ------------------------- GL_NV_platform_binary ------------------------- */ + +#ifndef GL_NV_platform_binary +#define GL_NV_platform_binary 1 + +#define GL_NVIDIA_PLATFORM_BINARY_NV 0x890B + +#define GLEW_NV_platform_binary GLEW_GET_VAR(__GLEW_NV_platform_binary) + +#endif /* GL_NV_platform_binary */ + /* --------------------------- GL_NV_point_sprite -------------------------- */ #ifndef GL_NV_point_sprite @@ -13771,6 +17001,26 @@ typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERIVNVPROC) (GLenum pname, const GLi #endif /* GL_NV_point_sprite */ +/* --------------------------- GL_NV_polygon_mode -------------------------- */ + +#ifndef GL_NV_polygon_mode +#define GL_NV_polygon_mode 1 + +#define GL_POLYGON_MODE_NV 0x0B40 +#define GL_POINT_NV 0x1B00 +#define GL_LINE_NV 0x1B01 +#define GL_FILL_NV 0x1B02 +#define GL_POLYGON_OFFSET_POINT_NV 0x2A01 +#define GL_POLYGON_OFFSET_LINE_NV 0x2A02 + +typedef void (GLAPIENTRY * PFNGLPOLYGONMODENVPROC) (GLenum face, GLenum mode); + +#define glPolygonModeNV GLEW_GET_FUN(__glewPolygonModeNV) + +#define GLEW_NV_polygon_mode GLEW_GET_VAR(__GLEW_NV_polygon_mode) + +#endif /* GL_NV_polygon_mode */ + /* -------------------------- GL_NV_present_video -------------------------- */ #ifndef GL_NV_present_video @@ -13819,6 +17069,68 @@ typedef void (GLAPIENTRY * PFNGLPRIMITIVERESTARTNVPROC) (void); #endif /* GL_NV_primitive_restart */ +/* ------------------------ GL_NV_query_resource_tag ----------------------- */ + +#ifndef GL_NV_query_resource_tag +#define GL_NV_query_resource_tag 1 + +#define GLEW_NV_query_resource_tag GLEW_GET_VAR(__GLEW_NV_query_resource_tag) + +#endif /* GL_NV_query_resource_tag */ + +/* --------------------------- GL_NV_read_buffer --------------------------- */ + +#ifndef GL_NV_read_buffer +#define GL_NV_read_buffer 1 + +#define GL_READ_BUFFER_NV 0x0C02 + +typedef void (GLAPIENTRY * PFNGLREADBUFFERNVPROC) (GLenum mode); + +#define glReadBufferNV GLEW_GET_FUN(__glewReadBufferNV) + +#define GLEW_NV_read_buffer GLEW_GET_VAR(__GLEW_NV_read_buffer) + +#endif /* GL_NV_read_buffer */ + +/* ------------------------ GL_NV_read_buffer_front ------------------------ */ + +#ifndef GL_NV_read_buffer_front +#define GL_NV_read_buffer_front 1 + +#define GL_READ_BUFFER_NV 0x0C02 + +#define GLEW_NV_read_buffer_front GLEW_GET_VAR(__GLEW_NV_read_buffer_front) + +#endif /* GL_NV_read_buffer_front */ + +/* ---------------------------- GL_NV_read_depth --------------------------- */ + +#ifndef GL_NV_read_depth +#define GL_NV_read_depth 1 + +#define GLEW_NV_read_depth GLEW_GET_VAR(__GLEW_NV_read_depth) + +#endif /* GL_NV_read_depth */ + +/* ------------------------ GL_NV_read_depth_stencil ----------------------- */ + +#ifndef GL_NV_read_depth_stencil +#define GL_NV_read_depth_stencil 1 + +#define GLEW_NV_read_depth_stencil GLEW_GET_VAR(__GLEW_NV_read_depth_stencil) + +#endif /* GL_NV_read_depth_stencil */ + +/* --------------------------- GL_NV_read_stencil -------------------------- */ + +#ifndef GL_NV_read_stencil +#define GL_NV_read_stencil 1 + +#define GLEW_NV_read_stencil GLEW_GET_VAR(__GLEW_NV_read_stencil) + +#endif /* GL_NV_read_stencil */ + /* ------------------------ GL_NV_register_combiners ----------------------- */ #ifndef GL_NV_register_combiners @@ -13925,6 +17237,48 @@ typedef void (GLAPIENTRY * PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC) (GLenum stage #endif /* GL_NV_register_combiners2 */ +/* ------------------- GL_NV_representative_fragment_test ------------------ */ + +#ifndef GL_NV_representative_fragment_test +#define GL_NV_representative_fragment_test 1 + +#define GL_REPRESENTATIVE_FRAGMENT_TEST_NV 0x937F + +#define GLEW_NV_representative_fragment_test GLEW_GET_VAR(__GLEW_NV_representative_fragment_test) + +#endif /* GL_NV_representative_fragment_test */ + +/* ------------------ GL_NV_robustness_video_memory_purge ------------------ */ + +#ifndef GL_NV_robustness_video_memory_purge +#define GL_NV_robustness_video_memory_purge 1 + +#define GL_PURGED_CONTEXT_RESET_NV 0x92BB + +#define GLEW_NV_robustness_video_memory_purge GLEW_GET_VAR(__GLEW_NV_robustness_video_memory_purge) + +#endif /* GL_NV_robustness_video_memory_purge */ + +/* --------------------------- GL_NV_sRGB_formats -------------------------- */ + +#ifndef GL_NV_sRGB_formats +#define GL_NV_sRGB_formats 1 + +#define GL_ETC1_SRGB8_NV 0x88EE +#define GL_SRGB8_NV 0x8C41 +#define GL_SLUMINANCE_ALPHA_NV 0x8C44 +#define GL_SLUMINANCE8_ALPHA8_NV 0x8C45 +#define GL_SLUMINANCE_NV 0x8C46 +#define GL_SLUMINANCE8_NV 0x8C47 +#define GL_COMPRESSED_SRGB_S3TC_DXT1_NV 0x8C4C +#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_NV 0x8C4D +#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_NV 0x8C4E +#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_NV 0x8C4F + +#define GLEW_NV_sRGB_formats GLEW_GET_VAR(__GLEW_NV_sRGB_formats) + +#endif /* GL_NV_sRGB_formats */ + /* ------------------------- GL_NV_sample_locations ------------------------ */ #ifndef GL_NV_sample_locations @@ -13941,9 +17295,11 @@ typedef void (GLAPIENTRY * PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC) (GLenum stage typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERSAMPLELOCATIONSFVNVPROC) (GLenum target, GLuint start, GLsizei count, const GLfloat* v); typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVNVPROC) (GLuint framebuffer, GLuint start, GLsizei count, const GLfloat* v); +typedef void (GLAPIENTRY * PFNGLRESOLVEDEPTHVALUESNVPROC) (void); #define glFramebufferSampleLocationsfvNV GLEW_GET_FUN(__glewFramebufferSampleLocationsfvNV) #define glNamedFramebufferSampleLocationsfvNV GLEW_GET_FUN(__glewNamedFramebufferSampleLocationsfvNV) +#define glResolveDepthValuesNV GLEW_GET_FUN(__glewResolveDepthValuesNV) #define GLEW_NV_sample_locations GLEW_GET_VAR(__GLEW_NV_sample_locations) @@ -13958,6 +17314,24 @@ typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVNVPROC) (GLuint #endif /* GL_NV_sample_mask_override_coverage */ +/* ------------------------ GL_NV_scissor_exclusive ------------------------ */ + +#ifndef GL_NV_scissor_exclusive +#define GL_NV_scissor_exclusive 1 + +#define GL_SCISSOR_TEST_EXCLUSIVE_NV 0x9555 +#define GL_SCISSOR_BOX_EXCLUSIVE_NV 0x9556 + +typedef void (GLAPIENTRY * PFNGLSCISSOREXCLUSIVEARRAYVNVPROC) (GLuint first, GLsizei count, const GLint* v); +typedef void (GLAPIENTRY * PFNGLSCISSOREXCLUSIVENVPROC) (GLint x, GLint y, GLsizei width, GLsizei height); + +#define glScissorExclusiveArrayvNV GLEW_GET_FUN(__glewScissorExclusiveArrayvNV) +#define glScissorExclusiveNV GLEW_GET_FUN(__glewScissorExclusiveNV) + +#define GLEW_NV_scissor_exclusive GLEW_GET_VAR(__GLEW_NV_scissor_exclusive) + +#endif /* GL_NV_scissor_exclusive */ + /* ---------------------- GL_NV_shader_atomic_counters --------------------- */ #ifndef GL_NV_shader_atomic_counters @@ -13976,6 +17350,15 @@ typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVNVPROC) (GLuint #endif /* GL_NV_shader_atomic_float */ +/* ---------------------- GL_NV_shader_atomic_float64 ---------------------- */ + +#ifndef GL_NV_shader_atomic_float64 +#define GL_NV_shader_atomic_float64 1 + +#define GLEW_NV_shader_atomic_float64 GLEW_GET_VAR(__GLEW_NV_shader_atomic_float64) + +#endif /* GL_NV_shader_atomic_float64 */ + /* -------------------- GL_NV_shader_atomic_fp16_vector -------------------- */ #ifndef GL_NV_shader_atomic_fp16_vector @@ -14035,6 +17418,15 @@ typedef void (GLAPIENTRY * PFNGLUNIFORMUI64VNVPROC) (GLint location, GLsizei cou #endif /* GL_NV_shader_buffer_load */ +/* ---------------- GL_NV_shader_noperspective_interpolation --------------- */ + +#ifndef GL_NV_shader_noperspective_interpolation +#define GL_NV_shader_noperspective_interpolation 1 + +#define GLEW_NV_shader_noperspective_interpolation GLEW_GET_VAR(__GLEW_NV_shader_noperspective_interpolation) + +#endif /* GL_NV_shader_noperspective_interpolation */ + /* ------------------- GL_NV_shader_storage_buffer_object ------------------ */ #ifndef GL_NV_shader_storage_buffer_object @@ -14044,6 +17436,26 @@ typedef void (GLAPIENTRY * PFNGLUNIFORMUI64VNVPROC) (GLint location, GLsizei cou #endif /* GL_NV_shader_storage_buffer_object */ +/* ------------------- GL_NV_shader_subgroup_partitioned ------------------- */ + +#ifndef GL_NV_shader_subgroup_partitioned +#define GL_NV_shader_subgroup_partitioned 1 + +#define GL_SUBGROUP_FEATURE_PARTITIONED_BIT_NV 0x00000100 + +#define GLEW_NV_shader_subgroup_partitioned GLEW_GET_VAR(__GLEW_NV_shader_subgroup_partitioned) + +#endif /* GL_NV_shader_subgroup_partitioned */ + +/* --------------------- GL_NV_shader_texture_footprint -------------------- */ + +#ifndef GL_NV_shader_texture_footprint +#define GL_NV_shader_texture_footprint 1 + +#define GLEW_NV_shader_texture_footprint GLEW_GET_VAR(__GLEW_NV_shader_texture_footprint) + +#endif /* GL_NV_shader_texture_footprint */ + /* ----------------------- GL_NV_shader_thread_group ----------------------- */ #ifndef GL_NV_shader_thread_group @@ -14066,6 +17478,82 @@ typedef void (GLAPIENTRY * PFNGLUNIFORMUI64VNVPROC) (GLint location, GLsizei cou #endif /* GL_NV_shader_thread_shuffle */ +/* ------------------------ GL_NV_shading_rate_image ----------------------- */ + +#ifndef GL_NV_shading_rate_image +#define GL_NV_shading_rate_image 1 + +#define GL_SHADING_RATE_IMAGE_BINDING_NV 0x955B +#define GL_SHADING_RATE_IMAGE_TEXEL_WIDTH_NV 0x955C +#define GL_SHADING_RATE_IMAGE_TEXEL_HEIGHT_NV 0x955D +#define GL_SHADING_RATE_IMAGE_PALETTE_SIZE_NV 0x955E +#define GL_MAX_COARSE_FRAGMENT_SAMPLES_NV 0x955F +#define GL_SHADING_RATE_IMAGE_NV 0x9563 +#define GL_SHADING_RATE_NO_INVOCATIONS_NV 0x9564 +#define GL_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV 0x9565 +#define GL_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV 0x9566 +#define GL_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV 0x9567 +#define GL_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV 0x9568 +#define GL_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV 0x9569 +#define GL_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV 0x956A +#define GL_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV 0x956B +#define GL_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV 0x956C +#define GL_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV 0x956D +#define GL_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV 0x956E +#define GL_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV 0x956F +#define GL_SHADING_RATE_SAMPLE_ORDER_DEFAULT_NV 0x95AE +#define GL_SHADING_RATE_SAMPLE_ORDER_PIXEL_MAJOR_NV 0x95AF +#define GL_SHADING_RATE_SAMPLE_ORDER_SAMPLE_MAJOR_NV 0x95B0 + +typedef void (GLAPIENTRY * PFNGLBINDSHADINGRATEIMAGENVPROC) (GLuint texture); +typedef void (GLAPIENTRY * PFNGLGETSHADINGRATEIMAGEPALETTENVPROC) (GLuint viewport, GLuint entry, GLenum* rate); +typedef void (GLAPIENTRY * PFNGLGETSHADINGRATESAMPLELOCATIONIVNVPROC) (GLenum rate, GLuint samples, GLuint index, GLint* location); +typedef void (GLAPIENTRY * PFNGLSHADINGRATEIMAGEBARRIERNVPROC) (GLenum order); +typedef void (GLAPIENTRY * PFNGLSHADINGRATEIMAGEPALETTENVPROC) (GLuint viewport, GLuint first, GLsizei count, const GLenum* rates); +typedef void (GLAPIENTRY * PFNGLSHADINGRATESAMPLEORDERCUSTOMNVPROC) (GLenum rate, GLuint samples, const GLint* locations); + +#define glBindShadingRateImageNV GLEW_GET_FUN(__glewBindShadingRateImageNV) +#define glGetShadingRateImagePaletteNV GLEW_GET_FUN(__glewGetShadingRateImagePaletteNV) +#define glGetShadingRateSampleLocationivNV GLEW_GET_FUN(__glewGetShadingRateSampleLocationivNV) +#define glShadingRateImageBarrierNV GLEW_GET_FUN(__glewShadingRateImageBarrierNV) +#define glShadingRateImagePaletteNV GLEW_GET_FUN(__glewShadingRateImagePaletteNV) +#define glShadingRateSampleOrderCustomNV GLEW_GET_FUN(__glewShadingRateSampleOrderCustomNV) + +#define GLEW_NV_shading_rate_image GLEW_GET_VAR(__GLEW_NV_shading_rate_image) + +#endif /* GL_NV_shading_rate_image */ + +/* ---------------------- GL_NV_shadow_samplers_array ---------------------- */ + +#ifndef GL_NV_shadow_samplers_array +#define GL_NV_shadow_samplers_array 1 + +#define GL_SAMPLER_2D_ARRAY_SHADOW_NV 0x8DC4 + +#define GLEW_NV_shadow_samplers_array GLEW_GET_VAR(__GLEW_NV_shadow_samplers_array) + +#endif /* GL_NV_shadow_samplers_array */ + +/* ----------------------- GL_NV_shadow_samplers_cube ---------------------- */ + +#ifndef GL_NV_shadow_samplers_cube +#define GL_NV_shadow_samplers_cube 1 + +#define GL_SAMPLER_CUBE_SHADOW_NV 0x8DC5 + +#define GLEW_NV_shadow_samplers_cube GLEW_GET_VAR(__GLEW_NV_shadow_samplers_cube) + +#endif /* GL_NV_shadow_samplers_cube */ + +/* ---------------------- GL_NV_stereo_view_rendering ---------------------- */ + +#ifndef GL_NV_stereo_view_rendering +#define GL_NV_stereo_view_rendering 1 + +#define GLEW_NV_stereo_view_rendering GLEW_GET_VAR(__GLEW_NV_stereo_view_rendering) + +#endif /* GL_NV_stereo_view_rendering */ + /* ---------------------- GL_NV_tessellation_program5 ---------------------- */ #ifndef GL_NV_tessellation_program5 @@ -14106,6 +17594,37 @@ typedef void (GLAPIENTRY * PFNGLUNIFORMUI64VNVPROC) (GLint location, GLsizei cou #endif /* GL_NV_texgen_reflection */ +/* -------------------------- GL_NV_texture_array -------------------------- */ + +#ifndef GL_NV_texture_array +#define GL_NV_texture_array 1 + +#define GL_UNPACK_SKIP_IMAGES_NV 0x806D +#define GL_UNPACK_IMAGE_HEIGHT_NV 0x806E +#define GL_MAX_ARRAY_TEXTURE_LAYERS_NV 0x88FF +#define GL_TEXTURE_2D_ARRAY_NV 0x8C1A +#define GL_TEXTURE_BINDING_2D_ARRAY_NV 0x8C1D +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_NV 0x8CD4 +#define GL_SAMPLER_2D_ARRAY_NV 0x8DC1 + +typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXIMAGE3DNVPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data); +typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE3DNVPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data); +typedef void (GLAPIENTRY * PFNGLCOPYTEXSUBIMAGE3DNVPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURELAYERNVPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); +typedef void (GLAPIENTRY * PFNGLTEXIMAGE3DNVPROC) (GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); +typedef void (GLAPIENTRY * PFNGLTEXSUBIMAGE3DNVPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); + +#define glCompressedTexImage3DNV GLEW_GET_FUN(__glewCompressedTexImage3DNV) +#define glCompressedTexSubImage3DNV GLEW_GET_FUN(__glewCompressedTexSubImage3DNV) +#define glCopyTexSubImage3DNV GLEW_GET_FUN(__glewCopyTexSubImage3DNV) +#define glFramebufferTextureLayerNV GLEW_GET_FUN(__glewFramebufferTextureLayerNV) +#define glTexImage3DNV GLEW_GET_FUN(__glewTexImage3DNV) +#define glTexSubImage3DNV GLEW_GET_FUN(__glewTexSubImage3DNV) + +#define GLEW_NV_texture_array GLEW_GET_VAR(__GLEW_NV_texture_array) + +#endif /* GL_NV_texture_array */ + /* ------------------------- GL_NV_texture_barrier ------------------------- */ #ifndef GL_NV_texture_barrier @@ -14119,6 +17638,55 @@ typedef void (GLAPIENTRY * PFNGLTEXTUREBARRIERNVPROC) (void); #endif /* GL_NV_texture_barrier */ +/* ----------------------- GL_NV_texture_border_clamp ---------------------- */ + +#ifndef GL_NV_texture_border_clamp +#define GL_NV_texture_border_clamp 1 + +#define GL_TEXTURE_BORDER_COLOR_NV 0x1004 +#define GL_CLAMP_TO_BORDER_NV 0x812D + +#define GLEW_NV_texture_border_clamp GLEW_GET_VAR(__GLEW_NV_texture_border_clamp) + +#endif /* GL_NV_texture_border_clamp */ + +/* --------------------- GL_NV_texture_compression_latc -------------------- */ + +#ifndef GL_NV_texture_compression_latc +#define GL_NV_texture_compression_latc 1 + +#define GL_COMPRESSED_LUMINANCE_LATC1_NV 0x8C70 +#define GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_NV 0x8C71 +#define GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_NV 0x8C72 +#define GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_NV 0x8C73 + +#define GLEW_NV_texture_compression_latc GLEW_GET_VAR(__GLEW_NV_texture_compression_latc) + +#endif /* GL_NV_texture_compression_latc */ + +/* --------------------- GL_NV_texture_compression_s3tc -------------------- */ + +#ifndef GL_NV_texture_compression_s3tc +#define GL_NV_texture_compression_s3tc 1 + +#define GL_COMPRESSED_RGB_S3TC_DXT1_NV 0x83F0 +#define GL_COMPRESSED_RGBA_S3TC_DXT1_NV 0x83F1 +#define GL_COMPRESSED_RGBA_S3TC_DXT3_NV 0x83F2 +#define GL_COMPRESSED_RGBA_S3TC_DXT5_NV 0x83F3 + +#define GLEW_NV_texture_compression_s3tc GLEW_GET_VAR(__GLEW_NV_texture_compression_s3tc) + +#endif /* GL_NV_texture_compression_s3tc */ + +/* ----------------- GL_NV_texture_compression_s3tc_update ----------------- */ + +#ifndef GL_NV_texture_compression_s3tc_update +#define GL_NV_texture_compression_s3tc_update 1 + +#define GLEW_NV_texture_compression_s3tc_update GLEW_GET_VAR(__GLEW_NV_texture_compression_s3tc_update) + +#endif /* GL_NV_texture_compression_s3tc_update */ + /* --------------------- GL_NV_texture_compression_vtc --------------------- */ #ifndef GL_NV_texture_compression_vtc @@ -14180,6 +17748,15 @@ typedef void (GLAPIENTRY * PFNGLTEXTUREIMAGE3DMULTISAMPLENVPROC) (GLuint texture #endif /* GL_NV_texture_multisample */ +/* ---------------------- GL_NV_texture_npot_2D_mipmap --------------------- */ + +#ifndef GL_NV_texture_npot_2D_mipmap +#define GL_NV_texture_npot_2D_mipmap 1 + +#define GLEW_NV_texture_npot_2D_mipmap GLEW_GET_VAR(__GLEW_NV_texture_npot_2D_mipmap) + +#endif /* GL_NV_texture_npot_2D_mipmap */ + /* ------------------------ GL_NV_texture_rectangle ------------------------ */ #ifndef GL_NV_texture_rectangle @@ -14194,6 +17771,15 @@ typedef void (GLAPIENTRY * PFNGLTEXTUREIMAGE3DMULTISAMPLENVPROC) (GLuint texture #endif /* GL_NV_texture_rectangle */ +/* ------------------- GL_NV_texture_rectangle_compressed ------------------ */ + +#ifndef GL_NV_texture_rectangle_compressed +#define GL_NV_texture_rectangle_compressed 1 + +#define GLEW_NV_texture_rectangle_compressed GLEW_GET_VAR(__GLEW_NV_texture_rectangle_compressed) + +#endif /* GL_NV_texture_rectangle_compressed */ + /* -------------------------- GL_NV_texture_shader ------------------------- */ #ifndef GL_NV_texture_shader @@ -14482,6 +18068,19 @@ typedef void (GLAPIENTRY * PFNGLVDPAUUNREGISTERSURFACENVPROC) (GLvdpauSurfaceNV #endif /* GL_NV_vdpau_interop */ +/* -------------------------- GL_NV_vdpau_interop2 ------------------------- */ + +#ifndef GL_NV_vdpau_interop2 +#define GL_NV_vdpau_interop2 1 + +typedef GLvdpauSurfaceNV (GLAPIENTRY * PFNGLVDPAUREGISTERVIDEOSURFACEWITHPICTURESTRUCTURENVPROC) (const void *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames, GLboolean isFrameStructure); + +#define glVDPAURegisterVideoSurfaceWithPictureStructureNV GLEW_GET_FUN(__glewVDPAURegisterVideoSurfaceWithPictureStructureNV) + +#define GLEW_NV_vdpau_interop2 GLEW_GET_VAR(__GLEW_NV_vdpau_interop2) + +#endif /* GL_NV_vdpau_interop2 */ + /* ------------------------ GL_NV_vertex_array_range ----------------------- */ #ifndef GL_NV_vertex_array_range @@ -14967,6 +18566,50 @@ typedef void (GLAPIENTRY * PFNGLVIDEOCAPTURESTREAMPARAMETERIVNVPROC) (GLuint vid #endif /* GL_NV_video_capture */ +/* -------------------------- GL_NV_viewport_array ------------------------- */ + +#ifndef GL_NV_viewport_array +#define GL_NV_viewport_array 1 + +#define GL_DEPTH_RANGE 0x0B70 +#define GL_VIEWPORT 0x0BA2 +#define GL_SCISSOR_BOX 0x0C10 +#define GL_SCISSOR_TEST 0x0C11 +#define GL_MAX_VIEWPORTS_NV 0x825B +#define GL_VIEWPORT_SUBPIXEL_BITS_NV 0x825C +#define GL_VIEWPORT_BOUNDS_RANGE_NV 0x825D +#define GL_VIEWPORT_INDEX_PROVOKING_VERTEX_NV 0x825F + +typedef void (GLAPIENTRY * PFNGLDEPTHRANGEARRAYFVNVPROC) (GLuint first, GLsizei count, const GLfloat * v); +typedef void (GLAPIENTRY * PFNGLDEPTHRANGEINDEXEDFNVPROC) (GLuint index, GLfloat n, GLfloat f); +typedef void (GLAPIENTRY * PFNGLDISABLEINVPROC) (GLenum target, GLuint index); +typedef void (GLAPIENTRY * PFNGLENABLEINVPROC) (GLenum target, GLuint index); +typedef void (GLAPIENTRY * PFNGLGETFLOATI_VNVPROC) (GLenum target, GLuint index, GLfloat* data); +typedef GLboolean (GLAPIENTRY * PFNGLISENABLEDINVPROC) (GLenum target, GLuint index); +typedef void (GLAPIENTRY * PFNGLSCISSORARRAYVNVPROC) (GLuint first, GLsizei count, const GLint * v); +typedef void (GLAPIENTRY * PFNGLSCISSORINDEXEDNVPROC) (GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height); +typedef void (GLAPIENTRY * PFNGLSCISSORINDEXEDVNVPROC) (GLuint index, const GLint * v); +typedef void (GLAPIENTRY * PFNGLVIEWPORTARRAYVNVPROC) (GLuint first, GLsizei count, const GLfloat * v); +typedef void (GLAPIENTRY * PFNGLVIEWPORTINDEXEDFNVPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h); +typedef void (GLAPIENTRY * PFNGLVIEWPORTINDEXEDFVNVPROC) (GLuint index, const GLfloat * v); + +#define glDepthRangeArrayfvNV GLEW_GET_FUN(__glewDepthRangeArrayfvNV) +#define glDepthRangeIndexedfNV GLEW_GET_FUN(__glewDepthRangeIndexedfNV) +#define glDisableiNV GLEW_GET_FUN(__glewDisableiNV) +#define glEnableiNV GLEW_GET_FUN(__glewEnableiNV) +#define glGetFloati_vNV GLEW_GET_FUN(__glewGetFloati_vNV) +#define glIsEnablediNV GLEW_GET_FUN(__glewIsEnablediNV) +#define glScissorArrayvNV GLEW_GET_FUN(__glewScissorArrayvNV) +#define glScissorIndexedNV GLEW_GET_FUN(__glewScissorIndexedNV) +#define glScissorIndexedvNV GLEW_GET_FUN(__glewScissorIndexedvNV) +#define glViewportArrayvNV GLEW_GET_FUN(__glewViewportArrayvNV) +#define glViewportIndexedfNV GLEW_GET_FUN(__glewViewportIndexedfNV) +#define glViewportIndexedfvNV GLEW_GET_FUN(__glewViewportIndexedfvNV) + +#define GLEW_NV_viewport_array GLEW_GET_VAR(__GLEW_NV_viewport_array) + +#endif /* GL_NV_viewport_array */ + /* ------------------------- GL_NV_viewport_array2 ------------------------- */ #ifndef GL_NV_viewport_array2 @@ -14976,6 +18619,122 @@ typedef void (GLAPIENTRY * PFNGLVIDEOCAPTURESTREAMPARAMETERIVNVPROC) (GLuint vid #endif /* GL_NV_viewport_array2 */ +/* ------------------------- GL_NV_viewport_swizzle ------------------------ */ + +#ifndef GL_NV_viewport_swizzle +#define GL_NV_viewport_swizzle 1 + +#define GL_VIEWPORT_SWIZZLE_POSITIVE_X_NV 0x9350 +#define GL_VIEWPORT_SWIZZLE_NEGATIVE_X_NV 0x9351 +#define GL_VIEWPORT_SWIZZLE_POSITIVE_Y_NV 0x9352 +#define GL_VIEWPORT_SWIZZLE_NEGATIVE_Y_NV 0x9353 +#define GL_VIEWPORT_SWIZZLE_POSITIVE_Z_NV 0x9354 +#define GL_VIEWPORT_SWIZZLE_NEGATIVE_Z_NV 0x9355 +#define GL_VIEWPORT_SWIZZLE_POSITIVE_W_NV 0x9356 +#define GL_VIEWPORT_SWIZZLE_NEGATIVE_W_NV 0x9357 +#define GL_VIEWPORT_SWIZZLE_X_NV 0x9358 +#define GL_VIEWPORT_SWIZZLE_Y_NV 0x9359 +#define GL_VIEWPORT_SWIZZLE_Z_NV 0x935A +#define GL_VIEWPORT_SWIZZLE_W_NV 0x935B + +typedef void (GLAPIENTRY * PFNGLVIEWPORTSWIZZLENVPROC) (GLuint index, GLenum swizzlex, GLenum swizzley, GLenum swizzlez, GLenum swizzlew); + +#define glViewportSwizzleNV GLEW_GET_FUN(__glewViewportSwizzleNV) + +#define GLEW_NV_viewport_swizzle GLEW_GET_VAR(__GLEW_NV_viewport_swizzle) + +#endif /* GL_NV_viewport_swizzle */ + +/* ---------------------------- GL_OES_EGL_image --------------------------- */ + +#ifndef GL_OES_EGL_image +#define GL_OES_EGL_image 1 + +typedef void (GLAPIENTRY * PFNGLEGLIMAGETARGETRENDERBUFFERSTORAGEOESPROC) (GLenum target, GLeglImageOES image); +typedef void (GLAPIENTRY * PFNGLEGLIMAGETARGETTEXTURE2DOESPROC) (GLenum target, GLeglImageOES image); + +#define glEGLImageTargetRenderbufferStorageOES GLEW_GET_FUN(__glewEGLImageTargetRenderbufferStorageOES) +#define glEGLImageTargetTexture2DOES GLEW_GET_FUN(__glewEGLImageTargetTexture2DOES) + +#define GLEW_OES_EGL_image GLEW_GET_VAR(__GLEW_OES_EGL_image) + +#endif /* GL_OES_EGL_image */ + +/* ----------------------- GL_OES_EGL_image_external ----------------------- */ + +#ifndef GL_OES_EGL_image_external +#define GL_OES_EGL_image_external 1 + +#define GL_TEXTURE_EXTERNAL_OES 0x8D65 +#define GL_SAMPLER_EXTERNAL_OES 0x8D66 +#define GL_TEXTURE_BINDING_EXTERNAL_OES 0x8D67 +#define GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES 0x8D68 + +#define GLEW_OES_EGL_image_external GLEW_GET_VAR(__GLEW_OES_EGL_image_external) + +#endif /* GL_OES_EGL_image_external */ + +/* -------------------- GL_OES_EGL_image_external_essl3 -------------------- */ + +#ifndef GL_OES_EGL_image_external_essl3 +#define GL_OES_EGL_image_external_essl3 1 + +#define GLEW_OES_EGL_image_external_essl3 GLEW_GET_VAR(__GLEW_OES_EGL_image_external_essl3) + +#endif /* GL_OES_EGL_image_external_essl3 */ + +/* --------------------- GL_OES_blend_equation_separate -------------------- */ + +#ifndef GL_OES_blend_equation_separate +#define GL_OES_blend_equation_separate 1 + +#define GL_BLEND_EQUATION_RGB_OES 0x8009 +#define GL_BLEND_EQUATION_ALPHA_OES 0x883D + +typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONSEPARATEOESPROC) (GLenum modeRGB, GLenum modeAlpha); + +#define glBlendEquationSeparateOES GLEW_GET_FUN(__glewBlendEquationSeparateOES) + +#define GLEW_OES_blend_equation_separate GLEW_GET_VAR(__GLEW_OES_blend_equation_separate) + +#endif /* GL_OES_blend_equation_separate */ + +/* ----------------------- GL_OES_blend_func_separate ---------------------- */ + +#ifndef GL_OES_blend_func_separate +#define GL_OES_blend_func_separate 1 + +#define GL_BLEND_DST_RGB_OES 0x80C8 +#define GL_BLEND_SRC_RGB_OES 0x80C9 +#define GL_BLEND_DST_ALPHA_OES 0x80CA +#define GL_BLEND_SRC_ALPHA_OES 0x80CB + +typedef void (GLAPIENTRY * PFNGLBLENDFUNCSEPARATEOESPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); + +#define glBlendFuncSeparateOES GLEW_GET_FUN(__glewBlendFuncSeparateOES) + +#define GLEW_OES_blend_func_separate GLEW_GET_VAR(__GLEW_OES_blend_func_separate) + +#endif /* GL_OES_blend_func_separate */ + +/* ------------------------- GL_OES_blend_subtract ------------------------- */ + +#ifndef GL_OES_blend_subtract +#define GL_OES_blend_subtract 1 + +#define GL_FUNC_ADD_OES 0x8006 +#define GL_BLEND_EQUATION_OES 0x8009 +#define GL_FUNC_SUBTRACT_OES 0x800A +#define GL_FUNC_REVERSE_SUBTRACT_OES 0x800B + +typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONOESPROC) (GLenum mode); + +#define glBlendEquationOES GLEW_GET_FUN(__glewBlendEquationOES) + +#define GLEW_OES_blend_subtract GLEW_GET_VAR(__GLEW_OES_blend_subtract) + +#endif /* GL_OES_blend_subtract */ + /* ------------------------ GL_OES_byte_coordinates ------------------------ */ #ifndef GL_OES_byte_coordinates @@ -14985,6 +18744,17 @@ typedef void (GLAPIENTRY * PFNGLVIDEOCAPTURESTREAMPARAMETERIVNVPROC) (GLuint vid #endif /* GL_OES_byte_coordinates */ +/* ------------------ GL_OES_compressed_ETC1_RGB8_texture ------------------ */ + +#ifndef GL_OES_compressed_ETC1_RGB8_texture +#define GL_OES_compressed_ETC1_RGB8_texture 1 + +#define GL_ETC1_RGB8_OES 0x8D64 + +#define GLEW_OES_compressed_ETC1_RGB8_texture GLEW_GET_VAR(__GLEW_OES_compressed_ETC1_RGB8_texture) + +#endif /* GL_OES_compressed_ETC1_RGB8_texture */ + /* ------------------- GL_OES_compressed_paletted_texture ------------------ */ #ifndef GL_OES_compressed_paletted_texture @@ -15005,6 +18775,449 @@ typedef void (GLAPIENTRY * PFNGLVIDEOCAPTURESTREAMPARAMETERIVNVPROC) (GLuint vid #endif /* GL_OES_compressed_paletted_texture */ +/* --------------------------- GL_OES_copy_image --------------------------- */ + +#ifndef GL_OES_copy_image +#define GL_OES_copy_image 1 + +typedef void (GLAPIENTRY * PFNGLCOPYIMAGESUBDATAOESPROC) (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth); + +#define glCopyImageSubDataOES GLEW_GET_FUN(__glewCopyImageSubDataOES) + +#define GLEW_OES_copy_image GLEW_GET_VAR(__GLEW_OES_copy_image) + +#endif /* GL_OES_copy_image */ + +/* ----------------------------- GL_OES_depth24 ---------------------------- */ + +#ifndef GL_OES_depth24 +#define GL_OES_depth24 1 + +#define GL_DEPTH_COMPONENT24_OES 0x81A6 + +#define GLEW_OES_depth24 GLEW_GET_VAR(__GLEW_OES_depth24) + +#endif /* GL_OES_depth24 */ + +/* ----------------------------- GL_OES_depth32 ---------------------------- */ + +#ifndef GL_OES_depth32 +#define GL_OES_depth32 1 + +#define GL_DEPTH_COMPONENT32_OES 0x81A7 + +#define GLEW_OES_depth32 GLEW_GET_VAR(__GLEW_OES_depth32) + +#endif /* GL_OES_depth32 */ + +/* -------------------------- GL_OES_depth_texture ------------------------- */ + +#ifndef GL_OES_depth_texture +#define GL_OES_depth_texture 1 + +#define GL_UNSIGNED_SHORT 0x1403 +#define GL_UNSIGNED_INT 0x1405 +#define GL_DEPTH_COMPONENT 0x1902 + +#define GLEW_OES_depth_texture GLEW_GET_VAR(__GLEW_OES_depth_texture) + +#endif /* GL_OES_depth_texture */ + +/* --------------------- GL_OES_depth_texture_cube_map --------------------- */ + +#ifndef GL_OES_depth_texture_cube_map +#define GL_OES_depth_texture_cube_map 1 + +#define GL_UNSIGNED_SHORT 0x1403 +#define GL_UNSIGNED_INT 0x1405 +#define GL_DEPTH_COMPONENT 0x1902 +#define GL_DEPTH_STENCIL_OES 0x84F9 +#define GL_DEPTH24_STENCIL8_OES 0x88F0 + +#define GLEW_OES_depth_texture_cube_map GLEW_GET_VAR(__GLEW_OES_depth_texture_cube_map) + +#endif /* GL_OES_depth_texture_cube_map */ + +/* ---------------------- GL_OES_draw_buffers_indexed ---------------------- */ + +#ifndef GL_OES_draw_buffers_indexed +#define GL_OES_draw_buffers_indexed 1 + +typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONSEPARATEIOESPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha); +typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONIOESPROC) (GLuint buf, GLenum mode); +typedef void (GLAPIENTRY * PFNGLBLENDFUNCSEPARATEIOESPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); +typedef void (GLAPIENTRY * PFNGLBLENDFUNCIOESPROC) (GLuint buf, GLenum src, GLenum dst); +typedef void (GLAPIENTRY * PFNGLCOLORMASKIOESPROC) (GLuint buf, GLboolean r, GLboolean g, GLboolean b, GLboolean a); +typedef void (GLAPIENTRY * PFNGLDISABLEIOESPROC) (GLenum target, GLuint index); +typedef void (GLAPIENTRY * PFNGLENABLEIOESPROC) (GLenum target, GLuint index); +typedef GLboolean (GLAPIENTRY * PFNGLISENABLEDIOESPROC) (GLenum target, GLuint index); + +#define glBlendEquationSeparateiOES GLEW_GET_FUN(__glewBlendEquationSeparateiOES) +#define glBlendEquationiOES GLEW_GET_FUN(__glewBlendEquationiOES) +#define glBlendFuncSeparateiOES GLEW_GET_FUN(__glewBlendFuncSeparateiOES) +#define glBlendFunciOES GLEW_GET_FUN(__glewBlendFunciOES) +#define glColorMaskiOES GLEW_GET_FUN(__glewColorMaskiOES) +#define glDisableiOES GLEW_GET_FUN(__glewDisableiOES) +#define glEnableiOES GLEW_GET_FUN(__glewEnableiOES) +#define glIsEnablediOES GLEW_GET_FUN(__glewIsEnablediOES) + +#define GLEW_OES_draw_buffers_indexed GLEW_GET_VAR(__GLEW_OES_draw_buffers_indexed) + +#endif /* GL_OES_draw_buffers_indexed */ + +/* -------------------------- GL_OES_draw_texture -------------------------- */ + +#ifndef GL_OES_draw_texture +#define GL_OES_draw_texture 1 + +#define GL_TEXTURE_CROP_RECT_OES 0x8B9D + +#define GLEW_OES_draw_texture GLEW_GET_VAR(__GLEW_OES_draw_texture) + +#endif /* GL_OES_draw_texture */ + +/* ----------------------- GL_OES_element_index_uint ----------------------- */ + +#ifndef GL_OES_element_index_uint +#define GL_OES_element_index_uint 1 + +#define GL_UNSIGNED_INT 0x1405 + +#define GLEW_OES_element_index_uint GLEW_GET_VAR(__GLEW_OES_element_index_uint) + +#endif /* GL_OES_element_index_uint */ + +/* --------------------- GL_OES_extended_matrix_palette -------------------- */ + +#ifndef GL_OES_extended_matrix_palette +#define GL_OES_extended_matrix_palette 1 + +#define GLEW_OES_extended_matrix_palette GLEW_GET_VAR(__GLEW_OES_extended_matrix_palette) + +#endif /* GL_OES_extended_matrix_palette */ + +/* ------------------------ GL_OES_fbo_render_mipmap ----------------------- */ + +#ifndef GL_OES_fbo_render_mipmap +#define GL_OES_fbo_render_mipmap 1 + +#define GLEW_OES_fbo_render_mipmap GLEW_GET_VAR(__GLEW_OES_fbo_render_mipmap) + +#endif /* GL_OES_fbo_render_mipmap */ + +/* --------------------- GL_OES_fragment_precision_high -------------------- */ + +#ifndef GL_OES_fragment_precision_high +#define GL_OES_fragment_precision_high 1 + +#define GLEW_OES_fragment_precision_high GLEW_GET_VAR(__GLEW_OES_fragment_precision_high) + +#endif /* GL_OES_fragment_precision_high */ + +/* ----------------------- GL_OES_framebuffer_object ----------------------- */ + +#ifndef GL_OES_framebuffer_object +#define GL_OES_framebuffer_object 1 + +#define GL_NONE_OES 0 +#define GL_INVALID_FRAMEBUFFER_OPERATION_OES 0x0506 +#define GL_RGBA4_OES 0x8056 +#define GL_RGB5_A1_OES 0x8057 +#define GL_DEPTH_COMPONENT16_OES 0x81A5 +#define GL_MAX_RENDERBUFFER_SIZE_OES 0x84E8 +#define GL_FRAMEBUFFER_BINDING_OES 0x8CA6 +#define GL_RENDERBUFFER_BINDING_OES 0x8CA7 +#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES 0x8CD0 +#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES 0x8CD1 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_OES 0x8CD2 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_OES 0x8CD3 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES 0x8CD4 +#define GL_FRAMEBUFFER_COMPLETE_OES 0x8CD5 +#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_OES 0x8CD6 +#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_OES 0x8CD7 +#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_OES 0x8CD9 +#define GL_FRAMEBUFFER_INCOMPLETE_FORMATS_OES 0x8CDA +#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_OES 0x8CDB +#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_OES 0x8CDC +#define GL_FRAMEBUFFER_UNSUPPORTED_OES 0x8CDD +#define GL_COLOR_ATTACHMENT0_OES 0x8CE0 +#define GL_DEPTH_ATTACHMENT_OES 0x8D00 +#define GL_STENCIL_ATTACHMENT_OES 0x8D20 +#define GL_FRAMEBUFFER_OES 0x8D40 +#define GL_RENDERBUFFER_OES 0x8D41 +#define GL_RENDERBUFFER_WIDTH_OES 0x8D42 +#define GL_RENDERBUFFER_HEIGHT_OES 0x8D43 +#define GL_RENDERBUFFER_INTERNAL_FORMAT_OES 0x8D44 +#define GL_STENCIL_INDEX1_OES 0x8D46 +#define GL_STENCIL_INDEX4_OES 0x8D47 +#define GL_STENCIL_INDEX8_OES 0x8D48 +#define GL_RENDERBUFFER_RED_SIZE_OES 0x8D50 +#define GL_RENDERBUFFER_GREEN_SIZE_OES 0x8D51 +#define GL_RENDERBUFFER_BLUE_SIZE_OES 0x8D52 +#define GL_RENDERBUFFER_ALPHA_SIZE_OES 0x8D53 +#define GL_RENDERBUFFER_DEPTH_SIZE_OES 0x8D54 +#define GL_RENDERBUFFER_STENCIL_SIZE_OES 0x8D55 +#define GL_RGB565_OES 0x8D62 + +typedef void (GLAPIENTRY * PFNGLBINDFRAMEBUFFEROESPROC) (GLenum target, GLuint framebuffer); +typedef void (GLAPIENTRY * PFNGLBINDRENDERBUFFEROESPROC) (GLenum target, GLuint renderbuffer); +typedef GLenum (GLAPIENTRY * PFNGLCHECKFRAMEBUFFERSTATUSOESPROC) (GLenum target); +typedef void (GLAPIENTRY * PFNGLDELETEFRAMEBUFFERSOESPROC) (GLsizei n, const GLuint* framebuffers); +typedef void (GLAPIENTRY * PFNGLDELETERENDERBUFFERSOESPROC) (GLsizei n, const GLuint* renderbuffers); +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERRENDERBUFFEROESPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURE2DOESPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +typedef void (GLAPIENTRY * PFNGLGENFRAMEBUFFERSOESPROC) (GLsizei n, GLuint* framebuffers); +typedef void (GLAPIENTRY * PFNGLGENRENDERBUFFERSOESPROC) (GLsizei n, GLuint* renderbuffers); +typedef void (GLAPIENTRY * PFNGLGENERATEMIPMAPOESPROC) (GLenum target); +typedef void (GLAPIENTRY * PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVOESPROC) (GLenum target, GLenum attachment, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETRENDERBUFFERPARAMETERIVOESPROC) (GLenum target, GLenum pname, GLint* params); +typedef GLboolean (GLAPIENTRY * PFNGLISFRAMEBUFFEROESPROC) (GLuint framebuffer); +typedef GLboolean (GLAPIENTRY * PFNGLISRENDERBUFFEROESPROC) (GLuint renderbuffer); +typedef void (GLAPIENTRY * PFNGLRENDERBUFFERSTORAGEOESPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); + +#define glBindFramebufferOES GLEW_GET_FUN(__glewBindFramebufferOES) +#define glBindRenderbufferOES GLEW_GET_FUN(__glewBindRenderbufferOES) +#define glCheckFramebufferStatusOES GLEW_GET_FUN(__glewCheckFramebufferStatusOES) +#define glDeleteFramebuffersOES GLEW_GET_FUN(__glewDeleteFramebuffersOES) +#define glDeleteRenderbuffersOES GLEW_GET_FUN(__glewDeleteRenderbuffersOES) +#define glFramebufferRenderbufferOES GLEW_GET_FUN(__glewFramebufferRenderbufferOES) +#define glFramebufferTexture2DOES GLEW_GET_FUN(__glewFramebufferTexture2DOES) +#define glGenFramebuffersOES GLEW_GET_FUN(__glewGenFramebuffersOES) +#define glGenRenderbuffersOES GLEW_GET_FUN(__glewGenRenderbuffersOES) +#define glGenerateMipmapOES GLEW_GET_FUN(__glewGenerateMipmapOES) +#define glGetFramebufferAttachmentParameterivOES GLEW_GET_FUN(__glewGetFramebufferAttachmentParameterivOES) +#define glGetRenderbufferParameterivOES GLEW_GET_FUN(__glewGetRenderbufferParameterivOES) +#define glIsFramebufferOES GLEW_GET_FUN(__glewIsFramebufferOES) +#define glIsRenderbufferOES GLEW_GET_FUN(__glewIsRenderbufferOES) +#define glRenderbufferStorageOES GLEW_GET_FUN(__glewRenderbufferStorageOES) + +#define GLEW_OES_framebuffer_object GLEW_GET_VAR(__GLEW_OES_framebuffer_object) + +#endif /* GL_OES_framebuffer_object */ + +/* ----------------------- GL_OES_geometry_point_size ---------------------- */ + +#ifndef GL_OES_geometry_point_size +#define GL_OES_geometry_point_size 1 + +#define GL_GEOMETRY_SHADER_BIT_OES 0x00000004 +#define GL_LINES_ADJACENCY_OES 0xA +#define GL_LINE_STRIP_ADJACENCY_OES 0xB +#define GL_TRIANGLES_ADJACENCY_OES 0xC +#define GL_TRIANGLE_STRIP_ADJACENCY_OES 0xD +#define GL_LAYER_PROVOKING_VERTEX_OES 0x825E +#define GL_UNDEFINED_VERTEX_OES 0x8260 +#define GL_GEOMETRY_SHADER_INVOCATIONS_OES 0x887F +#define GL_GEOMETRY_LINKED_VERTICES_OUT_OES 0x8916 +#define GL_GEOMETRY_LINKED_INPUT_TYPE_OES 0x8917 +#define GL_GEOMETRY_LINKED_OUTPUT_TYPE_OES 0x8918 +#define GL_MAX_GEOMETRY_UNIFORM_BLOCKS_OES 0x8A2C +#define GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS_OES 0x8A32 +#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_OES 0x8C29 +#define GL_PRIMITIVES_GENERATED_OES 0x8C87 +#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_OES 0x8DA7 +#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_OES 0x8DA8 +#define GL_GEOMETRY_SHADER_OES 0x8DD9 +#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_OES 0x8DDF +#define GL_MAX_GEOMETRY_OUTPUT_VERTICES_OES 0x8DE0 +#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_OES 0x8DE1 +#define GL_FIRST_VERTEX_CONVENTION_OES 0x8E4D +#define GL_LAST_VERTEX_CONVENTION_OES 0x8E4E +#define GL_MAX_GEOMETRY_SHADER_INVOCATIONS_OES 0x8E5A +#define GL_MAX_GEOMETRY_IMAGE_UNIFORMS_OES 0x90CD +#define GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS_OES 0x90D7 +#define GL_MAX_GEOMETRY_INPUT_COMPONENTS_OES 0x9123 +#define GL_MAX_GEOMETRY_OUTPUT_COMPONENTS_OES 0x9124 +#define GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS_OES 0x92CF +#define GL_MAX_GEOMETRY_ATOMIC_COUNTERS_OES 0x92D5 +#define GL_REFERENCED_BY_GEOMETRY_SHADER_OES 0x9309 +#define GL_FRAMEBUFFER_DEFAULT_LAYERS_OES 0x9312 +#define GL_MAX_FRAMEBUFFER_LAYERS_OES 0x9317 + +#define GLEW_OES_geometry_point_size GLEW_GET_VAR(__GLEW_OES_geometry_point_size) + +#endif /* GL_OES_geometry_point_size */ + +/* ------------------------- GL_OES_geometry_shader ------------------------ */ + +#ifndef GL_OES_geometry_shader +#define GL_OES_geometry_shader 1 + +#define GL_GEOMETRY_SHADER_BIT_OES 0x00000004 +#define GL_LINES_ADJACENCY_OES 0xA +#define GL_LINE_STRIP_ADJACENCY_OES 0xB +#define GL_TRIANGLES_ADJACENCY_OES 0xC +#define GL_TRIANGLE_STRIP_ADJACENCY_OES 0xD +#define GL_LAYER_PROVOKING_VERTEX_OES 0x825E +#define GL_UNDEFINED_VERTEX_OES 0x8260 +#define GL_GEOMETRY_SHADER_INVOCATIONS_OES 0x887F +#define GL_GEOMETRY_LINKED_VERTICES_OUT_OES 0x8916 +#define GL_GEOMETRY_LINKED_INPUT_TYPE_OES 0x8917 +#define GL_GEOMETRY_LINKED_OUTPUT_TYPE_OES 0x8918 +#define GL_MAX_GEOMETRY_UNIFORM_BLOCKS_OES 0x8A2C +#define GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS_OES 0x8A32 +#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_OES 0x8C29 +#define GL_PRIMITIVES_GENERATED_OES 0x8C87 +#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_OES 0x8DA7 +#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_OES 0x8DA8 +#define GL_GEOMETRY_SHADER_OES 0x8DD9 +#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_OES 0x8DDF +#define GL_MAX_GEOMETRY_OUTPUT_VERTICES_OES 0x8DE0 +#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_OES 0x8DE1 +#define GL_FIRST_VERTEX_CONVENTION_OES 0x8E4D +#define GL_LAST_VERTEX_CONVENTION_OES 0x8E4E +#define GL_MAX_GEOMETRY_SHADER_INVOCATIONS_OES 0x8E5A +#define GL_MAX_GEOMETRY_IMAGE_UNIFORMS_OES 0x90CD +#define GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS_OES 0x90D7 +#define GL_MAX_GEOMETRY_INPUT_COMPONENTS_OES 0x9123 +#define GL_MAX_GEOMETRY_OUTPUT_COMPONENTS_OES 0x9124 +#define GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS_OES 0x92CF +#define GL_MAX_GEOMETRY_ATOMIC_COUNTERS_OES 0x92D5 +#define GL_REFERENCED_BY_GEOMETRY_SHADER_OES 0x9309 +#define GL_FRAMEBUFFER_DEFAULT_LAYERS_OES 0x9312 +#define GL_MAX_FRAMEBUFFER_LAYERS_OES 0x9317 + +#define GLEW_OES_geometry_shader GLEW_GET_VAR(__GLEW_OES_geometry_shader) + +#endif /* GL_OES_geometry_shader */ + +/* ----------------------- GL_OES_get_program_binary ----------------------- */ + +#ifndef GL_OES_get_program_binary +#define GL_OES_get_program_binary 1 + +#define GL_PROGRAM_BINARY_LENGTH_OES 0x8741 +#define GL_NUM_PROGRAM_BINARY_FORMATS_OES 0x87FE +#define GL_PROGRAM_BINARY_FORMATS_OES 0x87FF + +typedef void (GLAPIENTRY * PFNGLGETPROGRAMBINARYOESPROC) (GLuint program, GLsizei bufSize, GLsizei* length, GLenum *binaryFormat, void*binary); +typedef void (GLAPIENTRY * PFNGLPROGRAMBINARYOESPROC) (GLuint program, GLenum binaryFormat, const void *binary, GLint length); + +#define glGetProgramBinaryOES GLEW_GET_FUN(__glewGetProgramBinaryOES) +#define glProgramBinaryOES GLEW_GET_FUN(__glewProgramBinaryOES) + +#define GLEW_OES_get_program_binary GLEW_GET_VAR(__GLEW_OES_get_program_binary) + +#endif /* GL_OES_get_program_binary */ + +/* --------------------------- GL_OES_gpu_shader5 -------------------------- */ + +#ifndef GL_OES_gpu_shader5 +#define GL_OES_gpu_shader5 1 + +#define GLEW_OES_gpu_shader5 GLEW_GET_VAR(__GLEW_OES_gpu_shader5) + +#endif /* GL_OES_gpu_shader5 */ + +/* ---------------------------- GL_OES_mapbuffer --------------------------- */ + +#ifndef GL_OES_mapbuffer +#define GL_OES_mapbuffer 1 + +#define GL_WRITE_ONLY_OES 0x88B9 +#define GL_BUFFER_ACCESS_OES 0x88BB +#define GL_BUFFER_MAPPED_OES 0x88BC +#define GL_BUFFER_MAP_POINTER_OES 0x88BD + +typedef void (GLAPIENTRY * PFNGLGETBUFFERPOINTERVOESPROC) (GLenum target, GLenum pname, void** params); +typedef void * (GLAPIENTRY * PFNGLMAPBUFFEROESPROC) (GLenum target, GLenum access); +typedef GLboolean (GLAPIENTRY * PFNGLUNMAPBUFFEROESPROC) (GLenum target); + +#define glGetBufferPointervOES GLEW_GET_FUN(__glewGetBufferPointervOES) +#define glMapBufferOES GLEW_GET_FUN(__glewMapBufferOES) +#define glUnmapBufferOES GLEW_GET_FUN(__glewUnmapBufferOES) + +#define GLEW_OES_mapbuffer GLEW_GET_VAR(__GLEW_OES_mapbuffer) + +#endif /* GL_OES_mapbuffer */ + +/* --------------------------- GL_OES_matrix_get --------------------------- */ + +#ifndef GL_OES_matrix_get +#define GL_OES_matrix_get 1 + +#define GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES 0x898d +#define GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES 0x898e +#define GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES 0x898f + +#define GLEW_OES_matrix_get GLEW_GET_VAR(__GLEW_OES_matrix_get) + +#endif /* GL_OES_matrix_get */ + +/* ------------------------- GL_OES_matrix_palette ------------------------- */ + +#ifndef GL_OES_matrix_palette +#define GL_OES_matrix_palette 1 + +#define GL_MAX_VERTEX_UNITS_OES 0x86A4 +#define GL_WEIGHT_ARRAY_TYPE_OES 0x86A9 +#define GL_WEIGHT_ARRAY_STRIDE_OES 0x86AA +#define GL_WEIGHT_ARRAY_SIZE_OES 0x86AB +#define GL_WEIGHT_ARRAY_POINTER_OES 0x86AC +#define GL_WEIGHT_ARRAY_OES 0x86AD +#define GL_MATRIX_PALETTE_OES 0x8840 +#define GL_MAX_PALETTE_MATRICES_OES 0x8842 +#define GL_CURRENT_PALETTE_MATRIX_OES 0x8843 +#define GL_MATRIX_INDEX_ARRAY_OES 0x8844 +#define GL_MATRIX_INDEX_ARRAY_SIZE_OES 0x8846 +#define GL_MATRIX_INDEX_ARRAY_TYPE_OES 0x8847 +#define GL_MATRIX_INDEX_ARRAY_STRIDE_OES 0x8848 +#define GL_MATRIX_INDEX_ARRAY_POINTER_OES 0x8849 +#define GL_WEIGHT_ARRAY_BUFFER_BINDING_OES 0x889E +#define GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES 0x8B9E + +typedef void (GLAPIENTRY * PFNGLCURRENTPALETTEMATRIXOESPROC) (GLuint index); +typedef void (GLAPIENTRY * PFNGLMATRIXINDEXPOINTEROESPROC) (GLint size, GLenum type, GLsizei stride, void *pointer); +typedef void (GLAPIENTRY * PFNGLWEIGHTPOINTEROESPROC) (GLint size, GLenum type, GLsizei stride, void *pointer); + +#define glCurrentPaletteMatrixOES GLEW_GET_FUN(__glewCurrentPaletteMatrixOES) +#define glMatrixIndexPointerOES GLEW_GET_FUN(__glewMatrixIndexPointerOES) +#define glWeightPointerOES GLEW_GET_FUN(__glewWeightPointerOES) + +#define GLEW_OES_matrix_palette GLEW_GET_VAR(__GLEW_OES_matrix_palette) + +#endif /* GL_OES_matrix_palette */ + +/* ---------------------- GL_OES_packed_depth_stencil ---------------------- */ + +#ifndef GL_OES_packed_depth_stencil +#define GL_OES_packed_depth_stencil 1 + +#define GL_DEPTH_STENCIL_OES 0x84F9 +#define GL_UNSIGNED_INT_24_8_OES 0x84FA +#define GL_DEPTH24_STENCIL8_OES 0x88F0 + +#define GLEW_OES_packed_depth_stencil GLEW_GET_VAR(__GLEW_OES_packed_depth_stencil) + +#endif /* GL_OES_packed_depth_stencil */ + +/* ------------------------ GL_OES_point_size_array ------------------------ */ + +#ifndef GL_OES_point_size_array +#define GL_OES_point_size_array 1 + +#define GL_POINT_SIZE_ARRAY_TYPE_OES 0x898A +#define GL_POINT_SIZE_ARRAY_STRIDE_OES 0x898B +#define GL_POINT_SIZE_ARRAY_POINTER_OES 0x898C +#define GL_POINT_SIZE_ARRAY_OES 0x8B9C +#define GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES 0x8B9F + +#define GLEW_OES_point_size_array GLEW_GET_VAR(__GLEW_OES_point_size_array) + +#endif /* GL_OES_point_size_array */ + +/* -------------------------- GL_OES_point_sprite -------------------------- */ + +#ifndef GL_OES_point_sprite +#define GL_OES_point_sprite 1 + +#define GL_POINT_SPRITE_OES 0x8861 +#define GL_COORD_REPLACE_OES 0x8862 + +#define GLEW_OES_point_sprite GLEW_GET_VAR(__GLEW_OES_point_sprite) + +#endif /* GL_OES_point_sprite */ + /* --------------------------- GL_OES_read_format -------------------------- */ #ifndef GL_OES_read_format @@ -15017,6 +19230,99 @@ typedef void (GLAPIENTRY * PFNGLVIDEOCAPTURESTREAMPARAMETERIVNVPROC) (GLuint vid #endif /* GL_OES_read_format */ +/* --------------------- GL_OES_required_internalformat -------------------- */ + +#ifndef GL_OES_required_internalformat +#define GL_OES_required_internalformat 1 + +#define GL_ALPHA8_OES 0x803C +#define GL_LUMINANCE8_OES 0x8040 +#define GL_LUMINANCE4_ALPHA4_OES 0x8043 +#define GL_LUMINANCE8_ALPHA8_OES 0x8045 +#define GL_RGB8_OES 0x8051 +#define GL_RGB10_EXT 0x8052 +#define GL_RGBA4_OES 0x8056 +#define GL_RGB5_A1_OES 0x8057 +#define GL_RGBA8_OES 0x8058 +#define GL_RGB10_A2_EXT 0x8059 +#define GL_DEPTH_COMPONENT16_OES 0x81A5 +#define GL_DEPTH_COMPONENT24_OES 0x81A6 +#define GL_DEPTH_COMPONENT32_OES 0x81A7 +#define GL_DEPTH24_STENCIL8_OES 0x88F0 +#define GL_RGB565_OES 0x8D62 + +#define GLEW_OES_required_internalformat GLEW_GET_VAR(__GLEW_OES_required_internalformat) + +#endif /* GL_OES_required_internalformat */ + +/* --------------------------- GL_OES_rgb8_rgba8 --------------------------- */ + +#ifndef GL_OES_rgb8_rgba8 +#define GL_OES_rgb8_rgba8 1 + +#define GL_RGB8_OES 0x8051 +#define GL_RGBA8_OES 0x8058 + +#define GLEW_OES_rgb8_rgba8 GLEW_GET_VAR(__GLEW_OES_rgb8_rgba8) + +#endif /* GL_OES_rgb8_rgba8 */ + +/* ------------------------- GL_OES_sample_shading ------------------------- */ + +#ifndef GL_OES_sample_shading +#define GL_OES_sample_shading 1 + +#define GL_SAMPLE_SHADING_OES 0x8C36 +#define GL_MIN_SAMPLE_SHADING_VALUE_OES 0x8C37 + +typedef void (GLAPIENTRY * PFNGLMINSAMPLESHADINGOESPROC) (GLfloat value); + +#define glMinSampleShadingOES GLEW_GET_FUN(__glewMinSampleShadingOES) + +#define GLEW_OES_sample_shading GLEW_GET_VAR(__GLEW_OES_sample_shading) + +#endif /* GL_OES_sample_shading */ + +/* ------------------------ GL_OES_sample_variables ------------------------ */ + +#ifndef GL_OES_sample_variables +#define GL_OES_sample_variables 1 + +#define GLEW_OES_sample_variables GLEW_GET_VAR(__GLEW_OES_sample_variables) + +#endif /* GL_OES_sample_variables */ + +/* ----------------------- GL_OES_shader_image_atomic ---------------------- */ + +#ifndef GL_OES_shader_image_atomic +#define GL_OES_shader_image_atomic 1 + +#define GLEW_OES_shader_image_atomic GLEW_GET_VAR(__GLEW_OES_shader_image_atomic) + +#endif /* GL_OES_shader_image_atomic */ + +/* ------------------------ GL_OES_shader_io_blocks ------------------------ */ + +#ifndef GL_OES_shader_io_blocks +#define GL_OES_shader_io_blocks 1 + +#define GLEW_OES_shader_io_blocks GLEW_GET_VAR(__GLEW_OES_shader_io_blocks) + +#endif /* GL_OES_shader_io_blocks */ + +/* ---------------- GL_OES_shader_multisample_interpolation ---------------- */ + +#ifndef GL_OES_shader_multisample_interpolation +#define GL_OES_shader_multisample_interpolation 1 + +#define GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_OES 0x8E5B +#define GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_OES 0x8E5C +#define GL_FRAGMENT_INTERPOLATION_OFFSET_BITS_OES 0x8E5D + +#define GLEW_OES_shader_multisample_interpolation GLEW_GET_VAR(__GLEW_OES_shader_multisample_interpolation) + +#endif /* GL_OES_shader_multisample_interpolation */ + /* ------------------------ GL_OES_single_precision ------------------------ */ #ifndef GL_OES_single_precision @@ -15040,6 +19346,498 @@ typedef void (GLAPIENTRY * PFNGLORTHOFOESPROC) (GLfloat l, GLfloat r, GLfloat b, #endif /* GL_OES_single_precision */ +/* ---------------------- GL_OES_standard_derivatives ---------------------- */ + +#ifndef GL_OES_standard_derivatives +#define GL_OES_standard_derivatives 1 + +#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES 0x8B8B + +#define GLEW_OES_standard_derivatives GLEW_GET_VAR(__GLEW_OES_standard_derivatives) + +#endif /* GL_OES_standard_derivatives */ + +/* ---------------------------- GL_OES_stencil1 ---------------------------- */ + +#ifndef GL_OES_stencil1 +#define GL_OES_stencil1 1 + +#define GL_STENCIL_INDEX1_OES 0x8D46 + +#define GLEW_OES_stencil1 GLEW_GET_VAR(__GLEW_OES_stencil1) + +#endif /* GL_OES_stencil1 */ + +/* ---------------------------- GL_OES_stencil4 ---------------------------- */ + +#ifndef GL_OES_stencil4 +#define GL_OES_stencil4 1 + +#define GL_STENCIL_INDEX4_OES 0x8D47 + +#define GLEW_OES_stencil4 GLEW_GET_VAR(__GLEW_OES_stencil4) + +#endif /* GL_OES_stencil4 */ + +/* ---------------------------- GL_OES_stencil8 ---------------------------- */ + +#ifndef GL_OES_stencil8 +#define GL_OES_stencil8 1 + +#define GL_STENCIL_INDEX8_OES 0x8D48 + +#define GLEW_OES_stencil8 GLEW_GET_VAR(__GLEW_OES_stencil8) + +#endif /* GL_OES_stencil8 */ + +/* ----------------------- GL_OES_surfaceless_context ---------------------- */ + +#ifndef GL_OES_surfaceless_context +#define GL_OES_surfaceless_context 1 + +#define GL_FRAMEBUFFER_UNDEFINED_OES 0x8219 + +#define GLEW_OES_surfaceless_context GLEW_GET_VAR(__GLEW_OES_surfaceless_context) + +#endif /* GL_OES_surfaceless_context */ + +/* --------------------- GL_OES_tessellation_point_size -------------------- */ + +#ifndef GL_OES_tessellation_point_size +#define GL_OES_tessellation_point_size 1 + +#define GL_QUADS_OES 0x0007 +#define GL_TESS_CONTROL_SHADER_BIT_OES 0x00000008 +#define GL_PATCHES_OES 0xE +#define GL_TESS_EVALUATION_SHADER_BIT_OES 0x00000010 +#define GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED_OES 0x8221 +#define GL_MAX_TESS_CONTROL_INPUT_COMPONENTS_OES 0x886C +#define GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS_OES 0x886D +#define GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS_OES 0x8E1E +#define GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS_OES 0x8E1F +#define GL_PATCH_VERTICES_OES 0x8E72 +#define GL_TESS_CONTROL_OUTPUT_VERTICES_OES 0x8E75 +#define GL_TESS_GEN_MODE_OES 0x8E76 +#define GL_TESS_GEN_SPACING_OES 0x8E77 +#define GL_TESS_GEN_VERTEX_ORDER_OES 0x8E78 +#define GL_TESS_GEN_POINT_MODE_OES 0x8E79 +#define GL_ISOLINES_OES 0x8E7A +#define GL_FRACTIONAL_ODD_OES 0x8E7B +#define GL_FRACTIONAL_EVEN_OES 0x8E7C +#define GL_MAX_PATCH_VERTICES_OES 0x8E7D +#define GL_MAX_TESS_GEN_LEVEL_OES 0x8E7E +#define GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS_OES 0x8E7F +#define GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS_OES 0x8E80 +#define GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS_OES 0x8E81 +#define GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS_OES 0x8E82 +#define GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS_OES 0x8E83 +#define GL_MAX_TESS_PATCH_COMPONENTS_OES 0x8E84 +#define GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS_OES 0x8E85 +#define GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS_OES 0x8E86 +#define GL_TESS_EVALUATION_SHADER_OES 0x8E87 +#define GL_TESS_CONTROL_SHADER_OES 0x8E88 +#define GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS_OES 0x8E89 +#define GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS_OES 0x8E8A +#define GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS_OES 0x90CB +#define GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS_OES 0x90CC +#define GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS_OES 0x90D8 +#define GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS_OES 0x90D9 +#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS_OES 0x92CD +#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS_OES 0x92CE +#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS_OES 0x92D3 +#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS_OES 0x92D4 +#define GL_IS_PER_PATCH_OES 0x92E7 +#define GL_REFERENCED_BY_TESS_CONTROL_SHADER_OES 0x9307 +#define GL_REFERENCED_BY_TESS_EVALUATION_SHADER_OES 0x9308 + +#define GLEW_OES_tessellation_point_size GLEW_GET_VAR(__GLEW_OES_tessellation_point_size) + +#endif /* GL_OES_tessellation_point_size */ + +/* ----------------------- GL_OES_tessellation_shader ---------------------- */ + +#ifndef GL_OES_tessellation_shader +#define GL_OES_tessellation_shader 1 + +#define GL_QUADS_OES 0x0007 +#define GL_TESS_CONTROL_SHADER_BIT_OES 0x00000008 +#define GL_PATCHES_OES 0xE +#define GL_TESS_EVALUATION_SHADER_BIT_OES 0x00000010 +#define GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED_OES 0x8221 +#define GL_MAX_TESS_CONTROL_INPUT_COMPONENTS_OES 0x886C +#define GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS_OES 0x886D +#define GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS_OES 0x8E1E +#define GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS_OES 0x8E1F +#define GL_PATCH_VERTICES_OES 0x8E72 +#define GL_TESS_CONTROL_OUTPUT_VERTICES_OES 0x8E75 +#define GL_TESS_GEN_MODE_OES 0x8E76 +#define GL_TESS_GEN_SPACING_OES 0x8E77 +#define GL_TESS_GEN_VERTEX_ORDER_OES 0x8E78 +#define GL_TESS_GEN_POINT_MODE_OES 0x8E79 +#define GL_ISOLINES_OES 0x8E7A +#define GL_FRACTIONAL_ODD_OES 0x8E7B +#define GL_FRACTIONAL_EVEN_OES 0x8E7C +#define GL_MAX_PATCH_VERTICES_OES 0x8E7D +#define GL_MAX_TESS_GEN_LEVEL_OES 0x8E7E +#define GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS_OES 0x8E7F +#define GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS_OES 0x8E80 +#define GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS_OES 0x8E81 +#define GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS_OES 0x8E82 +#define GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS_OES 0x8E83 +#define GL_MAX_TESS_PATCH_COMPONENTS_OES 0x8E84 +#define GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS_OES 0x8E85 +#define GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS_OES 0x8E86 +#define GL_TESS_EVALUATION_SHADER_OES 0x8E87 +#define GL_TESS_CONTROL_SHADER_OES 0x8E88 +#define GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS_OES 0x8E89 +#define GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS_OES 0x8E8A +#define GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS_OES 0x90CB +#define GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS_OES 0x90CC +#define GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS_OES 0x90D8 +#define GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS_OES 0x90D9 +#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS_OES 0x92CD +#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS_OES 0x92CE +#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS_OES 0x92D3 +#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS_OES 0x92D4 +#define GL_IS_PER_PATCH_OES 0x92E7 +#define GL_REFERENCED_BY_TESS_CONTROL_SHADER_OES 0x9307 +#define GL_REFERENCED_BY_TESS_EVALUATION_SHADER_OES 0x9308 + +#define GLEW_OES_tessellation_shader GLEW_GET_VAR(__GLEW_OES_tessellation_shader) + +#endif /* GL_OES_tessellation_shader */ + +/* --------------------------- GL_OES_texture_3D --------------------------- */ + +#ifndef GL_OES_texture_3D +#define GL_OES_texture_3D 1 + +#define GL_TEXTURE_BINDING_3D_OES 0x806A +#define GL_TEXTURE_3D_OES 0x806F +#define GL_TEXTURE_WRAP_R_OES 0x8072 +#define GL_MAX_3D_TEXTURE_SIZE_OES 0x8073 + +typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXIMAGE3DOESPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data); +typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE3DOESPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data); +typedef void (GLAPIENTRY * PFNGLCOPYTEXSUBIMAGE3DOESPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURE3DOESPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); +typedef void (GLAPIENTRY * PFNGLTEXIMAGE3DOESPROC) (GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); +typedef void (GLAPIENTRY * PFNGLTEXSUBIMAGE3DOESPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); + +#define glCompressedTexImage3DOES GLEW_GET_FUN(__glewCompressedTexImage3DOES) +#define glCompressedTexSubImage3DOES GLEW_GET_FUN(__glewCompressedTexSubImage3DOES) +#define glCopyTexSubImage3DOES GLEW_GET_FUN(__glewCopyTexSubImage3DOES) +#define glFramebufferTexture3DOES GLEW_GET_FUN(__glewFramebufferTexture3DOES) +#define glTexImage3DOES GLEW_GET_FUN(__glewTexImage3DOES) +#define glTexSubImage3DOES GLEW_GET_FUN(__glewTexSubImage3DOES) + +#define GLEW_OES_texture_3D GLEW_GET_VAR(__GLEW_OES_texture_3D) + +#endif /* GL_OES_texture_3D */ + +/* ---------------------- GL_OES_texture_border_clamp ---------------------- */ + +#ifndef GL_OES_texture_border_clamp +#define GL_OES_texture_border_clamp 1 + +#define GL_TEXTURE_BORDER_COLOR_OES 0x1004 +#define GL_CLAMP_TO_BORDER_OES 0x812D + +typedef void (GLAPIENTRY * PFNGLGETSAMPLERPARAMETERIIVOESPROC) (GLuint sampler, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETSAMPLERPARAMETERIUIVOESPROC) (GLuint sampler, GLenum pname, GLuint* params); +typedef void (GLAPIENTRY * PFNGLGETTEXPARAMETERIIVOESPROC) (GLenum target, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETTEXPARAMETERIUIVOESPROC) (GLenum target, GLenum pname, GLuint* params); +typedef void (GLAPIENTRY * PFNGLSAMPLERPARAMETERIIVOESPROC) (GLuint sampler, GLenum pname, const GLint* params); +typedef void (GLAPIENTRY * PFNGLSAMPLERPARAMETERIUIVOESPROC) (GLuint sampler, GLenum pname, const GLuint* params); +typedef void (GLAPIENTRY * PFNGLTEXPARAMETERIIVOESPROC) (GLenum target, GLenum pname, const GLint* params); +typedef void (GLAPIENTRY * PFNGLTEXPARAMETERIUIVOESPROC) (GLenum target, GLenum pname, const GLuint* params); + +#define glGetSamplerParameterIivOES GLEW_GET_FUN(__glewGetSamplerParameterIivOES) +#define glGetSamplerParameterIuivOES GLEW_GET_FUN(__glewGetSamplerParameterIuivOES) +#define glGetTexParameterIivOES GLEW_GET_FUN(__glewGetTexParameterIivOES) +#define glGetTexParameterIuivOES GLEW_GET_FUN(__glewGetTexParameterIuivOES) +#define glSamplerParameterIivOES GLEW_GET_FUN(__glewSamplerParameterIivOES) +#define glSamplerParameterIuivOES GLEW_GET_FUN(__glewSamplerParameterIuivOES) +#define glTexParameterIivOES GLEW_GET_FUN(__glewTexParameterIivOES) +#define glTexParameterIuivOES GLEW_GET_FUN(__glewTexParameterIuivOES) + +#define GLEW_OES_texture_border_clamp GLEW_GET_VAR(__GLEW_OES_texture_border_clamp) + +#endif /* GL_OES_texture_border_clamp */ + +/* ------------------------- GL_OES_texture_buffer ------------------------- */ + +#ifndef GL_OES_texture_buffer +#define GL_OES_texture_buffer 1 + +#define GL_TEXTURE_BUFFER_BINDING_OES 0x8C2A +#define GL_TEXTURE_BUFFER_OES 0x8C2A +#define GL_MAX_TEXTURE_BUFFER_SIZE_OES 0x8C2B +#define GL_TEXTURE_BINDING_BUFFER_OES 0x8C2C +#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING_OES 0x8C2D +#define GL_SAMPLER_BUFFER_OES 0x8DC2 +#define GL_INT_SAMPLER_BUFFER_OES 0x8DD0 +#define GL_UNSIGNED_INT_SAMPLER_BUFFER_OES 0x8DD8 +#define GL_IMAGE_BUFFER_OES 0x9051 +#define GL_INT_IMAGE_BUFFER_OES 0x905C +#define GL_UNSIGNED_INT_IMAGE_BUFFER_OES 0x9067 +#define GL_TEXTURE_BUFFER_OFFSET_OES 0x919D +#define GL_TEXTURE_BUFFER_SIZE_OES 0x919E +#define GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT_OES 0x919F + +typedef void (GLAPIENTRY * PFNGLTEXBUFFEROESPROC) (GLenum target, GLenum internalformat, GLuint buffer); +typedef void (GLAPIENTRY * PFNGLTEXBUFFERRANGEOESPROC) (GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); + +#define glTexBufferOES GLEW_GET_FUN(__glewTexBufferOES) +#define glTexBufferRangeOES GLEW_GET_FUN(__glewTexBufferRangeOES) + +#define GLEW_OES_texture_buffer GLEW_GET_VAR(__GLEW_OES_texture_buffer) + +#endif /* GL_OES_texture_buffer */ + +/* -------------------- GL_OES_texture_compression_astc -------------------- */ + +#ifndef GL_OES_texture_compression_astc +#define GL_OES_texture_compression_astc 1 + +#define GL_COMPRESSED_RGBA_ASTC_4x4_KHR 0x93B0 +#define GL_COMPRESSED_RGBA_ASTC_5x4_KHR 0x93B1 +#define GL_COMPRESSED_RGBA_ASTC_5x5_KHR 0x93B2 +#define GL_COMPRESSED_RGBA_ASTC_6x5_KHR 0x93B3 +#define GL_COMPRESSED_RGBA_ASTC_6x6_KHR 0x93B4 +#define GL_COMPRESSED_RGBA_ASTC_8x5_KHR 0x93B5 +#define GL_COMPRESSED_RGBA_ASTC_8x6_KHR 0x93B6 +#define GL_COMPRESSED_RGBA_ASTC_8x8_KHR 0x93B7 +#define GL_COMPRESSED_RGBA_ASTC_10x5_KHR 0x93B8 +#define GL_COMPRESSED_RGBA_ASTC_10x6_KHR 0x93B9 +#define GL_COMPRESSED_RGBA_ASTC_10x8_KHR 0x93BA +#define GL_COMPRESSED_RGBA_ASTC_10x10_KHR 0x93BB +#define GL_COMPRESSED_RGBA_ASTC_12x10_KHR 0x93BC +#define GL_COMPRESSED_RGBA_ASTC_12x12_KHR 0x93BD +#define GL_COMPRESSED_RGBA_ASTC_3x3x3_OES 0x93C0 +#define GL_COMPRESSED_RGBA_ASTC_4x3x3_OES 0x93C1 +#define GL_COMPRESSED_RGBA_ASTC_4x4x3_OES 0x93C2 +#define GL_COMPRESSED_RGBA_ASTC_4x4x4_OES 0x93C3 +#define GL_COMPRESSED_RGBA_ASTC_5x4x4_OES 0x93C4 +#define GL_COMPRESSED_RGBA_ASTC_5x5x4_OES 0x93C5 +#define GL_COMPRESSED_RGBA_ASTC_5x5x5_OES 0x93C6 +#define GL_COMPRESSED_RGBA_ASTC_6x5x5_OES 0x93C7 +#define GL_COMPRESSED_RGBA_ASTC_6x6x5_OES 0x93C8 +#define GL_COMPRESSED_RGBA_ASTC_6x6x6_OES 0x93C9 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR 0x93D0 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR 0x93D1 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR 0x93D2 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR 0x93D3 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR 0x93D4 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR 0x93D5 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR 0x93D6 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR 0x93D7 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR 0x93D8 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR 0x93D9 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR 0x93DA +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR 0x93DB +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR 0x93DC +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR 0x93DD +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_3x3x3_OES 0x93E0 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x3x3_OES 0x93E1 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x3_OES 0x93E2 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x4_OES 0x93E3 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4x4_OES 0x93E4 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x4_OES 0x93E5 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x5_OES 0x93E6 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5x5_OES 0x93E7 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x5_OES 0x93E8 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x6_OES 0x93E9 + +#define GLEW_OES_texture_compression_astc GLEW_GET_VAR(__GLEW_OES_texture_compression_astc) + +#endif /* GL_OES_texture_compression_astc */ + +/* ------------------------ GL_OES_texture_cube_map ------------------------ */ + +#ifndef GL_OES_texture_cube_map +#define GL_OES_texture_cube_map 1 + +#define GL_TEXTURE_GEN_MODE_OES 0x2500 +#define GL_NORMAL_MAP_OES 0x8511 +#define GL_REFLECTION_MAP_OES 0x8512 +#define GL_TEXTURE_CUBE_MAP_OES 0x8513 +#define GL_TEXTURE_BINDING_CUBE_MAP_OES 0x8514 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES 0x8515 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES 0x8516 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES 0x8517 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES 0x8518 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES 0x8519 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES 0x851A +#define GL_MAX_CUBE_MAP_TEXTURE_SIZE_OES 0x851C +#define GL_TEXTURE_GEN_STR_OES 0x8D60 + +typedef void (GLAPIENTRY * PFNGLGETTEXGENFVOESPROC) (GLenum coord, GLenum pname, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETTEXGENIVOESPROC) (GLenum coord, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETTEXGENXVOESPROC) (GLenum coord, GLenum pname, GLfixed* params); +typedef void (GLAPIENTRY * PFNGLTEXGENFOESPROC) (GLenum coord, GLenum pname, GLfloat param); +typedef void (GLAPIENTRY * PFNGLTEXGENFVOESPROC) (GLenum coord, GLenum pname, const GLfloat* params); +typedef void (GLAPIENTRY * PFNGLTEXGENIOESPROC) (GLenum coord, GLenum pname, GLint param); +typedef void (GLAPIENTRY * PFNGLTEXGENIVOESPROC) (GLenum coord, GLenum pname, const GLint* params); +typedef void (GLAPIENTRY * PFNGLTEXGENXOESPROC) (GLenum coord, GLenum pname, GLfixed param); +typedef void (GLAPIENTRY * PFNGLTEXGENXVOESPROC) (GLenum coord, GLenum pname, const GLfixed* params); + +#define glGetTexGenfvOES GLEW_GET_FUN(__glewGetTexGenfvOES) +#define glGetTexGenivOES GLEW_GET_FUN(__glewGetTexGenivOES) +#define glGetTexGenxvOES GLEW_GET_FUN(__glewGetTexGenxvOES) +#define glTexGenfOES GLEW_GET_FUN(__glewTexGenfOES) +#define glTexGenfvOES GLEW_GET_FUN(__glewTexGenfvOES) +#define glTexGeniOES GLEW_GET_FUN(__glewTexGeniOES) +#define glTexGenivOES GLEW_GET_FUN(__glewTexGenivOES) +#define glTexGenxOES GLEW_GET_FUN(__glewTexGenxOES) +#define glTexGenxvOES GLEW_GET_FUN(__glewTexGenxvOES) + +#define GLEW_OES_texture_cube_map GLEW_GET_VAR(__GLEW_OES_texture_cube_map) + +#endif /* GL_OES_texture_cube_map */ + +/* --------------------- GL_OES_texture_cube_map_array --------------------- */ + +#ifndef GL_OES_texture_cube_map_array +#define GL_OES_texture_cube_map_array 1 + +#define GL_TEXTURE_CUBE_MAP_ARRAY_OES 0x9009 +#define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_OES 0x900A +#define GL_SAMPLER_CUBE_MAP_ARRAY_OES 0x900C +#define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_OES 0x900D +#define GL_INT_SAMPLER_CUBE_MAP_ARRAY_OES 0x900E +#define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_OES 0x900F +#define GL_IMAGE_CUBE_MAP_ARRAY_OES 0x9054 +#define GL_INT_IMAGE_CUBE_MAP_ARRAY_OES 0x905F +#define GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_OES 0x906A + +#define GLEW_OES_texture_cube_map_array GLEW_GET_VAR(__GLEW_OES_texture_cube_map_array) + +#endif /* GL_OES_texture_cube_map_array */ + +/* ---------------------- GL_OES_texture_env_crossbar ---------------------- */ + +#ifndef GL_OES_texture_env_crossbar +#define GL_OES_texture_env_crossbar 1 + +#define GLEW_OES_texture_env_crossbar GLEW_GET_VAR(__GLEW_OES_texture_env_crossbar) + +#endif /* GL_OES_texture_env_crossbar */ + +/* --------------------- GL_OES_texture_mirrored_repeat -------------------- */ + +#ifndef GL_OES_texture_mirrored_repeat +#define GL_OES_texture_mirrored_repeat 1 + +#define GL_MIRRORED_REPEAT 0x8370 + +#define GLEW_OES_texture_mirrored_repeat GLEW_GET_VAR(__GLEW_OES_texture_mirrored_repeat) + +#endif /* GL_OES_texture_mirrored_repeat */ + +/* -------------------------- GL_OES_texture_npot -------------------------- */ + +#ifndef GL_OES_texture_npot +#define GL_OES_texture_npot 1 + +#define GLEW_OES_texture_npot GLEW_GET_VAR(__GLEW_OES_texture_npot) + +#endif /* GL_OES_texture_npot */ + +/* ------------------------ GL_OES_texture_stencil8 ------------------------ */ + +#ifndef GL_OES_texture_stencil8 +#define GL_OES_texture_stencil8 1 + +#define GL_STENCIL_INDEX 0x1901 +#define GL_STENCIL_INDEX8 0x8D48 + +#define GLEW_OES_texture_stencil8 GLEW_GET_VAR(__GLEW_OES_texture_stencil8) + +#endif /* GL_OES_texture_stencil8 */ + +/* -------------- GL_OES_texture_storage_multisample_2d_array -------------- */ + +#ifndef GL_OES_texture_storage_multisample_2d_array +#define GL_OES_texture_storage_multisample_2d_array 1 + +#define GL_TEXTURE_2D_MULTISAMPLE_ARRAY_OES 0x9102 +#define GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY_OES 0x9105 +#define GL_SAMPLER_2D_MULTISAMPLE_ARRAY_OES 0x910B +#define GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY_OES 0x910C +#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY_OES 0x910D + +typedef void (GLAPIENTRY * PFNGLTEXSTORAGE3DMULTISAMPLEOESPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); + +#define glTexStorage3DMultisampleOES GLEW_GET_FUN(__glewTexStorage3DMultisampleOES) + +#define GLEW_OES_texture_storage_multisample_2d_array GLEW_GET_VAR(__GLEW_OES_texture_storage_multisample_2d_array) + +#endif /* GL_OES_texture_storage_multisample_2d_array */ + +/* -------------------------- GL_OES_texture_view -------------------------- */ + +#ifndef GL_OES_texture_view +#define GL_OES_texture_view 1 + +#define GL_TEXTURE_VIEW_MIN_LEVEL_OES 0x82DB +#define GL_TEXTURE_VIEW_NUM_LEVELS_OES 0x82DC +#define GL_TEXTURE_VIEW_MIN_LAYER_OES 0x82DD +#define GL_TEXTURE_VIEW_NUM_LAYERS_OES 0x82DE +#define GL_TEXTURE_IMMUTABLE_LEVELS 0x82DF + +typedef void (GLAPIENTRY * PFNGLTEXTUREVIEWOESPROC) (GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers); + +#define glTextureViewOES GLEW_GET_FUN(__glewTextureViewOES) + +#define GLEW_OES_texture_view GLEW_GET_VAR(__GLEW_OES_texture_view) + +#endif /* GL_OES_texture_view */ + +/* ----------------------- GL_OES_vertex_array_object ---------------------- */ + +#ifndef GL_OES_vertex_array_object +#define GL_OES_vertex_array_object 1 + +#define GL_VERTEX_ARRAY_BINDING_OES 0x85B5 + +typedef void (GLAPIENTRY * PFNGLBINDVERTEXARRAYOESPROC) (GLuint array); +typedef void (GLAPIENTRY * PFNGLDELETEVERTEXARRAYSOESPROC) (GLsizei n, const GLuint* arrays); +typedef void (GLAPIENTRY * PFNGLGENVERTEXARRAYSOESPROC) (GLsizei n, GLuint* arrays); +typedef GLboolean (GLAPIENTRY * PFNGLISVERTEXARRAYOESPROC) (GLuint array); + +#define glBindVertexArrayOES GLEW_GET_FUN(__glewBindVertexArrayOES) +#define glDeleteVertexArraysOES GLEW_GET_FUN(__glewDeleteVertexArraysOES) +#define glGenVertexArraysOES GLEW_GET_FUN(__glewGenVertexArraysOES) +#define glIsVertexArrayOES GLEW_GET_FUN(__glewIsVertexArrayOES) + +#define GLEW_OES_vertex_array_object GLEW_GET_VAR(__GLEW_OES_vertex_array_object) + +#endif /* GL_OES_vertex_array_object */ + +/* ------------------------ GL_OES_vertex_half_float ----------------------- */ + +#ifndef GL_OES_vertex_half_float +#define GL_OES_vertex_half_float 1 + +#define GL_HALF_FLOAT_OES 0x8D61 + +#define GLEW_OES_vertex_half_float GLEW_GET_VAR(__GLEW_OES_vertex_half_float) + +#endif /* GL_OES_vertex_half_float */ + +/* --------------------- GL_OES_vertex_type_10_10_10_2 --------------------- */ + +#ifndef GL_OES_vertex_type_10_10_10_2 +#define GL_OES_vertex_type_10_10_10_2 1 + +#define GL_UNSIGNED_INT_10_10_10_2_OES 0x8DF6 +#define GL_INT_10_10_10_2_OES 0x8DF7 + +#define GLEW_OES_vertex_type_10_10_10_2 GLEW_GET_VAR(__GLEW_OES_vertex_type_10_10_10_2) + +#endif /* GL_OES_vertex_type_10_10_10_2 */ + /* ---------------------------- GL_OML_interlace --------------------------- */ #ifndef GL_OML_interlace @@ -15091,8 +19889,10 @@ typedef void (GLAPIENTRY * PFNGLORTHOFOESPROC) (GLfloat l, GLfloat r, GLfloat b, #define GL_FRAMEBUFFER_INCOMPLETE_VIEW_TARGETS_OVR 0x9633 typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTUREMULTIVIEWOVRPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint baseViewIndex, GLsizei numViews); +typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERTEXTUREMULTIVIEWOVRPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint baseViewIndex, GLsizei numViews); #define glFramebufferTextureMultiviewOVR GLEW_GET_FUN(__glewFramebufferTextureMultiviewOVR) +#define glNamedFramebufferTextureMultiviewOVR GLEW_GET_FUN(__glewNamedFramebufferTextureMultiviewOVR) #define GLEW_OVR_multiview GLEW_GET_VAR(__GLEW_OVR_multiview) @@ -15107,6 +19907,19 @@ typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTUREMULTIVIEWOVRPROC) (GLenum targ #endif /* GL_OVR_multiview2 */ +/* ------------ GL_OVR_multiview_multisampled_render_to_texture ------------ */ + +#ifndef GL_OVR_multiview_multisampled_render_to_texture +#define GL_OVR_multiview_multisampled_render_to_texture 1 + +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTUREMULTISAMPLEMULTIVIEWOVRPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLsizei samples, GLint baseViewIndex, GLsizei numViews); + +#define glFramebufferTextureMultisampleMultiviewOVR GLEW_GET_FUN(__glewFramebufferTextureMultisampleMultiviewOVR) + +#define GLEW_OVR_multiview_multisampled_render_to_texture GLEW_GET_VAR(__GLEW_OVR_multiview_multisampled_render_to_texture) + +#endif /* GL_OVR_multiview_multisampled_render_to_texture */ + /* --------------------------- GL_PGI_misc_hints --------------------------- */ #ifndef GL_PGI_misc_hints @@ -15169,6 +19982,269 @@ typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTUREMULTIVIEWOVRPROC) (GLenum targ #endif /* GL_PGI_vertex_hints */ +/* ----------------------- GL_QCOM_YUV_texture_gather ---------------------- */ + +#ifndef GL_QCOM_YUV_texture_gather +#define GL_QCOM_YUV_texture_gather 1 + +#define GLEW_QCOM_YUV_texture_gather GLEW_GET_VAR(__GLEW_QCOM_YUV_texture_gather) + +#endif /* GL_QCOM_YUV_texture_gather */ + +/* --------------------------- GL_QCOM_alpha_test -------------------------- */ + +#ifndef GL_QCOM_alpha_test +#define GL_QCOM_alpha_test 1 + +#define GL_ALPHA_TEST_QCOM 0x0BC0 +#define GL_ALPHA_TEST_FUNC_QCOM 0x0BC1 +#define GL_ALPHA_TEST_REF_QCOM 0x0BC2 + +typedef void (GLAPIENTRY * PFNGLALPHAFUNCQCOMPROC) (GLenum func, GLclampf ref); + +#define glAlphaFuncQCOM GLEW_GET_FUN(__glewAlphaFuncQCOM) + +#define GLEW_QCOM_alpha_test GLEW_GET_VAR(__GLEW_QCOM_alpha_test) + +#endif /* GL_QCOM_alpha_test */ + +/* ------------------------ GL_QCOM_binning_control ------------------------ */ + +#ifndef GL_QCOM_binning_control +#define GL_QCOM_binning_control 1 + +#define GL_DONT_CARE 0x1100 +#define GL_BINNING_CONTROL_HINT_QCOM 0x8FB0 +#define GL_CPU_OPTIMIZED_QCOM 0x8FB1 +#define GL_GPU_OPTIMIZED_QCOM 0x8FB2 +#define GL_RENDER_DIRECT_TO_FRAMEBUFFER_QCOM 0x8FB3 + +#define GLEW_QCOM_binning_control GLEW_GET_VAR(__GLEW_QCOM_binning_control) + +#endif /* GL_QCOM_binning_control */ + +/* ------------------------- GL_QCOM_driver_control ------------------------ */ + +#ifndef GL_QCOM_driver_control +#define GL_QCOM_driver_control 1 + +typedef void (GLAPIENTRY * PFNGLDISABLEDRIVERCONTROLQCOMPROC) (GLuint driverControl); +typedef void (GLAPIENTRY * PFNGLENABLEDRIVERCONTROLQCOMPROC) (GLuint driverControl); +typedef void (GLAPIENTRY * PFNGLGETDRIVERCONTROLSTRINGQCOMPROC) (GLuint driverControl, GLsizei bufSize, GLsizei* length, GLchar *driverControlString); +typedef void (GLAPIENTRY * PFNGLGETDRIVERCONTROLSQCOMPROC) (GLint* num, GLsizei size, GLuint *driverControls); + +#define glDisableDriverControlQCOM GLEW_GET_FUN(__glewDisableDriverControlQCOM) +#define glEnableDriverControlQCOM GLEW_GET_FUN(__glewEnableDriverControlQCOM) +#define glGetDriverControlStringQCOM GLEW_GET_FUN(__glewGetDriverControlStringQCOM) +#define glGetDriverControlsQCOM GLEW_GET_FUN(__glewGetDriverControlsQCOM) + +#define GLEW_QCOM_driver_control GLEW_GET_VAR(__GLEW_QCOM_driver_control) + +#endif /* GL_QCOM_driver_control */ + +/* -------------------------- GL_QCOM_extended_get ------------------------- */ + +#ifndef GL_QCOM_extended_get +#define GL_QCOM_extended_get 1 + +#define GL_TEXTURE_WIDTH_QCOM 0x8BD2 +#define GL_TEXTURE_HEIGHT_QCOM 0x8BD3 +#define GL_TEXTURE_DEPTH_QCOM 0x8BD4 +#define GL_TEXTURE_INTERNAL_FORMAT_QCOM 0x8BD5 +#define GL_TEXTURE_FORMAT_QCOM 0x8BD6 +#define GL_TEXTURE_TYPE_QCOM 0x8BD7 +#define GL_TEXTURE_IMAGE_VALID_QCOM 0x8BD8 +#define GL_TEXTURE_NUM_LEVELS_QCOM 0x8BD9 +#define GL_TEXTURE_TARGET_QCOM 0x8BDA +#define GL_TEXTURE_OBJECT_VALID_QCOM 0x8BDB +#define GL_STATE_RESTORE 0x8BDC + +typedef void (GLAPIENTRY * PFNGLEXTGETBUFFERPOINTERVQCOMPROC) (GLenum target, void** params); +typedef void (GLAPIENTRY * PFNGLEXTGETBUFFERSQCOMPROC) (GLuint* buffers, GLint maxBuffers, GLint* numBuffers); +typedef void (GLAPIENTRY * PFNGLEXTGETFRAMEBUFFERSQCOMPROC) (GLuint* framebuffers, GLint maxFramebuffers, GLint* numFramebuffers); +typedef void (GLAPIENTRY * PFNGLEXTGETRENDERBUFFERSQCOMPROC) (GLuint* renderbuffers, GLint maxRenderbuffers, GLint* numRenderbuffers); +typedef void (GLAPIENTRY * PFNGLEXTGETTEXLEVELPARAMETERIVQCOMPROC) (GLuint texture, GLenum face, GLint level, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLEXTGETTEXSUBIMAGEQCOMPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, void *texels); +typedef void (GLAPIENTRY * PFNGLEXTGETTEXTURESQCOMPROC) (GLuint* textures, GLint maxTextures, GLint* numTextures); +typedef void (GLAPIENTRY * PFNGLEXTTEXOBJECTSTATEOVERRIDEIQCOMPROC) (GLenum target, GLenum pname, GLint param); + +#define glExtGetBufferPointervQCOM GLEW_GET_FUN(__glewExtGetBufferPointervQCOM) +#define glExtGetBuffersQCOM GLEW_GET_FUN(__glewExtGetBuffersQCOM) +#define glExtGetFramebuffersQCOM GLEW_GET_FUN(__glewExtGetFramebuffersQCOM) +#define glExtGetRenderbuffersQCOM GLEW_GET_FUN(__glewExtGetRenderbuffersQCOM) +#define glExtGetTexLevelParameterivQCOM GLEW_GET_FUN(__glewExtGetTexLevelParameterivQCOM) +#define glExtGetTexSubImageQCOM GLEW_GET_FUN(__glewExtGetTexSubImageQCOM) +#define glExtGetTexturesQCOM GLEW_GET_FUN(__glewExtGetTexturesQCOM) +#define glExtTexObjectStateOverrideiQCOM GLEW_GET_FUN(__glewExtTexObjectStateOverrideiQCOM) + +#define GLEW_QCOM_extended_get GLEW_GET_VAR(__GLEW_QCOM_extended_get) + +#endif /* GL_QCOM_extended_get */ + +/* ------------------------- GL_QCOM_extended_get2 ------------------------- */ + +#ifndef GL_QCOM_extended_get2 +#define GL_QCOM_extended_get2 1 + +typedef void (GLAPIENTRY * PFNGLEXTGETPROGRAMBINARYSOURCEQCOMPROC) (GLuint program, GLenum shadertype, GLchar* source, GLint* length); +typedef void (GLAPIENTRY * PFNGLEXTGETPROGRAMSQCOMPROC) (GLuint* programs, GLint maxPrograms, GLint* numPrograms); +typedef void (GLAPIENTRY * PFNGLEXTGETSHADERSQCOMPROC) (GLuint* shaders, GLint maxShaders, GLint* numShaders); +typedef GLboolean (GLAPIENTRY * PFNGLEXTISPROGRAMBINARYQCOMPROC) (GLuint program); + +#define glExtGetProgramBinarySourceQCOM GLEW_GET_FUN(__glewExtGetProgramBinarySourceQCOM) +#define glExtGetProgramsQCOM GLEW_GET_FUN(__glewExtGetProgramsQCOM) +#define glExtGetShadersQCOM GLEW_GET_FUN(__glewExtGetShadersQCOM) +#define glExtIsProgramBinaryQCOM GLEW_GET_FUN(__glewExtIsProgramBinaryQCOM) + +#define GLEW_QCOM_extended_get2 GLEW_GET_VAR(__GLEW_QCOM_extended_get2) + +#endif /* GL_QCOM_extended_get2 */ + +/* ---------------------- GL_QCOM_framebuffer_foveated --------------------- */ + +#ifndef GL_QCOM_framebuffer_foveated +#define GL_QCOM_framebuffer_foveated 1 + +#define GL_FOVEATION_ENABLE_BIT_QCOM 0x1 +#define GL_FOVEATION_SCALED_BIN_METHOD_BIT_QCOM 0x2 + +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERFOVEATIONCONFIGQCOMPROC) (GLuint fbo, GLuint numLayers, GLuint focalPointsPerLayer, GLuint requestedFeatures, GLuint* providedFeatures); +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERFOVEATIONPARAMETERSQCOMPROC) (GLuint fbo, GLuint layer, GLuint focalPoint, GLfloat focalX, GLfloat focalY, GLfloat gainX, GLfloat gainY, GLfloat foveaArea); + +#define glFramebufferFoveationConfigQCOM GLEW_GET_FUN(__glewFramebufferFoveationConfigQCOM) +#define glFramebufferFoveationParametersQCOM GLEW_GET_FUN(__glewFramebufferFoveationParametersQCOM) + +#define GLEW_QCOM_framebuffer_foveated GLEW_GET_VAR(__GLEW_QCOM_framebuffer_foveated) + +#endif /* GL_QCOM_framebuffer_foveated */ + +/* ---------------------- GL_QCOM_perfmon_global_mode ---------------------- */ + +#ifndef GL_QCOM_perfmon_global_mode +#define GL_QCOM_perfmon_global_mode 1 + +#define GL_PERFMON_GLOBAL_MODE_QCOM 0x8FA0 + +#define GLEW_QCOM_perfmon_global_mode GLEW_GET_VAR(__GLEW_QCOM_perfmon_global_mode) + +#endif /* GL_QCOM_perfmon_global_mode */ + +/* -------------- GL_QCOM_shader_framebuffer_fetch_noncoherent ------------- */ + +#ifndef GL_QCOM_shader_framebuffer_fetch_noncoherent +#define GL_QCOM_shader_framebuffer_fetch_noncoherent 1 + +#define GL_FRAMEBUFFER_FETCH_NONCOHERENT_QCOM 0x96A2 + +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERFETCHBARRIERQCOMPROC) (void); + +#define glFramebufferFetchBarrierQCOM GLEW_GET_FUN(__glewFramebufferFetchBarrierQCOM) + +#define GLEW_QCOM_shader_framebuffer_fetch_noncoherent GLEW_GET_VAR(__GLEW_QCOM_shader_framebuffer_fetch_noncoherent) + +#endif /* GL_QCOM_shader_framebuffer_fetch_noncoherent */ + +/* ----------------- GL_QCOM_shader_framebuffer_fetch_rate ----------------- */ + +#ifndef GL_QCOM_shader_framebuffer_fetch_rate +#define GL_QCOM_shader_framebuffer_fetch_rate 1 + +#define GLEW_QCOM_shader_framebuffer_fetch_rate GLEW_GET_VAR(__GLEW_QCOM_shader_framebuffer_fetch_rate) + +#endif /* GL_QCOM_shader_framebuffer_fetch_rate */ + +/* ------------------------ GL_QCOM_texture_foveated ----------------------- */ + +#ifndef GL_QCOM_texture_foveated +#define GL_QCOM_texture_foveated 1 + +#define GL_FOVEATION_ENABLE_BIT_QCOM 0x1 +#define GL_FOVEATION_SCALED_BIN_METHOD_BIT_QCOM 0x2 +#define GL_TEXTURE_FOVEATED_FEATURE_BITS_QCOM 0x8BFB +#define GL_TEXTURE_FOVEATED_MIN_PIXEL_DENSITY_QCOM 0x8BFC +#define GL_TEXTURE_FOVEATED_FEATURE_QUERY_QCOM 0x8BFD +#define GL_TEXTURE_FOVEATED_NUM_FOCAL_POINTS_QUERY_QCOM 0x8BFE +#define GL_FRAMEBUFFER_INCOMPLETE_FOVEATION_QCOM 0x8BFF + +typedef void (GLAPIENTRY * PFNGLTEXTUREFOVEATIONPARAMETERSQCOMPROC) (GLuint texture, GLuint layer, GLuint focalPoint, GLfloat focalX, GLfloat focalY, GLfloat gainX, GLfloat gainY, GLfloat foveaArea); + +#define glTextureFoveationParametersQCOM GLEW_GET_FUN(__glewTextureFoveationParametersQCOM) + +#define GLEW_QCOM_texture_foveated GLEW_GET_VAR(__GLEW_QCOM_texture_foveated) + +#endif /* GL_QCOM_texture_foveated */ + +/* --------------- GL_QCOM_texture_foveated_subsampled_layout -------------- */ + +#ifndef GL_QCOM_texture_foveated_subsampled_layout +#define GL_QCOM_texture_foveated_subsampled_layout 1 + +#define GL_FOVEATION_SUBSAMPLED_LAYOUT_METHOD_BIT_QCOM 0x4 +#define GL_MAX_SHADER_SUBSAMPLED_IMAGE_UNITS_QCOM 0x8FA1 + +#define GLEW_QCOM_texture_foveated_subsampled_layout GLEW_GET_VAR(__GLEW_QCOM_texture_foveated_subsampled_layout) + +#endif /* GL_QCOM_texture_foveated_subsampled_layout */ + +/* ------------------------ GL_QCOM_tiled_rendering ------------------------ */ + +#ifndef GL_QCOM_tiled_rendering +#define GL_QCOM_tiled_rendering 1 + +#define GL_COLOR_BUFFER_BIT0_QCOM 0x00000001 +#define GL_COLOR_BUFFER_BIT1_QCOM 0x00000002 +#define GL_COLOR_BUFFER_BIT2_QCOM 0x00000004 +#define GL_COLOR_BUFFER_BIT3_QCOM 0x00000008 +#define GL_COLOR_BUFFER_BIT4_QCOM 0x00000010 +#define GL_COLOR_BUFFER_BIT5_QCOM 0x00000020 +#define GL_COLOR_BUFFER_BIT6_QCOM 0x00000040 +#define GL_COLOR_BUFFER_BIT7_QCOM 0x00000080 +#define GL_DEPTH_BUFFER_BIT0_QCOM 0x00000100 +#define GL_DEPTH_BUFFER_BIT1_QCOM 0x00000200 +#define GL_DEPTH_BUFFER_BIT2_QCOM 0x00000400 +#define GL_DEPTH_BUFFER_BIT3_QCOM 0x00000800 +#define GL_DEPTH_BUFFER_BIT4_QCOM 0x00001000 +#define GL_DEPTH_BUFFER_BIT5_QCOM 0x00002000 +#define GL_DEPTH_BUFFER_BIT6_QCOM 0x00004000 +#define GL_DEPTH_BUFFER_BIT7_QCOM 0x00008000 +#define GL_STENCIL_BUFFER_BIT0_QCOM 0x00010000 +#define GL_STENCIL_BUFFER_BIT1_QCOM 0x00020000 +#define GL_STENCIL_BUFFER_BIT2_QCOM 0x00040000 +#define GL_STENCIL_BUFFER_BIT3_QCOM 0x00080000 +#define GL_STENCIL_BUFFER_BIT4_QCOM 0x00100000 +#define GL_STENCIL_BUFFER_BIT5_QCOM 0x00200000 +#define GL_STENCIL_BUFFER_BIT6_QCOM 0x00400000 +#define GL_STENCIL_BUFFER_BIT7_QCOM 0x00800000 +#define GL_MULTISAMPLE_BUFFER_BIT0_QCOM 0x01000000 +#define GL_MULTISAMPLE_BUFFER_BIT1_QCOM 0x02000000 +#define GL_MULTISAMPLE_BUFFER_BIT2_QCOM 0x04000000 +#define GL_MULTISAMPLE_BUFFER_BIT3_QCOM 0x08000000 +#define GL_MULTISAMPLE_BUFFER_BIT4_QCOM 0x10000000 +#define GL_MULTISAMPLE_BUFFER_BIT5_QCOM 0x20000000 +#define GL_MULTISAMPLE_BUFFER_BIT6_QCOM 0x40000000 +#define GL_MULTISAMPLE_BUFFER_BIT7_QCOM 0x80000000 + +typedef void (GLAPIENTRY * PFNGLENDTILINGQCOMPROC) (GLbitfield preserveMask); +typedef void (GLAPIENTRY * PFNGLSTARTTILINGQCOMPROC) (GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask); + +#define glEndTilingQCOM GLEW_GET_FUN(__glewEndTilingQCOM) +#define glStartTilingQCOM GLEW_GET_FUN(__glewStartTilingQCOM) + +#define GLEW_QCOM_tiled_rendering GLEW_GET_VAR(__GLEW_QCOM_tiled_rendering) + +#endif /* GL_QCOM_tiled_rendering */ + +/* ---------------------- GL_QCOM_writeonly_rendering ---------------------- */ + +#ifndef GL_QCOM_writeonly_rendering +#define GL_QCOM_writeonly_rendering 1 + +#define GL_WRITEONLY_RENDERING_QCOM 0x8823 + +#define GLEW_QCOM_writeonly_rendering GLEW_GET_VAR(__GLEW_QCOM_writeonly_rendering) + +#endif /* GL_QCOM_writeonly_rendering */ + /* ---------------------- GL_REGAL_ES1_0_compatibility --------------------- */ #ifndef GL_REGAL_ES1_0_compatibility @@ -15395,6 +20471,15 @@ typedef void * (GLAPIENTRY * PFNGLGETPROCADDRESSREGALPROC) (const GLchar *name); #endif /* GL_S3_s3tc */ +/* ------------------------- GL_SGIS_clip_band_hint ------------------------ */ + +#ifndef GL_SGIS_clip_band_hint +#define GL_SGIS_clip_band_hint 1 + +#define GLEW_SGIS_clip_band_hint GLEW_GET_VAR(__GLEW_SGIS_clip_band_hint) + +#endif /* GL_SGIS_clip_band_hint */ + /* -------------------------- GL_SGIS_color_range -------------------------- */ #ifndef GL_SGIS_color_range @@ -15456,6 +20541,15 @@ typedef void (GLAPIENTRY * PFNGLGETFOGFUNCSGISPROC) (GLfloat* points); #endif /* GL_SGIS_generate_mipmap */ +/* -------------------------- GL_SGIS_line_texgen -------------------------- */ + +#ifndef GL_SGIS_line_texgen +#define GL_SGIS_line_texgen 1 + +#define GLEW_SGIS_line_texgen GLEW_GET_VAR(__GLEW_SGIS_line_texgen) + +#endif /* GL_SGIS_line_texgen */ + /* -------------------------- GL_SGIS_multisample -------------------------- */ #ifndef GL_SGIS_multisample @@ -15488,6 +20582,37 @@ typedef void (GLAPIENTRY * PFNGLSAMPLEPATTERNSGISPROC) (GLenum pattern); #endif /* GL_SGIS_multisample */ +/* -------------------------- GL_SGIS_multitexture ------------------------- */ + +#ifndef GL_SGIS_multitexture +#define GL_SGIS_multitexture 1 + +#define GL_SELECTED_TEXTURE_SGIS 0x83C0 +#define GL_SELECTED_TEXTURE_COORD_SET_SGIS 0x83C1 +#define GL_SELECTED_TEXTURE_TRANSFORM_SGIS 0x83C2 +#define GL_MAX_TEXTURES_SGIS 0x83C3 +#define GL_MAX_TEXTURE_COORD_SETS_SGIS 0x83C4 +#define GL_TEXTURE_COORD_SET_INTERLEAVE_FACTOR_SGIS 0x83C5 +#define GL_TEXTURE_ENV_COORD_SET_SGIS 0x83C6 +#define GL_TEXTURE0_SGIS 0x83C7 +#define GL_TEXTURE1_SGIS 0x83C8 +#define GL_TEXTURE2_SGIS 0x83C9 +#define GL_TEXTURE3_SGIS 0x83CA + +typedef void (GLAPIENTRY * PFNGLINTERLEAVEDTEXTURECOORDSETSSGISPROC) (GLint factor); +typedef void (GLAPIENTRY * PFNGLSELECTTEXTURECOORDSETSGISPROC) (GLenum target); +typedef void (GLAPIENTRY * PFNGLSELECTTEXTURESGISPROC) (GLenum target); +typedef void (GLAPIENTRY * PFNGLSELECTTEXTURETRANSFORMSGISPROC) (GLenum target); + +#define glInterleavedTextureCoordSetsSGIS GLEW_GET_FUN(__glewInterleavedTextureCoordSetsSGIS) +#define glSelectTextureCoordSetSGIS GLEW_GET_FUN(__glewSelectTextureCoordSetSGIS) +#define glSelectTextureSGIS GLEW_GET_FUN(__glewSelectTextureSGIS) +#define glSelectTextureTransformSGIS GLEW_GET_FUN(__glewSelectTextureTransformSGIS) + +#define GLEW_SGIS_multitexture GLEW_GET_VAR(__GLEW_SGIS_multitexture) + +#endif /* GL_SGIS_multitexture */ + /* ------------------------- GL_SGIS_pixel_texture ------------------------- */ #ifndef GL_SGIS_pixel_texture @@ -15515,6 +20640,19 @@ typedef void (GLAPIENTRY * PFNGLSAMPLEPATTERNSGISPROC) (GLenum pattern); #endif /* GL_SGIS_point_line_texgen */ +/* ----------------------- GL_SGIS_shared_multisample ---------------------- */ + +#ifndef GL_SGIS_shared_multisample +#define GL_SGIS_shared_multisample 1 + +typedef void (GLAPIENTRY * PFNGLMULTISAMPLESUBRECTPOSSGISPROC) (GLint x, GLint y); + +#define glMultisampleSubRectPosSGIS GLEW_GET_FUN(__glewMultisampleSubRectPosSGIS) + +#define GLEW_SGIS_shared_multisample GLEW_GET_VAR(__GLEW_SGIS_shared_multisample) + +#endif /* GL_SGIS_shared_multisample */ + /* ------------------------ GL_SGIS_sharpen_texture ------------------------ */ #ifndef GL_SGIS_sharpen_texture @@ -15658,6 +20796,42 @@ typedef GLint (GLAPIENTRY * PFNGLPOLLASYNCSGIXPROC) (GLuint* markerp); #endif /* GL_SGIX_async_pixel */ +/* ----------------------- GL_SGIX_bali_g_instruments ---------------------- */ + +#ifndef GL_SGIX_bali_g_instruments +#define GL_SGIX_bali_g_instruments 1 + +#define GL_BALI_NUM_TRIS_CULLED_INSTRUMENT 0x6080 +#define GL_BALI_NUM_PRIMS_CLIPPED_INSTRUMENT 0x6081 +#define GL_BALI_NUM_PRIMS_REJECT_INSTRUMENT 0x6082 +#define GL_BALI_NUM_PRIMS_CLIP_RESULT_INSTRUMENT 0x6083 + +#define GLEW_SGIX_bali_g_instruments GLEW_GET_VAR(__GLEW_SGIX_bali_g_instruments) + +#endif /* GL_SGIX_bali_g_instruments */ + +/* ----------------------- GL_SGIX_bali_r_instruments ---------------------- */ + +#ifndef GL_SGIX_bali_r_instruments +#define GL_SGIX_bali_r_instruments 1 + +#define GL_BALI_FRAGMENTS_GENERATED_INSTRUMENT 0x6090 +#define GL_BALI_DEPTH_PASS_INSTRUMENT 0x6091 +#define GL_BALI_R_CHIP_COUNT 0x6092 + +#define GLEW_SGIX_bali_r_instruments GLEW_GET_VAR(__GLEW_SGIX_bali_r_instruments) + +#endif /* GL_SGIX_bali_r_instruments */ + +/* --------------------- GL_SGIX_bali_timer_instruments -------------------- */ + +#ifndef GL_SGIX_bali_timer_instruments +#define GL_SGIX_bali_timer_instruments 1 + +#define GLEW_SGIX_bali_timer_instruments GLEW_GET_VAR(__GLEW_SGIX_bali_timer_instruments) + +#endif /* GL_SGIX_bali_timer_instruments */ + /* ----------------------- GL_SGIX_blend_alpha_minmax ---------------------- */ #ifndef GL_SGIX_blend_alpha_minmax @@ -15670,6 +20844,37 @@ typedef GLint (GLAPIENTRY * PFNGLPOLLASYNCSGIXPROC) (GLuint* markerp); #endif /* GL_SGIX_blend_alpha_minmax */ +/* --------------------------- GL_SGIX_blend_cadd -------------------------- */ + +#ifndef GL_SGIX_blend_cadd +#define GL_SGIX_blend_cadd 1 + +#define GL_FUNC_COMPLEX_ADD_EXT 0x601C + +#define GLEW_SGIX_blend_cadd GLEW_GET_VAR(__GLEW_SGIX_blend_cadd) + +#endif /* GL_SGIX_blend_cadd */ + +/* ------------------------ GL_SGIX_blend_cmultiply ------------------------ */ + +#ifndef GL_SGIX_blend_cmultiply +#define GL_SGIX_blend_cmultiply 1 + +#define GL_FUNC_COMPLEX_MULTIPLY_EXT 0x601B + +#define GLEW_SGIX_blend_cmultiply GLEW_GET_VAR(__GLEW_SGIX_blend_cmultiply) + +#endif /* GL_SGIX_blend_cmultiply */ + +/* --------------------- GL_SGIX_calligraphic_fragment --------------------- */ + +#ifndef GL_SGIX_calligraphic_fragment +#define GL_SGIX_calligraphic_fragment 1 + +#define GLEW_SGIX_calligraphic_fragment GLEW_GET_VAR(__GLEW_SGIX_calligraphic_fragment) + +#endif /* GL_SGIX_calligraphic_fragment */ + /* ---------------------------- GL_SGIX_clipmap ---------------------------- */ #ifndef GL_SGIX_clipmap @@ -15679,6 +20884,35 @@ typedef GLint (GLAPIENTRY * PFNGLPOLLASYNCSGIXPROC) (GLuint* markerp); #endif /* GL_SGIX_clipmap */ +/* --------------------- GL_SGIX_color_matrix_accuracy --------------------- */ + +#ifndef GL_SGIX_color_matrix_accuracy +#define GL_SGIX_color_matrix_accuracy 1 + +#define GL_COLOR_MATRIX_HINT 0x8317 + +#define GLEW_SGIX_color_matrix_accuracy GLEW_GET_VAR(__GLEW_SGIX_color_matrix_accuracy) + +#endif /* GL_SGIX_color_matrix_accuracy */ + +/* --------------------- GL_SGIX_color_table_index_mode -------------------- */ + +#ifndef GL_SGIX_color_table_index_mode +#define GL_SGIX_color_table_index_mode 1 + +#define GLEW_SGIX_color_table_index_mode GLEW_GET_VAR(__GLEW_SGIX_color_table_index_mode) + +#endif /* GL_SGIX_color_table_index_mode */ + +/* ------------------------- GL_SGIX_complex_polar ------------------------- */ + +#ifndef GL_SGIX_complex_polar +#define GL_SGIX_complex_polar 1 + +#define GLEW_SGIX_complex_polar GLEW_GET_VAR(__GLEW_SGIX_complex_polar) + +#endif /* GL_SGIX_complex_polar */ + /* ---------------------- GL_SGIX_convolution_accuracy --------------------- */ #ifndef GL_SGIX_convolution_accuracy @@ -15690,6 +20924,74 @@ typedef GLint (GLAPIENTRY * PFNGLPOLLASYNCSGIXPROC) (GLuint* markerp); #endif /* GL_SGIX_convolution_accuracy */ +/* ---------------------------- GL_SGIX_cube_map --------------------------- */ + +#ifndef GL_SGIX_cube_map +#define GL_SGIX_cube_map 1 + +#define GL_ENV_MAP_SGIX 0x8340 +#define GL_CUBE_MAP_SGIX 0x8341 +#define GL_CUBE_MAP_ZP_SGIX 0x8342 +#define GL_CUBE_MAP_ZN_SGIX 0x8343 +#define GL_CUBE_MAP_XN_SGIX 0x8344 +#define GL_CUBE_MAP_XP_SGIX 0x8345 +#define GL_CUBE_MAP_YN_SGIX 0x8346 +#define GL_CUBE_MAP_YP_SGIX 0x8347 +#define GL_CUBE_MAP_BINDING_SGIX 0x8348 + +#define GLEW_SGIX_cube_map GLEW_GET_VAR(__GLEW_SGIX_cube_map) + +#endif /* GL_SGIX_cube_map */ + +/* ------------------------ GL_SGIX_cylinder_texgen ------------------------ */ + +#ifndef GL_SGIX_cylinder_texgen +#define GL_SGIX_cylinder_texgen 1 + +#define GLEW_SGIX_cylinder_texgen GLEW_GET_VAR(__GLEW_SGIX_cylinder_texgen) + +#endif /* GL_SGIX_cylinder_texgen */ + +/* ---------------------------- GL_SGIX_datapipe --------------------------- */ + +#ifndef GL_SGIX_datapipe +#define GL_SGIX_datapipe 1 + +#define GL_GEOMETRY_BIT 0x1 +#define GL_IMAGE_BIT 0x2 + +typedef void (GLAPIENTRY * PFNGLADDRESSSPACEPROC) (GLenum space, GLbitfield mask); +typedef GLint (GLAPIENTRY * PFNGLDATAPIPEPROC) (GLenum space); + +#define glAddressSpace GLEW_GET_FUN(__glewAddressSpace) +#define glDataPipe GLEW_GET_FUN(__glewDataPipe) + +#define GLEW_SGIX_datapipe GLEW_GET_VAR(__GLEW_SGIX_datapipe) + +#endif /* GL_SGIX_datapipe */ + +/* --------------------------- GL_SGIX_decimation -------------------------- */ + +#ifndef GL_SGIX_decimation +#define GL_SGIX_decimation 1 + +#define GLEW_SGIX_decimation GLEW_GET_VAR(__GLEW_SGIX_decimation) + +#endif /* GL_SGIX_decimation */ + +/* --------------------- GL_SGIX_depth_pass_instrument --------------------- */ + +#ifndef GL_SGIX_depth_pass_instrument +#define GL_SGIX_depth_pass_instrument 1 + +#define GL_DEPTH_PASS_INSTRUMENT_SGIX 0x8310 +#define GL_DEPTH_PASS_INSTRUMENT_COUNTERS_SGIX 0x8311 +#define GL_DEPTH_PASS_INSTRUMENT_MAX_SGIX 0x8312 + +#define GLEW_SGIX_depth_pass_instrument GLEW_GET_VAR(__GLEW_SGIX_depth_pass_instrument) + +#endif /* GL_SGIX_depth_pass_instrument */ + /* ------------------------- GL_SGIX_depth_texture ------------------------- */ #ifndef GL_SGIX_depth_texture @@ -15703,6 +21005,15 @@ typedef GLint (GLAPIENTRY * PFNGLPOLLASYNCSGIXPROC) (GLuint* markerp); #endif /* GL_SGIX_depth_texture */ +/* ------------------------------ GL_SGIX_dvc ------------------------------ */ + +#ifndef GL_SGIX_dvc +#define GL_SGIX_dvc 1 + +#define GLEW_SGIX_dvc GLEW_GET_VAR(__GLEW_SGIX_dvc) + +#endif /* GL_SGIX_dvc */ + /* -------------------------- GL_SGIX_flush_raster ------------------------- */ #ifndef GL_SGIX_flush_raster @@ -15716,6 +21027,49 @@ typedef void (GLAPIENTRY * PFNGLFLUSHRASTERSGIXPROC) (void); #endif /* GL_SGIX_flush_raster */ +/* --------------------------- GL_SGIX_fog_blend --------------------------- */ + +#ifndef GL_SGIX_fog_blend +#define GL_SGIX_fog_blend 1 + +#define GL_FOG_BLEND_ALPHA_SGIX 0x81FE +#define GL_FOG_BLEND_COLOR_SGIX 0x81FF + +#define GLEW_SGIX_fog_blend GLEW_GET_VAR(__GLEW_SGIX_fog_blend) + +#endif /* GL_SGIX_fog_blend */ + +/* ---------------------- GL_SGIX_fog_factor_to_alpha ---------------------- */ + +#ifndef GL_SGIX_fog_factor_to_alpha +#define GL_SGIX_fog_factor_to_alpha 1 + +#define GLEW_SGIX_fog_factor_to_alpha GLEW_GET_VAR(__GLEW_SGIX_fog_factor_to_alpha) + +#endif /* GL_SGIX_fog_factor_to_alpha */ + +/* --------------------------- GL_SGIX_fog_layers -------------------------- */ + +#ifndef GL_SGIX_fog_layers +#define GL_SGIX_fog_layers 1 + +#define GL_FOG_TYPE_SGIX 0x8323 +#define GL_UNIFORM_SGIX 0x8324 +#define GL_LAYERED_SGIX 0x8325 +#define GL_FOG_GROUND_PLANE_SGIX 0x8326 +#define GL_FOG_LAYERS_POINTS_SGIX 0x8327 +#define GL_MAX_FOG_LAYERS_POINTS_SGIX 0x8328 + +typedef void (GLAPIENTRY * PFNGLFOGLAYERSSGIXPROC) (GLsizei n, const GLfloat* points); +typedef void (GLAPIENTRY * PFNGLGETFOGLAYERSSGIXPROC) (GLfloat* points); + +#define glFogLayersSGIX GLEW_GET_FUN(__glewFogLayersSGIX) +#define glGetFogLayersSGIX GLEW_GET_FUN(__glewGetFogLayersSGIX) + +#define GLEW_SGIX_fog_layers GLEW_GET_VAR(__GLEW_SGIX_fog_layers) + +#endif /* GL_SGIX_fog_layers */ + /* --------------------------- GL_SGIX_fog_offset -------------------------- */ #ifndef GL_SGIX_fog_offset @@ -15728,15 +21082,32 @@ typedef void (GLAPIENTRY * PFNGLFLUSHRASTERSGIXPROC) (void); #endif /* GL_SGIX_fog_offset */ +/* --------------------------- GL_SGIX_fog_patchy -------------------------- */ + +#ifndef GL_SGIX_fog_patchy +#define GL_SGIX_fog_patchy 1 + +#define GLEW_SGIX_fog_patchy GLEW_GET_VAR(__GLEW_SGIX_fog_patchy) + +#endif /* GL_SGIX_fog_patchy */ + +/* --------------------------- GL_SGIX_fog_scale --------------------------- */ + +#ifndef GL_SGIX_fog_scale +#define GL_SGIX_fog_scale 1 + +#define GL_FOG_SCALE_SGIX 0x81FC +#define GL_FOG_SCALE_VALUE_SGIX 0x81FD + +#define GLEW_SGIX_fog_scale GLEW_GET_VAR(__GLEW_SGIX_fog_scale) + +#endif /* GL_SGIX_fog_scale */ + /* -------------------------- GL_SGIX_fog_texture -------------------------- */ #ifndef GL_SGIX_fog_texture #define GL_SGIX_fog_texture 1 -#define GL_FOG_PATCHY_FACTOR_SGIX 0 -#define GL_FRAGMENT_FOG_SGIX 0 -#define GL_TEXTURE_FOG_SGIX 0 - typedef void (GLAPIENTRY * PFNGLTEXTUREFOGSGIXPROC) (GLenum pname); #define glTextureFogSGIX GLEW_GET_FUN(__glewTextureFogSGIX) @@ -15745,6 +21116,20 @@ typedef void (GLAPIENTRY * PFNGLTEXTUREFOGSGIXPROC) (GLenum pname); #endif /* GL_SGIX_fog_texture */ +/* -------------------- GL_SGIX_fragment_lighting_space -------------------- */ + +#ifndef GL_SGIX_fragment_lighting_space +#define GL_SGIX_fragment_lighting_space 1 + +#define GL_EYE_SPACE_SGIX 0x8436 +#define GL_TANGENT_SPACE_SGIX 0x8437 +#define GL_OBJECT_SPACE_SGIX 0x8438 +#define GL_FRAGMENT_LIGHT_SPACE_SGIX 0x843D + +#define GLEW_SGIX_fragment_lighting_space GLEW_GET_VAR(__GLEW_SGIX_fragment_lighting_space) + +#endif /* GL_SGIX_fragment_lighting_space */ + /* ------------------- GL_SGIX_fragment_specular_lighting ------------------ */ #ifndef GL_SGIX_fragment_specular_lighting @@ -15765,8 +21150,8 @@ typedef void (GLAPIENTRY * PFNGLFRAGMENTMATERIALISGIXPROC) (GLenum face, GLenum typedef void (GLAPIENTRY * PFNGLFRAGMENTMATERIALIVSGIXPROC) (GLenum face, GLenum pname, const GLint* params); typedef void (GLAPIENTRY * PFNGLGETFRAGMENTLIGHTFVSGIXPROC) (GLenum light, GLenum value, GLfloat* data); typedef void (GLAPIENTRY * PFNGLGETFRAGMENTLIGHTIVSGIXPROC) (GLenum light, GLenum value, GLint* data); -typedef void (GLAPIENTRY * PFNGLGETFRAGMENTMATERIALFVSGIXPROC) (GLenum face, GLenum pname, const GLfloat* data); -typedef void (GLAPIENTRY * PFNGLGETFRAGMENTMATERIALIVSGIXPROC) (GLenum face, GLenum pname, const GLint* data); +typedef void (GLAPIENTRY * PFNGLGETFRAGMENTMATERIALFVSGIXPROC) (GLenum face, GLenum pname, GLfloat* data); +typedef void (GLAPIENTRY * PFNGLGETFRAGMENTMATERIALIVSGIXPROC) (GLenum face, GLenum pname, GLint* data); #define glFragmentColorMaterialSGIX GLEW_GET_FUN(__glewFragmentColorMaterialSGIX) #define glFragmentLightModelfSGIX GLEW_GET_FUN(__glewFragmentLightModelfSGIX) @@ -15790,6 +21175,19 @@ typedef void (GLAPIENTRY * PFNGLGETFRAGMENTMATERIALIVSGIXPROC) (GLenum face, GLe #endif /* GL_SGIX_fragment_specular_lighting */ +/* ---------------------- GL_SGIX_fragments_instrument --------------------- */ + +#ifndef GL_SGIX_fragments_instrument +#define GL_SGIX_fragments_instrument 1 + +#define GL_FRAGMENTS_INSTRUMENT_SGIX 0x8313 +#define GL_FRAGMENTS_INSTRUMENT_COUNTERS_SGIX 0x8314 +#define GL_FRAGMENTS_INSTRUMENT_MAX_SGIX 0x8315 + +#define GLEW_SGIX_fragments_instrument GLEW_GET_VAR(__GLEW_SGIX_fragments_instrument) + +#endif /* GL_SGIX_fragments_instrument */ + /* --------------------------- GL_SGIX_framezoom --------------------------- */ #ifndef GL_SGIX_framezoom @@ -15803,6 +21201,77 @@ typedef void (GLAPIENTRY * PFNGLFRAMEZOOMSGIXPROC) (GLint factor); #endif /* GL_SGIX_framezoom */ +/* -------------------------- GL_SGIX_icc_texture -------------------------- */ + +#ifndef GL_SGIX_icc_texture +#define GL_SGIX_icc_texture 1 + +#define GL_RGB_ICC_SGIX 0x8460 +#define GL_RGBA_ICC_SGIX 0x8461 +#define GL_ALPHA_ICC_SGIX 0x8462 +#define GL_LUMINANCE_ICC_SGIX 0x8463 +#define GL_INTENSITY_ICC_SGIX 0x8464 +#define GL_LUMINANCE_ALPHA_ICC_SGIX 0x8465 +#define GL_R5_G6_B5_ICC_SGIX 0x8466 +#define GL_R5_G6_B5_A8_ICC_SGIX 0x8467 +#define GL_ALPHA16_ICC_SGIX 0x8468 +#define GL_LUMINANCE16_ICC_SGIX 0x8469 +#define GL_INTENSITY16_ICC_SGIX 0x846A +#define GL_LUMINANCE16_ALPHA8_ICC_SGIX 0x846B + +#define GLEW_SGIX_icc_texture GLEW_GET_VAR(__GLEW_SGIX_icc_texture) + +#endif /* GL_SGIX_icc_texture */ + +/* ------------------------ GL_SGIX_igloo_interface ------------------------ */ + +#ifndef GL_SGIX_igloo_interface +#define GL_SGIX_igloo_interface 1 + +#define GL_IGLOO_FULLSCREEN_SGIX 0x819E +#define GL_IGLOO_VIEWPORT_OFFSET_SGIX 0x819F +#define GL_IGLOO_SWAPTMESH_SGIX 0x81A0 +#define GL_IGLOO_COLORNORMAL_SGIX 0x81A1 +#define GL_IGLOO_IRISGL_MODE_SGIX 0x81A2 +#define GL_IGLOO_LMC_COLOR_SGIX 0x81A3 +#define GL_IGLOO_TMESHMODE_SGIX 0x81A4 +#define GL_LIGHT31 0xBEAD + +typedef void (GLAPIENTRY * PFNGLIGLOOINTERFACESGIXPROC) (GLenum pname, void *param); + +#define glIglooInterfaceSGIX GLEW_GET_FUN(__glewIglooInterfaceSGIX) + +#define GLEW_SGIX_igloo_interface GLEW_GET_VAR(__GLEW_SGIX_igloo_interface) + +#endif /* GL_SGIX_igloo_interface */ + +/* ----------------------- GL_SGIX_image_compression ----------------------- */ + +#ifndef GL_SGIX_image_compression +#define GL_SGIX_image_compression 1 + +#define GLEW_SGIX_image_compression GLEW_GET_VAR(__GLEW_SGIX_image_compression) + +#endif /* GL_SGIX_image_compression */ + +/* ---------------------- GL_SGIX_impact_pixel_texture --------------------- */ + +#ifndef GL_SGIX_impact_pixel_texture +#define GL_SGIX_impact_pixel_texture 1 + +#define GLEW_SGIX_impact_pixel_texture GLEW_GET_VAR(__GLEW_SGIX_impact_pixel_texture) + +#endif /* GL_SGIX_impact_pixel_texture */ + +/* ------------------------ GL_SGIX_instrument_error ----------------------- */ + +#ifndef GL_SGIX_instrument_error +#define GL_SGIX_instrument_error 1 + +#define GLEW_SGIX_instrument_error GLEW_GET_VAR(__GLEW_SGIX_instrument_error) + +#endif /* GL_SGIX_instrument_error */ + /* --------------------------- GL_SGIX_interlace --------------------------- */ #ifndef GL_SGIX_interlace @@ -15823,6 +21292,17 @@ typedef void (GLAPIENTRY * PFNGLFRAMEZOOMSGIXPROC) (GLint factor); #endif /* GL_SGIX_ir_instrument1 */ +/* ----------------------- GL_SGIX_line_quality_hint ----------------------- */ + +#ifndef GL_SGIX_line_quality_hint +#define GL_SGIX_line_quality_hint 1 + +#define GL_LINE_QUALITY_HINT_SGIX 0x835B + +#define GLEW_SGIX_line_quality_hint GLEW_GET_VAR(__GLEW_SGIX_line_quality_hint) + +#endif /* GL_SGIX_line_quality_hint */ + /* ------------------------- GL_SGIX_list_priority ------------------------- */ #ifndef GL_SGIX_list_priority @@ -15832,6 +21312,117 @@ typedef void (GLAPIENTRY * PFNGLFRAMEZOOMSGIXPROC) (GLint factor); #endif /* GL_SGIX_list_priority */ +/* ----------------------------- GL_SGIX_mpeg1 ----------------------------- */ + +#ifndef GL_SGIX_mpeg1 +#define GL_SGIX_mpeg1 1 + +typedef void (GLAPIENTRY * PFNGLALLOCMPEGPREDICTORSSGIXPROC) (GLsizei width, GLsizei height, GLsizei n, GLuint* predictors); +typedef void (GLAPIENTRY * PFNGLDELETEMPEGPREDICTORSSGIXPROC) (GLsizei n, GLuint* predictors); +typedef void (GLAPIENTRY * PFNGLGENMPEGPREDICTORSSGIXPROC) (GLsizei n, GLuint* predictors); +typedef void (GLAPIENTRY * PFNGLGETMPEGPARAMETERFVSGIXPROC) (GLenum target, GLenum pname, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETMPEGPARAMETERIVSGIXPROC) (GLenum target, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETMPEGPREDICTORSGIXPROC) (GLenum target, GLenum format, GLenum type, void *pixels); +typedef void (GLAPIENTRY * PFNGLGETMPEGQUANTTABLEUBVPROC) (GLenum target, GLubyte* values); +typedef GLboolean (GLAPIENTRY * PFNGLISMPEGPREDICTORSGIXPROC) (GLuint predictor); +typedef void (GLAPIENTRY * PFNGLMPEGPREDICTORSGIXPROC) (GLenum target, GLenum format, GLenum type, void *pixels); +typedef void (GLAPIENTRY * PFNGLMPEGQUANTTABLEUBVPROC) (GLenum target, GLubyte* values); +typedef void (GLAPIENTRY * PFNGLSWAPMPEGPREDICTORSSGIXPROC) (GLenum target0, GLenum target1); + +#define glAllocMPEGPredictorsSGIX GLEW_GET_FUN(__glewAllocMPEGPredictorsSGIX) +#define glDeleteMPEGPredictorsSGIX GLEW_GET_FUN(__glewDeleteMPEGPredictorsSGIX) +#define glGenMPEGPredictorsSGIX GLEW_GET_FUN(__glewGenMPEGPredictorsSGIX) +#define glGetMPEGParameterfvSGIX GLEW_GET_FUN(__glewGetMPEGParameterfvSGIX) +#define glGetMPEGParameterivSGIX GLEW_GET_FUN(__glewGetMPEGParameterivSGIX) +#define glGetMPEGPredictorSGIX GLEW_GET_FUN(__glewGetMPEGPredictorSGIX) +#define glGetMPEGQuantTableubv GLEW_GET_FUN(__glewGetMPEGQuantTableubv) +#define glIsMPEGPredictorSGIX GLEW_GET_FUN(__glewIsMPEGPredictorSGIX) +#define glMPEGPredictorSGIX GLEW_GET_FUN(__glewMPEGPredictorSGIX) +#define glMPEGQuantTableubv GLEW_GET_FUN(__glewMPEGQuantTableubv) +#define glSwapMPEGPredictorsSGIX GLEW_GET_FUN(__glewSwapMPEGPredictorsSGIX) + +#define GLEW_SGIX_mpeg1 GLEW_GET_VAR(__GLEW_SGIX_mpeg1) + +#endif /* GL_SGIX_mpeg1 */ + +/* ----------------------------- GL_SGIX_mpeg2 ----------------------------- */ + +#ifndef GL_SGIX_mpeg2 +#define GL_SGIX_mpeg2 1 + +#define GLEW_SGIX_mpeg2 GLEW_GET_VAR(__GLEW_SGIX_mpeg2) + +#endif /* GL_SGIX_mpeg2 */ + +/* ------------------ GL_SGIX_nonlinear_lighting_pervertex ----------------- */ + +#ifndef GL_SGIX_nonlinear_lighting_pervertex +#define GL_SGIX_nonlinear_lighting_pervertex 1 + +typedef void (GLAPIENTRY * PFNGLGETNONLINLIGHTFVSGIXPROC) (GLenum light, GLenum pname, GLint* terms, GLfloat *data); +typedef void (GLAPIENTRY * PFNGLGETNONLINMATERIALFVSGIXPROC) (GLenum face, GLenum pname, GLint* terms, const GLfloat *data); +typedef void (GLAPIENTRY * PFNGLNONLINLIGHTFVSGIXPROC) (GLenum light, GLenum pname, GLint terms, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLNONLINMATERIALFVSGIXPROC) (GLenum face, GLenum pname, GLint terms, const GLfloat* params); + +#define glGetNonlinLightfvSGIX GLEW_GET_FUN(__glewGetNonlinLightfvSGIX) +#define glGetNonlinMaterialfvSGIX GLEW_GET_FUN(__glewGetNonlinMaterialfvSGIX) +#define glNonlinLightfvSGIX GLEW_GET_FUN(__glewNonlinLightfvSGIX) +#define glNonlinMaterialfvSGIX GLEW_GET_FUN(__glewNonlinMaterialfvSGIX) + +#define GLEW_SGIX_nonlinear_lighting_pervertex GLEW_GET_VAR(__GLEW_SGIX_nonlinear_lighting_pervertex) + +#endif /* GL_SGIX_nonlinear_lighting_pervertex */ + +/* --------------------------- GL_SGIX_nurbs_eval -------------------------- */ + +#ifndef GL_SGIX_nurbs_eval +#define GL_SGIX_nurbs_eval 1 + +#define GL_MAP1_VERTEX_3_NURBS_SGIX 0x81CB +#define GL_MAP1_VERTEX_4_NURBS_SGIX 0x81CC +#define GL_MAP1_INDEX_NURBS_SGIX 0x81CD +#define GL_MAP1_COLOR_4_NURBS_SGIX 0x81CE +#define GL_MAP1_NORMAL_NURBS_SGIX 0x81CF +#define GL_MAP1_TEXTURE_COORD_1_NURBS_SGIX 0x81E0 +#define GL_MAP1_TEXTURE_COORD_2_NURBS_SGIX 0x81E1 +#define GL_MAP1_TEXTURE_COORD_3_NURBS_SGIX 0x81E2 +#define GL_MAP1_TEXTURE_COORD_4_NURBS_SGIX 0x81E3 +#define GL_MAP2_VERTEX_3_NURBS_SGIX 0x81E4 +#define GL_MAP2_VERTEX_4_NURBS_SGIX 0x81E5 +#define GL_MAP2_INDEX_NURBS_SGIX 0x81E6 +#define GL_MAP2_COLOR_4_NURBS_SGIX 0x81E7 +#define GL_MAP2_NORMAL_NURBS_SGIX 0x81E8 +#define GL_MAP2_TEXTURE_COORD_1_NURBS_SGIX 0x81E9 +#define GL_MAP2_TEXTURE_COORD_2_NURBS_SGIX 0x81EA +#define GL_MAP2_TEXTURE_COORD_3_NURBS_SGIX 0x81EB +#define GL_MAP2_TEXTURE_COORD_4_NURBS_SGIX 0x81EC +#define GL_NURBS_KNOT_COUNT_SGIX 0x81ED +#define GL_NURBS_KNOT_VECTOR_SGIX 0x81EE + +#define GLEW_SGIX_nurbs_eval GLEW_GET_VAR(__GLEW_SGIX_nurbs_eval) + +#endif /* GL_SGIX_nurbs_eval */ + +/* ---------------------- GL_SGIX_occlusion_instrument --------------------- */ + +#ifndef GL_SGIX_occlusion_instrument +#define GL_SGIX_occlusion_instrument 1 + +#define GL_OCCLUSION_INSTRUMENT_SGIX 0x6060 + +#define GLEW_SGIX_occlusion_instrument GLEW_GET_VAR(__GLEW_SGIX_occlusion_instrument) + +#endif /* GL_SGIX_occlusion_instrument */ + +/* ------------------------- GL_SGIX_packed_6bytes ------------------------- */ + +#ifndef GL_SGIX_packed_6bytes +#define GL_SGIX_packed_6bytes 1 + +#define GLEW_SGIX_packed_6bytes GLEW_GET_VAR(__GLEW_SGIX_packed_6bytes) + +#endif /* GL_SGIX_packed_6bytes */ + /* ------------------------- GL_SGIX_pixel_texture ------------------------- */ #ifndef GL_SGIX_pixel_texture @@ -15854,6 +21445,57 @@ typedef void (GLAPIENTRY * PFNGLPIXELTEXGENSGIXPROC) (GLenum mode); #endif /* GL_SGIX_pixel_texture_bits */ +/* ----------------------- GL_SGIX_pixel_texture_lod ----------------------- */ + +#ifndef GL_SGIX_pixel_texture_lod +#define GL_SGIX_pixel_texture_lod 1 + +#define GLEW_SGIX_pixel_texture_lod GLEW_GET_VAR(__GLEW_SGIX_pixel_texture_lod) + +#endif /* GL_SGIX_pixel_texture_lod */ + +/* -------------------------- GL_SGIX_pixel_tiles -------------------------- */ + +#ifndef GL_SGIX_pixel_tiles +#define GL_SGIX_pixel_tiles 1 + +#define GLEW_SGIX_pixel_tiles GLEW_GET_VAR(__GLEW_SGIX_pixel_tiles) + +#endif /* GL_SGIX_pixel_tiles */ + +/* ------------------------- GL_SGIX_polynomial_ffd ------------------------ */ + +#ifndef GL_SGIX_polynomial_ffd +#define GL_SGIX_polynomial_ffd 1 + +#define GL_TEXTURE_DEFORMATION_BIT_SGIX 0x1 +#define GL_GEOMETRY_DEFORMATION_BIT_SGIX 0x2 + +typedef void (GLAPIENTRY * PFNGLDEFORMSGIXPROC) (GLbitfield mask); +typedef void (GLAPIENTRY * PFNGLLOADIDENTITYDEFORMATIONMAPSGIXPROC) (GLbitfield mask); + +#define glDeformSGIX GLEW_GET_FUN(__glewDeformSGIX) +#define glLoadIdentityDeformationMapSGIX GLEW_GET_FUN(__glewLoadIdentityDeformationMapSGIX) + +#define GLEW_SGIX_polynomial_ffd GLEW_GET_VAR(__GLEW_SGIX_polynomial_ffd) + +#endif /* GL_SGIX_polynomial_ffd */ + +/* --------------------------- GL_SGIX_quad_mesh --------------------------- */ + +#ifndef GL_SGIX_quad_mesh +#define GL_SGIX_quad_mesh 1 + +typedef void (GLAPIENTRY * PFNGLMESHBREADTHSGIXPROC) (GLint breadth); +typedef void (GLAPIENTRY * PFNGLMESHSTRIDESGIXPROC) (GLint stride); + +#define glMeshBreadthSGIX GLEW_GET_FUN(__glewMeshBreadthSGIX) +#define glMeshStrideSGIX GLEW_GET_FUN(__glewMeshStrideSGIX) + +#define GLEW_SGIX_quad_mesh GLEW_GET_VAR(__GLEW_SGIX_quad_mesh) + +#endif /* GL_SGIX_quad_mesh */ + /* ------------------------ GL_SGIX_reference_plane ------------------------ */ #ifndef GL_SGIX_reference_plane @@ -15882,6 +21524,17 @@ typedef void (GLAPIENTRY * PFNGLREFERENCEPLANESGIXPROC) (const GLdouble* equatio #endif /* GL_SGIX_resample */ +/* ------------------------- GL_SGIX_scalebias_hint ------------------------ */ + +#ifndef GL_SGIX_scalebias_hint +#define GL_SGIX_scalebias_hint 1 + +#define GL_SCALEBIAS_HINT_SGIX 0x8322 + +#define GLEW_SGIX_scalebias_hint GLEW_GET_VAR(__GLEW_SGIX_scalebias_hint) + +#endif /* GL_SGIX_scalebias_hint */ + /* ----------------------------- GL_SGIX_shadow ---------------------------- */ #ifndef GL_SGIX_shadow @@ -15907,6 +21560,31 @@ typedef void (GLAPIENTRY * PFNGLREFERENCEPLANESGIXPROC) (const GLdouble* equatio #endif /* GL_SGIX_shadow_ambient */ +/* ------------------------------ GL_SGIX_slim ----------------------------- */ + +#ifndef GL_SGIX_slim +#define GL_SGIX_slim 1 + +#define GL_PACK_MAX_COMPRESSED_SIZE_SGIX 0x831B +#define GL_SLIM8U_SGIX 0x831D +#define GL_SLIM10U_SGIX 0x831E +#define GL_SLIM12S_SGIX 0x831F + +#define GLEW_SGIX_slim GLEW_GET_VAR(__GLEW_SGIX_slim) + +#endif /* GL_SGIX_slim */ + +/* ------------------------ GL_SGIX_spotlight_cutoff ----------------------- */ + +#ifndef GL_SGIX_spotlight_cutoff +#define GL_SGIX_spotlight_cutoff 1 + +#define GL_SPOT_CUTOFF_DELTA_SGIX 0x8193 + +#define GLEW_SGIX_spotlight_cutoff GLEW_GET_VAR(__GLEW_SGIX_spotlight_cutoff) + +#endif /* GL_SGIX_spotlight_cutoff */ + /* ----------------------------- GL_SGIX_sprite ---------------------------- */ #ifndef GL_SGIX_sprite @@ -15926,6 +21604,30 @@ typedef void (GLAPIENTRY * PFNGLSPRITEPARAMETERIVSGIXPROC) (GLenum pname, GLint* #endif /* GL_SGIX_sprite */ +/* -------------------------- GL_SGIX_subdiv_patch ------------------------- */ + +#ifndef GL_SGIX_subdiv_patch +#define GL_SGIX_subdiv_patch 1 + +#define GLEW_SGIX_subdiv_patch GLEW_GET_VAR(__GLEW_SGIX_subdiv_patch) + +#endif /* GL_SGIX_subdiv_patch */ + +/* --------------------------- GL_SGIX_subsample --------------------------- */ + +#ifndef GL_SGIX_subsample +#define GL_SGIX_subsample 1 + +#define GL_PACK_SUBSAMPLE_RATE_SGIX 0x85A0 +#define GL_UNPACK_SUBSAMPLE_RATE_SGIX 0x85A1 +#define GL_PIXEL_SUBSAMPLE_4444_SGIX 0x85A2 +#define GL_PIXEL_SUBSAMPLE_2424_SGIX 0x85A3 +#define GL_PIXEL_SUBSAMPLE_4242_SGIX 0x85A4 + +#define GLEW_SGIX_subsample GLEW_GET_VAR(__GLEW_SGIX_subsample) + +#endif /* GL_SGIX_subsample */ + /* ----------------------- GL_SGIX_tag_sample_buffer ----------------------- */ #ifndef GL_SGIX_tag_sample_buffer @@ -15970,6 +21672,18 @@ typedef void (GLAPIENTRY * PFNGLTAGSAMPLEBUFFERSGIXPROC) (void); #endif /* GL_SGIX_texture_lod_bias */ +/* ------------------- GL_SGIX_texture_mipmap_anisotropic ------------------ */ + +#ifndef GL_SGIX_texture_mipmap_anisotropic +#define GL_SGIX_texture_mipmap_anisotropic 1 + +#define GL_TEXTURE_MIPMAP_ANISOTROPY_SGIX 0x832E +#define GL_MAX_MIPMAP_ANISOTROPY_SGIX 0x832F + +#define GLEW_SGIX_texture_mipmap_anisotropic GLEW_GET_VAR(__GLEW_SGIX_texture_mipmap_anisotropic) + +#endif /* GL_SGIX_texture_mipmap_anisotropic */ + /* ---------------------- GL_SGIX_texture_multi_buffer --------------------- */ #ifndef GL_SGIX_texture_multi_buffer @@ -15981,6 +21695,17 @@ typedef void (GLAPIENTRY * PFNGLTAGSAMPLEBUFFERSGIXPROC) (void); #endif /* GL_SGIX_texture_multi_buffer */ +/* ------------------------- GL_SGIX_texture_phase ------------------------- */ + +#ifndef GL_SGIX_texture_phase +#define GL_SGIX_texture_phase 1 + +#define GL_PHASE_SGIX 0x832A + +#define GLEW_SGIX_texture_phase GLEW_GET_VAR(__GLEW_SGIX_texture_phase) + +#endif /* GL_SGIX_texture_phase */ + /* ------------------------- GL_SGIX_texture_range ------------------------- */ #ifndef GL_SGIX_texture_range @@ -16033,6 +21758,53 @@ typedef void (GLAPIENTRY * PFNGLTAGSAMPLEBUFFERSGIXPROC) (void); #endif /* GL_SGIX_texture_scale_bias */ +/* ---------------------- GL_SGIX_texture_supersample ---------------------- */ + +#ifndef GL_SGIX_texture_supersample +#define GL_SGIX_texture_supersample 1 + +#define GLEW_SGIX_texture_supersample GLEW_GET_VAR(__GLEW_SGIX_texture_supersample) + +#endif /* GL_SGIX_texture_supersample */ + +/* --------------------------- GL_SGIX_vector_ops -------------------------- */ + +#ifndef GL_SGIX_vector_ops +#define GL_SGIX_vector_ops 1 + +typedef void (GLAPIENTRY * PFNGLGETVECTOROPERATIONSGIXPROC) (GLenum operation); +typedef void (GLAPIENTRY * PFNGLVECTOROPERATIONSGIXPROC) (GLenum operation); + +#define glGetVectorOperationSGIX GLEW_GET_FUN(__glewGetVectorOperationSGIX) +#define glVectorOperationSGIX GLEW_GET_FUN(__glewVectorOperationSGIX) + +#define GLEW_SGIX_vector_ops GLEW_GET_VAR(__GLEW_SGIX_vector_ops) + +#endif /* GL_SGIX_vector_ops */ + +/* ---------------------- GL_SGIX_vertex_array_object ---------------------- */ + +#ifndef GL_SGIX_vertex_array_object +#define GL_SGIX_vertex_array_object 1 + +typedef GLboolean (GLAPIENTRY * PFNGLAREVERTEXARRAYSRESIDENTSGIXPROC) (GLsizei n, const GLuint* arrays, GLboolean* residences); +typedef void (GLAPIENTRY * PFNGLBINDVERTEXARRAYSGIXPROC) (GLuint array); +typedef void (GLAPIENTRY * PFNGLDELETEVERTEXARRAYSSGIXPROC) (GLsizei n, const GLuint* arrays); +typedef void (GLAPIENTRY * PFNGLGENVERTEXARRAYSSGIXPROC) (GLsizei n, GLuint* arrays); +typedef GLboolean (GLAPIENTRY * PFNGLISVERTEXARRAYSGIXPROC) (GLuint array); +typedef void (GLAPIENTRY * PFNGLPRIORITIZEVERTEXARRAYSSGIXPROC) (GLsizei n, const GLuint* arrays, const GLclampf* priorities); + +#define glAreVertexArraysResidentSGIX GLEW_GET_FUN(__glewAreVertexArraysResidentSGIX) +#define glBindVertexArraySGIX GLEW_GET_FUN(__glewBindVertexArraySGIX) +#define glDeleteVertexArraysSGIX GLEW_GET_FUN(__glewDeleteVertexArraysSGIX) +#define glGenVertexArraysSGIX GLEW_GET_FUN(__glewGenVertexArraysSGIX) +#define glIsVertexArraySGIX GLEW_GET_FUN(__glewIsVertexArraySGIX) +#define glPrioritizeVertexArraysSGIX GLEW_GET_FUN(__glewPrioritizeVertexArraysSGIX) + +#define GLEW_SGIX_vertex_array_object GLEW_GET_VAR(__GLEW_SGIX_vertex_array_object) + +#endif /* GL_SGIX_vertex_array_object */ + /* ------------------------- GL_SGIX_vertex_preclip ------------------------ */ #ifndef GL_SGIX_vertex_preclip @@ -16066,6 +21838,27 @@ typedef void (GLAPIENTRY * PFNGLTAGSAMPLEBUFFERSGIXPROC) (void); #endif /* GL_SGIX_ycrcb */ +/* ------------------------ GL_SGIX_ycrcb_subsample ------------------------ */ + +#ifndef GL_SGIX_ycrcb_subsample +#define GL_SGIX_ycrcb_subsample 1 + +#define GLEW_SGIX_ycrcb_subsample GLEW_GET_VAR(__GLEW_SGIX_ycrcb_subsample) + +#endif /* GL_SGIX_ycrcb_subsample */ + +/* ----------------------------- GL_SGIX_ycrcba ---------------------------- */ + +#ifndef GL_SGIX_ycrcba +#define GL_SGIX_ycrcba 1 + +#define GL_YCRCB_SGIX 0x8318 +#define GL_YCRCBA_SGIX 0x8319 + +#define GLEW_SGIX_ycrcba GLEW_GET_VAR(__GLEW_SGIX_ycrcba) + +#endif /* GL_SGIX_ycrcba */ + /* -------------------------- GL_SGI_color_matrix -------------------------- */ #ifndef GL_SGI_color_matrix @@ -16129,6 +21922,63 @@ typedef void (GLAPIENTRY * PFNGLGETCOLORTABLESGIPROC) (GLenum target, GLenum for #endif /* GL_SGI_color_table */ +/* ----------------------------- GL_SGI_complex ---------------------------- */ + +#ifndef GL_SGI_complex +#define GL_SGI_complex 1 + +#define GLEW_SGI_complex GLEW_GET_VAR(__GLEW_SGI_complex) + +#endif /* GL_SGI_complex */ + +/* -------------------------- GL_SGI_complex_type -------------------------- */ + +#ifndef GL_SGI_complex_type +#define GL_SGI_complex_type 1 + +#define GL_COMPLEX_UNSIGNED_BYTE_SGI 0x81BD +#define GL_COMPLEX_BYTE_SGI 0x81BE +#define GL_COMPLEX_UNSIGNED_SHORT_SGI 0x81BF +#define GL_COMPLEX_SHORT_SGI 0x81C0 +#define GL_COMPLEX_UNSIGNED_INT_SGI 0x81C1 +#define GL_COMPLEX_INT_SGI 0x81C2 +#define GL_COMPLEX_FLOAT_SGI 0x81C3 + +#define GLEW_SGI_complex_type GLEW_GET_VAR(__GLEW_SGI_complex_type) + +#endif /* GL_SGI_complex_type */ + +/* ------------------------------- GL_SGI_fft ------------------------------ */ + +#ifndef GL_SGI_fft +#define GL_SGI_fft 1 + +#define GL_PIXEL_TRANSFORM_OPERATOR_SGI 0x81C4 +#define GL_CONVOLUTION_SGI 0x81C5 +#define GL_FFT_1D_SGI 0x81C6 +#define GL_PIXEL_TRANSFORM_SGI 0x81C7 +#define GL_MAX_FFT_WIDTH_SGI 0x81C8 + +typedef void (GLAPIENTRY * PFNGLGETPIXELTRANSFORMPARAMETERFVSGIPROC) (GLenum target, GLenum pname, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETPIXELTRANSFORMPARAMETERIVSGIPROC) (GLenum target, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLPIXELTRANSFORMPARAMETERFSGIPROC) (GLenum target, GLenum pname, GLfloat param); +typedef void (GLAPIENTRY * PFNGLPIXELTRANSFORMPARAMETERFVSGIPROC) (GLenum target, GLenum pname, const GLfloat* params); +typedef void (GLAPIENTRY * PFNGLPIXELTRANSFORMPARAMETERISGIPROC) (GLenum target, GLenum pname, GLint param); +typedef void (GLAPIENTRY * PFNGLPIXELTRANSFORMPARAMETERIVSGIPROC) (GLenum target, GLenum pname, const GLint* params); +typedef void (GLAPIENTRY * PFNGLPIXELTRANSFORMSGIPROC) (GLenum target); + +#define glGetPixelTransformParameterfvSGI GLEW_GET_FUN(__glewGetPixelTransformParameterfvSGI) +#define glGetPixelTransformParameterivSGI GLEW_GET_FUN(__glewGetPixelTransformParameterivSGI) +#define glPixelTransformParameterfSGI GLEW_GET_FUN(__glewPixelTransformParameterfSGI) +#define glPixelTransformParameterfvSGI GLEW_GET_FUN(__glewPixelTransformParameterfvSGI) +#define glPixelTransformParameteriSGI GLEW_GET_FUN(__glewPixelTransformParameteriSGI) +#define glPixelTransformParameterivSGI GLEW_GET_FUN(__glewPixelTransformParameterivSGI) +#define glPixelTransformSGI GLEW_GET_FUN(__glewPixelTransformSGI) + +#define GLEW_SGI_fft GLEW_GET_VAR(__GLEW_SGI_fft) + +#endif /* GL_SGI_fft */ + /* ----------------------- GL_SGI_texture_color_table ---------------------- */ #ifndef GL_SGI_texture_color_table @@ -16368,6 +22218,17 @@ typedef void (GLAPIENTRY * PFNGLTEXCOORD4FVERTEX4FVSUNPROC) (const GLfloat* tc, #endif /* GL_SUN_vertex */ +/* -------------------------- GL_VIV_shader_binary ------------------------- */ + +#ifndef GL_VIV_shader_binary +#define GL_VIV_shader_binary 1 + +#define GL_SHADER_BINARY_VIV 0x8FC4 + +#define GLEW_VIV_shader_binary GLEW_GET_VAR(__GLEW_VIV_shader_binary) + +#endif /* GL_VIV_shader_binary */ + /* -------------------------- GL_WIN_phong_shading ------------------------- */ #ifndef GL_WIN_phong_shading @@ -16380,6 +22241,15 @@ typedef void (GLAPIENTRY * PFNGLTEXCOORD4FVERTEX4FVSUNPROC) (const GLfloat* tc, #endif /* GL_WIN_phong_shading */ +/* ------------------------- GL_WIN_scene_markerXXX ------------------------ */ + +#ifndef GL_WIN_scene_markerXXX +#define GL_WIN_scene_markerXXX 1 + +#define GLEW_WIN_scene_markerXXX GLEW_GET_VAR(__GLEW_WIN_scene_markerXXX) + +#endif /* GL_WIN_scene_markerXXX */ + /* -------------------------- GL_WIN_specular_fog -------------------------- */ #ifndef GL_WIN_specular_fog @@ -16406,22 +22276,7 @@ typedef void (GLAPIENTRY * PFNGLADDSWAPHINTRECTWINPROC) (GLint x, GLint y, GLsiz /* ------------------------------------------------------------------------- */ -#if defined(GLEW_MX) && defined(_WIN32) -#define GLEW_FUN_EXPORT -#else -#define GLEW_FUN_EXPORT GLEWAPI -#endif /* GLEW_MX */ -#if defined(GLEW_MX) -#define GLEW_VAR_EXPORT -#else -#define GLEW_VAR_EXPORT GLEWAPI -#endif /* GLEW_MX */ - -#if defined(GLEW_MX) && defined(_WIN32) -struct GLEWContextStruct -{ -#endif /* GLEW_MX */ GLEW_FUN_EXPORT PFNGLCOPYTEXSUBIMAGE3DPROC __glewCopyTexSubImage3D; GLEW_FUN_EXPORT PFNGLDRAWRANGEELEMENTSPROC __glewDrawRangeElements; @@ -16722,6 +22577,10 @@ GLEW_FUN_EXPORT PFNGLGETNCOMPRESSEDTEXIMAGEPROC __glewGetnCompressedTexImage; GLEW_FUN_EXPORT PFNGLGETNTEXIMAGEPROC __glewGetnTexImage; GLEW_FUN_EXPORT PFNGLGETNUNIFORMDVPROC __glewGetnUniformdv; +GLEW_FUN_EXPORT PFNGLMULTIDRAWARRAYSINDIRECTCOUNTPROC __glewMultiDrawArraysIndirectCount; +GLEW_FUN_EXPORT PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTPROC __glewMultiDrawElementsIndirectCount; +GLEW_FUN_EXPORT PFNGLSPECIALIZESHADERPROC __glewSpecializeShader; + GLEW_FUN_EXPORT PFNGLTBUFFERMASK3DFXPROC __glewTbufferMask3DFX; GLEW_FUN_EXPORT PFNGLDEBUGMESSAGECALLBACKAMDPROC __glewDebugMessageCallbackAMD; @@ -16734,6 +22593,14 @@ GLEW_FUN_EXPORT PFNGLBLENDEQUATIONSEPARATEINDEXEDAMDPROC __glewBlendEquationSepa GLEW_FUN_EXPORT PFNGLBLENDFUNCINDEXEDAMDPROC __glewBlendFuncIndexedAMD; GLEW_FUN_EXPORT PFNGLBLENDFUNCSEPARATEINDEXEDAMDPROC __glewBlendFuncSeparateIndexedAMD; +GLEW_FUN_EXPORT PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEADVANCEDAMDPROC __glewNamedRenderbufferStorageMultisampleAdvancedAMD; +GLEW_FUN_EXPORT PFNGLRENDERBUFFERSTORAGEMULTISAMPLEADVANCEDAMDPROC __glewRenderbufferStorageMultisampleAdvancedAMD; + +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERSAMPLEPOSITIONSFVAMDPROC __glewFramebufferSamplePositionsfvAMD; +GLEW_FUN_EXPORT PFNGLGETFRAMEBUFFERPARAMETERFVAMDPROC __glewGetFramebufferParameterfvAMD; +GLEW_FUN_EXPORT PFNGLGETNAMEDFRAMEBUFFERPARAMETERFVAMDPROC __glewGetNamedFramebufferParameterfvAMD; +GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERSAMPLEPOSITIONSFVAMDPROC __glewNamedFramebufferSamplePositionsfvAMD; + GLEW_FUN_EXPORT PFNGLVERTEXATTRIBPARAMETERIAMDPROC __glewVertexAttribParameteriAMD; GLEW_FUN_EXPORT PFNGLMULTIDRAWARRAYSINDIRECTAMDPROC __glewMultiDrawArraysIndirectAMD; @@ -16789,6 +22656,8 @@ GLEW_FUN_EXPORT PFNGLQUERYCOUNTERANGLEPROC __glewQueryCounterANGLE; GLEW_FUN_EXPORT PFNGLGETTRANSLATEDSHADERSOURCEANGLEPROC __glewGetTranslatedShaderSourceANGLE; +GLEW_FUN_EXPORT PFNGLCOPYTEXTURELEVELSAPPLEPROC __glewCopyTextureLevelsAPPLE; + GLEW_FUN_EXPORT PFNGLDRAWELEMENTARRAYAPPLEPROC __glewDrawElementArrayAPPLE; GLEW_FUN_EXPORT PFNGLDRAWRANGEELEMENTARRAYAPPLEPROC __glewDrawRangeElementArrayAPPLE; GLEW_FUN_EXPORT PFNGLELEMENTPOINTERAPPLEPROC __glewElementPointerAPPLE; @@ -16807,10 +22676,21 @@ GLEW_FUN_EXPORT PFNGLTESTOBJECTAPPLEPROC __glewTestObjectAPPLE; GLEW_FUN_EXPORT PFNGLBUFFERPARAMETERIAPPLEPROC __glewBufferParameteriAPPLE; GLEW_FUN_EXPORT PFNGLFLUSHMAPPEDBUFFERRANGEAPPLEPROC __glewFlushMappedBufferRangeAPPLE; +GLEW_FUN_EXPORT PFNGLRENDERBUFFERSTORAGEMULTISAMPLEAPPLEPROC __glewRenderbufferStorageMultisampleAPPLE; +GLEW_FUN_EXPORT PFNGLRESOLVEMULTISAMPLEFRAMEBUFFERAPPLEPROC __glewResolveMultisampleFramebufferAPPLE; + GLEW_FUN_EXPORT PFNGLGETOBJECTPARAMETERIVAPPLEPROC __glewGetObjectParameterivAPPLE; GLEW_FUN_EXPORT PFNGLOBJECTPURGEABLEAPPLEPROC __glewObjectPurgeableAPPLE; GLEW_FUN_EXPORT PFNGLOBJECTUNPURGEABLEAPPLEPROC __glewObjectUnpurgeableAPPLE; +GLEW_FUN_EXPORT PFNGLCLIENTWAITSYNCAPPLEPROC __glewClientWaitSyncAPPLE; +GLEW_FUN_EXPORT PFNGLDELETESYNCAPPLEPROC __glewDeleteSyncAPPLE; +GLEW_FUN_EXPORT PFNGLFENCESYNCAPPLEPROC __glewFenceSyncAPPLE; +GLEW_FUN_EXPORT PFNGLGETINTEGER64VAPPLEPROC __glewGetInteger64vAPPLE; +GLEW_FUN_EXPORT PFNGLGETSYNCIVAPPLEPROC __glewGetSyncivAPPLE; +GLEW_FUN_EXPORT PFNGLISSYNCAPPLEPROC __glewIsSyncAPPLE; +GLEW_FUN_EXPORT PFNGLWAITSYNCAPPLEPROC __glewWaitSyncAPPLE; + GLEW_FUN_EXPORT PFNGLGETTEXPARAMETERPOINTERVAPPLEPROC __glewGetTexParameterPointervAPPLE; GLEW_FUN_EXPORT PFNGLTEXTURERANGEAPPLEPROC __glewTextureRangeAPPLE; @@ -16866,7 +22746,6 @@ GLEW_FUN_EXPORT PFNGLBINDFRAGDATALOCATIONINDEXEDPROC __glewBindFragDataLocationI GLEW_FUN_EXPORT PFNGLGETFRAGDATAINDEXPROC __glewGetFragDataIndex; GLEW_FUN_EXPORT PFNGLBUFFERSTORAGEPROC __glewBufferStorage; -GLEW_FUN_EXPORT PFNGLNAMEDBUFFERSTORAGEEXTPROC __glewNamedBufferStorageEXT; GLEW_FUN_EXPORT PFNGLCREATESYNCFROMCLEVENTARBPROC __glewCreateSyncFromCLeventARB; @@ -17047,6 +22926,8 @@ GLEW_FUN_EXPORT PFNGLPROGRAMPARAMETERIPROC __glewProgramParameteri; GLEW_FUN_EXPORT PFNGLGETCOMPRESSEDTEXTURESUBIMAGEPROC __glewGetCompressedTextureSubImage; GLEW_FUN_EXPORT PFNGLGETTEXTURESUBIMAGEPROC __glewGetTextureSubImage; +GLEW_FUN_EXPORT PFNGLSPECIALIZESHADERARBPROC __glewSpecializeShaderARB; + GLEW_FUN_EXPORT PFNGLGETUNIFORMDVPROC __glewGetUniformdv; GLEW_FUN_EXPORT PFNGLUNIFORM1DPROC __glewUniform1d; GLEW_FUN_EXPORT PFNGLUNIFORM1DVPROC __glewUniform1dv; @@ -17224,6 +23105,8 @@ GLEW_FUN_EXPORT PFNGLMAXSHADERCOMPILERTHREADSARBPROC __glewMaxShaderCompilerThre GLEW_FUN_EXPORT PFNGLPOINTPARAMETERFARBPROC __glewPointParameterfARB; GLEW_FUN_EXPORT PFNGLPOINTPARAMETERFVARBPROC __glewPointParameterfvARB; +GLEW_FUN_EXPORT PFNGLPOLYGONOFFSETCLAMPPROC __glewPolygonOffsetClamp; + GLEW_FUN_EXPORT PFNGLGETPROGRAMINTERFACEIVPROC __glewGetProgramInterfaceiv; GLEW_FUN_EXPORT PFNGLGETPROGRAMRESOURCEINDEXPROC __glewGetProgramResourceIndex; GLEW_FUN_EXPORT PFNGLGETPROGRAMRESOURCELOCATIONPROC __glewGetProgramResourceLocation; @@ -17401,7 +23284,6 @@ GLEW_FUN_EXPORT PFNGLNAMEDSTRINGARBPROC __glewNamedStringARB; GLEW_FUN_EXPORT PFNGLBUFFERPAGECOMMITMENTARBPROC __glewBufferPageCommitmentARB; GLEW_FUN_EXPORT PFNGLTEXPAGECOMMITMENTARBPROC __glewTexPageCommitmentARB; -GLEW_FUN_EXPORT PFNGLTEXTUREPAGECOMMITMENTEXTPROC __glewTexturePageCommitmentEXT; GLEW_FUN_EXPORT PFNGLCLIENTWAITSYNCPROC __glewClientWaitSync; GLEW_FUN_EXPORT PFNGLDELETESYNCPROC __glewDeleteSync; @@ -17437,9 +23319,6 @@ GLEW_FUN_EXPORT PFNGLTEXIMAGE3DMULTISAMPLEPROC __glewTexImage3DMultisample; GLEW_FUN_EXPORT PFNGLTEXSTORAGE1DPROC __glewTexStorage1D; GLEW_FUN_EXPORT PFNGLTEXSTORAGE2DPROC __glewTexStorage2D; GLEW_FUN_EXPORT PFNGLTEXSTORAGE3DPROC __glewTexStorage3D; -GLEW_FUN_EXPORT PFNGLTEXTURESTORAGE1DEXTPROC __glewTextureStorage1DEXT; -GLEW_FUN_EXPORT PFNGLTEXTURESTORAGE2DEXTPROC __glewTextureStorage2DEXT; -GLEW_FUN_EXPORT PFNGLTEXTURESTORAGE3DEXTPROC __glewTextureStorage3DEXT; GLEW_FUN_EXPORT PFNGLTEXSTORAGE2DMULTISAMPLEPROC __glewTexStorage2DMultisample; GLEW_FUN_EXPORT PFNGLTEXSTORAGE3DMULTISAMPLEPROC __glewTexStorage3DMultisample; @@ -17768,6 +23647,13 @@ GLEW_FUN_EXPORT PFNGLVERTEXSTREAM4IVATIPROC __glewVertexStream4ivATI; GLEW_FUN_EXPORT PFNGLVERTEXSTREAM4SATIPROC __glewVertexStream4sATI; GLEW_FUN_EXPORT PFNGLVERTEXSTREAM4SVATIPROC __glewVertexStream4svATI; +GLEW_FUN_EXPORT PFNGLEGLIMAGETARGETTEXSTORAGEEXTPROC __glewEGLImageTargetTexStorageEXT; +GLEW_FUN_EXPORT PFNGLEGLIMAGETARGETTEXTURESTORAGEEXTPROC __glewEGLImageTargetTextureStorageEXT; + +GLEW_FUN_EXPORT PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEEXTPROC __glewDrawArraysInstancedBaseInstanceEXT; +GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEEXTPROC __glewDrawElementsInstancedBaseInstanceEXT; +GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEEXTPROC __glewDrawElementsInstancedBaseVertexBaseInstanceEXT; + GLEW_FUN_EXPORT PFNGLGETUNIFORMBUFFERSIZEEXTPROC __glewGetUniformBufferSizeEXT; GLEW_FUN_EXPORT PFNGLGETUNIFORMOFFSETEXTPROC __glewGetUniformOffsetEXT; GLEW_FUN_EXPORT PFNGLUNIFORMBUFFEREXTPROC __glewUniformBufferEXT; @@ -17776,10 +23662,22 @@ GLEW_FUN_EXPORT PFNGLBLENDCOLOREXTPROC __glewBlendColorEXT; GLEW_FUN_EXPORT PFNGLBLENDEQUATIONSEPARATEEXTPROC __glewBlendEquationSeparateEXT; +GLEW_FUN_EXPORT PFNGLBINDFRAGDATALOCATIONINDEXEDEXTPROC __glewBindFragDataLocationIndexedEXT; +GLEW_FUN_EXPORT PFNGLGETFRAGDATAINDEXEXTPROC __glewGetFragDataIndexEXT; +GLEW_FUN_EXPORT PFNGLGETPROGRAMRESOURCELOCATIONINDEXEXTPROC __glewGetProgramResourceLocationIndexEXT; + GLEW_FUN_EXPORT PFNGLBLENDFUNCSEPARATEEXTPROC __glewBlendFuncSeparateEXT; GLEW_FUN_EXPORT PFNGLBLENDEQUATIONEXTPROC __glewBlendEquationEXT; +GLEW_FUN_EXPORT PFNGLBUFFERSTORAGEEXTPROC __glewBufferStorageEXT; +GLEW_FUN_EXPORT PFNGLNAMEDBUFFERSTORAGEEXTPROC __glewNamedBufferStorageEXT; + +GLEW_FUN_EXPORT PFNGLCLEARTEXIMAGEEXTPROC __glewClearTexImageEXT; +GLEW_FUN_EXPORT PFNGLCLEARTEXSUBIMAGEEXTPROC __glewClearTexSubImageEXT; + +GLEW_FUN_EXPORT PFNGLCLIPCONTROLEXTPROC __glewClipControlEXT; + GLEW_FUN_EXPORT PFNGLCOLORSUBTABLEEXTPROC __glewColorSubTableEXT; GLEW_FUN_EXPORT PFNGLCOPYCOLORSUBTABLEEXTPROC __glewCopyColorSubTableEXT; @@ -17803,6 +23701,8 @@ GLEW_FUN_EXPORT PFNGLSEPARABLEFILTER2DEXTPROC __glewSeparableFilter2DEXT; GLEW_FUN_EXPORT PFNGLBINORMALPOINTEREXTPROC __glewBinormalPointerEXT; GLEW_FUN_EXPORT PFNGLTANGENTPOINTEREXTPROC __glewTangentPointerEXT; +GLEW_FUN_EXPORT PFNGLCOPYIMAGESUBDATAEXTPROC __glewCopyImageSubDataEXT; + GLEW_FUN_EXPORT PFNGLCOPYTEXIMAGE1DEXTPROC __glewCopyTexImage1DEXT; GLEW_FUN_EXPORT PFNGLCOPYTEXIMAGE2DEXTPROC __glewCopyTexImage2DEXT; GLEW_FUN_EXPORT PFNGLCOPYTEXSUBIMAGE1DEXTPROC __glewCopyTexSubImage1DEXT; @@ -18036,6 +23936,21 @@ GLEW_FUN_EXPORT PFNGLVERTEXARRAYVERTEXATTRIBIOFFSETEXTPROC __glewVertexArrayVert GLEW_FUN_EXPORT PFNGLVERTEXARRAYVERTEXATTRIBOFFSETEXTPROC __glewVertexArrayVertexAttribOffsetEXT; GLEW_FUN_EXPORT PFNGLVERTEXARRAYVERTEXOFFSETEXTPROC __glewVertexArrayVertexOffsetEXT; +GLEW_FUN_EXPORT PFNGLDISCARDFRAMEBUFFEREXTPROC __glewDiscardFramebufferEXT; + +GLEW_FUN_EXPORT PFNGLBEGINQUERYEXTPROC __glewBeginQueryEXT; +GLEW_FUN_EXPORT PFNGLDELETEQUERIESEXTPROC __glewDeleteQueriesEXT; +GLEW_FUN_EXPORT PFNGLENDQUERYEXTPROC __glewEndQueryEXT; +GLEW_FUN_EXPORT PFNGLGENQUERIESEXTPROC __glewGenQueriesEXT; +GLEW_FUN_EXPORT PFNGLGETINTEGER64VEXTPROC __glewGetInteger64vEXT; +GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTIVEXTPROC __glewGetQueryObjectivEXT; +GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTUIVEXTPROC __glewGetQueryObjectuivEXT; +GLEW_FUN_EXPORT PFNGLGETQUERYIVEXTPROC __glewGetQueryivEXT; +GLEW_FUN_EXPORT PFNGLISQUERYEXTPROC __glewIsQueryEXT; +GLEW_FUN_EXPORT PFNGLQUERYCOUNTEREXTPROC __glewQueryCounterEXT; + +GLEW_FUN_EXPORT PFNGLDRAWBUFFERSEXTPROC __glewDrawBuffersEXT; + GLEW_FUN_EXPORT PFNGLCOLORMASKINDEXEDEXTPROC __glewColorMaskIndexedEXT; GLEW_FUN_EXPORT PFNGLDISABLEINDEXEDEXTPROC __glewDisableIndexedEXT; GLEW_FUN_EXPORT PFNGLENABLEINDEXEDEXTPROC __glewEnableIndexedEXT; @@ -18043,11 +23958,31 @@ GLEW_FUN_EXPORT PFNGLGETBOOLEANINDEXEDVEXTPROC __glewGetBooleanIndexedvEXT; GLEW_FUN_EXPORT PFNGLGETINTEGERINDEXEDVEXTPROC __glewGetIntegerIndexedvEXT; GLEW_FUN_EXPORT PFNGLISENABLEDINDEXEDEXTPROC __glewIsEnabledIndexedEXT; +GLEW_FUN_EXPORT PFNGLBLENDEQUATIONSEPARATEIEXTPROC __glewBlendEquationSeparateiEXT; +GLEW_FUN_EXPORT PFNGLBLENDEQUATIONIEXTPROC __glewBlendEquationiEXT; +GLEW_FUN_EXPORT PFNGLBLENDFUNCSEPARATEIEXTPROC __glewBlendFuncSeparateiEXT; +GLEW_FUN_EXPORT PFNGLBLENDFUNCIEXTPROC __glewBlendFunciEXT; +GLEW_FUN_EXPORT PFNGLCOLORMASKIEXTPROC __glewColorMaskiEXT; +GLEW_FUN_EXPORT PFNGLDISABLEIEXTPROC __glewDisableiEXT; +GLEW_FUN_EXPORT PFNGLENABLEIEXTPROC __glewEnableiEXT; +GLEW_FUN_EXPORT PFNGLISENABLEDIEXTPROC __glewIsEnablediEXT; + +GLEW_FUN_EXPORT PFNGLDRAWELEMENTSBASEVERTEXEXTPROC __glewDrawElementsBaseVertexEXT; +GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXEXTPROC __glewDrawElementsInstancedBaseVertexEXT; +GLEW_FUN_EXPORT PFNGLDRAWRANGEELEMENTSBASEVERTEXEXTPROC __glewDrawRangeElementsBaseVertexEXT; +GLEW_FUN_EXPORT PFNGLMULTIDRAWELEMENTSBASEVERTEXEXTPROC __glewMultiDrawElementsBaseVertexEXT; + GLEW_FUN_EXPORT PFNGLDRAWARRAYSINSTANCEDEXTPROC __glewDrawArraysInstancedEXT; GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINSTANCEDEXTPROC __glewDrawElementsInstancedEXT; GLEW_FUN_EXPORT PFNGLDRAWRANGEELEMENTSEXTPROC __glewDrawRangeElementsEXT; +GLEW_FUN_EXPORT PFNGLDRAWTRANSFORMFEEDBACKEXTPROC __glewDrawTransformFeedbackEXT; +GLEW_FUN_EXPORT PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDEXTPROC __glewDrawTransformFeedbackInstancedEXT; + +GLEW_FUN_EXPORT PFNGLBUFFERSTORAGEEXTERNALEXTPROC __glewBufferStorageExternalEXT; +GLEW_FUN_EXPORT PFNGLNAMEDBUFFERSTORAGEEXTERNALEXTPROC __glewNamedBufferStorageExternalEXT; + GLEW_FUN_EXPORT PFNGLFOGCOORDPOINTEREXTPROC __glewFogCoordPointerEXT; GLEW_FUN_EXPORT PFNGLFOGCOORDDEXTPROC __glewFogCoorddEXT; GLEW_FUN_EXPORT PFNGLFOGCOORDDVEXTPROC __glewFogCoorddvEXT; @@ -18152,16 +24087,55 @@ GLEW_FUN_EXPORT PFNGLINDEXFUNCEXTPROC __glewIndexFuncEXT; GLEW_FUN_EXPORT PFNGLINDEXMATERIALEXTPROC __glewIndexMaterialEXT; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBDIVISOREXTPROC __glewVertexAttribDivisorEXT; + GLEW_FUN_EXPORT PFNGLAPPLYTEXTUREEXTPROC __glewApplyTextureEXT; GLEW_FUN_EXPORT PFNGLTEXTURELIGHTEXTPROC __glewTextureLightEXT; GLEW_FUN_EXPORT PFNGLTEXTUREMATERIALEXTPROC __glewTextureMaterialEXT; +GLEW_FUN_EXPORT PFNGLFLUSHMAPPEDBUFFERRANGEEXTPROC __glewFlushMappedBufferRangeEXT; +GLEW_FUN_EXPORT PFNGLMAPBUFFERRANGEEXTPROC __glewMapBufferRangeEXT; + +GLEW_FUN_EXPORT PFNGLBUFFERSTORAGEMEMEXTPROC __glewBufferStorageMemEXT; +GLEW_FUN_EXPORT PFNGLCREATEMEMORYOBJECTSEXTPROC __glewCreateMemoryObjectsEXT; +GLEW_FUN_EXPORT PFNGLDELETEMEMORYOBJECTSEXTPROC __glewDeleteMemoryObjectsEXT; +GLEW_FUN_EXPORT PFNGLGETMEMORYOBJECTPARAMETERIVEXTPROC __glewGetMemoryObjectParameterivEXT; +GLEW_FUN_EXPORT PFNGLGETUNSIGNEDBYTEI_VEXTPROC __glewGetUnsignedBytei_vEXT; +GLEW_FUN_EXPORT PFNGLGETUNSIGNEDBYTEVEXTPROC __glewGetUnsignedBytevEXT; +GLEW_FUN_EXPORT PFNGLISMEMORYOBJECTEXTPROC __glewIsMemoryObjectEXT; +GLEW_FUN_EXPORT PFNGLMEMORYOBJECTPARAMETERIVEXTPROC __glewMemoryObjectParameterivEXT; +GLEW_FUN_EXPORT PFNGLNAMEDBUFFERSTORAGEMEMEXTPROC __glewNamedBufferStorageMemEXT; +GLEW_FUN_EXPORT PFNGLTEXSTORAGEMEM1DEXTPROC __glewTexStorageMem1DEXT; +GLEW_FUN_EXPORT PFNGLTEXSTORAGEMEM2DEXTPROC __glewTexStorageMem2DEXT; +GLEW_FUN_EXPORT PFNGLTEXSTORAGEMEM2DMULTISAMPLEEXTPROC __glewTexStorageMem2DMultisampleEXT; +GLEW_FUN_EXPORT PFNGLTEXSTORAGEMEM3DEXTPROC __glewTexStorageMem3DEXT; +GLEW_FUN_EXPORT PFNGLTEXSTORAGEMEM3DMULTISAMPLEEXTPROC __glewTexStorageMem3DMultisampleEXT; +GLEW_FUN_EXPORT PFNGLTEXTURESTORAGEMEM1DEXTPROC __glewTextureStorageMem1DEXT; +GLEW_FUN_EXPORT PFNGLTEXTURESTORAGEMEM2DEXTPROC __glewTextureStorageMem2DEXT; +GLEW_FUN_EXPORT PFNGLTEXTURESTORAGEMEM2DMULTISAMPLEEXTPROC __glewTextureStorageMem2DMultisampleEXT; +GLEW_FUN_EXPORT PFNGLTEXTURESTORAGEMEM3DEXTPROC __glewTextureStorageMem3DEXT; +GLEW_FUN_EXPORT PFNGLTEXTURESTORAGEMEM3DMULTISAMPLEEXTPROC __glewTextureStorageMem3DMultisampleEXT; + +GLEW_FUN_EXPORT PFNGLIMPORTMEMORYFDEXTPROC __glewImportMemoryFdEXT; + +GLEW_FUN_EXPORT PFNGLIMPORTMEMORYWIN32HANDLEEXTPROC __glewImportMemoryWin32HandleEXT; +GLEW_FUN_EXPORT PFNGLIMPORTMEMORYWIN32NAMEEXTPROC __glewImportMemoryWin32NameEXT; + GLEW_FUN_EXPORT PFNGLMULTIDRAWARRAYSEXTPROC __glewMultiDrawArraysEXT; GLEW_FUN_EXPORT PFNGLMULTIDRAWELEMENTSEXTPROC __glewMultiDrawElementsEXT; +GLEW_FUN_EXPORT PFNGLMULTIDRAWARRAYSINDIRECTEXTPROC __glewMultiDrawArraysIndirectEXT; +GLEW_FUN_EXPORT PFNGLMULTIDRAWELEMENTSINDIRECTEXTPROC __glewMultiDrawElementsIndirectEXT; + GLEW_FUN_EXPORT PFNGLSAMPLEMASKEXTPROC __glewSampleMaskEXT; GLEW_FUN_EXPORT PFNGLSAMPLEPATTERNEXTPROC __glewSamplePatternEXT; +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEEXTPROC __glewFramebufferTexture2DMultisampleEXT; + +GLEW_FUN_EXPORT PFNGLDRAWBUFFERSINDEXEDEXTPROC __glewDrawBuffersIndexedEXT; +GLEW_FUN_EXPORT PFNGLGETINTEGERI_VEXTPROC __glewGetIntegeri_vEXT; +GLEW_FUN_EXPORT PFNGLREADBUFFERINDEXEDEXTPROC __glewReadBufferIndexedEXT; + GLEW_FUN_EXPORT PFNGLCOLORTABLEEXTPROC __glewColorTableEXT; GLEW_FUN_EXPORT PFNGLGETCOLORTABLEEXTPROC __glewGetColorTableEXT; GLEW_FUN_EXPORT PFNGLGETCOLORTABLEPARAMETERFVEXTPROC __glewGetColorTableParameterfvEXT; @@ -18181,6 +24155,8 @@ GLEW_FUN_EXPORT PFNGLPOLYGONOFFSETEXTPROC __glewPolygonOffsetEXT; GLEW_FUN_EXPORT PFNGLPOLYGONOFFSETCLAMPEXTPROC __glewPolygonOffsetClampEXT; +GLEW_FUN_EXPORT PFNGLPRIMITIVEBOUNDINGBOXEXTPROC __glewPrimitiveBoundingBoxEXT; + GLEW_FUN_EXPORT PFNGLPROVOKINGVERTEXEXTPROC __glewProvokingVertexEXT; GLEW_FUN_EXPORT PFNGLCOVERAGEMODULATIONNVPROC __glewCoverageModulationNV; @@ -18188,6 +24164,10 @@ GLEW_FUN_EXPORT PFNGLCOVERAGEMODULATIONTABLENVPROC __glewCoverageModulationTable GLEW_FUN_EXPORT PFNGLGETCOVERAGEMODULATIONTABLENVPROC __glewGetCoverageModulationTableNV; GLEW_FUN_EXPORT PFNGLRASTERSAMPLESEXTPROC __glewRasterSamplesEXT; +GLEW_FUN_EXPORT PFNGLGETNUNIFORMFVEXTPROC __glewGetnUniformfvEXT; +GLEW_FUN_EXPORT PFNGLGETNUNIFORMIVEXTPROC __glewGetnUniformivEXT; +GLEW_FUN_EXPORT PFNGLREADNPIXELSEXTPROC __glewReadnPixelsEXT; + GLEW_FUN_EXPORT PFNGLBEGINSCENEEXTPROC __glewBeginSceneEXT; GLEW_FUN_EXPORT PFNGLENDSCENEEXTPROC __glewEndSceneEXT; @@ -18209,23 +24189,52 @@ GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3USEXTPROC __glewSecondaryColor3usEXT; GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3USVEXTPROC __glewSecondaryColor3usvEXT; GLEW_FUN_EXPORT PFNGLSECONDARYCOLORPOINTEREXTPROC __glewSecondaryColorPointerEXT; +GLEW_FUN_EXPORT PFNGLDELETESEMAPHORESEXTPROC __glewDeleteSemaphoresEXT; +GLEW_FUN_EXPORT PFNGLGENSEMAPHORESEXTPROC __glewGenSemaphoresEXT; +GLEW_FUN_EXPORT PFNGLGETSEMAPHOREPARAMETERUI64VEXTPROC __glewGetSemaphoreParameterui64vEXT; +GLEW_FUN_EXPORT PFNGLISSEMAPHOREEXTPROC __glewIsSemaphoreEXT; +GLEW_FUN_EXPORT PFNGLSEMAPHOREPARAMETERUI64VEXTPROC __glewSemaphoreParameterui64vEXT; +GLEW_FUN_EXPORT PFNGLSIGNALSEMAPHOREEXTPROC __glewSignalSemaphoreEXT; +GLEW_FUN_EXPORT PFNGLWAITSEMAPHOREEXTPROC __glewWaitSemaphoreEXT; + +GLEW_FUN_EXPORT PFNGLIMPORTSEMAPHOREFDEXTPROC __glewImportSemaphoreFdEXT; + +GLEW_FUN_EXPORT PFNGLIMPORTSEMAPHOREWIN32HANDLEEXTPROC __glewImportSemaphoreWin32HandleEXT; +GLEW_FUN_EXPORT PFNGLIMPORTSEMAPHOREWIN32NAMEEXTPROC __glewImportSemaphoreWin32NameEXT; + GLEW_FUN_EXPORT PFNGLACTIVEPROGRAMEXTPROC __glewActiveProgramEXT; GLEW_FUN_EXPORT PFNGLCREATESHADERPROGRAMEXTPROC __glewCreateShaderProgramEXT; GLEW_FUN_EXPORT PFNGLUSESHADERPROGRAMEXTPROC __glewUseShaderProgramEXT; +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERFETCHBARRIEREXTPROC __glewFramebufferFetchBarrierEXT; + GLEW_FUN_EXPORT PFNGLBINDIMAGETEXTUREEXTPROC __glewBindImageTextureEXT; GLEW_FUN_EXPORT PFNGLMEMORYBARRIEREXTPROC __glewMemoryBarrierEXT; +GLEW_FUN_EXPORT PFNGLCLEARPIXELLOCALSTORAGEUIEXTPROC __glewClearPixelLocalStorageuiEXT; +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERPIXELLOCALSTORAGESIZEEXTPROC __glewFramebufferPixelLocalStorageSizeEXT; +GLEW_FUN_EXPORT PFNGLGETFRAMEBUFFERPIXELLOCALSTORAGESIZEEXTPROC __glewGetFramebufferPixelLocalStorageSizeEXT; + +GLEW_FUN_EXPORT PFNGLTEXPAGECOMMITMENTEXTPROC __glewTexPageCommitmentEXT; +GLEW_FUN_EXPORT PFNGLTEXTUREPAGECOMMITMENTEXTPROC __glewTexturePageCommitmentEXT; + GLEW_FUN_EXPORT PFNGLACTIVESTENCILFACEEXTPROC __glewActiveStencilFaceEXT; GLEW_FUN_EXPORT PFNGLTEXSUBIMAGE1DEXTPROC __glewTexSubImage1DEXT; GLEW_FUN_EXPORT PFNGLTEXSUBIMAGE2DEXTPROC __glewTexSubImage2DEXT; GLEW_FUN_EXPORT PFNGLTEXSUBIMAGE3DEXTPROC __glewTexSubImage3DEXT; +GLEW_FUN_EXPORT PFNGLPATCHPARAMETERIEXTPROC __glewPatchParameteriEXT; + GLEW_FUN_EXPORT PFNGLTEXIMAGE3DEXTPROC __glewTexImage3DEXT; GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC __glewFramebufferTextureLayerEXT; +GLEW_FUN_EXPORT PFNGLGETSAMPLERPARAMETERIIVEXTPROC __glewGetSamplerParameterIivEXT; +GLEW_FUN_EXPORT PFNGLGETSAMPLERPARAMETERIUIVEXTPROC __glewGetSamplerParameterIuivEXT; +GLEW_FUN_EXPORT PFNGLSAMPLERPARAMETERIIVEXTPROC __glewSamplerParameterIivEXT; +GLEW_FUN_EXPORT PFNGLSAMPLERPARAMETERIUIVEXTPROC __glewSamplerParameterIuivEXT; + GLEW_FUN_EXPORT PFNGLTEXBUFFEREXTPROC __glewTexBufferEXT; GLEW_FUN_EXPORT PFNGLCLEARCOLORIIEXTPROC __glewClearColorIiEXT; @@ -18244,6 +24253,15 @@ GLEW_FUN_EXPORT PFNGLPRIORITIZETEXTURESEXTPROC __glewPrioritizeTexturesEXT; GLEW_FUN_EXPORT PFNGLTEXTURENORMALEXTPROC __glewTextureNormalEXT; +GLEW_FUN_EXPORT PFNGLTEXSTORAGE1DEXTPROC __glewTexStorage1DEXT; +GLEW_FUN_EXPORT PFNGLTEXSTORAGE2DEXTPROC __glewTexStorage2DEXT; +GLEW_FUN_EXPORT PFNGLTEXSTORAGE3DEXTPROC __glewTexStorage3DEXT; +GLEW_FUN_EXPORT PFNGLTEXTURESTORAGE1DEXTPROC __glewTextureStorage1DEXT; +GLEW_FUN_EXPORT PFNGLTEXTURESTORAGE2DEXTPROC __glewTextureStorage2DEXT; +GLEW_FUN_EXPORT PFNGLTEXTURESTORAGE3DEXTPROC __glewTextureStorage3DEXT; + +GLEW_FUN_EXPORT PFNGLTEXTUREVIEWEXTPROC __glewTextureViewEXT; + GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTI64VEXTPROC __glewGetQueryObjecti64vEXT; GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTUI64VEXTPROC __glewGetQueryObjectui64vEXT; @@ -18264,6 +24282,10 @@ GLEW_FUN_EXPORT PFNGLNORMALPOINTEREXTPROC __glewNormalPointerEXT; GLEW_FUN_EXPORT PFNGLTEXCOORDPOINTEREXTPROC __glewTexCoordPointerEXT; GLEW_FUN_EXPORT PFNGLVERTEXPOINTEREXTPROC __glewVertexPointerEXT; +GLEW_FUN_EXPORT PFNGLBINDARRAYSETEXTPROC __glewBindArraySetEXT; +GLEW_FUN_EXPORT PFNGLCREATEARRAYSETEXTPROC __glewCreateArraySetExt; +GLEW_FUN_EXPORT PFNGLDELETEARRAYSETSEXTPROC __glewDeleteArraySetsEXT; + GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBLDVEXTPROC __glewGetVertexAttribLdvEXT; GLEW_FUN_EXPORT PFNGLVERTEXARRAYVERTEXATTRIBLOFFSETEXTPROC __glewVertexArrayVertexAttribLOffsetEXT; GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1DEXTPROC __glewVertexAttribL1dEXT; @@ -18323,6 +24345,11 @@ GLEW_FUN_EXPORT PFNGLVERTEXWEIGHTPOINTEREXTPROC __glewVertexWeightPointerEXT; GLEW_FUN_EXPORT PFNGLVERTEXWEIGHTFEXTPROC __glewVertexWeightfEXT; GLEW_FUN_EXPORT PFNGLVERTEXWEIGHTFVEXTPROC __glewVertexWeightfvEXT; +GLEW_FUN_EXPORT PFNGLACQUIREKEYEDMUTEXWIN32EXTPROC __glewAcquireKeyedMutexWin32EXT; +GLEW_FUN_EXPORT PFNGLRELEASEKEYEDMUTEXWIN32EXTPROC __glewReleaseKeyedMutexWin32EXT; + +GLEW_FUN_EXPORT PFNGLWINDOWRECTANGLESEXTPROC __glewWindowRectanglesEXT; + GLEW_FUN_EXPORT PFNGLIMPORTSYNCEXTPROC __glewImportSyncEXT; GLEW_FUN_EXPORT PFNGLFRAMETERMINATORGREMEDYPROC __glewFrameTerminatorGREMEDY; @@ -18348,6 +24375,19 @@ GLEW_FUN_EXPORT PFNGLSECONDARYCOLORPOINTERLISTIBMPROC __glewSecondaryColorPointe GLEW_FUN_EXPORT PFNGLTEXCOORDPOINTERLISTIBMPROC __glewTexCoordPointerListIBM; GLEW_FUN_EXPORT PFNGLVERTEXPOINTERLISTIBMPROC __glewVertexPointerListIBM; +GLEW_FUN_EXPORT PFNGLGETTEXTUREHANDLEIMGPROC __glewGetTextureHandleIMG; +GLEW_FUN_EXPORT PFNGLGETTEXTURESAMPLERHANDLEIMGPROC __glewGetTextureSamplerHandleIMG; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMHANDLEUI64IMGPROC __glewProgramUniformHandleui64IMG; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMHANDLEUI64VIMGPROC __glewProgramUniformHandleui64vIMG; +GLEW_FUN_EXPORT PFNGLUNIFORMHANDLEUI64IMGPROC __glewUniformHandleui64IMG; +GLEW_FUN_EXPORT PFNGLUNIFORMHANDLEUI64VIMGPROC __glewUniformHandleui64vIMG; + +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURE2DDOWNSAMPLEIMGPROC __glewFramebufferTexture2DDownsampleIMG; +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURELAYERDOWNSAMPLEIMGPROC __glewFramebufferTextureLayerDownsampleIMG; + +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEIMGPROC __glewFramebufferTexture2DMultisampleIMG; +GLEW_FUN_EXPORT PFNGLRENDERBUFFERSTORAGEMULTISAMPLEIMGPROC __glewRenderbufferStorageMultisampleIMG; + GLEW_FUN_EXPORT PFNGLMAPTEXTURE2DINTELPROC __glewMapTexture2DINTEL; GLEW_FUN_EXPORT PFNGLSYNCTEXTUREINTELPROC __glewSyncTextureINTEL; GLEW_FUN_EXPORT PFNGLUNMAPTEXTURE2DINTELPROC __glewUnmapTexture2DINTEL; @@ -18384,6 +24424,8 @@ GLEW_FUN_EXPORT PFNGLOBJECTPTRLABELPROC __glewObjectPtrLabel; GLEW_FUN_EXPORT PFNGLPOPDEBUGGROUPPROC __glewPopDebugGroup; GLEW_FUN_EXPORT PFNGLPUSHDEBUGGROUPPROC __glewPushDebugGroup; +GLEW_FUN_EXPORT PFNGLMAXSHADERCOMPILERTHREADSKHRPROC __glewMaxShaderCompilerThreadsKHR; + GLEW_FUN_EXPORT PFNGLGETNUNIFORMFVPROC __glewGetnUniformfv; GLEW_FUN_EXPORT PFNGLGETNUNIFORMIVPROC __glewGetnUniformiv; GLEW_FUN_EXPORT PFNGLGETNUNIFORMUIVPROC __glewGetnUniformuiv; @@ -18395,6 +24437,9 @@ GLEW_FUN_EXPORT PFNGLDRAWBUFFERREGIONPROC __glewDrawBufferRegion; GLEW_FUN_EXPORT PFNGLNEWBUFFERREGIONPROC __glewNewBufferRegion; GLEW_FUN_EXPORT PFNGLREADBUFFERREGIONPROC __glewReadBufferRegion; +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERPARAMETERIMESAPROC __glewFramebufferParameteriMESA; +GLEW_FUN_EXPORT PFNGLGETFRAMEBUFFERPARAMETERIVMESAPROC __glewGetFramebufferParameterivMESA; + GLEW_FUN_EXPORT PFNGLRESIZEBUFFERSMESAPROC __glewResizeBuffersMESA; GLEW_FUN_EXPORT PFNGLWINDOWPOS2DMESAPROC __glewWindowPos2dMESA; @@ -18425,6 +24470,26 @@ GLEW_FUN_EXPORT PFNGLWINDOWPOS4SVMESAPROC __glewWindowPos4svMESA; GLEW_FUN_EXPORT PFNGLBEGINCONDITIONALRENDERNVXPROC __glewBeginConditionalRenderNVX; GLEW_FUN_EXPORT PFNGLENDCONDITIONALRENDERNVXPROC __glewEndConditionalRenderNVX; +GLEW_FUN_EXPORT PFNGLASYNCCOPYBUFFERSUBDATANVXPROC __glewAsyncCopyBufferSubDataNVX; +GLEW_FUN_EXPORT PFNGLASYNCCOPYIMAGESUBDATANVXPROC __glewAsyncCopyImageSubDataNVX; +GLEW_FUN_EXPORT PFNGLMULTICASTSCISSORARRAYVNVXPROC __glewMulticastScissorArrayvNVX; +GLEW_FUN_EXPORT PFNGLMULTICASTVIEWPORTARRAYVNVXPROC __glewMulticastViewportArrayvNVX; +GLEW_FUN_EXPORT PFNGLMULTICASTVIEWPORTPOSITIONWSCALENVXPROC __glewMulticastViewportPositionWScaleNVX; +GLEW_FUN_EXPORT PFNGLUPLOADGPUMASKNVXPROC __glewUploadGpuMaskNVX; + +GLEW_FUN_EXPORT PFNGLLGPUCOPYIMAGESUBDATANVXPROC __glewLGPUCopyImageSubDataNVX; +GLEW_FUN_EXPORT PFNGLLGPUINTERLOCKNVXPROC __glewLGPUInterlockNVX; +GLEW_FUN_EXPORT PFNGLLGPUNAMEDBUFFERSUBDATANVXPROC __glewLGPUNamedBufferSubDataNVX; + +GLEW_FUN_EXPORT PFNGLCLIENTWAITSEMAPHOREUI64NVXPROC __glewClientWaitSemaphoreui64NVX; +GLEW_FUN_EXPORT PFNGLSIGNALSEMAPHOREUI64NVXPROC __glewSignalSemaphoreui64NVX; +GLEW_FUN_EXPORT PFNGLWAITSEMAPHOREUI64NVXPROC __glewWaitSemaphoreui64NVX; + +GLEW_FUN_EXPORT PFNGLSTEREOPARAMETERFNVPROC __glewStereoParameterfNV; +GLEW_FUN_EXPORT PFNGLSTEREOPARAMETERINVPROC __glewStereoParameteriNV; + +GLEW_FUN_EXPORT PFNGLALPHATOCOVERAGEDITHERCONTROLNVPROC __glewAlphaToCoverageDitherControlNV; + GLEW_FUN_EXPORT PFNGLMULTIDRAWARRAYSINDIRECTBINDLESSNVPROC __glewMultiDrawArraysIndirectBindlessNV; GLEW_FUN_EXPORT PFNGLMULTIDRAWELEMENTSINDIRECTBINDLESSNVPROC __glewMultiDrawElementsIndirectBindlessNV; @@ -18448,6 +24513,26 @@ GLEW_FUN_EXPORT PFNGLUNIFORMHANDLEUI64VNVPROC __glewUniformHandleui64vNV; GLEW_FUN_EXPORT PFNGLBLENDBARRIERNVPROC __glewBlendBarrierNV; GLEW_FUN_EXPORT PFNGLBLENDPARAMETERINVPROC __glewBlendParameteriNV; +GLEW_FUN_EXPORT PFNGLVIEWPORTPOSITIONWSCALENVPROC __glewViewportPositionWScaleNV; + +GLEW_FUN_EXPORT PFNGLCALLCOMMANDLISTNVPROC __glewCallCommandListNV; +GLEW_FUN_EXPORT PFNGLCOMMANDLISTSEGMENTSNVPROC __glewCommandListSegmentsNV; +GLEW_FUN_EXPORT PFNGLCOMPILECOMMANDLISTNVPROC __glewCompileCommandListNV; +GLEW_FUN_EXPORT PFNGLCREATECOMMANDLISTSNVPROC __glewCreateCommandListsNV; +GLEW_FUN_EXPORT PFNGLCREATESTATESNVPROC __glewCreateStatesNV; +GLEW_FUN_EXPORT PFNGLDELETECOMMANDLISTSNVPROC __glewDeleteCommandListsNV; +GLEW_FUN_EXPORT PFNGLDELETESTATESNVPROC __glewDeleteStatesNV; +GLEW_FUN_EXPORT PFNGLDRAWCOMMANDSADDRESSNVPROC __glewDrawCommandsAddressNV; +GLEW_FUN_EXPORT PFNGLDRAWCOMMANDSNVPROC __glewDrawCommandsNV; +GLEW_FUN_EXPORT PFNGLDRAWCOMMANDSSTATESADDRESSNVPROC __glewDrawCommandsStatesAddressNV; +GLEW_FUN_EXPORT PFNGLDRAWCOMMANDSSTATESNVPROC __glewDrawCommandsStatesNV; +GLEW_FUN_EXPORT PFNGLGETCOMMANDHEADERNVPROC __glewGetCommandHeaderNV; +GLEW_FUN_EXPORT PFNGLGETSTAGEINDEXNVPROC __glewGetStageIndexNV; +GLEW_FUN_EXPORT PFNGLISCOMMANDLISTNVPROC __glewIsCommandListNV; +GLEW_FUN_EXPORT PFNGLISSTATENVPROC __glewIsStateNV; +GLEW_FUN_EXPORT PFNGLLISTDRAWCOMMANDSSTATESCLIENTNVPROC __glewListDrawCommandsStatesClientNV; +GLEW_FUN_EXPORT PFNGLSTATECAPTURENVPROC __glewStateCaptureNV; + GLEW_FUN_EXPORT PFNGLBEGINCONDITIONALRENDERNVPROC __glewBeginConditionalRenderNV; GLEW_FUN_EXPORT PFNGLENDCONDITIONALRENDERNVPROC __glewEndConditionalRenderNV; @@ -18455,14 +24540,29 @@ GLEW_FUN_EXPORT PFNGLSUBPIXELPRECISIONBIASNVPROC __glewSubpixelPrecisionBiasNV; GLEW_FUN_EXPORT PFNGLCONSERVATIVERASTERPARAMETERFNVPROC __glewConservativeRasterParameterfNV; +GLEW_FUN_EXPORT PFNGLCONSERVATIVERASTERPARAMETERINVPROC __glewConservativeRasterParameteriNV; + +GLEW_FUN_EXPORT PFNGLCOPYBUFFERSUBDATANVPROC __glewCopyBufferSubDataNV; + GLEW_FUN_EXPORT PFNGLCOPYIMAGESUBDATANVPROC __glewCopyImageSubDataNV; GLEW_FUN_EXPORT PFNGLCLEARDEPTHDNVPROC __glewClearDepthdNV; GLEW_FUN_EXPORT PFNGLDEPTHBOUNDSDNVPROC __glewDepthBoundsdNV; GLEW_FUN_EXPORT PFNGLDEPTHRANGEDNVPROC __glewDepthRangedNV; +GLEW_FUN_EXPORT PFNGLDRAWBUFFERSNVPROC __glewDrawBuffersNV; + +GLEW_FUN_EXPORT PFNGLDRAWARRAYSINSTANCEDNVPROC __glewDrawArraysInstancedNV; +GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINSTANCEDNVPROC __glewDrawElementsInstancedNV; + GLEW_FUN_EXPORT PFNGLDRAWTEXTURENVPROC __glewDrawTextureNV; +GLEW_FUN_EXPORT PFNGLDRAWVKIMAGENVPROC __glewDrawVkImageNV; +GLEW_FUN_EXPORT PFNGLGETVKPROCADDRNVPROC __glewGetVkProcAddrNV; +GLEW_FUN_EXPORT PFNGLSIGNALVKFENCENVPROC __glewSignalVkFenceNV; +GLEW_FUN_EXPORT PFNGLSIGNALVKSEMAPHORENVPROC __glewSignalVkSemaphoreNV; +GLEW_FUN_EXPORT PFNGLWAITVKSEMAPHORENVPROC __glewWaitVkSemaphoreNV; + GLEW_FUN_EXPORT PFNGLEVALMAPSNVPROC __glewEvalMapsNV; GLEW_FUN_EXPORT PFNGLGETMAPATTRIBPARAMETERFVNVPROC __glewGetMapAttribParameterfvNV; GLEW_FUN_EXPORT PFNGLGETMAPATTRIBPARAMETERIVNVPROC __glewGetMapAttribParameterivNV; @@ -18494,10 +24594,27 @@ GLEW_FUN_EXPORT PFNGLPROGRAMNAMEDPARAMETER4DVNVPROC __glewProgramNamedParameter4 GLEW_FUN_EXPORT PFNGLPROGRAMNAMEDPARAMETER4FNVPROC __glewProgramNamedParameter4fNV; GLEW_FUN_EXPORT PFNGLPROGRAMNAMEDPARAMETER4FVNVPROC __glewProgramNamedParameter4fvNV; +GLEW_FUN_EXPORT PFNGLBLITFRAMEBUFFERNVPROC __glewBlitFramebufferNV; + +GLEW_FUN_EXPORT PFNGLRENDERBUFFERSTORAGEMULTISAMPLENVPROC __glewRenderbufferStorageMultisampleNV; + GLEW_FUN_EXPORT PFNGLRENDERBUFFERSTORAGEMULTISAMPLECOVERAGENVPROC __glewRenderbufferStorageMultisampleCoverageNV; GLEW_FUN_EXPORT PFNGLPROGRAMVERTEXLIMITNVPROC __glewProgramVertexLimitNV; +GLEW_FUN_EXPORT PFNGLMULTICASTBARRIERNVPROC __glewMulticastBarrierNV; +GLEW_FUN_EXPORT PFNGLMULTICASTBLITFRAMEBUFFERNVPROC __glewMulticastBlitFramebufferNV; +GLEW_FUN_EXPORT PFNGLMULTICASTBUFFERSUBDATANVPROC __glewMulticastBufferSubDataNV; +GLEW_FUN_EXPORT PFNGLMULTICASTCOPYBUFFERSUBDATANVPROC __glewMulticastCopyBufferSubDataNV; +GLEW_FUN_EXPORT PFNGLMULTICASTCOPYIMAGESUBDATANVPROC __glewMulticastCopyImageSubDataNV; +GLEW_FUN_EXPORT PFNGLMULTICASTFRAMEBUFFERSAMPLELOCATIONSFVNVPROC __glewMulticastFramebufferSampleLocationsfvNV; +GLEW_FUN_EXPORT PFNGLMULTICASTGETQUERYOBJECTI64VNVPROC __glewMulticastGetQueryObjecti64vNV; +GLEW_FUN_EXPORT PFNGLMULTICASTGETQUERYOBJECTIVNVPROC __glewMulticastGetQueryObjectivNV; +GLEW_FUN_EXPORT PFNGLMULTICASTGETQUERYOBJECTUI64VNVPROC __glewMulticastGetQueryObjectui64vNV; +GLEW_FUN_EXPORT PFNGLMULTICASTGETQUERYOBJECTUIVNVPROC __glewMulticastGetQueryObjectuivNV; +GLEW_FUN_EXPORT PFNGLMULTICASTWAITSYNCNVPROC __glewMulticastWaitSyncNV; +GLEW_FUN_EXPORT PFNGLRENDERGPUMASKNVPROC __glewRenderGpuMaskNV; + GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETERI4INVPROC __glewProgramEnvParameterI4iNV; GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETERI4IVNVPROC __glewProgramEnvParameterI4ivNV; GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETERI4UINVPROC __glewProgramEnvParameterI4uiNV; @@ -18593,8 +24710,29 @@ GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS4HVNVPROC __glewVertexAttribs4hvNV; GLEW_FUN_EXPORT PFNGLVERTEXWEIGHTHNVPROC __glewVertexWeighthNV; GLEW_FUN_EXPORT PFNGLVERTEXWEIGHTHVNVPROC __glewVertexWeighthvNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBDIVISORNVPROC __glewVertexAttribDivisorNV; + GLEW_FUN_EXPORT PFNGLGETINTERNALFORMATSAMPLEIVNVPROC __glewGetInternalformatSampleivNV; +GLEW_FUN_EXPORT PFNGLBUFFERATTACHMEMORYNVPROC __glewBufferAttachMemoryNV; +GLEW_FUN_EXPORT PFNGLGETMEMORYOBJECTDETACHEDRESOURCESUIVNVPROC __glewGetMemoryObjectDetachedResourcesuivNV; +GLEW_FUN_EXPORT PFNGLNAMEDBUFFERATTACHMEMORYNVPROC __glewNamedBufferAttachMemoryNV; +GLEW_FUN_EXPORT PFNGLRESETMEMORYOBJECTPARAMETERNVPROC __glewResetMemoryObjectParameterNV; +GLEW_FUN_EXPORT PFNGLTEXATTACHMEMORYNVPROC __glewTexAttachMemoryNV; +GLEW_FUN_EXPORT PFNGLTEXTUREATTACHMEMORYNVPROC __glewTextureAttachMemoryNV; + +GLEW_FUN_EXPORT PFNGLDRAWMESHTASKSINDIRECTNVPROC __glewDrawMeshTasksIndirectNV; +GLEW_FUN_EXPORT PFNGLDRAWMESHTASKSNVPROC __glewDrawMeshTasksNV; +GLEW_FUN_EXPORT PFNGLMULTIDRAWMESHTASKSINDIRECTCOUNTNVPROC __glewMultiDrawMeshTasksIndirectCountNV; +GLEW_FUN_EXPORT PFNGLMULTIDRAWMESHTASKSINDIRECTNVPROC __glewMultiDrawMeshTasksIndirectNV; + +GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX2X3FVNVPROC __glewUniformMatrix2x3fvNV; +GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX2X4FVNVPROC __glewUniformMatrix2x4fvNV; +GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX3X2FVNVPROC __glewUniformMatrix3x2fvNV; +GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX3X4FVNVPROC __glewUniformMatrix3x4fvNV; +GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX4X2FVNVPROC __glewUniformMatrix4x2fvNV; +GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX4X3FVNVPROC __glewUniformMatrix4x3fvNV; + GLEW_FUN_EXPORT PFNGLBEGINOCCLUSIONQUERYNVPROC __glewBeginOcclusionQueryNV; GLEW_FUN_EXPORT PFNGLDELETEOCCLUSIONQUERIESNVPROC __glewDeleteOcclusionQueriesNV; GLEW_FUN_EXPORT PFNGLENDOCCLUSIONQUERYNVPROC __glewEndOcclusionQueryNV; @@ -18678,6 +24816,8 @@ GLEW_FUN_EXPORT PFNGLPIXELDATARANGENVPROC __glewPixelDataRangeNV; GLEW_FUN_EXPORT PFNGLPOINTPARAMETERINVPROC __glewPointParameteriNV; GLEW_FUN_EXPORT PFNGLPOINTPARAMETERIVNVPROC __glewPointParameterivNV; +GLEW_FUN_EXPORT PFNGLPOLYGONMODENVPROC __glewPolygonModeNV; + GLEW_FUN_EXPORT PFNGLGETVIDEOI64VNVPROC __glewGetVideoi64vNV; GLEW_FUN_EXPORT PFNGLGETVIDEOIVNVPROC __glewGetVideoivNV; GLEW_FUN_EXPORT PFNGLGETVIDEOUI64VNVPROC __glewGetVideoui64vNV; @@ -18688,6 +24828,8 @@ GLEW_FUN_EXPORT PFNGLPRESENTFRAMEKEYEDNVPROC __glewPresentFrameKeyedNV; GLEW_FUN_EXPORT PFNGLPRIMITIVERESTARTINDEXNVPROC __glewPrimitiveRestartIndexNV; GLEW_FUN_EXPORT PFNGLPRIMITIVERESTARTNVPROC __glewPrimitiveRestartNV; +GLEW_FUN_EXPORT PFNGLREADBUFFERNVPROC __glewReadBufferNV; + GLEW_FUN_EXPORT PFNGLCOMBINERINPUTNVPROC __glewCombinerInputNV; GLEW_FUN_EXPORT PFNGLCOMBINEROUTPUTNVPROC __glewCombinerOutputNV; GLEW_FUN_EXPORT PFNGLCOMBINERPARAMETERFNVPROC __glewCombinerParameterfNV; @@ -18707,6 +24849,10 @@ GLEW_FUN_EXPORT PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC __glewGetCombinerStagePar GLEW_FUN_EXPORT PFNGLFRAMEBUFFERSAMPLELOCATIONSFVNVPROC __glewFramebufferSampleLocationsfvNV; GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVNVPROC __glewNamedFramebufferSampleLocationsfvNV; +GLEW_FUN_EXPORT PFNGLRESOLVEDEPTHVALUESNVPROC __glewResolveDepthValuesNV; + +GLEW_FUN_EXPORT PFNGLSCISSOREXCLUSIVEARRAYVNVPROC __glewScissorExclusiveArrayvNV; +GLEW_FUN_EXPORT PFNGLSCISSOREXCLUSIVENVPROC __glewScissorExclusiveNV; GLEW_FUN_EXPORT PFNGLGETBUFFERPARAMETERUI64VNVPROC __glewGetBufferParameterui64vNV; GLEW_FUN_EXPORT PFNGLGETINTEGERUI64VNVPROC __glewGetIntegerui64vNV; @@ -18722,6 +24868,20 @@ GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMUI64VNVPROC __glewProgramUniformui64vNV; GLEW_FUN_EXPORT PFNGLUNIFORMUI64NVPROC __glewUniformui64NV; GLEW_FUN_EXPORT PFNGLUNIFORMUI64VNVPROC __glewUniformui64vNV; +GLEW_FUN_EXPORT PFNGLBINDSHADINGRATEIMAGENVPROC __glewBindShadingRateImageNV; +GLEW_FUN_EXPORT PFNGLGETSHADINGRATEIMAGEPALETTENVPROC __glewGetShadingRateImagePaletteNV; +GLEW_FUN_EXPORT PFNGLGETSHADINGRATESAMPLELOCATIONIVNVPROC __glewGetShadingRateSampleLocationivNV; +GLEW_FUN_EXPORT PFNGLSHADINGRATEIMAGEBARRIERNVPROC __glewShadingRateImageBarrierNV; +GLEW_FUN_EXPORT PFNGLSHADINGRATEIMAGEPALETTENVPROC __glewShadingRateImagePaletteNV; +GLEW_FUN_EXPORT PFNGLSHADINGRATESAMPLEORDERCUSTOMNVPROC __glewShadingRateSampleOrderCustomNV; + +GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXIMAGE3DNVPROC __glewCompressedTexImage3DNV; +GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXSUBIMAGE3DNVPROC __glewCompressedTexSubImage3DNV; +GLEW_FUN_EXPORT PFNGLCOPYTEXSUBIMAGE3DNVPROC __glewCopyTexSubImage3DNV; +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURELAYERNVPROC __glewFramebufferTextureLayerNV; +GLEW_FUN_EXPORT PFNGLTEXIMAGE3DNVPROC __glewTexImage3DNV; +GLEW_FUN_EXPORT PFNGLTEXSUBIMAGE3DNVPROC __glewTexSubImage3DNV; + GLEW_FUN_EXPORT PFNGLTEXTUREBARRIERNVPROC __glewTextureBarrierNV; GLEW_FUN_EXPORT PFNGLTEXIMAGE2DMULTISAMPLECOVERAGENVPROC __glewTexImage2DMultisampleCoverageNV; @@ -18762,6 +24922,8 @@ GLEW_FUN_EXPORT PFNGLVDPAUSURFACEACCESSNVPROC __glewVDPAUSurfaceAccessNV; GLEW_FUN_EXPORT PFNGLVDPAUUNMAPSURFACESNVPROC __glewVDPAUUnmapSurfacesNV; GLEW_FUN_EXPORT PFNGLVDPAUUNREGISTERSURFACENVPROC __glewVDPAUUnregisterSurfaceNV; +GLEW_FUN_EXPORT PFNGLVDPAUREGISTERVIDEOSURFACEWITHPICTURESTRUCTURENVPROC __glewVDPAURegisterVideoSurfaceWithPictureStructureNV; + GLEW_FUN_EXPORT PFNGLFLUSHVERTEXARRAYRANGENVPROC __glewFlushVertexArrayRangeNV; GLEW_FUN_EXPORT PFNGLVERTEXARRAYRANGENVPROC __glewVertexArrayRangeNV; @@ -18876,6 +25038,70 @@ GLEW_FUN_EXPORT PFNGLVIDEOCAPTURESTREAMPARAMETERDVNVPROC __glewVideoCaptureStrea GLEW_FUN_EXPORT PFNGLVIDEOCAPTURESTREAMPARAMETERFVNVPROC __glewVideoCaptureStreamParameterfvNV; GLEW_FUN_EXPORT PFNGLVIDEOCAPTURESTREAMPARAMETERIVNVPROC __glewVideoCaptureStreamParameterivNV; +GLEW_FUN_EXPORT PFNGLDEPTHRANGEARRAYFVNVPROC __glewDepthRangeArrayfvNV; +GLEW_FUN_EXPORT PFNGLDEPTHRANGEINDEXEDFNVPROC __glewDepthRangeIndexedfNV; +GLEW_FUN_EXPORT PFNGLDISABLEINVPROC __glewDisableiNV; +GLEW_FUN_EXPORT PFNGLENABLEINVPROC __glewEnableiNV; +GLEW_FUN_EXPORT PFNGLGETFLOATI_VNVPROC __glewGetFloati_vNV; +GLEW_FUN_EXPORT PFNGLISENABLEDINVPROC __glewIsEnablediNV; +GLEW_FUN_EXPORT PFNGLSCISSORARRAYVNVPROC __glewScissorArrayvNV; +GLEW_FUN_EXPORT PFNGLSCISSORINDEXEDNVPROC __glewScissorIndexedNV; +GLEW_FUN_EXPORT PFNGLSCISSORINDEXEDVNVPROC __glewScissorIndexedvNV; +GLEW_FUN_EXPORT PFNGLVIEWPORTARRAYVNVPROC __glewViewportArrayvNV; +GLEW_FUN_EXPORT PFNGLVIEWPORTINDEXEDFNVPROC __glewViewportIndexedfNV; +GLEW_FUN_EXPORT PFNGLVIEWPORTINDEXEDFVNVPROC __glewViewportIndexedfvNV; + +GLEW_FUN_EXPORT PFNGLVIEWPORTSWIZZLENVPROC __glewViewportSwizzleNV; + +GLEW_FUN_EXPORT PFNGLEGLIMAGETARGETRENDERBUFFERSTORAGEOESPROC __glewEGLImageTargetRenderbufferStorageOES; +GLEW_FUN_EXPORT PFNGLEGLIMAGETARGETTEXTURE2DOESPROC __glewEGLImageTargetTexture2DOES; + +GLEW_FUN_EXPORT PFNGLBLENDEQUATIONSEPARATEOESPROC __glewBlendEquationSeparateOES; + +GLEW_FUN_EXPORT PFNGLBLENDFUNCSEPARATEOESPROC __glewBlendFuncSeparateOES; + +GLEW_FUN_EXPORT PFNGLBLENDEQUATIONOESPROC __glewBlendEquationOES; + +GLEW_FUN_EXPORT PFNGLCOPYIMAGESUBDATAOESPROC __glewCopyImageSubDataOES; + +GLEW_FUN_EXPORT PFNGLBLENDEQUATIONSEPARATEIOESPROC __glewBlendEquationSeparateiOES; +GLEW_FUN_EXPORT PFNGLBLENDEQUATIONIOESPROC __glewBlendEquationiOES; +GLEW_FUN_EXPORT PFNGLBLENDFUNCSEPARATEIOESPROC __glewBlendFuncSeparateiOES; +GLEW_FUN_EXPORT PFNGLBLENDFUNCIOESPROC __glewBlendFunciOES; +GLEW_FUN_EXPORT PFNGLCOLORMASKIOESPROC __glewColorMaskiOES; +GLEW_FUN_EXPORT PFNGLDISABLEIOESPROC __glewDisableiOES; +GLEW_FUN_EXPORT PFNGLENABLEIOESPROC __glewEnableiOES; +GLEW_FUN_EXPORT PFNGLISENABLEDIOESPROC __glewIsEnablediOES; + +GLEW_FUN_EXPORT PFNGLBINDFRAMEBUFFEROESPROC __glewBindFramebufferOES; +GLEW_FUN_EXPORT PFNGLBINDRENDERBUFFEROESPROC __glewBindRenderbufferOES; +GLEW_FUN_EXPORT PFNGLCHECKFRAMEBUFFERSTATUSOESPROC __glewCheckFramebufferStatusOES; +GLEW_FUN_EXPORT PFNGLDELETEFRAMEBUFFERSOESPROC __glewDeleteFramebuffersOES; +GLEW_FUN_EXPORT PFNGLDELETERENDERBUFFERSOESPROC __glewDeleteRenderbuffersOES; +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERRENDERBUFFEROESPROC __glewFramebufferRenderbufferOES; +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURE2DOESPROC __glewFramebufferTexture2DOES; +GLEW_FUN_EXPORT PFNGLGENFRAMEBUFFERSOESPROC __glewGenFramebuffersOES; +GLEW_FUN_EXPORT PFNGLGENRENDERBUFFERSOESPROC __glewGenRenderbuffersOES; +GLEW_FUN_EXPORT PFNGLGENERATEMIPMAPOESPROC __glewGenerateMipmapOES; +GLEW_FUN_EXPORT PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVOESPROC __glewGetFramebufferAttachmentParameterivOES; +GLEW_FUN_EXPORT PFNGLGETRENDERBUFFERPARAMETERIVOESPROC __glewGetRenderbufferParameterivOES; +GLEW_FUN_EXPORT PFNGLISFRAMEBUFFEROESPROC __glewIsFramebufferOES; +GLEW_FUN_EXPORT PFNGLISRENDERBUFFEROESPROC __glewIsRenderbufferOES; +GLEW_FUN_EXPORT PFNGLRENDERBUFFERSTORAGEOESPROC __glewRenderbufferStorageOES; + +GLEW_FUN_EXPORT PFNGLGETPROGRAMBINARYOESPROC __glewGetProgramBinaryOES; +GLEW_FUN_EXPORT PFNGLPROGRAMBINARYOESPROC __glewProgramBinaryOES; + +GLEW_FUN_EXPORT PFNGLGETBUFFERPOINTERVOESPROC __glewGetBufferPointervOES; +GLEW_FUN_EXPORT PFNGLMAPBUFFEROESPROC __glewMapBufferOES; +GLEW_FUN_EXPORT PFNGLUNMAPBUFFEROESPROC __glewUnmapBufferOES; + +GLEW_FUN_EXPORT PFNGLCURRENTPALETTEMATRIXOESPROC __glewCurrentPaletteMatrixOES; +GLEW_FUN_EXPORT PFNGLMATRIXINDEXPOINTEROESPROC __glewMatrixIndexPointerOES; +GLEW_FUN_EXPORT PFNGLWEIGHTPOINTEROESPROC __glewWeightPointerOES; + +GLEW_FUN_EXPORT PFNGLMINSAMPLESHADINGOESPROC __glewMinSampleShadingOES; + GLEW_FUN_EXPORT PFNGLCLEARDEPTHFOESPROC __glewClearDepthfOES; GLEW_FUN_EXPORT PFNGLCLIPPLANEFOESPROC __glewClipPlanefOES; GLEW_FUN_EXPORT PFNGLDEPTHRANGEFOESPROC __glewDepthRangefOES; @@ -18883,7 +25109,79 @@ GLEW_FUN_EXPORT PFNGLFRUSTUMFOESPROC __glewFrustumfOES; GLEW_FUN_EXPORT PFNGLGETCLIPPLANEFOESPROC __glewGetClipPlanefOES; GLEW_FUN_EXPORT PFNGLORTHOFOESPROC __glewOrthofOES; +GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXIMAGE3DOESPROC __glewCompressedTexImage3DOES; +GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXSUBIMAGE3DOESPROC __glewCompressedTexSubImage3DOES; +GLEW_FUN_EXPORT PFNGLCOPYTEXSUBIMAGE3DOESPROC __glewCopyTexSubImage3DOES; +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURE3DOESPROC __glewFramebufferTexture3DOES; +GLEW_FUN_EXPORT PFNGLTEXIMAGE3DOESPROC __glewTexImage3DOES; +GLEW_FUN_EXPORT PFNGLTEXSUBIMAGE3DOESPROC __glewTexSubImage3DOES; + +GLEW_FUN_EXPORT PFNGLGETSAMPLERPARAMETERIIVOESPROC __glewGetSamplerParameterIivOES; +GLEW_FUN_EXPORT PFNGLGETSAMPLERPARAMETERIUIVOESPROC __glewGetSamplerParameterIuivOES; +GLEW_FUN_EXPORT PFNGLGETTEXPARAMETERIIVOESPROC __glewGetTexParameterIivOES; +GLEW_FUN_EXPORT PFNGLGETTEXPARAMETERIUIVOESPROC __glewGetTexParameterIuivOES; +GLEW_FUN_EXPORT PFNGLSAMPLERPARAMETERIIVOESPROC __glewSamplerParameterIivOES; +GLEW_FUN_EXPORT PFNGLSAMPLERPARAMETERIUIVOESPROC __glewSamplerParameterIuivOES; +GLEW_FUN_EXPORT PFNGLTEXPARAMETERIIVOESPROC __glewTexParameterIivOES; +GLEW_FUN_EXPORT PFNGLTEXPARAMETERIUIVOESPROC __glewTexParameterIuivOES; + +GLEW_FUN_EXPORT PFNGLTEXBUFFEROESPROC __glewTexBufferOES; +GLEW_FUN_EXPORT PFNGLTEXBUFFERRANGEOESPROC __glewTexBufferRangeOES; + +GLEW_FUN_EXPORT PFNGLGETTEXGENFVOESPROC __glewGetTexGenfvOES; +GLEW_FUN_EXPORT PFNGLGETTEXGENIVOESPROC __glewGetTexGenivOES; +GLEW_FUN_EXPORT PFNGLGETTEXGENXVOESPROC __glewGetTexGenxvOES; +GLEW_FUN_EXPORT PFNGLTEXGENFOESPROC __glewTexGenfOES; +GLEW_FUN_EXPORT PFNGLTEXGENFVOESPROC __glewTexGenfvOES; +GLEW_FUN_EXPORT PFNGLTEXGENIOESPROC __glewTexGeniOES; +GLEW_FUN_EXPORT PFNGLTEXGENIVOESPROC __glewTexGenivOES; +GLEW_FUN_EXPORT PFNGLTEXGENXOESPROC __glewTexGenxOES; +GLEW_FUN_EXPORT PFNGLTEXGENXVOESPROC __glewTexGenxvOES; + +GLEW_FUN_EXPORT PFNGLTEXSTORAGE3DMULTISAMPLEOESPROC __glewTexStorage3DMultisampleOES; + +GLEW_FUN_EXPORT PFNGLTEXTUREVIEWOESPROC __glewTextureViewOES; + +GLEW_FUN_EXPORT PFNGLBINDVERTEXARRAYOESPROC __glewBindVertexArrayOES; +GLEW_FUN_EXPORT PFNGLDELETEVERTEXARRAYSOESPROC __glewDeleteVertexArraysOES; +GLEW_FUN_EXPORT PFNGLGENVERTEXARRAYSOESPROC __glewGenVertexArraysOES; +GLEW_FUN_EXPORT PFNGLISVERTEXARRAYOESPROC __glewIsVertexArrayOES; + GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTUREMULTIVIEWOVRPROC __glewFramebufferTextureMultiviewOVR; +GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERTEXTUREMULTIVIEWOVRPROC __glewNamedFramebufferTextureMultiviewOVR; + +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTUREMULTISAMPLEMULTIVIEWOVRPROC __glewFramebufferTextureMultisampleMultiviewOVR; + +GLEW_FUN_EXPORT PFNGLALPHAFUNCQCOMPROC __glewAlphaFuncQCOM; + +GLEW_FUN_EXPORT PFNGLDISABLEDRIVERCONTROLQCOMPROC __glewDisableDriverControlQCOM; +GLEW_FUN_EXPORT PFNGLENABLEDRIVERCONTROLQCOMPROC __glewEnableDriverControlQCOM; +GLEW_FUN_EXPORT PFNGLGETDRIVERCONTROLSTRINGQCOMPROC __glewGetDriverControlStringQCOM; +GLEW_FUN_EXPORT PFNGLGETDRIVERCONTROLSQCOMPROC __glewGetDriverControlsQCOM; + +GLEW_FUN_EXPORT PFNGLEXTGETBUFFERPOINTERVQCOMPROC __glewExtGetBufferPointervQCOM; +GLEW_FUN_EXPORT PFNGLEXTGETBUFFERSQCOMPROC __glewExtGetBuffersQCOM; +GLEW_FUN_EXPORT PFNGLEXTGETFRAMEBUFFERSQCOMPROC __glewExtGetFramebuffersQCOM; +GLEW_FUN_EXPORT PFNGLEXTGETRENDERBUFFERSQCOMPROC __glewExtGetRenderbuffersQCOM; +GLEW_FUN_EXPORT PFNGLEXTGETTEXLEVELPARAMETERIVQCOMPROC __glewExtGetTexLevelParameterivQCOM; +GLEW_FUN_EXPORT PFNGLEXTGETTEXSUBIMAGEQCOMPROC __glewExtGetTexSubImageQCOM; +GLEW_FUN_EXPORT PFNGLEXTGETTEXTURESQCOMPROC __glewExtGetTexturesQCOM; +GLEW_FUN_EXPORT PFNGLEXTTEXOBJECTSTATEOVERRIDEIQCOMPROC __glewExtTexObjectStateOverrideiQCOM; + +GLEW_FUN_EXPORT PFNGLEXTGETPROGRAMBINARYSOURCEQCOMPROC __glewExtGetProgramBinarySourceQCOM; +GLEW_FUN_EXPORT PFNGLEXTGETPROGRAMSQCOMPROC __glewExtGetProgramsQCOM; +GLEW_FUN_EXPORT PFNGLEXTGETSHADERSQCOMPROC __glewExtGetShadersQCOM; +GLEW_FUN_EXPORT PFNGLEXTISPROGRAMBINARYQCOMPROC __glewExtIsProgramBinaryQCOM; + +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERFOVEATIONCONFIGQCOMPROC __glewFramebufferFoveationConfigQCOM; +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERFOVEATIONPARAMETERSQCOMPROC __glewFramebufferFoveationParametersQCOM; + +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERFETCHBARRIERQCOMPROC __glewFramebufferFetchBarrierQCOM; + +GLEW_FUN_EXPORT PFNGLTEXTUREFOVEATIONPARAMETERSQCOMPROC __glewTextureFoveationParametersQCOM; + +GLEW_FUN_EXPORT PFNGLENDTILINGQCOMPROC __glewEndTilingQCOM; +GLEW_FUN_EXPORT PFNGLSTARTTILINGQCOMPROC __glewStartTilingQCOM; GLEW_FUN_EXPORT PFNGLALPHAFUNCXPROC __glewAlphaFuncx; GLEW_FUN_EXPORT PFNGLCLEARCOLORXPROC __glewClearColorx; @@ -18949,6 +25247,13 @@ GLEW_FUN_EXPORT PFNGLGETFOGFUNCSGISPROC __glewGetFogFuncSGIS; GLEW_FUN_EXPORT PFNGLSAMPLEMASKSGISPROC __glewSampleMaskSGIS; GLEW_FUN_EXPORT PFNGLSAMPLEPATTERNSGISPROC __glewSamplePatternSGIS; +GLEW_FUN_EXPORT PFNGLINTERLEAVEDTEXTURECOORDSETSSGISPROC __glewInterleavedTextureCoordSetsSGIS; +GLEW_FUN_EXPORT PFNGLSELECTTEXTURECOORDSETSGISPROC __glewSelectTextureCoordSetSGIS; +GLEW_FUN_EXPORT PFNGLSELECTTEXTURESGISPROC __glewSelectTextureSGIS; +GLEW_FUN_EXPORT PFNGLSELECTTEXTURETRANSFORMSGISPROC __glewSelectTextureTransformSGIS; + +GLEW_FUN_EXPORT PFNGLMULTISAMPLESUBRECTPOSSGISPROC __glewMultisampleSubRectPosSGIS; + GLEW_FUN_EXPORT PFNGLGETSHARPENTEXFUNCSGISPROC __glewGetSharpenTexFuncSGIS; GLEW_FUN_EXPORT PFNGLSHARPENTEXFUNCSGISPROC __glewSharpenTexFuncSGIS; @@ -18965,8 +25270,14 @@ GLEW_FUN_EXPORT PFNGLGENASYNCMARKERSSGIXPROC __glewGenAsyncMarkersSGIX; GLEW_FUN_EXPORT PFNGLISASYNCMARKERSGIXPROC __glewIsAsyncMarkerSGIX; GLEW_FUN_EXPORT PFNGLPOLLASYNCSGIXPROC __glewPollAsyncSGIX; +GLEW_FUN_EXPORT PFNGLADDRESSSPACEPROC __glewAddressSpace; +GLEW_FUN_EXPORT PFNGLDATAPIPEPROC __glewDataPipe; + GLEW_FUN_EXPORT PFNGLFLUSHRASTERSGIXPROC __glewFlushRasterSGIX; +GLEW_FUN_EXPORT PFNGLFOGLAYERSSGIXPROC __glewFogLayersSGIX; +GLEW_FUN_EXPORT PFNGLGETFOGLAYERSSGIXPROC __glewGetFogLayersSGIX; + GLEW_FUN_EXPORT PFNGLTEXTUREFOGSGIXPROC __glewTextureFogSGIX; GLEW_FUN_EXPORT PFNGLFRAGMENTCOLORMATERIALSGIXPROC __glewFragmentColorMaterialSGIX; @@ -18989,8 +25300,33 @@ GLEW_FUN_EXPORT PFNGLGETFRAGMENTMATERIALIVSGIXPROC __glewGetFragmentMaterialivSG GLEW_FUN_EXPORT PFNGLFRAMEZOOMSGIXPROC __glewFrameZoomSGIX; +GLEW_FUN_EXPORT PFNGLIGLOOINTERFACESGIXPROC __glewIglooInterfaceSGIX; + +GLEW_FUN_EXPORT PFNGLALLOCMPEGPREDICTORSSGIXPROC __glewAllocMPEGPredictorsSGIX; +GLEW_FUN_EXPORT PFNGLDELETEMPEGPREDICTORSSGIXPROC __glewDeleteMPEGPredictorsSGIX; +GLEW_FUN_EXPORT PFNGLGENMPEGPREDICTORSSGIXPROC __glewGenMPEGPredictorsSGIX; +GLEW_FUN_EXPORT PFNGLGETMPEGPARAMETERFVSGIXPROC __glewGetMPEGParameterfvSGIX; +GLEW_FUN_EXPORT PFNGLGETMPEGPARAMETERIVSGIXPROC __glewGetMPEGParameterivSGIX; +GLEW_FUN_EXPORT PFNGLGETMPEGPREDICTORSGIXPROC __glewGetMPEGPredictorSGIX; +GLEW_FUN_EXPORT PFNGLGETMPEGQUANTTABLEUBVPROC __glewGetMPEGQuantTableubv; +GLEW_FUN_EXPORT PFNGLISMPEGPREDICTORSGIXPROC __glewIsMPEGPredictorSGIX; +GLEW_FUN_EXPORT PFNGLMPEGPREDICTORSGIXPROC __glewMPEGPredictorSGIX; +GLEW_FUN_EXPORT PFNGLMPEGQUANTTABLEUBVPROC __glewMPEGQuantTableubv; +GLEW_FUN_EXPORT PFNGLSWAPMPEGPREDICTORSSGIXPROC __glewSwapMPEGPredictorsSGIX; + +GLEW_FUN_EXPORT PFNGLGETNONLINLIGHTFVSGIXPROC __glewGetNonlinLightfvSGIX; +GLEW_FUN_EXPORT PFNGLGETNONLINMATERIALFVSGIXPROC __glewGetNonlinMaterialfvSGIX; +GLEW_FUN_EXPORT PFNGLNONLINLIGHTFVSGIXPROC __glewNonlinLightfvSGIX; +GLEW_FUN_EXPORT PFNGLNONLINMATERIALFVSGIXPROC __glewNonlinMaterialfvSGIX; + GLEW_FUN_EXPORT PFNGLPIXELTEXGENSGIXPROC __glewPixelTexGenSGIX; +GLEW_FUN_EXPORT PFNGLDEFORMSGIXPROC __glewDeformSGIX; +GLEW_FUN_EXPORT PFNGLLOADIDENTITYDEFORMATIONMAPSGIXPROC __glewLoadIdentityDeformationMapSGIX; + +GLEW_FUN_EXPORT PFNGLMESHBREADTHSGIXPROC __glewMeshBreadthSGIX; +GLEW_FUN_EXPORT PFNGLMESHSTRIDESGIXPROC __glewMeshStrideSGIX; + GLEW_FUN_EXPORT PFNGLREFERENCEPLANESGIXPROC __glewReferencePlaneSGIX; GLEW_FUN_EXPORT PFNGLSPRITEPARAMETERFSGIXPROC __glewSpriteParameterfSGIX; @@ -19000,6 +25336,16 @@ GLEW_FUN_EXPORT PFNGLSPRITEPARAMETERIVSGIXPROC __glewSpriteParameterivSGIX; GLEW_FUN_EXPORT PFNGLTAGSAMPLEBUFFERSGIXPROC __glewTagSampleBufferSGIX; +GLEW_FUN_EXPORT PFNGLGETVECTOROPERATIONSGIXPROC __glewGetVectorOperationSGIX; +GLEW_FUN_EXPORT PFNGLVECTOROPERATIONSGIXPROC __glewVectorOperationSGIX; + +GLEW_FUN_EXPORT PFNGLAREVERTEXARRAYSRESIDENTSGIXPROC __glewAreVertexArraysResidentSGIX; +GLEW_FUN_EXPORT PFNGLBINDVERTEXARRAYSGIXPROC __glewBindVertexArraySGIX; +GLEW_FUN_EXPORT PFNGLDELETEVERTEXARRAYSSGIXPROC __glewDeleteVertexArraysSGIX; +GLEW_FUN_EXPORT PFNGLGENVERTEXARRAYSSGIXPROC __glewGenVertexArraysSGIX; +GLEW_FUN_EXPORT PFNGLISVERTEXARRAYSGIXPROC __glewIsVertexArraySGIX; +GLEW_FUN_EXPORT PFNGLPRIORITIZEVERTEXARRAYSSGIXPROC __glewPrioritizeVertexArraysSGIX; + GLEW_FUN_EXPORT PFNGLCOLORTABLEPARAMETERFVSGIPROC __glewColorTableParameterfvSGI; GLEW_FUN_EXPORT PFNGLCOLORTABLEPARAMETERIVSGIPROC __glewColorTableParameterivSGI; GLEW_FUN_EXPORT PFNGLCOLORTABLESGIPROC __glewColorTableSGI; @@ -19008,6 +25354,14 @@ GLEW_FUN_EXPORT PFNGLGETCOLORTABLEPARAMETERFVSGIPROC __glewGetColorTableParamete GLEW_FUN_EXPORT PFNGLGETCOLORTABLEPARAMETERIVSGIPROC __glewGetColorTableParameterivSGI; GLEW_FUN_EXPORT PFNGLGETCOLORTABLESGIPROC __glewGetColorTableSGI; +GLEW_FUN_EXPORT PFNGLGETPIXELTRANSFORMPARAMETERFVSGIPROC __glewGetPixelTransformParameterfvSGI; +GLEW_FUN_EXPORT PFNGLGETPIXELTRANSFORMPARAMETERIVSGIPROC __glewGetPixelTransformParameterivSGI; +GLEW_FUN_EXPORT PFNGLPIXELTRANSFORMPARAMETERFSGIPROC __glewPixelTransformParameterfSGI; +GLEW_FUN_EXPORT PFNGLPIXELTRANSFORMPARAMETERFVSGIPROC __glewPixelTransformParameterfvSGI; +GLEW_FUN_EXPORT PFNGLPIXELTRANSFORMPARAMETERISGIPROC __glewPixelTransformParameteriSGI; +GLEW_FUN_EXPORT PFNGLPIXELTRANSFORMPARAMETERIVSGIPROC __glewPixelTransformParameterivSGI; +GLEW_FUN_EXPORT PFNGLPIXELTRANSFORMSGIPROC __glewPixelTransformSGI; + GLEW_FUN_EXPORT PFNGLFINISHTEXTURESUNXPROC __glewFinishTextureSUNX; GLEW_FUN_EXPORT PFNGLGLOBALALPHAFACTORBSUNPROC __glewGlobalAlphaFactorbSUN; @@ -19071,12 +25425,6 @@ GLEW_FUN_EXPORT PFNGLTEXCOORD4FVERTEX4FSUNPROC __glewTexCoord4fVertex4fSUN; GLEW_FUN_EXPORT PFNGLTEXCOORD4FVERTEX4FVSUNPROC __glewTexCoord4fVertex4fvSUN; GLEW_FUN_EXPORT PFNGLADDSWAPHINTRECTWINPROC __glewAddSwapHintRectWIN; - -#if defined(GLEW_MX) && !defined(_WIN32) -struct GLEWContextStruct -{ -#endif /* GLEW_MX */ - GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_1_1; GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_1_2; GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_1_2_1; @@ -19095,15 +25443,23 @@ GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_4_2; GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_4_3; GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_4_4; GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_4_5; +GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_4_6; GLEW_VAR_EXPORT GLboolean __GLEW_3DFX_multisample; GLEW_VAR_EXPORT GLboolean __GLEW_3DFX_tbuffer; GLEW_VAR_EXPORT GLboolean __GLEW_3DFX_texture_compression_FXT1; GLEW_VAR_EXPORT GLboolean __GLEW_AMD_blend_minmax_factor; +GLEW_VAR_EXPORT GLboolean __GLEW_AMD_compressed_3DC_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_AMD_compressed_ATC_texture; GLEW_VAR_EXPORT GLboolean __GLEW_AMD_conservative_depth; GLEW_VAR_EXPORT GLboolean __GLEW_AMD_debug_output; GLEW_VAR_EXPORT GLboolean __GLEW_AMD_depth_clamp_separate; GLEW_VAR_EXPORT GLboolean __GLEW_AMD_draw_buffers_blend; +GLEW_VAR_EXPORT GLboolean __GLEW_AMD_framebuffer_multisample_advanced; +GLEW_VAR_EXPORT GLboolean __GLEW_AMD_framebuffer_sample_positions; GLEW_VAR_EXPORT GLboolean __GLEW_AMD_gcn_shader; +GLEW_VAR_EXPORT GLboolean __GLEW_AMD_gpu_shader_half_float; +GLEW_VAR_EXPORT GLboolean __GLEW_AMD_gpu_shader_half_float_fetch; +GLEW_VAR_EXPORT GLboolean __GLEW_AMD_gpu_shader_int16; GLEW_VAR_EXPORT GLboolean __GLEW_AMD_gpu_shader_int64; GLEW_VAR_EXPORT GLboolean __GLEW_AMD_interleaved_elements; GLEW_VAR_EXPORT GLboolean __GLEW_AMD_multi_draw_indirect; @@ -19111,21 +25467,27 @@ GLEW_VAR_EXPORT GLboolean __GLEW_AMD_name_gen_delete; GLEW_VAR_EXPORT GLboolean __GLEW_AMD_occlusion_query_event; GLEW_VAR_EXPORT GLboolean __GLEW_AMD_performance_monitor; GLEW_VAR_EXPORT GLboolean __GLEW_AMD_pinned_memory; +GLEW_VAR_EXPORT GLboolean __GLEW_AMD_program_binary_Z400; GLEW_VAR_EXPORT GLboolean __GLEW_AMD_query_buffer_object; GLEW_VAR_EXPORT GLboolean __GLEW_AMD_sample_positions; GLEW_VAR_EXPORT GLboolean __GLEW_AMD_seamless_cubemap_per_texture; GLEW_VAR_EXPORT GLboolean __GLEW_AMD_shader_atomic_counter_ops; +GLEW_VAR_EXPORT GLboolean __GLEW_AMD_shader_ballot; +GLEW_VAR_EXPORT GLboolean __GLEW_AMD_shader_explicit_vertex_parameter; +GLEW_VAR_EXPORT GLboolean __GLEW_AMD_shader_image_load_store_lod; GLEW_VAR_EXPORT GLboolean __GLEW_AMD_shader_stencil_export; GLEW_VAR_EXPORT GLboolean __GLEW_AMD_shader_stencil_value_export; GLEW_VAR_EXPORT GLboolean __GLEW_AMD_shader_trinary_minmax; GLEW_VAR_EXPORT GLboolean __GLEW_AMD_sparse_texture; GLEW_VAR_EXPORT GLboolean __GLEW_AMD_stencil_operation_extended; +GLEW_VAR_EXPORT GLboolean __GLEW_AMD_texture_gather_bias_lod; GLEW_VAR_EXPORT GLboolean __GLEW_AMD_texture_texture4; GLEW_VAR_EXPORT GLboolean __GLEW_AMD_transform_feedback3_lines_triangles; GLEW_VAR_EXPORT GLboolean __GLEW_AMD_transform_feedback4; GLEW_VAR_EXPORT GLboolean __GLEW_AMD_vertex_shader_layer; GLEW_VAR_EXPORT GLboolean __GLEW_AMD_vertex_shader_tessellator; GLEW_VAR_EXPORT GLboolean __GLEW_AMD_vertex_shader_viewport_index; +GLEW_VAR_EXPORT GLboolean __GLEW_ANDROID_extension_pack_es31a; GLEW_VAR_EXPORT GLboolean __GLEW_ANGLE_depth_texture; GLEW_VAR_EXPORT GLboolean __GLEW_ANGLE_framebuffer_blit; GLEW_VAR_EXPORT GLboolean __GLEW_ANGLE_framebuffer_multisample; @@ -19140,15 +25502,24 @@ GLEW_VAR_EXPORT GLboolean __GLEW_ANGLE_timer_query; GLEW_VAR_EXPORT GLboolean __GLEW_ANGLE_translated_shader_source; GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_aux_depth_stencil; GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_client_storage; +GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_clip_distance; +GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_color_buffer_packed_float; +GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_copy_texture_levels; GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_element_array; GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_fence; GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_float_pixels; GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_flush_buffer_range; +GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_framebuffer_multisample; GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_object_purgeable; GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_pixel_buffer; GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_rgb_422; GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_row_bytes; GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_specular_vector; +GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_sync; +GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_texture_2D_limited_npot; +GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_texture_format_BGRA8888; +GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_texture_max_level; +GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_texture_packed_float; GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_texture_range; GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_transform_hint; GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_vertex_array_object; @@ -19204,6 +25575,7 @@ GLEW_VAR_EXPORT GLboolean __GLEW_ARB_framebuffer_sRGB; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_geometry_shader4; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_get_program_binary; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_get_texture_sub_image; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_gl_spirv; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_gpu_shader5; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_gpu_shader_fp64; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_gpu_shader_int64; @@ -19229,6 +25601,7 @@ GLEW_VAR_EXPORT GLboolean __GLEW_ARB_pipeline_statistics_query; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_pixel_buffer_object; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_point_parameters; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_point_sprite; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_polygon_offset_clamp; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_post_depth_coverage; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_program_interface_query; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_provoking_vertex; @@ -19270,6 +25643,7 @@ GLEW_VAR_EXPORT GLboolean __GLEW_ARB_sparse_buffer; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_sparse_texture; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_sparse_texture2; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_sparse_texture_clamp; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_spirv_extensions; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_stencil_texturing; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_sync; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_tessellation_shader; @@ -19287,6 +25661,7 @@ GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_env_add; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_env_combine; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_env_crossbar; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_env_dot3; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_filter_anisotropic; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_filter_minmax; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_float; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_gather; @@ -19323,6 +25698,12 @@ GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_type_10f_11f_11f_rev; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_type_2_10_10_10_rev; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_viewport_array; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_window_pos; +GLEW_VAR_EXPORT GLboolean __GLEW_ARM_mali_program_binary; +GLEW_VAR_EXPORT GLboolean __GLEW_ARM_mali_shader_binary; +GLEW_VAR_EXPORT GLboolean __GLEW_ARM_rgba8; +GLEW_VAR_EXPORT GLboolean __GLEW_ARM_shader_framebuffer_fetch; +GLEW_VAR_EXPORT GLboolean __GLEW_ARM_shader_framebuffer_fetch_depth_stencil; +GLEW_VAR_EXPORT GLboolean __GLEW_ARM_texture_unnormalized_coordinates; GLEW_VAR_EXPORT GLboolean __GLEW_ATIX_point_sprites; GLEW_VAR_EXPORT GLboolean __GLEW_ATIX_texture_env_combine3; GLEW_VAR_EXPORT GLboolean __GLEW_ATIX_texture_env_route; @@ -19344,51 +25725,97 @@ GLEW_VAR_EXPORT GLboolean __GLEW_ATI_texture_mirror_once; GLEW_VAR_EXPORT GLboolean __GLEW_ATI_vertex_array_object; GLEW_VAR_EXPORT GLboolean __GLEW_ATI_vertex_attrib_array_object; GLEW_VAR_EXPORT GLboolean __GLEW_ATI_vertex_streams; +GLEW_VAR_EXPORT GLboolean __GLEW_DMP_program_binary; +GLEW_VAR_EXPORT GLboolean __GLEW_DMP_shader_binary; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_422_pixels; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_Cg_shader; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_EGL_image_array; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_EGL_image_external_wrap_modes; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_EGL_image_storage; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_EGL_sync; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_YUV_target; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_abgr; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_base_instance; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_bgra; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_bindable_uniform; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_blend_color; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_blend_equation_separate; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_blend_func_extended; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_blend_func_separate; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_blend_logic_op; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_blend_minmax; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_blend_subtract; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_buffer_storage; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_clear_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_clip_control; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_clip_cull_distance; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_clip_volume_hint; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_cmyka; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_color_buffer_float; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_color_buffer_half_float; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_color_subtable; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_compiled_vertex_array; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_compressed_ETC1_RGB8_sub_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_conservative_depth; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_convolution; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_coordinate_frame; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_copy_image; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_copy_texture; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_cull_vertex; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_debug_label; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_debug_marker; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_depth_bounds_test; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_depth_clamp; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_direct_state_access; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_discard_framebuffer; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_disjoint_timer_query; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_draw_buffers; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_draw_buffers2; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_draw_buffers_indexed; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_draw_elements_base_vertex; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_draw_instanced; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_draw_range_elements; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_draw_transform_feedback; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_external_buffer; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_float_blend; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_fog_coord; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_frag_depth; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_fragment_lighting; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_framebuffer_blit; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_framebuffer_multisample; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_framebuffer_multisample_blit_scaled; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_framebuffer_object; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_framebuffer_sRGB; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_geometry_point_size; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_geometry_shader; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_geometry_shader4; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_gpu_program_parameters; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_gpu_shader4; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_gpu_shader5; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_histogram; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_index_array_formats; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_index_func; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_index_material; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_index_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_instanced_arrays; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_light_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_map_buffer_range; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_memory_object; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_memory_object_fd; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_memory_object_win32; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_misc_attribute; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_multi_draw_arrays; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_multi_draw_indirect; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_multiple_textures; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_multisample; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_multisample_compatibility; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_multisampled_render_to_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_multisampled_render_to_texture2; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_multiview_draw_buffers; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_multiview_tessellation_geometry_shader; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_multiview_texture_multisample; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_multiview_timer_query; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_occlusion_query_boolean; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_packed_depth_stencil; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_packed_float; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_packed_pixels; @@ -19400,32 +25827,64 @@ GLEW_VAR_EXPORT GLboolean __GLEW_EXT_point_parameters; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_polygon_offset; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_polygon_offset_clamp; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_post_depth_coverage; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_primitive_bounding_box; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_protected_textures; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_provoking_vertex; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_pvrtc_sRGB; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_raster_multisample; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_read_format_bgra; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_render_snorm; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_rescale_normal; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_robustness; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_sRGB; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_sRGB_write_control; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_scene_marker; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_secondary_color; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_semaphore; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_semaphore_fd; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_semaphore_win32; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_separate_shader_objects; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_separate_specular_color; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shader_framebuffer_fetch; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shader_framebuffer_fetch_non_coherent; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shader_group_vote; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shader_image_load_formatted; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shader_image_load_store; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shader_implicit_conversions; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shader_integer_mix; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shader_io_blocks; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shader_non_constant_global_initializers; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shader_pixel_local_storage; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shader_pixel_local_storage2; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shader_texture_lod; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shadow_funcs; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shadow_samplers; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shared_texture_palette; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_sparse_texture; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_sparse_texture2; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_static_vertex_array; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_stencil_clear_tag; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_stencil_two_side; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_stencil_wrap; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_subtexture; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_tessellation_point_size; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_tessellation_shader; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture3D; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_array; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_border_clamp; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_buffer; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_buffer_object; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_compression_astc_decode_mode; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_compression_astc_decode_mode_rgb9e5; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_compression_bptc; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_compression_dxt1; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_compression_latc; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_compression_rgtc; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_compression_s3tc; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_compression_s3tc_srgb; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_cube_map; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_cube_map_array; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_edge_clamp; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_env; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_env_add; @@ -19433,25 +25892,42 @@ GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_env_combine; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_env_dot3; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_filter_anisotropic; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_filter_minmax; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_format_BGRA8888; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_format_sRGB_override; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_integer; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_lod_bias; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_mirror_clamp; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_mirror_clamp_to_edge; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_norm16; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_object; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_perturb_normal; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_query_lod; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_rectangle; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_rg; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_sRGB; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_sRGB_R8; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_sRGB_RG8; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_sRGB_decode; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_shadow_lod; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_shared_exponent; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_snorm; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_storage; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_swizzle; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_type_2_10_10_10_REV; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_view; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_timer_query; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_transform_feedback; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_unpack_subimage; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_vertex_array; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_vertex_array_bgra; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_vertex_array_setXXX; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_vertex_attrib_64bit; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_vertex_shader; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_vertex_weighting; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_win32_keyed_mutex; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_window_rectangles; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_x11_sync_object; +GLEW_VAR_EXPORT GLboolean __GLEW_FJ_shader_binary_GCCSO; GLEW_VAR_EXPORT GLboolean __GLEW_GREMEDY_frame_terminator; GLEW_VAR_EXPORT GLboolean __GLEW_GREMEDY_string_marker; GLEW_VAR_EXPORT GLboolean __GLEW_HP_convolution_border_modes; @@ -19464,50 +25940,92 @@ GLEW_VAR_EXPORT GLboolean __GLEW_IBM_rasterpos_clip; GLEW_VAR_EXPORT GLboolean __GLEW_IBM_static_data; GLEW_VAR_EXPORT GLboolean __GLEW_IBM_texture_mirrored_repeat; GLEW_VAR_EXPORT GLboolean __GLEW_IBM_vertex_array_lists; +GLEW_VAR_EXPORT GLboolean __GLEW_IMG_bindless_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_IMG_framebuffer_downsample; +GLEW_VAR_EXPORT GLboolean __GLEW_IMG_multisampled_render_to_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_IMG_program_binary; +GLEW_VAR_EXPORT GLboolean __GLEW_IMG_read_format; +GLEW_VAR_EXPORT GLboolean __GLEW_IMG_shader_binary; +GLEW_VAR_EXPORT GLboolean __GLEW_IMG_texture_compression_pvrtc; +GLEW_VAR_EXPORT GLboolean __GLEW_IMG_texture_compression_pvrtc2; +GLEW_VAR_EXPORT GLboolean __GLEW_IMG_texture_env_enhanced_fixed_function; +GLEW_VAR_EXPORT GLboolean __GLEW_IMG_texture_filter_cubic; GLEW_VAR_EXPORT GLboolean __GLEW_INGR_color_clamp; GLEW_VAR_EXPORT GLboolean __GLEW_INGR_interlace_read; +GLEW_VAR_EXPORT GLboolean __GLEW_INTEL_blackhole_render; +GLEW_VAR_EXPORT GLboolean __GLEW_INTEL_conservative_rasterization; GLEW_VAR_EXPORT GLboolean __GLEW_INTEL_fragment_shader_ordering; GLEW_VAR_EXPORT GLboolean __GLEW_INTEL_framebuffer_CMAA; GLEW_VAR_EXPORT GLboolean __GLEW_INTEL_map_texture; GLEW_VAR_EXPORT GLboolean __GLEW_INTEL_parallel_arrays; GLEW_VAR_EXPORT GLboolean __GLEW_INTEL_performance_query; +GLEW_VAR_EXPORT GLboolean __GLEW_INTEL_shader_integer_functions2; GLEW_VAR_EXPORT GLboolean __GLEW_INTEL_texture_scissor; GLEW_VAR_EXPORT GLboolean __GLEW_KHR_blend_equation_advanced; GLEW_VAR_EXPORT GLboolean __GLEW_KHR_blend_equation_advanced_coherent; GLEW_VAR_EXPORT GLboolean __GLEW_KHR_context_flush_control; GLEW_VAR_EXPORT GLboolean __GLEW_KHR_debug; GLEW_VAR_EXPORT GLboolean __GLEW_KHR_no_error; +GLEW_VAR_EXPORT GLboolean __GLEW_KHR_parallel_shader_compile; GLEW_VAR_EXPORT GLboolean __GLEW_KHR_robust_buffer_access_behavior; GLEW_VAR_EXPORT GLboolean __GLEW_KHR_robustness; +GLEW_VAR_EXPORT GLboolean __GLEW_KHR_shader_subgroup; GLEW_VAR_EXPORT GLboolean __GLEW_KHR_texture_compression_astc_hdr; GLEW_VAR_EXPORT GLboolean __GLEW_KHR_texture_compression_astc_ldr; +GLEW_VAR_EXPORT GLboolean __GLEW_KHR_texture_compression_astc_sliced_3d; GLEW_VAR_EXPORT GLboolean __GLEW_KTX_buffer_region; GLEW_VAR_EXPORT GLboolean __GLEW_MESAX_texture_stack; +GLEW_VAR_EXPORT GLboolean __GLEW_MESA_framebuffer_flip_y; GLEW_VAR_EXPORT GLboolean __GLEW_MESA_pack_invert; +GLEW_VAR_EXPORT GLboolean __GLEW_MESA_program_binary_formats; GLEW_VAR_EXPORT GLboolean __GLEW_MESA_resize_buffers; +GLEW_VAR_EXPORT GLboolean __GLEW_MESA_shader_integer_functions; +GLEW_VAR_EXPORT GLboolean __GLEW_MESA_tile_raster_order; GLEW_VAR_EXPORT GLboolean __GLEW_MESA_window_pos; GLEW_VAR_EXPORT GLboolean __GLEW_MESA_ycbcr_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_NVX_blend_equation_advanced_multi_draw_buffers; GLEW_VAR_EXPORT GLboolean __GLEW_NVX_conditional_render; GLEW_VAR_EXPORT GLboolean __GLEW_NVX_gpu_memory_info; +GLEW_VAR_EXPORT GLboolean __GLEW_NVX_gpu_multicast2; +GLEW_VAR_EXPORT GLboolean __GLEW_NVX_linked_gpu_multicast; +GLEW_VAR_EXPORT GLboolean __GLEW_NVX_progress_fence; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_3dvision_settings; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_EGL_stream_consumer_external; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_alpha_to_coverage_dither_control; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_bgr; GLEW_VAR_EXPORT GLboolean __GLEW_NV_bindless_multi_draw_indirect; GLEW_VAR_EXPORT GLboolean __GLEW_NV_bindless_multi_draw_indirect_count; GLEW_VAR_EXPORT GLboolean __GLEW_NV_bindless_texture; GLEW_VAR_EXPORT GLboolean __GLEW_NV_blend_equation_advanced; GLEW_VAR_EXPORT GLboolean __GLEW_NV_blend_equation_advanced_coherent; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_blend_minmax_factor; GLEW_VAR_EXPORT GLboolean __GLEW_NV_blend_square; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_clip_space_w_scaling; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_command_list; GLEW_VAR_EXPORT GLboolean __GLEW_NV_compute_program5; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_compute_shader_derivatives; GLEW_VAR_EXPORT GLboolean __GLEW_NV_conditional_render; GLEW_VAR_EXPORT GLboolean __GLEW_NV_conservative_raster; GLEW_VAR_EXPORT GLboolean __GLEW_NV_conservative_raster_dilate; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_conservative_raster_pre_snap; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_conservative_raster_pre_snap_triangles; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_conservative_raster_underestimation; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_copy_buffer; GLEW_VAR_EXPORT GLboolean __GLEW_NV_copy_depth_to_color; GLEW_VAR_EXPORT GLboolean __GLEW_NV_copy_image; GLEW_VAR_EXPORT GLboolean __GLEW_NV_deep_texture3D; GLEW_VAR_EXPORT GLboolean __GLEW_NV_depth_buffer_float; GLEW_VAR_EXPORT GLboolean __GLEW_NV_depth_clamp; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_depth_nonlinear; GLEW_VAR_EXPORT GLboolean __GLEW_NV_depth_range_unclamped; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_draw_buffers; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_draw_instanced; GLEW_VAR_EXPORT GLboolean __GLEW_NV_draw_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_draw_vulkan_image; GLEW_VAR_EXPORT GLboolean __GLEW_NV_evaluators; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_explicit_attrib_location; GLEW_VAR_EXPORT GLboolean __GLEW_NV_explicit_multisample; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_fbo_color_attachments; GLEW_VAR_EXPORT GLboolean __GLEW_NV_fence; GLEW_VAR_EXPORT GLboolean __GLEW_NV_fill_rectangle; GLEW_VAR_EXPORT GLboolean __GLEW_NV_float_buffer; @@ -19517,53 +26035,94 @@ GLEW_VAR_EXPORT GLboolean __GLEW_NV_fragment_program; GLEW_VAR_EXPORT GLboolean __GLEW_NV_fragment_program2; GLEW_VAR_EXPORT GLboolean __GLEW_NV_fragment_program4; GLEW_VAR_EXPORT GLboolean __GLEW_NV_fragment_program_option; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_fragment_shader_barycentric; GLEW_VAR_EXPORT GLboolean __GLEW_NV_fragment_shader_interlock; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_framebuffer_blit; GLEW_VAR_EXPORT GLboolean __GLEW_NV_framebuffer_mixed_samples; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_framebuffer_multisample; GLEW_VAR_EXPORT GLboolean __GLEW_NV_framebuffer_multisample_coverage; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_generate_mipmap_sRGB; GLEW_VAR_EXPORT GLboolean __GLEW_NV_geometry_program4; GLEW_VAR_EXPORT GLboolean __GLEW_NV_geometry_shader4; GLEW_VAR_EXPORT GLboolean __GLEW_NV_geometry_shader_passthrough; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_gpu_multicast; GLEW_VAR_EXPORT GLboolean __GLEW_NV_gpu_program4; GLEW_VAR_EXPORT GLboolean __GLEW_NV_gpu_program5; GLEW_VAR_EXPORT GLboolean __GLEW_NV_gpu_program5_mem_extended; GLEW_VAR_EXPORT GLboolean __GLEW_NV_gpu_program_fp64; GLEW_VAR_EXPORT GLboolean __GLEW_NV_gpu_shader5; GLEW_VAR_EXPORT GLboolean __GLEW_NV_half_float; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_image_formats; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_instanced_arrays; GLEW_VAR_EXPORT GLboolean __GLEW_NV_internalformat_sample_query; GLEW_VAR_EXPORT GLboolean __GLEW_NV_light_max_exponent; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_memory_attachment; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_mesh_shader; GLEW_VAR_EXPORT GLboolean __GLEW_NV_multisample_coverage; GLEW_VAR_EXPORT GLboolean __GLEW_NV_multisample_filter_hint; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_non_square_matrices; GLEW_VAR_EXPORT GLboolean __GLEW_NV_occlusion_query; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_pack_subimage; GLEW_VAR_EXPORT GLboolean __GLEW_NV_packed_depth_stencil; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_packed_float; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_packed_float_linear; GLEW_VAR_EXPORT GLboolean __GLEW_NV_parameter_buffer_object; GLEW_VAR_EXPORT GLboolean __GLEW_NV_parameter_buffer_object2; GLEW_VAR_EXPORT GLboolean __GLEW_NV_path_rendering; GLEW_VAR_EXPORT GLboolean __GLEW_NV_path_rendering_shared_edge; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_pixel_buffer_object; GLEW_VAR_EXPORT GLboolean __GLEW_NV_pixel_data_range; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_platform_binary; GLEW_VAR_EXPORT GLboolean __GLEW_NV_point_sprite; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_polygon_mode; GLEW_VAR_EXPORT GLboolean __GLEW_NV_present_video; GLEW_VAR_EXPORT GLboolean __GLEW_NV_primitive_restart; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_query_resource_tag; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_read_buffer; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_read_buffer_front; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_read_depth; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_read_depth_stencil; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_read_stencil; GLEW_VAR_EXPORT GLboolean __GLEW_NV_register_combiners; GLEW_VAR_EXPORT GLboolean __GLEW_NV_register_combiners2; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_representative_fragment_test; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_robustness_video_memory_purge; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_sRGB_formats; GLEW_VAR_EXPORT GLboolean __GLEW_NV_sample_locations; GLEW_VAR_EXPORT GLboolean __GLEW_NV_sample_mask_override_coverage; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_scissor_exclusive; GLEW_VAR_EXPORT GLboolean __GLEW_NV_shader_atomic_counters; GLEW_VAR_EXPORT GLboolean __GLEW_NV_shader_atomic_float; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_shader_atomic_float64; GLEW_VAR_EXPORT GLboolean __GLEW_NV_shader_atomic_fp16_vector; GLEW_VAR_EXPORT GLboolean __GLEW_NV_shader_atomic_int64; GLEW_VAR_EXPORT GLboolean __GLEW_NV_shader_buffer_load; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_shader_noperspective_interpolation; GLEW_VAR_EXPORT GLboolean __GLEW_NV_shader_storage_buffer_object; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_shader_subgroup_partitioned; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_shader_texture_footprint; GLEW_VAR_EXPORT GLboolean __GLEW_NV_shader_thread_group; GLEW_VAR_EXPORT GLboolean __GLEW_NV_shader_thread_shuffle; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_shading_rate_image; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_shadow_samplers_array; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_shadow_samplers_cube; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_stereo_view_rendering; GLEW_VAR_EXPORT GLboolean __GLEW_NV_tessellation_program5; GLEW_VAR_EXPORT GLboolean __GLEW_NV_texgen_emboss; GLEW_VAR_EXPORT GLboolean __GLEW_NV_texgen_reflection; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_array; GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_barrier; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_border_clamp; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_compression_latc; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_compression_s3tc; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_compression_s3tc_update; GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_compression_vtc; GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_env_combine4; GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_expand_normal; GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_multisample; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_npot_2D_mipmap; GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_rectangle; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_rectangle_compressed; GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_shader; GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_shader2; GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_shader3; @@ -19571,6 +26130,7 @@ GLEW_VAR_EXPORT GLboolean __GLEW_NV_transform_feedback; GLEW_VAR_EXPORT GLboolean __GLEW_NV_transform_feedback2; GLEW_VAR_EXPORT GLboolean __GLEW_NV_uniform_buffer_unified_memory; GLEW_VAR_EXPORT GLboolean __GLEW_NV_vdpau_interop; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_vdpau_interop2; GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_array_range; GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_array_range2; GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_attrib_integer_64bit; @@ -19582,18 +26142,93 @@ GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_program2_option; GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_program3; GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_program4; GLEW_VAR_EXPORT GLboolean __GLEW_NV_video_capture; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_viewport_array; GLEW_VAR_EXPORT GLboolean __GLEW_NV_viewport_array2; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_viewport_swizzle; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_EGL_image; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_EGL_image_external; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_EGL_image_external_essl3; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_blend_equation_separate; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_blend_func_separate; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_blend_subtract; GLEW_VAR_EXPORT GLboolean __GLEW_OES_byte_coordinates; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_compressed_ETC1_RGB8_texture; GLEW_VAR_EXPORT GLboolean __GLEW_OES_compressed_paletted_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_copy_image; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_depth24; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_depth32; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_depth_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_depth_texture_cube_map; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_draw_buffers_indexed; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_draw_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_element_index_uint; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_extended_matrix_palette; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_fbo_render_mipmap; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_fragment_precision_high; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_framebuffer_object; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_geometry_point_size; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_geometry_shader; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_get_program_binary; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_gpu_shader5; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_mapbuffer; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_matrix_get; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_matrix_palette; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_packed_depth_stencil; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_point_size_array; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_point_sprite; GLEW_VAR_EXPORT GLboolean __GLEW_OES_read_format; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_required_internalformat; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_rgb8_rgba8; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_sample_shading; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_sample_variables; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_shader_image_atomic; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_shader_io_blocks; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_shader_multisample_interpolation; GLEW_VAR_EXPORT GLboolean __GLEW_OES_single_precision; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_standard_derivatives; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_stencil1; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_stencil4; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_stencil8; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_surfaceless_context; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_tessellation_point_size; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_tessellation_shader; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_texture_3D; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_texture_border_clamp; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_texture_buffer; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_texture_compression_astc; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_texture_cube_map; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_texture_cube_map_array; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_texture_env_crossbar; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_texture_mirrored_repeat; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_texture_npot; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_texture_stencil8; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_texture_storage_multisample_2d_array; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_texture_view; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_vertex_array_object; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_vertex_half_float; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_vertex_type_10_10_10_2; GLEW_VAR_EXPORT GLboolean __GLEW_OML_interlace; GLEW_VAR_EXPORT GLboolean __GLEW_OML_resample; GLEW_VAR_EXPORT GLboolean __GLEW_OML_subsample; GLEW_VAR_EXPORT GLboolean __GLEW_OVR_multiview; GLEW_VAR_EXPORT GLboolean __GLEW_OVR_multiview2; +GLEW_VAR_EXPORT GLboolean __GLEW_OVR_multiview_multisampled_render_to_texture; GLEW_VAR_EXPORT GLboolean __GLEW_PGI_misc_hints; GLEW_VAR_EXPORT GLboolean __GLEW_PGI_vertex_hints; +GLEW_VAR_EXPORT GLboolean __GLEW_QCOM_YUV_texture_gather; +GLEW_VAR_EXPORT GLboolean __GLEW_QCOM_alpha_test; +GLEW_VAR_EXPORT GLboolean __GLEW_QCOM_binning_control; +GLEW_VAR_EXPORT GLboolean __GLEW_QCOM_driver_control; +GLEW_VAR_EXPORT GLboolean __GLEW_QCOM_extended_get; +GLEW_VAR_EXPORT GLboolean __GLEW_QCOM_extended_get2; +GLEW_VAR_EXPORT GLboolean __GLEW_QCOM_framebuffer_foveated; +GLEW_VAR_EXPORT GLboolean __GLEW_QCOM_perfmon_global_mode; +GLEW_VAR_EXPORT GLboolean __GLEW_QCOM_shader_framebuffer_fetch_noncoherent; +GLEW_VAR_EXPORT GLboolean __GLEW_QCOM_shader_framebuffer_fetch_rate; +GLEW_VAR_EXPORT GLboolean __GLEW_QCOM_texture_foveated; +GLEW_VAR_EXPORT GLboolean __GLEW_QCOM_texture_foveated_subsampled_layout; +GLEW_VAR_EXPORT GLboolean __GLEW_QCOM_tiled_rendering; +GLEW_VAR_EXPORT GLboolean __GLEW_QCOM_writeonly_rendering; GLEW_VAR_EXPORT GLboolean __GLEW_REGAL_ES1_0_compatibility; GLEW_VAR_EXPORT GLboolean __GLEW_REGAL_ES1_1_compatibility; GLEW_VAR_EXPORT GLboolean __GLEW_REGAL_enable; @@ -19603,13 +26238,17 @@ GLEW_VAR_EXPORT GLboolean __GLEW_REGAL_log; GLEW_VAR_EXPORT GLboolean __GLEW_REGAL_proc_address; GLEW_VAR_EXPORT GLboolean __GLEW_REND_screen_coordinates; GLEW_VAR_EXPORT GLboolean __GLEW_S3_s3tc; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_clip_band_hint; GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_color_range; GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_detail_texture; GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_fog_function; GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_generate_mipmap; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_line_texgen; GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_multisample; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_multitexture; GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_pixel_texture; GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_point_line_texgen; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_shared_multisample; GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_sharpen_texture; GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_texture4D; GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_texture_border_clamp; @@ -19620,37 +26259,90 @@ GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_texture_select; GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_async; GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_async_histogram; GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_async_pixel; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_bali_g_instruments; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_bali_r_instruments; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_bali_timer_instruments; GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_blend_alpha_minmax; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_blend_cadd; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_blend_cmultiply; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_calligraphic_fragment; GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_clipmap; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_color_matrix_accuracy; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_color_table_index_mode; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_complex_polar; GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_convolution_accuracy; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_cube_map; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_cylinder_texgen; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_datapipe; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_decimation; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_depth_pass_instrument; GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_depth_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_dvc; GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_flush_raster; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_fog_blend; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_fog_factor_to_alpha; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_fog_layers; GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_fog_offset; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_fog_patchy; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_fog_scale; GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_fog_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_fragment_lighting_space; GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_fragment_specular_lighting; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_fragments_instrument; GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_framezoom; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_icc_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_igloo_interface; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_image_compression; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_impact_pixel_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_instrument_error; GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_interlace; GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_ir_instrument1; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_line_quality_hint; GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_list_priority; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_mpeg1; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_mpeg2; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_nonlinear_lighting_pervertex; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_nurbs_eval; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_occlusion_instrument; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_packed_6bytes; GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_pixel_texture; GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_pixel_texture_bits; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_pixel_texture_lod; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_pixel_tiles; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_polynomial_ffd; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_quad_mesh; GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_reference_plane; GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_resample; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_scalebias_hint; GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_shadow; GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_shadow_ambient; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_slim; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_spotlight_cutoff; GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_sprite; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_subdiv_patch; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_subsample; GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_tag_sample_buffer; GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_texture_add_env; GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_texture_coordinate_clamp; GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_texture_lod_bias; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_texture_mipmap_anisotropic; GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_texture_multi_buffer; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_texture_phase; GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_texture_range; GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_texture_scale_bias; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_texture_supersample; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_vector_ops; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_vertex_array_object; GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_vertex_preclip; GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_vertex_preclip_hint; GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_ycrcb; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_ycrcb_subsample; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_ycrcba; GLEW_VAR_EXPORT GLboolean __GLEW_SGI_color_matrix; GLEW_VAR_EXPORT GLboolean __GLEW_SGI_color_table; +GLEW_VAR_EXPORT GLboolean __GLEW_SGI_complex; +GLEW_VAR_EXPORT GLboolean __GLEW_SGI_complex_type; +GLEW_VAR_EXPORT GLboolean __GLEW_SGI_fft; GLEW_VAR_EXPORT GLboolean __GLEW_SGI_texture_color_table; GLEW_VAR_EXPORT GLboolean __GLEW_SUNX_constant_data; GLEW_VAR_EXPORT GLboolean __GLEW_SUN_convolution_border_modes; @@ -19660,14 +26352,11 @@ GLEW_VAR_EXPORT GLboolean __GLEW_SUN_read_video_pixels; GLEW_VAR_EXPORT GLboolean __GLEW_SUN_slice_accum; GLEW_VAR_EXPORT GLboolean __GLEW_SUN_triangle_list; GLEW_VAR_EXPORT GLboolean __GLEW_SUN_vertex; +GLEW_VAR_EXPORT GLboolean __GLEW_VIV_shader_binary; GLEW_VAR_EXPORT GLboolean __GLEW_WIN_phong_shading; +GLEW_VAR_EXPORT GLboolean __GLEW_WIN_scene_markerXXX; GLEW_VAR_EXPORT GLboolean __GLEW_WIN_specular_fog; GLEW_VAR_EXPORT GLboolean __GLEW_WIN_swap_hint; - -#ifdef GLEW_MX -}; /* GLEWContextStruct */ -#endif /* GLEW_MX */ - /* ------------------------------------------------------------------------- */ /* error codes */ @@ -19676,6 +26365,7 @@ GLEW_VAR_EXPORT GLboolean __GLEW_WIN_swap_hint; #define GLEW_ERROR_NO_GL_VERSION 1 /* missing GL version */ #define GLEW_ERROR_GL_VERSION_10_ONLY 2 /* Need at least OpenGL 1.1 */ #define GLEW_ERROR_GLX_VERSION_11_ONLY 3 /* Need at least GLX 1.2 */ +#define GLEW_ERROR_NO_GLX_DISPLAY 4 /* Need GLX display for GLX support */ /* string codes */ #define GLEW_VERSION 1 @@ -19688,40 +26378,24 @@ GLEW_VAR_EXPORT GLboolean __GLEW_WIN_swap_hint; /* GLEW version info */ /* -VERSION 1.13.0 -VERSION_MAJOR 1 -VERSION_MINOR 13 +VERSION 2.2.0 +VERSION_MAJOR 2 +VERSION_MINOR 2 VERSION_MICRO 0 */ /* API */ -#ifdef GLEW_MX - -typedef struct GLEWContextStruct GLEWContext; -GLEWAPI GLenum GLEWAPIENTRY glewContextInit (GLEWContext *ctx); -GLEWAPI GLboolean GLEWAPIENTRY glewContextIsSupported (const GLEWContext *ctx, const char *name); - -#define glewInit() glewContextInit(glewGetContext()) -#define glewIsSupported(x) glewContextIsSupported(glewGetContext(), x) -#define glewIsExtensionSupported(x) glewIsSupported(x) - -#define GLEW_GET_VAR(x) (*(const GLboolean*)&(glewGetContext()->x)) -#ifdef _WIN32 -# define GLEW_GET_FUN(x) glewGetContext()->x -#else -# define GLEW_GET_FUN(x) x -#endif - -#else /* GLEW_MX */ - GLEWAPI GLenum GLEWAPIENTRY glewInit (void); GLEWAPI GLboolean GLEWAPIENTRY glewIsSupported (const char *name); #define glewIsExtensionSupported(x) glewIsSupported(x) +#ifndef GLEW_GET_VAR #define GLEW_GET_VAR(x) (*(const GLboolean*)&x) -#define GLEW_GET_FUN(x) x +#endif -#endif /* GLEW_MX */ +#ifndef GLEW_GET_FUN +#define GLEW_GET_FUN(x) x +#endif GLEWAPI GLboolean glewExperimental; GLEWAPI GLboolean GLEWAPIENTRY glewGetExtension (const char *name); diff --git a/src/glew/include/GL/glxew.h b/src/glew/include/GL/glxew.h index d803d260b..0474ed5ed 100644 --- a/src/glew/include/GL/glxew.h +++ b/src/glew/include/GL/glxew.h @@ -1,6 +1,6 @@ /* ** The OpenGL Extension Wrangler Library -** Copyright (C) 2008-2015, Nigel Stewart +** Copyright (C) 2008-2019, Nigel Stewart ** Copyright (C) 2002-2008, Milan Ikits ** Copyright (C) 2002-2008, Marcelo E. Magallon ** Copyright (C) 2002, Lev Povalahev @@ -98,7 +98,12 @@ #include #include #include -#include + +#ifndef GLEW_INCLUDE +# include +#else +# include GLEW_INCLUDE +#endif #ifdef __cplusplus extern "C" { @@ -392,7 +397,7 @@ typedef Bool ( * PFNGLXMAKEASSOCIATEDCONTEXTCURRENTAMDPROC) (GLXContext ctx); #ifndef GLX_ARB_context_flush_control #define GLX_ARB_context_flush_control 1 -#define GLX_CONTEXT_RELEASE_BEHAVIOR_NONE_ARB 0x0000 +#define GLX_CONTEXT_RELEASE_BEHAVIOR_NONE_ARB 0 #define GLX_CONTEXT_RELEASE_BEHAVIOR_ARB 0x2097 #define GLX_CONTEXT_RELEASE_BEHAVIOR_FLUSH_ARB 0x2098 @@ -405,13 +410,13 @@ typedef Bool ( * PFNGLXMAKEASSOCIATEDCONTEXTCURRENTAMDPROC) (GLXContext ctx); #ifndef GLX_ARB_create_context #define GLX_ARB_create_context 1 -#define GLX_CONTEXT_DEBUG_BIT_ARB 0x0001 -#define GLX_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB 0x0002 +#define GLX_CONTEXT_DEBUG_BIT_ARB 0x00000001 +#define GLX_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB 0x00000002 #define GLX_CONTEXT_MAJOR_VERSION_ARB 0x2091 #define GLX_CONTEXT_MINOR_VERSION_ARB 0x2092 #define GLX_CONTEXT_FLAGS_ARB 0x2094 -typedef GLXContext ( * PFNGLXCREATECONTEXTATTRIBSARBPROC) (Display* dpy, GLXFBConfig config, GLXContext share_context, Bool direct, const int *attrib_list); +typedef GLXContext ( * PFNGLXCREATECONTEXTATTRIBSARBPROC) (Display* dpy, GLXFBConfig config, GLXContext share_context, Bool direct, const int* attrib_list); #define glXCreateContextAttribsARB GLXEW_GET_FUN(__glewXCreateContextAttribsARB) @@ -419,6 +424,17 @@ typedef GLXContext ( * PFNGLXCREATECONTEXTATTRIBSARBPROC) (Display* dpy, GLXFBCo #endif /* GLX_ARB_create_context */ +/* -------------------- GLX_ARB_create_context_no_error -------------------- */ + +#ifndef GLX_ARB_create_context_no_error +#define GLX_ARB_create_context_no_error 1 + +#define GLX_CONTEXT_OPENGL_NO_ERROR_ARB 0x31B3 + +#define GLXEW_ARB_create_context_no_error GLXEW_GET_VAR(__GLXEW_ARB_create_context_no_error) + +#endif /* GLX_ARB_create_context_no_error */ + /* --------------------- GLX_ARB_create_context_profile -------------------- */ #ifndef GLX_ARB_create_context_profile @@ -600,6 +616,20 @@ typedef void ( * PFNGLXRELEASETEXIMAGEATIPROC) (Display *dpy, GLXPbuffer pbuf, i #endif /* GLX_EXT_buffer_age */ +/* ------------------------ GLX_EXT_context_priority ----------------------- */ + +#ifndef GLX_EXT_context_priority +#define GLX_EXT_context_priority 1 + +#define GLX_CONTEXT_PRIORITY_LEVEL_EXT 0x3100 +#define GLX_CONTEXT_PRIORITY_HIGH_EXT 0x3101 +#define GLX_CONTEXT_PRIORITY_MEDIUM_EXT 0x3102 +#define GLX_CONTEXT_PRIORITY_LOW_EXT 0x3103 + +#define GLXEW_EXT_context_priority GLXEW_GET_VAR(__GLXEW_EXT_context_priority) + +#endif /* GLX_EXT_context_priority */ + /* ------------------- GLX_EXT_create_context_es2_profile ------------------ */ #ifndef GLX_EXT_create_context_es2_profile @@ -658,11 +688,13 @@ typedef XID GLXContextID; typedef void ( * PFNGLXFREECONTEXTEXTPROC) (Display* dpy, GLXContext context); typedef GLXContextID ( * PFNGLXGETCONTEXTIDEXTPROC) (const GLXContext context); +typedef Display* ( * PFNGLXGETCURRENTDISPLAYEXTPROC) (void); typedef GLXContext ( * PFNGLXIMPORTCONTEXTEXTPROC) (Display* dpy, GLXContextID contextID); -typedef int ( * PFNGLXQUERYCONTEXTINFOEXTPROC) (Display* dpy, GLXContext context, int attribute,int *value); +typedef int ( * PFNGLXQUERYCONTEXTINFOEXTPROC) (Display* dpy, GLXContext context, int attribute, int* value); #define glXFreeContextEXT GLXEW_GET_FUN(__glewXFreeContextEXT) #define glXGetContextIDEXT GLXEW_GET_FUN(__glewXGetContextIDEXT) +#define glXGetCurrentDisplayEXT GLXEW_GET_FUN(__glewXGetCurrentDisplayEXT) #define glXImportContextEXT GLXEW_GET_FUN(__glewXImportContextEXT) #define glXQueryContextInfoEXT GLXEW_GET_FUN(__glewXQueryContextInfoEXT) @@ -670,6 +702,26 @@ typedef int ( * PFNGLXQUERYCONTEXTINFOEXTPROC) (Display* dpy, GLXContext context #endif /* GLX_EXT_import_context */ +/* ---------------------------- GLX_EXT_libglvnd --------------------------- */ + +#ifndef GLX_EXT_libglvnd +#define GLX_EXT_libglvnd 1 + +#define GLX_VENDOR_NAMES_EXT 0x20F6 + +#define GLXEW_EXT_libglvnd GLXEW_GET_VAR(__GLXEW_EXT_libglvnd) + +#endif /* GLX_EXT_libglvnd */ + +/* ----------------------- GLX_EXT_no_config_context ----------------------- */ + +#ifndef GLX_EXT_no_config_context +#define GLX_EXT_no_config_context 1 + +#define GLXEW_EXT_no_config_context GLXEW_GET_VAR(__GLXEW_EXT_no_config_context) + +#endif /* GLX_EXT_no_config_context */ + /* -------------------------- GLX_EXT_scene_marker ------------------------- */ #ifndef GLX_EXT_scene_marker @@ -741,8 +793,10 @@ typedef void ( * PFNGLXSWAPINTERVALEXTPROC) (Display* dpy, GLXDrawable drawable, #define GLX_TEXTURE_1D_EXT 0x20DB #define GLX_TEXTURE_2D_EXT 0x20DC #define GLX_TEXTURE_RECTANGLE_EXT 0x20DD +#define GLX_FRONT_EXT 0x20DE #define GLX_FRONT_LEFT_EXT 0x20DE #define GLX_FRONT_RIGHT_EXT 0x20DF +#define GLX_BACK_EXT 0x20E0 #define GLX_BACK_LEFT_EXT 0x20E0 #define GLX_BACK_RIGHT_EXT 0x20E1 #define GLX_AUX0_EXT 0x20E2 @@ -756,8 +810,8 @@ typedef void ( * PFNGLXSWAPINTERVALEXTPROC) (Display* dpy, GLXDrawable drawable, #define GLX_AUX8_EXT 0x20EA #define GLX_AUX9_EXT 0x20EB -typedef void ( * PFNGLXBINDTEXIMAGEEXTPROC) (Display* display, GLXDrawable drawable, int buffer, const int *attrib_list); -typedef void ( * PFNGLXRELEASETEXIMAGEEXTPROC) (Display* display, GLXDrawable drawable, int buffer); +typedef void ( * PFNGLXBINDTEXIMAGEEXTPROC) (Display* dpy, GLXDrawable drawable, int buffer, const int* attrib_list); +typedef void ( * PFNGLXRELEASETEXIMAGEEXTPROC) (Display* dpy, GLXDrawable drawable, int buffer); #define glXBindTexImageEXT GLXEW_GET_FUN(__glewXBindTexImageEXT) #define glXReleaseTexImageEXT GLXEW_GET_FUN(__glewXReleaseTexImageEXT) @@ -850,7 +904,7 @@ typedef void ( * PFNGLXCOPYSUBBUFFERMESAPROC) (Display* dpy, GLXDrawable drawabl #ifndef GLX_MESA_pixmap_colormap #define GLX_MESA_pixmap_colormap 1 -typedef GLXPixmap ( * PFNGLXCREATEGLXPIXMAPMESAPROC) (Display* dpy, XVisualInfo *visual, Pixmap pixmap, Colormap cmap); +typedef GLXPixmap ( * PFNGLXCREATEGLXPIXMAPMESAPROC) (Display* dpy, XVisualInfo* visual, Pixmap pixmap, Colormap cmap); #define glXCreateGLXPixmapMESA GLXEW_GET_FUN(__glewXCreateGLXPixmapMESA) @@ -874,12 +928,11 @@ typedef GLXPixmap ( * PFNGLXCREATEGLXPIXMAPMESAPROC) (Display* dpy, XVisualInfo #define GLX_RENDERER_OPENGL_COMPATIBILITY_PROFILE_VERSION_MESA 0x818B #define GLX_RENDERER_OPENGL_ES_PROFILE_VERSION_MESA 0x818C #define GLX_RENDERER_OPENGL_ES2_PROFILE_VERSION_MESA 0x818D -#define GLX_RENDERER_ID_MESA 0x818E typedef Bool ( * PFNGLXQUERYCURRENTRENDERERINTEGERMESAPROC) (int attribute, unsigned int* value); typedef const char* ( * PFNGLXQUERYCURRENTRENDERERSTRINGMESAPROC) (int attribute); -typedef Bool ( * PFNGLXQUERYRENDERERINTEGERMESAPROC) (Display* dpy, int screen, int renderer, int attribute, unsigned int *value); -typedef const char* ( * PFNGLXQUERYRENDERERSTRINGMESAPROC) (Display *dpy, int screen, int renderer, int attribute); +typedef Bool ( * PFNGLXQUERYRENDERERINTEGERMESAPROC) (Display* dpy, int screen, int renderer, int attribute, unsigned int* value); +typedef const char* ( * PFNGLXQUERYRENDERERSTRINGMESAPROC) (Display* dpy, int screen, int renderer, int attribute); #define glXQueryCurrentRendererIntegerMESA GLXEW_GET_FUN(__glewXQueryCurrentRendererIntegerMESA) #define glXQueryCurrentRendererStringMESA GLXEW_GET_FUN(__glewXQueryCurrentRendererStringMESA) @@ -895,7 +948,7 @@ typedef const char* ( * PFNGLXQUERYRENDERERSTRINGMESAPROC) (Display *dpy, int sc #ifndef GLX_MESA_release_buffers #define GLX_MESA_release_buffers 1 -typedef Bool ( * PFNGLXRELEASEBUFFERSMESAPROC) (Display* dpy, GLXDrawable d); +typedef Bool ( * PFNGLXRELEASEBUFFERSMESAPROC) (Display* dpy, GLXDrawable drawable); #define glXReleaseBuffersMESA GLXEW_GET_FUN(__glewXReleaseBuffersMESA) @@ -986,6 +1039,21 @@ typedef Bool ( * PFNGLXDELAYBEFORESWAPNVPROC) (Display* dpy, GLXDrawable drawabl #endif /* GLX_NV_float_buffer */ +/* ------------------------ GLX_NV_multigpu_context ------------------------ */ + +#ifndef GLX_NV_multigpu_context +#define GLX_NV_multigpu_context 1 + +#define GLX_CONTEXT_MULTIGPU_ATTRIB_NV 0x20AA +#define GLX_CONTEXT_MULTIGPU_ATTRIB_SINGLE_NV 0x20AB +#define GLX_CONTEXT_MULTIGPU_ATTRIB_AFR_NV 0x20AC +#define GLX_CONTEXT_MULTIGPU_ATTRIB_MULTICAST_NV 0x20AD +#define GLX_CONTEXT_MULTIGPU_ATTRIB_MULTI_DISPLAY_MULTICAST_NV 0x20AE + +#define GLXEW_NV_multigpu_context GLXEW_GET_VAR(__GLXEW_NV_multigpu_context) + +#endif /* GLX_NV_multigpu_context */ + /* ---------------------- GLX_NV_multisample_coverage ---------------------- */ #ifndef GLX_NV_multisample_coverage @@ -1005,8 +1073,8 @@ typedef Bool ( * PFNGLXDELAYBEFORESWAPNVPROC) (Display* dpy, GLXDrawable drawabl #define GLX_NUM_VIDEO_SLOTS_NV 0x20F0 -typedef int ( * PFNGLXBINDVIDEODEVICENVPROC) (Display* dpy, unsigned int video_slot, unsigned int video_device, const int *attrib_list); -typedef unsigned int* ( * PFNGLXENUMERATEVIDEODEVICESNVPROC) (Display *dpy, int screen, int *nelements); +typedef int ( * PFNGLXBINDVIDEODEVICENVPROC) (Display* dpy, unsigned int video_slot, unsigned int video_device, const int* attrib_list); +typedef unsigned int* ( * PFNGLXENUMERATEVIDEODEVICESNVPROC) (Display* dpy, int screen, int* nelements); #define glXBindVideoDeviceNV GLXEW_GET_FUN(__glewXBindVideoDeviceNV) #define glXEnumerateVideoDevicesNV GLXEW_GET_FUN(__glewXEnumerateVideoDevicesNV) @@ -1015,6 +1083,17 @@ typedef unsigned int* ( * PFNGLXENUMERATEVIDEODEVICESNVPROC) (Display *dpy, int #endif /* GLX_NV_present_video */ +/* ------------------ GLX_NV_robustness_video_memory_purge ----------------- */ + +#ifndef GLX_NV_robustness_video_memory_purge +#define GLX_NV_robustness_video_memory_purge 1 + +#define GLX_GENERATE_RESET_ON_VIDEO_MEMORY_PURGE_NV 0x20F7 + +#define GLXEW_NV_robustness_video_memory_purge GLXEW_GET_VAR(__GLXEW_NV_robustness_video_memory_purge) + +#endif /* GLX_NV_robustness_video_memory_purge */ + /* --------------------------- GLX_NV_swap_group --------------------------- */ #ifndef GLX_NV_swap_group @@ -1022,9 +1101,9 @@ typedef unsigned int* ( * PFNGLXENUMERATEVIDEODEVICESNVPROC) (Display *dpy, int typedef Bool ( * PFNGLXBINDSWAPBARRIERNVPROC) (Display* dpy, GLuint group, GLuint barrier); typedef Bool ( * PFNGLXJOINSWAPGROUPNVPROC) (Display* dpy, GLXDrawable drawable, GLuint group); -typedef Bool ( * PFNGLXQUERYFRAMECOUNTNVPROC) (Display* dpy, int screen, GLuint *count); -typedef Bool ( * PFNGLXQUERYMAXSWAPGROUPSNVPROC) (Display* dpy, int screen, GLuint *maxGroups, GLuint *maxBarriers); -typedef Bool ( * PFNGLXQUERYSWAPGROUPNVPROC) (Display* dpy, GLXDrawable drawable, GLuint *group, GLuint *barrier); +typedef Bool ( * PFNGLXQUERYFRAMECOUNTNVPROC) (Display* dpy, int screen, GLuint* count); +typedef Bool ( * PFNGLXQUERYMAXSWAPGROUPSNVPROC) (Display* dpy, int screen, GLuint* maxGroups, GLuint* maxBarriers); +typedef Bool ( * PFNGLXQUERYSWAPGROUPNVPROC) (Display* dpy, GLXDrawable drawable, GLuint* group, GLuint* barrier); typedef Bool ( * PFNGLXRESETFRAMECOUNTNVPROC) (Display* dpy, int screen); #define glXBindSwapBarrierNV GLXEW_GET_FUN(__glewXBindSwapBarrierNV) @@ -1065,9 +1144,9 @@ typedef void ( * PFNGLXFREEMEMORYNVPROC) (void *pointer); typedef XID GLXVideoCaptureDeviceNV; typedef int ( * PFNGLXBINDVIDEOCAPTUREDEVICENVPROC) (Display* dpy, unsigned int video_capture_slot, GLXVideoCaptureDeviceNV device); -typedef GLXVideoCaptureDeviceNV * ( * PFNGLXENUMERATEVIDEOCAPTUREDEVICESNVPROC) (Display* dpy, int screen, int *nelements); +typedef GLXVideoCaptureDeviceNV* ( * PFNGLXENUMERATEVIDEOCAPTUREDEVICESNVPROC) (Display* dpy, int screen, int* nelements); typedef void ( * PFNGLXLOCKVIDEOCAPTUREDEVICENVPROC) (Display* dpy, GLXVideoCaptureDeviceNV device); -typedef int ( * PFNGLXQUERYVIDEOCAPTUREDEVICENVPROC) (Display* dpy, GLXVideoCaptureDeviceNV device, int attribute, int *value); +typedef int ( * PFNGLXQUERYVIDEOCAPTUREDEVICENVPROC) (Display* dpy, GLXVideoCaptureDeviceNV device, int attribute, int* value); typedef void ( * PFNGLXRELEASEVIDEOCAPTUREDEVICENVPROC) (Display* dpy, GLXVideoCaptureDeviceNV device); #define glXBindVideoCaptureDeviceNV GLXEW_GET_FUN(__glewXBindVideoCaptureDeviceNV) @@ -1097,11 +1176,11 @@ typedef void ( * PFNGLXRELEASEVIDEOCAPTUREDEVICENVPROC) (Display* dpy, GLXVideoC #define GLX_VIDEO_OUT_STACKED_FIELDS_2_1_NV 0x20CC typedef int ( * PFNGLXBINDVIDEOIMAGENVPROC) (Display* dpy, GLXVideoDeviceNV VideoDevice, GLXPbuffer pbuf, int iVideoBuffer); -typedef int ( * PFNGLXGETVIDEODEVICENVPROC) (Display* dpy, int screen, int numVideoDevices, GLXVideoDeviceNV *pVideoDevice); -typedef int ( * PFNGLXGETVIDEOINFONVPROC) (Display* dpy, int screen, GLXVideoDeviceNV VideoDevice, unsigned long *pulCounterOutputPbuffer, unsigned long *pulCounterOutputVideo); +typedef int ( * PFNGLXGETVIDEODEVICENVPROC) (Display* dpy, int screen, int numVideoDevices, GLXVideoDeviceNV* pVideoDevice); +typedef int ( * PFNGLXGETVIDEOINFONVPROC) (Display* dpy, int screen, GLXVideoDeviceNV VideoDevice, unsigned long* pulCounterOutputPbuffer, unsigned long* pulCounterOutputVideo); typedef int ( * PFNGLXRELEASEVIDEODEVICENVPROC) (Display* dpy, int screen, GLXVideoDeviceNV VideoDevice); typedef int ( * PFNGLXRELEASEVIDEOIMAGENVPROC) (Display* dpy, GLXPbuffer pbuf); -typedef int ( * PFNGLXSENDPBUFFERTOVIDEONVPROC) (Display* dpy, GLXPbuffer pbuf, int iBufferType, unsigned long *pulCounterPbuffer, GLboolean bBlock); +typedef int ( * PFNGLXSENDPBUFFERTOVIDEONVPROC) (Display* dpy, GLXPbuffer pbuf, int iBufferType, unsigned long* pulCounterPbuffer, GLboolean bBlock); #define glXBindVideoImageNV GLXEW_GET_FUN(__glewXBindVideoImageNV) #define glXGetVideoDeviceNV GLXEW_GET_FUN(__glewXGetVideoDeviceNV) @@ -1213,12 +1292,12 @@ typedef Bool ( * PFNGLXWAITFORSBCOMLPROC) (Display* dpy, GLXDrawable drawable, i typedef XID GLXFBConfigIDSGIX; typedef struct __GLXFBConfigRec *GLXFBConfigSGIX; -typedef GLXFBConfigSGIX* ( * PFNGLXCHOOSEFBCONFIGSGIXPROC) (Display *dpy, int screen, const int *attrib_list, int *nelements); -typedef GLXContext ( * PFNGLXCREATECONTEXTWITHCONFIGSGIXPROC) (Display* dpy, GLXFBConfig config, int render_type, GLXContext share_list, Bool direct); -typedef GLXPixmap ( * PFNGLXCREATEGLXPIXMAPWITHCONFIGSGIXPROC) (Display* dpy, GLXFBConfig config, Pixmap pixmap); -typedef int ( * PFNGLXGETFBCONFIGATTRIBSGIXPROC) (Display* dpy, GLXFBConfigSGIX config, int attribute, int *value); -typedef GLXFBConfigSGIX ( * PFNGLXGETFBCONFIGFROMVISUALSGIXPROC) (Display* dpy, XVisualInfo *vis); -typedef XVisualInfo* ( * PFNGLXGETVISUALFROMFBCONFIGSGIXPROC) (Display *dpy, GLXFBConfig config); +typedef GLXFBConfigSGIX* ( * PFNGLXCHOOSEFBCONFIGSGIXPROC) (Display* dpy, int screen, int* attrib_list, int* nelements); +typedef GLXContext ( * PFNGLXCREATECONTEXTWITHCONFIGSGIXPROC) (Display* dpy, GLXFBConfigSGIX config, int render_type, GLXContext share_list, Bool direct); +typedef GLXPixmap ( * PFNGLXCREATEGLXPIXMAPWITHCONFIGSGIXPROC) (Display* dpy, GLXFBConfigSGIX config, Pixmap pixmap); +typedef int ( * PFNGLXGETFBCONFIGATTRIBSGIXPROC) (Display* dpy, GLXFBConfigSGIX config, int attribute, int* value); +typedef GLXFBConfigSGIX ( * PFNGLXGETFBCONFIGFROMVISUALSGIXPROC) (Display* dpy, XVisualInfo* vis); +typedef XVisualInfo* ( * PFNGLXGETVISUALFROMFBCONFIGSGIXPROC) (Display* dpy, GLXFBConfigSGIX config); #define glXChooseFBConfigSGIX GLXEW_GET_FUN(__glewXChooseFBConfigSGIX) #define glXCreateContextWithConfigSGIX GLXEW_GET_FUN(__glewXCreateContextWithConfigSGIX) @@ -1332,10 +1411,10 @@ typedef GLXHyperpipeNetworkSGIX * ( * PFNGLXQUERYHYPERPIPENETWORKSGIXPROC) (Disp typedef XID GLXPbufferSGIX; typedef struct { int type; unsigned long serial; Bool send_event; Display *display; GLXDrawable drawable; int event_type; int draw_type; unsigned int mask; int x, y; int width, height; int count; } GLXBufferClobberEventSGIX; -typedef GLXPbuffer ( * PFNGLXCREATEGLXPBUFFERSGIXPROC) (Display* dpy, GLXFBConfig config, unsigned int width, unsigned int height, int *attrib_list); -typedef void ( * PFNGLXDESTROYGLXPBUFFERSGIXPROC) (Display* dpy, GLXPbuffer pbuf); -typedef void ( * PFNGLXGETSELECTEDEVENTSGIXPROC) (Display* dpy, GLXDrawable drawable, unsigned long *mask); -typedef void ( * PFNGLXQUERYGLXPBUFFERSGIXPROC) (Display* dpy, GLXPbuffer pbuf, int attribute, unsigned int *value); +typedef GLXPbufferSGIX ( * PFNGLXCREATEGLXPBUFFERSGIXPROC) (Display* dpy, GLXFBConfigSGIX config, unsigned int width, unsigned int height, int* attrib_list); +typedef void ( * PFNGLXDESTROYGLXPBUFFERSGIXPROC) (Display* dpy, GLXPbufferSGIX pbuf); +typedef void ( * PFNGLXGETSELECTEDEVENTSGIXPROC) (Display* dpy, GLXDrawable drawable, unsigned long* mask); +typedef void ( * PFNGLXQUERYGLXPBUFFERSGIXPROC) (Display* dpy, GLXPbufferSGIX pbuf, int attribute, unsigned int* value); typedef void ( * PFNGLXSELECTEVENTSGIXPROC) (Display* dpy, GLXDrawable drawable, unsigned long mask); #define glXCreateGLXPbufferSGIX GLXEW_GET_FUN(__glewXCreateGLXPbufferSGIX) @@ -1353,8 +1432,8 @@ typedef void ( * PFNGLXSELECTEVENTSGIXPROC) (Display* dpy, GLXDrawable drawable, #ifndef GLX_SGIX_swap_barrier #define GLX_SGIX_swap_barrier 1 -typedef void ( * PFNGLXBINDSWAPBARRIERSGIXPROC) (Display *dpy, GLXDrawable drawable, int barrier); -typedef Bool ( * PFNGLXQUERYMAXSWAPBARRIERSSGIXPROC) (Display *dpy, int screen, int *max); +typedef void ( * PFNGLXBINDSWAPBARRIERSGIXPROC) (Display* dpy, GLXDrawable drawable, int barrier); +typedef Bool ( * PFNGLXQUERYMAXSWAPBARRIERSSGIXPROC) (Display* dpy, int screen, int* max); #define glXBindSwapBarrierSGIX GLXEW_GET_FUN(__glewXBindSwapBarrierSGIX) #define glXQueryMaxSwapBarriersSGIX GLXEW_GET_FUN(__glewXQueryMaxSwapBarriersSGIX) @@ -1368,7 +1447,7 @@ typedef Bool ( * PFNGLXQUERYMAXSWAPBARRIERSSGIXPROC) (Display *dpy, int screen, #ifndef GLX_SGIX_swap_group #define GLX_SGIX_swap_group 1 -typedef void ( * PFNGLXJOINSWAPGROUPSGIXPROC) (Display *dpy, GLXDrawable drawable, GLXDrawable member); +typedef void ( * PFNGLXJOINSWAPGROUPSGIXPROC) (Display* dpy, GLXDrawable drawable, GLXDrawable member); #define glXJoinSwapGroupSGIX GLXEW_GET_FUN(__glewXJoinSwapGroupSGIX) @@ -1387,8 +1466,8 @@ typedef void ( * PFNGLXJOINSWAPGROUPSGIXPROC) (Display *dpy, GLXDrawable drawabl typedef int ( * PFNGLXBINDCHANNELTOWINDOWSGIXPROC) (Display* display, int screen, int channel, Window window); typedef int ( * PFNGLXCHANNELRECTSGIXPROC) (Display* display, int screen, int channel, int x, int y, int w, int h); typedef int ( * PFNGLXCHANNELRECTSYNCSGIXPROC) (Display* display, int screen, int channel, GLenum synctype); -typedef int ( * PFNGLXQUERYCHANNELDELTASSGIXPROC) (Display* display, int screen, int channel, int *x, int *y, int *w, int *h); -typedef int ( * PFNGLXQUERYCHANNELRECTSGIXPROC) (Display* display, int screen, int channel, int *dx, int *dy, int *dw, int *dh); +typedef int ( * PFNGLXQUERYCHANNELDELTASSGIXPROC) (Display* display, int screen, int channel, int* x, int* y, int* w, int* h); +typedef int ( * PFNGLXQUERYCHANNELRECTSGIXPROC) (Display* display, int screen, int channel, int* dx, int* dy, int* dw, int* dh); #define glXBindChannelToWindowSGIX GLXEW_GET_FUN(__glewXBindChannelToWindowSGIX) #define glXChannelRectSGIX GLXEW_GET_FUN(__glewXChannelRectSGIX) @@ -1472,7 +1551,7 @@ typedef int ( * PFNGLXWAITVIDEOSYNCSGIPROC) (int divisor, int remainder, unsigne #ifndef GLX_SUN_get_transparent_index #define GLX_SUN_get_transparent_index 1 -typedef Status ( * PFNGLXGETTRANSPARENTINDEXSUNPROC) (Display* dpy, Window overlay, Window underlay, unsigned long *pTransparentIndex); +typedef Status ( * PFNGLXGETTRANSPARENTINDEXSUNPROC) (Display* dpy, Window overlay, Window underlay, unsigned long* pTransparentIndex); #define glXGetTransparentIndexSUN GLXEW_GET_FUN(__glewXGetTransparentIndexSUN) @@ -1500,13 +1579,8 @@ typedef int ( * PFNGLXVIDEORESIZESUNPROC) (Display* display, GLXDrawable window, /* ------------------------------------------------------------------------- */ -#ifdef GLEW_MX -#define GLXEW_FUN_EXPORT GLEW_FUN_EXPORT -#define GLXEW_VAR_EXPORT -#else #define GLXEW_FUN_EXPORT GLEW_FUN_EXPORT #define GLXEW_VAR_EXPORT GLEW_VAR_EXPORT -#endif /* GLEW_MX */ GLXEW_FUN_EXPORT PFNGLXGETCURRENTDISPLAYPROC __glewXGetCurrentDisplay; @@ -1546,6 +1620,7 @@ GLXEW_FUN_EXPORT PFNGLXRELEASETEXIMAGEATIPROC __glewXReleaseTexImageATI; GLXEW_FUN_EXPORT PFNGLXFREECONTEXTEXTPROC __glewXFreeContextEXT; GLXEW_FUN_EXPORT PFNGLXGETCONTEXTIDEXTPROC __glewXGetContextIDEXT; +GLXEW_FUN_EXPORT PFNGLXGETCURRENTDISPLAYEXTPROC __glewXGetCurrentDisplayEXT; GLXEW_FUN_EXPORT PFNGLXIMPORTCONTEXTEXTPROC __glewXImportContextEXT; GLXEW_FUN_EXPORT PFNGLXQUERYCONTEXTINFOEXTPROC __glewXQueryContextInfoEXT; @@ -1658,12 +1733,6 @@ GLXEW_FUN_EXPORT PFNGLXGETTRANSPARENTINDEXSUNPROC __glewXGetTransparentIndexSUN; GLXEW_FUN_EXPORT PFNGLXGETVIDEORESIZESUNPROC __glewXGetVideoResizeSUN; GLXEW_FUN_EXPORT PFNGLXVIDEORESIZESUNPROC __glewXVideoResizeSUN; - -#if defined(GLEW_MX) -struct GLXEWContextStruct -{ -#endif /* GLEW_MX */ - GLXEW_VAR_EXPORT GLboolean __GLXEW_VERSION_1_0; GLXEW_VAR_EXPORT GLboolean __GLXEW_VERSION_1_1; GLXEW_VAR_EXPORT GLboolean __GLXEW_VERSION_1_2; @@ -1673,6 +1742,7 @@ GLXEW_VAR_EXPORT GLboolean __GLXEW_3DFX_multisample; GLXEW_VAR_EXPORT GLboolean __GLXEW_AMD_gpu_association; GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_context_flush_control; GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_create_context; +GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_create_context_no_error; GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_create_context_profile; GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_create_context_robustness; GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_fbconfig_float; @@ -1685,11 +1755,14 @@ GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_vertex_buffer_object; GLXEW_VAR_EXPORT GLboolean __GLXEW_ATI_pixel_format_float; GLXEW_VAR_EXPORT GLboolean __GLXEW_ATI_render_texture; GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_buffer_age; +GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_context_priority; GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_create_context_es2_profile; GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_create_context_es_profile; GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_fbconfig_packed_float; GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_framebuffer_sRGB; GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_import_context; +GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_libglvnd; +GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_no_config_context; GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_scene_marker; GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_stereo_tree; GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_swap_control; @@ -1709,8 +1782,10 @@ GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_copy_buffer; GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_copy_image; GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_delay_before_swap; GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_float_buffer; +GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_multigpu_context; GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_multisample_coverage; GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_present_video; +GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_robustness_video_memory_purge; GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_swap_group; GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_vertex_array_range; GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_video_capture; @@ -1734,34 +1809,18 @@ GLXEW_VAR_EXPORT GLboolean __GLXEW_SGI_swap_control; GLXEW_VAR_EXPORT GLboolean __GLXEW_SGI_video_sync; GLXEW_VAR_EXPORT GLboolean __GLXEW_SUN_get_transparent_index; GLXEW_VAR_EXPORT GLboolean __GLXEW_SUN_video_resize; - -#ifdef GLEW_MX -}; /* GLXEWContextStruct */ -#endif /* GLEW_MX */ - /* ------------------------------------------------------------------------ */ -#ifdef GLEW_MX - -typedef struct GLXEWContextStruct GLXEWContext; -GLEWAPI GLenum GLEWAPIENTRY glxewContextInit (GLXEWContext *ctx); -GLEWAPI GLboolean GLEWAPIENTRY glxewContextIsSupported (const GLXEWContext *ctx, const char *name); - -#define glxewInit() glxewContextInit(glxewGetContext()) -#define glxewIsSupported(x) glxewContextIsSupported(glxewGetContext(), x) - -#define GLXEW_GET_VAR(x) (*(const GLboolean*)&(glxewGetContext()->x)) -#define GLXEW_GET_FUN(x) x - -#else /* GLEW_MX */ - GLEWAPI GLenum GLEWAPIENTRY glxewInit (); GLEWAPI GLboolean GLEWAPIENTRY glxewIsSupported (const char *name); +#ifndef GLXEW_GET_VAR #define GLXEW_GET_VAR(x) (*(const GLboolean*)&x) -#define GLXEW_GET_FUN(x) x +#endif -#endif /* GLEW_MX */ +#ifndef GLXEW_GET_FUN +#define GLXEW_GET_FUN(x) x +#endif GLEWAPI GLboolean GLEWAPIENTRY glxewGetExtension (const char *name); diff --git a/src/glew/include/GL/wglew.h b/src/glew/include/GL/wglew.h index c13c54a5f..7e2d0904c 100644 --- a/src/glew/include/GL/wglew.h +++ b/src/glew/include/GL/wglew.h @@ -1,6 +1,6 @@ /* ** The OpenGL Extension Wrangler Library -** Copyright (C) 2008-2015, Nigel Stewart +** Copyright (C) 2008-2019, Nigel Stewart ** Copyright (C) 2002-2008, Milan Ikits ** Copyright (C) 2002-2008, Marcelo E. Magallon ** Copyright (C) 2002, Lev Povalahev @@ -67,9 +67,6 @@ # ifndef WIN32_LEAN_AND_MEAN # define WIN32_LEAN_AND_MEAN 1 # endif -# ifdef NOGDI -# undef NOGDI -# endif #include # undef WIN32_LEAN_AND_MEAN #endif @@ -191,7 +188,7 @@ typedef BOOL (WINAPI * PFNWGLSAVEBUFFERREGIONARBPROC) (HANDLE hRegion, int x, in #ifndef WGL_ARB_context_flush_control #define WGL_ARB_context_flush_control 1 -#define WGL_CONTEXT_RELEASE_BEHAVIOR_NONE_ARB 0x0000 +#define WGL_CONTEXT_RELEASE_BEHAVIOR_NONE_ARB 0 #define WGL_CONTEXT_RELEASE_BEHAVIOR_ARB 0x2097 #define WGL_CONTEXT_RELEASE_BEHAVIOR_FLUSH_ARB 0x2098 @@ -204,14 +201,13 @@ typedef BOOL (WINAPI * PFNWGLSAVEBUFFERREGIONARBPROC) (HANDLE hRegion, int x, in #ifndef WGL_ARB_create_context #define WGL_ARB_create_context 1 -#define WGL_CONTEXT_DEBUG_BIT_ARB 0x0001 -#define WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB 0x0002 +#define WGL_CONTEXT_DEBUG_BIT_ARB 0x00000001 +#define WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB 0x00000002 #define WGL_CONTEXT_MAJOR_VERSION_ARB 0x2091 #define WGL_CONTEXT_MINOR_VERSION_ARB 0x2092 #define WGL_CONTEXT_LAYER_PLANE_ARB 0x2093 #define WGL_CONTEXT_FLAGS_ARB 0x2094 #define ERROR_INVALID_VERSION_ARB 0x2095 -#define ERROR_INVALID_PROFILE_ARB 0x2096 typedef HGLRC (WINAPI * PFNWGLCREATECONTEXTATTRIBSARBPROC) (HDC hDC, HGLRC hShareContext, const int* attribList); @@ -221,6 +217,17 @@ typedef HGLRC (WINAPI * PFNWGLCREATECONTEXTATTRIBSARBPROC) (HDC hDC, HGLRC hShar #endif /* WGL_ARB_create_context */ +/* -------------------- WGL_ARB_create_context_no_error -------------------- */ + +#ifndef WGL_ARB_create_context_no_error +#define WGL_ARB_create_context_no_error 1 + +#define WGL_CONTEXT_OPENGL_NO_ERROR_ARB 0x31B3 + +#define WGLEW_ARB_create_context_no_error WGLEW_GET_VAR(__WGLEW_ARB_create_context_no_error) + +#endif /* WGL_ARB_create_context_no_error */ + /* --------------------- WGL_ARB_create_context_profile -------------------- */ #ifndef WGL_ARB_create_context_profile @@ -228,6 +235,7 @@ typedef HGLRC (WINAPI * PFNWGLCREATECONTEXTATTRIBSARBPROC) (HDC hDC, HGLRC hShar #define WGL_CONTEXT_CORE_PROFILE_BIT_ARB 0x00000001 #define WGL_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB 0x00000002 +#define ERROR_INVALID_PROFILE_ARB 0x2096 #define WGL_CONTEXT_PROFILE_MASK_ARB 0x9126 #define WGLEW_ARB_create_context_profile WGLEW_GET_VAR(__WGLEW_ARB_create_context_profile) @@ -280,7 +288,7 @@ typedef const char* (WINAPI * PFNWGLGETEXTENSIONSSTRINGARBPROC) (HDC hdc); #define ERROR_INVALID_PIXEL_TYPE_ARB 0x2043 #define ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB 0x2054 -typedef HDC (WINAPI * PFNWGLGETCURRENTREADDCARBPROC) (VOID); +typedef HDC (WINAPI * PFNWGLGETCURRENTREADDCARBPROC) (void); typedef BOOL (WINAPI * PFNWGLMAKECONTEXTCURRENTARBPROC) (HDC hDrawDC, HDC hReadDC, HGLRC hglrc); #define wglGetCurrentReadDCARB WGLEW_GET_FUN(__wglewGetCurrentReadDCARB) @@ -389,9 +397,9 @@ typedef int (WINAPI * PFNWGLRELEASEPBUFFERDCARBPROC) (HPBUFFERARB hPbuffer, HDC #define WGL_TRANSPARENT_ALPHA_VALUE_ARB 0x203A #define WGL_TRANSPARENT_INDEX_VALUE_ARB 0x203B -typedef BOOL (WINAPI * PFNWGLCHOOSEPIXELFORMATARBPROC) (HDC hdc, const int* piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats); -typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBFVARBPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int* piAttributes, FLOAT *pfValues); -typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBIVARBPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int* piAttributes, int *piValues); +typedef BOOL (WINAPI * PFNWGLCHOOSEPIXELFORMATARBPROC) (HDC hdc, const int* piAttribIList, const FLOAT* pfAttribFList, UINT nMaxFormats, int* piFormats, UINT* nNumFormats); +typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBFVARBPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int* piAttributes, FLOAT* pfValues); +typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBIVARBPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int* piAttributes, int* piValues); #define wglChoosePixelFormatARB WGLEW_GET_FUN(__wglewChoosePixelFormatARB) #define wglGetPixelFormatAttribfvARB WGLEW_GET_FUN(__wglewGetPixelFormatAttribfvARB) @@ -509,6 +517,19 @@ typedef BOOL (WINAPI * PFNWGLSETPBUFFERATTRIBARBPROC) (HPBUFFERARB hPbuffer, con #endif /* WGL_ATI_render_texture_rectangle */ +/* --------------------------- WGL_EXT_colorspace -------------------------- */ + +#ifndef WGL_EXT_colorspace +#define WGL_EXT_colorspace 1 + +#define WGL_COLORSPACE_SRGB_EXT 0x3089 +#define WGL_COLORSPACE_LINEAR_EXT 0x308A +#define WGL_COLORSPACE_EXT 0x309D + +#define WGLEW_EXT_colorspace WGLEW_GET_VAR(__WGLEW_EXT_colorspace) + +#endif /* WGL_EXT_colorspace */ + /* ------------------- WGL_EXT_create_context_es2_profile ------------------ */ #ifndef WGL_EXT_create_context_es2_profile @@ -549,8 +570,8 @@ typedef BOOL (WINAPI * PFNWGLSETPBUFFERATTRIBARBPROC) (HPBUFFERARB hPbuffer, con typedef GLboolean (WINAPI * PFNWGLBINDDISPLAYCOLORTABLEEXTPROC) (GLushort id); typedef GLboolean (WINAPI * PFNWGLCREATEDISPLAYCOLORTABLEEXTPROC) (GLushort id); -typedef void (WINAPI * PFNWGLDESTROYDISPLAYCOLORTABLEEXTPROC) (GLushort id); -typedef GLboolean (WINAPI * PFNWGLLOADDISPLAYCOLORTABLEEXTPROC) (GLushort* table, GLuint length); +typedef VOID (WINAPI * PFNWGLDESTROYDISPLAYCOLORTABLEEXTPROC) (GLushort id); +typedef GLboolean (WINAPI * PFNWGLLOADDISPLAYCOLORTABLEEXTPROC) (const GLushort* table, GLuint length); #define wglBindDisplayColorTableEXT WGLEW_GET_FUN(__wglewBindDisplayColorTableEXT) #define wglCreateDisplayColorTableEXT WGLEW_GET_FUN(__wglewCreateDisplayColorTableEXT) @@ -592,7 +613,7 @@ typedef const char* (WINAPI * PFNWGLGETEXTENSIONSSTRINGEXTPROC) (void); #define ERROR_INVALID_PIXEL_TYPE_EXT 0x2043 -typedef HDC (WINAPI * PFNWGLGETCURRENTREADDCEXTPROC) (VOID); +typedef HDC (WINAPI * PFNWGLGETCURRENTREADDCEXTPROC) (void); typedef BOOL (WINAPI * PFNWGLMAKECONTEXTCURRENTEXTPROC) (HDC hDrawDC, HDC hReadDC, HGLRC hglrc); #define wglGetCurrentReadDCEXT WGLEW_GET_FUN(__wglewGetCurrentReadDCEXT) @@ -698,9 +719,9 @@ typedef int (WINAPI * PFNWGLRELEASEPBUFFERDCEXTPROC) (HPBUFFEREXT hPbuffer, HDC #define WGL_TYPE_RGBA_EXT 0x202B #define WGL_TYPE_COLORINDEX_EXT 0x202C -typedef BOOL (WINAPI * PFNWGLCHOOSEPIXELFORMATEXTPROC) (HDC hdc, const int* piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats); -typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBFVEXTPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, int* piAttributes, FLOAT *pfValues); -typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBIVEXTPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, int* piAttributes, int *piValues); +typedef BOOL (WINAPI * PFNWGLCHOOSEPIXELFORMATEXTPROC) (HDC hdc, const int* piAttribIList, const FLOAT* pfAttribFList, UINT nMaxFormats, int* piFormats, UINT* nNumFormats); +typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBFVEXTPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, int* piAttributes, FLOAT* pfValues); +typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBIVEXTPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, int* piAttributes, int* piValues); #define wglChoosePixelFormatEXT WGLEW_GET_FUN(__wglewChoosePixelFormatEXT) #define wglGetPixelFormatAttribfvEXT WGLEW_GET_FUN(__wglewGetPixelFormatAttribfvEXT) @@ -773,9 +794,9 @@ typedef BOOL (WINAPI * PFNWGLSETDIGITALVIDEOPARAMETERSI3DPROC) (HDC hDC, int iAt #define WGL_GAMMA_TABLE_SIZE_I3D 0x204E #define WGL_GAMMA_EXCLUDE_DESKTOP_I3D 0x204F -typedef BOOL (WINAPI * PFNWGLGETGAMMATABLEI3DPROC) (HDC hDC, int iEntries, USHORT* puRed, USHORT *puGreen, USHORT *puBlue); +typedef BOOL (WINAPI * PFNWGLGETGAMMATABLEI3DPROC) (HDC hDC, int iEntries, USHORT* puRed, USHORT* puGreen, USHORT* puBlue); typedef BOOL (WINAPI * PFNWGLGETGAMMATABLEPARAMETERSI3DPROC) (HDC hDC, int iAttribute, int* piValue); -typedef BOOL (WINAPI * PFNWGLSETGAMMATABLEI3DPROC) (HDC hDC, int iEntries, const USHORT* puRed, const USHORT *puGreen, const USHORT *puBlue); +typedef BOOL (WINAPI * PFNWGLSETGAMMATABLEI3DPROC) (HDC hDC, int iEntries, const USHORT* puRed, const USHORT* puGreen, const USHORT* puBlue); typedef BOOL (WINAPI * PFNWGLSETGAMMATABLEPARAMETERSI3DPROC) (HDC hDC, int iAttribute, const int* piValue); #define wglGetGammaTableI3D WGLEW_GET_FUN(__wglewGetGammaTableI3D) @@ -813,7 +834,7 @@ typedef BOOL (WINAPI * PFNWGLGETGENLOCKSOURCEDELAYI3DPROC) (HDC hDC, UINT* uDela typedef BOOL (WINAPI * PFNWGLGETGENLOCKSOURCEEDGEI3DPROC) (HDC hDC, UINT* uEdge); typedef BOOL (WINAPI * PFNWGLGETGENLOCKSOURCEI3DPROC) (HDC hDC, UINT* uSource); typedef BOOL (WINAPI * PFNWGLISENABLEDGENLOCKI3DPROC) (HDC hDC, BOOL* pFlag); -typedef BOOL (WINAPI * PFNWGLQUERYGENLOCKMAXSOURCEDELAYI3DPROC) (HDC hDC, UINT* uMaxLineDelay, UINT *uMaxPixelDelay); +typedef BOOL (WINAPI * PFNWGLQUERYGENLOCKMAXSOURCEDELAYI3DPROC) (HDC hDC, UINT* uMaxLineDelay, UINT* uMaxPixelDelay); #define wglDisableGenlockI3D WGLEW_GET_FUN(__wglewDisableGenlockI3D) #define wglEnableGenlockI3D WGLEW_GET_FUN(__wglewEnableGenlockI3D) @@ -840,10 +861,10 @@ typedef BOOL (WINAPI * PFNWGLQUERYGENLOCKMAXSOURCEDELAYI3DPROC) (HDC hDC, UINT* #define WGL_IMAGE_BUFFER_MIN_ACCESS_I3D 0x00000001 #define WGL_IMAGE_BUFFER_LOCK_I3D 0x00000002 -typedef BOOL (WINAPI * PFNWGLASSOCIATEIMAGEBUFFEREVENTSI3DPROC) (HDC hdc, HANDLE* pEvent, LPVOID *pAddress, DWORD *pSize, UINT count); +typedef BOOL (WINAPI * PFNWGLASSOCIATEIMAGEBUFFEREVENTSI3DPROC) (HDC hDC, const HANDLE* pEvent, const LPVOID* pAddress, const DWORD* pSize, UINT count); typedef LPVOID (WINAPI * PFNWGLCREATEIMAGEBUFFERI3DPROC) (HDC hDC, DWORD dwSize, UINT uFlags); typedef BOOL (WINAPI * PFNWGLDESTROYIMAGEBUFFERI3DPROC) (HDC hDC, LPVOID pAddress); -typedef BOOL (WINAPI * PFNWGLRELEASEIMAGEBUFFEREVENTSI3DPROC) (HDC hdc, LPVOID* pAddress, UINT count); +typedef BOOL (WINAPI * PFNWGLRELEASEIMAGEBUFFEREVENTSI3DPROC) (HDC hDC, const LPVOID* pAddress, UINT count); #define wglAssociateImageBufferEventsI3D WGLEW_GET_FUN(__wglewAssociateImageBufferEventsI3D) #define wglCreateImageBufferI3D WGLEW_GET_FUN(__wglewCreateImageBufferI3D) @@ -859,8 +880,8 @@ typedef BOOL (WINAPI * PFNWGLRELEASEIMAGEBUFFEREVENTSI3DPROC) (HDC hdc, LPVOID* #ifndef WGL_I3D_swap_frame_lock #define WGL_I3D_swap_frame_lock 1 -typedef BOOL (WINAPI * PFNWGLDISABLEFRAMELOCKI3DPROC) (VOID); -typedef BOOL (WINAPI * PFNWGLENABLEFRAMELOCKI3DPROC) (VOID); +typedef BOOL (WINAPI * PFNWGLDISABLEFRAMELOCKI3DPROC) (void); +typedef BOOL (WINAPI * PFNWGLENABLEFRAMELOCKI3DPROC) (void); typedef BOOL (WINAPI * PFNWGLISENABLEDFRAMELOCKI3DPROC) (BOOL* pFlag); typedef BOOL (WINAPI * PFNWGLQUERYFRAMELOCKMASTERI3DPROC) (BOOL* pFlag); @@ -881,7 +902,7 @@ typedef BOOL (WINAPI * PFNWGLQUERYFRAMELOCKMASTERI3DPROC) (BOOL* pFlag); typedef BOOL (WINAPI * PFNWGLBEGINFRAMETRACKINGI3DPROC) (void); typedef BOOL (WINAPI * PFNWGLENDFRAMETRACKINGI3DPROC) (void); typedef BOOL (WINAPI * PFNWGLGETFRAMEUSAGEI3DPROC) (float* pUsage); -typedef BOOL (WINAPI * PFNWGLQUERYFRAMETRACKINGI3DPROC) (DWORD* pFrameCount, DWORD *pMissedFrames, float *pLastMissedUsage); +typedef BOOL (WINAPI * PFNWGLQUERYFRAMETRACKINGI3DPROC) (DWORD* pFrameCount, DWORD* pMissedFrames, float* pLastMissedUsage); #define wglBeginFrameTrackingI3D WGLEW_GET_FUN(__wglewBeginFrameTrackingI3D) #define wglEndFrameTrackingI3D WGLEW_GET_FUN(__wglewEndFrameTrackingI3D) @@ -897,9 +918,9 @@ typedef BOOL (WINAPI * PFNWGLQUERYFRAMETRACKINGI3DPROC) (DWORD* pFrameCount, DWO #ifndef WGL_NV_DX_interop #define WGL_NV_DX_interop 1 -#define WGL_ACCESS_READ_ONLY_NV 0x0000 -#define WGL_ACCESS_READ_WRITE_NV 0x0001 -#define WGL_ACCESS_WRITE_DISCARD_NV 0x0002 +#define WGL_ACCESS_READ_ONLY_NV 0x00000000 +#define WGL_ACCESS_READ_WRITE_NV 0x00000001 +#define WGL_ACCESS_WRITE_DISCARD_NV 0x00000002 typedef BOOL (WINAPI * PFNWGLDXCLOSEDEVICENVPROC) (HANDLE hDevice); typedef BOOL (WINAPI * PFNWGLDXLOCKOBJECTSNVPROC) (HANDLE hDevice, GLint count, HANDLE* hObjects); @@ -1010,6 +1031,21 @@ typedef BOOL (WINAPI * PFNWGLENUMGPUSNVPROC) (UINT iGpuIndex, HGPUNV *phGpu); #endif /* WGL_NV_gpu_affinity */ +/* ------------------------ WGL_NV_multigpu_context ------------------------ */ + +#ifndef WGL_NV_multigpu_context +#define WGL_NV_multigpu_context 1 + +#define WGL_CONTEXT_MULTIGPU_ATTRIB_NV 0x20AA +#define WGL_CONTEXT_MULTIGPU_ATTRIB_SINGLE_NV 0x20AB +#define WGL_CONTEXT_MULTIGPU_ATTRIB_AFR_NV 0x20AC +#define WGL_CONTEXT_MULTIGPU_ATTRIB_MULTICAST_NV 0x20AD +#define WGL_CONTEXT_MULTIGPU_ATTRIB_MULTI_DISPLAY_MULTICAST_NV 0x20AE + +#define WGLEW_NV_multigpu_context WGLEW_GET_VAR(__WGLEW_NV_multigpu_context) + +#endif /* WGL_NV_multigpu_context */ + /* ---------------------- WGL_NV_multisample_coverage ---------------------- */ #ifndef WGL_NV_multisample_coverage @@ -1048,7 +1084,6 @@ typedef BOOL (WINAPI * PFNWGLQUERYCURRENTCONTEXTNVPROC) (int iAttribute, int* pi #ifndef WGL_NV_render_depth_texture #define WGL_NV_render_depth_texture 1 -#define WGL_NO_TEXTURE_ARB 0x2077 #define WGL_BIND_TO_TEXTURE_DEPTH_NV 0x20A3 #define WGL_BIND_TO_TEXTURE_RECTANGLE_DEPTH_NV 0x20A4 #define WGL_DEPTH_TEXTURE_FORMAT_NV 0x20A5 @@ -1080,8 +1115,8 @@ typedef BOOL (WINAPI * PFNWGLQUERYCURRENTCONTEXTNVPROC) (int iAttribute, int* pi typedef BOOL (WINAPI * PFNWGLBINDSWAPBARRIERNVPROC) (GLuint group, GLuint barrier); typedef BOOL (WINAPI * PFNWGLJOINSWAPGROUPNVPROC) (HDC hDC, GLuint group); typedef BOOL (WINAPI * PFNWGLQUERYFRAMECOUNTNVPROC) (HDC hDC, GLuint* count); -typedef BOOL (WINAPI * PFNWGLQUERYMAXSWAPGROUPSNVPROC) (HDC hDC, GLuint* maxGroups, GLuint *maxBarriers); -typedef BOOL (WINAPI * PFNWGLQUERYSWAPGROUPNVPROC) (HDC hDC, GLuint* group, GLuint *barrier); +typedef BOOL (WINAPI * PFNWGLQUERYMAXSWAPGROUPSNVPROC) (HDC hDC, GLuint* maxGroups, GLuint* maxBarriers); +typedef BOOL (WINAPI * PFNWGLQUERYSWAPGROUPNVPROC) (HDC hDC, GLuint* group, GLuint* barrier); typedef BOOL (WINAPI * PFNWGLRESETFRAMECOUNTNVPROC) (HDC hDC); #define wglBindSwapBarrierNV WGLEW_GET_FUN(__wglewBindSwapBarrierNV) @@ -1100,8 +1135,8 @@ typedef BOOL (WINAPI * PFNWGLRESETFRAMECOUNTNVPROC) (HDC hDC); #ifndef WGL_NV_vertex_array_range #define WGL_NV_vertex_array_range 1 -typedef void * (WINAPI * PFNWGLALLOCATEMEMORYNVPROC) (GLsizei size, GLfloat readFrequency, GLfloat writeFrequency, GLfloat priority); -typedef void (WINAPI * PFNWGLFREEMEMORYNVPROC) (void *pointer); +typedef void* (WINAPI * PFNWGLALLOCATEMEMORYNVPROC) (GLsizei size, GLfloat readfreq, GLfloat writefreq, GLfloat priority); +typedef void (WINAPI * PFNWGLFREEMEMORYNVPROC) (void* pointer); #define wglAllocateMemoryNV WGLEW_GET_FUN(__wglewAllocateMemoryNV) #define wglFreeMemoryNV WGLEW_GET_FUN(__wglewFreeMemoryNV) @@ -1159,7 +1194,7 @@ DECLARE_HANDLE(HPVIDEODEV); typedef BOOL (WINAPI * PFNWGLBINDVIDEOIMAGENVPROC) (HPVIDEODEV hVideoDevice, HPBUFFERARB hPbuffer, int iVideoBuffer); typedef BOOL (WINAPI * PFNWGLGETVIDEODEVICENVPROC) (HDC hDC, int numDevices, HPVIDEODEV* hVideoDevice); -typedef BOOL (WINAPI * PFNWGLGETVIDEOINFONVPROC) (HPVIDEODEV hpVideoDevice, unsigned long* pulCounterOutputPbuffer, unsigned long *pulCounterOutputVideo); +typedef BOOL (WINAPI * PFNWGLGETVIDEOINFONVPROC) (HPVIDEODEV hpVideoDevice, unsigned long* pulCounterOutputPbuffer, unsigned long* pulCounterOutputVideo); typedef BOOL (WINAPI * PFNWGLRELEASEVIDEODEVICENVPROC) (HPVIDEODEV hVideoDevice); typedef BOOL (WINAPI * PFNWGLRELEASEVIDEOIMAGENVPROC) (HPBUFFERARB hPbuffer, int iVideoBuffer); typedef BOOL (WINAPI * PFNWGLSENDPBUFFERTOVIDEONVPROC) (HPBUFFERARB hPbuffer, int iBufferType, unsigned long* pulCounterPbuffer, BOOL bBlock); @@ -1180,12 +1215,12 @@ typedef BOOL (WINAPI * PFNWGLSENDPBUFFERTOVIDEONVPROC) (HPBUFFERARB hPbuffer, in #ifndef WGL_OML_sync_control #define WGL_OML_sync_control 1 -typedef BOOL (WINAPI * PFNWGLGETMSCRATEOMLPROC) (HDC hdc, INT32* numerator, INT32 *denominator); -typedef BOOL (WINAPI * PFNWGLGETSYNCVALUESOMLPROC) (HDC hdc, INT64* ust, INT64 *msc, INT64 *sbc); +typedef BOOL (WINAPI * PFNWGLGETMSCRATEOMLPROC) (HDC hdc, INT32* numerator, INT32* denominator); +typedef BOOL (WINAPI * PFNWGLGETSYNCVALUESOMLPROC) (HDC hdc, INT64* ust, INT64* msc, INT64* sbc); typedef INT64 (WINAPI * PFNWGLSWAPBUFFERSMSCOMLPROC) (HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder); typedef INT64 (WINAPI * PFNWGLSWAPLAYERBUFFERSMSCOMLPROC) (HDC hdc, INT fuPlanes, INT64 target_msc, INT64 divisor, INT64 remainder); -typedef BOOL (WINAPI * PFNWGLWAITFORMSCOMLPROC) (HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder, INT64* ust, INT64 *msc, INT64 *sbc); -typedef BOOL (WINAPI * PFNWGLWAITFORSBCOMLPROC) (HDC hdc, INT64 target_sbc, INT64* ust, INT64 *msc, INT64 *sbc); +typedef BOOL (WINAPI * PFNWGLWAITFORMSCOMLPROC) (HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder, INT64* ust, INT64* msc, INT64* sbc); +typedef BOOL (WINAPI * PFNWGLWAITFORSBCOMLPROC) (HDC hdc, INT64 target_sbc, INT64* ust, INT64* msc, INT64* sbc); #define wglGetMscRateOML WGLEW_GET_FUN(__wglewGetMscRateOML) #define wglGetSyncValuesOML WGLEW_GET_FUN(__wglewGetSyncValuesOML) @@ -1200,18 +1235,8 @@ typedef BOOL (WINAPI * PFNWGLWAITFORSBCOMLPROC) (HDC hdc, INT64 target_sbc, INT6 /* ------------------------------------------------------------------------- */ -#ifdef GLEW_MX -#define WGLEW_FUN_EXPORT -#define WGLEW_VAR_EXPORT -#else #define WGLEW_FUN_EXPORT GLEW_FUN_EXPORT #define WGLEW_VAR_EXPORT GLEW_VAR_EXPORT -#endif /* GLEW_MX */ - -#ifdef GLEW_MX -struct WGLEWContextStruct -{ -#endif /* GLEW_MX */ WGLEW_FUN_EXPORT PFNWGLSETSTEREOEMITTERSTATE3DLPROC __wglewSetStereoEmitterState3DL; @@ -1368,6 +1393,7 @@ WGLEW_VAR_EXPORT GLboolean __WGLEW_AMD_gpu_association; WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_buffer_region; WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_context_flush_control; WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_create_context; +WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_create_context_no_error; WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_create_context_profile; WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_create_context_robustness; WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_extensions_string; @@ -1382,6 +1408,7 @@ WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_robustness_application_isolation; WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_robustness_share_group_isolation; WGLEW_VAR_EXPORT GLboolean __WGLEW_ATI_pixel_format_float; WGLEW_VAR_EXPORT GLboolean __WGLEW_ATI_render_texture_rectangle; +WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_colorspace; WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_create_context_es2_profile; WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_create_context_es_profile; WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_depth_float; @@ -1407,6 +1434,7 @@ WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_copy_image; WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_delay_before_swap; WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_float_buffer; WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_gpu_affinity; +WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_multigpu_context; WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_multisample_coverage; WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_present_video; WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_render_depth_texture; @@ -1416,34 +1444,18 @@ WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_vertex_array_range; WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_video_capture; WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_video_output; WGLEW_VAR_EXPORT GLboolean __WGLEW_OML_sync_control; - -#ifdef GLEW_MX -}; /* WGLEWContextStruct */ -#endif /* GLEW_MX */ - /* ------------------------------------------------------------------------- */ -#ifdef GLEW_MX - -typedef struct WGLEWContextStruct WGLEWContext; -GLEWAPI GLenum GLEWAPIENTRY wglewContextInit (WGLEWContext *ctx); -GLEWAPI GLboolean GLEWAPIENTRY wglewContextIsSupported (const WGLEWContext *ctx, const char *name); - -#define wglewInit() wglewContextInit(wglewGetContext()) -#define wglewIsSupported(x) wglewContextIsSupported(wglewGetContext(), x) - -#define WGLEW_GET_VAR(x) (*(const GLboolean*)&(wglewGetContext()->x)) -#define WGLEW_GET_FUN(x) wglewGetContext()->x - -#else /* GLEW_MX */ - GLEWAPI GLenum GLEWAPIENTRY wglewInit (); GLEWAPI GLboolean GLEWAPIENTRY wglewIsSupported (const char *name); +#ifndef WGLEW_GET_VAR #define WGLEW_GET_VAR(x) (*(const GLboolean*)&x) -#define WGLEW_GET_FUN(x) x +#endif -#endif /* GLEW_MX */ +#ifndef WGLEW_GET_FUN +#define WGLEW_GET_FUN(x) x +#endif GLEWAPI GLboolean GLEWAPIENTRY wglewGetExtension (const char *name); diff --git a/src/glew/src/glew.c b/src/glew/src/glew.c index 2ed1c74a5..967c5c91f 100644 --- a/src/glew/src/glew.c +++ b/src/glew/src/glew.c @@ -1,6 +1,6 @@ /* ** The OpenGL Extension Wrangler Library -** Copyright (C) 2008-2015, Nigel Stewart +** Copyright (C) 2008-2019, Nigel Stewart ** Copyright (C) 2002-2008, Milan Ikits ** Copyright (C) 2002-2008, Marcelo E. Magallon ** Copyright (C) 2002, Lev Povalahev @@ -30,12 +30,26 @@ ** THE POSSIBILITY OF SUCH DAMAGE. */ -#if 1 -// #ifdef SLIC3R_GUI +#ifndef GLEW_INCLUDE +# include +#else +# include GLEW_INCLUDE +#endif -#include - -#if defined(_WIN32) +#if defined(GLEW_OSMESA) +# define GLAPI extern +# include +#elif defined(GLEW_EGL) +# include +#elif defined(_WIN32) +/* + * If NOGDI is defined, wingdi.h won't be included by windows.h, and thus + * wglGetProcAddress won't be declared. It will instead be implicitly declared, + * potentially incorrectly, which we don't want. + */ +# if defined(NOGDI) +# undef NOGDI +# endif # include #elif !defined(__ANDROID__) && !defined(__native_client__) && !defined(__HAIKU__) && (!defined(__APPLE__) || defined(GLEW_APPLE_GLX)) # include @@ -43,36 +57,8 @@ #include /* For size_t */ -/* - * Define glewGetContext and related helper macros. - */ -#ifdef GLEW_MX -# define glewGetContext() ctx -# ifdef _WIN32 -# define GLEW_CONTEXT_ARG_DEF_INIT GLEWContext* ctx -# define GLEW_CONTEXT_ARG_VAR_INIT ctx -# define wglewGetContext() ctx -# define WGLEW_CONTEXT_ARG_DEF_INIT WGLEWContext* ctx -# define WGLEW_CONTEXT_ARG_DEF_LIST WGLEWContext* ctx -# else /* _WIN32 */ -# define GLEW_CONTEXT_ARG_DEF_INIT void -# define GLEW_CONTEXT_ARG_VAR_INIT -# define glxewGetContext() ctx -# define GLXEW_CONTEXT_ARG_DEF_INIT void -# define GLXEW_CONTEXT_ARG_DEF_LIST GLXEWContext* ctx -# endif /* _WIN32 */ -# define GLEW_CONTEXT_ARG_DEF_LIST GLEWContext* ctx -#else /* GLEW_MX */ -# define GLEW_CONTEXT_ARG_DEF_INIT void -# define GLEW_CONTEXT_ARG_VAR_INIT -# define GLEW_CONTEXT_ARG_DEF_LIST void -# define WGLEW_CONTEXT_ARG_DEF_INIT void -# define WGLEW_CONTEXT_ARG_DEF_LIST void -# define GLXEW_CONTEXT_ARG_DEF_INIT void -# define GLXEW_CONTEXT_ARG_DEF_LIST void -#endif /* GLEW_MX */ - -#if defined(GLEW_REGAL) +#if defined(GLEW_EGL) +#elif defined(GLEW_REGAL) /* In GLEW_REGAL mode we call direcly into the linked libRegal.so glGetProcAddressREGAL for looking up @@ -124,7 +110,7 @@ void* NSGLGetProcAddress (const GLubyte *name) { static void* image = NULL; void* addr; - if (NULL == image) + if (NULL == image) { image = dlopen("/System/Library/Frameworks/OpenGL.framework/Versions/Current/OpenGL", RTLD_LAZY); } @@ -173,7 +159,11 @@ void* NSGLGetProcAddress (const GLubyte *name) * Define glewGetProcAddress. */ #if defined(GLEW_REGAL) -# define glewGetProcAddress(name) regalGetProcAddress((const GLchar *) name) +# define glewGetProcAddress(name) regalGetProcAddress((const GLchar *)name) +#elif defined(GLEW_OSMESA) +# define glewGetProcAddress(name) OSMesaGetProcAddress((const char *)name) +#elif defined(GLEW_EGL) +# define glewGetProcAddress(name) eglGetProcAddress((const char *)name) #elif defined(_WIN32) # define glewGetProcAddress(name) wglGetProcAddress((LPCSTR)name) #elif defined(__APPLE__) && !defined(GLEW_APPLE_GLX) @@ -193,34 +183,28 @@ void* NSGLGetProcAddress (const GLubyte *name) */ #undef GLEW_GET_VAR -#ifdef GLEW_MX -# define GLEW_GET_VAR(x) (glewGetContext()->x) -#else /* GLEW_MX */ # define GLEW_GET_VAR(x) (x) -#endif /* GLEW_MX */ #ifdef WGLEW_GET_VAR # undef WGLEW_GET_VAR -# ifdef GLEW_MX -# define WGLEW_GET_VAR(x) (wglewGetContext()->x) -# else /* GLEW_MX */ -# define WGLEW_GET_VAR(x) (x) -# endif /* GLEW_MX */ +# define WGLEW_GET_VAR(x) (x) #endif /* WGLEW_GET_VAR */ #ifdef GLXEW_GET_VAR # undef GLXEW_GET_VAR -# ifdef GLEW_MX -# define GLXEW_GET_VAR(x) (glxewGetContext()->x) -# else /* GLEW_MX */ -# define GLXEW_GET_VAR(x) (x) -# endif /* GLEW_MX */ +# define GLXEW_GET_VAR(x) (x) #endif /* GLXEW_GET_VAR */ +#ifdef EGLEW_GET_VAR +# undef EGLEW_GET_VAR +# define EGLEW_GET_VAR(x) (x) +#endif /* EGLEW_GET_VAR */ + /* * GLEW, just like OpenGL or GLU, does not rely on the standard C library. * These functions implement the functionality required in this file. */ + static GLuint _glewStrLen (const GLubyte* s) { GLuint i=0; @@ -234,9 +218,20 @@ static GLuint _glewStrCLen (const GLubyte* s, GLubyte c) GLuint i=0; if (s == NULL) return 0; while (s[i] != '\0' && s[i] != c) i++; - return (s[i] == '\0' || s[i] == c) ? i : 0; + return i; } +static GLuint _glewStrCopy(char *d, const char *s, char c) +{ + GLuint i=0; + if (s == NULL) return 0; + while (s[i] != '\0' && s[i] != c) { d[i] = s[i]; i++; } + d[i] = '\0'; + return i; +} + +#if !defined(GLEW_OSMESA) +#if !defined(__APPLE__) || defined(GLEW_APPLE_GLX) static GLboolean _glewStrSame (const GLubyte* a, const GLubyte* b, GLuint n) { GLuint i=0; @@ -245,6 +240,8 @@ static GLboolean _glewStrSame (const GLubyte* a, const GLubyte* b, GLuint n) while (i < n && a[i] != '\0' && b[i] != '\0' && a[i] == b[i]) i++; return i == n ? GL_TRUE : GL_FALSE; } +#endif +#endif static GLboolean _glewStrSame1 (const GLubyte** a, GLuint* na, const GLubyte* b, GLuint nb) { @@ -305,6 +302,8 @@ static GLboolean _glewStrSame3 (const GLubyte** a, GLuint* na, const GLubyte* b, * other extension names. Could use strtok() but the constant * string returned by glGetString might be in read-only memory. */ +#if !defined(GLEW_OSMESA) +#if !defined(__APPLE__) || defined(GLEW_APPLE_GLX) static GLboolean _glewSearchExtension (const char* name, const GLubyte *start, const GLubyte *end) { const GLubyte* p; @@ -318,8 +317,8 @@ static GLboolean _glewSearchExtension (const char* name, const GLubyte *start, c } return GL_FALSE; } - -#if !defined(_WIN32) || !defined(GLEW_MX) +#endif +#endif PFNGLCOPYTEXSUBIMAGE3DPROC __glewCopyTexSubImage3D = NULL; PFNGLDRAWRANGEELEMENTSPROC __glewDrawRangeElements = NULL; @@ -620,6 +619,10 @@ PFNGLGETNCOMPRESSEDTEXIMAGEPROC __glewGetnCompressedTexImage = NULL; PFNGLGETNTEXIMAGEPROC __glewGetnTexImage = NULL; PFNGLGETNUNIFORMDVPROC __glewGetnUniformdv = NULL; +PFNGLMULTIDRAWARRAYSINDIRECTCOUNTPROC __glewMultiDrawArraysIndirectCount = NULL; +PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTPROC __glewMultiDrawElementsIndirectCount = NULL; +PFNGLSPECIALIZESHADERPROC __glewSpecializeShader = NULL; + PFNGLTBUFFERMASK3DFXPROC __glewTbufferMask3DFX = NULL; PFNGLDEBUGMESSAGECALLBACKAMDPROC __glewDebugMessageCallbackAMD = NULL; @@ -632,6 +635,14 @@ PFNGLBLENDEQUATIONSEPARATEINDEXEDAMDPROC __glewBlendEquationSeparateIndexedAMD = PFNGLBLENDFUNCINDEXEDAMDPROC __glewBlendFuncIndexedAMD = NULL; PFNGLBLENDFUNCSEPARATEINDEXEDAMDPROC __glewBlendFuncSeparateIndexedAMD = NULL; +PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEADVANCEDAMDPROC __glewNamedRenderbufferStorageMultisampleAdvancedAMD = NULL; +PFNGLRENDERBUFFERSTORAGEMULTISAMPLEADVANCEDAMDPROC __glewRenderbufferStorageMultisampleAdvancedAMD = NULL; + +PFNGLFRAMEBUFFERSAMPLEPOSITIONSFVAMDPROC __glewFramebufferSamplePositionsfvAMD = NULL; +PFNGLGETFRAMEBUFFERPARAMETERFVAMDPROC __glewGetFramebufferParameterfvAMD = NULL; +PFNGLGETNAMEDFRAMEBUFFERPARAMETERFVAMDPROC __glewGetNamedFramebufferParameterfvAMD = NULL; +PFNGLNAMEDFRAMEBUFFERSAMPLEPOSITIONSFVAMDPROC __glewNamedFramebufferSamplePositionsfvAMD = NULL; + PFNGLVERTEXATTRIBPARAMETERIAMDPROC __glewVertexAttribParameteriAMD = NULL; PFNGLMULTIDRAWARRAYSINDIRECTAMDPROC __glewMultiDrawArraysIndirectAMD = NULL; @@ -687,6 +698,8 @@ PFNGLQUERYCOUNTERANGLEPROC __glewQueryCounterANGLE = NULL; PFNGLGETTRANSLATEDSHADERSOURCEANGLEPROC __glewGetTranslatedShaderSourceANGLE = NULL; +PFNGLCOPYTEXTURELEVELSAPPLEPROC __glewCopyTextureLevelsAPPLE = NULL; + PFNGLDRAWELEMENTARRAYAPPLEPROC __glewDrawElementArrayAPPLE = NULL; PFNGLDRAWRANGEELEMENTARRAYAPPLEPROC __glewDrawRangeElementArrayAPPLE = NULL; PFNGLELEMENTPOINTERAPPLEPROC __glewElementPointerAPPLE = NULL; @@ -705,10 +718,21 @@ PFNGLTESTOBJECTAPPLEPROC __glewTestObjectAPPLE = NULL; PFNGLBUFFERPARAMETERIAPPLEPROC __glewBufferParameteriAPPLE = NULL; PFNGLFLUSHMAPPEDBUFFERRANGEAPPLEPROC __glewFlushMappedBufferRangeAPPLE = NULL; +PFNGLRENDERBUFFERSTORAGEMULTISAMPLEAPPLEPROC __glewRenderbufferStorageMultisampleAPPLE = NULL; +PFNGLRESOLVEMULTISAMPLEFRAMEBUFFERAPPLEPROC __glewResolveMultisampleFramebufferAPPLE = NULL; + PFNGLGETOBJECTPARAMETERIVAPPLEPROC __glewGetObjectParameterivAPPLE = NULL; PFNGLOBJECTPURGEABLEAPPLEPROC __glewObjectPurgeableAPPLE = NULL; PFNGLOBJECTUNPURGEABLEAPPLEPROC __glewObjectUnpurgeableAPPLE = NULL; +PFNGLCLIENTWAITSYNCAPPLEPROC __glewClientWaitSyncAPPLE = NULL; +PFNGLDELETESYNCAPPLEPROC __glewDeleteSyncAPPLE = NULL; +PFNGLFENCESYNCAPPLEPROC __glewFenceSyncAPPLE = NULL; +PFNGLGETINTEGER64VAPPLEPROC __glewGetInteger64vAPPLE = NULL; +PFNGLGETSYNCIVAPPLEPROC __glewGetSyncivAPPLE = NULL; +PFNGLISSYNCAPPLEPROC __glewIsSyncAPPLE = NULL; +PFNGLWAITSYNCAPPLEPROC __glewWaitSyncAPPLE = NULL; + PFNGLGETTEXPARAMETERPOINTERVAPPLEPROC __glewGetTexParameterPointervAPPLE = NULL; PFNGLTEXTURERANGEAPPLEPROC __glewTextureRangeAPPLE = NULL; @@ -764,7 +788,6 @@ PFNGLBINDFRAGDATALOCATIONINDEXEDPROC __glewBindFragDataLocationIndexed = NULL; PFNGLGETFRAGDATAINDEXPROC __glewGetFragDataIndex = NULL; PFNGLBUFFERSTORAGEPROC __glewBufferStorage = NULL; -PFNGLNAMEDBUFFERSTORAGEEXTPROC __glewNamedBufferStorageEXT = NULL; PFNGLCREATESYNCFROMCLEVENTARBPROC __glewCreateSyncFromCLeventARB = NULL; @@ -945,6 +968,8 @@ PFNGLPROGRAMPARAMETERIPROC __glewProgramParameteri = NULL; PFNGLGETCOMPRESSEDTEXTURESUBIMAGEPROC __glewGetCompressedTextureSubImage = NULL; PFNGLGETTEXTURESUBIMAGEPROC __glewGetTextureSubImage = NULL; +PFNGLSPECIALIZESHADERARBPROC __glewSpecializeShaderARB = NULL; + PFNGLGETUNIFORMDVPROC __glewGetUniformdv = NULL; PFNGLUNIFORM1DPROC __glewUniform1d = NULL; PFNGLUNIFORM1DVPROC __glewUniform1dv = NULL; @@ -1122,6 +1147,8 @@ PFNGLMAXSHADERCOMPILERTHREADSARBPROC __glewMaxShaderCompilerThreadsARB = NULL; PFNGLPOINTPARAMETERFARBPROC __glewPointParameterfARB = NULL; PFNGLPOINTPARAMETERFVARBPROC __glewPointParameterfvARB = NULL; +PFNGLPOLYGONOFFSETCLAMPPROC __glewPolygonOffsetClamp = NULL; + PFNGLGETPROGRAMINTERFACEIVPROC __glewGetProgramInterfaceiv = NULL; PFNGLGETPROGRAMRESOURCEINDEXPROC __glewGetProgramResourceIndex = NULL; PFNGLGETPROGRAMRESOURCELOCATIONPROC __glewGetProgramResourceLocation = NULL; @@ -1299,7 +1326,6 @@ PFNGLNAMEDSTRINGARBPROC __glewNamedStringARB = NULL; PFNGLBUFFERPAGECOMMITMENTARBPROC __glewBufferPageCommitmentARB = NULL; PFNGLTEXPAGECOMMITMENTARBPROC __glewTexPageCommitmentARB = NULL; -PFNGLTEXTUREPAGECOMMITMENTEXTPROC __glewTexturePageCommitmentEXT = NULL; PFNGLCLIENTWAITSYNCPROC __glewClientWaitSync = NULL; PFNGLDELETESYNCPROC __glewDeleteSync = NULL; @@ -1335,9 +1361,6 @@ PFNGLTEXIMAGE3DMULTISAMPLEPROC __glewTexImage3DMultisample = NULL; PFNGLTEXSTORAGE1DPROC __glewTexStorage1D = NULL; PFNGLTEXSTORAGE2DPROC __glewTexStorage2D = NULL; PFNGLTEXSTORAGE3DPROC __glewTexStorage3D = NULL; -PFNGLTEXTURESTORAGE1DEXTPROC __glewTextureStorage1DEXT = NULL; -PFNGLTEXTURESTORAGE2DEXTPROC __glewTextureStorage2DEXT = NULL; -PFNGLTEXTURESTORAGE3DEXTPROC __glewTextureStorage3DEXT = NULL; PFNGLTEXSTORAGE2DMULTISAMPLEPROC __glewTexStorage2DMultisample = NULL; PFNGLTEXSTORAGE3DMULTISAMPLEPROC __glewTexStorage3DMultisample = NULL; @@ -1666,6 +1689,13 @@ PFNGLVERTEXSTREAM4IVATIPROC __glewVertexStream4ivATI = NULL; PFNGLVERTEXSTREAM4SATIPROC __glewVertexStream4sATI = NULL; PFNGLVERTEXSTREAM4SVATIPROC __glewVertexStream4svATI = NULL; +PFNGLEGLIMAGETARGETTEXSTORAGEEXTPROC __glewEGLImageTargetTexStorageEXT = NULL; +PFNGLEGLIMAGETARGETTEXTURESTORAGEEXTPROC __glewEGLImageTargetTextureStorageEXT = NULL; + +PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEEXTPROC __glewDrawArraysInstancedBaseInstanceEXT = NULL; +PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEEXTPROC __glewDrawElementsInstancedBaseInstanceEXT = NULL; +PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEEXTPROC __glewDrawElementsInstancedBaseVertexBaseInstanceEXT = NULL; + PFNGLGETUNIFORMBUFFERSIZEEXTPROC __glewGetUniformBufferSizeEXT = NULL; PFNGLGETUNIFORMOFFSETEXTPROC __glewGetUniformOffsetEXT = NULL; PFNGLUNIFORMBUFFEREXTPROC __glewUniformBufferEXT = NULL; @@ -1674,10 +1704,22 @@ PFNGLBLENDCOLOREXTPROC __glewBlendColorEXT = NULL; PFNGLBLENDEQUATIONSEPARATEEXTPROC __glewBlendEquationSeparateEXT = NULL; +PFNGLBINDFRAGDATALOCATIONINDEXEDEXTPROC __glewBindFragDataLocationIndexedEXT = NULL; +PFNGLGETFRAGDATAINDEXEXTPROC __glewGetFragDataIndexEXT = NULL; +PFNGLGETPROGRAMRESOURCELOCATIONINDEXEXTPROC __glewGetProgramResourceLocationIndexEXT = NULL; + PFNGLBLENDFUNCSEPARATEEXTPROC __glewBlendFuncSeparateEXT = NULL; PFNGLBLENDEQUATIONEXTPROC __glewBlendEquationEXT = NULL; +PFNGLBUFFERSTORAGEEXTPROC __glewBufferStorageEXT = NULL; +PFNGLNAMEDBUFFERSTORAGEEXTPROC __glewNamedBufferStorageEXT = NULL; + +PFNGLCLEARTEXIMAGEEXTPROC __glewClearTexImageEXT = NULL; +PFNGLCLEARTEXSUBIMAGEEXTPROC __glewClearTexSubImageEXT = NULL; + +PFNGLCLIPCONTROLEXTPROC __glewClipControlEXT = NULL; + PFNGLCOLORSUBTABLEEXTPROC __glewColorSubTableEXT = NULL; PFNGLCOPYCOLORSUBTABLEEXTPROC __glewCopyColorSubTableEXT = NULL; @@ -1701,6 +1743,8 @@ PFNGLSEPARABLEFILTER2DEXTPROC __glewSeparableFilter2DEXT = NULL; PFNGLBINORMALPOINTEREXTPROC __glewBinormalPointerEXT = NULL; PFNGLTANGENTPOINTEREXTPROC __glewTangentPointerEXT = NULL; +PFNGLCOPYIMAGESUBDATAEXTPROC __glewCopyImageSubDataEXT = NULL; + PFNGLCOPYTEXIMAGE1DEXTPROC __glewCopyTexImage1DEXT = NULL; PFNGLCOPYTEXIMAGE2DEXTPROC __glewCopyTexImage2DEXT = NULL; PFNGLCOPYTEXSUBIMAGE1DEXTPROC __glewCopyTexSubImage1DEXT = NULL; @@ -1934,6 +1978,21 @@ PFNGLVERTEXARRAYVERTEXATTRIBIOFFSETEXTPROC __glewVertexArrayVertexAttribIOffsetE PFNGLVERTEXARRAYVERTEXATTRIBOFFSETEXTPROC __glewVertexArrayVertexAttribOffsetEXT = NULL; PFNGLVERTEXARRAYVERTEXOFFSETEXTPROC __glewVertexArrayVertexOffsetEXT = NULL; +PFNGLDISCARDFRAMEBUFFEREXTPROC __glewDiscardFramebufferEXT = NULL; + +PFNGLBEGINQUERYEXTPROC __glewBeginQueryEXT = NULL; +PFNGLDELETEQUERIESEXTPROC __glewDeleteQueriesEXT = NULL; +PFNGLENDQUERYEXTPROC __glewEndQueryEXT = NULL; +PFNGLGENQUERIESEXTPROC __glewGenQueriesEXT = NULL; +PFNGLGETINTEGER64VEXTPROC __glewGetInteger64vEXT = NULL; +PFNGLGETQUERYOBJECTIVEXTPROC __glewGetQueryObjectivEXT = NULL; +PFNGLGETQUERYOBJECTUIVEXTPROC __glewGetQueryObjectuivEXT = NULL; +PFNGLGETQUERYIVEXTPROC __glewGetQueryivEXT = NULL; +PFNGLISQUERYEXTPROC __glewIsQueryEXT = NULL; +PFNGLQUERYCOUNTEREXTPROC __glewQueryCounterEXT = NULL; + +PFNGLDRAWBUFFERSEXTPROC __glewDrawBuffersEXT = NULL; + PFNGLCOLORMASKINDEXEDEXTPROC __glewColorMaskIndexedEXT = NULL; PFNGLDISABLEINDEXEDEXTPROC __glewDisableIndexedEXT = NULL; PFNGLENABLEINDEXEDEXTPROC __glewEnableIndexedEXT = NULL; @@ -1941,11 +2000,31 @@ PFNGLGETBOOLEANINDEXEDVEXTPROC __glewGetBooleanIndexedvEXT = NULL; PFNGLGETINTEGERINDEXEDVEXTPROC __glewGetIntegerIndexedvEXT = NULL; PFNGLISENABLEDINDEXEDEXTPROC __glewIsEnabledIndexedEXT = NULL; +PFNGLBLENDEQUATIONSEPARATEIEXTPROC __glewBlendEquationSeparateiEXT = NULL; +PFNGLBLENDEQUATIONIEXTPROC __glewBlendEquationiEXT = NULL; +PFNGLBLENDFUNCSEPARATEIEXTPROC __glewBlendFuncSeparateiEXT = NULL; +PFNGLBLENDFUNCIEXTPROC __glewBlendFunciEXT = NULL; +PFNGLCOLORMASKIEXTPROC __glewColorMaskiEXT = NULL; +PFNGLDISABLEIEXTPROC __glewDisableiEXT = NULL; +PFNGLENABLEIEXTPROC __glewEnableiEXT = NULL; +PFNGLISENABLEDIEXTPROC __glewIsEnablediEXT = NULL; + +PFNGLDRAWELEMENTSBASEVERTEXEXTPROC __glewDrawElementsBaseVertexEXT = NULL; +PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXEXTPROC __glewDrawElementsInstancedBaseVertexEXT = NULL; +PFNGLDRAWRANGEELEMENTSBASEVERTEXEXTPROC __glewDrawRangeElementsBaseVertexEXT = NULL; +PFNGLMULTIDRAWELEMENTSBASEVERTEXEXTPROC __glewMultiDrawElementsBaseVertexEXT = NULL; + PFNGLDRAWARRAYSINSTANCEDEXTPROC __glewDrawArraysInstancedEXT = NULL; PFNGLDRAWELEMENTSINSTANCEDEXTPROC __glewDrawElementsInstancedEXT = NULL; PFNGLDRAWRANGEELEMENTSEXTPROC __glewDrawRangeElementsEXT = NULL; +PFNGLDRAWTRANSFORMFEEDBACKEXTPROC __glewDrawTransformFeedbackEXT = NULL; +PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDEXTPROC __glewDrawTransformFeedbackInstancedEXT = NULL; + +PFNGLBUFFERSTORAGEEXTERNALEXTPROC __glewBufferStorageExternalEXT = NULL; +PFNGLNAMEDBUFFERSTORAGEEXTERNALEXTPROC __glewNamedBufferStorageExternalEXT = NULL; + PFNGLFOGCOORDPOINTEREXTPROC __glewFogCoordPointerEXT = NULL; PFNGLFOGCOORDDEXTPROC __glewFogCoorddEXT = NULL; PFNGLFOGCOORDDVEXTPROC __glewFogCoorddvEXT = NULL; @@ -2050,16 +2129,55 @@ PFNGLINDEXFUNCEXTPROC __glewIndexFuncEXT = NULL; PFNGLINDEXMATERIALEXTPROC __glewIndexMaterialEXT = NULL; +PFNGLVERTEXATTRIBDIVISOREXTPROC __glewVertexAttribDivisorEXT = NULL; + PFNGLAPPLYTEXTUREEXTPROC __glewApplyTextureEXT = NULL; PFNGLTEXTURELIGHTEXTPROC __glewTextureLightEXT = NULL; PFNGLTEXTUREMATERIALEXTPROC __glewTextureMaterialEXT = NULL; +PFNGLFLUSHMAPPEDBUFFERRANGEEXTPROC __glewFlushMappedBufferRangeEXT = NULL; +PFNGLMAPBUFFERRANGEEXTPROC __glewMapBufferRangeEXT = NULL; + +PFNGLBUFFERSTORAGEMEMEXTPROC __glewBufferStorageMemEXT = NULL; +PFNGLCREATEMEMORYOBJECTSEXTPROC __glewCreateMemoryObjectsEXT = NULL; +PFNGLDELETEMEMORYOBJECTSEXTPROC __glewDeleteMemoryObjectsEXT = NULL; +PFNGLGETMEMORYOBJECTPARAMETERIVEXTPROC __glewGetMemoryObjectParameterivEXT = NULL; +PFNGLGETUNSIGNEDBYTEI_VEXTPROC __glewGetUnsignedBytei_vEXT = NULL; +PFNGLGETUNSIGNEDBYTEVEXTPROC __glewGetUnsignedBytevEXT = NULL; +PFNGLISMEMORYOBJECTEXTPROC __glewIsMemoryObjectEXT = NULL; +PFNGLMEMORYOBJECTPARAMETERIVEXTPROC __glewMemoryObjectParameterivEXT = NULL; +PFNGLNAMEDBUFFERSTORAGEMEMEXTPROC __glewNamedBufferStorageMemEXT = NULL; +PFNGLTEXSTORAGEMEM1DEXTPROC __glewTexStorageMem1DEXT = NULL; +PFNGLTEXSTORAGEMEM2DEXTPROC __glewTexStorageMem2DEXT = NULL; +PFNGLTEXSTORAGEMEM2DMULTISAMPLEEXTPROC __glewTexStorageMem2DMultisampleEXT = NULL; +PFNGLTEXSTORAGEMEM3DEXTPROC __glewTexStorageMem3DEXT = NULL; +PFNGLTEXSTORAGEMEM3DMULTISAMPLEEXTPROC __glewTexStorageMem3DMultisampleEXT = NULL; +PFNGLTEXTURESTORAGEMEM1DEXTPROC __glewTextureStorageMem1DEXT = NULL; +PFNGLTEXTURESTORAGEMEM2DEXTPROC __glewTextureStorageMem2DEXT = NULL; +PFNGLTEXTURESTORAGEMEM2DMULTISAMPLEEXTPROC __glewTextureStorageMem2DMultisampleEXT = NULL; +PFNGLTEXTURESTORAGEMEM3DEXTPROC __glewTextureStorageMem3DEXT = NULL; +PFNGLTEXTURESTORAGEMEM3DMULTISAMPLEEXTPROC __glewTextureStorageMem3DMultisampleEXT = NULL; + +PFNGLIMPORTMEMORYFDEXTPROC __glewImportMemoryFdEXT = NULL; + +PFNGLIMPORTMEMORYWIN32HANDLEEXTPROC __glewImportMemoryWin32HandleEXT = NULL; +PFNGLIMPORTMEMORYWIN32NAMEEXTPROC __glewImportMemoryWin32NameEXT = NULL; + PFNGLMULTIDRAWARRAYSEXTPROC __glewMultiDrawArraysEXT = NULL; PFNGLMULTIDRAWELEMENTSEXTPROC __glewMultiDrawElementsEXT = NULL; +PFNGLMULTIDRAWARRAYSINDIRECTEXTPROC __glewMultiDrawArraysIndirectEXT = NULL; +PFNGLMULTIDRAWELEMENTSINDIRECTEXTPROC __glewMultiDrawElementsIndirectEXT = NULL; + PFNGLSAMPLEMASKEXTPROC __glewSampleMaskEXT = NULL; PFNGLSAMPLEPATTERNEXTPROC __glewSamplePatternEXT = NULL; +PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEEXTPROC __glewFramebufferTexture2DMultisampleEXT = NULL; + +PFNGLDRAWBUFFERSINDEXEDEXTPROC __glewDrawBuffersIndexedEXT = NULL; +PFNGLGETINTEGERI_VEXTPROC __glewGetIntegeri_vEXT = NULL; +PFNGLREADBUFFERINDEXEDEXTPROC __glewReadBufferIndexedEXT = NULL; + PFNGLCOLORTABLEEXTPROC __glewColorTableEXT = NULL; PFNGLGETCOLORTABLEEXTPROC __glewGetColorTableEXT = NULL; PFNGLGETCOLORTABLEPARAMETERFVEXTPROC __glewGetColorTableParameterfvEXT = NULL; @@ -2079,6 +2197,8 @@ PFNGLPOLYGONOFFSETEXTPROC __glewPolygonOffsetEXT = NULL; PFNGLPOLYGONOFFSETCLAMPEXTPROC __glewPolygonOffsetClampEXT = NULL; +PFNGLPRIMITIVEBOUNDINGBOXEXTPROC __glewPrimitiveBoundingBoxEXT = NULL; + PFNGLPROVOKINGVERTEXEXTPROC __glewProvokingVertexEXT = NULL; PFNGLCOVERAGEMODULATIONNVPROC __glewCoverageModulationNV = NULL; @@ -2086,6 +2206,10 @@ PFNGLCOVERAGEMODULATIONTABLENVPROC __glewCoverageModulationTableNV = NULL; PFNGLGETCOVERAGEMODULATIONTABLENVPROC __glewGetCoverageModulationTableNV = NULL; PFNGLRASTERSAMPLESEXTPROC __glewRasterSamplesEXT = NULL; +PFNGLGETNUNIFORMFVEXTPROC __glewGetnUniformfvEXT = NULL; +PFNGLGETNUNIFORMIVEXTPROC __glewGetnUniformivEXT = NULL; +PFNGLREADNPIXELSEXTPROC __glewReadnPixelsEXT = NULL; + PFNGLBEGINSCENEEXTPROC __glewBeginSceneEXT = NULL; PFNGLENDSCENEEXTPROC __glewEndSceneEXT = NULL; @@ -2107,23 +2231,52 @@ PFNGLSECONDARYCOLOR3USEXTPROC __glewSecondaryColor3usEXT = NULL; PFNGLSECONDARYCOLOR3USVEXTPROC __glewSecondaryColor3usvEXT = NULL; PFNGLSECONDARYCOLORPOINTEREXTPROC __glewSecondaryColorPointerEXT = NULL; +PFNGLDELETESEMAPHORESEXTPROC __glewDeleteSemaphoresEXT = NULL; +PFNGLGENSEMAPHORESEXTPROC __glewGenSemaphoresEXT = NULL; +PFNGLGETSEMAPHOREPARAMETERUI64VEXTPROC __glewGetSemaphoreParameterui64vEXT = NULL; +PFNGLISSEMAPHOREEXTPROC __glewIsSemaphoreEXT = NULL; +PFNGLSEMAPHOREPARAMETERUI64VEXTPROC __glewSemaphoreParameterui64vEXT = NULL; +PFNGLSIGNALSEMAPHOREEXTPROC __glewSignalSemaphoreEXT = NULL; +PFNGLWAITSEMAPHOREEXTPROC __glewWaitSemaphoreEXT = NULL; + +PFNGLIMPORTSEMAPHOREFDEXTPROC __glewImportSemaphoreFdEXT = NULL; + +PFNGLIMPORTSEMAPHOREWIN32HANDLEEXTPROC __glewImportSemaphoreWin32HandleEXT = NULL; +PFNGLIMPORTSEMAPHOREWIN32NAMEEXTPROC __glewImportSemaphoreWin32NameEXT = NULL; + PFNGLACTIVEPROGRAMEXTPROC __glewActiveProgramEXT = NULL; PFNGLCREATESHADERPROGRAMEXTPROC __glewCreateShaderProgramEXT = NULL; PFNGLUSESHADERPROGRAMEXTPROC __glewUseShaderProgramEXT = NULL; +PFNGLFRAMEBUFFERFETCHBARRIEREXTPROC __glewFramebufferFetchBarrierEXT = NULL; + PFNGLBINDIMAGETEXTUREEXTPROC __glewBindImageTextureEXT = NULL; PFNGLMEMORYBARRIEREXTPROC __glewMemoryBarrierEXT = NULL; +PFNGLCLEARPIXELLOCALSTORAGEUIEXTPROC __glewClearPixelLocalStorageuiEXT = NULL; +PFNGLFRAMEBUFFERPIXELLOCALSTORAGESIZEEXTPROC __glewFramebufferPixelLocalStorageSizeEXT = NULL; +PFNGLGETFRAMEBUFFERPIXELLOCALSTORAGESIZEEXTPROC __glewGetFramebufferPixelLocalStorageSizeEXT = NULL; + +PFNGLTEXPAGECOMMITMENTEXTPROC __glewTexPageCommitmentEXT = NULL; +PFNGLTEXTUREPAGECOMMITMENTEXTPROC __glewTexturePageCommitmentEXT = NULL; + PFNGLACTIVESTENCILFACEEXTPROC __glewActiveStencilFaceEXT = NULL; PFNGLTEXSUBIMAGE1DEXTPROC __glewTexSubImage1DEXT = NULL; PFNGLTEXSUBIMAGE2DEXTPROC __glewTexSubImage2DEXT = NULL; PFNGLTEXSUBIMAGE3DEXTPROC __glewTexSubImage3DEXT = NULL; +PFNGLPATCHPARAMETERIEXTPROC __glewPatchParameteriEXT = NULL; + PFNGLTEXIMAGE3DEXTPROC __glewTexImage3DEXT = NULL; PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC __glewFramebufferTextureLayerEXT = NULL; +PFNGLGETSAMPLERPARAMETERIIVEXTPROC __glewGetSamplerParameterIivEXT = NULL; +PFNGLGETSAMPLERPARAMETERIUIVEXTPROC __glewGetSamplerParameterIuivEXT = NULL; +PFNGLSAMPLERPARAMETERIIVEXTPROC __glewSamplerParameterIivEXT = NULL; +PFNGLSAMPLERPARAMETERIUIVEXTPROC __glewSamplerParameterIuivEXT = NULL; + PFNGLTEXBUFFEREXTPROC __glewTexBufferEXT = NULL; PFNGLCLEARCOLORIIEXTPROC __glewClearColorIiEXT = NULL; @@ -2142,6 +2295,15 @@ PFNGLPRIORITIZETEXTURESEXTPROC __glewPrioritizeTexturesEXT = NULL; PFNGLTEXTURENORMALEXTPROC __glewTextureNormalEXT = NULL; +PFNGLTEXSTORAGE1DEXTPROC __glewTexStorage1DEXT = NULL; +PFNGLTEXSTORAGE2DEXTPROC __glewTexStorage2DEXT = NULL; +PFNGLTEXSTORAGE3DEXTPROC __glewTexStorage3DEXT = NULL; +PFNGLTEXTURESTORAGE1DEXTPROC __glewTextureStorage1DEXT = NULL; +PFNGLTEXTURESTORAGE2DEXTPROC __glewTextureStorage2DEXT = NULL; +PFNGLTEXTURESTORAGE3DEXTPROC __glewTextureStorage3DEXT = NULL; + +PFNGLTEXTUREVIEWEXTPROC __glewTextureViewEXT = NULL; + PFNGLGETQUERYOBJECTI64VEXTPROC __glewGetQueryObjecti64vEXT = NULL; PFNGLGETQUERYOBJECTUI64VEXTPROC __glewGetQueryObjectui64vEXT = NULL; @@ -2162,6 +2324,10 @@ PFNGLNORMALPOINTEREXTPROC __glewNormalPointerEXT = NULL; PFNGLTEXCOORDPOINTEREXTPROC __glewTexCoordPointerEXT = NULL; PFNGLVERTEXPOINTEREXTPROC __glewVertexPointerEXT = NULL; +PFNGLBINDARRAYSETEXTPROC __glewBindArraySetEXT = NULL; +PFNGLCREATEARRAYSETEXTPROC __glewCreateArraySetExt = NULL; +PFNGLDELETEARRAYSETSEXTPROC __glewDeleteArraySetsEXT = NULL; + PFNGLGETVERTEXATTRIBLDVEXTPROC __glewGetVertexAttribLdvEXT = NULL; PFNGLVERTEXARRAYVERTEXATTRIBLOFFSETEXTPROC __glewVertexArrayVertexAttribLOffsetEXT = NULL; PFNGLVERTEXATTRIBL1DEXTPROC __glewVertexAttribL1dEXT = NULL; @@ -2221,6 +2387,11 @@ PFNGLVERTEXWEIGHTPOINTEREXTPROC __glewVertexWeightPointerEXT = NULL; PFNGLVERTEXWEIGHTFEXTPROC __glewVertexWeightfEXT = NULL; PFNGLVERTEXWEIGHTFVEXTPROC __glewVertexWeightfvEXT = NULL; +PFNGLACQUIREKEYEDMUTEXWIN32EXTPROC __glewAcquireKeyedMutexWin32EXT = NULL; +PFNGLRELEASEKEYEDMUTEXWIN32EXTPROC __glewReleaseKeyedMutexWin32EXT = NULL; + +PFNGLWINDOWRECTANGLESEXTPROC __glewWindowRectanglesEXT = NULL; + PFNGLIMPORTSYNCEXTPROC __glewImportSyncEXT = NULL; PFNGLFRAMETERMINATORGREMEDYPROC __glewFrameTerminatorGREMEDY = NULL; @@ -2246,6 +2417,19 @@ PFNGLSECONDARYCOLORPOINTERLISTIBMPROC __glewSecondaryColorPointerListIBM = NULL; PFNGLTEXCOORDPOINTERLISTIBMPROC __glewTexCoordPointerListIBM = NULL; PFNGLVERTEXPOINTERLISTIBMPROC __glewVertexPointerListIBM = NULL; +PFNGLGETTEXTUREHANDLEIMGPROC __glewGetTextureHandleIMG = NULL; +PFNGLGETTEXTURESAMPLERHANDLEIMGPROC __glewGetTextureSamplerHandleIMG = NULL; +PFNGLPROGRAMUNIFORMHANDLEUI64IMGPROC __glewProgramUniformHandleui64IMG = NULL; +PFNGLPROGRAMUNIFORMHANDLEUI64VIMGPROC __glewProgramUniformHandleui64vIMG = NULL; +PFNGLUNIFORMHANDLEUI64IMGPROC __glewUniformHandleui64IMG = NULL; +PFNGLUNIFORMHANDLEUI64VIMGPROC __glewUniformHandleui64vIMG = NULL; + +PFNGLFRAMEBUFFERTEXTURE2DDOWNSAMPLEIMGPROC __glewFramebufferTexture2DDownsampleIMG = NULL; +PFNGLFRAMEBUFFERTEXTURELAYERDOWNSAMPLEIMGPROC __glewFramebufferTextureLayerDownsampleIMG = NULL; + +PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEIMGPROC __glewFramebufferTexture2DMultisampleIMG = NULL; +PFNGLRENDERBUFFERSTORAGEMULTISAMPLEIMGPROC __glewRenderbufferStorageMultisampleIMG = NULL; + PFNGLMAPTEXTURE2DINTELPROC __glewMapTexture2DINTEL = NULL; PFNGLSYNCTEXTUREINTELPROC __glewSyncTextureINTEL = NULL; PFNGLUNMAPTEXTURE2DINTELPROC __glewUnmapTexture2DINTEL = NULL; @@ -2282,6 +2466,8 @@ PFNGLOBJECTPTRLABELPROC __glewObjectPtrLabel = NULL; PFNGLPOPDEBUGGROUPPROC __glewPopDebugGroup = NULL; PFNGLPUSHDEBUGGROUPPROC __glewPushDebugGroup = NULL; +PFNGLMAXSHADERCOMPILERTHREADSKHRPROC __glewMaxShaderCompilerThreadsKHR = NULL; + PFNGLGETNUNIFORMFVPROC __glewGetnUniformfv = NULL; PFNGLGETNUNIFORMIVPROC __glewGetnUniformiv = NULL; PFNGLGETNUNIFORMUIVPROC __glewGetnUniformuiv = NULL; @@ -2293,6 +2479,9 @@ PFNGLDRAWBUFFERREGIONPROC __glewDrawBufferRegion = NULL; PFNGLNEWBUFFERREGIONPROC __glewNewBufferRegion = NULL; PFNGLREADBUFFERREGIONPROC __glewReadBufferRegion = NULL; +PFNGLFRAMEBUFFERPARAMETERIMESAPROC __glewFramebufferParameteriMESA = NULL; +PFNGLGETFRAMEBUFFERPARAMETERIVMESAPROC __glewGetFramebufferParameterivMESA = NULL; + PFNGLRESIZEBUFFERSMESAPROC __glewResizeBuffersMESA = NULL; PFNGLWINDOWPOS2DMESAPROC __glewWindowPos2dMESA = NULL; @@ -2323,6 +2512,26 @@ PFNGLWINDOWPOS4SVMESAPROC __glewWindowPos4svMESA = NULL; PFNGLBEGINCONDITIONALRENDERNVXPROC __glewBeginConditionalRenderNVX = NULL; PFNGLENDCONDITIONALRENDERNVXPROC __glewEndConditionalRenderNVX = NULL; +PFNGLASYNCCOPYBUFFERSUBDATANVXPROC __glewAsyncCopyBufferSubDataNVX = NULL; +PFNGLASYNCCOPYIMAGESUBDATANVXPROC __glewAsyncCopyImageSubDataNVX = NULL; +PFNGLMULTICASTSCISSORARRAYVNVXPROC __glewMulticastScissorArrayvNVX = NULL; +PFNGLMULTICASTVIEWPORTARRAYVNVXPROC __glewMulticastViewportArrayvNVX = NULL; +PFNGLMULTICASTVIEWPORTPOSITIONWSCALENVXPROC __glewMulticastViewportPositionWScaleNVX = NULL; +PFNGLUPLOADGPUMASKNVXPROC __glewUploadGpuMaskNVX = NULL; + +PFNGLLGPUCOPYIMAGESUBDATANVXPROC __glewLGPUCopyImageSubDataNVX = NULL; +PFNGLLGPUINTERLOCKNVXPROC __glewLGPUInterlockNVX = NULL; +PFNGLLGPUNAMEDBUFFERSUBDATANVXPROC __glewLGPUNamedBufferSubDataNVX = NULL; + +PFNGLCLIENTWAITSEMAPHOREUI64NVXPROC __glewClientWaitSemaphoreui64NVX = NULL; +PFNGLSIGNALSEMAPHOREUI64NVXPROC __glewSignalSemaphoreui64NVX = NULL; +PFNGLWAITSEMAPHOREUI64NVXPROC __glewWaitSemaphoreui64NVX = NULL; + +PFNGLSTEREOPARAMETERFNVPROC __glewStereoParameterfNV = NULL; +PFNGLSTEREOPARAMETERINVPROC __glewStereoParameteriNV = NULL; + +PFNGLALPHATOCOVERAGEDITHERCONTROLNVPROC __glewAlphaToCoverageDitherControlNV = NULL; + PFNGLMULTIDRAWARRAYSINDIRECTBINDLESSNVPROC __glewMultiDrawArraysIndirectBindlessNV = NULL; PFNGLMULTIDRAWELEMENTSINDIRECTBINDLESSNVPROC __glewMultiDrawElementsIndirectBindlessNV = NULL; @@ -2346,6 +2555,26 @@ PFNGLUNIFORMHANDLEUI64VNVPROC __glewUniformHandleui64vNV = NULL; PFNGLBLENDBARRIERNVPROC __glewBlendBarrierNV = NULL; PFNGLBLENDPARAMETERINVPROC __glewBlendParameteriNV = NULL; +PFNGLVIEWPORTPOSITIONWSCALENVPROC __glewViewportPositionWScaleNV = NULL; + +PFNGLCALLCOMMANDLISTNVPROC __glewCallCommandListNV = NULL; +PFNGLCOMMANDLISTSEGMENTSNVPROC __glewCommandListSegmentsNV = NULL; +PFNGLCOMPILECOMMANDLISTNVPROC __glewCompileCommandListNV = NULL; +PFNGLCREATECOMMANDLISTSNVPROC __glewCreateCommandListsNV = NULL; +PFNGLCREATESTATESNVPROC __glewCreateStatesNV = NULL; +PFNGLDELETECOMMANDLISTSNVPROC __glewDeleteCommandListsNV = NULL; +PFNGLDELETESTATESNVPROC __glewDeleteStatesNV = NULL; +PFNGLDRAWCOMMANDSADDRESSNVPROC __glewDrawCommandsAddressNV = NULL; +PFNGLDRAWCOMMANDSNVPROC __glewDrawCommandsNV = NULL; +PFNGLDRAWCOMMANDSSTATESADDRESSNVPROC __glewDrawCommandsStatesAddressNV = NULL; +PFNGLDRAWCOMMANDSSTATESNVPROC __glewDrawCommandsStatesNV = NULL; +PFNGLGETCOMMANDHEADERNVPROC __glewGetCommandHeaderNV = NULL; +PFNGLGETSTAGEINDEXNVPROC __glewGetStageIndexNV = NULL; +PFNGLISCOMMANDLISTNVPROC __glewIsCommandListNV = NULL; +PFNGLISSTATENVPROC __glewIsStateNV = NULL; +PFNGLLISTDRAWCOMMANDSSTATESCLIENTNVPROC __glewListDrawCommandsStatesClientNV = NULL; +PFNGLSTATECAPTURENVPROC __glewStateCaptureNV = NULL; + PFNGLBEGINCONDITIONALRENDERNVPROC __glewBeginConditionalRenderNV = NULL; PFNGLENDCONDITIONALRENDERNVPROC __glewEndConditionalRenderNV = NULL; @@ -2353,14 +2582,29 @@ PFNGLSUBPIXELPRECISIONBIASNVPROC __glewSubpixelPrecisionBiasNV = NULL; PFNGLCONSERVATIVERASTERPARAMETERFNVPROC __glewConservativeRasterParameterfNV = NULL; +PFNGLCONSERVATIVERASTERPARAMETERINVPROC __glewConservativeRasterParameteriNV = NULL; + +PFNGLCOPYBUFFERSUBDATANVPROC __glewCopyBufferSubDataNV = NULL; + PFNGLCOPYIMAGESUBDATANVPROC __glewCopyImageSubDataNV = NULL; PFNGLCLEARDEPTHDNVPROC __glewClearDepthdNV = NULL; PFNGLDEPTHBOUNDSDNVPROC __glewDepthBoundsdNV = NULL; PFNGLDEPTHRANGEDNVPROC __glewDepthRangedNV = NULL; +PFNGLDRAWBUFFERSNVPROC __glewDrawBuffersNV = NULL; + +PFNGLDRAWARRAYSINSTANCEDNVPROC __glewDrawArraysInstancedNV = NULL; +PFNGLDRAWELEMENTSINSTANCEDNVPROC __glewDrawElementsInstancedNV = NULL; + PFNGLDRAWTEXTURENVPROC __glewDrawTextureNV = NULL; +PFNGLDRAWVKIMAGENVPROC __glewDrawVkImageNV = NULL; +PFNGLGETVKPROCADDRNVPROC __glewGetVkProcAddrNV = NULL; +PFNGLSIGNALVKFENCENVPROC __glewSignalVkFenceNV = NULL; +PFNGLSIGNALVKSEMAPHORENVPROC __glewSignalVkSemaphoreNV = NULL; +PFNGLWAITVKSEMAPHORENVPROC __glewWaitVkSemaphoreNV = NULL; + PFNGLEVALMAPSNVPROC __glewEvalMapsNV = NULL; PFNGLGETMAPATTRIBPARAMETERFVNVPROC __glewGetMapAttribParameterfvNV = NULL; PFNGLGETMAPATTRIBPARAMETERIVNVPROC __glewGetMapAttribParameterivNV = NULL; @@ -2392,10 +2636,27 @@ PFNGLPROGRAMNAMEDPARAMETER4DVNVPROC __glewProgramNamedParameter4dvNV = NULL; PFNGLPROGRAMNAMEDPARAMETER4FNVPROC __glewProgramNamedParameter4fNV = NULL; PFNGLPROGRAMNAMEDPARAMETER4FVNVPROC __glewProgramNamedParameter4fvNV = NULL; +PFNGLBLITFRAMEBUFFERNVPROC __glewBlitFramebufferNV = NULL; + +PFNGLRENDERBUFFERSTORAGEMULTISAMPLENVPROC __glewRenderbufferStorageMultisampleNV = NULL; + PFNGLRENDERBUFFERSTORAGEMULTISAMPLECOVERAGENVPROC __glewRenderbufferStorageMultisampleCoverageNV = NULL; PFNGLPROGRAMVERTEXLIMITNVPROC __glewProgramVertexLimitNV = NULL; +PFNGLMULTICASTBARRIERNVPROC __glewMulticastBarrierNV = NULL; +PFNGLMULTICASTBLITFRAMEBUFFERNVPROC __glewMulticastBlitFramebufferNV = NULL; +PFNGLMULTICASTBUFFERSUBDATANVPROC __glewMulticastBufferSubDataNV = NULL; +PFNGLMULTICASTCOPYBUFFERSUBDATANVPROC __glewMulticastCopyBufferSubDataNV = NULL; +PFNGLMULTICASTCOPYIMAGESUBDATANVPROC __glewMulticastCopyImageSubDataNV = NULL; +PFNGLMULTICASTFRAMEBUFFERSAMPLELOCATIONSFVNVPROC __glewMulticastFramebufferSampleLocationsfvNV = NULL; +PFNGLMULTICASTGETQUERYOBJECTI64VNVPROC __glewMulticastGetQueryObjecti64vNV = NULL; +PFNGLMULTICASTGETQUERYOBJECTIVNVPROC __glewMulticastGetQueryObjectivNV = NULL; +PFNGLMULTICASTGETQUERYOBJECTUI64VNVPROC __glewMulticastGetQueryObjectui64vNV = NULL; +PFNGLMULTICASTGETQUERYOBJECTUIVNVPROC __glewMulticastGetQueryObjectuivNV = NULL; +PFNGLMULTICASTWAITSYNCNVPROC __glewMulticastWaitSyncNV = NULL; +PFNGLRENDERGPUMASKNVPROC __glewRenderGpuMaskNV = NULL; + PFNGLPROGRAMENVPARAMETERI4INVPROC __glewProgramEnvParameterI4iNV = NULL; PFNGLPROGRAMENVPARAMETERI4IVNVPROC __glewProgramEnvParameterI4ivNV = NULL; PFNGLPROGRAMENVPARAMETERI4UINVPROC __glewProgramEnvParameterI4uiNV = NULL; @@ -2491,8 +2752,29 @@ PFNGLVERTEXATTRIBS4HVNVPROC __glewVertexAttribs4hvNV = NULL; PFNGLVERTEXWEIGHTHNVPROC __glewVertexWeighthNV = NULL; PFNGLVERTEXWEIGHTHVNVPROC __glewVertexWeighthvNV = NULL; +PFNGLVERTEXATTRIBDIVISORNVPROC __glewVertexAttribDivisorNV = NULL; + PFNGLGETINTERNALFORMATSAMPLEIVNVPROC __glewGetInternalformatSampleivNV = NULL; +PFNGLBUFFERATTACHMEMORYNVPROC __glewBufferAttachMemoryNV = NULL; +PFNGLGETMEMORYOBJECTDETACHEDRESOURCESUIVNVPROC __glewGetMemoryObjectDetachedResourcesuivNV = NULL; +PFNGLNAMEDBUFFERATTACHMEMORYNVPROC __glewNamedBufferAttachMemoryNV = NULL; +PFNGLRESETMEMORYOBJECTPARAMETERNVPROC __glewResetMemoryObjectParameterNV = NULL; +PFNGLTEXATTACHMEMORYNVPROC __glewTexAttachMemoryNV = NULL; +PFNGLTEXTUREATTACHMEMORYNVPROC __glewTextureAttachMemoryNV = NULL; + +PFNGLDRAWMESHTASKSINDIRECTNVPROC __glewDrawMeshTasksIndirectNV = NULL; +PFNGLDRAWMESHTASKSNVPROC __glewDrawMeshTasksNV = NULL; +PFNGLMULTIDRAWMESHTASKSINDIRECTCOUNTNVPROC __glewMultiDrawMeshTasksIndirectCountNV = NULL; +PFNGLMULTIDRAWMESHTASKSINDIRECTNVPROC __glewMultiDrawMeshTasksIndirectNV = NULL; + +PFNGLUNIFORMMATRIX2X3FVNVPROC __glewUniformMatrix2x3fvNV = NULL; +PFNGLUNIFORMMATRIX2X4FVNVPROC __glewUniformMatrix2x4fvNV = NULL; +PFNGLUNIFORMMATRIX3X2FVNVPROC __glewUniformMatrix3x2fvNV = NULL; +PFNGLUNIFORMMATRIX3X4FVNVPROC __glewUniformMatrix3x4fvNV = NULL; +PFNGLUNIFORMMATRIX4X2FVNVPROC __glewUniformMatrix4x2fvNV = NULL; +PFNGLUNIFORMMATRIX4X3FVNVPROC __glewUniformMatrix4x3fvNV = NULL; + PFNGLBEGINOCCLUSIONQUERYNVPROC __glewBeginOcclusionQueryNV = NULL; PFNGLDELETEOCCLUSIONQUERIESNVPROC __glewDeleteOcclusionQueriesNV = NULL; PFNGLENDOCCLUSIONQUERYNVPROC __glewEndOcclusionQueryNV = NULL; @@ -2576,6 +2858,8 @@ PFNGLPIXELDATARANGENVPROC __glewPixelDataRangeNV = NULL; PFNGLPOINTPARAMETERINVPROC __glewPointParameteriNV = NULL; PFNGLPOINTPARAMETERIVNVPROC __glewPointParameterivNV = NULL; +PFNGLPOLYGONMODENVPROC __glewPolygonModeNV = NULL; + PFNGLGETVIDEOI64VNVPROC __glewGetVideoi64vNV = NULL; PFNGLGETVIDEOIVNVPROC __glewGetVideoivNV = NULL; PFNGLGETVIDEOUI64VNVPROC __glewGetVideoui64vNV = NULL; @@ -2586,6 +2870,8 @@ PFNGLPRESENTFRAMEKEYEDNVPROC __glewPresentFrameKeyedNV = NULL; PFNGLPRIMITIVERESTARTINDEXNVPROC __glewPrimitiveRestartIndexNV = NULL; PFNGLPRIMITIVERESTARTNVPROC __glewPrimitiveRestartNV = NULL; +PFNGLREADBUFFERNVPROC __glewReadBufferNV = NULL; + PFNGLCOMBINERINPUTNVPROC __glewCombinerInputNV = NULL; PFNGLCOMBINEROUTPUTNVPROC __glewCombinerOutputNV = NULL; PFNGLCOMBINERPARAMETERFNVPROC __glewCombinerParameterfNV = NULL; @@ -2605,6 +2891,10 @@ PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC __glewGetCombinerStageParameterfvNV = NUL PFNGLFRAMEBUFFERSAMPLELOCATIONSFVNVPROC __glewFramebufferSampleLocationsfvNV = NULL; PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVNVPROC __glewNamedFramebufferSampleLocationsfvNV = NULL; +PFNGLRESOLVEDEPTHVALUESNVPROC __glewResolveDepthValuesNV = NULL; + +PFNGLSCISSOREXCLUSIVEARRAYVNVPROC __glewScissorExclusiveArrayvNV = NULL; +PFNGLSCISSOREXCLUSIVENVPROC __glewScissorExclusiveNV = NULL; PFNGLGETBUFFERPARAMETERUI64VNVPROC __glewGetBufferParameterui64vNV = NULL; PFNGLGETINTEGERUI64VNVPROC __glewGetIntegerui64vNV = NULL; @@ -2620,6 +2910,20 @@ PFNGLPROGRAMUNIFORMUI64VNVPROC __glewProgramUniformui64vNV = NULL; PFNGLUNIFORMUI64NVPROC __glewUniformui64NV = NULL; PFNGLUNIFORMUI64VNVPROC __glewUniformui64vNV = NULL; +PFNGLBINDSHADINGRATEIMAGENVPROC __glewBindShadingRateImageNV = NULL; +PFNGLGETSHADINGRATEIMAGEPALETTENVPROC __glewGetShadingRateImagePaletteNV = NULL; +PFNGLGETSHADINGRATESAMPLELOCATIONIVNVPROC __glewGetShadingRateSampleLocationivNV = NULL; +PFNGLSHADINGRATEIMAGEBARRIERNVPROC __glewShadingRateImageBarrierNV = NULL; +PFNGLSHADINGRATEIMAGEPALETTENVPROC __glewShadingRateImagePaletteNV = NULL; +PFNGLSHADINGRATESAMPLEORDERCUSTOMNVPROC __glewShadingRateSampleOrderCustomNV = NULL; + +PFNGLCOMPRESSEDTEXIMAGE3DNVPROC __glewCompressedTexImage3DNV = NULL; +PFNGLCOMPRESSEDTEXSUBIMAGE3DNVPROC __glewCompressedTexSubImage3DNV = NULL; +PFNGLCOPYTEXSUBIMAGE3DNVPROC __glewCopyTexSubImage3DNV = NULL; +PFNGLFRAMEBUFFERTEXTURELAYERNVPROC __glewFramebufferTextureLayerNV = NULL; +PFNGLTEXIMAGE3DNVPROC __glewTexImage3DNV = NULL; +PFNGLTEXSUBIMAGE3DNVPROC __glewTexSubImage3DNV = NULL; + PFNGLTEXTUREBARRIERNVPROC __glewTextureBarrierNV = NULL; PFNGLTEXIMAGE2DMULTISAMPLECOVERAGENVPROC __glewTexImage2DMultisampleCoverageNV = NULL; @@ -2660,6 +2964,8 @@ PFNGLVDPAUSURFACEACCESSNVPROC __glewVDPAUSurfaceAccessNV = NULL; PFNGLVDPAUUNMAPSURFACESNVPROC __glewVDPAUUnmapSurfacesNV = NULL; PFNGLVDPAUUNREGISTERSURFACENVPROC __glewVDPAUUnregisterSurfaceNV = NULL; +PFNGLVDPAUREGISTERVIDEOSURFACEWITHPICTURESTRUCTURENVPROC __glewVDPAURegisterVideoSurfaceWithPictureStructureNV = NULL; + PFNGLFLUSHVERTEXARRAYRANGENVPROC __glewFlushVertexArrayRangeNV = NULL; PFNGLVERTEXARRAYRANGENVPROC __glewVertexArrayRangeNV = NULL; @@ -2774,6 +3080,70 @@ PFNGLVIDEOCAPTURESTREAMPARAMETERDVNVPROC __glewVideoCaptureStreamParameterdvNV = PFNGLVIDEOCAPTURESTREAMPARAMETERFVNVPROC __glewVideoCaptureStreamParameterfvNV = NULL; PFNGLVIDEOCAPTURESTREAMPARAMETERIVNVPROC __glewVideoCaptureStreamParameterivNV = NULL; +PFNGLDEPTHRANGEARRAYFVNVPROC __glewDepthRangeArrayfvNV = NULL; +PFNGLDEPTHRANGEINDEXEDFNVPROC __glewDepthRangeIndexedfNV = NULL; +PFNGLDISABLEINVPROC __glewDisableiNV = NULL; +PFNGLENABLEINVPROC __glewEnableiNV = NULL; +PFNGLGETFLOATI_VNVPROC __glewGetFloati_vNV = NULL; +PFNGLISENABLEDINVPROC __glewIsEnablediNV = NULL; +PFNGLSCISSORARRAYVNVPROC __glewScissorArrayvNV = NULL; +PFNGLSCISSORINDEXEDNVPROC __glewScissorIndexedNV = NULL; +PFNGLSCISSORINDEXEDVNVPROC __glewScissorIndexedvNV = NULL; +PFNGLVIEWPORTARRAYVNVPROC __glewViewportArrayvNV = NULL; +PFNGLVIEWPORTINDEXEDFNVPROC __glewViewportIndexedfNV = NULL; +PFNGLVIEWPORTINDEXEDFVNVPROC __glewViewportIndexedfvNV = NULL; + +PFNGLVIEWPORTSWIZZLENVPROC __glewViewportSwizzleNV = NULL; + +PFNGLEGLIMAGETARGETRENDERBUFFERSTORAGEOESPROC __glewEGLImageTargetRenderbufferStorageOES = NULL; +PFNGLEGLIMAGETARGETTEXTURE2DOESPROC __glewEGLImageTargetTexture2DOES = NULL; + +PFNGLBLENDEQUATIONSEPARATEOESPROC __glewBlendEquationSeparateOES = NULL; + +PFNGLBLENDFUNCSEPARATEOESPROC __glewBlendFuncSeparateOES = NULL; + +PFNGLBLENDEQUATIONOESPROC __glewBlendEquationOES = NULL; + +PFNGLCOPYIMAGESUBDATAOESPROC __glewCopyImageSubDataOES = NULL; + +PFNGLBLENDEQUATIONSEPARATEIOESPROC __glewBlendEquationSeparateiOES = NULL; +PFNGLBLENDEQUATIONIOESPROC __glewBlendEquationiOES = NULL; +PFNGLBLENDFUNCSEPARATEIOESPROC __glewBlendFuncSeparateiOES = NULL; +PFNGLBLENDFUNCIOESPROC __glewBlendFunciOES = NULL; +PFNGLCOLORMASKIOESPROC __glewColorMaskiOES = NULL; +PFNGLDISABLEIOESPROC __glewDisableiOES = NULL; +PFNGLENABLEIOESPROC __glewEnableiOES = NULL; +PFNGLISENABLEDIOESPROC __glewIsEnablediOES = NULL; + +PFNGLBINDFRAMEBUFFEROESPROC __glewBindFramebufferOES = NULL; +PFNGLBINDRENDERBUFFEROESPROC __glewBindRenderbufferOES = NULL; +PFNGLCHECKFRAMEBUFFERSTATUSOESPROC __glewCheckFramebufferStatusOES = NULL; +PFNGLDELETEFRAMEBUFFERSOESPROC __glewDeleteFramebuffersOES = NULL; +PFNGLDELETERENDERBUFFERSOESPROC __glewDeleteRenderbuffersOES = NULL; +PFNGLFRAMEBUFFERRENDERBUFFEROESPROC __glewFramebufferRenderbufferOES = NULL; +PFNGLFRAMEBUFFERTEXTURE2DOESPROC __glewFramebufferTexture2DOES = NULL; +PFNGLGENFRAMEBUFFERSOESPROC __glewGenFramebuffersOES = NULL; +PFNGLGENRENDERBUFFERSOESPROC __glewGenRenderbuffersOES = NULL; +PFNGLGENERATEMIPMAPOESPROC __glewGenerateMipmapOES = NULL; +PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVOESPROC __glewGetFramebufferAttachmentParameterivOES = NULL; +PFNGLGETRENDERBUFFERPARAMETERIVOESPROC __glewGetRenderbufferParameterivOES = NULL; +PFNGLISFRAMEBUFFEROESPROC __glewIsFramebufferOES = NULL; +PFNGLISRENDERBUFFEROESPROC __glewIsRenderbufferOES = NULL; +PFNGLRENDERBUFFERSTORAGEOESPROC __glewRenderbufferStorageOES = NULL; + +PFNGLGETPROGRAMBINARYOESPROC __glewGetProgramBinaryOES = NULL; +PFNGLPROGRAMBINARYOESPROC __glewProgramBinaryOES = NULL; + +PFNGLGETBUFFERPOINTERVOESPROC __glewGetBufferPointervOES = NULL; +PFNGLMAPBUFFEROESPROC __glewMapBufferOES = NULL; +PFNGLUNMAPBUFFEROESPROC __glewUnmapBufferOES = NULL; + +PFNGLCURRENTPALETTEMATRIXOESPROC __glewCurrentPaletteMatrixOES = NULL; +PFNGLMATRIXINDEXPOINTEROESPROC __glewMatrixIndexPointerOES = NULL; +PFNGLWEIGHTPOINTEROESPROC __glewWeightPointerOES = NULL; + +PFNGLMINSAMPLESHADINGOESPROC __glewMinSampleShadingOES = NULL; + PFNGLCLEARDEPTHFOESPROC __glewClearDepthfOES = NULL; PFNGLCLIPPLANEFOESPROC __glewClipPlanefOES = NULL; PFNGLDEPTHRANGEFOESPROC __glewDepthRangefOES = NULL; @@ -2781,7 +3151,79 @@ PFNGLFRUSTUMFOESPROC __glewFrustumfOES = NULL; PFNGLGETCLIPPLANEFOESPROC __glewGetClipPlanefOES = NULL; PFNGLORTHOFOESPROC __glewOrthofOES = NULL; +PFNGLCOMPRESSEDTEXIMAGE3DOESPROC __glewCompressedTexImage3DOES = NULL; +PFNGLCOMPRESSEDTEXSUBIMAGE3DOESPROC __glewCompressedTexSubImage3DOES = NULL; +PFNGLCOPYTEXSUBIMAGE3DOESPROC __glewCopyTexSubImage3DOES = NULL; +PFNGLFRAMEBUFFERTEXTURE3DOESPROC __glewFramebufferTexture3DOES = NULL; +PFNGLTEXIMAGE3DOESPROC __glewTexImage3DOES = NULL; +PFNGLTEXSUBIMAGE3DOESPROC __glewTexSubImage3DOES = NULL; + +PFNGLGETSAMPLERPARAMETERIIVOESPROC __glewGetSamplerParameterIivOES = NULL; +PFNGLGETSAMPLERPARAMETERIUIVOESPROC __glewGetSamplerParameterIuivOES = NULL; +PFNGLGETTEXPARAMETERIIVOESPROC __glewGetTexParameterIivOES = NULL; +PFNGLGETTEXPARAMETERIUIVOESPROC __glewGetTexParameterIuivOES = NULL; +PFNGLSAMPLERPARAMETERIIVOESPROC __glewSamplerParameterIivOES = NULL; +PFNGLSAMPLERPARAMETERIUIVOESPROC __glewSamplerParameterIuivOES = NULL; +PFNGLTEXPARAMETERIIVOESPROC __glewTexParameterIivOES = NULL; +PFNGLTEXPARAMETERIUIVOESPROC __glewTexParameterIuivOES = NULL; + +PFNGLTEXBUFFEROESPROC __glewTexBufferOES = NULL; +PFNGLTEXBUFFERRANGEOESPROC __glewTexBufferRangeOES = NULL; + +PFNGLGETTEXGENFVOESPROC __glewGetTexGenfvOES = NULL; +PFNGLGETTEXGENIVOESPROC __glewGetTexGenivOES = NULL; +PFNGLGETTEXGENXVOESPROC __glewGetTexGenxvOES = NULL; +PFNGLTEXGENFOESPROC __glewTexGenfOES = NULL; +PFNGLTEXGENFVOESPROC __glewTexGenfvOES = NULL; +PFNGLTEXGENIOESPROC __glewTexGeniOES = NULL; +PFNGLTEXGENIVOESPROC __glewTexGenivOES = NULL; +PFNGLTEXGENXOESPROC __glewTexGenxOES = NULL; +PFNGLTEXGENXVOESPROC __glewTexGenxvOES = NULL; + +PFNGLTEXSTORAGE3DMULTISAMPLEOESPROC __glewTexStorage3DMultisampleOES = NULL; + +PFNGLTEXTUREVIEWOESPROC __glewTextureViewOES = NULL; + +PFNGLBINDVERTEXARRAYOESPROC __glewBindVertexArrayOES = NULL; +PFNGLDELETEVERTEXARRAYSOESPROC __glewDeleteVertexArraysOES = NULL; +PFNGLGENVERTEXARRAYSOESPROC __glewGenVertexArraysOES = NULL; +PFNGLISVERTEXARRAYOESPROC __glewIsVertexArrayOES = NULL; + PFNGLFRAMEBUFFERTEXTUREMULTIVIEWOVRPROC __glewFramebufferTextureMultiviewOVR = NULL; +PFNGLNAMEDFRAMEBUFFERTEXTUREMULTIVIEWOVRPROC __glewNamedFramebufferTextureMultiviewOVR = NULL; + +PFNGLFRAMEBUFFERTEXTUREMULTISAMPLEMULTIVIEWOVRPROC __glewFramebufferTextureMultisampleMultiviewOVR = NULL; + +PFNGLALPHAFUNCQCOMPROC __glewAlphaFuncQCOM = NULL; + +PFNGLDISABLEDRIVERCONTROLQCOMPROC __glewDisableDriverControlQCOM = NULL; +PFNGLENABLEDRIVERCONTROLQCOMPROC __glewEnableDriverControlQCOM = NULL; +PFNGLGETDRIVERCONTROLSTRINGQCOMPROC __glewGetDriverControlStringQCOM = NULL; +PFNGLGETDRIVERCONTROLSQCOMPROC __glewGetDriverControlsQCOM = NULL; + +PFNGLEXTGETBUFFERPOINTERVQCOMPROC __glewExtGetBufferPointervQCOM = NULL; +PFNGLEXTGETBUFFERSQCOMPROC __glewExtGetBuffersQCOM = NULL; +PFNGLEXTGETFRAMEBUFFERSQCOMPROC __glewExtGetFramebuffersQCOM = NULL; +PFNGLEXTGETRENDERBUFFERSQCOMPROC __glewExtGetRenderbuffersQCOM = NULL; +PFNGLEXTGETTEXLEVELPARAMETERIVQCOMPROC __glewExtGetTexLevelParameterivQCOM = NULL; +PFNGLEXTGETTEXSUBIMAGEQCOMPROC __glewExtGetTexSubImageQCOM = NULL; +PFNGLEXTGETTEXTURESQCOMPROC __glewExtGetTexturesQCOM = NULL; +PFNGLEXTTEXOBJECTSTATEOVERRIDEIQCOMPROC __glewExtTexObjectStateOverrideiQCOM = NULL; + +PFNGLEXTGETPROGRAMBINARYSOURCEQCOMPROC __glewExtGetProgramBinarySourceQCOM = NULL; +PFNGLEXTGETPROGRAMSQCOMPROC __glewExtGetProgramsQCOM = NULL; +PFNGLEXTGETSHADERSQCOMPROC __glewExtGetShadersQCOM = NULL; +PFNGLEXTISPROGRAMBINARYQCOMPROC __glewExtIsProgramBinaryQCOM = NULL; + +PFNGLFRAMEBUFFERFOVEATIONCONFIGQCOMPROC __glewFramebufferFoveationConfigQCOM = NULL; +PFNGLFRAMEBUFFERFOVEATIONPARAMETERSQCOMPROC __glewFramebufferFoveationParametersQCOM = NULL; + +PFNGLFRAMEBUFFERFETCHBARRIERQCOMPROC __glewFramebufferFetchBarrierQCOM = NULL; + +PFNGLTEXTUREFOVEATIONPARAMETERSQCOMPROC __glewTextureFoveationParametersQCOM = NULL; + +PFNGLENDTILINGQCOMPROC __glewEndTilingQCOM = NULL; +PFNGLSTARTTILINGQCOMPROC __glewStartTilingQCOM = NULL; PFNGLALPHAFUNCXPROC __glewAlphaFuncx = NULL; PFNGLCLEARCOLORXPROC __glewClearColorx = NULL; @@ -2847,6 +3289,13 @@ PFNGLGETFOGFUNCSGISPROC __glewGetFogFuncSGIS = NULL; PFNGLSAMPLEMASKSGISPROC __glewSampleMaskSGIS = NULL; PFNGLSAMPLEPATTERNSGISPROC __glewSamplePatternSGIS = NULL; +PFNGLINTERLEAVEDTEXTURECOORDSETSSGISPROC __glewInterleavedTextureCoordSetsSGIS = NULL; +PFNGLSELECTTEXTURECOORDSETSGISPROC __glewSelectTextureCoordSetSGIS = NULL; +PFNGLSELECTTEXTURESGISPROC __glewSelectTextureSGIS = NULL; +PFNGLSELECTTEXTURETRANSFORMSGISPROC __glewSelectTextureTransformSGIS = NULL; + +PFNGLMULTISAMPLESUBRECTPOSSGISPROC __glewMultisampleSubRectPosSGIS = NULL; + PFNGLGETSHARPENTEXFUNCSGISPROC __glewGetSharpenTexFuncSGIS = NULL; PFNGLSHARPENTEXFUNCSGISPROC __glewSharpenTexFuncSGIS = NULL; @@ -2863,8 +3312,14 @@ PFNGLGENASYNCMARKERSSGIXPROC __glewGenAsyncMarkersSGIX = NULL; PFNGLISASYNCMARKERSGIXPROC __glewIsAsyncMarkerSGIX = NULL; PFNGLPOLLASYNCSGIXPROC __glewPollAsyncSGIX = NULL; +PFNGLADDRESSSPACEPROC __glewAddressSpace = NULL; +PFNGLDATAPIPEPROC __glewDataPipe = NULL; + PFNGLFLUSHRASTERSGIXPROC __glewFlushRasterSGIX = NULL; +PFNGLFOGLAYERSSGIXPROC __glewFogLayersSGIX = NULL; +PFNGLGETFOGLAYERSSGIXPROC __glewGetFogLayersSGIX = NULL; + PFNGLTEXTUREFOGSGIXPROC __glewTextureFogSGIX = NULL; PFNGLFRAGMENTCOLORMATERIALSGIXPROC __glewFragmentColorMaterialSGIX = NULL; @@ -2887,8 +3342,33 @@ PFNGLGETFRAGMENTMATERIALIVSGIXPROC __glewGetFragmentMaterialivSGIX = NULL; PFNGLFRAMEZOOMSGIXPROC __glewFrameZoomSGIX = NULL; +PFNGLIGLOOINTERFACESGIXPROC __glewIglooInterfaceSGIX = NULL; + +PFNGLALLOCMPEGPREDICTORSSGIXPROC __glewAllocMPEGPredictorsSGIX = NULL; +PFNGLDELETEMPEGPREDICTORSSGIXPROC __glewDeleteMPEGPredictorsSGIX = NULL; +PFNGLGENMPEGPREDICTORSSGIXPROC __glewGenMPEGPredictorsSGIX = NULL; +PFNGLGETMPEGPARAMETERFVSGIXPROC __glewGetMPEGParameterfvSGIX = NULL; +PFNGLGETMPEGPARAMETERIVSGIXPROC __glewGetMPEGParameterivSGIX = NULL; +PFNGLGETMPEGPREDICTORSGIXPROC __glewGetMPEGPredictorSGIX = NULL; +PFNGLGETMPEGQUANTTABLEUBVPROC __glewGetMPEGQuantTableubv = NULL; +PFNGLISMPEGPREDICTORSGIXPROC __glewIsMPEGPredictorSGIX = NULL; +PFNGLMPEGPREDICTORSGIXPROC __glewMPEGPredictorSGIX = NULL; +PFNGLMPEGQUANTTABLEUBVPROC __glewMPEGQuantTableubv = NULL; +PFNGLSWAPMPEGPREDICTORSSGIXPROC __glewSwapMPEGPredictorsSGIX = NULL; + +PFNGLGETNONLINLIGHTFVSGIXPROC __glewGetNonlinLightfvSGIX = NULL; +PFNGLGETNONLINMATERIALFVSGIXPROC __glewGetNonlinMaterialfvSGIX = NULL; +PFNGLNONLINLIGHTFVSGIXPROC __glewNonlinLightfvSGIX = NULL; +PFNGLNONLINMATERIALFVSGIXPROC __glewNonlinMaterialfvSGIX = NULL; + PFNGLPIXELTEXGENSGIXPROC __glewPixelTexGenSGIX = NULL; +PFNGLDEFORMSGIXPROC __glewDeformSGIX = NULL; +PFNGLLOADIDENTITYDEFORMATIONMAPSGIXPROC __glewLoadIdentityDeformationMapSGIX = NULL; + +PFNGLMESHBREADTHSGIXPROC __glewMeshBreadthSGIX = NULL; +PFNGLMESHSTRIDESGIXPROC __glewMeshStrideSGIX = NULL; + PFNGLREFERENCEPLANESGIXPROC __glewReferencePlaneSGIX = NULL; PFNGLSPRITEPARAMETERFSGIXPROC __glewSpriteParameterfSGIX = NULL; @@ -2898,6 +3378,16 @@ PFNGLSPRITEPARAMETERIVSGIXPROC __glewSpriteParameterivSGIX = NULL; PFNGLTAGSAMPLEBUFFERSGIXPROC __glewTagSampleBufferSGIX = NULL; +PFNGLGETVECTOROPERATIONSGIXPROC __glewGetVectorOperationSGIX = NULL; +PFNGLVECTOROPERATIONSGIXPROC __glewVectorOperationSGIX = NULL; + +PFNGLAREVERTEXARRAYSRESIDENTSGIXPROC __glewAreVertexArraysResidentSGIX = NULL; +PFNGLBINDVERTEXARRAYSGIXPROC __glewBindVertexArraySGIX = NULL; +PFNGLDELETEVERTEXARRAYSSGIXPROC __glewDeleteVertexArraysSGIX = NULL; +PFNGLGENVERTEXARRAYSSGIXPROC __glewGenVertexArraysSGIX = NULL; +PFNGLISVERTEXARRAYSGIXPROC __glewIsVertexArraySGIX = NULL; +PFNGLPRIORITIZEVERTEXARRAYSSGIXPROC __glewPrioritizeVertexArraysSGIX = NULL; + PFNGLCOLORTABLEPARAMETERFVSGIPROC __glewColorTableParameterfvSGI = NULL; PFNGLCOLORTABLEPARAMETERIVSGIPROC __glewColorTableParameterivSGI = NULL; PFNGLCOLORTABLESGIPROC __glewColorTableSGI = NULL; @@ -2906,6 +3396,14 @@ PFNGLGETCOLORTABLEPARAMETERFVSGIPROC __glewGetColorTableParameterfvSGI = NULL; PFNGLGETCOLORTABLEPARAMETERIVSGIPROC __glewGetColorTableParameterivSGI = NULL; PFNGLGETCOLORTABLESGIPROC __glewGetColorTableSGI = NULL; +PFNGLGETPIXELTRANSFORMPARAMETERFVSGIPROC __glewGetPixelTransformParameterfvSGI = NULL; +PFNGLGETPIXELTRANSFORMPARAMETERIVSGIPROC __glewGetPixelTransformParameterivSGI = NULL; +PFNGLPIXELTRANSFORMPARAMETERFSGIPROC __glewPixelTransformParameterfSGI = NULL; +PFNGLPIXELTRANSFORMPARAMETERFVSGIPROC __glewPixelTransformParameterfvSGI = NULL; +PFNGLPIXELTRANSFORMPARAMETERISGIPROC __glewPixelTransformParameteriSGI = NULL; +PFNGLPIXELTRANSFORMPARAMETERIVSGIPROC __glewPixelTransformParameterivSGI = NULL; +PFNGLPIXELTRANSFORMSGIPROC __glewPixelTransformSGI = NULL; + PFNGLFINISHTEXTURESUNXPROC __glewFinishTextureSUNX = NULL; PFNGLGLOBALALPHAFACTORBSUNPROC __glewGlobalAlphaFactorbSUN = NULL; @@ -2970,10 +3468,6 @@ PFNGLTEXCOORD4FVERTEX4FVSUNPROC __glewTexCoord4fVertex4fvSUN = NULL; PFNGLADDSWAPHINTRECTWINPROC __glewAddSwapHintRectWIN = NULL; -#endif /* !WIN32 || !GLEW_MX */ - -#if !defined(GLEW_MX) - GLboolean __GLEW_VERSION_1_1 = GL_FALSE; GLboolean __GLEW_VERSION_1_2 = GL_FALSE; GLboolean __GLEW_VERSION_1_2_1 = GL_FALSE; @@ -2992,15 +3486,23 @@ GLboolean __GLEW_VERSION_4_2 = GL_FALSE; GLboolean __GLEW_VERSION_4_3 = GL_FALSE; GLboolean __GLEW_VERSION_4_4 = GL_FALSE; GLboolean __GLEW_VERSION_4_5 = GL_FALSE; +GLboolean __GLEW_VERSION_4_6 = GL_FALSE; GLboolean __GLEW_3DFX_multisample = GL_FALSE; GLboolean __GLEW_3DFX_tbuffer = GL_FALSE; GLboolean __GLEW_3DFX_texture_compression_FXT1 = GL_FALSE; GLboolean __GLEW_AMD_blend_minmax_factor = GL_FALSE; +GLboolean __GLEW_AMD_compressed_3DC_texture = GL_FALSE; +GLboolean __GLEW_AMD_compressed_ATC_texture = GL_FALSE; GLboolean __GLEW_AMD_conservative_depth = GL_FALSE; GLboolean __GLEW_AMD_debug_output = GL_FALSE; GLboolean __GLEW_AMD_depth_clamp_separate = GL_FALSE; GLboolean __GLEW_AMD_draw_buffers_blend = GL_FALSE; +GLboolean __GLEW_AMD_framebuffer_multisample_advanced = GL_FALSE; +GLboolean __GLEW_AMD_framebuffer_sample_positions = GL_FALSE; GLboolean __GLEW_AMD_gcn_shader = GL_FALSE; +GLboolean __GLEW_AMD_gpu_shader_half_float = GL_FALSE; +GLboolean __GLEW_AMD_gpu_shader_half_float_fetch = GL_FALSE; +GLboolean __GLEW_AMD_gpu_shader_int16 = GL_FALSE; GLboolean __GLEW_AMD_gpu_shader_int64 = GL_FALSE; GLboolean __GLEW_AMD_interleaved_elements = GL_FALSE; GLboolean __GLEW_AMD_multi_draw_indirect = GL_FALSE; @@ -3008,21 +3510,27 @@ GLboolean __GLEW_AMD_name_gen_delete = GL_FALSE; GLboolean __GLEW_AMD_occlusion_query_event = GL_FALSE; GLboolean __GLEW_AMD_performance_monitor = GL_FALSE; GLboolean __GLEW_AMD_pinned_memory = GL_FALSE; +GLboolean __GLEW_AMD_program_binary_Z400 = GL_FALSE; GLboolean __GLEW_AMD_query_buffer_object = GL_FALSE; GLboolean __GLEW_AMD_sample_positions = GL_FALSE; GLboolean __GLEW_AMD_seamless_cubemap_per_texture = GL_FALSE; GLboolean __GLEW_AMD_shader_atomic_counter_ops = GL_FALSE; +GLboolean __GLEW_AMD_shader_ballot = GL_FALSE; +GLboolean __GLEW_AMD_shader_explicit_vertex_parameter = GL_FALSE; +GLboolean __GLEW_AMD_shader_image_load_store_lod = GL_FALSE; GLboolean __GLEW_AMD_shader_stencil_export = GL_FALSE; GLboolean __GLEW_AMD_shader_stencil_value_export = GL_FALSE; GLboolean __GLEW_AMD_shader_trinary_minmax = GL_FALSE; GLboolean __GLEW_AMD_sparse_texture = GL_FALSE; GLboolean __GLEW_AMD_stencil_operation_extended = GL_FALSE; +GLboolean __GLEW_AMD_texture_gather_bias_lod = GL_FALSE; GLboolean __GLEW_AMD_texture_texture4 = GL_FALSE; GLboolean __GLEW_AMD_transform_feedback3_lines_triangles = GL_FALSE; GLboolean __GLEW_AMD_transform_feedback4 = GL_FALSE; GLboolean __GLEW_AMD_vertex_shader_layer = GL_FALSE; GLboolean __GLEW_AMD_vertex_shader_tessellator = GL_FALSE; GLboolean __GLEW_AMD_vertex_shader_viewport_index = GL_FALSE; +GLboolean __GLEW_ANDROID_extension_pack_es31a = GL_FALSE; GLboolean __GLEW_ANGLE_depth_texture = GL_FALSE; GLboolean __GLEW_ANGLE_framebuffer_blit = GL_FALSE; GLboolean __GLEW_ANGLE_framebuffer_multisample = GL_FALSE; @@ -3037,15 +3545,24 @@ GLboolean __GLEW_ANGLE_timer_query = GL_FALSE; GLboolean __GLEW_ANGLE_translated_shader_source = GL_FALSE; GLboolean __GLEW_APPLE_aux_depth_stencil = GL_FALSE; GLboolean __GLEW_APPLE_client_storage = GL_FALSE; +GLboolean __GLEW_APPLE_clip_distance = GL_FALSE; +GLboolean __GLEW_APPLE_color_buffer_packed_float = GL_FALSE; +GLboolean __GLEW_APPLE_copy_texture_levels = GL_FALSE; GLboolean __GLEW_APPLE_element_array = GL_FALSE; GLboolean __GLEW_APPLE_fence = GL_FALSE; GLboolean __GLEW_APPLE_float_pixels = GL_FALSE; GLboolean __GLEW_APPLE_flush_buffer_range = GL_FALSE; +GLboolean __GLEW_APPLE_framebuffer_multisample = GL_FALSE; GLboolean __GLEW_APPLE_object_purgeable = GL_FALSE; GLboolean __GLEW_APPLE_pixel_buffer = GL_FALSE; GLboolean __GLEW_APPLE_rgb_422 = GL_FALSE; GLboolean __GLEW_APPLE_row_bytes = GL_FALSE; GLboolean __GLEW_APPLE_specular_vector = GL_FALSE; +GLboolean __GLEW_APPLE_sync = GL_FALSE; +GLboolean __GLEW_APPLE_texture_2D_limited_npot = GL_FALSE; +GLboolean __GLEW_APPLE_texture_format_BGRA8888 = GL_FALSE; +GLboolean __GLEW_APPLE_texture_max_level = GL_FALSE; +GLboolean __GLEW_APPLE_texture_packed_float = GL_FALSE; GLboolean __GLEW_APPLE_texture_range = GL_FALSE; GLboolean __GLEW_APPLE_transform_hint = GL_FALSE; GLboolean __GLEW_APPLE_vertex_array_object = GL_FALSE; @@ -3101,6 +3618,7 @@ GLboolean __GLEW_ARB_framebuffer_sRGB = GL_FALSE; GLboolean __GLEW_ARB_geometry_shader4 = GL_FALSE; GLboolean __GLEW_ARB_get_program_binary = GL_FALSE; GLboolean __GLEW_ARB_get_texture_sub_image = GL_FALSE; +GLboolean __GLEW_ARB_gl_spirv = GL_FALSE; GLboolean __GLEW_ARB_gpu_shader5 = GL_FALSE; GLboolean __GLEW_ARB_gpu_shader_fp64 = GL_FALSE; GLboolean __GLEW_ARB_gpu_shader_int64 = GL_FALSE; @@ -3126,6 +3644,7 @@ GLboolean __GLEW_ARB_pipeline_statistics_query = GL_FALSE; GLboolean __GLEW_ARB_pixel_buffer_object = GL_FALSE; GLboolean __GLEW_ARB_point_parameters = GL_FALSE; GLboolean __GLEW_ARB_point_sprite = GL_FALSE; +GLboolean __GLEW_ARB_polygon_offset_clamp = GL_FALSE; GLboolean __GLEW_ARB_post_depth_coverage = GL_FALSE; GLboolean __GLEW_ARB_program_interface_query = GL_FALSE; GLboolean __GLEW_ARB_provoking_vertex = GL_FALSE; @@ -3167,6 +3686,7 @@ GLboolean __GLEW_ARB_sparse_buffer = GL_FALSE; GLboolean __GLEW_ARB_sparse_texture = GL_FALSE; GLboolean __GLEW_ARB_sparse_texture2 = GL_FALSE; GLboolean __GLEW_ARB_sparse_texture_clamp = GL_FALSE; +GLboolean __GLEW_ARB_spirv_extensions = GL_FALSE; GLboolean __GLEW_ARB_stencil_texturing = GL_FALSE; GLboolean __GLEW_ARB_sync = GL_FALSE; GLboolean __GLEW_ARB_tessellation_shader = GL_FALSE; @@ -3184,6 +3704,7 @@ GLboolean __GLEW_ARB_texture_env_add = GL_FALSE; GLboolean __GLEW_ARB_texture_env_combine = GL_FALSE; GLboolean __GLEW_ARB_texture_env_crossbar = GL_FALSE; GLboolean __GLEW_ARB_texture_env_dot3 = GL_FALSE; +GLboolean __GLEW_ARB_texture_filter_anisotropic = GL_FALSE; GLboolean __GLEW_ARB_texture_filter_minmax = GL_FALSE; GLboolean __GLEW_ARB_texture_float = GL_FALSE; GLboolean __GLEW_ARB_texture_gather = GL_FALSE; @@ -3220,6 +3741,12 @@ GLboolean __GLEW_ARB_vertex_type_10f_11f_11f_rev = GL_FALSE; GLboolean __GLEW_ARB_vertex_type_2_10_10_10_rev = GL_FALSE; GLboolean __GLEW_ARB_viewport_array = GL_FALSE; GLboolean __GLEW_ARB_window_pos = GL_FALSE; +GLboolean __GLEW_ARM_mali_program_binary = GL_FALSE; +GLboolean __GLEW_ARM_mali_shader_binary = GL_FALSE; +GLboolean __GLEW_ARM_rgba8 = GL_FALSE; +GLboolean __GLEW_ARM_shader_framebuffer_fetch = GL_FALSE; +GLboolean __GLEW_ARM_shader_framebuffer_fetch_depth_stencil = GL_FALSE; +GLboolean __GLEW_ARM_texture_unnormalized_coordinates = GL_FALSE; GLboolean __GLEW_ATIX_point_sprites = GL_FALSE; GLboolean __GLEW_ATIX_texture_env_combine3 = GL_FALSE; GLboolean __GLEW_ATIX_texture_env_route = GL_FALSE; @@ -3241,51 +3768,97 @@ GLboolean __GLEW_ATI_texture_mirror_once = GL_FALSE; GLboolean __GLEW_ATI_vertex_array_object = GL_FALSE; GLboolean __GLEW_ATI_vertex_attrib_array_object = GL_FALSE; GLboolean __GLEW_ATI_vertex_streams = GL_FALSE; +GLboolean __GLEW_DMP_program_binary = GL_FALSE; +GLboolean __GLEW_DMP_shader_binary = GL_FALSE; GLboolean __GLEW_EXT_422_pixels = GL_FALSE; GLboolean __GLEW_EXT_Cg_shader = GL_FALSE; +GLboolean __GLEW_EXT_EGL_image_array = GL_FALSE; +GLboolean __GLEW_EXT_EGL_image_external_wrap_modes = GL_FALSE; +GLboolean __GLEW_EXT_EGL_image_storage = GL_FALSE; +GLboolean __GLEW_EXT_EGL_sync = GL_FALSE; +GLboolean __GLEW_EXT_YUV_target = GL_FALSE; GLboolean __GLEW_EXT_abgr = GL_FALSE; +GLboolean __GLEW_EXT_base_instance = GL_FALSE; GLboolean __GLEW_EXT_bgra = GL_FALSE; GLboolean __GLEW_EXT_bindable_uniform = GL_FALSE; GLboolean __GLEW_EXT_blend_color = GL_FALSE; GLboolean __GLEW_EXT_blend_equation_separate = GL_FALSE; +GLboolean __GLEW_EXT_blend_func_extended = GL_FALSE; GLboolean __GLEW_EXT_blend_func_separate = GL_FALSE; GLboolean __GLEW_EXT_blend_logic_op = GL_FALSE; GLboolean __GLEW_EXT_blend_minmax = GL_FALSE; GLboolean __GLEW_EXT_blend_subtract = GL_FALSE; +GLboolean __GLEW_EXT_buffer_storage = GL_FALSE; +GLboolean __GLEW_EXT_clear_texture = GL_FALSE; +GLboolean __GLEW_EXT_clip_control = GL_FALSE; +GLboolean __GLEW_EXT_clip_cull_distance = GL_FALSE; GLboolean __GLEW_EXT_clip_volume_hint = GL_FALSE; GLboolean __GLEW_EXT_cmyka = GL_FALSE; +GLboolean __GLEW_EXT_color_buffer_float = GL_FALSE; +GLboolean __GLEW_EXT_color_buffer_half_float = GL_FALSE; GLboolean __GLEW_EXT_color_subtable = GL_FALSE; GLboolean __GLEW_EXT_compiled_vertex_array = GL_FALSE; +GLboolean __GLEW_EXT_compressed_ETC1_RGB8_sub_texture = GL_FALSE; +GLboolean __GLEW_EXT_conservative_depth = GL_FALSE; GLboolean __GLEW_EXT_convolution = GL_FALSE; GLboolean __GLEW_EXT_coordinate_frame = GL_FALSE; +GLboolean __GLEW_EXT_copy_image = GL_FALSE; GLboolean __GLEW_EXT_copy_texture = GL_FALSE; GLboolean __GLEW_EXT_cull_vertex = GL_FALSE; GLboolean __GLEW_EXT_debug_label = GL_FALSE; GLboolean __GLEW_EXT_debug_marker = GL_FALSE; GLboolean __GLEW_EXT_depth_bounds_test = GL_FALSE; +GLboolean __GLEW_EXT_depth_clamp = GL_FALSE; GLboolean __GLEW_EXT_direct_state_access = GL_FALSE; +GLboolean __GLEW_EXT_discard_framebuffer = GL_FALSE; +GLboolean __GLEW_EXT_disjoint_timer_query = GL_FALSE; +GLboolean __GLEW_EXT_draw_buffers = GL_FALSE; GLboolean __GLEW_EXT_draw_buffers2 = GL_FALSE; +GLboolean __GLEW_EXT_draw_buffers_indexed = GL_FALSE; +GLboolean __GLEW_EXT_draw_elements_base_vertex = GL_FALSE; GLboolean __GLEW_EXT_draw_instanced = GL_FALSE; GLboolean __GLEW_EXT_draw_range_elements = GL_FALSE; +GLboolean __GLEW_EXT_draw_transform_feedback = GL_FALSE; +GLboolean __GLEW_EXT_external_buffer = GL_FALSE; +GLboolean __GLEW_EXT_float_blend = GL_FALSE; GLboolean __GLEW_EXT_fog_coord = GL_FALSE; +GLboolean __GLEW_EXT_frag_depth = GL_FALSE; GLboolean __GLEW_EXT_fragment_lighting = GL_FALSE; GLboolean __GLEW_EXT_framebuffer_blit = GL_FALSE; GLboolean __GLEW_EXT_framebuffer_multisample = GL_FALSE; GLboolean __GLEW_EXT_framebuffer_multisample_blit_scaled = GL_FALSE; GLboolean __GLEW_EXT_framebuffer_object = GL_FALSE; GLboolean __GLEW_EXT_framebuffer_sRGB = GL_FALSE; +GLboolean __GLEW_EXT_geometry_point_size = GL_FALSE; +GLboolean __GLEW_EXT_geometry_shader = GL_FALSE; GLboolean __GLEW_EXT_geometry_shader4 = GL_FALSE; GLboolean __GLEW_EXT_gpu_program_parameters = GL_FALSE; GLboolean __GLEW_EXT_gpu_shader4 = GL_FALSE; +GLboolean __GLEW_EXT_gpu_shader5 = GL_FALSE; GLboolean __GLEW_EXT_histogram = GL_FALSE; GLboolean __GLEW_EXT_index_array_formats = GL_FALSE; GLboolean __GLEW_EXT_index_func = GL_FALSE; GLboolean __GLEW_EXT_index_material = GL_FALSE; GLboolean __GLEW_EXT_index_texture = GL_FALSE; +GLboolean __GLEW_EXT_instanced_arrays = GL_FALSE; GLboolean __GLEW_EXT_light_texture = GL_FALSE; +GLboolean __GLEW_EXT_map_buffer_range = GL_FALSE; +GLboolean __GLEW_EXT_memory_object = GL_FALSE; +GLboolean __GLEW_EXT_memory_object_fd = GL_FALSE; +GLboolean __GLEW_EXT_memory_object_win32 = GL_FALSE; GLboolean __GLEW_EXT_misc_attribute = GL_FALSE; GLboolean __GLEW_EXT_multi_draw_arrays = GL_FALSE; +GLboolean __GLEW_EXT_multi_draw_indirect = GL_FALSE; +GLboolean __GLEW_EXT_multiple_textures = GL_FALSE; GLboolean __GLEW_EXT_multisample = GL_FALSE; +GLboolean __GLEW_EXT_multisample_compatibility = GL_FALSE; +GLboolean __GLEW_EXT_multisampled_render_to_texture = GL_FALSE; +GLboolean __GLEW_EXT_multisampled_render_to_texture2 = GL_FALSE; +GLboolean __GLEW_EXT_multiview_draw_buffers = GL_FALSE; +GLboolean __GLEW_EXT_multiview_tessellation_geometry_shader = GL_FALSE; +GLboolean __GLEW_EXT_multiview_texture_multisample = GL_FALSE; +GLboolean __GLEW_EXT_multiview_timer_query = GL_FALSE; +GLboolean __GLEW_EXT_occlusion_query_boolean = GL_FALSE; GLboolean __GLEW_EXT_packed_depth_stencil = GL_FALSE; GLboolean __GLEW_EXT_packed_float = GL_FALSE; GLboolean __GLEW_EXT_packed_pixels = GL_FALSE; @@ -3297,32 +3870,64 @@ GLboolean __GLEW_EXT_point_parameters = GL_FALSE; GLboolean __GLEW_EXT_polygon_offset = GL_FALSE; GLboolean __GLEW_EXT_polygon_offset_clamp = GL_FALSE; GLboolean __GLEW_EXT_post_depth_coverage = GL_FALSE; +GLboolean __GLEW_EXT_primitive_bounding_box = GL_FALSE; +GLboolean __GLEW_EXT_protected_textures = GL_FALSE; GLboolean __GLEW_EXT_provoking_vertex = GL_FALSE; +GLboolean __GLEW_EXT_pvrtc_sRGB = GL_FALSE; GLboolean __GLEW_EXT_raster_multisample = GL_FALSE; +GLboolean __GLEW_EXT_read_format_bgra = GL_FALSE; +GLboolean __GLEW_EXT_render_snorm = GL_FALSE; GLboolean __GLEW_EXT_rescale_normal = GL_FALSE; +GLboolean __GLEW_EXT_robustness = GL_FALSE; +GLboolean __GLEW_EXT_sRGB = GL_FALSE; +GLboolean __GLEW_EXT_sRGB_write_control = GL_FALSE; GLboolean __GLEW_EXT_scene_marker = GL_FALSE; GLboolean __GLEW_EXT_secondary_color = GL_FALSE; +GLboolean __GLEW_EXT_semaphore = GL_FALSE; +GLboolean __GLEW_EXT_semaphore_fd = GL_FALSE; +GLboolean __GLEW_EXT_semaphore_win32 = GL_FALSE; GLboolean __GLEW_EXT_separate_shader_objects = GL_FALSE; GLboolean __GLEW_EXT_separate_specular_color = GL_FALSE; +GLboolean __GLEW_EXT_shader_framebuffer_fetch = GL_FALSE; +GLboolean __GLEW_EXT_shader_framebuffer_fetch_non_coherent = GL_FALSE; +GLboolean __GLEW_EXT_shader_group_vote = GL_FALSE; GLboolean __GLEW_EXT_shader_image_load_formatted = GL_FALSE; GLboolean __GLEW_EXT_shader_image_load_store = GL_FALSE; +GLboolean __GLEW_EXT_shader_implicit_conversions = GL_FALSE; GLboolean __GLEW_EXT_shader_integer_mix = GL_FALSE; +GLboolean __GLEW_EXT_shader_io_blocks = GL_FALSE; +GLboolean __GLEW_EXT_shader_non_constant_global_initializers = GL_FALSE; +GLboolean __GLEW_EXT_shader_pixel_local_storage = GL_FALSE; +GLboolean __GLEW_EXT_shader_pixel_local_storage2 = GL_FALSE; +GLboolean __GLEW_EXT_shader_texture_lod = GL_FALSE; GLboolean __GLEW_EXT_shadow_funcs = GL_FALSE; +GLboolean __GLEW_EXT_shadow_samplers = GL_FALSE; GLboolean __GLEW_EXT_shared_texture_palette = GL_FALSE; +GLboolean __GLEW_EXT_sparse_texture = GL_FALSE; GLboolean __GLEW_EXT_sparse_texture2 = GL_FALSE; +GLboolean __GLEW_EXT_static_vertex_array = GL_FALSE; GLboolean __GLEW_EXT_stencil_clear_tag = GL_FALSE; GLboolean __GLEW_EXT_stencil_two_side = GL_FALSE; GLboolean __GLEW_EXT_stencil_wrap = GL_FALSE; GLboolean __GLEW_EXT_subtexture = GL_FALSE; +GLboolean __GLEW_EXT_tessellation_point_size = GL_FALSE; +GLboolean __GLEW_EXT_tessellation_shader = GL_FALSE; GLboolean __GLEW_EXT_texture = GL_FALSE; GLboolean __GLEW_EXT_texture3D = GL_FALSE; GLboolean __GLEW_EXT_texture_array = GL_FALSE; +GLboolean __GLEW_EXT_texture_border_clamp = GL_FALSE; +GLboolean __GLEW_EXT_texture_buffer = GL_FALSE; GLboolean __GLEW_EXT_texture_buffer_object = GL_FALSE; +GLboolean __GLEW_EXT_texture_compression_astc_decode_mode = GL_FALSE; +GLboolean __GLEW_EXT_texture_compression_astc_decode_mode_rgb9e5 = GL_FALSE; +GLboolean __GLEW_EXT_texture_compression_bptc = GL_FALSE; GLboolean __GLEW_EXT_texture_compression_dxt1 = GL_FALSE; GLboolean __GLEW_EXT_texture_compression_latc = GL_FALSE; GLboolean __GLEW_EXT_texture_compression_rgtc = GL_FALSE; GLboolean __GLEW_EXT_texture_compression_s3tc = GL_FALSE; +GLboolean __GLEW_EXT_texture_compression_s3tc_srgb = GL_FALSE; GLboolean __GLEW_EXT_texture_cube_map = GL_FALSE; +GLboolean __GLEW_EXT_texture_cube_map_array = GL_FALSE; GLboolean __GLEW_EXT_texture_edge_clamp = GL_FALSE; GLboolean __GLEW_EXT_texture_env = GL_FALSE; GLboolean __GLEW_EXT_texture_env_add = GL_FALSE; @@ -3330,25 +3935,42 @@ GLboolean __GLEW_EXT_texture_env_combine = GL_FALSE; GLboolean __GLEW_EXT_texture_env_dot3 = GL_FALSE; GLboolean __GLEW_EXT_texture_filter_anisotropic = GL_FALSE; GLboolean __GLEW_EXT_texture_filter_minmax = GL_FALSE; +GLboolean __GLEW_EXT_texture_format_BGRA8888 = GL_FALSE; +GLboolean __GLEW_EXT_texture_format_sRGB_override = GL_FALSE; GLboolean __GLEW_EXT_texture_integer = GL_FALSE; GLboolean __GLEW_EXT_texture_lod_bias = GL_FALSE; GLboolean __GLEW_EXT_texture_mirror_clamp = GL_FALSE; +GLboolean __GLEW_EXT_texture_mirror_clamp_to_edge = GL_FALSE; +GLboolean __GLEW_EXT_texture_norm16 = GL_FALSE; GLboolean __GLEW_EXT_texture_object = GL_FALSE; GLboolean __GLEW_EXT_texture_perturb_normal = GL_FALSE; +GLboolean __GLEW_EXT_texture_query_lod = GL_FALSE; GLboolean __GLEW_EXT_texture_rectangle = GL_FALSE; +GLboolean __GLEW_EXT_texture_rg = GL_FALSE; GLboolean __GLEW_EXT_texture_sRGB = GL_FALSE; +GLboolean __GLEW_EXT_texture_sRGB_R8 = GL_FALSE; +GLboolean __GLEW_EXT_texture_sRGB_RG8 = GL_FALSE; GLboolean __GLEW_EXT_texture_sRGB_decode = GL_FALSE; +GLboolean __GLEW_EXT_texture_shadow_lod = GL_FALSE; GLboolean __GLEW_EXT_texture_shared_exponent = GL_FALSE; GLboolean __GLEW_EXT_texture_snorm = GL_FALSE; +GLboolean __GLEW_EXT_texture_storage = GL_FALSE; GLboolean __GLEW_EXT_texture_swizzle = GL_FALSE; +GLboolean __GLEW_EXT_texture_type_2_10_10_10_REV = GL_FALSE; +GLboolean __GLEW_EXT_texture_view = GL_FALSE; GLboolean __GLEW_EXT_timer_query = GL_FALSE; GLboolean __GLEW_EXT_transform_feedback = GL_FALSE; +GLboolean __GLEW_EXT_unpack_subimage = GL_FALSE; GLboolean __GLEW_EXT_vertex_array = GL_FALSE; GLboolean __GLEW_EXT_vertex_array_bgra = GL_FALSE; +GLboolean __GLEW_EXT_vertex_array_setXXX = GL_FALSE; GLboolean __GLEW_EXT_vertex_attrib_64bit = GL_FALSE; GLboolean __GLEW_EXT_vertex_shader = GL_FALSE; GLboolean __GLEW_EXT_vertex_weighting = GL_FALSE; +GLboolean __GLEW_EXT_win32_keyed_mutex = GL_FALSE; +GLboolean __GLEW_EXT_window_rectangles = GL_FALSE; GLboolean __GLEW_EXT_x11_sync_object = GL_FALSE; +GLboolean __GLEW_FJ_shader_binary_GCCSO = GL_FALSE; GLboolean __GLEW_GREMEDY_frame_terminator = GL_FALSE; GLboolean __GLEW_GREMEDY_string_marker = GL_FALSE; GLboolean __GLEW_HP_convolution_border_modes = GL_FALSE; @@ -3361,50 +3983,92 @@ GLboolean __GLEW_IBM_rasterpos_clip = GL_FALSE; GLboolean __GLEW_IBM_static_data = GL_FALSE; GLboolean __GLEW_IBM_texture_mirrored_repeat = GL_FALSE; GLboolean __GLEW_IBM_vertex_array_lists = GL_FALSE; +GLboolean __GLEW_IMG_bindless_texture = GL_FALSE; +GLboolean __GLEW_IMG_framebuffer_downsample = GL_FALSE; +GLboolean __GLEW_IMG_multisampled_render_to_texture = GL_FALSE; +GLboolean __GLEW_IMG_program_binary = GL_FALSE; +GLboolean __GLEW_IMG_read_format = GL_FALSE; +GLboolean __GLEW_IMG_shader_binary = GL_FALSE; +GLboolean __GLEW_IMG_texture_compression_pvrtc = GL_FALSE; +GLboolean __GLEW_IMG_texture_compression_pvrtc2 = GL_FALSE; +GLboolean __GLEW_IMG_texture_env_enhanced_fixed_function = GL_FALSE; +GLboolean __GLEW_IMG_texture_filter_cubic = GL_FALSE; GLboolean __GLEW_INGR_color_clamp = GL_FALSE; GLboolean __GLEW_INGR_interlace_read = GL_FALSE; +GLboolean __GLEW_INTEL_blackhole_render = GL_FALSE; +GLboolean __GLEW_INTEL_conservative_rasterization = GL_FALSE; GLboolean __GLEW_INTEL_fragment_shader_ordering = GL_FALSE; GLboolean __GLEW_INTEL_framebuffer_CMAA = GL_FALSE; GLboolean __GLEW_INTEL_map_texture = GL_FALSE; GLboolean __GLEW_INTEL_parallel_arrays = GL_FALSE; GLboolean __GLEW_INTEL_performance_query = GL_FALSE; +GLboolean __GLEW_INTEL_shader_integer_functions2 = GL_FALSE; GLboolean __GLEW_INTEL_texture_scissor = GL_FALSE; GLboolean __GLEW_KHR_blend_equation_advanced = GL_FALSE; GLboolean __GLEW_KHR_blend_equation_advanced_coherent = GL_FALSE; GLboolean __GLEW_KHR_context_flush_control = GL_FALSE; GLboolean __GLEW_KHR_debug = GL_FALSE; GLboolean __GLEW_KHR_no_error = GL_FALSE; +GLboolean __GLEW_KHR_parallel_shader_compile = GL_FALSE; GLboolean __GLEW_KHR_robust_buffer_access_behavior = GL_FALSE; GLboolean __GLEW_KHR_robustness = GL_FALSE; +GLboolean __GLEW_KHR_shader_subgroup = GL_FALSE; GLboolean __GLEW_KHR_texture_compression_astc_hdr = GL_FALSE; GLboolean __GLEW_KHR_texture_compression_astc_ldr = GL_FALSE; +GLboolean __GLEW_KHR_texture_compression_astc_sliced_3d = GL_FALSE; GLboolean __GLEW_KTX_buffer_region = GL_FALSE; GLboolean __GLEW_MESAX_texture_stack = GL_FALSE; +GLboolean __GLEW_MESA_framebuffer_flip_y = GL_FALSE; GLboolean __GLEW_MESA_pack_invert = GL_FALSE; +GLboolean __GLEW_MESA_program_binary_formats = GL_FALSE; GLboolean __GLEW_MESA_resize_buffers = GL_FALSE; +GLboolean __GLEW_MESA_shader_integer_functions = GL_FALSE; +GLboolean __GLEW_MESA_tile_raster_order = GL_FALSE; GLboolean __GLEW_MESA_window_pos = GL_FALSE; GLboolean __GLEW_MESA_ycbcr_texture = GL_FALSE; +GLboolean __GLEW_NVX_blend_equation_advanced_multi_draw_buffers = GL_FALSE; GLboolean __GLEW_NVX_conditional_render = GL_FALSE; GLboolean __GLEW_NVX_gpu_memory_info = GL_FALSE; +GLboolean __GLEW_NVX_gpu_multicast2 = GL_FALSE; +GLboolean __GLEW_NVX_linked_gpu_multicast = GL_FALSE; +GLboolean __GLEW_NVX_progress_fence = GL_FALSE; +GLboolean __GLEW_NV_3dvision_settings = GL_FALSE; +GLboolean __GLEW_NV_EGL_stream_consumer_external = GL_FALSE; +GLboolean __GLEW_NV_alpha_to_coverage_dither_control = GL_FALSE; +GLboolean __GLEW_NV_bgr = GL_FALSE; GLboolean __GLEW_NV_bindless_multi_draw_indirect = GL_FALSE; GLboolean __GLEW_NV_bindless_multi_draw_indirect_count = GL_FALSE; GLboolean __GLEW_NV_bindless_texture = GL_FALSE; GLboolean __GLEW_NV_blend_equation_advanced = GL_FALSE; GLboolean __GLEW_NV_blend_equation_advanced_coherent = GL_FALSE; +GLboolean __GLEW_NV_blend_minmax_factor = GL_FALSE; GLboolean __GLEW_NV_blend_square = GL_FALSE; +GLboolean __GLEW_NV_clip_space_w_scaling = GL_FALSE; +GLboolean __GLEW_NV_command_list = GL_FALSE; GLboolean __GLEW_NV_compute_program5 = GL_FALSE; +GLboolean __GLEW_NV_compute_shader_derivatives = GL_FALSE; GLboolean __GLEW_NV_conditional_render = GL_FALSE; GLboolean __GLEW_NV_conservative_raster = GL_FALSE; GLboolean __GLEW_NV_conservative_raster_dilate = GL_FALSE; +GLboolean __GLEW_NV_conservative_raster_pre_snap = GL_FALSE; +GLboolean __GLEW_NV_conservative_raster_pre_snap_triangles = GL_FALSE; +GLboolean __GLEW_NV_conservative_raster_underestimation = GL_FALSE; +GLboolean __GLEW_NV_copy_buffer = GL_FALSE; GLboolean __GLEW_NV_copy_depth_to_color = GL_FALSE; GLboolean __GLEW_NV_copy_image = GL_FALSE; GLboolean __GLEW_NV_deep_texture3D = GL_FALSE; GLboolean __GLEW_NV_depth_buffer_float = GL_FALSE; GLboolean __GLEW_NV_depth_clamp = GL_FALSE; +GLboolean __GLEW_NV_depth_nonlinear = GL_FALSE; GLboolean __GLEW_NV_depth_range_unclamped = GL_FALSE; +GLboolean __GLEW_NV_draw_buffers = GL_FALSE; +GLboolean __GLEW_NV_draw_instanced = GL_FALSE; GLboolean __GLEW_NV_draw_texture = GL_FALSE; +GLboolean __GLEW_NV_draw_vulkan_image = GL_FALSE; GLboolean __GLEW_NV_evaluators = GL_FALSE; +GLboolean __GLEW_NV_explicit_attrib_location = GL_FALSE; GLboolean __GLEW_NV_explicit_multisample = GL_FALSE; +GLboolean __GLEW_NV_fbo_color_attachments = GL_FALSE; GLboolean __GLEW_NV_fence = GL_FALSE; GLboolean __GLEW_NV_fill_rectangle = GL_FALSE; GLboolean __GLEW_NV_float_buffer = GL_FALSE; @@ -3414,53 +4078,94 @@ GLboolean __GLEW_NV_fragment_program = GL_FALSE; GLboolean __GLEW_NV_fragment_program2 = GL_FALSE; GLboolean __GLEW_NV_fragment_program4 = GL_FALSE; GLboolean __GLEW_NV_fragment_program_option = GL_FALSE; +GLboolean __GLEW_NV_fragment_shader_barycentric = GL_FALSE; GLboolean __GLEW_NV_fragment_shader_interlock = GL_FALSE; +GLboolean __GLEW_NV_framebuffer_blit = GL_FALSE; GLboolean __GLEW_NV_framebuffer_mixed_samples = GL_FALSE; +GLboolean __GLEW_NV_framebuffer_multisample = GL_FALSE; GLboolean __GLEW_NV_framebuffer_multisample_coverage = GL_FALSE; +GLboolean __GLEW_NV_generate_mipmap_sRGB = GL_FALSE; GLboolean __GLEW_NV_geometry_program4 = GL_FALSE; GLboolean __GLEW_NV_geometry_shader4 = GL_FALSE; GLboolean __GLEW_NV_geometry_shader_passthrough = GL_FALSE; +GLboolean __GLEW_NV_gpu_multicast = GL_FALSE; GLboolean __GLEW_NV_gpu_program4 = GL_FALSE; GLboolean __GLEW_NV_gpu_program5 = GL_FALSE; GLboolean __GLEW_NV_gpu_program5_mem_extended = GL_FALSE; GLboolean __GLEW_NV_gpu_program_fp64 = GL_FALSE; GLboolean __GLEW_NV_gpu_shader5 = GL_FALSE; GLboolean __GLEW_NV_half_float = GL_FALSE; +GLboolean __GLEW_NV_image_formats = GL_FALSE; +GLboolean __GLEW_NV_instanced_arrays = GL_FALSE; GLboolean __GLEW_NV_internalformat_sample_query = GL_FALSE; GLboolean __GLEW_NV_light_max_exponent = GL_FALSE; +GLboolean __GLEW_NV_memory_attachment = GL_FALSE; +GLboolean __GLEW_NV_mesh_shader = GL_FALSE; GLboolean __GLEW_NV_multisample_coverage = GL_FALSE; GLboolean __GLEW_NV_multisample_filter_hint = GL_FALSE; +GLboolean __GLEW_NV_non_square_matrices = GL_FALSE; GLboolean __GLEW_NV_occlusion_query = GL_FALSE; +GLboolean __GLEW_NV_pack_subimage = GL_FALSE; GLboolean __GLEW_NV_packed_depth_stencil = GL_FALSE; +GLboolean __GLEW_NV_packed_float = GL_FALSE; +GLboolean __GLEW_NV_packed_float_linear = GL_FALSE; GLboolean __GLEW_NV_parameter_buffer_object = GL_FALSE; GLboolean __GLEW_NV_parameter_buffer_object2 = GL_FALSE; GLboolean __GLEW_NV_path_rendering = GL_FALSE; GLboolean __GLEW_NV_path_rendering_shared_edge = GL_FALSE; +GLboolean __GLEW_NV_pixel_buffer_object = GL_FALSE; GLboolean __GLEW_NV_pixel_data_range = GL_FALSE; +GLboolean __GLEW_NV_platform_binary = GL_FALSE; GLboolean __GLEW_NV_point_sprite = GL_FALSE; +GLboolean __GLEW_NV_polygon_mode = GL_FALSE; GLboolean __GLEW_NV_present_video = GL_FALSE; GLboolean __GLEW_NV_primitive_restart = GL_FALSE; +GLboolean __GLEW_NV_query_resource_tag = GL_FALSE; +GLboolean __GLEW_NV_read_buffer = GL_FALSE; +GLboolean __GLEW_NV_read_buffer_front = GL_FALSE; +GLboolean __GLEW_NV_read_depth = GL_FALSE; +GLboolean __GLEW_NV_read_depth_stencil = GL_FALSE; +GLboolean __GLEW_NV_read_stencil = GL_FALSE; GLboolean __GLEW_NV_register_combiners = GL_FALSE; GLboolean __GLEW_NV_register_combiners2 = GL_FALSE; +GLboolean __GLEW_NV_representative_fragment_test = GL_FALSE; +GLboolean __GLEW_NV_robustness_video_memory_purge = GL_FALSE; +GLboolean __GLEW_NV_sRGB_formats = GL_FALSE; GLboolean __GLEW_NV_sample_locations = GL_FALSE; GLboolean __GLEW_NV_sample_mask_override_coverage = GL_FALSE; +GLboolean __GLEW_NV_scissor_exclusive = GL_FALSE; GLboolean __GLEW_NV_shader_atomic_counters = GL_FALSE; GLboolean __GLEW_NV_shader_atomic_float = GL_FALSE; +GLboolean __GLEW_NV_shader_atomic_float64 = GL_FALSE; GLboolean __GLEW_NV_shader_atomic_fp16_vector = GL_FALSE; GLboolean __GLEW_NV_shader_atomic_int64 = GL_FALSE; GLboolean __GLEW_NV_shader_buffer_load = GL_FALSE; +GLboolean __GLEW_NV_shader_noperspective_interpolation = GL_FALSE; GLboolean __GLEW_NV_shader_storage_buffer_object = GL_FALSE; +GLboolean __GLEW_NV_shader_subgroup_partitioned = GL_FALSE; +GLboolean __GLEW_NV_shader_texture_footprint = GL_FALSE; GLboolean __GLEW_NV_shader_thread_group = GL_FALSE; GLboolean __GLEW_NV_shader_thread_shuffle = GL_FALSE; +GLboolean __GLEW_NV_shading_rate_image = GL_FALSE; +GLboolean __GLEW_NV_shadow_samplers_array = GL_FALSE; +GLboolean __GLEW_NV_shadow_samplers_cube = GL_FALSE; +GLboolean __GLEW_NV_stereo_view_rendering = GL_FALSE; GLboolean __GLEW_NV_tessellation_program5 = GL_FALSE; GLboolean __GLEW_NV_texgen_emboss = GL_FALSE; GLboolean __GLEW_NV_texgen_reflection = GL_FALSE; +GLboolean __GLEW_NV_texture_array = GL_FALSE; GLboolean __GLEW_NV_texture_barrier = GL_FALSE; +GLboolean __GLEW_NV_texture_border_clamp = GL_FALSE; +GLboolean __GLEW_NV_texture_compression_latc = GL_FALSE; +GLboolean __GLEW_NV_texture_compression_s3tc = GL_FALSE; +GLboolean __GLEW_NV_texture_compression_s3tc_update = GL_FALSE; GLboolean __GLEW_NV_texture_compression_vtc = GL_FALSE; GLboolean __GLEW_NV_texture_env_combine4 = GL_FALSE; GLboolean __GLEW_NV_texture_expand_normal = GL_FALSE; GLboolean __GLEW_NV_texture_multisample = GL_FALSE; +GLboolean __GLEW_NV_texture_npot_2D_mipmap = GL_FALSE; GLboolean __GLEW_NV_texture_rectangle = GL_FALSE; +GLboolean __GLEW_NV_texture_rectangle_compressed = GL_FALSE; GLboolean __GLEW_NV_texture_shader = GL_FALSE; GLboolean __GLEW_NV_texture_shader2 = GL_FALSE; GLboolean __GLEW_NV_texture_shader3 = GL_FALSE; @@ -3468,6 +4173,7 @@ GLboolean __GLEW_NV_transform_feedback = GL_FALSE; GLboolean __GLEW_NV_transform_feedback2 = GL_FALSE; GLboolean __GLEW_NV_uniform_buffer_unified_memory = GL_FALSE; GLboolean __GLEW_NV_vdpau_interop = GL_FALSE; +GLboolean __GLEW_NV_vdpau_interop2 = GL_FALSE; GLboolean __GLEW_NV_vertex_array_range = GL_FALSE; GLboolean __GLEW_NV_vertex_array_range2 = GL_FALSE; GLboolean __GLEW_NV_vertex_attrib_integer_64bit = GL_FALSE; @@ -3479,18 +4185,93 @@ GLboolean __GLEW_NV_vertex_program2_option = GL_FALSE; GLboolean __GLEW_NV_vertex_program3 = GL_FALSE; GLboolean __GLEW_NV_vertex_program4 = GL_FALSE; GLboolean __GLEW_NV_video_capture = GL_FALSE; +GLboolean __GLEW_NV_viewport_array = GL_FALSE; GLboolean __GLEW_NV_viewport_array2 = GL_FALSE; +GLboolean __GLEW_NV_viewport_swizzle = GL_FALSE; +GLboolean __GLEW_OES_EGL_image = GL_FALSE; +GLboolean __GLEW_OES_EGL_image_external = GL_FALSE; +GLboolean __GLEW_OES_EGL_image_external_essl3 = GL_FALSE; +GLboolean __GLEW_OES_blend_equation_separate = GL_FALSE; +GLboolean __GLEW_OES_blend_func_separate = GL_FALSE; +GLboolean __GLEW_OES_blend_subtract = GL_FALSE; GLboolean __GLEW_OES_byte_coordinates = GL_FALSE; +GLboolean __GLEW_OES_compressed_ETC1_RGB8_texture = GL_FALSE; GLboolean __GLEW_OES_compressed_paletted_texture = GL_FALSE; +GLboolean __GLEW_OES_copy_image = GL_FALSE; +GLboolean __GLEW_OES_depth24 = GL_FALSE; +GLboolean __GLEW_OES_depth32 = GL_FALSE; +GLboolean __GLEW_OES_depth_texture = GL_FALSE; +GLboolean __GLEW_OES_depth_texture_cube_map = GL_FALSE; +GLboolean __GLEW_OES_draw_buffers_indexed = GL_FALSE; +GLboolean __GLEW_OES_draw_texture = GL_FALSE; +GLboolean __GLEW_OES_element_index_uint = GL_FALSE; +GLboolean __GLEW_OES_extended_matrix_palette = GL_FALSE; +GLboolean __GLEW_OES_fbo_render_mipmap = GL_FALSE; +GLboolean __GLEW_OES_fragment_precision_high = GL_FALSE; +GLboolean __GLEW_OES_framebuffer_object = GL_FALSE; +GLboolean __GLEW_OES_geometry_point_size = GL_FALSE; +GLboolean __GLEW_OES_geometry_shader = GL_FALSE; +GLboolean __GLEW_OES_get_program_binary = GL_FALSE; +GLboolean __GLEW_OES_gpu_shader5 = GL_FALSE; +GLboolean __GLEW_OES_mapbuffer = GL_FALSE; +GLboolean __GLEW_OES_matrix_get = GL_FALSE; +GLboolean __GLEW_OES_matrix_palette = GL_FALSE; +GLboolean __GLEW_OES_packed_depth_stencil = GL_FALSE; +GLboolean __GLEW_OES_point_size_array = GL_FALSE; +GLboolean __GLEW_OES_point_sprite = GL_FALSE; GLboolean __GLEW_OES_read_format = GL_FALSE; +GLboolean __GLEW_OES_required_internalformat = GL_FALSE; +GLboolean __GLEW_OES_rgb8_rgba8 = GL_FALSE; +GLboolean __GLEW_OES_sample_shading = GL_FALSE; +GLboolean __GLEW_OES_sample_variables = GL_FALSE; +GLboolean __GLEW_OES_shader_image_atomic = GL_FALSE; +GLboolean __GLEW_OES_shader_io_blocks = GL_FALSE; +GLboolean __GLEW_OES_shader_multisample_interpolation = GL_FALSE; GLboolean __GLEW_OES_single_precision = GL_FALSE; +GLboolean __GLEW_OES_standard_derivatives = GL_FALSE; +GLboolean __GLEW_OES_stencil1 = GL_FALSE; +GLboolean __GLEW_OES_stencil4 = GL_FALSE; +GLboolean __GLEW_OES_stencil8 = GL_FALSE; +GLboolean __GLEW_OES_surfaceless_context = GL_FALSE; +GLboolean __GLEW_OES_tessellation_point_size = GL_FALSE; +GLboolean __GLEW_OES_tessellation_shader = GL_FALSE; +GLboolean __GLEW_OES_texture_3D = GL_FALSE; +GLboolean __GLEW_OES_texture_border_clamp = GL_FALSE; +GLboolean __GLEW_OES_texture_buffer = GL_FALSE; +GLboolean __GLEW_OES_texture_compression_astc = GL_FALSE; +GLboolean __GLEW_OES_texture_cube_map = GL_FALSE; +GLboolean __GLEW_OES_texture_cube_map_array = GL_FALSE; +GLboolean __GLEW_OES_texture_env_crossbar = GL_FALSE; +GLboolean __GLEW_OES_texture_mirrored_repeat = GL_FALSE; +GLboolean __GLEW_OES_texture_npot = GL_FALSE; +GLboolean __GLEW_OES_texture_stencil8 = GL_FALSE; +GLboolean __GLEW_OES_texture_storage_multisample_2d_array = GL_FALSE; +GLboolean __GLEW_OES_texture_view = GL_FALSE; +GLboolean __GLEW_OES_vertex_array_object = GL_FALSE; +GLboolean __GLEW_OES_vertex_half_float = GL_FALSE; +GLboolean __GLEW_OES_vertex_type_10_10_10_2 = GL_FALSE; GLboolean __GLEW_OML_interlace = GL_FALSE; GLboolean __GLEW_OML_resample = GL_FALSE; GLboolean __GLEW_OML_subsample = GL_FALSE; GLboolean __GLEW_OVR_multiview = GL_FALSE; GLboolean __GLEW_OVR_multiview2 = GL_FALSE; +GLboolean __GLEW_OVR_multiview_multisampled_render_to_texture = GL_FALSE; GLboolean __GLEW_PGI_misc_hints = GL_FALSE; GLboolean __GLEW_PGI_vertex_hints = GL_FALSE; +GLboolean __GLEW_QCOM_YUV_texture_gather = GL_FALSE; +GLboolean __GLEW_QCOM_alpha_test = GL_FALSE; +GLboolean __GLEW_QCOM_binning_control = GL_FALSE; +GLboolean __GLEW_QCOM_driver_control = GL_FALSE; +GLboolean __GLEW_QCOM_extended_get = GL_FALSE; +GLboolean __GLEW_QCOM_extended_get2 = GL_FALSE; +GLboolean __GLEW_QCOM_framebuffer_foveated = GL_FALSE; +GLboolean __GLEW_QCOM_perfmon_global_mode = GL_FALSE; +GLboolean __GLEW_QCOM_shader_framebuffer_fetch_noncoherent = GL_FALSE; +GLboolean __GLEW_QCOM_shader_framebuffer_fetch_rate = GL_FALSE; +GLboolean __GLEW_QCOM_texture_foveated = GL_FALSE; +GLboolean __GLEW_QCOM_texture_foveated_subsampled_layout = GL_FALSE; +GLboolean __GLEW_QCOM_tiled_rendering = GL_FALSE; +GLboolean __GLEW_QCOM_writeonly_rendering = GL_FALSE; GLboolean __GLEW_REGAL_ES1_0_compatibility = GL_FALSE; GLboolean __GLEW_REGAL_ES1_1_compatibility = GL_FALSE; GLboolean __GLEW_REGAL_enable = GL_FALSE; @@ -3500,13 +4281,17 @@ GLboolean __GLEW_REGAL_log = GL_FALSE; GLboolean __GLEW_REGAL_proc_address = GL_FALSE; GLboolean __GLEW_REND_screen_coordinates = GL_FALSE; GLboolean __GLEW_S3_s3tc = GL_FALSE; +GLboolean __GLEW_SGIS_clip_band_hint = GL_FALSE; GLboolean __GLEW_SGIS_color_range = GL_FALSE; GLboolean __GLEW_SGIS_detail_texture = GL_FALSE; GLboolean __GLEW_SGIS_fog_function = GL_FALSE; GLboolean __GLEW_SGIS_generate_mipmap = GL_FALSE; +GLboolean __GLEW_SGIS_line_texgen = GL_FALSE; GLboolean __GLEW_SGIS_multisample = GL_FALSE; +GLboolean __GLEW_SGIS_multitexture = GL_FALSE; GLboolean __GLEW_SGIS_pixel_texture = GL_FALSE; GLboolean __GLEW_SGIS_point_line_texgen = GL_FALSE; +GLboolean __GLEW_SGIS_shared_multisample = GL_FALSE; GLboolean __GLEW_SGIS_sharpen_texture = GL_FALSE; GLboolean __GLEW_SGIS_texture4D = GL_FALSE; GLboolean __GLEW_SGIS_texture_border_clamp = GL_FALSE; @@ -3517,37 +4302,90 @@ GLboolean __GLEW_SGIS_texture_select = GL_FALSE; GLboolean __GLEW_SGIX_async = GL_FALSE; GLboolean __GLEW_SGIX_async_histogram = GL_FALSE; GLboolean __GLEW_SGIX_async_pixel = GL_FALSE; +GLboolean __GLEW_SGIX_bali_g_instruments = GL_FALSE; +GLboolean __GLEW_SGIX_bali_r_instruments = GL_FALSE; +GLboolean __GLEW_SGIX_bali_timer_instruments = GL_FALSE; GLboolean __GLEW_SGIX_blend_alpha_minmax = GL_FALSE; +GLboolean __GLEW_SGIX_blend_cadd = GL_FALSE; +GLboolean __GLEW_SGIX_blend_cmultiply = GL_FALSE; +GLboolean __GLEW_SGIX_calligraphic_fragment = GL_FALSE; GLboolean __GLEW_SGIX_clipmap = GL_FALSE; +GLboolean __GLEW_SGIX_color_matrix_accuracy = GL_FALSE; +GLboolean __GLEW_SGIX_color_table_index_mode = GL_FALSE; +GLboolean __GLEW_SGIX_complex_polar = GL_FALSE; GLboolean __GLEW_SGIX_convolution_accuracy = GL_FALSE; +GLboolean __GLEW_SGIX_cube_map = GL_FALSE; +GLboolean __GLEW_SGIX_cylinder_texgen = GL_FALSE; +GLboolean __GLEW_SGIX_datapipe = GL_FALSE; +GLboolean __GLEW_SGIX_decimation = GL_FALSE; +GLboolean __GLEW_SGIX_depth_pass_instrument = GL_FALSE; GLboolean __GLEW_SGIX_depth_texture = GL_FALSE; +GLboolean __GLEW_SGIX_dvc = GL_FALSE; GLboolean __GLEW_SGIX_flush_raster = GL_FALSE; +GLboolean __GLEW_SGIX_fog_blend = GL_FALSE; +GLboolean __GLEW_SGIX_fog_factor_to_alpha = GL_FALSE; +GLboolean __GLEW_SGIX_fog_layers = GL_FALSE; GLboolean __GLEW_SGIX_fog_offset = GL_FALSE; +GLboolean __GLEW_SGIX_fog_patchy = GL_FALSE; +GLboolean __GLEW_SGIX_fog_scale = GL_FALSE; GLboolean __GLEW_SGIX_fog_texture = GL_FALSE; +GLboolean __GLEW_SGIX_fragment_lighting_space = GL_FALSE; GLboolean __GLEW_SGIX_fragment_specular_lighting = GL_FALSE; +GLboolean __GLEW_SGIX_fragments_instrument = GL_FALSE; GLboolean __GLEW_SGIX_framezoom = GL_FALSE; +GLboolean __GLEW_SGIX_icc_texture = GL_FALSE; +GLboolean __GLEW_SGIX_igloo_interface = GL_FALSE; +GLboolean __GLEW_SGIX_image_compression = GL_FALSE; +GLboolean __GLEW_SGIX_impact_pixel_texture = GL_FALSE; +GLboolean __GLEW_SGIX_instrument_error = GL_FALSE; GLboolean __GLEW_SGIX_interlace = GL_FALSE; GLboolean __GLEW_SGIX_ir_instrument1 = GL_FALSE; +GLboolean __GLEW_SGIX_line_quality_hint = GL_FALSE; GLboolean __GLEW_SGIX_list_priority = GL_FALSE; +GLboolean __GLEW_SGIX_mpeg1 = GL_FALSE; +GLboolean __GLEW_SGIX_mpeg2 = GL_FALSE; +GLboolean __GLEW_SGIX_nonlinear_lighting_pervertex = GL_FALSE; +GLboolean __GLEW_SGIX_nurbs_eval = GL_FALSE; +GLboolean __GLEW_SGIX_occlusion_instrument = GL_FALSE; +GLboolean __GLEW_SGIX_packed_6bytes = GL_FALSE; GLboolean __GLEW_SGIX_pixel_texture = GL_FALSE; GLboolean __GLEW_SGIX_pixel_texture_bits = GL_FALSE; +GLboolean __GLEW_SGIX_pixel_texture_lod = GL_FALSE; +GLboolean __GLEW_SGIX_pixel_tiles = GL_FALSE; +GLboolean __GLEW_SGIX_polynomial_ffd = GL_FALSE; +GLboolean __GLEW_SGIX_quad_mesh = GL_FALSE; GLboolean __GLEW_SGIX_reference_plane = GL_FALSE; GLboolean __GLEW_SGIX_resample = GL_FALSE; +GLboolean __GLEW_SGIX_scalebias_hint = GL_FALSE; GLboolean __GLEW_SGIX_shadow = GL_FALSE; GLboolean __GLEW_SGIX_shadow_ambient = GL_FALSE; +GLboolean __GLEW_SGIX_slim = GL_FALSE; +GLboolean __GLEW_SGIX_spotlight_cutoff = GL_FALSE; GLboolean __GLEW_SGIX_sprite = GL_FALSE; +GLboolean __GLEW_SGIX_subdiv_patch = GL_FALSE; +GLboolean __GLEW_SGIX_subsample = GL_FALSE; GLboolean __GLEW_SGIX_tag_sample_buffer = GL_FALSE; GLboolean __GLEW_SGIX_texture_add_env = GL_FALSE; GLboolean __GLEW_SGIX_texture_coordinate_clamp = GL_FALSE; GLboolean __GLEW_SGIX_texture_lod_bias = GL_FALSE; +GLboolean __GLEW_SGIX_texture_mipmap_anisotropic = GL_FALSE; GLboolean __GLEW_SGIX_texture_multi_buffer = GL_FALSE; +GLboolean __GLEW_SGIX_texture_phase = GL_FALSE; GLboolean __GLEW_SGIX_texture_range = GL_FALSE; GLboolean __GLEW_SGIX_texture_scale_bias = GL_FALSE; +GLboolean __GLEW_SGIX_texture_supersample = GL_FALSE; +GLboolean __GLEW_SGIX_vector_ops = GL_FALSE; +GLboolean __GLEW_SGIX_vertex_array_object = GL_FALSE; GLboolean __GLEW_SGIX_vertex_preclip = GL_FALSE; GLboolean __GLEW_SGIX_vertex_preclip_hint = GL_FALSE; GLboolean __GLEW_SGIX_ycrcb = GL_FALSE; +GLboolean __GLEW_SGIX_ycrcb_subsample = GL_FALSE; +GLboolean __GLEW_SGIX_ycrcba = GL_FALSE; GLboolean __GLEW_SGI_color_matrix = GL_FALSE; GLboolean __GLEW_SGI_color_table = GL_FALSE; +GLboolean __GLEW_SGI_complex = GL_FALSE; +GLboolean __GLEW_SGI_complex_type = GL_FALSE; +GLboolean __GLEW_SGI_fft = GL_FALSE; GLboolean __GLEW_SGI_texture_color_table = GL_FALSE; GLboolean __GLEW_SUNX_constant_data = GL_FALSE; GLboolean __GLEW_SUN_convolution_border_modes = GL_FALSE; @@ -3557,15 +4395,6008 @@ GLboolean __GLEW_SUN_read_video_pixels = GL_FALSE; GLboolean __GLEW_SUN_slice_accum = GL_FALSE; GLboolean __GLEW_SUN_triangle_list = GL_FALSE; GLboolean __GLEW_SUN_vertex = GL_FALSE; +GLboolean __GLEW_VIV_shader_binary = GL_FALSE; GLboolean __GLEW_WIN_phong_shading = GL_FALSE; +GLboolean __GLEW_WIN_scene_markerXXX = GL_FALSE; GLboolean __GLEW_WIN_specular_fog = GL_FALSE; GLboolean __GLEW_WIN_swap_hint = GL_FALSE; -#endif /* !GLEW_MX */ +static const char * _glewExtensionLookup[] = { +#ifdef GL_3DFX_multisample + "GL_3DFX_multisample", +#endif +#ifdef GL_3DFX_tbuffer + "GL_3DFX_tbuffer", +#endif +#ifdef GL_3DFX_texture_compression_FXT1 + "GL_3DFX_texture_compression_FXT1", +#endif +#ifdef GL_AMD_blend_minmax_factor + "GL_AMD_blend_minmax_factor", +#endif +#ifdef GL_AMD_compressed_3DC_texture + "GL_AMD_compressed_3DC_texture", +#endif +#ifdef GL_AMD_compressed_ATC_texture + "GL_AMD_compressed_ATC_texture", +#endif +#ifdef GL_AMD_conservative_depth + "GL_AMD_conservative_depth", +#endif +#ifdef GL_AMD_debug_output + "GL_AMD_debug_output", +#endif +#ifdef GL_AMD_depth_clamp_separate + "GL_AMD_depth_clamp_separate", +#endif +#ifdef GL_AMD_draw_buffers_blend + "GL_AMD_draw_buffers_blend", +#endif +#ifdef GL_AMD_framebuffer_multisample_advanced + "GL_AMD_framebuffer_multisample_advanced", +#endif +#ifdef GL_AMD_framebuffer_sample_positions + "GL_AMD_framebuffer_sample_positions", +#endif +#ifdef GL_AMD_gcn_shader + "GL_AMD_gcn_shader", +#endif +#ifdef GL_AMD_gpu_shader_half_float + "GL_AMD_gpu_shader_half_float", +#endif +#ifdef GL_AMD_gpu_shader_half_float_fetch + "GL_AMD_gpu_shader_half_float_fetch", +#endif +#ifdef GL_AMD_gpu_shader_int16 + "GL_AMD_gpu_shader_int16", +#endif +#ifdef GL_AMD_gpu_shader_int64 + "GL_AMD_gpu_shader_int64", +#endif +#ifdef GL_AMD_interleaved_elements + "GL_AMD_interleaved_elements", +#endif +#ifdef GL_AMD_multi_draw_indirect + "GL_AMD_multi_draw_indirect", +#endif +#ifdef GL_AMD_name_gen_delete + "GL_AMD_name_gen_delete", +#endif +#ifdef GL_AMD_occlusion_query_event + "GL_AMD_occlusion_query_event", +#endif +#ifdef GL_AMD_performance_monitor + "GL_AMD_performance_monitor", +#endif +#ifdef GL_AMD_pinned_memory + "GL_AMD_pinned_memory", +#endif +#ifdef GL_AMD_program_binary_Z400 + "GL_AMD_program_binary_Z400", +#endif +#ifdef GL_AMD_query_buffer_object + "GL_AMD_query_buffer_object", +#endif +#ifdef GL_AMD_sample_positions + "GL_AMD_sample_positions", +#endif +#ifdef GL_AMD_seamless_cubemap_per_texture + "GL_AMD_seamless_cubemap_per_texture", +#endif +#ifdef GL_AMD_shader_atomic_counter_ops + "GL_AMD_shader_atomic_counter_ops", +#endif +#ifdef GL_AMD_shader_ballot + "GL_AMD_shader_ballot", +#endif +#ifdef GL_AMD_shader_explicit_vertex_parameter + "GL_AMD_shader_explicit_vertex_parameter", +#endif +#ifdef GL_AMD_shader_image_load_store_lod + "GL_AMD_shader_image_load_store_lod", +#endif +#ifdef GL_AMD_shader_stencil_export + "GL_AMD_shader_stencil_export", +#endif +#ifdef GL_AMD_shader_stencil_value_export + "GL_AMD_shader_stencil_value_export", +#endif +#ifdef GL_AMD_shader_trinary_minmax + "GL_AMD_shader_trinary_minmax", +#endif +#ifdef GL_AMD_sparse_texture + "GL_AMD_sparse_texture", +#endif +#ifdef GL_AMD_stencil_operation_extended + "GL_AMD_stencil_operation_extended", +#endif +#ifdef GL_AMD_texture_gather_bias_lod + "GL_AMD_texture_gather_bias_lod", +#endif +#ifdef GL_AMD_texture_texture4 + "GL_AMD_texture_texture4", +#endif +#ifdef GL_AMD_transform_feedback3_lines_triangles + "GL_AMD_transform_feedback3_lines_triangles", +#endif +#ifdef GL_AMD_transform_feedback4 + "GL_AMD_transform_feedback4", +#endif +#ifdef GL_AMD_vertex_shader_layer + "GL_AMD_vertex_shader_layer", +#endif +#ifdef GL_AMD_vertex_shader_tessellator + "GL_AMD_vertex_shader_tessellator", +#endif +#ifdef GL_AMD_vertex_shader_viewport_index + "GL_AMD_vertex_shader_viewport_index", +#endif +#ifdef GL_ANDROID_extension_pack_es31a + "GL_ANDROID_extension_pack_es31a", +#endif +#ifdef GL_ANGLE_depth_texture + "GL_ANGLE_depth_texture", +#endif +#ifdef GL_ANGLE_framebuffer_blit + "GL_ANGLE_framebuffer_blit", +#endif +#ifdef GL_ANGLE_framebuffer_multisample + "GL_ANGLE_framebuffer_multisample", +#endif +#ifdef GL_ANGLE_instanced_arrays + "GL_ANGLE_instanced_arrays", +#endif +#ifdef GL_ANGLE_pack_reverse_row_order + "GL_ANGLE_pack_reverse_row_order", +#endif +#ifdef GL_ANGLE_program_binary + "GL_ANGLE_program_binary", +#endif +#ifdef GL_ANGLE_texture_compression_dxt1 + "GL_ANGLE_texture_compression_dxt1", +#endif +#ifdef GL_ANGLE_texture_compression_dxt3 + "GL_ANGLE_texture_compression_dxt3", +#endif +#ifdef GL_ANGLE_texture_compression_dxt5 + "GL_ANGLE_texture_compression_dxt5", +#endif +#ifdef GL_ANGLE_texture_usage + "GL_ANGLE_texture_usage", +#endif +#ifdef GL_ANGLE_timer_query + "GL_ANGLE_timer_query", +#endif +#ifdef GL_ANGLE_translated_shader_source + "GL_ANGLE_translated_shader_source", +#endif +#ifdef GL_APPLE_aux_depth_stencil + "GL_APPLE_aux_depth_stencil", +#endif +#ifdef GL_APPLE_client_storage + "GL_APPLE_client_storage", +#endif +#ifdef GL_APPLE_clip_distance + "GL_APPLE_clip_distance", +#endif +#ifdef GL_APPLE_color_buffer_packed_float + "GL_APPLE_color_buffer_packed_float", +#endif +#ifdef GL_APPLE_copy_texture_levels + "GL_APPLE_copy_texture_levels", +#endif +#ifdef GL_APPLE_element_array + "GL_APPLE_element_array", +#endif +#ifdef GL_APPLE_fence + "GL_APPLE_fence", +#endif +#ifdef GL_APPLE_float_pixels + "GL_APPLE_float_pixels", +#endif +#ifdef GL_APPLE_flush_buffer_range + "GL_APPLE_flush_buffer_range", +#endif +#ifdef GL_APPLE_framebuffer_multisample + "GL_APPLE_framebuffer_multisample", +#endif +#ifdef GL_APPLE_object_purgeable + "GL_APPLE_object_purgeable", +#endif +#ifdef GL_APPLE_pixel_buffer + "GL_APPLE_pixel_buffer", +#endif +#ifdef GL_APPLE_rgb_422 + "GL_APPLE_rgb_422", +#endif +#ifdef GL_APPLE_row_bytes + "GL_APPLE_row_bytes", +#endif +#ifdef GL_APPLE_specular_vector + "GL_APPLE_specular_vector", +#endif +#ifdef GL_APPLE_sync + "GL_APPLE_sync", +#endif +#ifdef GL_APPLE_texture_2D_limited_npot + "GL_APPLE_texture_2D_limited_npot", +#endif +#ifdef GL_APPLE_texture_format_BGRA8888 + "GL_APPLE_texture_format_BGRA8888", +#endif +#ifdef GL_APPLE_texture_max_level + "GL_APPLE_texture_max_level", +#endif +#ifdef GL_APPLE_texture_packed_float + "GL_APPLE_texture_packed_float", +#endif +#ifdef GL_APPLE_texture_range + "GL_APPLE_texture_range", +#endif +#ifdef GL_APPLE_transform_hint + "GL_APPLE_transform_hint", +#endif +#ifdef GL_APPLE_vertex_array_object + "GL_APPLE_vertex_array_object", +#endif +#ifdef GL_APPLE_vertex_array_range + "GL_APPLE_vertex_array_range", +#endif +#ifdef GL_APPLE_vertex_program_evaluators + "GL_APPLE_vertex_program_evaluators", +#endif +#ifdef GL_APPLE_ycbcr_422 + "GL_APPLE_ycbcr_422", +#endif +#ifdef GL_ARB_ES2_compatibility + "GL_ARB_ES2_compatibility", +#endif +#ifdef GL_ARB_ES3_1_compatibility + "GL_ARB_ES3_1_compatibility", +#endif +#ifdef GL_ARB_ES3_2_compatibility + "GL_ARB_ES3_2_compatibility", +#endif +#ifdef GL_ARB_ES3_compatibility + "GL_ARB_ES3_compatibility", +#endif +#ifdef GL_ARB_arrays_of_arrays + "GL_ARB_arrays_of_arrays", +#endif +#ifdef GL_ARB_base_instance + "GL_ARB_base_instance", +#endif +#ifdef GL_ARB_bindless_texture + "GL_ARB_bindless_texture", +#endif +#ifdef GL_ARB_blend_func_extended + "GL_ARB_blend_func_extended", +#endif +#ifdef GL_ARB_buffer_storage + "GL_ARB_buffer_storage", +#endif +#ifdef GL_ARB_cl_event + "GL_ARB_cl_event", +#endif +#ifdef GL_ARB_clear_buffer_object + "GL_ARB_clear_buffer_object", +#endif +#ifdef GL_ARB_clear_texture + "GL_ARB_clear_texture", +#endif +#ifdef GL_ARB_clip_control + "GL_ARB_clip_control", +#endif +#ifdef GL_ARB_color_buffer_float + "GL_ARB_color_buffer_float", +#endif +#ifdef GL_ARB_compatibility + "GL_ARB_compatibility", +#endif +#ifdef GL_ARB_compressed_texture_pixel_storage + "GL_ARB_compressed_texture_pixel_storage", +#endif +#ifdef GL_ARB_compute_shader + "GL_ARB_compute_shader", +#endif +#ifdef GL_ARB_compute_variable_group_size + "GL_ARB_compute_variable_group_size", +#endif +#ifdef GL_ARB_conditional_render_inverted + "GL_ARB_conditional_render_inverted", +#endif +#ifdef GL_ARB_conservative_depth + "GL_ARB_conservative_depth", +#endif +#ifdef GL_ARB_copy_buffer + "GL_ARB_copy_buffer", +#endif +#ifdef GL_ARB_copy_image + "GL_ARB_copy_image", +#endif +#ifdef GL_ARB_cull_distance + "GL_ARB_cull_distance", +#endif +#ifdef GL_ARB_debug_output + "GL_ARB_debug_output", +#endif +#ifdef GL_ARB_depth_buffer_float + "GL_ARB_depth_buffer_float", +#endif +#ifdef GL_ARB_depth_clamp + "GL_ARB_depth_clamp", +#endif +#ifdef GL_ARB_depth_texture + "GL_ARB_depth_texture", +#endif +#ifdef GL_ARB_derivative_control + "GL_ARB_derivative_control", +#endif +#ifdef GL_ARB_direct_state_access + "GL_ARB_direct_state_access", +#endif +#ifdef GL_ARB_draw_buffers + "GL_ARB_draw_buffers", +#endif +#ifdef GL_ARB_draw_buffers_blend + "GL_ARB_draw_buffers_blend", +#endif +#ifdef GL_ARB_draw_elements_base_vertex + "GL_ARB_draw_elements_base_vertex", +#endif +#ifdef GL_ARB_draw_indirect + "GL_ARB_draw_indirect", +#endif +#ifdef GL_ARB_draw_instanced + "GL_ARB_draw_instanced", +#endif +#ifdef GL_ARB_enhanced_layouts + "GL_ARB_enhanced_layouts", +#endif +#ifdef GL_ARB_explicit_attrib_location + "GL_ARB_explicit_attrib_location", +#endif +#ifdef GL_ARB_explicit_uniform_location + "GL_ARB_explicit_uniform_location", +#endif +#ifdef GL_ARB_fragment_coord_conventions + "GL_ARB_fragment_coord_conventions", +#endif +#ifdef GL_ARB_fragment_layer_viewport + "GL_ARB_fragment_layer_viewport", +#endif +#ifdef GL_ARB_fragment_program + "GL_ARB_fragment_program", +#endif +#ifdef GL_ARB_fragment_program_shadow + "GL_ARB_fragment_program_shadow", +#endif +#ifdef GL_ARB_fragment_shader + "GL_ARB_fragment_shader", +#endif +#ifdef GL_ARB_fragment_shader_interlock + "GL_ARB_fragment_shader_interlock", +#endif +#ifdef GL_ARB_framebuffer_no_attachments + "GL_ARB_framebuffer_no_attachments", +#endif +#ifdef GL_ARB_framebuffer_object + "GL_ARB_framebuffer_object", +#endif +#ifdef GL_ARB_framebuffer_sRGB + "GL_ARB_framebuffer_sRGB", +#endif +#ifdef GL_ARB_geometry_shader4 + "GL_ARB_geometry_shader4", +#endif +#ifdef GL_ARB_get_program_binary + "GL_ARB_get_program_binary", +#endif +#ifdef GL_ARB_get_texture_sub_image + "GL_ARB_get_texture_sub_image", +#endif +#ifdef GL_ARB_gl_spirv + "GL_ARB_gl_spirv", +#endif +#ifdef GL_ARB_gpu_shader5 + "GL_ARB_gpu_shader5", +#endif +#ifdef GL_ARB_gpu_shader_fp64 + "GL_ARB_gpu_shader_fp64", +#endif +#ifdef GL_ARB_gpu_shader_int64 + "GL_ARB_gpu_shader_int64", +#endif +#ifdef GL_ARB_half_float_pixel + "GL_ARB_half_float_pixel", +#endif +#ifdef GL_ARB_half_float_vertex + "GL_ARB_half_float_vertex", +#endif +#ifdef GL_ARB_imaging + "GL_ARB_imaging", +#endif +#ifdef GL_ARB_indirect_parameters + "GL_ARB_indirect_parameters", +#endif +#ifdef GL_ARB_instanced_arrays + "GL_ARB_instanced_arrays", +#endif +#ifdef GL_ARB_internalformat_query + "GL_ARB_internalformat_query", +#endif +#ifdef GL_ARB_internalformat_query2 + "GL_ARB_internalformat_query2", +#endif +#ifdef GL_ARB_invalidate_subdata + "GL_ARB_invalidate_subdata", +#endif +#ifdef GL_ARB_map_buffer_alignment + "GL_ARB_map_buffer_alignment", +#endif +#ifdef GL_ARB_map_buffer_range + "GL_ARB_map_buffer_range", +#endif +#ifdef GL_ARB_matrix_palette + "GL_ARB_matrix_palette", +#endif +#ifdef GL_ARB_multi_bind + "GL_ARB_multi_bind", +#endif +#ifdef GL_ARB_multi_draw_indirect + "GL_ARB_multi_draw_indirect", +#endif +#ifdef GL_ARB_multisample + "GL_ARB_multisample", +#endif +#ifdef GL_ARB_multitexture + "GL_ARB_multitexture", +#endif +#ifdef GL_ARB_occlusion_query + "GL_ARB_occlusion_query", +#endif +#ifdef GL_ARB_occlusion_query2 + "GL_ARB_occlusion_query2", +#endif +#ifdef GL_ARB_parallel_shader_compile + "GL_ARB_parallel_shader_compile", +#endif +#ifdef GL_ARB_pipeline_statistics_query + "GL_ARB_pipeline_statistics_query", +#endif +#ifdef GL_ARB_pixel_buffer_object + "GL_ARB_pixel_buffer_object", +#endif +#ifdef GL_ARB_point_parameters + "GL_ARB_point_parameters", +#endif +#ifdef GL_ARB_point_sprite + "GL_ARB_point_sprite", +#endif +#ifdef GL_ARB_polygon_offset_clamp + "GL_ARB_polygon_offset_clamp", +#endif +#ifdef GL_ARB_post_depth_coverage + "GL_ARB_post_depth_coverage", +#endif +#ifdef GL_ARB_program_interface_query + "GL_ARB_program_interface_query", +#endif +#ifdef GL_ARB_provoking_vertex + "GL_ARB_provoking_vertex", +#endif +#ifdef GL_ARB_query_buffer_object + "GL_ARB_query_buffer_object", +#endif +#ifdef GL_ARB_robust_buffer_access_behavior + "GL_ARB_robust_buffer_access_behavior", +#endif +#ifdef GL_ARB_robustness + "GL_ARB_robustness", +#endif +#ifdef GL_ARB_robustness_application_isolation + "GL_ARB_robustness_application_isolation", +#endif +#ifdef GL_ARB_robustness_share_group_isolation + "GL_ARB_robustness_share_group_isolation", +#endif +#ifdef GL_ARB_sample_locations + "GL_ARB_sample_locations", +#endif +#ifdef GL_ARB_sample_shading + "GL_ARB_sample_shading", +#endif +#ifdef GL_ARB_sampler_objects + "GL_ARB_sampler_objects", +#endif +#ifdef GL_ARB_seamless_cube_map + "GL_ARB_seamless_cube_map", +#endif +#ifdef GL_ARB_seamless_cubemap_per_texture + "GL_ARB_seamless_cubemap_per_texture", +#endif +#ifdef GL_ARB_separate_shader_objects + "GL_ARB_separate_shader_objects", +#endif +#ifdef GL_ARB_shader_atomic_counter_ops + "GL_ARB_shader_atomic_counter_ops", +#endif +#ifdef GL_ARB_shader_atomic_counters + "GL_ARB_shader_atomic_counters", +#endif +#ifdef GL_ARB_shader_ballot + "GL_ARB_shader_ballot", +#endif +#ifdef GL_ARB_shader_bit_encoding + "GL_ARB_shader_bit_encoding", +#endif +#ifdef GL_ARB_shader_clock + "GL_ARB_shader_clock", +#endif +#ifdef GL_ARB_shader_draw_parameters + "GL_ARB_shader_draw_parameters", +#endif +#ifdef GL_ARB_shader_group_vote + "GL_ARB_shader_group_vote", +#endif +#ifdef GL_ARB_shader_image_load_store + "GL_ARB_shader_image_load_store", +#endif +#ifdef GL_ARB_shader_image_size + "GL_ARB_shader_image_size", +#endif +#ifdef GL_ARB_shader_objects + "GL_ARB_shader_objects", +#endif +#ifdef GL_ARB_shader_precision + "GL_ARB_shader_precision", +#endif +#ifdef GL_ARB_shader_stencil_export + "GL_ARB_shader_stencil_export", +#endif +#ifdef GL_ARB_shader_storage_buffer_object + "GL_ARB_shader_storage_buffer_object", +#endif +#ifdef GL_ARB_shader_subroutine + "GL_ARB_shader_subroutine", +#endif +#ifdef GL_ARB_shader_texture_image_samples + "GL_ARB_shader_texture_image_samples", +#endif +#ifdef GL_ARB_shader_texture_lod + "GL_ARB_shader_texture_lod", +#endif +#ifdef GL_ARB_shader_viewport_layer_array + "GL_ARB_shader_viewport_layer_array", +#endif +#ifdef GL_ARB_shading_language_100 + "GL_ARB_shading_language_100", +#endif +#ifdef GL_ARB_shading_language_420pack + "GL_ARB_shading_language_420pack", +#endif +#ifdef GL_ARB_shading_language_include + "GL_ARB_shading_language_include", +#endif +#ifdef GL_ARB_shading_language_packing + "GL_ARB_shading_language_packing", +#endif +#ifdef GL_ARB_shadow + "GL_ARB_shadow", +#endif +#ifdef GL_ARB_shadow_ambient + "GL_ARB_shadow_ambient", +#endif +#ifdef GL_ARB_sparse_buffer + "GL_ARB_sparse_buffer", +#endif +#ifdef GL_ARB_sparse_texture + "GL_ARB_sparse_texture", +#endif +#ifdef GL_ARB_sparse_texture2 + "GL_ARB_sparse_texture2", +#endif +#ifdef GL_ARB_sparse_texture_clamp + "GL_ARB_sparse_texture_clamp", +#endif +#ifdef GL_ARB_spirv_extensions + "GL_ARB_spirv_extensions", +#endif +#ifdef GL_ARB_stencil_texturing + "GL_ARB_stencil_texturing", +#endif +#ifdef GL_ARB_sync + "GL_ARB_sync", +#endif +#ifdef GL_ARB_tessellation_shader + "GL_ARB_tessellation_shader", +#endif +#ifdef GL_ARB_texture_barrier + "GL_ARB_texture_barrier", +#endif +#ifdef GL_ARB_texture_border_clamp + "GL_ARB_texture_border_clamp", +#endif +#ifdef GL_ARB_texture_buffer_object + "GL_ARB_texture_buffer_object", +#endif +#ifdef GL_ARB_texture_buffer_object_rgb32 + "GL_ARB_texture_buffer_object_rgb32", +#endif +#ifdef GL_ARB_texture_buffer_range + "GL_ARB_texture_buffer_range", +#endif +#ifdef GL_ARB_texture_compression + "GL_ARB_texture_compression", +#endif +#ifdef GL_ARB_texture_compression_bptc + "GL_ARB_texture_compression_bptc", +#endif +#ifdef GL_ARB_texture_compression_rgtc + "GL_ARB_texture_compression_rgtc", +#endif +#ifdef GL_ARB_texture_cube_map + "GL_ARB_texture_cube_map", +#endif +#ifdef GL_ARB_texture_cube_map_array + "GL_ARB_texture_cube_map_array", +#endif +#ifdef GL_ARB_texture_env_add + "GL_ARB_texture_env_add", +#endif +#ifdef GL_ARB_texture_env_combine + "GL_ARB_texture_env_combine", +#endif +#ifdef GL_ARB_texture_env_crossbar + "GL_ARB_texture_env_crossbar", +#endif +#ifdef GL_ARB_texture_env_dot3 + "GL_ARB_texture_env_dot3", +#endif +#ifdef GL_ARB_texture_filter_anisotropic + "GL_ARB_texture_filter_anisotropic", +#endif +#ifdef GL_ARB_texture_filter_minmax + "GL_ARB_texture_filter_minmax", +#endif +#ifdef GL_ARB_texture_float + "GL_ARB_texture_float", +#endif +#ifdef GL_ARB_texture_gather + "GL_ARB_texture_gather", +#endif +#ifdef GL_ARB_texture_mirror_clamp_to_edge + "GL_ARB_texture_mirror_clamp_to_edge", +#endif +#ifdef GL_ARB_texture_mirrored_repeat + "GL_ARB_texture_mirrored_repeat", +#endif +#ifdef GL_ARB_texture_multisample + "GL_ARB_texture_multisample", +#endif +#ifdef GL_ARB_texture_non_power_of_two + "GL_ARB_texture_non_power_of_two", +#endif +#ifdef GL_ARB_texture_query_levels + "GL_ARB_texture_query_levels", +#endif +#ifdef GL_ARB_texture_query_lod + "GL_ARB_texture_query_lod", +#endif +#ifdef GL_ARB_texture_rectangle + "GL_ARB_texture_rectangle", +#endif +#ifdef GL_ARB_texture_rg + "GL_ARB_texture_rg", +#endif +#ifdef GL_ARB_texture_rgb10_a2ui + "GL_ARB_texture_rgb10_a2ui", +#endif +#ifdef GL_ARB_texture_stencil8 + "GL_ARB_texture_stencil8", +#endif +#ifdef GL_ARB_texture_storage + "GL_ARB_texture_storage", +#endif +#ifdef GL_ARB_texture_storage_multisample + "GL_ARB_texture_storage_multisample", +#endif +#ifdef GL_ARB_texture_swizzle + "GL_ARB_texture_swizzle", +#endif +#ifdef GL_ARB_texture_view + "GL_ARB_texture_view", +#endif +#ifdef GL_ARB_timer_query + "GL_ARB_timer_query", +#endif +#ifdef GL_ARB_transform_feedback2 + "GL_ARB_transform_feedback2", +#endif +#ifdef GL_ARB_transform_feedback3 + "GL_ARB_transform_feedback3", +#endif +#ifdef GL_ARB_transform_feedback_instanced + "GL_ARB_transform_feedback_instanced", +#endif +#ifdef GL_ARB_transform_feedback_overflow_query + "GL_ARB_transform_feedback_overflow_query", +#endif +#ifdef GL_ARB_transpose_matrix + "GL_ARB_transpose_matrix", +#endif +#ifdef GL_ARB_uniform_buffer_object + "GL_ARB_uniform_buffer_object", +#endif +#ifdef GL_ARB_vertex_array_bgra + "GL_ARB_vertex_array_bgra", +#endif +#ifdef GL_ARB_vertex_array_object + "GL_ARB_vertex_array_object", +#endif +#ifdef GL_ARB_vertex_attrib_64bit + "GL_ARB_vertex_attrib_64bit", +#endif +#ifdef GL_ARB_vertex_attrib_binding + "GL_ARB_vertex_attrib_binding", +#endif +#ifdef GL_ARB_vertex_blend + "GL_ARB_vertex_blend", +#endif +#ifdef GL_ARB_vertex_buffer_object + "GL_ARB_vertex_buffer_object", +#endif +#ifdef GL_ARB_vertex_program + "GL_ARB_vertex_program", +#endif +#ifdef GL_ARB_vertex_shader + "GL_ARB_vertex_shader", +#endif +#ifdef GL_ARB_vertex_type_10f_11f_11f_rev + "GL_ARB_vertex_type_10f_11f_11f_rev", +#endif +#ifdef GL_ARB_vertex_type_2_10_10_10_rev + "GL_ARB_vertex_type_2_10_10_10_rev", +#endif +#ifdef GL_ARB_viewport_array + "GL_ARB_viewport_array", +#endif +#ifdef GL_ARB_window_pos + "GL_ARB_window_pos", +#endif +#ifdef GL_ARM_mali_program_binary + "GL_ARM_mali_program_binary", +#endif +#ifdef GL_ARM_mali_shader_binary + "GL_ARM_mali_shader_binary", +#endif +#ifdef GL_ARM_rgba8 + "GL_ARM_rgba8", +#endif +#ifdef GL_ARM_shader_framebuffer_fetch + "GL_ARM_shader_framebuffer_fetch", +#endif +#ifdef GL_ARM_shader_framebuffer_fetch_depth_stencil + "GL_ARM_shader_framebuffer_fetch_depth_stencil", +#endif +#ifdef GL_ARM_texture_unnormalized_coordinates + "GL_ARM_texture_unnormalized_coordinates", +#endif +#ifdef GL_ATIX_point_sprites + "GL_ATIX_point_sprites", +#endif +#ifdef GL_ATIX_texture_env_combine3 + "GL_ATIX_texture_env_combine3", +#endif +#ifdef GL_ATIX_texture_env_route + "GL_ATIX_texture_env_route", +#endif +#ifdef GL_ATIX_vertex_shader_output_point_size + "GL_ATIX_vertex_shader_output_point_size", +#endif +#ifdef GL_ATI_draw_buffers + "GL_ATI_draw_buffers", +#endif +#ifdef GL_ATI_element_array + "GL_ATI_element_array", +#endif +#ifdef GL_ATI_envmap_bumpmap + "GL_ATI_envmap_bumpmap", +#endif +#ifdef GL_ATI_fragment_shader + "GL_ATI_fragment_shader", +#endif +#ifdef GL_ATI_map_object_buffer + "GL_ATI_map_object_buffer", +#endif +#ifdef GL_ATI_meminfo + "GL_ATI_meminfo", +#endif +#ifdef GL_ATI_pn_triangles + "GL_ATI_pn_triangles", +#endif +#ifdef GL_ATI_separate_stencil + "GL_ATI_separate_stencil", +#endif +#ifdef GL_ATI_shader_texture_lod + "GL_ATI_shader_texture_lod", +#endif +#ifdef GL_ATI_text_fragment_shader + "GL_ATI_text_fragment_shader", +#endif +#ifdef GL_ATI_texture_compression_3dc + "GL_ATI_texture_compression_3dc", +#endif +#ifdef GL_ATI_texture_env_combine3 + "GL_ATI_texture_env_combine3", +#endif +#ifdef GL_ATI_texture_float + "GL_ATI_texture_float", +#endif +#ifdef GL_ATI_texture_mirror_once + "GL_ATI_texture_mirror_once", +#endif +#ifdef GL_ATI_vertex_array_object + "GL_ATI_vertex_array_object", +#endif +#ifdef GL_ATI_vertex_attrib_array_object + "GL_ATI_vertex_attrib_array_object", +#endif +#ifdef GL_ATI_vertex_streams + "GL_ATI_vertex_streams", +#endif +#ifdef GL_DMP_program_binary + "GL_DMP_program_binary", +#endif +#ifdef GL_DMP_shader_binary + "GL_DMP_shader_binary", +#endif +#ifdef GL_EXT_422_pixels + "GL_EXT_422_pixels", +#endif +#ifdef GL_EXT_Cg_shader + "GL_EXT_Cg_shader", +#endif +#ifdef GL_EXT_EGL_image_array + "GL_EXT_EGL_image_array", +#endif +#ifdef GL_EXT_EGL_image_external_wrap_modes + "GL_EXT_EGL_image_external_wrap_modes", +#endif +#ifdef GL_EXT_EGL_image_storage + "GL_EXT_EGL_image_storage", +#endif +#ifdef GL_EXT_EGL_sync + "GL_EXT_EGL_sync", +#endif +#ifdef GL_EXT_YUV_target + "GL_EXT_YUV_target", +#endif +#ifdef GL_EXT_abgr + "GL_EXT_abgr", +#endif +#ifdef GL_EXT_base_instance + "GL_EXT_base_instance", +#endif +#ifdef GL_EXT_bgra + "GL_EXT_bgra", +#endif +#ifdef GL_EXT_bindable_uniform + "GL_EXT_bindable_uniform", +#endif +#ifdef GL_EXT_blend_color + "GL_EXT_blend_color", +#endif +#ifdef GL_EXT_blend_equation_separate + "GL_EXT_blend_equation_separate", +#endif +#ifdef GL_EXT_blend_func_extended + "GL_EXT_blend_func_extended", +#endif +#ifdef GL_EXT_blend_func_separate + "GL_EXT_blend_func_separate", +#endif +#ifdef GL_EXT_blend_logic_op + "GL_EXT_blend_logic_op", +#endif +#ifdef GL_EXT_blend_minmax + "GL_EXT_blend_minmax", +#endif +#ifdef GL_EXT_blend_subtract + "GL_EXT_blend_subtract", +#endif +#ifdef GL_EXT_buffer_storage + "GL_EXT_buffer_storage", +#endif +#ifdef GL_EXT_clear_texture + "GL_EXT_clear_texture", +#endif +#ifdef GL_EXT_clip_control + "GL_EXT_clip_control", +#endif +#ifdef GL_EXT_clip_cull_distance + "GL_EXT_clip_cull_distance", +#endif +#ifdef GL_EXT_clip_volume_hint + "GL_EXT_clip_volume_hint", +#endif +#ifdef GL_EXT_cmyka + "GL_EXT_cmyka", +#endif +#ifdef GL_EXT_color_buffer_float + "GL_EXT_color_buffer_float", +#endif +#ifdef GL_EXT_color_buffer_half_float + "GL_EXT_color_buffer_half_float", +#endif +#ifdef GL_EXT_color_subtable + "GL_EXT_color_subtable", +#endif +#ifdef GL_EXT_compiled_vertex_array + "GL_EXT_compiled_vertex_array", +#endif +#ifdef GL_EXT_compressed_ETC1_RGB8_sub_texture + "GL_EXT_compressed_ETC1_RGB8_sub_texture", +#endif +#ifdef GL_EXT_conservative_depth + "GL_EXT_conservative_depth", +#endif +#ifdef GL_EXT_convolution + "GL_EXT_convolution", +#endif +#ifdef GL_EXT_coordinate_frame + "GL_EXT_coordinate_frame", +#endif +#ifdef GL_EXT_copy_image + "GL_EXT_copy_image", +#endif +#ifdef GL_EXT_copy_texture + "GL_EXT_copy_texture", +#endif +#ifdef GL_EXT_cull_vertex + "GL_EXT_cull_vertex", +#endif +#ifdef GL_EXT_debug_label + "GL_EXT_debug_label", +#endif +#ifdef GL_EXT_debug_marker + "GL_EXT_debug_marker", +#endif +#ifdef GL_EXT_depth_bounds_test + "GL_EXT_depth_bounds_test", +#endif +#ifdef GL_EXT_depth_clamp + "GL_EXT_depth_clamp", +#endif +#ifdef GL_EXT_direct_state_access + "GL_EXT_direct_state_access", +#endif +#ifdef GL_EXT_discard_framebuffer + "GL_EXT_discard_framebuffer", +#endif +#ifdef GL_EXT_disjoint_timer_query + "GL_EXT_disjoint_timer_query", +#endif +#ifdef GL_EXT_draw_buffers + "GL_EXT_draw_buffers", +#endif +#ifdef GL_EXT_draw_buffers2 + "GL_EXT_draw_buffers2", +#endif +#ifdef GL_EXT_draw_buffers_indexed + "GL_EXT_draw_buffers_indexed", +#endif +#ifdef GL_EXT_draw_elements_base_vertex + "GL_EXT_draw_elements_base_vertex", +#endif +#ifdef GL_EXT_draw_instanced + "GL_EXT_draw_instanced", +#endif +#ifdef GL_EXT_draw_range_elements + "GL_EXT_draw_range_elements", +#endif +#ifdef GL_EXT_draw_transform_feedback + "GL_EXT_draw_transform_feedback", +#endif +#ifdef GL_EXT_external_buffer + "GL_EXT_external_buffer", +#endif +#ifdef GL_EXT_float_blend + "GL_EXT_float_blend", +#endif +#ifdef GL_EXT_fog_coord + "GL_EXT_fog_coord", +#endif +#ifdef GL_EXT_frag_depth + "GL_EXT_frag_depth", +#endif +#ifdef GL_EXT_fragment_lighting + "GL_EXT_fragment_lighting", +#endif +#ifdef GL_EXT_framebuffer_blit + "GL_EXT_framebuffer_blit", +#endif +#ifdef GL_EXT_framebuffer_multisample + "GL_EXT_framebuffer_multisample", +#endif +#ifdef GL_EXT_framebuffer_multisample_blit_scaled + "GL_EXT_framebuffer_multisample_blit_scaled", +#endif +#ifdef GL_EXT_framebuffer_object + "GL_EXT_framebuffer_object", +#endif +#ifdef GL_EXT_framebuffer_sRGB + "GL_EXT_framebuffer_sRGB", +#endif +#ifdef GL_EXT_geometry_point_size + "GL_EXT_geometry_point_size", +#endif +#ifdef GL_EXT_geometry_shader + "GL_EXT_geometry_shader", +#endif +#ifdef GL_EXT_geometry_shader4 + "GL_EXT_geometry_shader4", +#endif +#ifdef GL_EXT_gpu_program_parameters + "GL_EXT_gpu_program_parameters", +#endif +#ifdef GL_EXT_gpu_shader4 + "GL_EXT_gpu_shader4", +#endif +#ifdef GL_EXT_gpu_shader5 + "GL_EXT_gpu_shader5", +#endif +#ifdef GL_EXT_histogram + "GL_EXT_histogram", +#endif +#ifdef GL_EXT_index_array_formats + "GL_EXT_index_array_formats", +#endif +#ifdef GL_EXT_index_func + "GL_EXT_index_func", +#endif +#ifdef GL_EXT_index_material + "GL_EXT_index_material", +#endif +#ifdef GL_EXT_index_texture + "GL_EXT_index_texture", +#endif +#ifdef GL_EXT_instanced_arrays + "GL_EXT_instanced_arrays", +#endif +#ifdef GL_EXT_light_texture + "GL_EXT_light_texture", +#endif +#ifdef GL_EXT_map_buffer_range + "GL_EXT_map_buffer_range", +#endif +#ifdef GL_EXT_memory_object + "GL_EXT_memory_object", +#endif +#ifdef GL_EXT_memory_object_fd + "GL_EXT_memory_object_fd", +#endif +#ifdef GL_EXT_memory_object_win32 + "GL_EXT_memory_object_win32", +#endif +#ifdef GL_EXT_misc_attribute + "GL_EXT_misc_attribute", +#endif +#ifdef GL_EXT_multi_draw_arrays + "GL_EXT_multi_draw_arrays", +#endif +#ifdef GL_EXT_multi_draw_indirect + "GL_EXT_multi_draw_indirect", +#endif +#ifdef GL_EXT_multiple_textures + "GL_EXT_multiple_textures", +#endif +#ifdef GL_EXT_multisample + "GL_EXT_multisample", +#endif +#ifdef GL_EXT_multisample_compatibility + "GL_EXT_multisample_compatibility", +#endif +#ifdef GL_EXT_multisampled_render_to_texture + "GL_EXT_multisampled_render_to_texture", +#endif +#ifdef GL_EXT_multisampled_render_to_texture2 + "GL_EXT_multisampled_render_to_texture2", +#endif +#ifdef GL_EXT_multiview_draw_buffers + "GL_EXT_multiview_draw_buffers", +#endif +#ifdef GL_EXT_multiview_tessellation_geometry_shader + "GL_EXT_multiview_tessellation_geometry_shader", +#endif +#ifdef GL_EXT_multiview_texture_multisample + "GL_EXT_multiview_texture_multisample", +#endif +#ifdef GL_EXT_multiview_timer_query + "GL_EXT_multiview_timer_query", +#endif +#ifdef GL_EXT_occlusion_query_boolean + "GL_EXT_occlusion_query_boolean", +#endif +#ifdef GL_EXT_packed_depth_stencil + "GL_EXT_packed_depth_stencil", +#endif +#ifdef GL_EXT_packed_float + "GL_EXT_packed_float", +#endif +#ifdef GL_EXT_packed_pixels + "GL_EXT_packed_pixels", +#endif +#ifdef GL_EXT_paletted_texture + "GL_EXT_paletted_texture", +#endif +#ifdef GL_EXT_pixel_buffer_object + "GL_EXT_pixel_buffer_object", +#endif +#ifdef GL_EXT_pixel_transform + "GL_EXT_pixel_transform", +#endif +#ifdef GL_EXT_pixel_transform_color_table + "GL_EXT_pixel_transform_color_table", +#endif +#ifdef GL_EXT_point_parameters + "GL_EXT_point_parameters", +#endif +#ifdef GL_EXT_polygon_offset + "GL_EXT_polygon_offset", +#endif +#ifdef GL_EXT_polygon_offset_clamp + "GL_EXT_polygon_offset_clamp", +#endif +#ifdef GL_EXT_post_depth_coverage + "GL_EXT_post_depth_coverage", +#endif +#ifdef GL_EXT_primitive_bounding_box + "GL_EXT_primitive_bounding_box", +#endif +#ifdef GL_EXT_protected_textures + "GL_EXT_protected_textures", +#endif +#ifdef GL_EXT_provoking_vertex + "GL_EXT_provoking_vertex", +#endif +#ifdef GL_EXT_pvrtc_sRGB + "GL_EXT_pvrtc_sRGB", +#endif +#ifdef GL_EXT_raster_multisample + "GL_EXT_raster_multisample", +#endif +#ifdef GL_EXT_read_format_bgra + "GL_EXT_read_format_bgra", +#endif +#ifdef GL_EXT_render_snorm + "GL_EXT_render_snorm", +#endif +#ifdef GL_EXT_rescale_normal + "GL_EXT_rescale_normal", +#endif +#ifdef GL_EXT_robustness + "GL_EXT_robustness", +#endif +#ifdef GL_EXT_sRGB + "GL_EXT_sRGB", +#endif +#ifdef GL_EXT_sRGB_write_control + "GL_EXT_sRGB_write_control", +#endif +#ifdef GL_EXT_scene_marker + "GL_EXT_scene_marker", +#endif +#ifdef GL_EXT_secondary_color + "GL_EXT_secondary_color", +#endif +#ifdef GL_EXT_semaphore + "GL_EXT_semaphore", +#endif +#ifdef GL_EXT_semaphore_fd + "GL_EXT_semaphore_fd", +#endif +#ifdef GL_EXT_semaphore_win32 + "GL_EXT_semaphore_win32", +#endif +#ifdef GL_EXT_separate_shader_objects + "GL_EXT_separate_shader_objects", +#endif +#ifdef GL_EXT_separate_specular_color + "GL_EXT_separate_specular_color", +#endif +#ifdef GL_EXT_shader_framebuffer_fetch + "GL_EXT_shader_framebuffer_fetch", +#endif +#ifdef GL_EXT_shader_framebuffer_fetch_non_coherent + "GL_EXT_shader_framebuffer_fetch_non_coherent", +#endif +#ifdef GL_EXT_shader_group_vote + "GL_EXT_shader_group_vote", +#endif +#ifdef GL_EXT_shader_image_load_formatted + "GL_EXT_shader_image_load_formatted", +#endif +#ifdef GL_EXT_shader_image_load_store + "GL_EXT_shader_image_load_store", +#endif +#ifdef GL_EXT_shader_implicit_conversions + "GL_EXT_shader_implicit_conversions", +#endif +#ifdef GL_EXT_shader_integer_mix + "GL_EXT_shader_integer_mix", +#endif +#ifdef GL_EXT_shader_io_blocks + "GL_EXT_shader_io_blocks", +#endif +#ifdef GL_EXT_shader_non_constant_global_initializers + "GL_EXT_shader_non_constant_global_initializers", +#endif +#ifdef GL_EXT_shader_pixel_local_storage + "GL_EXT_shader_pixel_local_storage", +#endif +#ifdef GL_EXT_shader_pixel_local_storage2 + "GL_EXT_shader_pixel_local_storage2", +#endif +#ifdef GL_EXT_shader_texture_lod + "GL_EXT_shader_texture_lod", +#endif +#ifdef GL_EXT_shadow_funcs + "GL_EXT_shadow_funcs", +#endif +#ifdef GL_EXT_shadow_samplers + "GL_EXT_shadow_samplers", +#endif +#ifdef GL_EXT_shared_texture_palette + "GL_EXT_shared_texture_palette", +#endif +#ifdef GL_EXT_sparse_texture + "GL_EXT_sparse_texture", +#endif +#ifdef GL_EXT_sparse_texture2 + "GL_EXT_sparse_texture2", +#endif +#ifdef GL_EXT_static_vertex_array + "GL_EXT_static_vertex_array", +#endif +#ifdef GL_EXT_stencil_clear_tag + "GL_EXT_stencil_clear_tag", +#endif +#ifdef GL_EXT_stencil_two_side + "GL_EXT_stencil_two_side", +#endif +#ifdef GL_EXT_stencil_wrap + "GL_EXT_stencil_wrap", +#endif +#ifdef GL_EXT_subtexture + "GL_EXT_subtexture", +#endif +#ifdef GL_EXT_tessellation_point_size + "GL_EXT_tessellation_point_size", +#endif +#ifdef GL_EXT_tessellation_shader + "GL_EXT_tessellation_shader", +#endif +#ifdef GL_EXT_texture + "GL_EXT_texture", +#endif +#ifdef GL_EXT_texture3D + "GL_EXT_texture3D", +#endif +#ifdef GL_EXT_texture_array + "GL_EXT_texture_array", +#endif +#ifdef GL_EXT_texture_border_clamp + "GL_EXT_texture_border_clamp", +#endif +#ifdef GL_EXT_texture_buffer + "GL_EXT_texture_buffer", +#endif +#ifdef GL_EXT_texture_buffer_object + "GL_EXT_texture_buffer_object", +#endif +#ifdef GL_EXT_texture_compression_astc_decode_mode + "GL_EXT_texture_compression_astc_decode_mode", +#endif +#ifdef GL_EXT_texture_compression_astc_decode_mode_rgb9e5 + "GL_EXT_texture_compression_astc_decode_mode_rgb9e5", +#endif +#ifdef GL_EXT_texture_compression_bptc + "GL_EXT_texture_compression_bptc", +#endif +#ifdef GL_EXT_texture_compression_dxt1 + "GL_EXT_texture_compression_dxt1", +#endif +#ifdef GL_EXT_texture_compression_latc + "GL_EXT_texture_compression_latc", +#endif +#ifdef GL_EXT_texture_compression_rgtc + "GL_EXT_texture_compression_rgtc", +#endif +#ifdef GL_EXT_texture_compression_s3tc + "GL_EXT_texture_compression_s3tc", +#endif +#ifdef GL_EXT_texture_compression_s3tc_srgb + "GL_EXT_texture_compression_s3tc_srgb", +#endif +#ifdef GL_EXT_texture_cube_map + "GL_EXT_texture_cube_map", +#endif +#ifdef GL_EXT_texture_cube_map_array + "GL_EXT_texture_cube_map_array", +#endif +#ifdef GL_EXT_texture_edge_clamp + "GL_EXT_texture_edge_clamp", +#endif +#ifdef GL_EXT_texture_env + "GL_EXT_texture_env", +#endif +#ifdef GL_EXT_texture_env_add + "GL_EXT_texture_env_add", +#endif +#ifdef GL_EXT_texture_env_combine + "GL_EXT_texture_env_combine", +#endif +#ifdef GL_EXT_texture_env_dot3 + "GL_EXT_texture_env_dot3", +#endif +#ifdef GL_EXT_texture_filter_anisotropic + "GL_EXT_texture_filter_anisotropic", +#endif +#ifdef GL_EXT_texture_filter_minmax + "GL_EXT_texture_filter_minmax", +#endif +#ifdef GL_EXT_texture_format_BGRA8888 + "GL_EXT_texture_format_BGRA8888", +#endif +#ifdef GL_EXT_texture_format_sRGB_override + "GL_EXT_texture_format_sRGB_override", +#endif +#ifdef GL_EXT_texture_integer + "GL_EXT_texture_integer", +#endif +#ifdef GL_EXT_texture_lod_bias + "GL_EXT_texture_lod_bias", +#endif +#ifdef GL_EXT_texture_mirror_clamp + "GL_EXT_texture_mirror_clamp", +#endif +#ifdef GL_EXT_texture_mirror_clamp_to_edge + "GL_EXT_texture_mirror_clamp_to_edge", +#endif +#ifdef GL_EXT_texture_norm16 + "GL_EXT_texture_norm16", +#endif +#ifdef GL_EXT_texture_object + "GL_EXT_texture_object", +#endif +#ifdef GL_EXT_texture_perturb_normal + "GL_EXT_texture_perturb_normal", +#endif +#ifdef GL_EXT_texture_query_lod + "GL_EXT_texture_query_lod", +#endif +#ifdef GL_EXT_texture_rectangle + "GL_EXT_texture_rectangle", +#endif +#ifdef GL_EXT_texture_rg + "GL_EXT_texture_rg", +#endif +#ifdef GL_EXT_texture_sRGB + "GL_EXT_texture_sRGB", +#endif +#ifdef GL_EXT_texture_sRGB_R8 + "GL_EXT_texture_sRGB_R8", +#endif +#ifdef GL_EXT_texture_sRGB_RG8 + "GL_EXT_texture_sRGB_RG8", +#endif +#ifdef GL_EXT_texture_sRGB_decode + "GL_EXT_texture_sRGB_decode", +#endif +#ifdef GL_EXT_texture_shadow_lod + "GL_EXT_texture_shadow_lod", +#endif +#ifdef GL_EXT_texture_shared_exponent + "GL_EXT_texture_shared_exponent", +#endif +#ifdef GL_EXT_texture_snorm + "GL_EXT_texture_snorm", +#endif +#ifdef GL_EXT_texture_storage + "GL_EXT_texture_storage", +#endif +#ifdef GL_EXT_texture_swizzle + "GL_EXT_texture_swizzle", +#endif +#ifdef GL_EXT_texture_type_2_10_10_10_REV + "GL_EXT_texture_type_2_10_10_10_REV", +#endif +#ifdef GL_EXT_texture_view + "GL_EXT_texture_view", +#endif +#ifdef GL_EXT_timer_query + "GL_EXT_timer_query", +#endif +#ifdef GL_EXT_transform_feedback + "GL_EXT_transform_feedback", +#endif +#ifdef GL_EXT_unpack_subimage + "GL_EXT_unpack_subimage", +#endif +#ifdef GL_EXT_vertex_array + "GL_EXT_vertex_array", +#endif +#ifdef GL_EXT_vertex_array_bgra + "GL_EXT_vertex_array_bgra", +#endif +#ifdef GL_EXT_vertex_array_setXXX + "GL_EXT_vertex_array_setXXX", +#endif +#ifdef GL_EXT_vertex_attrib_64bit + "GL_EXT_vertex_attrib_64bit", +#endif +#ifdef GL_EXT_vertex_shader + "GL_EXT_vertex_shader", +#endif +#ifdef GL_EXT_vertex_weighting + "GL_EXT_vertex_weighting", +#endif +#ifdef GL_EXT_win32_keyed_mutex + "GL_EXT_win32_keyed_mutex", +#endif +#ifdef GL_EXT_window_rectangles + "GL_EXT_window_rectangles", +#endif +#ifdef GL_EXT_x11_sync_object + "GL_EXT_x11_sync_object", +#endif +#ifdef GL_FJ_shader_binary_GCCSO + "GL_FJ_shader_binary_GCCSO", +#endif +#ifdef GL_GREMEDY_frame_terminator + "GL_GREMEDY_frame_terminator", +#endif +#ifdef GL_GREMEDY_string_marker + "GL_GREMEDY_string_marker", +#endif +#ifdef GL_HP_convolution_border_modes + "GL_HP_convolution_border_modes", +#endif +#ifdef GL_HP_image_transform + "GL_HP_image_transform", +#endif +#ifdef GL_HP_occlusion_test + "GL_HP_occlusion_test", +#endif +#ifdef GL_HP_texture_lighting + "GL_HP_texture_lighting", +#endif +#ifdef GL_IBM_cull_vertex + "GL_IBM_cull_vertex", +#endif +#ifdef GL_IBM_multimode_draw_arrays + "GL_IBM_multimode_draw_arrays", +#endif +#ifdef GL_IBM_rasterpos_clip + "GL_IBM_rasterpos_clip", +#endif +#ifdef GL_IBM_static_data + "GL_IBM_static_data", +#endif +#ifdef GL_IBM_texture_mirrored_repeat + "GL_IBM_texture_mirrored_repeat", +#endif +#ifdef GL_IBM_vertex_array_lists + "GL_IBM_vertex_array_lists", +#endif +#ifdef GL_IMG_bindless_texture + "GL_IMG_bindless_texture", +#endif +#ifdef GL_IMG_framebuffer_downsample + "GL_IMG_framebuffer_downsample", +#endif +#ifdef GL_IMG_multisampled_render_to_texture + "GL_IMG_multisampled_render_to_texture", +#endif +#ifdef GL_IMG_program_binary + "GL_IMG_program_binary", +#endif +#ifdef GL_IMG_read_format + "GL_IMG_read_format", +#endif +#ifdef GL_IMG_shader_binary + "GL_IMG_shader_binary", +#endif +#ifdef GL_IMG_texture_compression_pvrtc + "GL_IMG_texture_compression_pvrtc", +#endif +#ifdef GL_IMG_texture_compression_pvrtc2 + "GL_IMG_texture_compression_pvrtc2", +#endif +#ifdef GL_IMG_texture_env_enhanced_fixed_function + "GL_IMG_texture_env_enhanced_fixed_function", +#endif +#ifdef GL_IMG_texture_filter_cubic + "GL_IMG_texture_filter_cubic", +#endif +#ifdef GL_INGR_color_clamp + "GL_INGR_color_clamp", +#endif +#ifdef GL_INGR_interlace_read + "GL_INGR_interlace_read", +#endif +#ifdef GL_INTEL_blackhole_render + "GL_INTEL_blackhole_render", +#endif +#ifdef GL_INTEL_conservative_rasterization + "GL_INTEL_conservative_rasterization", +#endif +#ifdef GL_INTEL_fragment_shader_ordering + "GL_INTEL_fragment_shader_ordering", +#endif +#ifdef GL_INTEL_framebuffer_CMAA + "GL_INTEL_framebuffer_CMAA", +#endif +#ifdef GL_INTEL_map_texture + "GL_INTEL_map_texture", +#endif +#ifdef GL_INTEL_parallel_arrays + "GL_INTEL_parallel_arrays", +#endif +#ifdef GL_INTEL_performance_query + "GL_INTEL_performance_query", +#endif +#ifdef GL_INTEL_shader_integer_functions2 + "GL_INTEL_shader_integer_functions2", +#endif +#ifdef GL_INTEL_texture_scissor + "GL_INTEL_texture_scissor", +#endif +#ifdef GL_KHR_blend_equation_advanced + "GL_KHR_blend_equation_advanced", +#endif +#ifdef GL_KHR_blend_equation_advanced_coherent + "GL_KHR_blend_equation_advanced_coherent", +#endif +#ifdef GL_KHR_context_flush_control + "GL_KHR_context_flush_control", +#endif +#ifdef GL_KHR_debug + "GL_KHR_debug", +#endif +#ifdef GL_KHR_no_error + "GL_KHR_no_error", +#endif +#ifdef GL_KHR_parallel_shader_compile + "GL_KHR_parallel_shader_compile", +#endif +#ifdef GL_KHR_robust_buffer_access_behavior + "GL_KHR_robust_buffer_access_behavior", +#endif +#ifdef GL_KHR_robustness + "GL_KHR_robustness", +#endif +#ifdef GL_KHR_shader_subgroup + "GL_KHR_shader_subgroup", +#endif +#ifdef GL_KHR_texture_compression_astc_hdr + "GL_KHR_texture_compression_astc_hdr", +#endif +#ifdef GL_KHR_texture_compression_astc_ldr + "GL_KHR_texture_compression_astc_ldr", +#endif +#ifdef GL_KHR_texture_compression_astc_sliced_3d + "GL_KHR_texture_compression_astc_sliced_3d", +#endif +#ifdef GL_KTX_buffer_region + "GL_KTX_buffer_region", +#endif +#ifdef GL_MESAX_texture_stack + "GL_MESAX_texture_stack", +#endif +#ifdef GL_MESA_framebuffer_flip_y + "GL_MESA_framebuffer_flip_y", +#endif +#ifdef GL_MESA_pack_invert + "GL_MESA_pack_invert", +#endif +#ifdef GL_MESA_program_binary_formats + "GL_MESA_program_binary_formats", +#endif +#ifdef GL_MESA_resize_buffers + "GL_MESA_resize_buffers", +#endif +#ifdef GL_MESA_shader_integer_functions + "GL_MESA_shader_integer_functions", +#endif +#ifdef GL_MESA_tile_raster_order + "GL_MESA_tile_raster_order", +#endif +#ifdef GL_MESA_window_pos + "GL_MESA_window_pos", +#endif +#ifdef GL_MESA_ycbcr_texture + "GL_MESA_ycbcr_texture", +#endif +#ifdef GL_NVX_blend_equation_advanced_multi_draw_buffers + "GL_NVX_blend_equation_advanced_multi_draw_buffers", +#endif +#ifdef GL_NVX_conditional_render + "GL_NVX_conditional_render", +#endif +#ifdef GL_NVX_gpu_memory_info + "GL_NVX_gpu_memory_info", +#endif +#ifdef GL_NVX_gpu_multicast2 + "GL_NVX_gpu_multicast2", +#endif +#ifdef GL_NVX_linked_gpu_multicast + "GL_NVX_linked_gpu_multicast", +#endif +#ifdef GL_NVX_progress_fence + "GL_NVX_progress_fence", +#endif +#ifdef GL_NV_3dvision_settings + "GL_NV_3dvision_settings", +#endif +#ifdef GL_NV_EGL_stream_consumer_external + "GL_NV_EGL_stream_consumer_external", +#endif +#ifdef GL_NV_alpha_to_coverage_dither_control + "GL_NV_alpha_to_coverage_dither_control", +#endif +#ifdef GL_NV_bgr + "GL_NV_bgr", +#endif +#ifdef GL_NV_bindless_multi_draw_indirect + "GL_NV_bindless_multi_draw_indirect", +#endif +#ifdef GL_NV_bindless_multi_draw_indirect_count + "GL_NV_bindless_multi_draw_indirect_count", +#endif +#ifdef GL_NV_bindless_texture + "GL_NV_bindless_texture", +#endif +#ifdef GL_NV_blend_equation_advanced + "GL_NV_blend_equation_advanced", +#endif +#ifdef GL_NV_blend_equation_advanced_coherent + "GL_NV_blend_equation_advanced_coherent", +#endif +#ifdef GL_NV_blend_minmax_factor + "GL_NV_blend_minmax_factor", +#endif +#ifdef GL_NV_blend_square + "GL_NV_blend_square", +#endif +#ifdef GL_NV_clip_space_w_scaling + "GL_NV_clip_space_w_scaling", +#endif +#ifdef GL_NV_command_list + "GL_NV_command_list", +#endif +#ifdef GL_NV_compute_program5 + "GL_NV_compute_program5", +#endif +#ifdef GL_NV_compute_shader_derivatives + "GL_NV_compute_shader_derivatives", +#endif +#ifdef GL_NV_conditional_render + "GL_NV_conditional_render", +#endif +#ifdef GL_NV_conservative_raster + "GL_NV_conservative_raster", +#endif +#ifdef GL_NV_conservative_raster_dilate + "GL_NV_conservative_raster_dilate", +#endif +#ifdef GL_NV_conservative_raster_pre_snap + "GL_NV_conservative_raster_pre_snap", +#endif +#ifdef GL_NV_conservative_raster_pre_snap_triangles + "GL_NV_conservative_raster_pre_snap_triangles", +#endif +#ifdef GL_NV_conservative_raster_underestimation + "GL_NV_conservative_raster_underestimation", +#endif +#ifdef GL_NV_copy_buffer + "GL_NV_copy_buffer", +#endif +#ifdef GL_NV_copy_depth_to_color + "GL_NV_copy_depth_to_color", +#endif +#ifdef GL_NV_copy_image + "GL_NV_copy_image", +#endif +#ifdef GL_NV_deep_texture3D + "GL_NV_deep_texture3D", +#endif +#ifdef GL_NV_depth_buffer_float + "GL_NV_depth_buffer_float", +#endif +#ifdef GL_NV_depth_clamp + "GL_NV_depth_clamp", +#endif +#ifdef GL_NV_depth_nonlinear + "GL_NV_depth_nonlinear", +#endif +#ifdef GL_NV_depth_range_unclamped + "GL_NV_depth_range_unclamped", +#endif +#ifdef GL_NV_draw_buffers + "GL_NV_draw_buffers", +#endif +#ifdef GL_NV_draw_instanced + "GL_NV_draw_instanced", +#endif +#ifdef GL_NV_draw_texture + "GL_NV_draw_texture", +#endif +#ifdef GL_NV_draw_vulkan_image + "GL_NV_draw_vulkan_image", +#endif +#ifdef GL_NV_evaluators + "GL_NV_evaluators", +#endif +#ifdef GL_NV_explicit_attrib_location + "GL_NV_explicit_attrib_location", +#endif +#ifdef GL_NV_explicit_multisample + "GL_NV_explicit_multisample", +#endif +#ifdef GL_NV_fbo_color_attachments + "GL_NV_fbo_color_attachments", +#endif +#ifdef GL_NV_fence + "GL_NV_fence", +#endif +#ifdef GL_NV_fill_rectangle + "GL_NV_fill_rectangle", +#endif +#ifdef GL_NV_float_buffer + "GL_NV_float_buffer", +#endif +#ifdef GL_NV_fog_distance + "GL_NV_fog_distance", +#endif +#ifdef GL_NV_fragment_coverage_to_color + "GL_NV_fragment_coverage_to_color", +#endif +#ifdef GL_NV_fragment_program + "GL_NV_fragment_program", +#endif +#ifdef GL_NV_fragment_program2 + "GL_NV_fragment_program2", +#endif +#ifdef GL_NV_fragment_program4 + "GL_NV_fragment_program4", +#endif +#ifdef GL_NV_fragment_program_option + "GL_NV_fragment_program_option", +#endif +#ifdef GL_NV_fragment_shader_barycentric + "GL_NV_fragment_shader_barycentric", +#endif +#ifdef GL_NV_fragment_shader_interlock + "GL_NV_fragment_shader_interlock", +#endif +#ifdef GL_NV_framebuffer_blit + "GL_NV_framebuffer_blit", +#endif +#ifdef GL_NV_framebuffer_mixed_samples + "GL_NV_framebuffer_mixed_samples", +#endif +#ifdef GL_NV_framebuffer_multisample + "GL_NV_framebuffer_multisample", +#endif +#ifdef GL_NV_framebuffer_multisample_coverage + "GL_NV_framebuffer_multisample_coverage", +#endif +#ifdef GL_NV_generate_mipmap_sRGB + "GL_NV_generate_mipmap_sRGB", +#endif +#ifdef GL_NV_geometry_program4 + "GL_NV_geometry_program4", +#endif +#ifdef GL_NV_geometry_shader4 + "GL_NV_geometry_shader4", +#endif +#ifdef GL_NV_geometry_shader_passthrough + "GL_NV_geometry_shader_passthrough", +#endif +#ifdef GL_NV_gpu_multicast + "GL_NV_gpu_multicast", +#endif +#ifdef GL_NV_gpu_program4 + "GL_NV_gpu_program4", +#endif +#ifdef GL_NV_gpu_program5 + "GL_NV_gpu_program5", +#endif +#ifdef GL_NV_gpu_program5_mem_extended + "GL_NV_gpu_program5_mem_extended", +#endif +#ifdef GL_NV_gpu_program_fp64 + "GL_NV_gpu_program_fp64", +#endif +#ifdef GL_NV_gpu_shader5 + "GL_NV_gpu_shader5", +#endif +#ifdef GL_NV_half_float + "GL_NV_half_float", +#endif +#ifdef GL_NV_image_formats + "GL_NV_image_formats", +#endif +#ifdef GL_NV_instanced_arrays + "GL_NV_instanced_arrays", +#endif +#ifdef GL_NV_internalformat_sample_query + "GL_NV_internalformat_sample_query", +#endif +#ifdef GL_NV_light_max_exponent + "GL_NV_light_max_exponent", +#endif +#ifdef GL_NV_memory_attachment + "GL_NV_memory_attachment", +#endif +#ifdef GL_NV_mesh_shader + "GL_NV_mesh_shader", +#endif +#ifdef GL_NV_multisample_coverage + "GL_NV_multisample_coverage", +#endif +#ifdef GL_NV_multisample_filter_hint + "GL_NV_multisample_filter_hint", +#endif +#ifdef GL_NV_non_square_matrices + "GL_NV_non_square_matrices", +#endif +#ifdef GL_NV_occlusion_query + "GL_NV_occlusion_query", +#endif +#ifdef GL_NV_pack_subimage + "GL_NV_pack_subimage", +#endif +#ifdef GL_NV_packed_depth_stencil + "GL_NV_packed_depth_stencil", +#endif +#ifdef GL_NV_packed_float + "GL_NV_packed_float", +#endif +#ifdef GL_NV_packed_float_linear + "GL_NV_packed_float_linear", +#endif +#ifdef GL_NV_parameter_buffer_object + "GL_NV_parameter_buffer_object", +#endif +#ifdef GL_NV_parameter_buffer_object2 + "GL_NV_parameter_buffer_object2", +#endif +#ifdef GL_NV_path_rendering + "GL_NV_path_rendering", +#endif +#ifdef GL_NV_path_rendering_shared_edge + "GL_NV_path_rendering_shared_edge", +#endif +#ifdef GL_NV_pixel_buffer_object + "GL_NV_pixel_buffer_object", +#endif +#ifdef GL_NV_pixel_data_range + "GL_NV_pixel_data_range", +#endif +#ifdef GL_NV_platform_binary + "GL_NV_platform_binary", +#endif +#ifdef GL_NV_point_sprite + "GL_NV_point_sprite", +#endif +#ifdef GL_NV_polygon_mode + "GL_NV_polygon_mode", +#endif +#ifdef GL_NV_present_video + "GL_NV_present_video", +#endif +#ifdef GL_NV_primitive_restart + "GL_NV_primitive_restart", +#endif +#ifdef GL_NV_query_resource_tag + "GL_NV_query_resource_tag", +#endif +#ifdef GL_NV_read_buffer + "GL_NV_read_buffer", +#endif +#ifdef GL_NV_read_buffer_front + "GL_NV_read_buffer_front", +#endif +#ifdef GL_NV_read_depth + "GL_NV_read_depth", +#endif +#ifdef GL_NV_read_depth_stencil + "GL_NV_read_depth_stencil", +#endif +#ifdef GL_NV_read_stencil + "GL_NV_read_stencil", +#endif +#ifdef GL_NV_register_combiners + "GL_NV_register_combiners", +#endif +#ifdef GL_NV_register_combiners2 + "GL_NV_register_combiners2", +#endif +#ifdef GL_NV_representative_fragment_test + "GL_NV_representative_fragment_test", +#endif +#ifdef GL_NV_robustness_video_memory_purge + "GL_NV_robustness_video_memory_purge", +#endif +#ifdef GL_NV_sRGB_formats + "GL_NV_sRGB_formats", +#endif +#ifdef GL_NV_sample_locations + "GL_NV_sample_locations", +#endif +#ifdef GL_NV_sample_mask_override_coverage + "GL_NV_sample_mask_override_coverage", +#endif +#ifdef GL_NV_scissor_exclusive + "GL_NV_scissor_exclusive", +#endif +#ifdef GL_NV_shader_atomic_counters + "GL_NV_shader_atomic_counters", +#endif +#ifdef GL_NV_shader_atomic_float + "GL_NV_shader_atomic_float", +#endif +#ifdef GL_NV_shader_atomic_float64 + "GL_NV_shader_atomic_float64", +#endif +#ifdef GL_NV_shader_atomic_fp16_vector + "GL_NV_shader_atomic_fp16_vector", +#endif +#ifdef GL_NV_shader_atomic_int64 + "GL_NV_shader_atomic_int64", +#endif +#ifdef GL_NV_shader_buffer_load + "GL_NV_shader_buffer_load", +#endif +#ifdef GL_NV_shader_noperspective_interpolation + "GL_NV_shader_noperspective_interpolation", +#endif +#ifdef GL_NV_shader_storage_buffer_object + "GL_NV_shader_storage_buffer_object", +#endif +#ifdef GL_NV_shader_subgroup_partitioned + "GL_NV_shader_subgroup_partitioned", +#endif +#ifdef GL_NV_shader_texture_footprint + "GL_NV_shader_texture_footprint", +#endif +#ifdef GL_NV_shader_thread_group + "GL_NV_shader_thread_group", +#endif +#ifdef GL_NV_shader_thread_shuffle + "GL_NV_shader_thread_shuffle", +#endif +#ifdef GL_NV_shading_rate_image + "GL_NV_shading_rate_image", +#endif +#ifdef GL_NV_shadow_samplers_array + "GL_NV_shadow_samplers_array", +#endif +#ifdef GL_NV_shadow_samplers_cube + "GL_NV_shadow_samplers_cube", +#endif +#ifdef GL_NV_stereo_view_rendering + "GL_NV_stereo_view_rendering", +#endif +#ifdef GL_NV_tessellation_program5 + "GL_NV_tessellation_program5", +#endif +#ifdef GL_NV_texgen_emboss + "GL_NV_texgen_emboss", +#endif +#ifdef GL_NV_texgen_reflection + "GL_NV_texgen_reflection", +#endif +#ifdef GL_NV_texture_array + "GL_NV_texture_array", +#endif +#ifdef GL_NV_texture_barrier + "GL_NV_texture_barrier", +#endif +#ifdef GL_NV_texture_border_clamp + "GL_NV_texture_border_clamp", +#endif +#ifdef GL_NV_texture_compression_latc + "GL_NV_texture_compression_latc", +#endif +#ifdef GL_NV_texture_compression_s3tc + "GL_NV_texture_compression_s3tc", +#endif +#ifdef GL_NV_texture_compression_s3tc_update + "GL_NV_texture_compression_s3tc_update", +#endif +#ifdef GL_NV_texture_compression_vtc + "GL_NV_texture_compression_vtc", +#endif +#ifdef GL_NV_texture_env_combine4 + "GL_NV_texture_env_combine4", +#endif +#ifdef GL_NV_texture_expand_normal + "GL_NV_texture_expand_normal", +#endif +#ifdef GL_NV_texture_multisample + "GL_NV_texture_multisample", +#endif +#ifdef GL_NV_texture_npot_2D_mipmap + "GL_NV_texture_npot_2D_mipmap", +#endif +#ifdef GL_NV_texture_rectangle + "GL_NV_texture_rectangle", +#endif +#ifdef GL_NV_texture_rectangle_compressed + "GL_NV_texture_rectangle_compressed", +#endif +#ifdef GL_NV_texture_shader + "GL_NV_texture_shader", +#endif +#ifdef GL_NV_texture_shader2 + "GL_NV_texture_shader2", +#endif +#ifdef GL_NV_texture_shader3 + "GL_NV_texture_shader3", +#endif +#ifdef GL_NV_transform_feedback + "GL_NV_transform_feedback", +#endif +#ifdef GL_NV_transform_feedback2 + "GL_NV_transform_feedback2", +#endif +#ifdef GL_NV_uniform_buffer_unified_memory + "GL_NV_uniform_buffer_unified_memory", +#endif +#ifdef GL_NV_vdpau_interop + "GL_NV_vdpau_interop", +#endif +#ifdef GL_NV_vdpau_interop2 + "GL_NV_vdpau_interop2", +#endif +#ifdef GL_NV_vertex_array_range + "GL_NV_vertex_array_range", +#endif +#ifdef GL_NV_vertex_array_range2 + "GL_NV_vertex_array_range2", +#endif +#ifdef GL_NV_vertex_attrib_integer_64bit + "GL_NV_vertex_attrib_integer_64bit", +#endif +#ifdef GL_NV_vertex_buffer_unified_memory + "GL_NV_vertex_buffer_unified_memory", +#endif +#ifdef GL_NV_vertex_program + "GL_NV_vertex_program", +#endif +#ifdef GL_NV_vertex_program1_1 + "GL_NV_vertex_program1_1", +#endif +#ifdef GL_NV_vertex_program2 + "GL_NV_vertex_program2", +#endif +#ifdef GL_NV_vertex_program2_option + "GL_NV_vertex_program2_option", +#endif +#ifdef GL_NV_vertex_program3 + "GL_NV_vertex_program3", +#endif +#ifdef GL_NV_vertex_program4 + "GL_NV_vertex_program4", +#endif +#ifdef GL_NV_video_capture + "GL_NV_video_capture", +#endif +#ifdef GL_NV_viewport_array + "GL_NV_viewport_array", +#endif +#ifdef GL_NV_viewport_array2 + "GL_NV_viewport_array2", +#endif +#ifdef GL_NV_viewport_swizzle + "GL_NV_viewport_swizzle", +#endif +#ifdef GL_OES_EGL_image + "GL_OES_EGL_image", +#endif +#ifdef GL_OES_EGL_image_external + "GL_OES_EGL_image_external", +#endif +#ifdef GL_OES_EGL_image_external_essl3 + "GL_OES_EGL_image_external_essl3", +#endif +#ifdef GL_OES_blend_equation_separate + "GL_OES_blend_equation_separate", +#endif +#ifdef GL_OES_blend_func_separate + "GL_OES_blend_func_separate", +#endif +#ifdef GL_OES_blend_subtract + "GL_OES_blend_subtract", +#endif +#ifdef GL_OES_byte_coordinates + "GL_OES_byte_coordinates", +#endif +#ifdef GL_OES_compressed_ETC1_RGB8_texture + "GL_OES_compressed_ETC1_RGB8_texture", +#endif +#ifdef GL_OES_compressed_paletted_texture + "GL_OES_compressed_paletted_texture", +#endif +#ifdef GL_OES_copy_image + "GL_OES_copy_image", +#endif +#ifdef GL_OES_depth24 + "GL_OES_depth24", +#endif +#ifdef GL_OES_depth32 + "GL_OES_depth32", +#endif +#ifdef GL_OES_depth_texture + "GL_OES_depth_texture", +#endif +#ifdef GL_OES_depth_texture_cube_map + "GL_OES_depth_texture_cube_map", +#endif +#ifdef GL_OES_draw_buffers_indexed + "GL_OES_draw_buffers_indexed", +#endif +#ifdef GL_OES_draw_texture + "GL_OES_draw_texture", +#endif +#ifdef GL_OES_element_index_uint + "GL_OES_element_index_uint", +#endif +#ifdef GL_OES_extended_matrix_palette + "GL_OES_extended_matrix_palette", +#endif +#ifdef GL_OES_fbo_render_mipmap + "GL_OES_fbo_render_mipmap", +#endif +#ifdef GL_OES_fragment_precision_high + "GL_OES_fragment_precision_high", +#endif +#ifdef GL_OES_framebuffer_object + "GL_OES_framebuffer_object", +#endif +#ifdef GL_OES_geometry_point_size + "GL_OES_geometry_point_size", +#endif +#ifdef GL_OES_geometry_shader + "GL_OES_geometry_shader", +#endif +#ifdef GL_OES_get_program_binary + "GL_OES_get_program_binary", +#endif +#ifdef GL_OES_gpu_shader5 + "GL_OES_gpu_shader5", +#endif +#ifdef GL_OES_mapbuffer + "GL_OES_mapbuffer", +#endif +#ifdef GL_OES_matrix_get + "GL_OES_matrix_get", +#endif +#ifdef GL_OES_matrix_palette + "GL_OES_matrix_palette", +#endif +#ifdef GL_OES_packed_depth_stencil + "GL_OES_packed_depth_stencil", +#endif +#ifdef GL_OES_point_size_array + "GL_OES_point_size_array", +#endif +#ifdef GL_OES_point_sprite + "GL_OES_point_sprite", +#endif +#ifdef GL_OES_read_format + "GL_OES_read_format", +#endif +#ifdef GL_OES_required_internalformat + "GL_OES_required_internalformat", +#endif +#ifdef GL_OES_rgb8_rgba8 + "GL_OES_rgb8_rgba8", +#endif +#ifdef GL_OES_sample_shading + "GL_OES_sample_shading", +#endif +#ifdef GL_OES_sample_variables + "GL_OES_sample_variables", +#endif +#ifdef GL_OES_shader_image_atomic + "GL_OES_shader_image_atomic", +#endif +#ifdef GL_OES_shader_io_blocks + "GL_OES_shader_io_blocks", +#endif +#ifdef GL_OES_shader_multisample_interpolation + "GL_OES_shader_multisample_interpolation", +#endif +#ifdef GL_OES_single_precision + "GL_OES_single_precision", +#endif +#ifdef GL_OES_standard_derivatives + "GL_OES_standard_derivatives", +#endif +#ifdef GL_OES_stencil1 + "GL_OES_stencil1", +#endif +#ifdef GL_OES_stencil4 + "GL_OES_stencil4", +#endif +#ifdef GL_OES_stencil8 + "GL_OES_stencil8", +#endif +#ifdef GL_OES_surfaceless_context + "GL_OES_surfaceless_context", +#endif +#ifdef GL_OES_tessellation_point_size + "GL_OES_tessellation_point_size", +#endif +#ifdef GL_OES_tessellation_shader + "GL_OES_tessellation_shader", +#endif +#ifdef GL_OES_texture_3D + "GL_OES_texture_3D", +#endif +#ifdef GL_OES_texture_border_clamp + "GL_OES_texture_border_clamp", +#endif +#ifdef GL_OES_texture_buffer + "GL_OES_texture_buffer", +#endif +#ifdef GL_OES_texture_compression_astc + "GL_OES_texture_compression_astc", +#endif +#ifdef GL_OES_texture_cube_map + "GL_OES_texture_cube_map", +#endif +#ifdef GL_OES_texture_cube_map_array + "GL_OES_texture_cube_map_array", +#endif +#ifdef GL_OES_texture_env_crossbar + "GL_OES_texture_env_crossbar", +#endif +#ifdef GL_OES_texture_mirrored_repeat + "GL_OES_texture_mirrored_repeat", +#endif +#ifdef GL_OES_texture_npot + "GL_OES_texture_npot", +#endif +#ifdef GL_OES_texture_stencil8 + "GL_OES_texture_stencil8", +#endif +#ifdef GL_OES_texture_storage_multisample_2d_array + "GL_OES_texture_storage_multisample_2d_array", +#endif +#ifdef GL_OES_texture_view + "GL_OES_texture_view", +#endif +#ifdef GL_OES_vertex_array_object + "GL_OES_vertex_array_object", +#endif +#ifdef GL_OES_vertex_half_float + "GL_OES_vertex_half_float", +#endif +#ifdef GL_OES_vertex_type_10_10_10_2 + "GL_OES_vertex_type_10_10_10_2", +#endif +#ifdef GL_OML_interlace + "GL_OML_interlace", +#endif +#ifdef GL_OML_resample + "GL_OML_resample", +#endif +#ifdef GL_OML_subsample + "GL_OML_subsample", +#endif +#ifdef GL_OVR_multiview + "GL_OVR_multiview", +#endif +#ifdef GL_OVR_multiview2 + "GL_OVR_multiview2", +#endif +#ifdef GL_OVR_multiview_multisampled_render_to_texture + "GL_OVR_multiview_multisampled_render_to_texture", +#endif +#ifdef GL_PGI_misc_hints + "GL_PGI_misc_hints", +#endif +#ifdef GL_PGI_vertex_hints + "GL_PGI_vertex_hints", +#endif +#ifdef GL_QCOM_YUV_texture_gather + "GL_QCOM_YUV_texture_gather", +#endif +#ifdef GL_QCOM_alpha_test + "GL_QCOM_alpha_test", +#endif +#ifdef GL_QCOM_binning_control + "GL_QCOM_binning_control", +#endif +#ifdef GL_QCOM_driver_control + "GL_QCOM_driver_control", +#endif +#ifdef GL_QCOM_extended_get + "GL_QCOM_extended_get", +#endif +#ifdef GL_QCOM_extended_get2 + "GL_QCOM_extended_get2", +#endif +#ifdef GL_QCOM_framebuffer_foveated + "GL_QCOM_framebuffer_foveated", +#endif +#ifdef GL_QCOM_perfmon_global_mode + "GL_QCOM_perfmon_global_mode", +#endif +#ifdef GL_QCOM_shader_framebuffer_fetch_noncoherent + "GL_QCOM_shader_framebuffer_fetch_noncoherent", +#endif +#ifdef GL_QCOM_shader_framebuffer_fetch_rate + "GL_QCOM_shader_framebuffer_fetch_rate", +#endif +#ifdef GL_QCOM_texture_foveated + "GL_QCOM_texture_foveated", +#endif +#ifdef GL_QCOM_texture_foveated_subsampled_layout + "GL_QCOM_texture_foveated_subsampled_layout", +#endif +#ifdef GL_QCOM_tiled_rendering + "GL_QCOM_tiled_rendering", +#endif +#ifdef GL_QCOM_writeonly_rendering + "GL_QCOM_writeonly_rendering", +#endif +#ifdef GL_REGAL_ES1_0_compatibility + "GL_REGAL_ES1_0_compatibility", +#endif +#ifdef GL_REGAL_ES1_1_compatibility + "GL_REGAL_ES1_1_compatibility", +#endif +#ifdef GL_REGAL_enable + "GL_REGAL_enable", +#endif +#ifdef GL_REGAL_error_string + "GL_REGAL_error_string", +#endif +#ifdef GL_REGAL_extension_query + "GL_REGAL_extension_query", +#endif +#ifdef GL_REGAL_log + "GL_REGAL_log", +#endif +#ifdef GL_REGAL_proc_address + "GL_REGAL_proc_address", +#endif +#ifdef GL_REND_screen_coordinates + "GL_REND_screen_coordinates", +#endif +#ifdef GL_S3_s3tc + "GL_S3_s3tc", +#endif +#ifdef GL_SGIS_clip_band_hint + "GL_SGIS_clip_band_hint", +#endif +#ifdef GL_SGIS_color_range + "GL_SGIS_color_range", +#endif +#ifdef GL_SGIS_detail_texture + "GL_SGIS_detail_texture", +#endif +#ifdef GL_SGIS_fog_function + "GL_SGIS_fog_function", +#endif +#ifdef GL_SGIS_generate_mipmap + "GL_SGIS_generate_mipmap", +#endif +#ifdef GL_SGIS_line_texgen + "GL_SGIS_line_texgen", +#endif +#ifdef GL_SGIS_multisample + "GL_SGIS_multisample", +#endif +#ifdef GL_SGIS_multitexture + "GL_SGIS_multitexture", +#endif +#ifdef GL_SGIS_pixel_texture + "GL_SGIS_pixel_texture", +#endif +#ifdef GL_SGIS_point_line_texgen + "GL_SGIS_point_line_texgen", +#endif +#ifdef GL_SGIS_shared_multisample + "GL_SGIS_shared_multisample", +#endif +#ifdef GL_SGIS_sharpen_texture + "GL_SGIS_sharpen_texture", +#endif +#ifdef GL_SGIS_texture4D + "GL_SGIS_texture4D", +#endif +#ifdef GL_SGIS_texture_border_clamp + "GL_SGIS_texture_border_clamp", +#endif +#ifdef GL_SGIS_texture_edge_clamp + "GL_SGIS_texture_edge_clamp", +#endif +#ifdef GL_SGIS_texture_filter4 + "GL_SGIS_texture_filter4", +#endif +#ifdef GL_SGIS_texture_lod + "GL_SGIS_texture_lod", +#endif +#ifdef GL_SGIS_texture_select + "GL_SGIS_texture_select", +#endif +#ifdef GL_SGIX_async + "GL_SGIX_async", +#endif +#ifdef GL_SGIX_async_histogram + "GL_SGIX_async_histogram", +#endif +#ifdef GL_SGIX_async_pixel + "GL_SGIX_async_pixel", +#endif +#ifdef GL_SGIX_bali_g_instruments + "GL_SGIX_bali_g_instruments", +#endif +#ifdef GL_SGIX_bali_r_instruments + "GL_SGIX_bali_r_instruments", +#endif +#ifdef GL_SGIX_bali_timer_instruments + "GL_SGIX_bali_timer_instruments", +#endif +#ifdef GL_SGIX_blend_alpha_minmax + "GL_SGIX_blend_alpha_minmax", +#endif +#ifdef GL_SGIX_blend_cadd + "GL_SGIX_blend_cadd", +#endif +#ifdef GL_SGIX_blend_cmultiply + "GL_SGIX_blend_cmultiply", +#endif +#ifdef GL_SGIX_calligraphic_fragment + "GL_SGIX_calligraphic_fragment", +#endif +#ifdef GL_SGIX_clipmap + "GL_SGIX_clipmap", +#endif +#ifdef GL_SGIX_color_matrix_accuracy + "GL_SGIX_color_matrix_accuracy", +#endif +#ifdef GL_SGIX_color_table_index_mode + "GL_SGIX_color_table_index_mode", +#endif +#ifdef GL_SGIX_complex_polar + "GL_SGIX_complex_polar", +#endif +#ifdef GL_SGIX_convolution_accuracy + "GL_SGIX_convolution_accuracy", +#endif +#ifdef GL_SGIX_cube_map + "GL_SGIX_cube_map", +#endif +#ifdef GL_SGIX_cylinder_texgen + "GL_SGIX_cylinder_texgen", +#endif +#ifdef GL_SGIX_datapipe + "GL_SGIX_datapipe", +#endif +#ifdef GL_SGIX_decimation + "GL_SGIX_decimation", +#endif +#ifdef GL_SGIX_depth_pass_instrument + "GL_SGIX_depth_pass_instrument", +#endif +#ifdef GL_SGIX_depth_texture + "GL_SGIX_depth_texture", +#endif +#ifdef GL_SGIX_dvc + "GL_SGIX_dvc", +#endif +#ifdef GL_SGIX_flush_raster + "GL_SGIX_flush_raster", +#endif +#ifdef GL_SGIX_fog_blend + "GL_SGIX_fog_blend", +#endif +#ifdef GL_SGIX_fog_factor_to_alpha + "GL_SGIX_fog_factor_to_alpha", +#endif +#ifdef GL_SGIX_fog_layers + "GL_SGIX_fog_layers", +#endif +#ifdef GL_SGIX_fog_offset + "GL_SGIX_fog_offset", +#endif +#ifdef GL_SGIX_fog_patchy + "GL_SGIX_fog_patchy", +#endif +#ifdef GL_SGIX_fog_scale + "GL_SGIX_fog_scale", +#endif +#ifdef GL_SGIX_fog_texture + "GL_SGIX_fog_texture", +#endif +#ifdef GL_SGIX_fragment_lighting_space + "GL_SGIX_fragment_lighting_space", +#endif +#ifdef GL_SGIX_fragment_specular_lighting + "GL_SGIX_fragment_specular_lighting", +#endif +#ifdef GL_SGIX_fragments_instrument + "GL_SGIX_fragments_instrument", +#endif +#ifdef GL_SGIX_framezoom + "GL_SGIX_framezoom", +#endif +#ifdef GL_SGIX_icc_texture + "GL_SGIX_icc_texture", +#endif +#ifdef GL_SGIX_igloo_interface + "GL_SGIX_igloo_interface", +#endif +#ifdef GL_SGIX_image_compression + "GL_SGIX_image_compression", +#endif +#ifdef GL_SGIX_impact_pixel_texture + "GL_SGIX_impact_pixel_texture", +#endif +#ifdef GL_SGIX_instrument_error + "GL_SGIX_instrument_error", +#endif +#ifdef GL_SGIX_interlace + "GL_SGIX_interlace", +#endif +#ifdef GL_SGIX_ir_instrument1 + "GL_SGIX_ir_instrument1", +#endif +#ifdef GL_SGIX_line_quality_hint + "GL_SGIX_line_quality_hint", +#endif +#ifdef GL_SGIX_list_priority + "GL_SGIX_list_priority", +#endif +#ifdef GL_SGIX_mpeg1 + "GL_SGIX_mpeg1", +#endif +#ifdef GL_SGIX_mpeg2 + "GL_SGIX_mpeg2", +#endif +#ifdef GL_SGIX_nonlinear_lighting_pervertex + "GL_SGIX_nonlinear_lighting_pervertex", +#endif +#ifdef GL_SGIX_nurbs_eval + "GL_SGIX_nurbs_eval", +#endif +#ifdef GL_SGIX_occlusion_instrument + "GL_SGIX_occlusion_instrument", +#endif +#ifdef GL_SGIX_packed_6bytes + "GL_SGIX_packed_6bytes", +#endif +#ifdef GL_SGIX_pixel_texture + "GL_SGIX_pixel_texture", +#endif +#ifdef GL_SGIX_pixel_texture_bits + "GL_SGIX_pixel_texture_bits", +#endif +#ifdef GL_SGIX_pixel_texture_lod + "GL_SGIX_pixel_texture_lod", +#endif +#ifdef GL_SGIX_pixel_tiles + "GL_SGIX_pixel_tiles", +#endif +#ifdef GL_SGIX_polynomial_ffd + "GL_SGIX_polynomial_ffd", +#endif +#ifdef GL_SGIX_quad_mesh + "GL_SGIX_quad_mesh", +#endif +#ifdef GL_SGIX_reference_plane + "GL_SGIX_reference_plane", +#endif +#ifdef GL_SGIX_resample + "GL_SGIX_resample", +#endif +#ifdef GL_SGIX_scalebias_hint + "GL_SGIX_scalebias_hint", +#endif +#ifdef GL_SGIX_shadow + "GL_SGIX_shadow", +#endif +#ifdef GL_SGIX_shadow_ambient + "GL_SGIX_shadow_ambient", +#endif +#ifdef GL_SGIX_slim + "GL_SGIX_slim", +#endif +#ifdef GL_SGIX_spotlight_cutoff + "GL_SGIX_spotlight_cutoff", +#endif +#ifdef GL_SGIX_sprite + "GL_SGIX_sprite", +#endif +#ifdef GL_SGIX_subdiv_patch + "GL_SGIX_subdiv_patch", +#endif +#ifdef GL_SGIX_subsample + "GL_SGIX_subsample", +#endif +#ifdef GL_SGIX_tag_sample_buffer + "GL_SGIX_tag_sample_buffer", +#endif +#ifdef GL_SGIX_texture_add_env + "GL_SGIX_texture_add_env", +#endif +#ifdef GL_SGIX_texture_coordinate_clamp + "GL_SGIX_texture_coordinate_clamp", +#endif +#ifdef GL_SGIX_texture_lod_bias + "GL_SGIX_texture_lod_bias", +#endif +#ifdef GL_SGIX_texture_mipmap_anisotropic + "GL_SGIX_texture_mipmap_anisotropic", +#endif +#ifdef GL_SGIX_texture_multi_buffer + "GL_SGIX_texture_multi_buffer", +#endif +#ifdef GL_SGIX_texture_phase + "GL_SGIX_texture_phase", +#endif +#ifdef GL_SGIX_texture_range + "GL_SGIX_texture_range", +#endif +#ifdef GL_SGIX_texture_scale_bias + "GL_SGIX_texture_scale_bias", +#endif +#ifdef GL_SGIX_texture_supersample + "GL_SGIX_texture_supersample", +#endif +#ifdef GL_SGIX_vector_ops + "GL_SGIX_vector_ops", +#endif +#ifdef GL_SGIX_vertex_array_object + "GL_SGIX_vertex_array_object", +#endif +#ifdef GL_SGIX_vertex_preclip + "GL_SGIX_vertex_preclip", +#endif +#ifdef GL_SGIX_vertex_preclip_hint + "GL_SGIX_vertex_preclip_hint", +#endif +#ifdef GL_SGIX_ycrcb + "GL_SGIX_ycrcb", +#endif +#ifdef GL_SGIX_ycrcb_subsample + "GL_SGIX_ycrcb_subsample", +#endif +#ifdef GL_SGIX_ycrcba + "GL_SGIX_ycrcba", +#endif +#ifdef GL_SGI_color_matrix + "GL_SGI_color_matrix", +#endif +#ifdef GL_SGI_color_table + "GL_SGI_color_table", +#endif +#ifdef GL_SGI_complex + "GL_SGI_complex", +#endif +#ifdef GL_SGI_complex_type + "GL_SGI_complex_type", +#endif +#ifdef GL_SGI_fft + "GL_SGI_fft", +#endif +#ifdef GL_SGI_texture_color_table + "GL_SGI_texture_color_table", +#endif +#ifdef GL_SUNX_constant_data + "GL_SUNX_constant_data", +#endif +#ifdef GL_SUN_convolution_border_modes + "GL_SUN_convolution_border_modes", +#endif +#ifdef GL_SUN_global_alpha + "GL_SUN_global_alpha", +#endif +#ifdef GL_SUN_mesh_array + "GL_SUN_mesh_array", +#endif +#ifdef GL_SUN_read_video_pixels + "GL_SUN_read_video_pixels", +#endif +#ifdef GL_SUN_slice_accum + "GL_SUN_slice_accum", +#endif +#ifdef GL_SUN_triangle_list + "GL_SUN_triangle_list", +#endif +#ifdef GL_SUN_vertex + "GL_SUN_vertex", +#endif +#ifdef GL_VERSION_1_2 + "GL_VERSION_1_2", +#endif +#ifdef GL_VERSION_1_2_1 + "GL_VERSION_1_2_1", +#endif +#ifdef GL_VERSION_1_3 + "GL_VERSION_1_3", +#endif +#ifdef GL_VERSION_1_4 + "GL_VERSION_1_4", +#endif +#ifdef GL_VERSION_1_5 + "GL_VERSION_1_5", +#endif +#ifdef GL_VERSION_2_0 + "GL_VERSION_2_0", +#endif +#ifdef GL_VERSION_2_1 + "GL_VERSION_2_1", +#endif +#ifdef GL_VERSION_3_0 + "GL_VERSION_3_0", +#endif +#ifdef GL_VERSION_3_1 + "GL_VERSION_3_1", +#endif +#ifdef GL_VERSION_3_2 + "GL_VERSION_3_2", +#endif +#ifdef GL_VERSION_3_3 + "GL_VERSION_3_3", +#endif +#ifdef GL_VERSION_4_0 + "GL_VERSION_4_0", +#endif +#ifdef GL_VERSION_4_1 + "GL_VERSION_4_1", +#endif +#ifdef GL_VERSION_4_2 + "GL_VERSION_4_2", +#endif +#ifdef GL_VERSION_4_3 + "GL_VERSION_4_3", +#endif +#ifdef GL_VERSION_4_4 + "GL_VERSION_4_4", +#endif +#ifdef GL_VERSION_4_5 + "GL_VERSION_4_5", +#endif +#ifdef GL_VERSION_4_6 + "GL_VERSION_4_6", +#endif +#ifdef GL_VIV_shader_binary + "GL_VIV_shader_binary", +#endif +#ifdef GL_WIN_phong_shading + "GL_WIN_phong_shading", +#endif +#ifdef GL_WIN_scene_markerXXX + "GL_WIN_scene_markerXXX", +#endif +#ifdef GL_WIN_specular_fog + "GL_WIN_specular_fog", +#endif +#ifdef GL_WIN_swap_hint + "GL_WIN_swap_hint", +#endif + NULL +}; + + +/* Detected in the extension string or strings */ +static GLboolean _glewExtensionString[931]; +/* Detected via extension string or experimental mode */ +static GLboolean* _glewExtensionEnabled[] = { +#ifdef GL_3DFX_multisample + &__GLEW_3DFX_multisample, +#endif +#ifdef GL_3DFX_tbuffer + &__GLEW_3DFX_tbuffer, +#endif +#ifdef GL_3DFX_texture_compression_FXT1 + &__GLEW_3DFX_texture_compression_FXT1, +#endif +#ifdef GL_AMD_blend_minmax_factor + &__GLEW_AMD_blend_minmax_factor, +#endif +#ifdef GL_AMD_compressed_3DC_texture + &__GLEW_AMD_compressed_3DC_texture, +#endif +#ifdef GL_AMD_compressed_ATC_texture + &__GLEW_AMD_compressed_ATC_texture, +#endif +#ifdef GL_AMD_conservative_depth + &__GLEW_AMD_conservative_depth, +#endif +#ifdef GL_AMD_debug_output + &__GLEW_AMD_debug_output, +#endif +#ifdef GL_AMD_depth_clamp_separate + &__GLEW_AMD_depth_clamp_separate, +#endif +#ifdef GL_AMD_draw_buffers_blend + &__GLEW_AMD_draw_buffers_blend, +#endif +#ifdef GL_AMD_framebuffer_multisample_advanced + &__GLEW_AMD_framebuffer_multisample_advanced, +#endif +#ifdef GL_AMD_framebuffer_sample_positions + &__GLEW_AMD_framebuffer_sample_positions, +#endif +#ifdef GL_AMD_gcn_shader + &__GLEW_AMD_gcn_shader, +#endif +#ifdef GL_AMD_gpu_shader_half_float + &__GLEW_AMD_gpu_shader_half_float, +#endif +#ifdef GL_AMD_gpu_shader_half_float_fetch + &__GLEW_AMD_gpu_shader_half_float_fetch, +#endif +#ifdef GL_AMD_gpu_shader_int16 + &__GLEW_AMD_gpu_shader_int16, +#endif +#ifdef GL_AMD_gpu_shader_int64 + &__GLEW_AMD_gpu_shader_int64, +#endif +#ifdef GL_AMD_interleaved_elements + &__GLEW_AMD_interleaved_elements, +#endif +#ifdef GL_AMD_multi_draw_indirect + &__GLEW_AMD_multi_draw_indirect, +#endif +#ifdef GL_AMD_name_gen_delete + &__GLEW_AMD_name_gen_delete, +#endif +#ifdef GL_AMD_occlusion_query_event + &__GLEW_AMD_occlusion_query_event, +#endif +#ifdef GL_AMD_performance_monitor + &__GLEW_AMD_performance_monitor, +#endif +#ifdef GL_AMD_pinned_memory + &__GLEW_AMD_pinned_memory, +#endif +#ifdef GL_AMD_program_binary_Z400 + &__GLEW_AMD_program_binary_Z400, +#endif +#ifdef GL_AMD_query_buffer_object + &__GLEW_AMD_query_buffer_object, +#endif +#ifdef GL_AMD_sample_positions + &__GLEW_AMD_sample_positions, +#endif +#ifdef GL_AMD_seamless_cubemap_per_texture + &__GLEW_AMD_seamless_cubemap_per_texture, +#endif +#ifdef GL_AMD_shader_atomic_counter_ops + &__GLEW_AMD_shader_atomic_counter_ops, +#endif +#ifdef GL_AMD_shader_ballot + &__GLEW_AMD_shader_ballot, +#endif +#ifdef GL_AMD_shader_explicit_vertex_parameter + &__GLEW_AMD_shader_explicit_vertex_parameter, +#endif +#ifdef GL_AMD_shader_image_load_store_lod + &__GLEW_AMD_shader_image_load_store_lod, +#endif +#ifdef GL_AMD_shader_stencil_export + &__GLEW_AMD_shader_stencil_export, +#endif +#ifdef GL_AMD_shader_stencil_value_export + &__GLEW_AMD_shader_stencil_value_export, +#endif +#ifdef GL_AMD_shader_trinary_minmax + &__GLEW_AMD_shader_trinary_minmax, +#endif +#ifdef GL_AMD_sparse_texture + &__GLEW_AMD_sparse_texture, +#endif +#ifdef GL_AMD_stencil_operation_extended + &__GLEW_AMD_stencil_operation_extended, +#endif +#ifdef GL_AMD_texture_gather_bias_lod + &__GLEW_AMD_texture_gather_bias_lod, +#endif +#ifdef GL_AMD_texture_texture4 + &__GLEW_AMD_texture_texture4, +#endif +#ifdef GL_AMD_transform_feedback3_lines_triangles + &__GLEW_AMD_transform_feedback3_lines_triangles, +#endif +#ifdef GL_AMD_transform_feedback4 + &__GLEW_AMD_transform_feedback4, +#endif +#ifdef GL_AMD_vertex_shader_layer + &__GLEW_AMD_vertex_shader_layer, +#endif +#ifdef GL_AMD_vertex_shader_tessellator + &__GLEW_AMD_vertex_shader_tessellator, +#endif +#ifdef GL_AMD_vertex_shader_viewport_index + &__GLEW_AMD_vertex_shader_viewport_index, +#endif +#ifdef GL_ANDROID_extension_pack_es31a + &__GLEW_ANDROID_extension_pack_es31a, +#endif +#ifdef GL_ANGLE_depth_texture + &__GLEW_ANGLE_depth_texture, +#endif +#ifdef GL_ANGLE_framebuffer_blit + &__GLEW_ANGLE_framebuffer_blit, +#endif +#ifdef GL_ANGLE_framebuffer_multisample + &__GLEW_ANGLE_framebuffer_multisample, +#endif +#ifdef GL_ANGLE_instanced_arrays + &__GLEW_ANGLE_instanced_arrays, +#endif +#ifdef GL_ANGLE_pack_reverse_row_order + &__GLEW_ANGLE_pack_reverse_row_order, +#endif +#ifdef GL_ANGLE_program_binary + &__GLEW_ANGLE_program_binary, +#endif +#ifdef GL_ANGLE_texture_compression_dxt1 + &__GLEW_ANGLE_texture_compression_dxt1, +#endif +#ifdef GL_ANGLE_texture_compression_dxt3 + &__GLEW_ANGLE_texture_compression_dxt3, +#endif +#ifdef GL_ANGLE_texture_compression_dxt5 + &__GLEW_ANGLE_texture_compression_dxt5, +#endif +#ifdef GL_ANGLE_texture_usage + &__GLEW_ANGLE_texture_usage, +#endif +#ifdef GL_ANGLE_timer_query + &__GLEW_ANGLE_timer_query, +#endif +#ifdef GL_ANGLE_translated_shader_source + &__GLEW_ANGLE_translated_shader_source, +#endif +#ifdef GL_APPLE_aux_depth_stencil + &__GLEW_APPLE_aux_depth_stencil, +#endif +#ifdef GL_APPLE_client_storage + &__GLEW_APPLE_client_storage, +#endif +#ifdef GL_APPLE_clip_distance + &__GLEW_APPLE_clip_distance, +#endif +#ifdef GL_APPLE_color_buffer_packed_float + &__GLEW_APPLE_color_buffer_packed_float, +#endif +#ifdef GL_APPLE_copy_texture_levels + &__GLEW_APPLE_copy_texture_levels, +#endif +#ifdef GL_APPLE_element_array + &__GLEW_APPLE_element_array, +#endif +#ifdef GL_APPLE_fence + &__GLEW_APPLE_fence, +#endif +#ifdef GL_APPLE_float_pixels + &__GLEW_APPLE_float_pixels, +#endif +#ifdef GL_APPLE_flush_buffer_range + &__GLEW_APPLE_flush_buffer_range, +#endif +#ifdef GL_APPLE_framebuffer_multisample + &__GLEW_APPLE_framebuffer_multisample, +#endif +#ifdef GL_APPLE_object_purgeable + &__GLEW_APPLE_object_purgeable, +#endif +#ifdef GL_APPLE_pixel_buffer + &__GLEW_APPLE_pixel_buffer, +#endif +#ifdef GL_APPLE_rgb_422 + &__GLEW_APPLE_rgb_422, +#endif +#ifdef GL_APPLE_row_bytes + &__GLEW_APPLE_row_bytes, +#endif +#ifdef GL_APPLE_specular_vector + &__GLEW_APPLE_specular_vector, +#endif +#ifdef GL_APPLE_sync + &__GLEW_APPLE_sync, +#endif +#ifdef GL_APPLE_texture_2D_limited_npot + &__GLEW_APPLE_texture_2D_limited_npot, +#endif +#ifdef GL_APPLE_texture_format_BGRA8888 + &__GLEW_APPLE_texture_format_BGRA8888, +#endif +#ifdef GL_APPLE_texture_max_level + &__GLEW_APPLE_texture_max_level, +#endif +#ifdef GL_APPLE_texture_packed_float + &__GLEW_APPLE_texture_packed_float, +#endif +#ifdef GL_APPLE_texture_range + &__GLEW_APPLE_texture_range, +#endif +#ifdef GL_APPLE_transform_hint + &__GLEW_APPLE_transform_hint, +#endif +#ifdef GL_APPLE_vertex_array_object + &__GLEW_APPLE_vertex_array_object, +#endif +#ifdef GL_APPLE_vertex_array_range + &__GLEW_APPLE_vertex_array_range, +#endif +#ifdef GL_APPLE_vertex_program_evaluators + &__GLEW_APPLE_vertex_program_evaluators, +#endif +#ifdef GL_APPLE_ycbcr_422 + &__GLEW_APPLE_ycbcr_422, +#endif +#ifdef GL_ARB_ES2_compatibility + &__GLEW_ARB_ES2_compatibility, +#endif +#ifdef GL_ARB_ES3_1_compatibility + &__GLEW_ARB_ES3_1_compatibility, +#endif +#ifdef GL_ARB_ES3_2_compatibility + &__GLEW_ARB_ES3_2_compatibility, +#endif +#ifdef GL_ARB_ES3_compatibility + &__GLEW_ARB_ES3_compatibility, +#endif +#ifdef GL_ARB_arrays_of_arrays + &__GLEW_ARB_arrays_of_arrays, +#endif +#ifdef GL_ARB_base_instance + &__GLEW_ARB_base_instance, +#endif +#ifdef GL_ARB_bindless_texture + &__GLEW_ARB_bindless_texture, +#endif +#ifdef GL_ARB_blend_func_extended + &__GLEW_ARB_blend_func_extended, +#endif +#ifdef GL_ARB_buffer_storage + &__GLEW_ARB_buffer_storage, +#endif +#ifdef GL_ARB_cl_event + &__GLEW_ARB_cl_event, +#endif +#ifdef GL_ARB_clear_buffer_object + &__GLEW_ARB_clear_buffer_object, +#endif +#ifdef GL_ARB_clear_texture + &__GLEW_ARB_clear_texture, +#endif +#ifdef GL_ARB_clip_control + &__GLEW_ARB_clip_control, +#endif +#ifdef GL_ARB_color_buffer_float + &__GLEW_ARB_color_buffer_float, +#endif +#ifdef GL_ARB_compatibility + &__GLEW_ARB_compatibility, +#endif +#ifdef GL_ARB_compressed_texture_pixel_storage + &__GLEW_ARB_compressed_texture_pixel_storage, +#endif +#ifdef GL_ARB_compute_shader + &__GLEW_ARB_compute_shader, +#endif +#ifdef GL_ARB_compute_variable_group_size + &__GLEW_ARB_compute_variable_group_size, +#endif +#ifdef GL_ARB_conditional_render_inverted + &__GLEW_ARB_conditional_render_inverted, +#endif +#ifdef GL_ARB_conservative_depth + &__GLEW_ARB_conservative_depth, +#endif +#ifdef GL_ARB_copy_buffer + &__GLEW_ARB_copy_buffer, +#endif +#ifdef GL_ARB_copy_image + &__GLEW_ARB_copy_image, +#endif +#ifdef GL_ARB_cull_distance + &__GLEW_ARB_cull_distance, +#endif +#ifdef GL_ARB_debug_output + &__GLEW_ARB_debug_output, +#endif +#ifdef GL_ARB_depth_buffer_float + &__GLEW_ARB_depth_buffer_float, +#endif +#ifdef GL_ARB_depth_clamp + &__GLEW_ARB_depth_clamp, +#endif +#ifdef GL_ARB_depth_texture + &__GLEW_ARB_depth_texture, +#endif +#ifdef GL_ARB_derivative_control + &__GLEW_ARB_derivative_control, +#endif +#ifdef GL_ARB_direct_state_access + &__GLEW_ARB_direct_state_access, +#endif +#ifdef GL_ARB_draw_buffers + &__GLEW_ARB_draw_buffers, +#endif +#ifdef GL_ARB_draw_buffers_blend + &__GLEW_ARB_draw_buffers_blend, +#endif +#ifdef GL_ARB_draw_elements_base_vertex + &__GLEW_ARB_draw_elements_base_vertex, +#endif +#ifdef GL_ARB_draw_indirect + &__GLEW_ARB_draw_indirect, +#endif +#ifdef GL_ARB_draw_instanced + &__GLEW_ARB_draw_instanced, +#endif +#ifdef GL_ARB_enhanced_layouts + &__GLEW_ARB_enhanced_layouts, +#endif +#ifdef GL_ARB_explicit_attrib_location + &__GLEW_ARB_explicit_attrib_location, +#endif +#ifdef GL_ARB_explicit_uniform_location + &__GLEW_ARB_explicit_uniform_location, +#endif +#ifdef GL_ARB_fragment_coord_conventions + &__GLEW_ARB_fragment_coord_conventions, +#endif +#ifdef GL_ARB_fragment_layer_viewport + &__GLEW_ARB_fragment_layer_viewport, +#endif +#ifdef GL_ARB_fragment_program + &__GLEW_ARB_fragment_program, +#endif +#ifdef GL_ARB_fragment_program_shadow + &__GLEW_ARB_fragment_program_shadow, +#endif +#ifdef GL_ARB_fragment_shader + &__GLEW_ARB_fragment_shader, +#endif +#ifdef GL_ARB_fragment_shader_interlock + &__GLEW_ARB_fragment_shader_interlock, +#endif +#ifdef GL_ARB_framebuffer_no_attachments + &__GLEW_ARB_framebuffer_no_attachments, +#endif +#ifdef GL_ARB_framebuffer_object + &__GLEW_ARB_framebuffer_object, +#endif +#ifdef GL_ARB_framebuffer_sRGB + &__GLEW_ARB_framebuffer_sRGB, +#endif +#ifdef GL_ARB_geometry_shader4 + &__GLEW_ARB_geometry_shader4, +#endif +#ifdef GL_ARB_get_program_binary + &__GLEW_ARB_get_program_binary, +#endif +#ifdef GL_ARB_get_texture_sub_image + &__GLEW_ARB_get_texture_sub_image, +#endif +#ifdef GL_ARB_gl_spirv + &__GLEW_ARB_gl_spirv, +#endif +#ifdef GL_ARB_gpu_shader5 + &__GLEW_ARB_gpu_shader5, +#endif +#ifdef GL_ARB_gpu_shader_fp64 + &__GLEW_ARB_gpu_shader_fp64, +#endif +#ifdef GL_ARB_gpu_shader_int64 + &__GLEW_ARB_gpu_shader_int64, +#endif +#ifdef GL_ARB_half_float_pixel + &__GLEW_ARB_half_float_pixel, +#endif +#ifdef GL_ARB_half_float_vertex + &__GLEW_ARB_half_float_vertex, +#endif +#ifdef GL_ARB_imaging + &__GLEW_ARB_imaging, +#endif +#ifdef GL_ARB_indirect_parameters + &__GLEW_ARB_indirect_parameters, +#endif +#ifdef GL_ARB_instanced_arrays + &__GLEW_ARB_instanced_arrays, +#endif +#ifdef GL_ARB_internalformat_query + &__GLEW_ARB_internalformat_query, +#endif +#ifdef GL_ARB_internalformat_query2 + &__GLEW_ARB_internalformat_query2, +#endif +#ifdef GL_ARB_invalidate_subdata + &__GLEW_ARB_invalidate_subdata, +#endif +#ifdef GL_ARB_map_buffer_alignment + &__GLEW_ARB_map_buffer_alignment, +#endif +#ifdef GL_ARB_map_buffer_range + &__GLEW_ARB_map_buffer_range, +#endif +#ifdef GL_ARB_matrix_palette + &__GLEW_ARB_matrix_palette, +#endif +#ifdef GL_ARB_multi_bind + &__GLEW_ARB_multi_bind, +#endif +#ifdef GL_ARB_multi_draw_indirect + &__GLEW_ARB_multi_draw_indirect, +#endif +#ifdef GL_ARB_multisample + &__GLEW_ARB_multisample, +#endif +#ifdef GL_ARB_multitexture + &__GLEW_ARB_multitexture, +#endif +#ifdef GL_ARB_occlusion_query + &__GLEW_ARB_occlusion_query, +#endif +#ifdef GL_ARB_occlusion_query2 + &__GLEW_ARB_occlusion_query2, +#endif +#ifdef GL_ARB_parallel_shader_compile + &__GLEW_ARB_parallel_shader_compile, +#endif +#ifdef GL_ARB_pipeline_statistics_query + &__GLEW_ARB_pipeline_statistics_query, +#endif +#ifdef GL_ARB_pixel_buffer_object + &__GLEW_ARB_pixel_buffer_object, +#endif +#ifdef GL_ARB_point_parameters + &__GLEW_ARB_point_parameters, +#endif +#ifdef GL_ARB_point_sprite + &__GLEW_ARB_point_sprite, +#endif +#ifdef GL_ARB_polygon_offset_clamp + &__GLEW_ARB_polygon_offset_clamp, +#endif +#ifdef GL_ARB_post_depth_coverage + &__GLEW_ARB_post_depth_coverage, +#endif +#ifdef GL_ARB_program_interface_query + &__GLEW_ARB_program_interface_query, +#endif +#ifdef GL_ARB_provoking_vertex + &__GLEW_ARB_provoking_vertex, +#endif +#ifdef GL_ARB_query_buffer_object + &__GLEW_ARB_query_buffer_object, +#endif +#ifdef GL_ARB_robust_buffer_access_behavior + &__GLEW_ARB_robust_buffer_access_behavior, +#endif +#ifdef GL_ARB_robustness + &__GLEW_ARB_robustness, +#endif +#ifdef GL_ARB_robustness_application_isolation + &__GLEW_ARB_robustness_application_isolation, +#endif +#ifdef GL_ARB_robustness_share_group_isolation + &__GLEW_ARB_robustness_share_group_isolation, +#endif +#ifdef GL_ARB_sample_locations + &__GLEW_ARB_sample_locations, +#endif +#ifdef GL_ARB_sample_shading + &__GLEW_ARB_sample_shading, +#endif +#ifdef GL_ARB_sampler_objects + &__GLEW_ARB_sampler_objects, +#endif +#ifdef GL_ARB_seamless_cube_map + &__GLEW_ARB_seamless_cube_map, +#endif +#ifdef GL_ARB_seamless_cubemap_per_texture + &__GLEW_ARB_seamless_cubemap_per_texture, +#endif +#ifdef GL_ARB_separate_shader_objects + &__GLEW_ARB_separate_shader_objects, +#endif +#ifdef GL_ARB_shader_atomic_counter_ops + &__GLEW_ARB_shader_atomic_counter_ops, +#endif +#ifdef GL_ARB_shader_atomic_counters + &__GLEW_ARB_shader_atomic_counters, +#endif +#ifdef GL_ARB_shader_ballot + &__GLEW_ARB_shader_ballot, +#endif +#ifdef GL_ARB_shader_bit_encoding + &__GLEW_ARB_shader_bit_encoding, +#endif +#ifdef GL_ARB_shader_clock + &__GLEW_ARB_shader_clock, +#endif +#ifdef GL_ARB_shader_draw_parameters + &__GLEW_ARB_shader_draw_parameters, +#endif +#ifdef GL_ARB_shader_group_vote + &__GLEW_ARB_shader_group_vote, +#endif +#ifdef GL_ARB_shader_image_load_store + &__GLEW_ARB_shader_image_load_store, +#endif +#ifdef GL_ARB_shader_image_size + &__GLEW_ARB_shader_image_size, +#endif +#ifdef GL_ARB_shader_objects + &__GLEW_ARB_shader_objects, +#endif +#ifdef GL_ARB_shader_precision + &__GLEW_ARB_shader_precision, +#endif +#ifdef GL_ARB_shader_stencil_export + &__GLEW_ARB_shader_stencil_export, +#endif +#ifdef GL_ARB_shader_storage_buffer_object + &__GLEW_ARB_shader_storage_buffer_object, +#endif +#ifdef GL_ARB_shader_subroutine + &__GLEW_ARB_shader_subroutine, +#endif +#ifdef GL_ARB_shader_texture_image_samples + &__GLEW_ARB_shader_texture_image_samples, +#endif +#ifdef GL_ARB_shader_texture_lod + &__GLEW_ARB_shader_texture_lod, +#endif +#ifdef GL_ARB_shader_viewport_layer_array + &__GLEW_ARB_shader_viewport_layer_array, +#endif +#ifdef GL_ARB_shading_language_100 + &__GLEW_ARB_shading_language_100, +#endif +#ifdef GL_ARB_shading_language_420pack + &__GLEW_ARB_shading_language_420pack, +#endif +#ifdef GL_ARB_shading_language_include + &__GLEW_ARB_shading_language_include, +#endif +#ifdef GL_ARB_shading_language_packing + &__GLEW_ARB_shading_language_packing, +#endif +#ifdef GL_ARB_shadow + &__GLEW_ARB_shadow, +#endif +#ifdef GL_ARB_shadow_ambient + &__GLEW_ARB_shadow_ambient, +#endif +#ifdef GL_ARB_sparse_buffer + &__GLEW_ARB_sparse_buffer, +#endif +#ifdef GL_ARB_sparse_texture + &__GLEW_ARB_sparse_texture, +#endif +#ifdef GL_ARB_sparse_texture2 + &__GLEW_ARB_sparse_texture2, +#endif +#ifdef GL_ARB_sparse_texture_clamp + &__GLEW_ARB_sparse_texture_clamp, +#endif +#ifdef GL_ARB_spirv_extensions + &__GLEW_ARB_spirv_extensions, +#endif +#ifdef GL_ARB_stencil_texturing + &__GLEW_ARB_stencil_texturing, +#endif +#ifdef GL_ARB_sync + &__GLEW_ARB_sync, +#endif +#ifdef GL_ARB_tessellation_shader + &__GLEW_ARB_tessellation_shader, +#endif +#ifdef GL_ARB_texture_barrier + &__GLEW_ARB_texture_barrier, +#endif +#ifdef GL_ARB_texture_border_clamp + &__GLEW_ARB_texture_border_clamp, +#endif +#ifdef GL_ARB_texture_buffer_object + &__GLEW_ARB_texture_buffer_object, +#endif +#ifdef GL_ARB_texture_buffer_object_rgb32 + &__GLEW_ARB_texture_buffer_object_rgb32, +#endif +#ifdef GL_ARB_texture_buffer_range + &__GLEW_ARB_texture_buffer_range, +#endif +#ifdef GL_ARB_texture_compression + &__GLEW_ARB_texture_compression, +#endif +#ifdef GL_ARB_texture_compression_bptc + &__GLEW_ARB_texture_compression_bptc, +#endif +#ifdef GL_ARB_texture_compression_rgtc + &__GLEW_ARB_texture_compression_rgtc, +#endif +#ifdef GL_ARB_texture_cube_map + &__GLEW_ARB_texture_cube_map, +#endif +#ifdef GL_ARB_texture_cube_map_array + &__GLEW_ARB_texture_cube_map_array, +#endif +#ifdef GL_ARB_texture_env_add + &__GLEW_ARB_texture_env_add, +#endif +#ifdef GL_ARB_texture_env_combine + &__GLEW_ARB_texture_env_combine, +#endif +#ifdef GL_ARB_texture_env_crossbar + &__GLEW_ARB_texture_env_crossbar, +#endif +#ifdef GL_ARB_texture_env_dot3 + &__GLEW_ARB_texture_env_dot3, +#endif +#ifdef GL_ARB_texture_filter_anisotropic + &__GLEW_ARB_texture_filter_anisotropic, +#endif +#ifdef GL_ARB_texture_filter_minmax + &__GLEW_ARB_texture_filter_minmax, +#endif +#ifdef GL_ARB_texture_float + &__GLEW_ARB_texture_float, +#endif +#ifdef GL_ARB_texture_gather + &__GLEW_ARB_texture_gather, +#endif +#ifdef GL_ARB_texture_mirror_clamp_to_edge + &__GLEW_ARB_texture_mirror_clamp_to_edge, +#endif +#ifdef GL_ARB_texture_mirrored_repeat + &__GLEW_ARB_texture_mirrored_repeat, +#endif +#ifdef GL_ARB_texture_multisample + &__GLEW_ARB_texture_multisample, +#endif +#ifdef GL_ARB_texture_non_power_of_two + &__GLEW_ARB_texture_non_power_of_two, +#endif +#ifdef GL_ARB_texture_query_levels + &__GLEW_ARB_texture_query_levels, +#endif +#ifdef GL_ARB_texture_query_lod + &__GLEW_ARB_texture_query_lod, +#endif +#ifdef GL_ARB_texture_rectangle + &__GLEW_ARB_texture_rectangle, +#endif +#ifdef GL_ARB_texture_rg + &__GLEW_ARB_texture_rg, +#endif +#ifdef GL_ARB_texture_rgb10_a2ui + &__GLEW_ARB_texture_rgb10_a2ui, +#endif +#ifdef GL_ARB_texture_stencil8 + &__GLEW_ARB_texture_stencil8, +#endif +#ifdef GL_ARB_texture_storage + &__GLEW_ARB_texture_storage, +#endif +#ifdef GL_ARB_texture_storage_multisample + &__GLEW_ARB_texture_storage_multisample, +#endif +#ifdef GL_ARB_texture_swizzle + &__GLEW_ARB_texture_swizzle, +#endif +#ifdef GL_ARB_texture_view + &__GLEW_ARB_texture_view, +#endif +#ifdef GL_ARB_timer_query + &__GLEW_ARB_timer_query, +#endif +#ifdef GL_ARB_transform_feedback2 + &__GLEW_ARB_transform_feedback2, +#endif +#ifdef GL_ARB_transform_feedback3 + &__GLEW_ARB_transform_feedback3, +#endif +#ifdef GL_ARB_transform_feedback_instanced + &__GLEW_ARB_transform_feedback_instanced, +#endif +#ifdef GL_ARB_transform_feedback_overflow_query + &__GLEW_ARB_transform_feedback_overflow_query, +#endif +#ifdef GL_ARB_transpose_matrix + &__GLEW_ARB_transpose_matrix, +#endif +#ifdef GL_ARB_uniform_buffer_object + &__GLEW_ARB_uniform_buffer_object, +#endif +#ifdef GL_ARB_vertex_array_bgra + &__GLEW_ARB_vertex_array_bgra, +#endif +#ifdef GL_ARB_vertex_array_object + &__GLEW_ARB_vertex_array_object, +#endif +#ifdef GL_ARB_vertex_attrib_64bit + &__GLEW_ARB_vertex_attrib_64bit, +#endif +#ifdef GL_ARB_vertex_attrib_binding + &__GLEW_ARB_vertex_attrib_binding, +#endif +#ifdef GL_ARB_vertex_blend + &__GLEW_ARB_vertex_blend, +#endif +#ifdef GL_ARB_vertex_buffer_object + &__GLEW_ARB_vertex_buffer_object, +#endif +#ifdef GL_ARB_vertex_program + &__GLEW_ARB_vertex_program, +#endif +#ifdef GL_ARB_vertex_shader + &__GLEW_ARB_vertex_shader, +#endif +#ifdef GL_ARB_vertex_type_10f_11f_11f_rev + &__GLEW_ARB_vertex_type_10f_11f_11f_rev, +#endif +#ifdef GL_ARB_vertex_type_2_10_10_10_rev + &__GLEW_ARB_vertex_type_2_10_10_10_rev, +#endif +#ifdef GL_ARB_viewport_array + &__GLEW_ARB_viewport_array, +#endif +#ifdef GL_ARB_window_pos + &__GLEW_ARB_window_pos, +#endif +#ifdef GL_ARM_mali_program_binary + &__GLEW_ARM_mali_program_binary, +#endif +#ifdef GL_ARM_mali_shader_binary + &__GLEW_ARM_mali_shader_binary, +#endif +#ifdef GL_ARM_rgba8 + &__GLEW_ARM_rgba8, +#endif +#ifdef GL_ARM_shader_framebuffer_fetch + &__GLEW_ARM_shader_framebuffer_fetch, +#endif +#ifdef GL_ARM_shader_framebuffer_fetch_depth_stencil + &__GLEW_ARM_shader_framebuffer_fetch_depth_stencil, +#endif +#ifdef GL_ARM_texture_unnormalized_coordinates + &__GLEW_ARM_texture_unnormalized_coordinates, +#endif +#ifdef GL_ATIX_point_sprites + &__GLEW_ATIX_point_sprites, +#endif +#ifdef GL_ATIX_texture_env_combine3 + &__GLEW_ATIX_texture_env_combine3, +#endif +#ifdef GL_ATIX_texture_env_route + &__GLEW_ATIX_texture_env_route, +#endif +#ifdef GL_ATIX_vertex_shader_output_point_size + &__GLEW_ATIX_vertex_shader_output_point_size, +#endif +#ifdef GL_ATI_draw_buffers + &__GLEW_ATI_draw_buffers, +#endif +#ifdef GL_ATI_element_array + &__GLEW_ATI_element_array, +#endif +#ifdef GL_ATI_envmap_bumpmap + &__GLEW_ATI_envmap_bumpmap, +#endif +#ifdef GL_ATI_fragment_shader + &__GLEW_ATI_fragment_shader, +#endif +#ifdef GL_ATI_map_object_buffer + &__GLEW_ATI_map_object_buffer, +#endif +#ifdef GL_ATI_meminfo + &__GLEW_ATI_meminfo, +#endif +#ifdef GL_ATI_pn_triangles + &__GLEW_ATI_pn_triangles, +#endif +#ifdef GL_ATI_separate_stencil + &__GLEW_ATI_separate_stencil, +#endif +#ifdef GL_ATI_shader_texture_lod + &__GLEW_ATI_shader_texture_lod, +#endif +#ifdef GL_ATI_text_fragment_shader + &__GLEW_ATI_text_fragment_shader, +#endif +#ifdef GL_ATI_texture_compression_3dc + &__GLEW_ATI_texture_compression_3dc, +#endif +#ifdef GL_ATI_texture_env_combine3 + &__GLEW_ATI_texture_env_combine3, +#endif +#ifdef GL_ATI_texture_float + &__GLEW_ATI_texture_float, +#endif +#ifdef GL_ATI_texture_mirror_once + &__GLEW_ATI_texture_mirror_once, +#endif +#ifdef GL_ATI_vertex_array_object + &__GLEW_ATI_vertex_array_object, +#endif +#ifdef GL_ATI_vertex_attrib_array_object + &__GLEW_ATI_vertex_attrib_array_object, +#endif +#ifdef GL_ATI_vertex_streams + &__GLEW_ATI_vertex_streams, +#endif +#ifdef GL_DMP_program_binary + &__GLEW_DMP_program_binary, +#endif +#ifdef GL_DMP_shader_binary + &__GLEW_DMP_shader_binary, +#endif +#ifdef GL_EXT_422_pixels + &__GLEW_EXT_422_pixels, +#endif +#ifdef GL_EXT_Cg_shader + &__GLEW_EXT_Cg_shader, +#endif +#ifdef GL_EXT_EGL_image_array + &__GLEW_EXT_EGL_image_array, +#endif +#ifdef GL_EXT_EGL_image_external_wrap_modes + &__GLEW_EXT_EGL_image_external_wrap_modes, +#endif +#ifdef GL_EXT_EGL_image_storage + &__GLEW_EXT_EGL_image_storage, +#endif +#ifdef GL_EXT_EGL_sync + &__GLEW_EXT_EGL_sync, +#endif +#ifdef GL_EXT_YUV_target + &__GLEW_EXT_YUV_target, +#endif +#ifdef GL_EXT_abgr + &__GLEW_EXT_abgr, +#endif +#ifdef GL_EXT_base_instance + &__GLEW_EXT_base_instance, +#endif +#ifdef GL_EXT_bgra + &__GLEW_EXT_bgra, +#endif +#ifdef GL_EXT_bindable_uniform + &__GLEW_EXT_bindable_uniform, +#endif +#ifdef GL_EXT_blend_color + &__GLEW_EXT_blend_color, +#endif +#ifdef GL_EXT_blend_equation_separate + &__GLEW_EXT_blend_equation_separate, +#endif +#ifdef GL_EXT_blend_func_extended + &__GLEW_EXT_blend_func_extended, +#endif +#ifdef GL_EXT_blend_func_separate + &__GLEW_EXT_blend_func_separate, +#endif +#ifdef GL_EXT_blend_logic_op + &__GLEW_EXT_blend_logic_op, +#endif +#ifdef GL_EXT_blend_minmax + &__GLEW_EXT_blend_minmax, +#endif +#ifdef GL_EXT_blend_subtract + &__GLEW_EXT_blend_subtract, +#endif +#ifdef GL_EXT_buffer_storage + &__GLEW_EXT_buffer_storage, +#endif +#ifdef GL_EXT_clear_texture + &__GLEW_EXT_clear_texture, +#endif +#ifdef GL_EXT_clip_control + &__GLEW_EXT_clip_control, +#endif +#ifdef GL_EXT_clip_cull_distance + &__GLEW_EXT_clip_cull_distance, +#endif +#ifdef GL_EXT_clip_volume_hint + &__GLEW_EXT_clip_volume_hint, +#endif +#ifdef GL_EXT_cmyka + &__GLEW_EXT_cmyka, +#endif +#ifdef GL_EXT_color_buffer_float + &__GLEW_EXT_color_buffer_float, +#endif +#ifdef GL_EXT_color_buffer_half_float + &__GLEW_EXT_color_buffer_half_float, +#endif +#ifdef GL_EXT_color_subtable + &__GLEW_EXT_color_subtable, +#endif +#ifdef GL_EXT_compiled_vertex_array + &__GLEW_EXT_compiled_vertex_array, +#endif +#ifdef GL_EXT_compressed_ETC1_RGB8_sub_texture + &__GLEW_EXT_compressed_ETC1_RGB8_sub_texture, +#endif +#ifdef GL_EXT_conservative_depth + &__GLEW_EXT_conservative_depth, +#endif +#ifdef GL_EXT_convolution + &__GLEW_EXT_convolution, +#endif +#ifdef GL_EXT_coordinate_frame + &__GLEW_EXT_coordinate_frame, +#endif +#ifdef GL_EXT_copy_image + &__GLEW_EXT_copy_image, +#endif +#ifdef GL_EXT_copy_texture + &__GLEW_EXT_copy_texture, +#endif +#ifdef GL_EXT_cull_vertex + &__GLEW_EXT_cull_vertex, +#endif +#ifdef GL_EXT_debug_label + &__GLEW_EXT_debug_label, +#endif +#ifdef GL_EXT_debug_marker + &__GLEW_EXT_debug_marker, +#endif +#ifdef GL_EXT_depth_bounds_test + &__GLEW_EXT_depth_bounds_test, +#endif +#ifdef GL_EXT_depth_clamp + &__GLEW_EXT_depth_clamp, +#endif +#ifdef GL_EXT_direct_state_access + &__GLEW_EXT_direct_state_access, +#endif +#ifdef GL_EXT_discard_framebuffer + &__GLEW_EXT_discard_framebuffer, +#endif +#ifdef GL_EXT_disjoint_timer_query + &__GLEW_EXT_disjoint_timer_query, +#endif +#ifdef GL_EXT_draw_buffers + &__GLEW_EXT_draw_buffers, +#endif +#ifdef GL_EXT_draw_buffers2 + &__GLEW_EXT_draw_buffers2, +#endif +#ifdef GL_EXT_draw_buffers_indexed + &__GLEW_EXT_draw_buffers_indexed, +#endif +#ifdef GL_EXT_draw_elements_base_vertex + &__GLEW_EXT_draw_elements_base_vertex, +#endif +#ifdef GL_EXT_draw_instanced + &__GLEW_EXT_draw_instanced, +#endif +#ifdef GL_EXT_draw_range_elements + &__GLEW_EXT_draw_range_elements, +#endif +#ifdef GL_EXT_draw_transform_feedback + &__GLEW_EXT_draw_transform_feedback, +#endif +#ifdef GL_EXT_external_buffer + &__GLEW_EXT_external_buffer, +#endif +#ifdef GL_EXT_float_blend + &__GLEW_EXT_float_blend, +#endif +#ifdef GL_EXT_fog_coord + &__GLEW_EXT_fog_coord, +#endif +#ifdef GL_EXT_frag_depth + &__GLEW_EXT_frag_depth, +#endif +#ifdef GL_EXT_fragment_lighting + &__GLEW_EXT_fragment_lighting, +#endif +#ifdef GL_EXT_framebuffer_blit + &__GLEW_EXT_framebuffer_blit, +#endif +#ifdef GL_EXT_framebuffer_multisample + &__GLEW_EXT_framebuffer_multisample, +#endif +#ifdef GL_EXT_framebuffer_multisample_blit_scaled + &__GLEW_EXT_framebuffer_multisample_blit_scaled, +#endif +#ifdef GL_EXT_framebuffer_object + &__GLEW_EXT_framebuffer_object, +#endif +#ifdef GL_EXT_framebuffer_sRGB + &__GLEW_EXT_framebuffer_sRGB, +#endif +#ifdef GL_EXT_geometry_point_size + &__GLEW_EXT_geometry_point_size, +#endif +#ifdef GL_EXT_geometry_shader + &__GLEW_EXT_geometry_shader, +#endif +#ifdef GL_EXT_geometry_shader4 + &__GLEW_EXT_geometry_shader4, +#endif +#ifdef GL_EXT_gpu_program_parameters + &__GLEW_EXT_gpu_program_parameters, +#endif +#ifdef GL_EXT_gpu_shader4 + &__GLEW_EXT_gpu_shader4, +#endif +#ifdef GL_EXT_gpu_shader5 + &__GLEW_EXT_gpu_shader5, +#endif +#ifdef GL_EXT_histogram + &__GLEW_EXT_histogram, +#endif +#ifdef GL_EXT_index_array_formats + &__GLEW_EXT_index_array_formats, +#endif +#ifdef GL_EXT_index_func + &__GLEW_EXT_index_func, +#endif +#ifdef GL_EXT_index_material + &__GLEW_EXT_index_material, +#endif +#ifdef GL_EXT_index_texture + &__GLEW_EXT_index_texture, +#endif +#ifdef GL_EXT_instanced_arrays + &__GLEW_EXT_instanced_arrays, +#endif +#ifdef GL_EXT_light_texture + &__GLEW_EXT_light_texture, +#endif +#ifdef GL_EXT_map_buffer_range + &__GLEW_EXT_map_buffer_range, +#endif +#ifdef GL_EXT_memory_object + &__GLEW_EXT_memory_object, +#endif +#ifdef GL_EXT_memory_object_fd + &__GLEW_EXT_memory_object_fd, +#endif +#ifdef GL_EXT_memory_object_win32 + &__GLEW_EXT_memory_object_win32, +#endif +#ifdef GL_EXT_misc_attribute + &__GLEW_EXT_misc_attribute, +#endif +#ifdef GL_EXT_multi_draw_arrays + &__GLEW_EXT_multi_draw_arrays, +#endif +#ifdef GL_EXT_multi_draw_indirect + &__GLEW_EXT_multi_draw_indirect, +#endif +#ifdef GL_EXT_multiple_textures + &__GLEW_EXT_multiple_textures, +#endif +#ifdef GL_EXT_multisample + &__GLEW_EXT_multisample, +#endif +#ifdef GL_EXT_multisample_compatibility + &__GLEW_EXT_multisample_compatibility, +#endif +#ifdef GL_EXT_multisampled_render_to_texture + &__GLEW_EXT_multisampled_render_to_texture, +#endif +#ifdef GL_EXT_multisampled_render_to_texture2 + &__GLEW_EXT_multisampled_render_to_texture2, +#endif +#ifdef GL_EXT_multiview_draw_buffers + &__GLEW_EXT_multiview_draw_buffers, +#endif +#ifdef GL_EXT_multiview_tessellation_geometry_shader + &__GLEW_EXT_multiview_tessellation_geometry_shader, +#endif +#ifdef GL_EXT_multiview_texture_multisample + &__GLEW_EXT_multiview_texture_multisample, +#endif +#ifdef GL_EXT_multiview_timer_query + &__GLEW_EXT_multiview_timer_query, +#endif +#ifdef GL_EXT_occlusion_query_boolean + &__GLEW_EXT_occlusion_query_boolean, +#endif +#ifdef GL_EXT_packed_depth_stencil + &__GLEW_EXT_packed_depth_stencil, +#endif +#ifdef GL_EXT_packed_float + &__GLEW_EXT_packed_float, +#endif +#ifdef GL_EXT_packed_pixels + &__GLEW_EXT_packed_pixels, +#endif +#ifdef GL_EXT_paletted_texture + &__GLEW_EXT_paletted_texture, +#endif +#ifdef GL_EXT_pixel_buffer_object + &__GLEW_EXT_pixel_buffer_object, +#endif +#ifdef GL_EXT_pixel_transform + &__GLEW_EXT_pixel_transform, +#endif +#ifdef GL_EXT_pixel_transform_color_table + &__GLEW_EXT_pixel_transform_color_table, +#endif +#ifdef GL_EXT_point_parameters + &__GLEW_EXT_point_parameters, +#endif +#ifdef GL_EXT_polygon_offset + &__GLEW_EXT_polygon_offset, +#endif +#ifdef GL_EXT_polygon_offset_clamp + &__GLEW_EXT_polygon_offset_clamp, +#endif +#ifdef GL_EXT_post_depth_coverage + &__GLEW_EXT_post_depth_coverage, +#endif +#ifdef GL_EXT_primitive_bounding_box + &__GLEW_EXT_primitive_bounding_box, +#endif +#ifdef GL_EXT_protected_textures + &__GLEW_EXT_protected_textures, +#endif +#ifdef GL_EXT_provoking_vertex + &__GLEW_EXT_provoking_vertex, +#endif +#ifdef GL_EXT_pvrtc_sRGB + &__GLEW_EXT_pvrtc_sRGB, +#endif +#ifdef GL_EXT_raster_multisample + &__GLEW_EXT_raster_multisample, +#endif +#ifdef GL_EXT_read_format_bgra + &__GLEW_EXT_read_format_bgra, +#endif +#ifdef GL_EXT_render_snorm + &__GLEW_EXT_render_snorm, +#endif +#ifdef GL_EXT_rescale_normal + &__GLEW_EXT_rescale_normal, +#endif +#ifdef GL_EXT_robustness + &__GLEW_EXT_robustness, +#endif +#ifdef GL_EXT_sRGB + &__GLEW_EXT_sRGB, +#endif +#ifdef GL_EXT_sRGB_write_control + &__GLEW_EXT_sRGB_write_control, +#endif +#ifdef GL_EXT_scene_marker + &__GLEW_EXT_scene_marker, +#endif +#ifdef GL_EXT_secondary_color + &__GLEW_EXT_secondary_color, +#endif +#ifdef GL_EXT_semaphore + &__GLEW_EXT_semaphore, +#endif +#ifdef GL_EXT_semaphore_fd + &__GLEW_EXT_semaphore_fd, +#endif +#ifdef GL_EXT_semaphore_win32 + &__GLEW_EXT_semaphore_win32, +#endif +#ifdef GL_EXT_separate_shader_objects + &__GLEW_EXT_separate_shader_objects, +#endif +#ifdef GL_EXT_separate_specular_color + &__GLEW_EXT_separate_specular_color, +#endif +#ifdef GL_EXT_shader_framebuffer_fetch + &__GLEW_EXT_shader_framebuffer_fetch, +#endif +#ifdef GL_EXT_shader_framebuffer_fetch_non_coherent + &__GLEW_EXT_shader_framebuffer_fetch_non_coherent, +#endif +#ifdef GL_EXT_shader_group_vote + &__GLEW_EXT_shader_group_vote, +#endif +#ifdef GL_EXT_shader_image_load_formatted + &__GLEW_EXT_shader_image_load_formatted, +#endif +#ifdef GL_EXT_shader_image_load_store + &__GLEW_EXT_shader_image_load_store, +#endif +#ifdef GL_EXT_shader_implicit_conversions + &__GLEW_EXT_shader_implicit_conversions, +#endif +#ifdef GL_EXT_shader_integer_mix + &__GLEW_EXT_shader_integer_mix, +#endif +#ifdef GL_EXT_shader_io_blocks + &__GLEW_EXT_shader_io_blocks, +#endif +#ifdef GL_EXT_shader_non_constant_global_initializers + &__GLEW_EXT_shader_non_constant_global_initializers, +#endif +#ifdef GL_EXT_shader_pixel_local_storage + &__GLEW_EXT_shader_pixel_local_storage, +#endif +#ifdef GL_EXT_shader_pixel_local_storage2 + &__GLEW_EXT_shader_pixel_local_storage2, +#endif +#ifdef GL_EXT_shader_texture_lod + &__GLEW_EXT_shader_texture_lod, +#endif +#ifdef GL_EXT_shadow_funcs + &__GLEW_EXT_shadow_funcs, +#endif +#ifdef GL_EXT_shadow_samplers + &__GLEW_EXT_shadow_samplers, +#endif +#ifdef GL_EXT_shared_texture_palette + &__GLEW_EXT_shared_texture_palette, +#endif +#ifdef GL_EXT_sparse_texture + &__GLEW_EXT_sparse_texture, +#endif +#ifdef GL_EXT_sparse_texture2 + &__GLEW_EXT_sparse_texture2, +#endif +#ifdef GL_EXT_static_vertex_array + &__GLEW_EXT_static_vertex_array, +#endif +#ifdef GL_EXT_stencil_clear_tag + &__GLEW_EXT_stencil_clear_tag, +#endif +#ifdef GL_EXT_stencil_two_side + &__GLEW_EXT_stencil_two_side, +#endif +#ifdef GL_EXT_stencil_wrap + &__GLEW_EXT_stencil_wrap, +#endif +#ifdef GL_EXT_subtexture + &__GLEW_EXT_subtexture, +#endif +#ifdef GL_EXT_tessellation_point_size + &__GLEW_EXT_tessellation_point_size, +#endif +#ifdef GL_EXT_tessellation_shader + &__GLEW_EXT_tessellation_shader, +#endif +#ifdef GL_EXT_texture + &__GLEW_EXT_texture, +#endif +#ifdef GL_EXT_texture3D + &__GLEW_EXT_texture3D, +#endif +#ifdef GL_EXT_texture_array + &__GLEW_EXT_texture_array, +#endif +#ifdef GL_EXT_texture_border_clamp + &__GLEW_EXT_texture_border_clamp, +#endif +#ifdef GL_EXT_texture_buffer + &__GLEW_EXT_texture_buffer, +#endif +#ifdef GL_EXT_texture_buffer_object + &__GLEW_EXT_texture_buffer_object, +#endif +#ifdef GL_EXT_texture_compression_astc_decode_mode + &__GLEW_EXT_texture_compression_astc_decode_mode, +#endif +#ifdef GL_EXT_texture_compression_astc_decode_mode_rgb9e5 + &__GLEW_EXT_texture_compression_astc_decode_mode_rgb9e5, +#endif +#ifdef GL_EXT_texture_compression_bptc + &__GLEW_EXT_texture_compression_bptc, +#endif +#ifdef GL_EXT_texture_compression_dxt1 + &__GLEW_EXT_texture_compression_dxt1, +#endif +#ifdef GL_EXT_texture_compression_latc + &__GLEW_EXT_texture_compression_latc, +#endif +#ifdef GL_EXT_texture_compression_rgtc + &__GLEW_EXT_texture_compression_rgtc, +#endif +#ifdef GL_EXT_texture_compression_s3tc + &__GLEW_EXT_texture_compression_s3tc, +#endif +#ifdef GL_EXT_texture_compression_s3tc_srgb + &__GLEW_EXT_texture_compression_s3tc_srgb, +#endif +#ifdef GL_EXT_texture_cube_map + &__GLEW_EXT_texture_cube_map, +#endif +#ifdef GL_EXT_texture_cube_map_array + &__GLEW_EXT_texture_cube_map_array, +#endif +#ifdef GL_EXT_texture_edge_clamp + &__GLEW_EXT_texture_edge_clamp, +#endif +#ifdef GL_EXT_texture_env + &__GLEW_EXT_texture_env, +#endif +#ifdef GL_EXT_texture_env_add + &__GLEW_EXT_texture_env_add, +#endif +#ifdef GL_EXT_texture_env_combine + &__GLEW_EXT_texture_env_combine, +#endif +#ifdef GL_EXT_texture_env_dot3 + &__GLEW_EXT_texture_env_dot3, +#endif +#ifdef GL_EXT_texture_filter_anisotropic + &__GLEW_EXT_texture_filter_anisotropic, +#endif +#ifdef GL_EXT_texture_filter_minmax + &__GLEW_EXT_texture_filter_minmax, +#endif +#ifdef GL_EXT_texture_format_BGRA8888 + &__GLEW_EXT_texture_format_BGRA8888, +#endif +#ifdef GL_EXT_texture_format_sRGB_override + &__GLEW_EXT_texture_format_sRGB_override, +#endif +#ifdef GL_EXT_texture_integer + &__GLEW_EXT_texture_integer, +#endif +#ifdef GL_EXT_texture_lod_bias + &__GLEW_EXT_texture_lod_bias, +#endif +#ifdef GL_EXT_texture_mirror_clamp + &__GLEW_EXT_texture_mirror_clamp, +#endif +#ifdef GL_EXT_texture_mirror_clamp_to_edge + &__GLEW_EXT_texture_mirror_clamp_to_edge, +#endif +#ifdef GL_EXT_texture_norm16 + &__GLEW_EXT_texture_norm16, +#endif +#ifdef GL_EXT_texture_object + &__GLEW_EXT_texture_object, +#endif +#ifdef GL_EXT_texture_perturb_normal + &__GLEW_EXT_texture_perturb_normal, +#endif +#ifdef GL_EXT_texture_query_lod + &__GLEW_EXT_texture_query_lod, +#endif +#ifdef GL_EXT_texture_rectangle + &__GLEW_EXT_texture_rectangle, +#endif +#ifdef GL_EXT_texture_rg + &__GLEW_EXT_texture_rg, +#endif +#ifdef GL_EXT_texture_sRGB + &__GLEW_EXT_texture_sRGB, +#endif +#ifdef GL_EXT_texture_sRGB_R8 + &__GLEW_EXT_texture_sRGB_R8, +#endif +#ifdef GL_EXT_texture_sRGB_RG8 + &__GLEW_EXT_texture_sRGB_RG8, +#endif +#ifdef GL_EXT_texture_sRGB_decode + &__GLEW_EXT_texture_sRGB_decode, +#endif +#ifdef GL_EXT_texture_shadow_lod + &__GLEW_EXT_texture_shadow_lod, +#endif +#ifdef GL_EXT_texture_shared_exponent + &__GLEW_EXT_texture_shared_exponent, +#endif +#ifdef GL_EXT_texture_snorm + &__GLEW_EXT_texture_snorm, +#endif +#ifdef GL_EXT_texture_storage + &__GLEW_EXT_texture_storage, +#endif +#ifdef GL_EXT_texture_swizzle + &__GLEW_EXT_texture_swizzle, +#endif +#ifdef GL_EXT_texture_type_2_10_10_10_REV + &__GLEW_EXT_texture_type_2_10_10_10_REV, +#endif +#ifdef GL_EXT_texture_view + &__GLEW_EXT_texture_view, +#endif +#ifdef GL_EXT_timer_query + &__GLEW_EXT_timer_query, +#endif +#ifdef GL_EXT_transform_feedback + &__GLEW_EXT_transform_feedback, +#endif +#ifdef GL_EXT_unpack_subimage + &__GLEW_EXT_unpack_subimage, +#endif +#ifdef GL_EXT_vertex_array + &__GLEW_EXT_vertex_array, +#endif +#ifdef GL_EXT_vertex_array_bgra + &__GLEW_EXT_vertex_array_bgra, +#endif +#ifdef GL_EXT_vertex_array_setXXX + &__GLEW_EXT_vertex_array_setXXX, +#endif +#ifdef GL_EXT_vertex_attrib_64bit + &__GLEW_EXT_vertex_attrib_64bit, +#endif +#ifdef GL_EXT_vertex_shader + &__GLEW_EXT_vertex_shader, +#endif +#ifdef GL_EXT_vertex_weighting + &__GLEW_EXT_vertex_weighting, +#endif +#ifdef GL_EXT_win32_keyed_mutex + &__GLEW_EXT_win32_keyed_mutex, +#endif +#ifdef GL_EXT_window_rectangles + &__GLEW_EXT_window_rectangles, +#endif +#ifdef GL_EXT_x11_sync_object + &__GLEW_EXT_x11_sync_object, +#endif +#ifdef GL_FJ_shader_binary_GCCSO + &__GLEW_FJ_shader_binary_GCCSO, +#endif +#ifdef GL_GREMEDY_frame_terminator + &__GLEW_GREMEDY_frame_terminator, +#endif +#ifdef GL_GREMEDY_string_marker + &__GLEW_GREMEDY_string_marker, +#endif +#ifdef GL_HP_convolution_border_modes + &__GLEW_HP_convolution_border_modes, +#endif +#ifdef GL_HP_image_transform + &__GLEW_HP_image_transform, +#endif +#ifdef GL_HP_occlusion_test + &__GLEW_HP_occlusion_test, +#endif +#ifdef GL_HP_texture_lighting + &__GLEW_HP_texture_lighting, +#endif +#ifdef GL_IBM_cull_vertex + &__GLEW_IBM_cull_vertex, +#endif +#ifdef GL_IBM_multimode_draw_arrays + &__GLEW_IBM_multimode_draw_arrays, +#endif +#ifdef GL_IBM_rasterpos_clip + &__GLEW_IBM_rasterpos_clip, +#endif +#ifdef GL_IBM_static_data + &__GLEW_IBM_static_data, +#endif +#ifdef GL_IBM_texture_mirrored_repeat + &__GLEW_IBM_texture_mirrored_repeat, +#endif +#ifdef GL_IBM_vertex_array_lists + &__GLEW_IBM_vertex_array_lists, +#endif +#ifdef GL_IMG_bindless_texture + &__GLEW_IMG_bindless_texture, +#endif +#ifdef GL_IMG_framebuffer_downsample + &__GLEW_IMG_framebuffer_downsample, +#endif +#ifdef GL_IMG_multisampled_render_to_texture + &__GLEW_IMG_multisampled_render_to_texture, +#endif +#ifdef GL_IMG_program_binary + &__GLEW_IMG_program_binary, +#endif +#ifdef GL_IMG_read_format + &__GLEW_IMG_read_format, +#endif +#ifdef GL_IMG_shader_binary + &__GLEW_IMG_shader_binary, +#endif +#ifdef GL_IMG_texture_compression_pvrtc + &__GLEW_IMG_texture_compression_pvrtc, +#endif +#ifdef GL_IMG_texture_compression_pvrtc2 + &__GLEW_IMG_texture_compression_pvrtc2, +#endif +#ifdef GL_IMG_texture_env_enhanced_fixed_function + &__GLEW_IMG_texture_env_enhanced_fixed_function, +#endif +#ifdef GL_IMG_texture_filter_cubic + &__GLEW_IMG_texture_filter_cubic, +#endif +#ifdef GL_INGR_color_clamp + &__GLEW_INGR_color_clamp, +#endif +#ifdef GL_INGR_interlace_read + &__GLEW_INGR_interlace_read, +#endif +#ifdef GL_INTEL_blackhole_render + &__GLEW_INTEL_blackhole_render, +#endif +#ifdef GL_INTEL_conservative_rasterization + &__GLEW_INTEL_conservative_rasterization, +#endif +#ifdef GL_INTEL_fragment_shader_ordering + &__GLEW_INTEL_fragment_shader_ordering, +#endif +#ifdef GL_INTEL_framebuffer_CMAA + &__GLEW_INTEL_framebuffer_CMAA, +#endif +#ifdef GL_INTEL_map_texture + &__GLEW_INTEL_map_texture, +#endif +#ifdef GL_INTEL_parallel_arrays + &__GLEW_INTEL_parallel_arrays, +#endif +#ifdef GL_INTEL_performance_query + &__GLEW_INTEL_performance_query, +#endif +#ifdef GL_INTEL_shader_integer_functions2 + &__GLEW_INTEL_shader_integer_functions2, +#endif +#ifdef GL_INTEL_texture_scissor + &__GLEW_INTEL_texture_scissor, +#endif +#ifdef GL_KHR_blend_equation_advanced + &__GLEW_KHR_blend_equation_advanced, +#endif +#ifdef GL_KHR_blend_equation_advanced_coherent + &__GLEW_KHR_blend_equation_advanced_coherent, +#endif +#ifdef GL_KHR_context_flush_control + &__GLEW_KHR_context_flush_control, +#endif +#ifdef GL_KHR_debug + &__GLEW_KHR_debug, +#endif +#ifdef GL_KHR_no_error + &__GLEW_KHR_no_error, +#endif +#ifdef GL_KHR_parallel_shader_compile + &__GLEW_KHR_parallel_shader_compile, +#endif +#ifdef GL_KHR_robust_buffer_access_behavior + &__GLEW_KHR_robust_buffer_access_behavior, +#endif +#ifdef GL_KHR_robustness + &__GLEW_KHR_robustness, +#endif +#ifdef GL_KHR_shader_subgroup + &__GLEW_KHR_shader_subgroup, +#endif +#ifdef GL_KHR_texture_compression_astc_hdr + &__GLEW_KHR_texture_compression_astc_hdr, +#endif +#ifdef GL_KHR_texture_compression_astc_ldr + &__GLEW_KHR_texture_compression_astc_ldr, +#endif +#ifdef GL_KHR_texture_compression_astc_sliced_3d + &__GLEW_KHR_texture_compression_astc_sliced_3d, +#endif +#ifdef GL_KTX_buffer_region + &__GLEW_KTX_buffer_region, +#endif +#ifdef GL_MESAX_texture_stack + &__GLEW_MESAX_texture_stack, +#endif +#ifdef GL_MESA_framebuffer_flip_y + &__GLEW_MESA_framebuffer_flip_y, +#endif +#ifdef GL_MESA_pack_invert + &__GLEW_MESA_pack_invert, +#endif +#ifdef GL_MESA_program_binary_formats + &__GLEW_MESA_program_binary_formats, +#endif +#ifdef GL_MESA_resize_buffers + &__GLEW_MESA_resize_buffers, +#endif +#ifdef GL_MESA_shader_integer_functions + &__GLEW_MESA_shader_integer_functions, +#endif +#ifdef GL_MESA_tile_raster_order + &__GLEW_MESA_tile_raster_order, +#endif +#ifdef GL_MESA_window_pos + &__GLEW_MESA_window_pos, +#endif +#ifdef GL_MESA_ycbcr_texture + &__GLEW_MESA_ycbcr_texture, +#endif +#ifdef GL_NVX_blend_equation_advanced_multi_draw_buffers + &__GLEW_NVX_blend_equation_advanced_multi_draw_buffers, +#endif +#ifdef GL_NVX_conditional_render + &__GLEW_NVX_conditional_render, +#endif +#ifdef GL_NVX_gpu_memory_info + &__GLEW_NVX_gpu_memory_info, +#endif +#ifdef GL_NVX_gpu_multicast2 + &__GLEW_NVX_gpu_multicast2, +#endif +#ifdef GL_NVX_linked_gpu_multicast + &__GLEW_NVX_linked_gpu_multicast, +#endif +#ifdef GL_NVX_progress_fence + &__GLEW_NVX_progress_fence, +#endif +#ifdef GL_NV_3dvision_settings + &__GLEW_NV_3dvision_settings, +#endif +#ifdef GL_NV_EGL_stream_consumer_external + &__GLEW_NV_EGL_stream_consumer_external, +#endif +#ifdef GL_NV_alpha_to_coverage_dither_control + &__GLEW_NV_alpha_to_coverage_dither_control, +#endif +#ifdef GL_NV_bgr + &__GLEW_NV_bgr, +#endif +#ifdef GL_NV_bindless_multi_draw_indirect + &__GLEW_NV_bindless_multi_draw_indirect, +#endif +#ifdef GL_NV_bindless_multi_draw_indirect_count + &__GLEW_NV_bindless_multi_draw_indirect_count, +#endif +#ifdef GL_NV_bindless_texture + &__GLEW_NV_bindless_texture, +#endif +#ifdef GL_NV_blend_equation_advanced + &__GLEW_NV_blend_equation_advanced, +#endif +#ifdef GL_NV_blend_equation_advanced_coherent + &__GLEW_NV_blend_equation_advanced_coherent, +#endif +#ifdef GL_NV_blend_minmax_factor + &__GLEW_NV_blend_minmax_factor, +#endif +#ifdef GL_NV_blend_square + &__GLEW_NV_blend_square, +#endif +#ifdef GL_NV_clip_space_w_scaling + &__GLEW_NV_clip_space_w_scaling, +#endif +#ifdef GL_NV_command_list + &__GLEW_NV_command_list, +#endif +#ifdef GL_NV_compute_program5 + &__GLEW_NV_compute_program5, +#endif +#ifdef GL_NV_compute_shader_derivatives + &__GLEW_NV_compute_shader_derivatives, +#endif +#ifdef GL_NV_conditional_render + &__GLEW_NV_conditional_render, +#endif +#ifdef GL_NV_conservative_raster + &__GLEW_NV_conservative_raster, +#endif +#ifdef GL_NV_conservative_raster_dilate + &__GLEW_NV_conservative_raster_dilate, +#endif +#ifdef GL_NV_conservative_raster_pre_snap + &__GLEW_NV_conservative_raster_pre_snap, +#endif +#ifdef GL_NV_conservative_raster_pre_snap_triangles + &__GLEW_NV_conservative_raster_pre_snap_triangles, +#endif +#ifdef GL_NV_conservative_raster_underestimation + &__GLEW_NV_conservative_raster_underestimation, +#endif +#ifdef GL_NV_copy_buffer + &__GLEW_NV_copy_buffer, +#endif +#ifdef GL_NV_copy_depth_to_color + &__GLEW_NV_copy_depth_to_color, +#endif +#ifdef GL_NV_copy_image + &__GLEW_NV_copy_image, +#endif +#ifdef GL_NV_deep_texture3D + &__GLEW_NV_deep_texture3D, +#endif +#ifdef GL_NV_depth_buffer_float + &__GLEW_NV_depth_buffer_float, +#endif +#ifdef GL_NV_depth_clamp + &__GLEW_NV_depth_clamp, +#endif +#ifdef GL_NV_depth_nonlinear + &__GLEW_NV_depth_nonlinear, +#endif +#ifdef GL_NV_depth_range_unclamped + &__GLEW_NV_depth_range_unclamped, +#endif +#ifdef GL_NV_draw_buffers + &__GLEW_NV_draw_buffers, +#endif +#ifdef GL_NV_draw_instanced + &__GLEW_NV_draw_instanced, +#endif +#ifdef GL_NV_draw_texture + &__GLEW_NV_draw_texture, +#endif +#ifdef GL_NV_draw_vulkan_image + &__GLEW_NV_draw_vulkan_image, +#endif +#ifdef GL_NV_evaluators + &__GLEW_NV_evaluators, +#endif +#ifdef GL_NV_explicit_attrib_location + &__GLEW_NV_explicit_attrib_location, +#endif +#ifdef GL_NV_explicit_multisample + &__GLEW_NV_explicit_multisample, +#endif +#ifdef GL_NV_fbo_color_attachments + &__GLEW_NV_fbo_color_attachments, +#endif +#ifdef GL_NV_fence + &__GLEW_NV_fence, +#endif +#ifdef GL_NV_fill_rectangle + &__GLEW_NV_fill_rectangle, +#endif +#ifdef GL_NV_float_buffer + &__GLEW_NV_float_buffer, +#endif +#ifdef GL_NV_fog_distance + &__GLEW_NV_fog_distance, +#endif +#ifdef GL_NV_fragment_coverage_to_color + &__GLEW_NV_fragment_coverage_to_color, +#endif +#ifdef GL_NV_fragment_program + &__GLEW_NV_fragment_program, +#endif +#ifdef GL_NV_fragment_program2 + &__GLEW_NV_fragment_program2, +#endif +#ifdef GL_NV_fragment_program4 + &__GLEW_NV_fragment_program4, +#endif +#ifdef GL_NV_fragment_program_option + &__GLEW_NV_fragment_program_option, +#endif +#ifdef GL_NV_fragment_shader_barycentric + &__GLEW_NV_fragment_shader_barycentric, +#endif +#ifdef GL_NV_fragment_shader_interlock + &__GLEW_NV_fragment_shader_interlock, +#endif +#ifdef GL_NV_framebuffer_blit + &__GLEW_NV_framebuffer_blit, +#endif +#ifdef GL_NV_framebuffer_mixed_samples + &__GLEW_NV_framebuffer_mixed_samples, +#endif +#ifdef GL_NV_framebuffer_multisample + &__GLEW_NV_framebuffer_multisample, +#endif +#ifdef GL_NV_framebuffer_multisample_coverage + &__GLEW_NV_framebuffer_multisample_coverage, +#endif +#ifdef GL_NV_generate_mipmap_sRGB + &__GLEW_NV_generate_mipmap_sRGB, +#endif +#ifdef GL_NV_geometry_program4 + &__GLEW_NV_geometry_program4, +#endif +#ifdef GL_NV_geometry_shader4 + &__GLEW_NV_geometry_shader4, +#endif +#ifdef GL_NV_geometry_shader_passthrough + &__GLEW_NV_geometry_shader_passthrough, +#endif +#ifdef GL_NV_gpu_multicast + &__GLEW_NV_gpu_multicast, +#endif +#ifdef GL_NV_gpu_program4 + &__GLEW_NV_gpu_program4, +#endif +#ifdef GL_NV_gpu_program5 + &__GLEW_NV_gpu_program5, +#endif +#ifdef GL_NV_gpu_program5_mem_extended + &__GLEW_NV_gpu_program5_mem_extended, +#endif +#ifdef GL_NV_gpu_program_fp64 + &__GLEW_NV_gpu_program_fp64, +#endif +#ifdef GL_NV_gpu_shader5 + &__GLEW_NV_gpu_shader5, +#endif +#ifdef GL_NV_half_float + &__GLEW_NV_half_float, +#endif +#ifdef GL_NV_image_formats + &__GLEW_NV_image_formats, +#endif +#ifdef GL_NV_instanced_arrays + &__GLEW_NV_instanced_arrays, +#endif +#ifdef GL_NV_internalformat_sample_query + &__GLEW_NV_internalformat_sample_query, +#endif +#ifdef GL_NV_light_max_exponent + &__GLEW_NV_light_max_exponent, +#endif +#ifdef GL_NV_memory_attachment + &__GLEW_NV_memory_attachment, +#endif +#ifdef GL_NV_mesh_shader + &__GLEW_NV_mesh_shader, +#endif +#ifdef GL_NV_multisample_coverage + &__GLEW_NV_multisample_coverage, +#endif +#ifdef GL_NV_multisample_filter_hint + &__GLEW_NV_multisample_filter_hint, +#endif +#ifdef GL_NV_non_square_matrices + &__GLEW_NV_non_square_matrices, +#endif +#ifdef GL_NV_occlusion_query + &__GLEW_NV_occlusion_query, +#endif +#ifdef GL_NV_pack_subimage + &__GLEW_NV_pack_subimage, +#endif +#ifdef GL_NV_packed_depth_stencil + &__GLEW_NV_packed_depth_stencil, +#endif +#ifdef GL_NV_packed_float + &__GLEW_NV_packed_float, +#endif +#ifdef GL_NV_packed_float_linear + &__GLEW_NV_packed_float_linear, +#endif +#ifdef GL_NV_parameter_buffer_object + &__GLEW_NV_parameter_buffer_object, +#endif +#ifdef GL_NV_parameter_buffer_object2 + &__GLEW_NV_parameter_buffer_object2, +#endif +#ifdef GL_NV_path_rendering + &__GLEW_NV_path_rendering, +#endif +#ifdef GL_NV_path_rendering_shared_edge + &__GLEW_NV_path_rendering_shared_edge, +#endif +#ifdef GL_NV_pixel_buffer_object + &__GLEW_NV_pixel_buffer_object, +#endif +#ifdef GL_NV_pixel_data_range + &__GLEW_NV_pixel_data_range, +#endif +#ifdef GL_NV_platform_binary + &__GLEW_NV_platform_binary, +#endif +#ifdef GL_NV_point_sprite + &__GLEW_NV_point_sprite, +#endif +#ifdef GL_NV_polygon_mode + &__GLEW_NV_polygon_mode, +#endif +#ifdef GL_NV_present_video + &__GLEW_NV_present_video, +#endif +#ifdef GL_NV_primitive_restart + &__GLEW_NV_primitive_restart, +#endif +#ifdef GL_NV_query_resource_tag + &__GLEW_NV_query_resource_tag, +#endif +#ifdef GL_NV_read_buffer + &__GLEW_NV_read_buffer, +#endif +#ifdef GL_NV_read_buffer_front + &__GLEW_NV_read_buffer_front, +#endif +#ifdef GL_NV_read_depth + &__GLEW_NV_read_depth, +#endif +#ifdef GL_NV_read_depth_stencil + &__GLEW_NV_read_depth_stencil, +#endif +#ifdef GL_NV_read_stencil + &__GLEW_NV_read_stencil, +#endif +#ifdef GL_NV_register_combiners + &__GLEW_NV_register_combiners, +#endif +#ifdef GL_NV_register_combiners2 + &__GLEW_NV_register_combiners2, +#endif +#ifdef GL_NV_representative_fragment_test + &__GLEW_NV_representative_fragment_test, +#endif +#ifdef GL_NV_robustness_video_memory_purge + &__GLEW_NV_robustness_video_memory_purge, +#endif +#ifdef GL_NV_sRGB_formats + &__GLEW_NV_sRGB_formats, +#endif +#ifdef GL_NV_sample_locations + &__GLEW_NV_sample_locations, +#endif +#ifdef GL_NV_sample_mask_override_coverage + &__GLEW_NV_sample_mask_override_coverage, +#endif +#ifdef GL_NV_scissor_exclusive + &__GLEW_NV_scissor_exclusive, +#endif +#ifdef GL_NV_shader_atomic_counters + &__GLEW_NV_shader_atomic_counters, +#endif +#ifdef GL_NV_shader_atomic_float + &__GLEW_NV_shader_atomic_float, +#endif +#ifdef GL_NV_shader_atomic_float64 + &__GLEW_NV_shader_atomic_float64, +#endif +#ifdef GL_NV_shader_atomic_fp16_vector + &__GLEW_NV_shader_atomic_fp16_vector, +#endif +#ifdef GL_NV_shader_atomic_int64 + &__GLEW_NV_shader_atomic_int64, +#endif +#ifdef GL_NV_shader_buffer_load + &__GLEW_NV_shader_buffer_load, +#endif +#ifdef GL_NV_shader_noperspective_interpolation + &__GLEW_NV_shader_noperspective_interpolation, +#endif +#ifdef GL_NV_shader_storage_buffer_object + &__GLEW_NV_shader_storage_buffer_object, +#endif +#ifdef GL_NV_shader_subgroup_partitioned + &__GLEW_NV_shader_subgroup_partitioned, +#endif +#ifdef GL_NV_shader_texture_footprint + &__GLEW_NV_shader_texture_footprint, +#endif +#ifdef GL_NV_shader_thread_group + &__GLEW_NV_shader_thread_group, +#endif +#ifdef GL_NV_shader_thread_shuffle + &__GLEW_NV_shader_thread_shuffle, +#endif +#ifdef GL_NV_shading_rate_image + &__GLEW_NV_shading_rate_image, +#endif +#ifdef GL_NV_shadow_samplers_array + &__GLEW_NV_shadow_samplers_array, +#endif +#ifdef GL_NV_shadow_samplers_cube + &__GLEW_NV_shadow_samplers_cube, +#endif +#ifdef GL_NV_stereo_view_rendering + &__GLEW_NV_stereo_view_rendering, +#endif +#ifdef GL_NV_tessellation_program5 + &__GLEW_NV_tessellation_program5, +#endif +#ifdef GL_NV_texgen_emboss + &__GLEW_NV_texgen_emboss, +#endif +#ifdef GL_NV_texgen_reflection + &__GLEW_NV_texgen_reflection, +#endif +#ifdef GL_NV_texture_array + &__GLEW_NV_texture_array, +#endif +#ifdef GL_NV_texture_barrier + &__GLEW_NV_texture_barrier, +#endif +#ifdef GL_NV_texture_border_clamp + &__GLEW_NV_texture_border_clamp, +#endif +#ifdef GL_NV_texture_compression_latc + &__GLEW_NV_texture_compression_latc, +#endif +#ifdef GL_NV_texture_compression_s3tc + &__GLEW_NV_texture_compression_s3tc, +#endif +#ifdef GL_NV_texture_compression_s3tc_update + &__GLEW_NV_texture_compression_s3tc_update, +#endif +#ifdef GL_NV_texture_compression_vtc + &__GLEW_NV_texture_compression_vtc, +#endif +#ifdef GL_NV_texture_env_combine4 + &__GLEW_NV_texture_env_combine4, +#endif +#ifdef GL_NV_texture_expand_normal + &__GLEW_NV_texture_expand_normal, +#endif +#ifdef GL_NV_texture_multisample + &__GLEW_NV_texture_multisample, +#endif +#ifdef GL_NV_texture_npot_2D_mipmap + &__GLEW_NV_texture_npot_2D_mipmap, +#endif +#ifdef GL_NV_texture_rectangle + &__GLEW_NV_texture_rectangle, +#endif +#ifdef GL_NV_texture_rectangle_compressed + &__GLEW_NV_texture_rectangle_compressed, +#endif +#ifdef GL_NV_texture_shader + &__GLEW_NV_texture_shader, +#endif +#ifdef GL_NV_texture_shader2 + &__GLEW_NV_texture_shader2, +#endif +#ifdef GL_NV_texture_shader3 + &__GLEW_NV_texture_shader3, +#endif +#ifdef GL_NV_transform_feedback + &__GLEW_NV_transform_feedback, +#endif +#ifdef GL_NV_transform_feedback2 + &__GLEW_NV_transform_feedback2, +#endif +#ifdef GL_NV_uniform_buffer_unified_memory + &__GLEW_NV_uniform_buffer_unified_memory, +#endif +#ifdef GL_NV_vdpau_interop + &__GLEW_NV_vdpau_interop, +#endif +#ifdef GL_NV_vdpau_interop2 + &__GLEW_NV_vdpau_interop2, +#endif +#ifdef GL_NV_vertex_array_range + &__GLEW_NV_vertex_array_range, +#endif +#ifdef GL_NV_vertex_array_range2 + &__GLEW_NV_vertex_array_range2, +#endif +#ifdef GL_NV_vertex_attrib_integer_64bit + &__GLEW_NV_vertex_attrib_integer_64bit, +#endif +#ifdef GL_NV_vertex_buffer_unified_memory + &__GLEW_NV_vertex_buffer_unified_memory, +#endif +#ifdef GL_NV_vertex_program + &__GLEW_NV_vertex_program, +#endif +#ifdef GL_NV_vertex_program1_1 + &__GLEW_NV_vertex_program1_1, +#endif +#ifdef GL_NV_vertex_program2 + &__GLEW_NV_vertex_program2, +#endif +#ifdef GL_NV_vertex_program2_option + &__GLEW_NV_vertex_program2_option, +#endif +#ifdef GL_NV_vertex_program3 + &__GLEW_NV_vertex_program3, +#endif +#ifdef GL_NV_vertex_program4 + &__GLEW_NV_vertex_program4, +#endif +#ifdef GL_NV_video_capture + &__GLEW_NV_video_capture, +#endif +#ifdef GL_NV_viewport_array + &__GLEW_NV_viewport_array, +#endif +#ifdef GL_NV_viewport_array2 + &__GLEW_NV_viewport_array2, +#endif +#ifdef GL_NV_viewport_swizzle + &__GLEW_NV_viewport_swizzle, +#endif +#ifdef GL_OES_EGL_image + &__GLEW_OES_EGL_image, +#endif +#ifdef GL_OES_EGL_image_external + &__GLEW_OES_EGL_image_external, +#endif +#ifdef GL_OES_EGL_image_external_essl3 + &__GLEW_OES_EGL_image_external_essl3, +#endif +#ifdef GL_OES_blend_equation_separate + &__GLEW_OES_blend_equation_separate, +#endif +#ifdef GL_OES_blend_func_separate + &__GLEW_OES_blend_func_separate, +#endif +#ifdef GL_OES_blend_subtract + &__GLEW_OES_blend_subtract, +#endif +#ifdef GL_OES_byte_coordinates + &__GLEW_OES_byte_coordinates, +#endif +#ifdef GL_OES_compressed_ETC1_RGB8_texture + &__GLEW_OES_compressed_ETC1_RGB8_texture, +#endif +#ifdef GL_OES_compressed_paletted_texture + &__GLEW_OES_compressed_paletted_texture, +#endif +#ifdef GL_OES_copy_image + &__GLEW_OES_copy_image, +#endif +#ifdef GL_OES_depth24 + &__GLEW_OES_depth24, +#endif +#ifdef GL_OES_depth32 + &__GLEW_OES_depth32, +#endif +#ifdef GL_OES_depth_texture + &__GLEW_OES_depth_texture, +#endif +#ifdef GL_OES_depth_texture_cube_map + &__GLEW_OES_depth_texture_cube_map, +#endif +#ifdef GL_OES_draw_buffers_indexed + &__GLEW_OES_draw_buffers_indexed, +#endif +#ifdef GL_OES_draw_texture + &__GLEW_OES_draw_texture, +#endif +#ifdef GL_OES_element_index_uint + &__GLEW_OES_element_index_uint, +#endif +#ifdef GL_OES_extended_matrix_palette + &__GLEW_OES_extended_matrix_palette, +#endif +#ifdef GL_OES_fbo_render_mipmap + &__GLEW_OES_fbo_render_mipmap, +#endif +#ifdef GL_OES_fragment_precision_high + &__GLEW_OES_fragment_precision_high, +#endif +#ifdef GL_OES_framebuffer_object + &__GLEW_OES_framebuffer_object, +#endif +#ifdef GL_OES_geometry_point_size + &__GLEW_OES_geometry_point_size, +#endif +#ifdef GL_OES_geometry_shader + &__GLEW_OES_geometry_shader, +#endif +#ifdef GL_OES_get_program_binary + &__GLEW_OES_get_program_binary, +#endif +#ifdef GL_OES_gpu_shader5 + &__GLEW_OES_gpu_shader5, +#endif +#ifdef GL_OES_mapbuffer + &__GLEW_OES_mapbuffer, +#endif +#ifdef GL_OES_matrix_get + &__GLEW_OES_matrix_get, +#endif +#ifdef GL_OES_matrix_palette + &__GLEW_OES_matrix_palette, +#endif +#ifdef GL_OES_packed_depth_stencil + &__GLEW_OES_packed_depth_stencil, +#endif +#ifdef GL_OES_point_size_array + &__GLEW_OES_point_size_array, +#endif +#ifdef GL_OES_point_sprite + &__GLEW_OES_point_sprite, +#endif +#ifdef GL_OES_read_format + &__GLEW_OES_read_format, +#endif +#ifdef GL_OES_required_internalformat + &__GLEW_OES_required_internalformat, +#endif +#ifdef GL_OES_rgb8_rgba8 + &__GLEW_OES_rgb8_rgba8, +#endif +#ifdef GL_OES_sample_shading + &__GLEW_OES_sample_shading, +#endif +#ifdef GL_OES_sample_variables + &__GLEW_OES_sample_variables, +#endif +#ifdef GL_OES_shader_image_atomic + &__GLEW_OES_shader_image_atomic, +#endif +#ifdef GL_OES_shader_io_blocks + &__GLEW_OES_shader_io_blocks, +#endif +#ifdef GL_OES_shader_multisample_interpolation + &__GLEW_OES_shader_multisample_interpolation, +#endif +#ifdef GL_OES_single_precision + &__GLEW_OES_single_precision, +#endif +#ifdef GL_OES_standard_derivatives + &__GLEW_OES_standard_derivatives, +#endif +#ifdef GL_OES_stencil1 + &__GLEW_OES_stencil1, +#endif +#ifdef GL_OES_stencil4 + &__GLEW_OES_stencil4, +#endif +#ifdef GL_OES_stencil8 + &__GLEW_OES_stencil8, +#endif +#ifdef GL_OES_surfaceless_context + &__GLEW_OES_surfaceless_context, +#endif +#ifdef GL_OES_tessellation_point_size + &__GLEW_OES_tessellation_point_size, +#endif +#ifdef GL_OES_tessellation_shader + &__GLEW_OES_tessellation_shader, +#endif +#ifdef GL_OES_texture_3D + &__GLEW_OES_texture_3D, +#endif +#ifdef GL_OES_texture_border_clamp + &__GLEW_OES_texture_border_clamp, +#endif +#ifdef GL_OES_texture_buffer + &__GLEW_OES_texture_buffer, +#endif +#ifdef GL_OES_texture_compression_astc + &__GLEW_OES_texture_compression_astc, +#endif +#ifdef GL_OES_texture_cube_map + &__GLEW_OES_texture_cube_map, +#endif +#ifdef GL_OES_texture_cube_map_array + &__GLEW_OES_texture_cube_map_array, +#endif +#ifdef GL_OES_texture_env_crossbar + &__GLEW_OES_texture_env_crossbar, +#endif +#ifdef GL_OES_texture_mirrored_repeat + &__GLEW_OES_texture_mirrored_repeat, +#endif +#ifdef GL_OES_texture_npot + &__GLEW_OES_texture_npot, +#endif +#ifdef GL_OES_texture_stencil8 + &__GLEW_OES_texture_stencil8, +#endif +#ifdef GL_OES_texture_storage_multisample_2d_array + &__GLEW_OES_texture_storage_multisample_2d_array, +#endif +#ifdef GL_OES_texture_view + &__GLEW_OES_texture_view, +#endif +#ifdef GL_OES_vertex_array_object + &__GLEW_OES_vertex_array_object, +#endif +#ifdef GL_OES_vertex_half_float + &__GLEW_OES_vertex_half_float, +#endif +#ifdef GL_OES_vertex_type_10_10_10_2 + &__GLEW_OES_vertex_type_10_10_10_2, +#endif +#ifdef GL_OML_interlace + &__GLEW_OML_interlace, +#endif +#ifdef GL_OML_resample + &__GLEW_OML_resample, +#endif +#ifdef GL_OML_subsample + &__GLEW_OML_subsample, +#endif +#ifdef GL_OVR_multiview + &__GLEW_OVR_multiview, +#endif +#ifdef GL_OVR_multiview2 + &__GLEW_OVR_multiview2, +#endif +#ifdef GL_OVR_multiview_multisampled_render_to_texture + &__GLEW_OVR_multiview_multisampled_render_to_texture, +#endif +#ifdef GL_PGI_misc_hints + &__GLEW_PGI_misc_hints, +#endif +#ifdef GL_PGI_vertex_hints + &__GLEW_PGI_vertex_hints, +#endif +#ifdef GL_QCOM_YUV_texture_gather + &__GLEW_QCOM_YUV_texture_gather, +#endif +#ifdef GL_QCOM_alpha_test + &__GLEW_QCOM_alpha_test, +#endif +#ifdef GL_QCOM_binning_control + &__GLEW_QCOM_binning_control, +#endif +#ifdef GL_QCOM_driver_control + &__GLEW_QCOM_driver_control, +#endif +#ifdef GL_QCOM_extended_get + &__GLEW_QCOM_extended_get, +#endif +#ifdef GL_QCOM_extended_get2 + &__GLEW_QCOM_extended_get2, +#endif +#ifdef GL_QCOM_framebuffer_foveated + &__GLEW_QCOM_framebuffer_foveated, +#endif +#ifdef GL_QCOM_perfmon_global_mode + &__GLEW_QCOM_perfmon_global_mode, +#endif +#ifdef GL_QCOM_shader_framebuffer_fetch_noncoherent + &__GLEW_QCOM_shader_framebuffer_fetch_noncoherent, +#endif +#ifdef GL_QCOM_shader_framebuffer_fetch_rate + &__GLEW_QCOM_shader_framebuffer_fetch_rate, +#endif +#ifdef GL_QCOM_texture_foveated + &__GLEW_QCOM_texture_foveated, +#endif +#ifdef GL_QCOM_texture_foveated_subsampled_layout + &__GLEW_QCOM_texture_foveated_subsampled_layout, +#endif +#ifdef GL_QCOM_tiled_rendering + &__GLEW_QCOM_tiled_rendering, +#endif +#ifdef GL_QCOM_writeonly_rendering + &__GLEW_QCOM_writeonly_rendering, +#endif +#ifdef GL_REGAL_ES1_0_compatibility + &__GLEW_REGAL_ES1_0_compatibility, +#endif +#ifdef GL_REGAL_ES1_1_compatibility + &__GLEW_REGAL_ES1_1_compatibility, +#endif +#ifdef GL_REGAL_enable + &__GLEW_REGAL_enable, +#endif +#ifdef GL_REGAL_error_string + &__GLEW_REGAL_error_string, +#endif +#ifdef GL_REGAL_extension_query + &__GLEW_REGAL_extension_query, +#endif +#ifdef GL_REGAL_log + &__GLEW_REGAL_log, +#endif +#ifdef GL_REGAL_proc_address + &__GLEW_REGAL_proc_address, +#endif +#ifdef GL_REND_screen_coordinates + &__GLEW_REND_screen_coordinates, +#endif +#ifdef GL_S3_s3tc + &__GLEW_S3_s3tc, +#endif +#ifdef GL_SGIS_clip_band_hint + &__GLEW_SGIS_clip_band_hint, +#endif +#ifdef GL_SGIS_color_range + &__GLEW_SGIS_color_range, +#endif +#ifdef GL_SGIS_detail_texture + &__GLEW_SGIS_detail_texture, +#endif +#ifdef GL_SGIS_fog_function + &__GLEW_SGIS_fog_function, +#endif +#ifdef GL_SGIS_generate_mipmap + &__GLEW_SGIS_generate_mipmap, +#endif +#ifdef GL_SGIS_line_texgen + &__GLEW_SGIS_line_texgen, +#endif +#ifdef GL_SGIS_multisample + &__GLEW_SGIS_multisample, +#endif +#ifdef GL_SGIS_multitexture + &__GLEW_SGIS_multitexture, +#endif +#ifdef GL_SGIS_pixel_texture + &__GLEW_SGIS_pixel_texture, +#endif +#ifdef GL_SGIS_point_line_texgen + &__GLEW_SGIS_point_line_texgen, +#endif +#ifdef GL_SGIS_shared_multisample + &__GLEW_SGIS_shared_multisample, +#endif +#ifdef GL_SGIS_sharpen_texture + &__GLEW_SGIS_sharpen_texture, +#endif +#ifdef GL_SGIS_texture4D + &__GLEW_SGIS_texture4D, +#endif +#ifdef GL_SGIS_texture_border_clamp + &__GLEW_SGIS_texture_border_clamp, +#endif +#ifdef GL_SGIS_texture_edge_clamp + &__GLEW_SGIS_texture_edge_clamp, +#endif +#ifdef GL_SGIS_texture_filter4 + &__GLEW_SGIS_texture_filter4, +#endif +#ifdef GL_SGIS_texture_lod + &__GLEW_SGIS_texture_lod, +#endif +#ifdef GL_SGIS_texture_select + &__GLEW_SGIS_texture_select, +#endif +#ifdef GL_SGIX_async + &__GLEW_SGIX_async, +#endif +#ifdef GL_SGIX_async_histogram + &__GLEW_SGIX_async_histogram, +#endif +#ifdef GL_SGIX_async_pixel + &__GLEW_SGIX_async_pixel, +#endif +#ifdef GL_SGIX_bali_g_instruments + &__GLEW_SGIX_bali_g_instruments, +#endif +#ifdef GL_SGIX_bali_r_instruments + &__GLEW_SGIX_bali_r_instruments, +#endif +#ifdef GL_SGIX_bali_timer_instruments + &__GLEW_SGIX_bali_timer_instruments, +#endif +#ifdef GL_SGIX_blend_alpha_minmax + &__GLEW_SGIX_blend_alpha_minmax, +#endif +#ifdef GL_SGIX_blend_cadd + &__GLEW_SGIX_blend_cadd, +#endif +#ifdef GL_SGIX_blend_cmultiply + &__GLEW_SGIX_blend_cmultiply, +#endif +#ifdef GL_SGIX_calligraphic_fragment + &__GLEW_SGIX_calligraphic_fragment, +#endif +#ifdef GL_SGIX_clipmap + &__GLEW_SGIX_clipmap, +#endif +#ifdef GL_SGIX_color_matrix_accuracy + &__GLEW_SGIX_color_matrix_accuracy, +#endif +#ifdef GL_SGIX_color_table_index_mode + &__GLEW_SGIX_color_table_index_mode, +#endif +#ifdef GL_SGIX_complex_polar + &__GLEW_SGIX_complex_polar, +#endif +#ifdef GL_SGIX_convolution_accuracy + &__GLEW_SGIX_convolution_accuracy, +#endif +#ifdef GL_SGIX_cube_map + &__GLEW_SGIX_cube_map, +#endif +#ifdef GL_SGIX_cylinder_texgen + &__GLEW_SGIX_cylinder_texgen, +#endif +#ifdef GL_SGIX_datapipe + &__GLEW_SGIX_datapipe, +#endif +#ifdef GL_SGIX_decimation + &__GLEW_SGIX_decimation, +#endif +#ifdef GL_SGIX_depth_pass_instrument + &__GLEW_SGIX_depth_pass_instrument, +#endif +#ifdef GL_SGIX_depth_texture + &__GLEW_SGIX_depth_texture, +#endif +#ifdef GL_SGIX_dvc + &__GLEW_SGIX_dvc, +#endif +#ifdef GL_SGIX_flush_raster + &__GLEW_SGIX_flush_raster, +#endif +#ifdef GL_SGIX_fog_blend + &__GLEW_SGIX_fog_blend, +#endif +#ifdef GL_SGIX_fog_factor_to_alpha + &__GLEW_SGIX_fog_factor_to_alpha, +#endif +#ifdef GL_SGIX_fog_layers + &__GLEW_SGIX_fog_layers, +#endif +#ifdef GL_SGIX_fog_offset + &__GLEW_SGIX_fog_offset, +#endif +#ifdef GL_SGIX_fog_patchy + &__GLEW_SGIX_fog_patchy, +#endif +#ifdef GL_SGIX_fog_scale + &__GLEW_SGIX_fog_scale, +#endif +#ifdef GL_SGIX_fog_texture + &__GLEW_SGIX_fog_texture, +#endif +#ifdef GL_SGIX_fragment_lighting_space + &__GLEW_SGIX_fragment_lighting_space, +#endif +#ifdef GL_SGIX_fragment_specular_lighting + &__GLEW_SGIX_fragment_specular_lighting, +#endif +#ifdef GL_SGIX_fragments_instrument + &__GLEW_SGIX_fragments_instrument, +#endif +#ifdef GL_SGIX_framezoom + &__GLEW_SGIX_framezoom, +#endif +#ifdef GL_SGIX_icc_texture + &__GLEW_SGIX_icc_texture, +#endif +#ifdef GL_SGIX_igloo_interface + &__GLEW_SGIX_igloo_interface, +#endif +#ifdef GL_SGIX_image_compression + &__GLEW_SGIX_image_compression, +#endif +#ifdef GL_SGIX_impact_pixel_texture + &__GLEW_SGIX_impact_pixel_texture, +#endif +#ifdef GL_SGIX_instrument_error + &__GLEW_SGIX_instrument_error, +#endif +#ifdef GL_SGIX_interlace + &__GLEW_SGIX_interlace, +#endif +#ifdef GL_SGIX_ir_instrument1 + &__GLEW_SGIX_ir_instrument1, +#endif +#ifdef GL_SGIX_line_quality_hint + &__GLEW_SGIX_line_quality_hint, +#endif +#ifdef GL_SGIX_list_priority + &__GLEW_SGIX_list_priority, +#endif +#ifdef GL_SGIX_mpeg1 + &__GLEW_SGIX_mpeg1, +#endif +#ifdef GL_SGIX_mpeg2 + &__GLEW_SGIX_mpeg2, +#endif +#ifdef GL_SGIX_nonlinear_lighting_pervertex + &__GLEW_SGIX_nonlinear_lighting_pervertex, +#endif +#ifdef GL_SGIX_nurbs_eval + &__GLEW_SGIX_nurbs_eval, +#endif +#ifdef GL_SGIX_occlusion_instrument + &__GLEW_SGIX_occlusion_instrument, +#endif +#ifdef GL_SGIX_packed_6bytes + &__GLEW_SGIX_packed_6bytes, +#endif +#ifdef GL_SGIX_pixel_texture + &__GLEW_SGIX_pixel_texture, +#endif +#ifdef GL_SGIX_pixel_texture_bits + &__GLEW_SGIX_pixel_texture_bits, +#endif +#ifdef GL_SGIX_pixel_texture_lod + &__GLEW_SGIX_pixel_texture_lod, +#endif +#ifdef GL_SGIX_pixel_tiles + &__GLEW_SGIX_pixel_tiles, +#endif +#ifdef GL_SGIX_polynomial_ffd + &__GLEW_SGIX_polynomial_ffd, +#endif +#ifdef GL_SGIX_quad_mesh + &__GLEW_SGIX_quad_mesh, +#endif +#ifdef GL_SGIX_reference_plane + &__GLEW_SGIX_reference_plane, +#endif +#ifdef GL_SGIX_resample + &__GLEW_SGIX_resample, +#endif +#ifdef GL_SGIX_scalebias_hint + &__GLEW_SGIX_scalebias_hint, +#endif +#ifdef GL_SGIX_shadow + &__GLEW_SGIX_shadow, +#endif +#ifdef GL_SGIX_shadow_ambient + &__GLEW_SGIX_shadow_ambient, +#endif +#ifdef GL_SGIX_slim + &__GLEW_SGIX_slim, +#endif +#ifdef GL_SGIX_spotlight_cutoff + &__GLEW_SGIX_spotlight_cutoff, +#endif +#ifdef GL_SGIX_sprite + &__GLEW_SGIX_sprite, +#endif +#ifdef GL_SGIX_subdiv_patch + &__GLEW_SGIX_subdiv_patch, +#endif +#ifdef GL_SGIX_subsample + &__GLEW_SGIX_subsample, +#endif +#ifdef GL_SGIX_tag_sample_buffer + &__GLEW_SGIX_tag_sample_buffer, +#endif +#ifdef GL_SGIX_texture_add_env + &__GLEW_SGIX_texture_add_env, +#endif +#ifdef GL_SGIX_texture_coordinate_clamp + &__GLEW_SGIX_texture_coordinate_clamp, +#endif +#ifdef GL_SGIX_texture_lod_bias + &__GLEW_SGIX_texture_lod_bias, +#endif +#ifdef GL_SGIX_texture_mipmap_anisotropic + &__GLEW_SGIX_texture_mipmap_anisotropic, +#endif +#ifdef GL_SGIX_texture_multi_buffer + &__GLEW_SGIX_texture_multi_buffer, +#endif +#ifdef GL_SGIX_texture_phase + &__GLEW_SGIX_texture_phase, +#endif +#ifdef GL_SGIX_texture_range + &__GLEW_SGIX_texture_range, +#endif +#ifdef GL_SGIX_texture_scale_bias + &__GLEW_SGIX_texture_scale_bias, +#endif +#ifdef GL_SGIX_texture_supersample + &__GLEW_SGIX_texture_supersample, +#endif +#ifdef GL_SGIX_vector_ops + &__GLEW_SGIX_vector_ops, +#endif +#ifdef GL_SGIX_vertex_array_object + &__GLEW_SGIX_vertex_array_object, +#endif +#ifdef GL_SGIX_vertex_preclip + &__GLEW_SGIX_vertex_preclip, +#endif +#ifdef GL_SGIX_vertex_preclip_hint + &__GLEW_SGIX_vertex_preclip_hint, +#endif +#ifdef GL_SGIX_ycrcb + &__GLEW_SGIX_ycrcb, +#endif +#ifdef GL_SGIX_ycrcb_subsample + &__GLEW_SGIX_ycrcb_subsample, +#endif +#ifdef GL_SGIX_ycrcba + &__GLEW_SGIX_ycrcba, +#endif +#ifdef GL_SGI_color_matrix + &__GLEW_SGI_color_matrix, +#endif +#ifdef GL_SGI_color_table + &__GLEW_SGI_color_table, +#endif +#ifdef GL_SGI_complex + &__GLEW_SGI_complex, +#endif +#ifdef GL_SGI_complex_type + &__GLEW_SGI_complex_type, +#endif +#ifdef GL_SGI_fft + &__GLEW_SGI_fft, +#endif +#ifdef GL_SGI_texture_color_table + &__GLEW_SGI_texture_color_table, +#endif +#ifdef GL_SUNX_constant_data + &__GLEW_SUNX_constant_data, +#endif +#ifdef GL_SUN_convolution_border_modes + &__GLEW_SUN_convolution_border_modes, +#endif +#ifdef GL_SUN_global_alpha + &__GLEW_SUN_global_alpha, +#endif +#ifdef GL_SUN_mesh_array + &__GLEW_SUN_mesh_array, +#endif +#ifdef GL_SUN_read_video_pixels + &__GLEW_SUN_read_video_pixels, +#endif +#ifdef GL_SUN_slice_accum + &__GLEW_SUN_slice_accum, +#endif +#ifdef GL_SUN_triangle_list + &__GLEW_SUN_triangle_list, +#endif +#ifdef GL_SUN_vertex + &__GLEW_SUN_vertex, +#endif +#ifdef GL_VERSION_1_2 + &__GLEW_VERSION_1_2, +#endif +#ifdef GL_VERSION_1_2_1 + &__GLEW_VERSION_1_2_1, +#endif +#ifdef GL_VERSION_1_3 + &__GLEW_VERSION_1_3, +#endif +#ifdef GL_VERSION_1_4 + &__GLEW_VERSION_1_4, +#endif +#ifdef GL_VERSION_1_5 + &__GLEW_VERSION_1_5, +#endif +#ifdef GL_VERSION_2_0 + &__GLEW_VERSION_2_0, +#endif +#ifdef GL_VERSION_2_1 + &__GLEW_VERSION_2_1, +#endif +#ifdef GL_VERSION_3_0 + &__GLEW_VERSION_3_0, +#endif +#ifdef GL_VERSION_3_1 + &__GLEW_VERSION_3_1, +#endif +#ifdef GL_VERSION_3_2 + &__GLEW_VERSION_3_2, +#endif +#ifdef GL_VERSION_3_3 + &__GLEW_VERSION_3_3, +#endif +#ifdef GL_VERSION_4_0 + &__GLEW_VERSION_4_0, +#endif +#ifdef GL_VERSION_4_1 + &__GLEW_VERSION_4_1, +#endif +#ifdef GL_VERSION_4_2 + &__GLEW_VERSION_4_2, +#endif +#ifdef GL_VERSION_4_3 + &__GLEW_VERSION_4_3, +#endif +#ifdef GL_VERSION_4_4 + &__GLEW_VERSION_4_4, +#endif +#ifdef GL_VERSION_4_5 + &__GLEW_VERSION_4_5, +#endif +#ifdef GL_VERSION_4_6 + &__GLEW_VERSION_4_6, +#endif +#ifdef GL_VIV_shader_binary + &__GLEW_VIV_shader_binary, +#endif +#ifdef GL_WIN_phong_shading + &__GLEW_WIN_phong_shading, +#endif +#ifdef GL_WIN_scene_markerXXX + &__GLEW_WIN_scene_markerXXX, +#endif +#ifdef GL_WIN_specular_fog + &__GLEW_WIN_specular_fog, +#endif +#ifdef GL_WIN_swap_hint + &__GLEW_WIN_swap_hint, +#endif + NULL +}; + +static GLboolean _glewInit_GL_VERSION_1_2 (); +static GLboolean _glewInit_GL_VERSION_1_3 (); +static GLboolean _glewInit_GL_VERSION_1_4 (); +static GLboolean _glewInit_GL_VERSION_1_5 (); +static GLboolean _glewInit_GL_VERSION_2_0 (); +static GLboolean _glewInit_GL_VERSION_2_1 (); +static GLboolean _glewInit_GL_VERSION_3_0 (); +static GLboolean _glewInit_GL_VERSION_3_1 (); +static GLboolean _glewInit_GL_VERSION_3_2 (); +static GLboolean _glewInit_GL_VERSION_3_3 (); +static GLboolean _glewInit_GL_VERSION_4_0 (); +static GLboolean _glewInit_GL_VERSION_4_5 (); +static GLboolean _glewInit_GL_VERSION_4_6 (); +static GLboolean _glewInit_GL_3DFX_tbuffer (); +static GLboolean _glewInit_GL_AMD_debug_output (); +static GLboolean _glewInit_GL_AMD_draw_buffers_blend (); +static GLboolean _glewInit_GL_AMD_framebuffer_multisample_advanced (); +static GLboolean _glewInit_GL_AMD_framebuffer_sample_positions (); +static GLboolean _glewInit_GL_AMD_interleaved_elements (); +static GLboolean _glewInit_GL_AMD_multi_draw_indirect (); +static GLboolean _glewInit_GL_AMD_name_gen_delete (); +static GLboolean _glewInit_GL_AMD_occlusion_query_event (); +static GLboolean _glewInit_GL_AMD_performance_monitor (); +static GLboolean _glewInit_GL_AMD_sample_positions (); +static GLboolean _glewInit_GL_AMD_sparse_texture (); +static GLboolean _glewInit_GL_AMD_stencil_operation_extended (); +static GLboolean _glewInit_GL_AMD_vertex_shader_tessellator (); +static GLboolean _glewInit_GL_ANGLE_framebuffer_blit (); +static GLboolean _glewInit_GL_ANGLE_framebuffer_multisample (); +static GLboolean _glewInit_GL_ANGLE_instanced_arrays (); +static GLboolean _glewInit_GL_ANGLE_timer_query (); +static GLboolean _glewInit_GL_ANGLE_translated_shader_source (); +static GLboolean _glewInit_GL_APPLE_copy_texture_levels (); +static GLboolean _glewInit_GL_APPLE_element_array (); +static GLboolean _glewInit_GL_APPLE_fence (); +static GLboolean _glewInit_GL_APPLE_flush_buffer_range (); +static GLboolean _glewInit_GL_APPLE_framebuffer_multisample (); +static GLboolean _glewInit_GL_APPLE_object_purgeable (); +static GLboolean _glewInit_GL_APPLE_sync (); +static GLboolean _glewInit_GL_APPLE_texture_range (); +static GLboolean _glewInit_GL_APPLE_vertex_array_object (); +static GLboolean _glewInit_GL_APPLE_vertex_array_range (); +static GLboolean _glewInit_GL_APPLE_vertex_program_evaluators (); +static GLboolean _glewInit_GL_ARB_ES2_compatibility (); +static GLboolean _glewInit_GL_ARB_ES3_1_compatibility (); +static GLboolean _glewInit_GL_ARB_ES3_2_compatibility (); +static GLboolean _glewInit_GL_ARB_base_instance (); +static GLboolean _glewInit_GL_ARB_bindless_texture (); +static GLboolean _glewInit_GL_ARB_blend_func_extended (); +static GLboolean _glewInit_GL_ARB_buffer_storage (); +static GLboolean _glewInit_GL_ARB_cl_event (); +static GLboolean _glewInit_GL_ARB_clear_buffer_object (); +static GLboolean _glewInit_GL_ARB_clear_texture (); +static GLboolean _glewInit_GL_ARB_clip_control (); +static GLboolean _glewInit_GL_ARB_color_buffer_float (); +static GLboolean _glewInit_GL_ARB_compute_shader (); +static GLboolean _glewInit_GL_ARB_compute_variable_group_size (); +static GLboolean _glewInit_GL_ARB_copy_buffer (); +static GLboolean _glewInit_GL_ARB_copy_image (); +static GLboolean _glewInit_GL_ARB_debug_output (); +static GLboolean _glewInit_GL_ARB_direct_state_access (); +static GLboolean _glewInit_GL_ARB_draw_buffers (); +static GLboolean _glewInit_GL_ARB_draw_buffers_blend (); +static GLboolean _glewInit_GL_ARB_draw_elements_base_vertex (); +static GLboolean _glewInit_GL_ARB_draw_indirect (); +static GLboolean _glewInit_GL_ARB_framebuffer_no_attachments (); +static GLboolean _glewInit_GL_ARB_framebuffer_object (); +static GLboolean _glewInit_GL_ARB_geometry_shader4 (); +static GLboolean _glewInit_GL_ARB_get_program_binary (); +static GLboolean _glewInit_GL_ARB_get_texture_sub_image (); +static GLboolean _glewInit_GL_ARB_gl_spirv (); +static GLboolean _glewInit_GL_ARB_gpu_shader_fp64 (); +static GLboolean _glewInit_GL_ARB_gpu_shader_int64 (); +static GLboolean _glewInit_GL_ARB_imaging (); +static GLboolean _glewInit_GL_ARB_indirect_parameters (); +static GLboolean _glewInit_GL_ARB_instanced_arrays (); +static GLboolean _glewInit_GL_ARB_internalformat_query (); +static GLboolean _glewInit_GL_ARB_internalformat_query2 (); +static GLboolean _glewInit_GL_ARB_invalidate_subdata (); +static GLboolean _glewInit_GL_ARB_map_buffer_range (); +static GLboolean _glewInit_GL_ARB_matrix_palette (); +static GLboolean _glewInit_GL_ARB_multi_bind (); +static GLboolean _glewInit_GL_ARB_multi_draw_indirect (); +static GLboolean _glewInit_GL_ARB_multisample (); +static GLboolean _glewInit_GL_ARB_multitexture (); +static GLboolean _glewInit_GL_ARB_occlusion_query (); +static GLboolean _glewInit_GL_ARB_parallel_shader_compile (); +static GLboolean _glewInit_GL_ARB_point_parameters (); +static GLboolean _glewInit_GL_ARB_polygon_offset_clamp (); +static GLboolean _glewInit_GL_ARB_program_interface_query (); +static GLboolean _glewInit_GL_ARB_provoking_vertex (); +static GLboolean _glewInit_GL_ARB_robustness (); +static GLboolean _glewInit_GL_ARB_sample_locations (); +static GLboolean _glewInit_GL_ARB_sample_shading (); +static GLboolean _glewInit_GL_ARB_sampler_objects (); +static GLboolean _glewInit_GL_ARB_separate_shader_objects (); +static GLboolean _glewInit_GL_ARB_shader_atomic_counters (); +static GLboolean _glewInit_GL_ARB_shader_image_load_store (); +static GLboolean _glewInit_GL_ARB_shader_objects (); +static GLboolean _glewInit_GL_ARB_shader_storage_buffer_object (); +static GLboolean _glewInit_GL_ARB_shader_subroutine (); +static GLboolean _glewInit_GL_ARB_shading_language_include (); +static GLboolean _glewInit_GL_ARB_sparse_buffer (); +static GLboolean _glewInit_GL_ARB_sparse_texture (); +static GLboolean _glewInit_GL_ARB_sync (); +static GLboolean _glewInit_GL_ARB_tessellation_shader (); +static GLboolean _glewInit_GL_ARB_texture_barrier (); +static GLboolean _glewInit_GL_ARB_texture_buffer_object (); +static GLboolean _glewInit_GL_ARB_texture_buffer_range (); +static GLboolean _glewInit_GL_ARB_texture_compression (); +static GLboolean _glewInit_GL_ARB_texture_multisample (); +static GLboolean _glewInit_GL_ARB_texture_storage (); +static GLboolean _glewInit_GL_ARB_texture_storage_multisample (); +static GLboolean _glewInit_GL_ARB_texture_view (); +static GLboolean _glewInit_GL_ARB_timer_query (); +static GLboolean _glewInit_GL_ARB_transform_feedback2 (); +static GLboolean _glewInit_GL_ARB_transform_feedback3 (); +static GLboolean _glewInit_GL_ARB_transform_feedback_instanced (); +static GLboolean _glewInit_GL_ARB_transpose_matrix (); +static GLboolean _glewInit_GL_ARB_uniform_buffer_object (); +static GLboolean _glewInit_GL_ARB_vertex_array_object (); +static GLboolean _glewInit_GL_ARB_vertex_attrib_64bit (); +static GLboolean _glewInit_GL_ARB_vertex_attrib_binding (); +static GLboolean _glewInit_GL_ARB_vertex_blend (); +static GLboolean _glewInit_GL_ARB_vertex_buffer_object (); +static GLboolean _glewInit_GL_ARB_vertex_program (); +static GLboolean _glewInit_GL_ARB_vertex_shader (); +static GLboolean _glewInit_GL_ARB_vertex_type_2_10_10_10_rev (); +static GLboolean _glewInit_GL_ARB_viewport_array (); +static GLboolean _glewInit_GL_ARB_window_pos (); +static GLboolean _glewInit_GL_ATI_draw_buffers (); +static GLboolean _glewInit_GL_ATI_element_array (); +static GLboolean _glewInit_GL_ATI_envmap_bumpmap (); +static GLboolean _glewInit_GL_ATI_fragment_shader (); +static GLboolean _glewInit_GL_ATI_map_object_buffer (); +static GLboolean _glewInit_GL_ATI_pn_triangles (); +static GLboolean _glewInit_GL_ATI_separate_stencil (); +static GLboolean _glewInit_GL_ATI_vertex_array_object (); +static GLboolean _glewInit_GL_ATI_vertex_attrib_array_object (); +static GLboolean _glewInit_GL_ATI_vertex_streams (); +static GLboolean _glewInit_GL_EXT_EGL_image_storage (); +static GLboolean _glewInit_GL_EXT_base_instance (); +static GLboolean _glewInit_GL_EXT_bindable_uniform (); +static GLboolean _glewInit_GL_EXT_blend_color (); +static GLboolean _glewInit_GL_EXT_blend_equation_separate (); +static GLboolean _glewInit_GL_EXT_blend_func_extended (); +static GLboolean _glewInit_GL_EXT_blend_func_separate (); +static GLboolean _glewInit_GL_EXT_blend_minmax (); +static GLboolean _glewInit_GL_EXT_buffer_storage (); +static GLboolean _glewInit_GL_EXT_clear_texture (); +static GLboolean _glewInit_GL_EXT_clip_control (); +static GLboolean _glewInit_GL_EXT_color_subtable (); +static GLboolean _glewInit_GL_EXT_compiled_vertex_array (); +static GLboolean _glewInit_GL_EXT_convolution (); +static GLboolean _glewInit_GL_EXT_coordinate_frame (); +static GLboolean _glewInit_GL_EXT_copy_image (); +static GLboolean _glewInit_GL_EXT_copy_texture (); +static GLboolean _glewInit_GL_EXT_cull_vertex (); +static GLboolean _glewInit_GL_EXT_debug_label (); +static GLboolean _glewInit_GL_EXT_debug_marker (); +static GLboolean _glewInit_GL_EXT_depth_bounds_test (); +static GLboolean _glewInit_GL_EXT_direct_state_access (); +static GLboolean _glewInit_GL_EXT_discard_framebuffer (); +static GLboolean _glewInit_GL_EXT_disjoint_timer_query (); +static GLboolean _glewInit_GL_EXT_draw_buffers (); +static GLboolean _glewInit_GL_EXT_draw_buffers2 (); +static GLboolean _glewInit_GL_EXT_draw_buffers_indexed (); +static GLboolean _glewInit_GL_EXT_draw_elements_base_vertex (); +static GLboolean _glewInit_GL_EXT_draw_instanced (); +static GLboolean _glewInit_GL_EXT_draw_range_elements (); +static GLboolean _glewInit_GL_EXT_draw_transform_feedback (); +static GLboolean _glewInit_GL_EXT_external_buffer (); +static GLboolean _glewInit_GL_EXT_fog_coord (); +static GLboolean _glewInit_GL_EXT_fragment_lighting (); +static GLboolean _glewInit_GL_EXT_framebuffer_blit (); +static GLboolean _glewInit_GL_EXT_framebuffer_multisample (); +static GLboolean _glewInit_GL_EXT_framebuffer_object (); +static GLboolean _glewInit_GL_EXT_geometry_shader4 (); +static GLboolean _glewInit_GL_EXT_gpu_program_parameters (); +static GLboolean _glewInit_GL_EXT_gpu_shader4 (); +static GLboolean _glewInit_GL_EXT_histogram (); +static GLboolean _glewInit_GL_EXT_index_func (); +static GLboolean _glewInit_GL_EXT_index_material (); +static GLboolean _glewInit_GL_EXT_instanced_arrays (); +static GLboolean _glewInit_GL_EXT_light_texture (); +static GLboolean _glewInit_GL_EXT_map_buffer_range (); +static GLboolean _glewInit_GL_EXT_memory_object (); +static GLboolean _glewInit_GL_EXT_memory_object_fd (); +static GLboolean _glewInit_GL_EXT_memory_object_win32 (); +static GLboolean _glewInit_GL_EXT_multi_draw_arrays (); +static GLboolean _glewInit_GL_EXT_multi_draw_indirect (); +static GLboolean _glewInit_GL_EXT_multisample (); +static GLboolean _glewInit_GL_EXT_multisampled_render_to_texture (); +static GLboolean _glewInit_GL_EXT_multiview_draw_buffers (); +static GLboolean _glewInit_GL_EXT_paletted_texture (); +static GLboolean _glewInit_GL_EXT_pixel_transform (); +static GLboolean _glewInit_GL_EXT_point_parameters (); +static GLboolean _glewInit_GL_EXT_polygon_offset (); +static GLboolean _glewInit_GL_EXT_polygon_offset_clamp (); +static GLboolean _glewInit_GL_EXT_primitive_bounding_box (); +static GLboolean _glewInit_GL_EXT_provoking_vertex (); +static GLboolean _glewInit_GL_EXT_raster_multisample (); +static GLboolean _glewInit_GL_EXT_robustness (); +static GLboolean _glewInit_GL_EXT_scene_marker (); +static GLboolean _glewInit_GL_EXT_secondary_color (); +static GLboolean _glewInit_GL_EXT_semaphore (); +static GLboolean _glewInit_GL_EXT_semaphore_fd (); +static GLboolean _glewInit_GL_EXT_semaphore_win32 (); +static GLboolean _glewInit_GL_EXT_separate_shader_objects (); +static GLboolean _glewInit_GL_EXT_shader_framebuffer_fetch (); +static GLboolean _glewInit_GL_EXT_shader_image_load_store (); +static GLboolean _glewInit_GL_EXT_shader_pixel_local_storage2 (); +static GLboolean _glewInit_GL_EXT_sparse_texture (); +static GLboolean _glewInit_GL_EXT_stencil_two_side (); +static GLboolean _glewInit_GL_EXT_subtexture (); +static GLboolean _glewInit_GL_EXT_tessellation_point_size (); +static GLboolean _glewInit_GL_EXT_texture3D (); +static GLboolean _glewInit_GL_EXT_texture_array (); +static GLboolean _glewInit_GL_EXT_texture_border_clamp (); +static GLboolean _glewInit_GL_EXT_texture_buffer_object (); +static GLboolean _glewInit_GL_EXT_texture_integer (); +static GLboolean _glewInit_GL_EXT_texture_object (); +static GLboolean _glewInit_GL_EXT_texture_perturb_normal (); +static GLboolean _glewInit_GL_EXT_texture_storage (); +static GLboolean _glewInit_GL_EXT_texture_view (); +static GLboolean _glewInit_GL_EXT_timer_query (); +static GLboolean _glewInit_GL_EXT_transform_feedback (); +static GLboolean _glewInit_GL_EXT_vertex_array (); +static GLboolean _glewInit_GL_EXT_vertex_array_setXXX (); +static GLboolean _glewInit_GL_EXT_vertex_attrib_64bit (); +static GLboolean _glewInit_GL_EXT_vertex_shader (); +static GLboolean _glewInit_GL_EXT_vertex_weighting (); +static GLboolean _glewInit_GL_EXT_win32_keyed_mutex (); +static GLboolean _glewInit_GL_EXT_window_rectangles (); +static GLboolean _glewInit_GL_EXT_x11_sync_object (); +static GLboolean _glewInit_GL_GREMEDY_frame_terminator (); +static GLboolean _glewInit_GL_GREMEDY_string_marker (); +static GLboolean _glewInit_GL_HP_image_transform (); +static GLboolean _glewInit_GL_IBM_multimode_draw_arrays (); +static GLboolean _glewInit_GL_IBM_vertex_array_lists (); +static GLboolean _glewInit_GL_IMG_bindless_texture (); +static GLboolean _glewInit_GL_IMG_framebuffer_downsample (); +static GLboolean _glewInit_GL_IMG_multisampled_render_to_texture (); +static GLboolean _glewInit_GL_INTEL_map_texture (); +static GLboolean _glewInit_GL_INTEL_parallel_arrays (); +static GLboolean _glewInit_GL_INTEL_performance_query (); +static GLboolean _glewInit_GL_INTEL_texture_scissor (); +static GLboolean _glewInit_GL_KHR_blend_equation_advanced (); +static GLboolean _glewInit_GL_KHR_debug (); +static GLboolean _glewInit_GL_KHR_parallel_shader_compile (); +static GLboolean _glewInit_GL_KHR_robustness (); +static GLboolean _glewInit_GL_KTX_buffer_region (); +static GLboolean _glewInit_GL_MESA_framebuffer_flip_y (); +static GLboolean _glewInit_GL_MESA_resize_buffers (); +static GLboolean _glewInit_GL_MESA_window_pos (); +static GLboolean _glewInit_GL_NVX_conditional_render (); +static GLboolean _glewInit_GL_NVX_gpu_multicast2 (); +static GLboolean _glewInit_GL_NVX_linked_gpu_multicast (); +static GLboolean _glewInit_GL_NVX_progress_fence (); +static GLboolean _glewInit_GL_NV_3dvision_settings (); +static GLboolean _glewInit_GL_NV_alpha_to_coverage_dither_control (); +static GLboolean _glewInit_GL_NV_bindless_multi_draw_indirect (); +static GLboolean _glewInit_GL_NV_bindless_multi_draw_indirect_count (); +static GLboolean _glewInit_GL_NV_bindless_texture (); +static GLboolean _glewInit_GL_NV_blend_equation_advanced (); +static GLboolean _glewInit_GL_NV_clip_space_w_scaling (); +static GLboolean _glewInit_GL_NV_command_list (); +static GLboolean _glewInit_GL_NV_conditional_render (); +static GLboolean _glewInit_GL_NV_conservative_raster (); +static GLboolean _glewInit_GL_NV_conservative_raster_dilate (); +static GLboolean _glewInit_GL_NV_conservative_raster_pre_snap_triangles (); +static GLboolean _glewInit_GL_NV_copy_buffer (); +static GLboolean _glewInit_GL_NV_copy_image (); +static GLboolean _glewInit_GL_NV_depth_buffer_float (); +static GLboolean _glewInit_GL_NV_draw_buffers (); +static GLboolean _glewInit_GL_NV_draw_instanced (); +static GLboolean _glewInit_GL_NV_draw_texture (); +static GLboolean _glewInit_GL_NV_draw_vulkan_image (); +static GLboolean _glewInit_GL_NV_evaluators (); +static GLboolean _glewInit_GL_NV_explicit_multisample (); +static GLboolean _glewInit_GL_NV_fence (); +static GLboolean _glewInit_GL_NV_fragment_coverage_to_color (); +static GLboolean _glewInit_GL_NV_fragment_program (); +static GLboolean _glewInit_GL_NV_framebuffer_blit (); +static GLboolean _glewInit_GL_NV_framebuffer_multisample (); +static GLboolean _glewInit_GL_NV_framebuffer_multisample_coverage (); +static GLboolean _glewInit_GL_NV_geometry_program4 (); +static GLboolean _glewInit_GL_NV_gpu_multicast (); +static GLboolean _glewInit_GL_NV_gpu_program4 (); +static GLboolean _glewInit_GL_NV_gpu_shader5 (); +static GLboolean _glewInit_GL_NV_half_float (); +static GLboolean _glewInit_GL_NV_instanced_arrays (); +static GLboolean _glewInit_GL_NV_internalformat_sample_query (); +static GLboolean _glewInit_GL_NV_memory_attachment (); +static GLboolean _glewInit_GL_NV_mesh_shader (); +static GLboolean _glewInit_GL_NV_non_square_matrices (); +static GLboolean _glewInit_GL_NV_occlusion_query (); +static GLboolean _glewInit_GL_NV_parameter_buffer_object (); +static GLboolean _glewInit_GL_NV_path_rendering (); +static GLboolean _glewInit_GL_NV_pixel_data_range (); +static GLboolean _glewInit_GL_NV_point_sprite (); +static GLboolean _glewInit_GL_NV_polygon_mode (); +static GLboolean _glewInit_GL_NV_present_video (); +static GLboolean _glewInit_GL_NV_primitive_restart (); +static GLboolean _glewInit_GL_NV_read_buffer (); +static GLboolean _glewInit_GL_NV_register_combiners (); +static GLboolean _glewInit_GL_NV_register_combiners2 (); +static GLboolean _glewInit_GL_NV_sample_locations (); +static GLboolean _glewInit_GL_NV_scissor_exclusive (); +static GLboolean _glewInit_GL_NV_shader_buffer_load (); +static GLboolean _glewInit_GL_NV_shading_rate_image (); +static GLboolean _glewInit_GL_NV_texture_array (); +static GLboolean _glewInit_GL_NV_texture_barrier (); +static GLboolean _glewInit_GL_NV_texture_multisample (); +static GLboolean _glewInit_GL_NV_transform_feedback (); +static GLboolean _glewInit_GL_NV_transform_feedback2 (); +static GLboolean _glewInit_GL_NV_vdpau_interop (); +static GLboolean _glewInit_GL_NV_vdpau_interop2 (); +static GLboolean _glewInit_GL_NV_vertex_array_range (); +static GLboolean _glewInit_GL_NV_vertex_attrib_integer_64bit (); +static GLboolean _glewInit_GL_NV_vertex_buffer_unified_memory (); +static GLboolean _glewInit_GL_NV_vertex_program (); +static GLboolean _glewInit_GL_NV_video_capture (); +static GLboolean _glewInit_GL_NV_viewport_array (); +static GLboolean _glewInit_GL_NV_viewport_swizzle (); +static GLboolean _glewInit_GL_OES_EGL_image (); +static GLboolean _glewInit_GL_OES_blend_equation_separate (); +static GLboolean _glewInit_GL_OES_blend_func_separate (); +static GLboolean _glewInit_GL_OES_blend_subtract (); +static GLboolean _glewInit_GL_OES_copy_image (); +static GLboolean _glewInit_GL_OES_draw_buffers_indexed (); +static GLboolean _glewInit_GL_OES_framebuffer_object (); +static GLboolean _glewInit_GL_OES_get_program_binary (); +static GLboolean _glewInit_GL_OES_mapbuffer (); +static GLboolean _glewInit_GL_OES_matrix_palette (); +static GLboolean _glewInit_GL_OES_sample_shading (); +static GLboolean _glewInit_GL_OES_single_precision (); +static GLboolean _glewInit_GL_OES_texture_3D (); +static GLboolean _glewInit_GL_OES_texture_border_clamp (); +static GLboolean _glewInit_GL_OES_texture_buffer (); +static GLboolean _glewInit_GL_OES_texture_cube_map (); +static GLboolean _glewInit_GL_OES_texture_storage_multisample_2d_array (); +static GLboolean _glewInit_GL_OES_texture_view (); +static GLboolean _glewInit_GL_OES_vertex_array_object (); +static GLboolean _glewInit_GL_OVR_multiview (); +static GLboolean _glewInit_GL_OVR_multiview_multisampled_render_to_texture (); +static GLboolean _glewInit_GL_QCOM_alpha_test (); +static GLboolean _glewInit_GL_QCOM_driver_control (); +static GLboolean _glewInit_GL_QCOM_extended_get (); +static GLboolean _glewInit_GL_QCOM_extended_get2 (); +static GLboolean _glewInit_GL_QCOM_framebuffer_foveated (); +static GLboolean _glewInit_GL_QCOM_shader_framebuffer_fetch_noncoherent (); +static GLboolean _glewInit_GL_QCOM_texture_foveated (); +static GLboolean _glewInit_GL_QCOM_tiled_rendering (); +static GLboolean _glewInit_GL_REGAL_ES1_0_compatibility (); +static GLboolean _glewInit_GL_REGAL_ES1_1_compatibility (); +static GLboolean _glewInit_GL_REGAL_error_string (); +static GLboolean _glewInit_GL_REGAL_extension_query (); +static GLboolean _glewInit_GL_REGAL_log (); +static GLboolean _glewInit_GL_REGAL_proc_address (); +static GLboolean _glewInit_GL_SGIS_detail_texture (); +static GLboolean _glewInit_GL_SGIS_fog_function (); +static GLboolean _glewInit_GL_SGIS_multisample (); +static GLboolean _glewInit_GL_SGIS_multitexture (); +static GLboolean _glewInit_GL_SGIS_shared_multisample (); +static GLboolean _glewInit_GL_SGIS_sharpen_texture (); +static GLboolean _glewInit_GL_SGIS_texture4D (); +static GLboolean _glewInit_GL_SGIS_texture_filter4 (); +static GLboolean _glewInit_GL_SGIX_async (); +static GLboolean _glewInit_GL_SGIX_datapipe (); +static GLboolean _glewInit_GL_SGIX_flush_raster (); +static GLboolean _glewInit_GL_SGIX_fog_layers (); +static GLboolean _glewInit_GL_SGIX_fog_texture (); +static GLboolean _glewInit_GL_SGIX_fragment_specular_lighting (); +static GLboolean _glewInit_GL_SGIX_framezoom (); +static GLboolean _glewInit_GL_SGIX_igloo_interface (); +static GLboolean _glewInit_GL_SGIX_mpeg1 (); +static GLboolean _glewInit_GL_SGIX_nonlinear_lighting_pervertex (); +static GLboolean _glewInit_GL_SGIX_pixel_texture (); +static GLboolean _glewInit_GL_SGIX_polynomial_ffd (); +static GLboolean _glewInit_GL_SGIX_quad_mesh (); +static GLboolean _glewInit_GL_SGIX_reference_plane (); +static GLboolean _glewInit_GL_SGIX_sprite (); +static GLboolean _glewInit_GL_SGIX_tag_sample_buffer (); +static GLboolean _glewInit_GL_SGIX_vector_ops (); +static GLboolean _glewInit_GL_SGIX_vertex_array_object (); +static GLboolean _glewInit_GL_SGI_color_table (); +static GLboolean _glewInit_GL_SGI_fft (); +static GLboolean _glewInit_GL_SUNX_constant_data (); +static GLboolean _glewInit_GL_SUN_global_alpha (); +static GLboolean _glewInit_GL_SUN_read_video_pixels (); +static GLboolean _glewInit_GL_SUN_triangle_list (); +static GLboolean _glewInit_GL_SUN_vertex (); +static GLboolean _glewInit_GL_WIN_swap_hint (); #ifdef GL_VERSION_1_2 -static GLboolean _glewInit_GL_VERSION_1_2 (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_VERSION_1_2 () { GLboolean r = GL_FALSE; @@ -3581,7 +10412,7 @@ static GLboolean _glewInit_GL_VERSION_1_2 (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_VERSION_1_3 -static GLboolean _glewInit_GL_VERSION_1_3 (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_VERSION_1_3 () { GLboolean r = GL_FALSE; @@ -3639,7 +10470,7 @@ static GLboolean _glewInit_GL_VERSION_1_3 (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_VERSION_1_4 -static GLboolean _glewInit_GL_VERSION_1_4 (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_VERSION_1_4 () { GLboolean r = GL_FALSE; @@ -3698,7 +10529,7 @@ static GLboolean _glewInit_GL_VERSION_1_4 (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_VERSION_1_5 -static GLboolean _glewInit_GL_VERSION_1_5 (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_VERSION_1_5 () { GLboolean r = GL_FALSE; @@ -3729,7 +10560,7 @@ static GLboolean _glewInit_GL_VERSION_1_5 (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_VERSION_2_0 -static GLboolean _glewInit_GL_VERSION_2_0 (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_VERSION_2_0 () { GLboolean r = GL_FALSE; @@ -3834,7 +10665,7 @@ static GLboolean _glewInit_GL_VERSION_2_0 (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_VERSION_2_1 -static GLboolean _glewInit_GL_VERSION_2_1 (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_VERSION_2_1 () { GLboolean r = GL_FALSE; @@ -3852,10 +10683,15 @@ static GLboolean _glewInit_GL_VERSION_2_1 (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_VERSION_3_0 -static GLboolean _glewInit_GL_VERSION_3_0 (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_VERSION_3_0 () { GLboolean r = GL_FALSE; + r = _glewInit_GL_ARB_framebuffer_object() || r; + r = _glewInit_GL_ARB_map_buffer_range() || r; + r = _glewInit_GL_ARB_uniform_buffer_object() || r; + r = _glewInit_GL_ARB_vertex_array_object() || r; + r = ((glBeginConditionalRender = (PFNGLBEGINCONDITIONALRENDERPROC)glewGetProcAddress((const GLubyte*)"glBeginConditionalRender")) == NULL) || r; r = ((glBeginTransformFeedback = (PFNGLBEGINTRANSFORMFEEDBACKPROC)glewGetProcAddress((const GLubyte*)"glBeginTransformFeedback")) == NULL) || r; r = ((glBindFragDataLocation = (PFNGLBINDFRAGDATALOCATIONPROC)glewGetProcAddress((const GLubyte*)"glBindFragDataLocation")) == NULL) || r; @@ -3919,10 +10755,12 @@ static GLboolean _glewInit_GL_VERSION_3_0 (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_VERSION_3_1 -static GLboolean _glewInit_GL_VERSION_3_1 (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_VERSION_3_1 () { GLboolean r = GL_FALSE; + r = _glewInit_GL_ARB_copy_buffer() || r; + r = ((glDrawArraysInstanced = (PFNGLDRAWARRAYSINSTANCEDPROC)glewGetProcAddress((const GLubyte*)"glDrawArraysInstanced")) == NULL) || r; r = ((glDrawElementsInstanced = (PFNGLDRAWELEMENTSINSTANCEDPROC)glewGetProcAddress((const GLubyte*)"glDrawElementsInstanced")) == NULL) || r; r = ((glPrimitiveRestartIndex = (PFNGLPRIMITIVERESTARTINDEXPROC)glewGetProcAddress((const GLubyte*)"glPrimitiveRestartIndex")) == NULL) || r; @@ -3935,10 +10773,15 @@ static GLboolean _glewInit_GL_VERSION_3_1 (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_VERSION_3_2 -static GLboolean _glewInit_GL_VERSION_3_2 (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_VERSION_3_2 () { GLboolean r = GL_FALSE; + r = _glewInit_GL_ARB_draw_elements_base_vertex() || r; + r = _glewInit_GL_ARB_provoking_vertex() || r; + r = _glewInit_GL_ARB_sync() || r; + r = _glewInit_GL_ARB_texture_multisample() || r; + r = ((glFramebufferTexture = (PFNGLFRAMEBUFFERTEXTUREPROC)glewGetProcAddress((const GLubyte*)"glFramebufferTexture")) == NULL) || r; r = ((glGetBufferParameteri64v = (PFNGLGETBUFFERPARAMETERI64VPROC)glewGetProcAddress((const GLubyte*)"glGetBufferParameteri64v")) == NULL) || r; r = ((glGetInteger64i_v = (PFNGLGETINTEGER64I_VPROC)glewGetProcAddress((const GLubyte*)"glGetInteger64i_v")) == NULL) || r; @@ -3950,7 +10793,7 @@ static GLboolean _glewInit_GL_VERSION_3_2 (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_VERSION_3_3 -static GLboolean _glewInit_GL_VERSION_3_3 (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_VERSION_3_3 () { GLboolean r = GL_FALSE; @@ -3963,7 +10806,7 @@ static GLboolean _glewInit_GL_VERSION_3_3 (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_VERSION_4_0 -static GLboolean _glewInit_GL_VERSION_4_0 (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_VERSION_4_0 () { GLboolean r = GL_FALSE; @@ -3980,7 +10823,7 @@ static GLboolean _glewInit_GL_VERSION_4_0 (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_VERSION_4_5 -static GLboolean _glewInit_GL_VERSION_4_5 (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_VERSION_4_5 () { GLboolean r = GL_FALSE; @@ -3994,9 +10837,24 @@ static GLboolean _glewInit_GL_VERSION_4_5 (GLEW_CONTEXT_ARG_DEF_INIT) #endif /* GL_VERSION_4_5 */ +#ifdef GL_VERSION_4_6 + +static GLboolean _glewInit_GL_VERSION_4_6 () +{ + GLboolean r = GL_FALSE; + + r = ((glMultiDrawArraysIndirectCount = (PFNGLMULTIDRAWARRAYSINDIRECTCOUNTPROC)glewGetProcAddress((const GLubyte*)"glMultiDrawArraysIndirectCount")) == NULL) || r; + r = ((glMultiDrawElementsIndirectCount = (PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTPROC)glewGetProcAddress((const GLubyte*)"glMultiDrawElementsIndirectCount")) == NULL) || r; + r = ((glSpecializeShader = (PFNGLSPECIALIZESHADERPROC)glewGetProcAddress((const GLubyte*)"glSpecializeShader")) == NULL) || r; + + return r; +} + +#endif /* GL_VERSION_4_6 */ + #ifdef GL_3DFX_tbuffer -static GLboolean _glewInit_GL_3DFX_tbuffer (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_3DFX_tbuffer () { GLboolean r = GL_FALSE; @@ -4009,7 +10867,7 @@ static GLboolean _glewInit_GL_3DFX_tbuffer (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_AMD_debug_output -static GLboolean _glewInit_GL_AMD_debug_output (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_AMD_debug_output () { GLboolean r = GL_FALSE; @@ -4025,7 +10883,7 @@ static GLboolean _glewInit_GL_AMD_debug_output (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_AMD_draw_buffers_blend -static GLboolean _glewInit_GL_AMD_draw_buffers_blend (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_AMD_draw_buffers_blend () { GLboolean r = GL_FALSE; @@ -4039,9 +10897,39 @@ static GLboolean _glewInit_GL_AMD_draw_buffers_blend (GLEW_CONTEXT_ARG_DEF_INIT) #endif /* GL_AMD_draw_buffers_blend */ +#ifdef GL_AMD_framebuffer_multisample_advanced + +static GLboolean _glewInit_GL_AMD_framebuffer_multisample_advanced () +{ + GLboolean r = GL_FALSE; + + r = ((glNamedRenderbufferStorageMultisampleAdvancedAMD = (PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEADVANCEDAMDPROC)glewGetProcAddress((const GLubyte*)"glNamedRenderbufferStorageMultisampleAdvancedAMD")) == NULL) || r; + r = ((glRenderbufferStorageMultisampleAdvancedAMD = (PFNGLRENDERBUFFERSTORAGEMULTISAMPLEADVANCEDAMDPROC)glewGetProcAddress((const GLubyte*)"glRenderbufferStorageMultisampleAdvancedAMD")) == NULL) || r; + + return r; +} + +#endif /* GL_AMD_framebuffer_multisample_advanced */ + +#ifdef GL_AMD_framebuffer_sample_positions + +static GLboolean _glewInit_GL_AMD_framebuffer_sample_positions () +{ + GLboolean r = GL_FALSE; + + r = ((glFramebufferSamplePositionsfvAMD = (PFNGLFRAMEBUFFERSAMPLEPOSITIONSFVAMDPROC)glewGetProcAddress((const GLubyte*)"glFramebufferSamplePositionsfvAMD")) == NULL) || r; + r = ((glGetFramebufferParameterfvAMD = (PFNGLGETFRAMEBUFFERPARAMETERFVAMDPROC)glewGetProcAddress((const GLubyte*)"glGetFramebufferParameterfvAMD")) == NULL) || r; + r = ((glGetNamedFramebufferParameterfvAMD = (PFNGLGETNAMEDFRAMEBUFFERPARAMETERFVAMDPROC)glewGetProcAddress((const GLubyte*)"glGetNamedFramebufferParameterfvAMD")) == NULL) || r; + r = ((glNamedFramebufferSamplePositionsfvAMD = (PFNGLNAMEDFRAMEBUFFERSAMPLEPOSITIONSFVAMDPROC)glewGetProcAddress((const GLubyte*)"glNamedFramebufferSamplePositionsfvAMD")) == NULL) || r; + + return r; +} + +#endif /* GL_AMD_framebuffer_sample_positions */ + #ifdef GL_AMD_interleaved_elements -static GLboolean _glewInit_GL_AMD_interleaved_elements (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_AMD_interleaved_elements () { GLboolean r = GL_FALSE; @@ -4054,7 +10942,7 @@ static GLboolean _glewInit_GL_AMD_interleaved_elements (GLEW_CONTEXT_ARG_DEF_INI #ifdef GL_AMD_multi_draw_indirect -static GLboolean _glewInit_GL_AMD_multi_draw_indirect (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_AMD_multi_draw_indirect () { GLboolean r = GL_FALSE; @@ -4068,7 +10956,7 @@ static GLboolean _glewInit_GL_AMD_multi_draw_indirect (GLEW_CONTEXT_ARG_DEF_INIT #ifdef GL_AMD_name_gen_delete -static GLboolean _glewInit_GL_AMD_name_gen_delete (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_AMD_name_gen_delete () { GLboolean r = GL_FALSE; @@ -4083,7 +10971,7 @@ static GLboolean _glewInit_GL_AMD_name_gen_delete (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_AMD_occlusion_query_event -static GLboolean _glewInit_GL_AMD_occlusion_query_event (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_AMD_occlusion_query_event () { GLboolean r = GL_FALSE; @@ -4096,7 +10984,7 @@ static GLboolean _glewInit_GL_AMD_occlusion_query_event (GLEW_CONTEXT_ARG_DEF_IN #ifdef GL_AMD_performance_monitor -static GLboolean _glewInit_GL_AMD_performance_monitor (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_AMD_performance_monitor () { GLboolean r = GL_FALSE; @@ -4119,7 +11007,7 @@ static GLboolean _glewInit_GL_AMD_performance_monitor (GLEW_CONTEXT_ARG_DEF_INIT #ifdef GL_AMD_sample_positions -static GLboolean _glewInit_GL_AMD_sample_positions (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_AMD_sample_positions () { GLboolean r = GL_FALSE; @@ -4132,7 +11020,7 @@ static GLboolean _glewInit_GL_AMD_sample_positions (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_AMD_sparse_texture -static GLboolean _glewInit_GL_AMD_sparse_texture (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_AMD_sparse_texture () { GLboolean r = GL_FALSE; @@ -4146,7 +11034,7 @@ static GLboolean _glewInit_GL_AMD_sparse_texture (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_AMD_stencil_operation_extended -static GLboolean _glewInit_GL_AMD_stencil_operation_extended (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_AMD_stencil_operation_extended () { GLboolean r = GL_FALSE; @@ -4159,7 +11047,7 @@ static GLboolean _glewInit_GL_AMD_stencil_operation_extended (GLEW_CONTEXT_ARG_D #ifdef GL_AMD_vertex_shader_tessellator -static GLboolean _glewInit_GL_AMD_vertex_shader_tessellator (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_AMD_vertex_shader_tessellator () { GLboolean r = GL_FALSE; @@ -4173,7 +11061,7 @@ static GLboolean _glewInit_GL_AMD_vertex_shader_tessellator (GLEW_CONTEXT_ARG_DE #ifdef GL_ANGLE_framebuffer_blit -static GLboolean _glewInit_GL_ANGLE_framebuffer_blit (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ANGLE_framebuffer_blit () { GLboolean r = GL_FALSE; @@ -4186,7 +11074,7 @@ static GLboolean _glewInit_GL_ANGLE_framebuffer_blit (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ANGLE_framebuffer_multisample -static GLboolean _glewInit_GL_ANGLE_framebuffer_multisample (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ANGLE_framebuffer_multisample () { GLboolean r = GL_FALSE; @@ -4199,7 +11087,7 @@ static GLboolean _glewInit_GL_ANGLE_framebuffer_multisample (GLEW_CONTEXT_ARG_DE #ifdef GL_ANGLE_instanced_arrays -static GLboolean _glewInit_GL_ANGLE_instanced_arrays (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ANGLE_instanced_arrays () { GLboolean r = GL_FALSE; @@ -4214,7 +11102,7 @@ static GLboolean _glewInit_GL_ANGLE_instanced_arrays (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ANGLE_timer_query -static GLboolean _glewInit_GL_ANGLE_timer_query (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ANGLE_timer_query () { GLboolean r = GL_FALSE; @@ -4237,7 +11125,7 @@ static GLboolean _glewInit_GL_ANGLE_timer_query (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ANGLE_translated_shader_source -static GLboolean _glewInit_GL_ANGLE_translated_shader_source (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ANGLE_translated_shader_source () { GLboolean r = GL_FALSE; @@ -4248,9 +11136,22 @@ static GLboolean _glewInit_GL_ANGLE_translated_shader_source (GLEW_CONTEXT_ARG_D #endif /* GL_ANGLE_translated_shader_source */ +#ifdef GL_APPLE_copy_texture_levels + +static GLboolean _glewInit_GL_APPLE_copy_texture_levels () +{ + GLboolean r = GL_FALSE; + + r = ((glCopyTextureLevelsAPPLE = (PFNGLCOPYTEXTURELEVELSAPPLEPROC)glewGetProcAddress((const GLubyte*)"glCopyTextureLevelsAPPLE")) == NULL) || r; + + return r; +} + +#endif /* GL_APPLE_copy_texture_levels */ + #ifdef GL_APPLE_element_array -static GLboolean _glewInit_GL_APPLE_element_array (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_APPLE_element_array () { GLboolean r = GL_FALSE; @@ -4267,7 +11168,7 @@ static GLboolean _glewInit_GL_APPLE_element_array (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_APPLE_fence -static GLboolean _glewInit_GL_APPLE_fence (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_APPLE_fence () { GLboolean r = GL_FALSE; @@ -4287,7 +11188,7 @@ static GLboolean _glewInit_GL_APPLE_fence (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_APPLE_flush_buffer_range -static GLboolean _glewInit_GL_APPLE_flush_buffer_range (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_APPLE_flush_buffer_range () { GLboolean r = GL_FALSE; @@ -4299,9 +11200,23 @@ static GLboolean _glewInit_GL_APPLE_flush_buffer_range (GLEW_CONTEXT_ARG_DEF_INI #endif /* GL_APPLE_flush_buffer_range */ +#ifdef GL_APPLE_framebuffer_multisample + +static GLboolean _glewInit_GL_APPLE_framebuffer_multisample () +{ + GLboolean r = GL_FALSE; + + r = ((glRenderbufferStorageMultisampleAPPLE = (PFNGLRENDERBUFFERSTORAGEMULTISAMPLEAPPLEPROC)glewGetProcAddress((const GLubyte*)"glRenderbufferStorageMultisampleAPPLE")) == NULL) || r; + r = ((glResolveMultisampleFramebufferAPPLE = (PFNGLRESOLVEMULTISAMPLEFRAMEBUFFERAPPLEPROC)glewGetProcAddress((const GLubyte*)"glResolveMultisampleFramebufferAPPLE")) == NULL) || r; + + return r; +} + +#endif /* GL_APPLE_framebuffer_multisample */ + #ifdef GL_APPLE_object_purgeable -static GLboolean _glewInit_GL_APPLE_object_purgeable (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_APPLE_object_purgeable () { GLboolean r = GL_FALSE; @@ -4314,9 +11229,28 @@ static GLboolean _glewInit_GL_APPLE_object_purgeable (GLEW_CONTEXT_ARG_DEF_INIT) #endif /* GL_APPLE_object_purgeable */ +#ifdef GL_APPLE_sync + +static GLboolean _glewInit_GL_APPLE_sync () +{ + GLboolean r = GL_FALSE; + + r = ((glClientWaitSyncAPPLE = (PFNGLCLIENTWAITSYNCAPPLEPROC)glewGetProcAddress((const GLubyte*)"glClientWaitSyncAPPLE")) == NULL) || r; + r = ((glDeleteSyncAPPLE = (PFNGLDELETESYNCAPPLEPROC)glewGetProcAddress((const GLubyte*)"glDeleteSyncAPPLE")) == NULL) || r; + r = ((glFenceSyncAPPLE = (PFNGLFENCESYNCAPPLEPROC)glewGetProcAddress((const GLubyte*)"glFenceSyncAPPLE")) == NULL) || r; + r = ((glGetInteger64vAPPLE = (PFNGLGETINTEGER64VAPPLEPROC)glewGetProcAddress((const GLubyte*)"glGetInteger64vAPPLE")) == NULL) || r; + r = ((glGetSyncivAPPLE = (PFNGLGETSYNCIVAPPLEPROC)glewGetProcAddress((const GLubyte*)"glGetSyncivAPPLE")) == NULL) || r; + r = ((glIsSyncAPPLE = (PFNGLISSYNCAPPLEPROC)glewGetProcAddress((const GLubyte*)"glIsSyncAPPLE")) == NULL) || r; + r = ((glWaitSyncAPPLE = (PFNGLWAITSYNCAPPLEPROC)glewGetProcAddress((const GLubyte*)"glWaitSyncAPPLE")) == NULL) || r; + + return r; +} + +#endif /* GL_APPLE_sync */ + #ifdef GL_APPLE_texture_range -static GLboolean _glewInit_GL_APPLE_texture_range (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_APPLE_texture_range () { GLboolean r = GL_FALSE; @@ -4330,7 +11264,7 @@ static GLboolean _glewInit_GL_APPLE_texture_range (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_APPLE_vertex_array_object -static GLboolean _glewInit_GL_APPLE_vertex_array_object (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_APPLE_vertex_array_object () { GLboolean r = GL_FALSE; @@ -4346,7 +11280,7 @@ static GLboolean _glewInit_GL_APPLE_vertex_array_object (GLEW_CONTEXT_ARG_DEF_IN #ifdef GL_APPLE_vertex_array_range -static GLboolean _glewInit_GL_APPLE_vertex_array_range (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_APPLE_vertex_array_range () { GLboolean r = GL_FALSE; @@ -4361,7 +11295,7 @@ static GLboolean _glewInit_GL_APPLE_vertex_array_range (GLEW_CONTEXT_ARG_DEF_INI #ifdef GL_APPLE_vertex_program_evaluators -static GLboolean _glewInit_GL_APPLE_vertex_program_evaluators (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_APPLE_vertex_program_evaluators () { GLboolean r = GL_FALSE; @@ -4380,7 +11314,7 @@ static GLboolean _glewInit_GL_APPLE_vertex_program_evaluators (GLEW_CONTEXT_ARG_ #ifdef GL_ARB_ES2_compatibility -static GLboolean _glewInit_GL_ARB_ES2_compatibility (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_ES2_compatibility () { GLboolean r = GL_FALSE; @@ -4397,7 +11331,7 @@ static GLboolean _glewInit_GL_ARB_ES2_compatibility (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_ES3_1_compatibility -static GLboolean _glewInit_GL_ARB_ES3_1_compatibility (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_ES3_1_compatibility () { GLboolean r = GL_FALSE; @@ -4410,7 +11344,7 @@ static GLboolean _glewInit_GL_ARB_ES3_1_compatibility (GLEW_CONTEXT_ARG_DEF_INIT #ifdef GL_ARB_ES3_2_compatibility -static GLboolean _glewInit_GL_ARB_ES3_2_compatibility (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_ES3_2_compatibility () { GLboolean r = GL_FALSE; @@ -4423,7 +11357,7 @@ static GLboolean _glewInit_GL_ARB_ES3_2_compatibility (GLEW_CONTEXT_ARG_DEF_INIT #ifdef GL_ARB_base_instance -static GLboolean _glewInit_GL_ARB_base_instance (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_base_instance () { GLboolean r = GL_FALSE; @@ -4438,7 +11372,7 @@ static GLboolean _glewInit_GL_ARB_base_instance (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_bindless_texture -static GLboolean _glewInit_GL_ARB_bindless_texture (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_bindless_texture () { GLboolean r = GL_FALSE; @@ -4466,7 +11400,7 @@ static GLboolean _glewInit_GL_ARB_bindless_texture (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_blend_func_extended -static GLboolean _glewInit_GL_ARB_blend_func_extended (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_blend_func_extended () { GLboolean r = GL_FALSE; @@ -4480,12 +11414,11 @@ static GLboolean _glewInit_GL_ARB_blend_func_extended (GLEW_CONTEXT_ARG_DEF_INIT #ifdef GL_ARB_buffer_storage -static GLboolean _glewInit_GL_ARB_buffer_storage (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_buffer_storage () { GLboolean r = GL_FALSE; r = ((glBufferStorage = (PFNGLBUFFERSTORAGEPROC)glewGetProcAddress((const GLubyte*)"glBufferStorage")) == NULL) || r; - r = ((glNamedBufferStorageEXT = (PFNGLNAMEDBUFFERSTORAGEEXTPROC)glewGetProcAddress((const GLubyte*)"glNamedBufferStorageEXT")) == NULL) || r; return r; } @@ -4494,7 +11427,7 @@ static GLboolean _glewInit_GL_ARB_buffer_storage (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_cl_event -static GLboolean _glewInit_GL_ARB_cl_event (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_cl_event () { GLboolean r = GL_FALSE; @@ -4507,7 +11440,7 @@ static GLboolean _glewInit_GL_ARB_cl_event (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_clear_buffer_object -static GLboolean _glewInit_GL_ARB_clear_buffer_object (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_clear_buffer_object () { GLboolean r = GL_FALSE; @@ -4523,7 +11456,7 @@ static GLboolean _glewInit_GL_ARB_clear_buffer_object (GLEW_CONTEXT_ARG_DEF_INIT #ifdef GL_ARB_clear_texture -static GLboolean _glewInit_GL_ARB_clear_texture (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_clear_texture () { GLboolean r = GL_FALSE; @@ -4537,7 +11470,7 @@ static GLboolean _glewInit_GL_ARB_clear_texture (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_clip_control -static GLboolean _glewInit_GL_ARB_clip_control (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_clip_control () { GLboolean r = GL_FALSE; @@ -4550,7 +11483,7 @@ static GLboolean _glewInit_GL_ARB_clip_control (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_color_buffer_float -static GLboolean _glewInit_GL_ARB_color_buffer_float (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_color_buffer_float () { GLboolean r = GL_FALSE; @@ -4563,7 +11496,7 @@ static GLboolean _glewInit_GL_ARB_color_buffer_float (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_compute_shader -static GLboolean _glewInit_GL_ARB_compute_shader (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_compute_shader () { GLboolean r = GL_FALSE; @@ -4577,7 +11510,7 @@ static GLboolean _glewInit_GL_ARB_compute_shader (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_compute_variable_group_size -static GLboolean _glewInit_GL_ARB_compute_variable_group_size (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_compute_variable_group_size () { GLboolean r = GL_FALSE; @@ -4590,7 +11523,7 @@ static GLboolean _glewInit_GL_ARB_compute_variable_group_size (GLEW_CONTEXT_ARG_ #ifdef GL_ARB_copy_buffer -static GLboolean _glewInit_GL_ARB_copy_buffer (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_copy_buffer () { GLboolean r = GL_FALSE; @@ -4603,7 +11536,7 @@ static GLboolean _glewInit_GL_ARB_copy_buffer (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_copy_image -static GLboolean _glewInit_GL_ARB_copy_image (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_copy_image () { GLboolean r = GL_FALSE; @@ -4616,7 +11549,7 @@ static GLboolean _glewInit_GL_ARB_copy_image (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_debug_output -static GLboolean _glewInit_GL_ARB_debug_output (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_debug_output () { GLboolean r = GL_FALSE; @@ -4632,7 +11565,7 @@ static GLboolean _glewInit_GL_ARB_debug_output (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_direct_state_access -static GLboolean _glewInit_GL_ARB_direct_state_access (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_direct_state_access () { GLboolean r = GL_FALSE; @@ -4741,7 +11674,7 @@ static GLboolean _glewInit_GL_ARB_direct_state_access (GLEW_CONTEXT_ARG_DEF_INIT #ifdef GL_ARB_draw_buffers -static GLboolean _glewInit_GL_ARB_draw_buffers (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_draw_buffers () { GLboolean r = GL_FALSE; @@ -4754,7 +11687,7 @@ static GLboolean _glewInit_GL_ARB_draw_buffers (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_draw_buffers_blend -static GLboolean _glewInit_GL_ARB_draw_buffers_blend (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_draw_buffers_blend () { GLboolean r = GL_FALSE; @@ -4770,7 +11703,7 @@ static GLboolean _glewInit_GL_ARB_draw_buffers_blend (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_draw_elements_base_vertex -static GLboolean _glewInit_GL_ARB_draw_elements_base_vertex (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_draw_elements_base_vertex () { GLboolean r = GL_FALSE; @@ -4786,7 +11719,7 @@ static GLboolean _glewInit_GL_ARB_draw_elements_base_vertex (GLEW_CONTEXT_ARG_DE #ifdef GL_ARB_draw_indirect -static GLboolean _glewInit_GL_ARB_draw_indirect (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_draw_indirect () { GLboolean r = GL_FALSE; @@ -4800,7 +11733,7 @@ static GLboolean _glewInit_GL_ARB_draw_indirect (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_framebuffer_no_attachments -static GLboolean _glewInit_GL_ARB_framebuffer_no_attachments (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_framebuffer_no_attachments () { GLboolean r = GL_FALSE; @@ -4816,7 +11749,7 @@ static GLboolean _glewInit_GL_ARB_framebuffer_no_attachments (GLEW_CONTEXT_ARG_D #ifdef GL_ARB_framebuffer_object -static GLboolean _glewInit_GL_ARB_framebuffer_object (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_framebuffer_object () { GLboolean r = GL_FALSE; @@ -4848,7 +11781,7 @@ static GLboolean _glewInit_GL_ARB_framebuffer_object (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_geometry_shader4 -static GLboolean _glewInit_GL_ARB_geometry_shader4 (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_geometry_shader4 () { GLboolean r = GL_FALSE; @@ -4864,7 +11797,7 @@ static GLboolean _glewInit_GL_ARB_geometry_shader4 (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_get_program_binary -static GLboolean _glewInit_GL_ARB_get_program_binary (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_get_program_binary () { GLboolean r = GL_FALSE; @@ -4879,7 +11812,7 @@ static GLboolean _glewInit_GL_ARB_get_program_binary (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_get_texture_sub_image -static GLboolean _glewInit_GL_ARB_get_texture_sub_image (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_get_texture_sub_image () { GLboolean r = GL_FALSE; @@ -4891,9 +11824,22 @@ static GLboolean _glewInit_GL_ARB_get_texture_sub_image (GLEW_CONTEXT_ARG_DEF_IN #endif /* GL_ARB_get_texture_sub_image */ +#ifdef GL_ARB_gl_spirv + +static GLboolean _glewInit_GL_ARB_gl_spirv () +{ + GLboolean r = GL_FALSE; + + r = ((glSpecializeShaderARB = (PFNGLSPECIALIZESHADERARBPROC)glewGetProcAddress((const GLubyte*)"glSpecializeShaderARB")) == NULL) || r; + + return r; +} + +#endif /* GL_ARB_gl_spirv */ + #ifdef GL_ARB_gpu_shader_fp64 -static GLboolean _glewInit_GL_ARB_gpu_shader_fp64 (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_gpu_shader_fp64 () { GLboolean r = GL_FALSE; @@ -4923,7 +11869,7 @@ static GLboolean _glewInit_GL_ARB_gpu_shader_fp64 (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_gpu_shader_int64 -static GLboolean _glewInit_GL_ARB_gpu_shader_int64 (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_gpu_shader_int64 () { GLboolean r = GL_FALSE; @@ -4971,7 +11917,7 @@ static GLboolean _glewInit_GL_ARB_gpu_shader_int64 (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_imaging -static GLboolean _glewInit_GL_ARB_imaging (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_imaging () { GLboolean r = GL_FALSE; @@ -5016,7 +11962,7 @@ static GLboolean _glewInit_GL_ARB_imaging (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_indirect_parameters -static GLboolean _glewInit_GL_ARB_indirect_parameters (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_indirect_parameters () { GLboolean r = GL_FALSE; @@ -5030,7 +11976,7 @@ static GLboolean _glewInit_GL_ARB_indirect_parameters (GLEW_CONTEXT_ARG_DEF_INIT #ifdef GL_ARB_instanced_arrays -static GLboolean _glewInit_GL_ARB_instanced_arrays (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_instanced_arrays () { GLboolean r = GL_FALSE; @@ -5045,7 +11991,7 @@ static GLboolean _glewInit_GL_ARB_instanced_arrays (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_internalformat_query -static GLboolean _glewInit_GL_ARB_internalformat_query (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_internalformat_query () { GLboolean r = GL_FALSE; @@ -5058,7 +12004,7 @@ static GLboolean _glewInit_GL_ARB_internalformat_query (GLEW_CONTEXT_ARG_DEF_INI #ifdef GL_ARB_internalformat_query2 -static GLboolean _glewInit_GL_ARB_internalformat_query2 (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_internalformat_query2 () { GLboolean r = GL_FALSE; @@ -5071,7 +12017,7 @@ static GLboolean _glewInit_GL_ARB_internalformat_query2 (GLEW_CONTEXT_ARG_DEF_IN #ifdef GL_ARB_invalidate_subdata -static GLboolean _glewInit_GL_ARB_invalidate_subdata (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_invalidate_subdata () { GLboolean r = GL_FALSE; @@ -5089,7 +12035,7 @@ static GLboolean _glewInit_GL_ARB_invalidate_subdata (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_map_buffer_range -static GLboolean _glewInit_GL_ARB_map_buffer_range (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_map_buffer_range () { GLboolean r = GL_FALSE; @@ -5103,7 +12049,7 @@ static GLboolean _glewInit_GL_ARB_map_buffer_range (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_matrix_palette -static GLboolean _glewInit_GL_ARB_matrix_palette (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_matrix_palette () { GLboolean r = GL_FALSE; @@ -5120,7 +12066,7 @@ static GLboolean _glewInit_GL_ARB_matrix_palette (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_multi_bind -static GLboolean _glewInit_GL_ARB_multi_bind (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_multi_bind () { GLboolean r = GL_FALSE; @@ -5138,7 +12084,7 @@ static GLboolean _glewInit_GL_ARB_multi_bind (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_multi_draw_indirect -static GLboolean _glewInit_GL_ARB_multi_draw_indirect (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_multi_draw_indirect () { GLboolean r = GL_FALSE; @@ -5152,7 +12098,7 @@ static GLboolean _glewInit_GL_ARB_multi_draw_indirect (GLEW_CONTEXT_ARG_DEF_INIT #ifdef GL_ARB_multisample -static GLboolean _glewInit_GL_ARB_multisample (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_multisample () { GLboolean r = GL_FALSE; @@ -5165,7 +12111,7 @@ static GLboolean _glewInit_GL_ARB_multisample (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_multitexture -static GLboolean _glewInit_GL_ARB_multitexture (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_multitexture () { GLboolean r = GL_FALSE; @@ -5211,7 +12157,7 @@ static GLboolean _glewInit_GL_ARB_multitexture (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_occlusion_query -static GLboolean _glewInit_GL_ARB_occlusion_query (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_occlusion_query () { GLboolean r = GL_FALSE; @@ -5231,7 +12177,7 @@ static GLboolean _glewInit_GL_ARB_occlusion_query (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_parallel_shader_compile -static GLboolean _glewInit_GL_ARB_parallel_shader_compile (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_parallel_shader_compile () { GLboolean r = GL_FALSE; @@ -5244,7 +12190,7 @@ static GLboolean _glewInit_GL_ARB_parallel_shader_compile (GLEW_CONTEXT_ARG_DEF_ #ifdef GL_ARB_point_parameters -static GLboolean _glewInit_GL_ARB_point_parameters (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_point_parameters () { GLboolean r = GL_FALSE; @@ -5256,9 +12202,22 @@ static GLboolean _glewInit_GL_ARB_point_parameters (GLEW_CONTEXT_ARG_DEF_INIT) #endif /* GL_ARB_point_parameters */ +#ifdef GL_ARB_polygon_offset_clamp + +static GLboolean _glewInit_GL_ARB_polygon_offset_clamp () +{ + GLboolean r = GL_FALSE; + + r = ((glPolygonOffsetClamp = (PFNGLPOLYGONOFFSETCLAMPPROC)glewGetProcAddress((const GLubyte*)"glPolygonOffsetClamp")) == NULL) || r; + + return r; +} + +#endif /* GL_ARB_polygon_offset_clamp */ + #ifdef GL_ARB_program_interface_query -static GLboolean _glewInit_GL_ARB_program_interface_query (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_program_interface_query () { GLboolean r = GL_FALSE; @@ -5276,7 +12235,7 @@ static GLboolean _glewInit_GL_ARB_program_interface_query (GLEW_CONTEXT_ARG_DEF_ #ifdef GL_ARB_provoking_vertex -static GLboolean _glewInit_GL_ARB_provoking_vertex (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_provoking_vertex () { GLboolean r = GL_FALSE; @@ -5289,7 +12248,7 @@ static GLboolean _glewInit_GL_ARB_provoking_vertex (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_robustness -static GLboolean _glewInit_GL_ARB_robustness (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_robustness () { GLboolean r = GL_FALSE; @@ -5321,7 +12280,7 @@ static GLboolean _glewInit_GL_ARB_robustness (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_sample_locations -static GLboolean _glewInit_GL_ARB_sample_locations (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_sample_locations () { GLboolean r = GL_FALSE; @@ -5335,7 +12294,7 @@ static GLboolean _glewInit_GL_ARB_sample_locations (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_sample_shading -static GLboolean _glewInit_GL_ARB_sample_shading (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_sample_shading () { GLboolean r = GL_FALSE; @@ -5348,7 +12307,7 @@ static GLboolean _glewInit_GL_ARB_sample_shading (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_sampler_objects -static GLboolean _glewInit_GL_ARB_sampler_objects (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_sampler_objects () { GLboolean r = GL_FALSE; @@ -5374,7 +12333,7 @@ static GLboolean _glewInit_GL_ARB_sampler_objects (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_separate_shader_objects -static GLboolean _glewInit_GL_ARB_separate_shader_objects (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_separate_shader_objects () { GLboolean r = GL_FALSE; @@ -5446,7 +12405,7 @@ static GLboolean _glewInit_GL_ARB_separate_shader_objects (GLEW_CONTEXT_ARG_DEF_ #ifdef GL_ARB_shader_atomic_counters -static GLboolean _glewInit_GL_ARB_shader_atomic_counters (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_shader_atomic_counters () { GLboolean r = GL_FALSE; @@ -5459,7 +12418,7 @@ static GLboolean _glewInit_GL_ARB_shader_atomic_counters (GLEW_CONTEXT_ARG_DEF_I #ifdef GL_ARB_shader_image_load_store -static GLboolean _glewInit_GL_ARB_shader_image_load_store (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_shader_image_load_store () { GLboolean r = GL_FALSE; @@ -5473,7 +12432,7 @@ static GLboolean _glewInit_GL_ARB_shader_image_load_store (GLEW_CONTEXT_ARG_DEF_ #ifdef GL_ARB_shader_objects -static GLboolean _glewInit_GL_ARB_shader_objects (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_shader_objects () { GLboolean r = GL_FALSE; @@ -5524,7 +12483,7 @@ static GLboolean _glewInit_GL_ARB_shader_objects (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_shader_storage_buffer_object -static GLboolean _glewInit_GL_ARB_shader_storage_buffer_object (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_shader_storage_buffer_object () { GLboolean r = GL_FALSE; @@ -5537,7 +12496,7 @@ static GLboolean _glewInit_GL_ARB_shader_storage_buffer_object (GLEW_CONTEXT_ARG #ifdef GL_ARB_shader_subroutine -static GLboolean _glewInit_GL_ARB_shader_subroutine (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_shader_subroutine () { GLboolean r = GL_FALSE; @@ -5557,7 +12516,7 @@ static GLboolean _glewInit_GL_ARB_shader_subroutine (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_shading_language_include -static GLboolean _glewInit_GL_ARB_shading_language_include (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_shading_language_include () { GLboolean r = GL_FALSE; @@ -5575,7 +12534,7 @@ static GLboolean _glewInit_GL_ARB_shading_language_include (GLEW_CONTEXT_ARG_DEF #ifdef GL_ARB_sparse_buffer -static GLboolean _glewInit_GL_ARB_sparse_buffer (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_sparse_buffer () { GLboolean r = GL_FALSE; @@ -5588,12 +12547,11 @@ static GLboolean _glewInit_GL_ARB_sparse_buffer (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_sparse_texture -static GLboolean _glewInit_GL_ARB_sparse_texture (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_sparse_texture () { GLboolean r = GL_FALSE; r = ((glTexPageCommitmentARB = (PFNGLTEXPAGECOMMITMENTARBPROC)glewGetProcAddress((const GLubyte*)"glTexPageCommitmentARB")) == NULL) || r; - r = ((glTexturePageCommitmentEXT = (PFNGLTEXTUREPAGECOMMITMENTEXTPROC)glewGetProcAddress((const GLubyte*)"glTexturePageCommitmentEXT")) == NULL) || r; return r; } @@ -5602,7 +12560,7 @@ static GLboolean _glewInit_GL_ARB_sparse_texture (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_sync -static GLboolean _glewInit_GL_ARB_sync (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_sync () { GLboolean r = GL_FALSE; @@ -5621,7 +12579,7 @@ static GLboolean _glewInit_GL_ARB_sync (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_tessellation_shader -static GLboolean _glewInit_GL_ARB_tessellation_shader (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_tessellation_shader () { GLboolean r = GL_FALSE; @@ -5635,7 +12593,7 @@ static GLboolean _glewInit_GL_ARB_tessellation_shader (GLEW_CONTEXT_ARG_DEF_INIT #ifdef GL_ARB_texture_barrier -static GLboolean _glewInit_GL_ARB_texture_barrier (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_texture_barrier () { GLboolean r = GL_FALSE; @@ -5648,7 +12606,7 @@ static GLboolean _glewInit_GL_ARB_texture_barrier (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_texture_buffer_object -static GLboolean _glewInit_GL_ARB_texture_buffer_object (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_texture_buffer_object () { GLboolean r = GL_FALSE; @@ -5661,7 +12619,7 @@ static GLboolean _glewInit_GL_ARB_texture_buffer_object (GLEW_CONTEXT_ARG_DEF_IN #ifdef GL_ARB_texture_buffer_range -static GLboolean _glewInit_GL_ARB_texture_buffer_range (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_texture_buffer_range () { GLboolean r = GL_FALSE; @@ -5675,7 +12633,7 @@ static GLboolean _glewInit_GL_ARB_texture_buffer_range (GLEW_CONTEXT_ARG_DEF_INI #ifdef GL_ARB_texture_compression -static GLboolean _glewInit_GL_ARB_texture_compression (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_texture_compression () { GLboolean r = GL_FALSE; @@ -5694,7 +12652,7 @@ static GLboolean _glewInit_GL_ARB_texture_compression (GLEW_CONTEXT_ARG_DEF_INIT #ifdef GL_ARB_texture_multisample -static GLboolean _glewInit_GL_ARB_texture_multisample (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_texture_multisample () { GLboolean r = GL_FALSE; @@ -5710,16 +12668,13 @@ static GLboolean _glewInit_GL_ARB_texture_multisample (GLEW_CONTEXT_ARG_DEF_INIT #ifdef GL_ARB_texture_storage -static GLboolean _glewInit_GL_ARB_texture_storage (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_texture_storage () { GLboolean r = GL_FALSE; r = ((glTexStorage1D = (PFNGLTEXSTORAGE1DPROC)glewGetProcAddress((const GLubyte*)"glTexStorage1D")) == NULL) || r; r = ((glTexStorage2D = (PFNGLTEXSTORAGE2DPROC)glewGetProcAddress((const GLubyte*)"glTexStorage2D")) == NULL) || r; r = ((glTexStorage3D = (PFNGLTEXSTORAGE3DPROC)glewGetProcAddress((const GLubyte*)"glTexStorage3D")) == NULL) || r; - r = ((glTextureStorage1DEXT = (PFNGLTEXTURESTORAGE1DEXTPROC)glewGetProcAddress((const GLubyte*)"glTextureStorage1DEXT")) == NULL) || r; - r = ((glTextureStorage2DEXT = (PFNGLTEXTURESTORAGE2DEXTPROC)glewGetProcAddress((const GLubyte*)"glTextureStorage2DEXT")) == NULL) || r; - r = ((glTextureStorage3DEXT = (PFNGLTEXTURESTORAGE3DEXTPROC)glewGetProcAddress((const GLubyte*)"glTextureStorage3DEXT")) == NULL) || r; return r; } @@ -5728,7 +12683,7 @@ static GLboolean _glewInit_GL_ARB_texture_storage (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_texture_storage_multisample -static GLboolean _glewInit_GL_ARB_texture_storage_multisample (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_texture_storage_multisample () { GLboolean r = GL_FALSE; @@ -5744,7 +12699,7 @@ static GLboolean _glewInit_GL_ARB_texture_storage_multisample (GLEW_CONTEXT_ARG_ #ifdef GL_ARB_texture_view -static GLboolean _glewInit_GL_ARB_texture_view (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_texture_view () { GLboolean r = GL_FALSE; @@ -5757,7 +12712,7 @@ static GLboolean _glewInit_GL_ARB_texture_view (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_timer_query -static GLboolean _glewInit_GL_ARB_timer_query (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_timer_query () { GLboolean r = GL_FALSE; @@ -5772,7 +12727,7 @@ static GLboolean _glewInit_GL_ARB_timer_query (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_transform_feedback2 -static GLboolean _glewInit_GL_ARB_transform_feedback2 (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_transform_feedback2 () { GLboolean r = GL_FALSE; @@ -5791,7 +12746,7 @@ static GLboolean _glewInit_GL_ARB_transform_feedback2 (GLEW_CONTEXT_ARG_DEF_INIT #ifdef GL_ARB_transform_feedback3 -static GLboolean _glewInit_GL_ARB_transform_feedback3 (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_transform_feedback3 () { GLboolean r = GL_FALSE; @@ -5807,7 +12762,7 @@ static GLboolean _glewInit_GL_ARB_transform_feedback3 (GLEW_CONTEXT_ARG_DEF_INIT #ifdef GL_ARB_transform_feedback_instanced -static GLboolean _glewInit_GL_ARB_transform_feedback_instanced (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_transform_feedback_instanced () { GLboolean r = GL_FALSE; @@ -5821,7 +12776,7 @@ static GLboolean _glewInit_GL_ARB_transform_feedback_instanced (GLEW_CONTEXT_ARG #ifdef GL_ARB_transpose_matrix -static GLboolean _glewInit_GL_ARB_transpose_matrix (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_transpose_matrix () { GLboolean r = GL_FALSE; @@ -5837,7 +12792,7 @@ static GLboolean _glewInit_GL_ARB_transpose_matrix (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_uniform_buffer_object -static GLboolean _glewInit_GL_ARB_uniform_buffer_object (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_uniform_buffer_object () { GLboolean r = GL_FALSE; @@ -5859,7 +12814,7 @@ static GLboolean _glewInit_GL_ARB_uniform_buffer_object (GLEW_CONTEXT_ARG_DEF_IN #ifdef GL_ARB_vertex_array_object -static GLboolean _glewInit_GL_ARB_vertex_array_object (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_vertex_array_object () { GLboolean r = GL_FALSE; @@ -5875,7 +12830,7 @@ static GLboolean _glewInit_GL_ARB_vertex_array_object (GLEW_CONTEXT_ARG_DEF_INIT #ifdef GL_ARB_vertex_attrib_64bit -static GLboolean _glewInit_GL_ARB_vertex_attrib_64bit (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_vertex_attrib_64bit () { GLboolean r = GL_FALSE; @@ -5897,7 +12852,7 @@ static GLboolean _glewInit_GL_ARB_vertex_attrib_64bit (GLEW_CONTEXT_ARG_DEF_INIT #ifdef GL_ARB_vertex_attrib_binding -static GLboolean _glewInit_GL_ARB_vertex_attrib_binding (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_vertex_attrib_binding () { GLboolean r = GL_FALSE; @@ -5921,7 +12876,7 @@ static GLboolean _glewInit_GL_ARB_vertex_attrib_binding (GLEW_CONTEXT_ARG_DEF_IN #ifdef GL_ARB_vertex_blend -static GLboolean _glewInit_GL_ARB_vertex_blend (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_vertex_blend () { GLboolean r = GL_FALSE; @@ -5943,7 +12898,7 @@ static GLboolean _glewInit_GL_ARB_vertex_blend (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_vertex_buffer_object -static GLboolean _glewInit_GL_ARB_vertex_buffer_object (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_vertex_buffer_object () { GLboolean r = GL_FALSE; @@ -5966,7 +12921,7 @@ static GLboolean _glewInit_GL_ARB_vertex_buffer_object (GLEW_CONTEXT_ARG_DEF_INI #ifdef GL_ARB_vertex_program -static GLboolean _glewInit_GL_ARB_vertex_program (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_vertex_program () { GLboolean r = GL_FALSE; @@ -6040,7 +12995,7 @@ static GLboolean _glewInit_GL_ARB_vertex_program (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_vertex_shader -static GLboolean _glewInit_GL_ARB_vertex_shader (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_vertex_shader () { GLboolean r = GL_FALSE; @@ -6055,7 +13010,7 @@ static GLboolean _glewInit_GL_ARB_vertex_shader (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_vertex_type_2_10_10_10_rev -static GLboolean _glewInit_GL_ARB_vertex_type_2_10_10_10_rev (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_vertex_type_2_10_10_10_rev () { GLboolean r = GL_FALSE; @@ -6105,7 +13060,7 @@ static GLboolean _glewInit_GL_ARB_vertex_type_2_10_10_10_rev (GLEW_CONTEXT_ARG_D #ifdef GL_ARB_viewport_array -static GLboolean _glewInit_GL_ARB_viewport_array (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_viewport_array () { GLboolean r = GL_FALSE; @@ -6127,7 +13082,7 @@ static GLboolean _glewInit_GL_ARB_viewport_array (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ARB_window_pos -static GLboolean _glewInit_GL_ARB_window_pos (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ARB_window_pos () { GLboolean r = GL_FALSE; @@ -6155,7 +13110,7 @@ static GLboolean _glewInit_GL_ARB_window_pos (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ATI_draw_buffers -static GLboolean _glewInit_GL_ATI_draw_buffers (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ATI_draw_buffers () { GLboolean r = GL_FALSE; @@ -6168,7 +13123,7 @@ static GLboolean _glewInit_GL_ATI_draw_buffers (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ATI_element_array -static GLboolean _glewInit_GL_ATI_element_array (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ATI_element_array () { GLboolean r = GL_FALSE; @@ -6183,7 +13138,7 @@ static GLboolean _glewInit_GL_ATI_element_array (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ATI_envmap_bumpmap -static GLboolean _glewInit_GL_ATI_envmap_bumpmap (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ATI_envmap_bumpmap () { GLboolean r = GL_FALSE; @@ -6199,7 +13154,7 @@ static GLboolean _glewInit_GL_ATI_envmap_bumpmap (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ATI_fragment_shader -static GLboolean _glewInit_GL_ATI_fragment_shader (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ATI_fragment_shader () { GLboolean r = GL_FALSE; @@ -6225,7 +13180,7 @@ static GLboolean _glewInit_GL_ATI_fragment_shader (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ATI_map_object_buffer -static GLboolean _glewInit_GL_ATI_map_object_buffer (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ATI_map_object_buffer () { GLboolean r = GL_FALSE; @@ -6239,7 +13194,7 @@ static GLboolean _glewInit_GL_ATI_map_object_buffer (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ATI_pn_triangles -static GLboolean _glewInit_GL_ATI_pn_triangles (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ATI_pn_triangles () { GLboolean r = GL_FALSE; @@ -6253,7 +13208,7 @@ static GLboolean _glewInit_GL_ATI_pn_triangles (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ATI_separate_stencil -static GLboolean _glewInit_GL_ATI_separate_stencil (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ATI_separate_stencil () { GLboolean r = GL_FALSE; @@ -6267,7 +13222,7 @@ static GLboolean _glewInit_GL_ATI_separate_stencil (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_ATI_vertex_array_object -static GLboolean _glewInit_GL_ATI_vertex_array_object (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ATI_vertex_array_object () { GLboolean r = GL_FALSE; @@ -6291,7 +13246,7 @@ static GLboolean _glewInit_GL_ATI_vertex_array_object (GLEW_CONTEXT_ARG_DEF_INIT #ifdef GL_ATI_vertex_attrib_array_object -static GLboolean _glewInit_GL_ATI_vertex_attrib_array_object (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ATI_vertex_attrib_array_object () { GLboolean r = GL_FALSE; @@ -6306,7 +13261,7 @@ static GLboolean _glewInit_GL_ATI_vertex_attrib_array_object (GLEW_CONTEXT_ARG_D #ifdef GL_ATI_vertex_streams -static GLboolean _glewInit_GL_ATI_vertex_streams (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_ATI_vertex_streams () { GLboolean r = GL_FALSE; @@ -6361,9 +13316,38 @@ static GLboolean _glewInit_GL_ATI_vertex_streams (GLEW_CONTEXT_ARG_DEF_INIT) #endif /* GL_ATI_vertex_streams */ +#ifdef GL_EXT_EGL_image_storage + +static GLboolean _glewInit_GL_EXT_EGL_image_storage () +{ + GLboolean r = GL_FALSE; + + r = ((glEGLImageTargetTexStorageEXT = (PFNGLEGLIMAGETARGETTEXSTORAGEEXTPROC)glewGetProcAddress((const GLubyte*)"glEGLImageTargetTexStorageEXT")) == NULL) || r; + r = ((glEGLImageTargetTextureStorageEXT = (PFNGLEGLIMAGETARGETTEXTURESTORAGEEXTPROC)glewGetProcAddress((const GLubyte*)"glEGLImageTargetTextureStorageEXT")) == NULL) || r; + + return r; +} + +#endif /* GL_EXT_EGL_image_storage */ + +#ifdef GL_EXT_base_instance + +static GLboolean _glewInit_GL_EXT_base_instance () +{ + GLboolean r = GL_FALSE; + + r = ((glDrawArraysInstancedBaseInstanceEXT = (PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEEXTPROC)glewGetProcAddress((const GLubyte*)"glDrawArraysInstancedBaseInstanceEXT")) == NULL) || r; + r = ((glDrawElementsInstancedBaseInstanceEXT = (PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEEXTPROC)glewGetProcAddress((const GLubyte*)"glDrawElementsInstancedBaseInstanceEXT")) == NULL) || r; + r = ((glDrawElementsInstancedBaseVertexBaseInstanceEXT = (PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEEXTPROC)glewGetProcAddress((const GLubyte*)"glDrawElementsInstancedBaseVertexBaseInstanceEXT")) == NULL) || r; + + return r; +} + +#endif /* GL_EXT_base_instance */ + #ifdef GL_EXT_bindable_uniform -static GLboolean _glewInit_GL_EXT_bindable_uniform (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_bindable_uniform () { GLboolean r = GL_FALSE; @@ -6378,7 +13362,7 @@ static GLboolean _glewInit_GL_EXT_bindable_uniform (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_EXT_blend_color -static GLboolean _glewInit_GL_EXT_blend_color (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_blend_color () { GLboolean r = GL_FALSE; @@ -6391,7 +13375,7 @@ static GLboolean _glewInit_GL_EXT_blend_color (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_EXT_blend_equation_separate -static GLboolean _glewInit_GL_EXT_blend_equation_separate (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_blend_equation_separate () { GLboolean r = GL_FALSE; @@ -6402,9 +13386,24 @@ static GLboolean _glewInit_GL_EXT_blend_equation_separate (GLEW_CONTEXT_ARG_DEF_ #endif /* GL_EXT_blend_equation_separate */ +#ifdef GL_EXT_blend_func_extended + +static GLboolean _glewInit_GL_EXT_blend_func_extended () +{ + GLboolean r = GL_FALSE; + + r = ((glBindFragDataLocationIndexedEXT = (PFNGLBINDFRAGDATALOCATIONINDEXEDEXTPROC)glewGetProcAddress((const GLubyte*)"glBindFragDataLocationIndexedEXT")) == NULL) || r; + r = ((glGetFragDataIndexEXT = (PFNGLGETFRAGDATAINDEXEXTPROC)glewGetProcAddress((const GLubyte*)"glGetFragDataIndexEXT")) == NULL) || r; + r = ((glGetProgramResourceLocationIndexEXT = (PFNGLGETPROGRAMRESOURCELOCATIONINDEXEXTPROC)glewGetProcAddress((const GLubyte*)"glGetProgramResourceLocationIndexEXT")) == NULL) || r; + + return r; +} + +#endif /* GL_EXT_blend_func_extended */ + #ifdef GL_EXT_blend_func_separate -static GLboolean _glewInit_GL_EXT_blend_func_separate (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_blend_func_separate () { GLboolean r = GL_FALSE; @@ -6417,7 +13416,7 @@ static GLboolean _glewInit_GL_EXT_blend_func_separate (GLEW_CONTEXT_ARG_DEF_INIT #ifdef GL_EXT_blend_minmax -static GLboolean _glewInit_GL_EXT_blend_minmax (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_blend_minmax () { GLboolean r = GL_FALSE; @@ -6428,9 +13427,50 @@ static GLboolean _glewInit_GL_EXT_blend_minmax (GLEW_CONTEXT_ARG_DEF_INIT) #endif /* GL_EXT_blend_minmax */ +#ifdef GL_EXT_buffer_storage + +static GLboolean _glewInit_GL_EXT_buffer_storage () +{ + GLboolean r = GL_FALSE; + + r = ((glBufferStorageEXT = (PFNGLBUFFERSTORAGEEXTPROC)glewGetProcAddress((const GLubyte*)"glBufferStorageEXT")) == NULL) || r; + r = ((glNamedBufferStorageEXT = (PFNGLNAMEDBUFFERSTORAGEEXTPROC)glewGetProcAddress((const GLubyte*)"glNamedBufferStorageEXT")) == NULL) || r; + + return r; +} + +#endif /* GL_EXT_buffer_storage */ + +#ifdef GL_EXT_clear_texture + +static GLboolean _glewInit_GL_EXT_clear_texture () +{ + GLboolean r = GL_FALSE; + + r = ((glClearTexImageEXT = (PFNGLCLEARTEXIMAGEEXTPROC)glewGetProcAddress((const GLubyte*)"glClearTexImageEXT")) == NULL) || r; + r = ((glClearTexSubImageEXT = (PFNGLCLEARTEXSUBIMAGEEXTPROC)glewGetProcAddress((const GLubyte*)"glClearTexSubImageEXT")) == NULL) || r; + + return r; +} + +#endif /* GL_EXT_clear_texture */ + +#ifdef GL_EXT_clip_control + +static GLboolean _glewInit_GL_EXT_clip_control () +{ + GLboolean r = GL_FALSE; + + r = ((glClipControlEXT = (PFNGLCLIPCONTROLEXTPROC)glewGetProcAddress((const GLubyte*)"glClipControlEXT")) == NULL) || r; + + return r; +} + +#endif /* GL_EXT_clip_control */ + #ifdef GL_EXT_color_subtable -static GLboolean _glewInit_GL_EXT_color_subtable (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_color_subtable () { GLboolean r = GL_FALSE; @@ -6444,7 +13484,7 @@ static GLboolean _glewInit_GL_EXT_color_subtable (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_EXT_compiled_vertex_array -static GLboolean _glewInit_GL_EXT_compiled_vertex_array (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_compiled_vertex_array () { GLboolean r = GL_FALSE; @@ -6458,7 +13498,7 @@ static GLboolean _glewInit_GL_EXT_compiled_vertex_array (GLEW_CONTEXT_ARG_DEF_IN #ifdef GL_EXT_convolution -static GLboolean _glewInit_GL_EXT_convolution (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_convolution () { GLboolean r = GL_FALSE; @@ -6483,7 +13523,7 @@ static GLboolean _glewInit_GL_EXT_convolution (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_EXT_coordinate_frame -static GLboolean _glewInit_GL_EXT_coordinate_frame (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_coordinate_frame () { GLboolean r = GL_FALSE; @@ -6495,9 +13535,22 @@ static GLboolean _glewInit_GL_EXT_coordinate_frame (GLEW_CONTEXT_ARG_DEF_INIT) #endif /* GL_EXT_coordinate_frame */ +#ifdef GL_EXT_copy_image + +static GLboolean _glewInit_GL_EXT_copy_image () +{ + GLboolean r = GL_FALSE; + + r = ((glCopyImageSubDataEXT = (PFNGLCOPYIMAGESUBDATAEXTPROC)glewGetProcAddress((const GLubyte*)"glCopyImageSubDataEXT")) == NULL) || r; + + return r; +} + +#endif /* GL_EXT_copy_image */ + #ifdef GL_EXT_copy_texture -static GLboolean _glewInit_GL_EXT_copy_texture (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_copy_texture () { GLboolean r = GL_FALSE; @@ -6514,7 +13567,7 @@ static GLboolean _glewInit_GL_EXT_copy_texture (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_EXT_cull_vertex -static GLboolean _glewInit_GL_EXT_cull_vertex (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_cull_vertex () { GLboolean r = GL_FALSE; @@ -6528,7 +13581,7 @@ static GLboolean _glewInit_GL_EXT_cull_vertex (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_EXT_debug_label -static GLboolean _glewInit_GL_EXT_debug_label (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_debug_label () { GLboolean r = GL_FALSE; @@ -6542,7 +13595,7 @@ static GLboolean _glewInit_GL_EXT_debug_label (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_EXT_debug_marker -static GLboolean _glewInit_GL_EXT_debug_marker (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_debug_marker () { GLboolean r = GL_FALSE; @@ -6557,7 +13610,7 @@ static GLboolean _glewInit_GL_EXT_debug_marker (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_EXT_depth_bounds_test -static GLboolean _glewInit_GL_EXT_depth_bounds_test (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_depth_bounds_test () { GLboolean r = GL_FALSE; @@ -6570,7 +13623,7 @@ static GLboolean _glewInit_GL_EXT_depth_bounds_test (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_EXT_direct_state_access -static GLboolean _glewInit_GL_EXT_direct_state_access (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_direct_state_access () { GLboolean r = GL_FALSE; @@ -6794,9 +13847,57 @@ static GLboolean _glewInit_GL_EXT_direct_state_access (GLEW_CONTEXT_ARG_DEF_INIT #endif /* GL_EXT_direct_state_access */ +#ifdef GL_EXT_discard_framebuffer + +static GLboolean _glewInit_GL_EXT_discard_framebuffer () +{ + GLboolean r = GL_FALSE; + + r = ((glDiscardFramebufferEXT = (PFNGLDISCARDFRAMEBUFFEREXTPROC)glewGetProcAddress((const GLubyte*)"glDiscardFramebufferEXT")) == NULL) || r; + + return r; +} + +#endif /* GL_EXT_discard_framebuffer */ + +#ifdef GL_EXT_disjoint_timer_query + +static GLboolean _glewInit_GL_EXT_disjoint_timer_query () +{ + GLboolean r = GL_FALSE; + + r = ((glBeginQueryEXT = (PFNGLBEGINQUERYEXTPROC)glewGetProcAddress((const GLubyte*)"glBeginQueryEXT")) == NULL) || r; + r = ((glDeleteQueriesEXT = (PFNGLDELETEQUERIESEXTPROC)glewGetProcAddress((const GLubyte*)"glDeleteQueriesEXT")) == NULL) || r; + r = ((glEndQueryEXT = (PFNGLENDQUERYEXTPROC)glewGetProcAddress((const GLubyte*)"glEndQueryEXT")) == NULL) || r; + r = ((glGenQueriesEXT = (PFNGLGENQUERIESEXTPROC)glewGetProcAddress((const GLubyte*)"glGenQueriesEXT")) == NULL) || r; + r = ((glGetInteger64vEXT = (PFNGLGETINTEGER64VEXTPROC)glewGetProcAddress((const GLubyte*)"glGetInteger64vEXT")) == NULL) || r; + r = ((glGetQueryObjectivEXT = (PFNGLGETQUERYOBJECTIVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetQueryObjectivEXT")) == NULL) || r; + r = ((glGetQueryObjectuivEXT = (PFNGLGETQUERYOBJECTUIVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetQueryObjectuivEXT")) == NULL) || r; + r = ((glGetQueryivEXT = (PFNGLGETQUERYIVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetQueryivEXT")) == NULL) || r; + r = ((glIsQueryEXT = (PFNGLISQUERYEXTPROC)glewGetProcAddress((const GLubyte*)"glIsQueryEXT")) == NULL) || r; + r = ((glQueryCounterEXT = (PFNGLQUERYCOUNTEREXTPROC)glewGetProcAddress((const GLubyte*)"glQueryCounterEXT")) == NULL) || r; + + return r; +} + +#endif /* GL_EXT_disjoint_timer_query */ + +#ifdef GL_EXT_draw_buffers + +static GLboolean _glewInit_GL_EXT_draw_buffers () +{ + GLboolean r = GL_FALSE; + + r = ((glDrawBuffersEXT = (PFNGLDRAWBUFFERSEXTPROC)glewGetProcAddress((const GLubyte*)"glDrawBuffersEXT")) == NULL) || r; + + return r; +} + +#endif /* GL_EXT_draw_buffers */ + #ifdef GL_EXT_draw_buffers2 -static GLboolean _glewInit_GL_EXT_draw_buffers2 (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_draw_buffers2 () { GLboolean r = GL_FALSE; @@ -6812,9 +13913,45 @@ static GLboolean _glewInit_GL_EXT_draw_buffers2 (GLEW_CONTEXT_ARG_DEF_INIT) #endif /* GL_EXT_draw_buffers2 */ +#ifdef GL_EXT_draw_buffers_indexed + +static GLboolean _glewInit_GL_EXT_draw_buffers_indexed () +{ + GLboolean r = GL_FALSE; + + r = ((glBlendEquationSeparateiEXT = (PFNGLBLENDEQUATIONSEPARATEIEXTPROC)glewGetProcAddress((const GLubyte*)"glBlendEquationSeparateiEXT")) == NULL) || r; + r = ((glBlendEquationiEXT = (PFNGLBLENDEQUATIONIEXTPROC)glewGetProcAddress((const GLubyte*)"glBlendEquationiEXT")) == NULL) || r; + r = ((glBlendFuncSeparateiEXT = (PFNGLBLENDFUNCSEPARATEIEXTPROC)glewGetProcAddress((const GLubyte*)"glBlendFuncSeparateiEXT")) == NULL) || r; + r = ((glBlendFunciEXT = (PFNGLBLENDFUNCIEXTPROC)glewGetProcAddress((const GLubyte*)"glBlendFunciEXT")) == NULL) || r; + r = ((glColorMaskiEXT = (PFNGLCOLORMASKIEXTPROC)glewGetProcAddress((const GLubyte*)"glColorMaskiEXT")) == NULL) || r; + r = ((glDisableiEXT = (PFNGLDISABLEIEXTPROC)glewGetProcAddress((const GLubyte*)"glDisableiEXT")) == NULL) || r; + r = ((glEnableiEXT = (PFNGLENABLEIEXTPROC)glewGetProcAddress((const GLubyte*)"glEnableiEXT")) == NULL) || r; + r = ((glIsEnablediEXT = (PFNGLISENABLEDIEXTPROC)glewGetProcAddress((const GLubyte*)"glIsEnablediEXT")) == NULL) || r; + + return r; +} + +#endif /* GL_EXT_draw_buffers_indexed */ + +#ifdef GL_EXT_draw_elements_base_vertex + +static GLboolean _glewInit_GL_EXT_draw_elements_base_vertex () +{ + GLboolean r = GL_FALSE; + + r = ((glDrawElementsBaseVertexEXT = (PFNGLDRAWELEMENTSBASEVERTEXEXTPROC)glewGetProcAddress((const GLubyte*)"glDrawElementsBaseVertexEXT")) == NULL) || r; + r = ((glDrawElementsInstancedBaseVertexEXT = (PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXEXTPROC)glewGetProcAddress((const GLubyte*)"glDrawElementsInstancedBaseVertexEXT")) == NULL) || r; + r = ((glDrawRangeElementsBaseVertexEXT = (PFNGLDRAWRANGEELEMENTSBASEVERTEXEXTPROC)glewGetProcAddress((const GLubyte*)"glDrawRangeElementsBaseVertexEXT")) == NULL) || r; + r = ((glMultiDrawElementsBaseVertexEXT = (PFNGLMULTIDRAWELEMENTSBASEVERTEXEXTPROC)glewGetProcAddress((const GLubyte*)"glMultiDrawElementsBaseVertexEXT")) == NULL) || r; + + return r; +} + +#endif /* GL_EXT_draw_elements_base_vertex */ + #ifdef GL_EXT_draw_instanced -static GLboolean _glewInit_GL_EXT_draw_instanced (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_draw_instanced () { GLboolean r = GL_FALSE; @@ -6828,7 +13965,7 @@ static GLboolean _glewInit_GL_EXT_draw_instanced (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_EXT_draw_range_elements -static GLboolean _glewInit_GL_EXT_draw_range_elements (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_draw_range_elements () { GLboolean r = GL_FALSE; @@ -6839,9 +13976,37 @@ static GLboolean _glewInit_GL_EXT_draw_range_elements (GLEW_CONTEXT_ARG_DEF_INIT #endif /* GL_EXT_draw_range_elements */ +#ifdef GL_EXT_draw_transform_feedback + +static GLboolean _glewInit_GL_EXT_draw_transform_feedback () +{ + GLboolean r = GL_FALSE; + + r = ((glDrawTransformFeedbackEXT = (PFNGLDRAWTRANSFORMFEEDBACKEXTPROC)glewGetProcAddress((const GLubyte*)"glDrawTransformFeedbackEXT")) == NULL) || r; + r = ((glDrawTransformFeedbackInstancedEXT = (PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDEXTPROC)glewGetProcAddress((const GLubyte*)"glDrawTransformFeedbackInstancedEXT")) == NULL) || r; + + return r; +} + +#endif /* GL_EXT_draw_transform_feedback */ + +#ifdef GL_EXT_external_buffer + +static GLboolean _glewInit_GL_EXT_external_buffer () +{ + GLboolean r = GL_FALSE; + + r = ((glBufferStorageExternalEXT = (PFNGLBUFFERSTORAGEEXTERNALEXTPROC)glewGetProcAddress((const GLubyte*)"glBufferStorageExternalEXT")) == NULL) || r; + r = ((glNamedBufferStorageExternalEXT = (PFNGLNAMEDBUFFERSTORAGEEXTERNALEXTPROC)glewGetProcAddress((const GLubyte*)"glNamedBufferStorageExternalEXT")) == NULL) || r; + + return r; +} + +#endif /* GL_EXT_external_buffer */ + #ifdef GL_EXT_fog_coord -static GLboolean _glewInit_GL_EXT_fog_coord (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_fog_coord () { GLboolean r = GL_FALSE; @@ -6858,7 +14023,7 @@ static GLboolean _glewInit_GL_EXT_fog_coord (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_EXT_fragment_lighting -static GLboolean _glewInit_GL_EXT_fragment_lighting (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_fragment_lighting () { GLboolean r = GL_FALSE; @@ -6888,7 +14053,7 @@ static GLboolean _glewInit_GL_EXT_fragment_lighting (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_EXT_framebuffer_blit -static GLboolean _glewInit_GL_EXT_framebuffer_blit (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_framebuffer_blit () { GLboolean r = GL_FALSE; @@ -6901,7 +14066,7 @@ static GLboolean _glewInit_GL_EXT_framebuffer_blit (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_EXT_framebuffer_multisample -static GLboolean _glewInit_GL_EXT_framebuffer_multisample (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_framebuffer_multisample () { GLboolean r = GL_FALSE; @@ -6914,7 +14079,7 @@ static GLboolean _glewInit_GL_EXT_framebuffer_multisample (GLEW_CONTEXT_ARG_DEF_ #ifdef GL_EXT_framebuffer_object -static GLboolean _glewInit_GL_EXT_framebuffer_object (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_framebuffer_object () { GLboolean r = GL_FALSE; @@ -6943,7 +14108,7 @@ static GLboolean _glewInit_GL_EXT_framebuffer_object (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_EXT_geometry_shader4 -static GLboolean _glewInit_GL_EXT_geometry_shader4 (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_geometry_shader4 () { GLboolean r = GL_FALSE; @@ -6958,7 +14123,7 @@ static GLboolean _glewInit_GL_EXT_geometry_shader4 (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_EXT_gpu_program_parameters -static GLboolean _glewInit_GL_EXT_gpu_program_parameters (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_gpu_program_parameters () { GLboolean r = GL_FALSE; @@ -6972,7 +14137,7 @@ static GLboolean _glewInit_GL_EXT_gpu_program_parameters (GLEW_CONTEXT_ARG_DEF_I #ifdef GL_EXT_gpu_shader4 -static GLboolean _glewInit_GL_EXT_gpu_shader4 (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_gpu_shader4 () { GLboolean r = GL_FALSE; @@ -7018,7 +14183,7 @@ static GLboolean _glewInit_GL_EXT_gpu_shader4 (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_EXT_histogram -static GLboolean _glewInit_GL_EXT_histogram (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_histogram () { GLboolean r = GL_FALSE; @@ -7040,7 +14205,7 @@ static GLboolean _glewInit_GL_EXT_histogram (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_EXT_index_func -static GLboolean _glewInit_GL_EXT_index_func (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_index_func () { GLboolean r = GL_FALSE; @@ -7053,7 +14218,7 @@ static GLboolean _glewInit_GL_EXT_index_func (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_EXT_index_material -static GLboolean _glewInit_GL_EXT_index_material (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_index_material () { GLboolean r = GL_FALSE; @@ -7064,9 +14229,22 @@ static GLboolean _glewInit_GL_EXT_index_material (GLEW_CONTEXT_ARG_DEF_INIT) #endif /* GL_EXT_index_material */ +#ifdef GL_EXT_instanced_arrays + +static GLboolean _glewInit_GL_EXT_instanced_arrays () +{ + GLboolean r = GL_FALSE; + + r = ((glVertexAttribDivisorEXT = (PFNGLVERTEXATTRIBDIVISOREXTPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribDivisorEXT")) == NULL) || r; + + return r; +} + +#endif /* GL_EXT_instanced_arrays */ + #ifdef GL_EXT_light_texture -static GLboolean _glewInit_GL_EXT_light_texture (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_light_texture () { GLboolean r = GL_FALSE; @@ -7079,9 +14257,81 @@ static GLboolean _glewInit_GL_EXT_light_texture (GLEW_CONTEXT_ARG_DEF_INIT) #endif /* GL_EXT_light_texture */ +#ifdef GL_EXT_map_buffer_range + +static GLboolean _glewInit_GL_EXT_map_buffer_range () +{ + GLboolean r = GL_FALSE; + + r = ((glFlushMappedBufferRangeEXT = (PFNGLFLUSHMAPPEDBUFFERRANGEEXTPROC)glewGetProcAddress((const GLubyte*)"glFlushMappedBufferRangeEXT")) == NULL) || r; + r = ((glMapBufferRangeEXT = (PFNGLMAPBUFFERRANGEEXTPROC)glewGetProcAddress((const GLubyte*)"glMapBufferRangeEXT")) == NULL) || r; + + return r; +} + +#endif /* GL_EXT_map_buffer_range */ + +#ifdef GL_EXT_memory_object + +static GLboolean _glewInit_GL_EXT_memory_object () +{ + GLboolean r = GL_FALSE; + + r = ((glBufferStorageMemEXT = (PFNGLBUFFERSTORAGEMEMEXTPROC)glewGetProcAddress((const GLubyte*)"glBufferStorageMemEXT")) == NULL) || r; + r = ((glCreateMemoryObjectsEXT = (PFNGLCREATEMEMORYOBJECTSEXTPROC)glewGetProcAddress((const GLubyte*)"glCreateMemoryObjectsEXT")) == NULL) || r; + r = ((glDeleteMemoryObjectsEXT = (PFNGLDELETEMEMORYOBJECTSEXTPROC)glewGetProcAddress((const GLubyte*)"glDeleteMemoryObjectsEXT")) == NULL) || r; + r = ((glGetMemoryObjectParameterivEXT = (PFNGLGETMEMORYOBJECTPARAMETERIVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetMemoryObjectParameterivEXT")) == NULL) || r; + r = ((glGetUnsignedBytei_vEXT = (PFNGLGETUNSIGNEDBYTEI_VEXTPROC)glewGetProcAddress((const GLubyte*)"glGetUnsignedBytei_vEXT")) == NULL) || r; + r = ((glGetUnsignedBytevEXT = (PFNGLGETUNSIGNEDBYTEVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetUnsignedBytevEXT")) == NULL) || r; + r = ((glIsMemoryObjectEXT = (PFNGLISMEMORYOBJECTEXTPROC)glewGetProcAddress((const GLubyte*)"glIsMemoryObjectEXT")) == NULL) || r; + r = ((glMemoryObjectParameterivEXT = (PFNGLMEMORYOBJECTPARAMETERIVEXTPROC)glewGetProcAddress((const GLubyte*)"glMemoryObjectParameterivEXT")) == NULL) || r; + r = ((glNamedBufferStorageMemEXT = (PFNGLNAMEDBUFFERSTORAGEMEMEXTPROC)glewGetProcAddress((const GLubyte*)"glNamedBufferStorageMemEXT")) == NULL) || r; + r = ((glTexStorageMem1DEXT = (PFNGLTEXSTORAGEMEM1DEXTPROC)glewGetProcAddress((const GLubyte*)"glTexStorageMem1DEXT")) == NULL) || r; + r = ((glTexStorageMem2DEXT = (PFNGLTEXSTORAGEMEM2DEXTPROC)glewGetProcAddress((const GLubyte*)"glTexStorageMem2DEXT")) == NULL) || r; + r = ((glTexStorageMem2DMultisampleEXT = (PFNGLTEXSTORAGEMEM2DMULTISAMPLEEXTPROC)glewGetProcAddress((const GLubyte*)"glTexStorageMem2DMultisampleEXT")) == NULL) || r; + r = ((glTexStorageMem3DEXT = (PFNGLTEXSTORAGEMEM3DEXTPROC)glewGetProcAddress((const GLubyte*)"glTexStorageMem3DEXT")) == NULL) || r; + r = ((glTexStorageMem3DMultisampleEXT = (PFNGLTEXSTORAGEMEM3DMULTISAMPLEEXTPROC)glewGetProcAddress((const GLubyte*)"glTexStorageMem3DMultisampleEXT")) == NULL) || r; + r = ((glTextureStorageMem1DEXT = (PFNGLTEXTURESTORAGEMEM1DEXTPROC)glewGetProcAddress((const GLubyte*)"glTextureStorageMem1DEXT")) == NULL) || r; + r = ((glTextureStorageMem2DEXT = (PFNGLTEXTURESTORAGEMEM2DEXTPROC)glewGetProcAddress((const GLubyte*)"glTextureStorageMem2DEXT")) == NULL) || r; + r = ((glTextureStorageMem2DMultisampleEXT = (PFNGLTEXTURESTORAGEMEM2DMULTISAMPLEEXTPROC)glewGetProcAddress((const GLubyte*)"glTextureStorageMem2DMultisampleEXT")) == NULL) || r; + r = ((glTextureStorageMem3DEXT = (PFNGLTEXTURESTORAGEMEM3DEXTPROC)glewGetProcAddress((const GLubyte*)"glTextureStorageMem3DEXT")) == NULL) || r; + r = ((glTextureStorageMem3DMultisampleEXT = (PFNGLTEXTURESTORAGEMEM3DMULTISAMPLEEXTPROC)glewGetProcAddress((const GLubyte*)"glTextureStorageMem3DMultisampleEXT")) == NULL) || r; + + return r; +} + +#endif /* GL_EXT_memory_object */ + +#ifdef GL_EXT_memory_object_fd + +static GLboolean _glewInit_GL_EXT_memory_object_fd () +{ + GLboolean r = GL_FALSE; + + r = ((glImportMemoryFdEXT = (PFNGLIMPORTMEMORYFDEXTPROC)glewGetProcAddress((const GLubyte*)"glImportMemoryFdEXT")) == NULL) || r; + + return r; +} + +#endif /* GL_EXT_memory_object_fd */ + +#ifdef GL_EXT_memory_object_win32 + +static GLboolean _glewInit_GL_EXT_memory_object_win32 () +{ + GLboolean r = GL_FALSE; + + r = ((glImportMemoryWin32HandleEXT = (PFNGLIMPORTMEMORYWIN32HANDLEEXTPROC)glewGetProcAddress((const GLubyte*)"glImportMemoryWin32HandleEXT")) == NULL) || r; + r = ((glImportMemoryWin32NameEXT = (PFNGLIMPORTMEMORYWIN32NAMEEXTPROC)glewGetProcAddress((const GLubyte*)"glImportMemoryWin32NameEXT")) == NULL) || r; + + return r; +} + +#endif /* GL_EXT_memory_object_win32 */ + #ifdef GL_EXT_multi_draw_arrays -static GLboolean _glewInit_GL_EXT_multi_draw_arrays (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_multi_draw_arrays () { GLboolean r = GL_FALSE; @@ -7093,9 +14343,23 @@ static GLboolean _glewInit_GL_EXT_multi_draw_arrays (GLEW_CONTEXT_ARG_DEF_INIT) #endif /* GL_EXT_multi_draw_arrays */ +#ifdef GL_EXT_multi_draw_indirect + +static GLboolean _glewInit_GL_EXT_multi_draw_indirect () +{ + GLboolean r = GL_FALSE; + + r = ((glMultiDrawArraysIndirectEXT = (PFNGLMULTIDRAWARRAYSINDIRECTEXTPROC)glewGetProcAddress((const GLubyte*)"glMultiDrawArraysIndirectEXT")) == NULL) || r; + r = ((glMultiDrawElementsIndirectEXT = (PFNGLMULTIDRAWELEMENTSINDIRECTEXTPROC)glewGetProcAddress((const GLubyte*)"glMultiDrawElementsIndirectEXT")) == NULL) || r; + + return r; +} + +#endif /* GL_EXT_multi_draw_indirect */ + #ifdef GL_EXT_multisample -static GLboolean _glewInit_GL_EXT_multisample (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_multisample () { GLboolean r = GL_FALSE; @@ -7107,9 +14371,37 @@ static GLboolean _glewInit_GL_EXT_multisample (GLEW_CONTEXT_ARG_DEF_INIT) #endif /* GL_EXT_multisample */ +#ifdef GL_EXT_multisampled_render_to_texture + +static GLboolean _glewInit_GL_EXT_multisampled_render_to_texture () +{ + GLboolean r = GL_FALSE; + + r = ((glFramebufferTexture2DMultisampleEXT = (PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEEXTPROC)glewGetProcAddress((const GLubyte*)"glFramebufferTexture2DMultisampleEXT")) == NULL) || r; + + return r; +} + +#endif /* GL_EXT_multisampled_render_to_texture */ + +#ifdef GL_EXT_multiview_draw_buffers + +static GLboolean _glewInit_GL_EXT_multiview_draw_buffers () +{ + GLboolean r = GL_FALSE; + + r = ((glDrawBuffersIndexedEXT = (PFNGLDRAWBUFFERSINDEXEDEXTPROC)glewGetProcAddress((const GLubyte*)"glDrawBuffersIndexedEXT")) == NULL) || r; + r = ((glGetIntegeri_vEXT = (PFNGLGETINTEGERI_VEXTPROC)glewGetProcAddress((const GLubyte*)"glGetIntegeri_vEXT")) == NULL) || r; + r = ((glReadBufferIndexedEXT = (PFNGLREADBUFFERINDEXEDEXTPROC)glewGetProcAddress((const GLubyte*)"glReadBufferIndexedEXT")) == NULL) || r; + + return r; +} + +#endif /* GL_EXT_multiview_draw_buffers */ + #ifdef GL_EXT_paletted_texture -static GLboolean _glewInit_GL_EXT_paletted_texture (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_paletted_texture () { GLboolean r = GL_FALSE; @@ -7125,7 +14417,7 @@ static GLboolean _glewInit_GL_EXT_paletted_texture (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_EXT_pixel_transform -static GLboolean _glewInit_GL_EXT_pixel_transform (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_pixel_transform () { GLboolean r = GL_FALSE; @@ -7143,7 +14435,7 @@ static GLboolean _glewInit_GL_EXT_pixel_transform (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_EXT_point_parameters -static GLboolean _glewInit_GL_EXT_point_parameters (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_point_parameters () { GLboolean r = GL_FALSE; @@ -7157,7 +14449,7 @@ static GLboolean _glewInit_GL_EXT_point_parameters (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_EXT_polygon_offset -static GLboolean _glewInit_GL_EXT_polygon_offset (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_polygon_offset () { GLboolean r = GL_FALSE; @@ -7170,7 +14462,7 @@ static GLboolean _glewInit_GL_EXT_polygon_offset (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_EXT_polygon_offset_clamp -static GLboolean _glewInit_GL_EXT_polygon_offset_clamp (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_polygon_offset_clamp () { GLboolean r = GL_FALSE; @@ -7181,9 +14473,22 @@ static GLboolean _glewInit_GL_EXT_polygon_offset_clamp (GLEW_CONTEXT_ARG_DEF_INI #endif /* GL_EXT_polygon_offset_clamp */ +#ifdef GL_EXT_primitive_bounding_box + +static GLboolean _glewInit_GL_EXT_primitive_bounding_box () +{ + GLboolean r = GL_FALSE; + + r = ((glPrimitiveBoundingBoxEXT = (PFNGLPRIMITIVEBOUNDINGBOXEXTPROC)glewGetProcAddress((const GLubyte*)"glPrimitiveBoundingBoxEXT")) == NULL) || r; + + return r; +} + +#endif /* GL_EXT_primitive_bounding_box */ + #ifdef GL_EXT_provoking_vertex -static GLboolean _glewInit_GL_EXT_provoking_vertex (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_provoking_vertex () { GLboolean r = GL_FALSE; @@ -7196,7 +14501,7 @@ static GLboolean _glewInit_GL_EXT_provoking_vertex (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_EXT_raster_multisample -static GLboolean _glewInit_GL_EXT_raster_multisample (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_raster_multisample () { GLboolean r = GL_FALSE; @@ -7210,9 +14515,24 @@ static GLboolean _glewInit_GL_EXT_raster_multisample (GLEW_CONTEXT_ARG_DEF_INIT) #endif /* GL_EXT_raster_multisample */ +#ifdef GL_EXT_robustness + +static GLboolean _glewInit_GL_EXT_robustness () +{ + GLboolean r = GL_FALSE; + + r = ((glGetnUniformfvEXT = (PFNGLGETNUNIFORMFVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetnUniformfvEXT")) == NULL) || r; + r = ((glGetnUniformivEXT = (PFNGLGETNUNIFORMIVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetnUniformivEXT")) == NULL) || r; + r = ((glReadnPixelsEXT = (PFNGLREADNPIXELSEXTPROC)glewGetProcAddress((const GLubyte*)"glReadnPixelsEXT")) == NULL) || r; + + return r; +} + +#endif /* GL_EXT_robustness */ + #ifdef GL_EXT_scene_marker -static GLboolean _glewInit_GL_EXT_scene_marker (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_scene_marker () { GLboolean r = GL_FALSE; @@ -7226,7 +14546,7 @@ static GLboolean _glewInit_GL_EXT_scene_marker (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_EXT_secondary_color -static GLboolean _glewInit_GL_EXT_secondary_color (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_secondary_color () { GLboolean r = GL_FALSE; @@ -7253,9 +14573,55 @@ static GLboolean _glewInit_GL_EXT_secondary_color (GLEW_CONTEXT_ARG_DEF_INIT) #endif /* GL_EXT_secondary_color */ +#ifdef GL_EXT_semaphore + +static GLboolean _glewInit_GL_EXT_semaphore () +{ + GLboolean r = GL_FALSE; + + r = ((glDeleteSemaphoresEXT = (PFNGLDELETESEMAPHORESEXTPROC)glewGetProcAddress((const GLubyte*)"glDeleteSemaphoresEXT")) == NULL) || r; + r = ((glGenSemaphoresEXT = (PFNGLGENSEMAPHORESEXTPROC)glewGetProcAddress((const GLubyte*)"glGenSemaphoresEXT")) == NULL) || r; + r = ((glGetSemaphoreParameterui64vEXT = (PFNGLGETSEMAPHOREPARAMETERUI64VEXTPROC)glewGetProcAddress((const GLubyte*)"glGetSemaphoreParameterui64vEXT")) == NULL) || r; + r = ((glIsSemaphoreEXT = (PFNGLISSEMAPHOREEXTPROC)glewGetProcAddress((const GLubyte*)"glIsSemaphoreEXT")) == NULL) || r; + r = ((glSemaphoreParameterui64vEXT = (PFNGLSEMAPHOREPARAMETERUI64VEXTPROC)glewGetProcAddress((const GLubyte*)"glSemaphoreParameterui64vEXT")) == NULL) || r; + r = ((glSignalSemaphoreEXT = (PFNGLSIGNALSEMAPHOREEXTPROC)glewGetProcAddress((const GLubyte*)"glSignalSemaphoreEXT")) == NULL) || r; + r = ((glWaitSemaphoreEXT = (PFNGLWAITSEMAPHOREEXTPROC)glewGetProcAddress((const GLubyte*)"glWaitSemaphoreEXT")) == NULL) || r; + + return r; +} + +#endif /* GL_EXT_semaphore */ + +#ifdef GL_EXT_semaphore_fd + +static GLboolean _glewInit_GL_EXT_semaphore_fd () +{ + GLboolean r = GL_FALSE; + + r = ((glImportSemaphoreFdEXT = (PFNGLIMPORTSEMAPHOREFDEXTPROC)glewGetProcAddress((const GLubyte*)"glImportSemaphoreFdEXT")) == NULL) || r; + + return r; +} + +#endif /* GL_EXT_semaphore_fd */ + +#ifdef GL_EXT_semaphore_win32 + +static GLboolean _glewInit_GL_EXT_semaphore_win32 () +{ + GLboolean r = GL_FALSE; + + r = ((glImportSemaphoreWin32HandleEXT = (PFNGLIMPORTSEMAPHOREWIN32HANDLEEXTPROC)glewGetProcAddress((const GLubyte*)"glImportSemaphoreWin32HandleEXT")) == NULL) || r; + r = ((glImportSemaphoreWin32NameEXT = (PFNGLIMPORTSEMAPHOREWIN32NAMEEXTPROC)glewGetProcAddress((const GLubyte*)"glImportSemaphoreWin32NameEXT")) == NULL) || r; + + return r; +} + +#endif /* GL_EXT_semaphore_win32 */ + #ifdef GL_EXT_separate_shader_objects -static GLboolean _glewInit_GL_EXT_separate_shader_objects (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_separate_shader_objects () { GLboolean r = GL_FALSE; @@ -7268,9 +14634,22 @@ static GLboolean _glewInit_GL_EXT_separate_shader_objects (GLEW_CONTEXT_ARG_DEF_ #endif /* GL_EXT_separate_shader_objects */ +#ifdef GL_EXT_shader_framebuffer_fetch + +static GLboolean _glewInit_GL_EXT_shader_framebuffer_fetch () +{ + GLboolean r = GL_FALSE; + + r = ((glFramebufferFetchBarrierEXT = (PFNGLFRAMEBUFFERFETCHBARRIEREXTPROC)glewGetProcAddress((const GLubyte*)"glFramebufferFetchBarrierEXT")) == NULL) || r; + + return r; +} + +#endif /* GL_EXT_shader_framebuffer_fetch */ + #ifdef GL_EXT_shader_image_load_store -static GLboolean _glewInit_GL_EXT_shader_image_load_store (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_shader_image_load_store () { GLboolean r = GL_FALSE; @@ -7282,9 +14661,38 @@ static GLboolean _glewInit_GL_EXT_shader_image_load_store (GLEW_CONTEXT_ARG_DEF_ #endif /* GL_EXT_shader_image_load_store */ +#ifdef GL_EXT_shader_pixel_local_storage2 + +static GLboolean _glewInit_GL_EXT_shader_pixel_local_storage2 () +{ + GLboolean r = GL_FALSE; + + r = ((glClearPixelLocalStorageuiEXT = (PFNGLCLEARPIXELLOCALSTORAGEUIEXTPROC)glewGetProcAddress((const GLubyte*)"glClearPixelLocalStorageuiEXT")) == NULL) || r; + r = ((glFramebufferPixelLocalStorageSizeEXT = (PFNGLFRAMEBUFFERPIXELLOCALSTORAGESIZEEXTPROC)glewGetProcAddress((const GLubyte*)"glFramebufferPixelLocalStorageSizeEXT")) == NULL) || r; + r = ((glGetFramebufferPixelLocalStorageSizeEXT = (PFNGLGETFRAMEBUFFERPIXELLOCALSTORAGESIZEEXTPROC)glewGetProcAddress((const GLubyte*)"glGetFramebufferPixelLocalStorageSizeEXT")) == NULL) || r; + + return r; +} + +#endif /* GL_EXT_shader_pixel_local_storage2 */ + +#ifdef GL_EXT_sparse_texture + +static GLboolean _glewInit_GL_EXT_sparse_texture () +{ + GLboolean r = GL_FALSE; + + r = ((glTexPageCommitmentEXT = (PFNGLTEXPAGECOMMITMENTEXTPROC)glewGetProcAddress((const GLubyte*)"glTexPageCommitmentEXT")) == NULL) || r; + r = ((glTexturePageCommitmentEXT = (PFNGLTEXTUREPAGECOMMITMENTEXTPROC)glewGetProcAddress((const GLubyte*)"glTexturePageCommitmentEXT")) == NULL) || r; + + return r; +} + +#endif /* GL_EXT_sparse_texture */ + #ifdef GL_EXT_stencil_two_side -static GLboolean _glewInit_GL_EXT_stencil_two_side (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_stencil_two_side () { GLboolean r = GL_FALSE; @@ -7297,7 +14705,7 @@ static GLboolean _glewInit_GL_EXT_stencil_two_side (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_EXT_subtexture -static GLboolean _glewInit_GL_EXT_subtexture (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_subtexture () { GLboolean r = GL_FALSE; @@ -7310,9 +14718,22 @@ static GLboolean _glewInit_GL_EXT_subtexture (GLEW_CONTEXT_ARG_DEF_INIT) #endif /* GL_EXT_subtexture */ +#ifdef GL_EXT_tessellation_point_size + +static GLboolean _glewInit_GL_EXT_tessellation_point_size () +{ + GLboolean r = GL_FALSE; + + r = ((glPatchParameteriEXT = (PFNGLPATCHPARAMETERIEXTPROC)glewGetProcAddress((const GLubyte*)"glPatchParameteriEXT")) == NULL) || r; + + return r; +} + +#endif /* GL_EXT_tessellation_point_size */ + #ifdef GL_EXT_texture3D -static GLboolean _glewInit_GL_EXT_texture3D (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_texture3D () { GLboolean r = GL_FALSE; @@ -7325,7 +14746,7 @@ static GLboolean _glewInit_GL_EXT_texture3D (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_EXT_texture_array -static GLboolean _glewInit_GL_EXT_texture_array (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_texture_array () { GLboolean r = GL_FALSE; @@ -7336,9 +14757,25 @@ static GLboolean _glewInit_GL_EXT_texture_array (GLEW_CONTEXT_ARG_DEF_INIT) #endif /* GL_EXT_texture_array */ +#ifdef GL_EXT_texture_border_clamp + +static GLboolean _glewInit_GL_EXT_texture_border_clamp () +{ + GLboolean r = GL_FALSE; + + r = ((glGetSamplerParameterIivEXT = (PFNGLGETSAMPLERPARAMETERIIVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetSamplerParameterIivEXT")) == NULL) || r; + r = ((glGetSamplerParameterIuivEXT = (PFNGLGETSAMPLERPARAMETERIUIVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetSamplerParameterIuivEXT")) == NULL) || r; + r = ((glSamplerParameterIivEXT = (PFNGLSAMPLERPARAMETERIIVEXTPROC)glewGetProcAddress((const GLubyte*)"glSamplerParameterIivEXT")) == NULL) || r; + r = ((glSamplerParameterIuivEXT = (PFNGLSAMPLERPARAMETERIUIVEXTPROC)glewGetProcAddress((const GLubyte*)"glSamplerParameterIuivEXT")) == NULL) || r; + + return r; +} + +#endif /* GL_EXT_texture_border_clamp */ + #ifdef GL_EXT_texture_buffer_object -static GLboolean _glewInit_GL_EXT_texture_buffer_object (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_texture_buffer_object () { GLboolean r = GL_FALSE; @@ -7351,7 +14788,7 @@ static GLboolean _glewInit_GL_EXT_texture_buffer_object (GLEW_CONTEXT_ARG_DEF_IN #ifdef GL_EXT_texture_integer -static GLboolean _glewInit_GL_EXT_texture_integer (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_texture_integer () { GLboolean r = GL_FALSE; @@ -7369,7 +14806,7 @@ static GLboolean _glewInit_GL_EXT_texture_integer (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_EXT_texture_object -static GLboolean _glewInit_GL_EXT_texture_object (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_texture_object () { GLboolean r = GL_FALSE; @@ -7387,7 +14824,7 @@ static GLboolean _glewInit_GL_EXT_texture_object (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_EXT_texture_perturb_normal -static GLboolean _glewInit_GL_EXT_texture_perturb_normal (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_texture_perturb_normal () { GLboolean r = GL_FALSE; @@ -7398,9 +14835,40 @@ static GLboolean _glewInit_GL_EXT_texture_perturb_normal (GLEW_CONTEXT_ARG_DEF_I #endif /* GL_EXT_texture_perturb_normal */ +#ifdef GL_EXT_texture_storage + +static GLboolean _glewInit_GL_EXT_texture_storage () +{ + GLboolean r = GL_FALSE; + + r = ((glTexStorage1DEXT = (PFNGLTEXSTORAGE1DEXTPROC)glewGetProcAddress((const GLubyte*)"glTexStorage1DEXT")) == NULL) || r; + r = ((glTexStorage2DEXT = (PFNGLTEXSTORAGE2DEXTPROC)glewGetProcAddress((const GLubyte*)"glTexStorage2DEXT")) == NULL) || r; + r = ((glTexStorage3DEXT = (PFNGLTEXSTORAGE3DEXTPROC)glewGetProcAddress((const GLubyte*)"glTexStorage3DEXT")) == NULL) || r; + r = ((glTextureStorage1DEXT = (PFNGLTEXTURESTORAGE1DEXTPROC)glewGetProcAddress((const GLubyte*)"glTextureStorage1DEXT")) == NULL) || r; + r = ((glTextureStorage2DEXT = (PFNGLTEXTURESTORAGE2DEXTPROC)glewGetProcAddress((const GLubyte*)"glTextureStorage2DEXT")) == NULL) || r; + r = ((glTextureStorage3DEXT = (PFNGLTEXTURESTORAGE3DEXTPROC)glewGetProcAddress((const GLubyte*)"glTextureStorage3DEXT")) == NULL) || r; + + return r; +} + +#endif /* GL_EXT_texture_storage */ + +#ifdef GL_EXT_texture_view + +static GLboolean _glewInit_GL_EXT_texture_view () +{ + GLboolean r = GL_FALSE; + + r = ((glTextureViewEXT = (PFNGLTEXTUREVIEWEXTPROC)glewGetProcAddress((const GLubyte*)"glTextureViewEXT")) == NULL) || r; + + return r; +} + +#endif /* GL_EXT_texture_view */ + #ifdef GL_EXT_timer_query -static GLboolean _glewInit_GL_EXT_timer_query (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_timer_query () { GLboolean r = GL_FALSE; @@ -7414,7 +14882,7 @@ static GLboolean _glewInit_GL_EXT_timer_query (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_EXT_transform_feedback -static GLboolean _glewInit_GL_EXT_transform_feedback (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_transform_feedback () { GLboolean r = GL_FALSE; @@ -7433,7 +14901,7 @@ static GLboolean _glewInit_GL_EXT_transform_feedback (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_EXT_vertex_array -static GLboolean _glewInit_GL_EXT_vertex_array (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_vertex_array () { GLboolean r = GL_FALSE; @@ -7451,9 +14919,24 @@ static GLboolean _glewInit_GL_EXT_vertex_array (GLEW_CONTEXT_ARG_DEF_INIT) #endif /* GL_EXT_vertex_array */ +#ifdef GL_EXT_vertex_array_setXXX + +static GLboolean _glewInit_GL_EXT_vertex_array_setXXX () +{ + GLboolean r = GL_FALSE; + + r = ((glBindArraySetEXT = (PFNGLBINDARRAYSETEXTPROC)glewGetProcAddress((const GLubyte*)"glBindArraySetEXT")) == NULL) || r; + r = ((glCreateArraySetExt = (PFNGLCREATEARRAYSETEXTPROC)glewGetProcAddress((const GLubyte*)"glCreateArraySetExt")) == NULL) || r; + r = ((glDeleteArraySetsEXT = (PFNGLDELETEARRAYSETSEXTPROC)glewGetProcAddress((const GLubyte*)"glDeleteArraySetsEXT")) == NULL) || r; + + return r; +} + +#endif /* GL_EXT_vertex_array_setXXX */ + #ifdef GL_EXT_vertex_attrib_64bit -static GLboolean _glewInit_GL_EXT_vertex_attrib_64bit (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_vertex_attrib_64bit () { GLboolean r = GL_FALSE; @@ -7476,7 +14959,7 @@ static GLboolean _glewInit_GL_EXT_vertex_attrib_64bit (GLEW_CONTEXT_ARG_DEF_INIT #ifdef GL_EXT_vertex_shader -static GLboolean _glewInit_GL_EXT_vertex_shader (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_vertex_shader () { GLboolean r = GL_FALSE; @@ -7530,7 +15013,7 @@ static GLboolean _glewInit_GL_EXT_vertex_shader (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_EXT_vertex_weighting -static GLboolean _glewInit_GL_EXT_vertex_weighting (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_vertex_weighting () { GLboolean r = GL_FALSE; @@ -7543,9 +15026,36 @@ static GLboolean _glewInit_GL_EXT_vertex_weighting (GLEW_CONTEXT_ARG_DEF_INIT) #endif /* GL_EXT_vertex_weighting */ +#ifdef GL_EXT_win32_keyed_mutex + +static GLboolean _glewInit_GL_EXT_win32_keyed_mutex () +{ + GLboolean r = GL_FALSE; + + r = ((glAcquireKeyedMutexWin32EXT = (PFNGLACQUIREKEYEDMUTEXWIN32EXTPROC)glewGetProcAddress((const GLubyte*)"glAcquireKeyedMutexWin32EXT")) == NULL) || r; + r = ((glReleaseKeyedMutexWin32EXT = (PFNGLRELEASEKEYEDMUTEXWIN32EXTPROC)glewGetProcAddress((const GLubyte*)"glReleaseKeyedMutexWin32EXT")) == NULL) || r; + + return r; +} + +#endif /* GL_EXT_win32_keyed_mutex */ + +#ifdef GL_EXT_window_rectangles + +static GLboolean _glewInit_GL_EXT_window_rectangles () +{ + GLboolean r = GL_FALSE; + + r = ((glWindowRectanglesEXT = (PFNGLWINDOWRECTANGLESEXTPROC)glewGetProcAddress((const GLubyte*)"glWindowRectanglesEXT")) == NULL) || r; + + return r; +} + +#endif /* GL_EXT_window_rectangles */ + #ifdef GL_EXT_x11_sync_object -static GLboolean _glewInit_GL_EXT_x11_sync_object (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_EXT_x11_sync_object () { GLboolean r = GL_FALSE; @@ -7558,7 +15068,7 @@ static GLboolean _glewInit_GL_EXT_x11_sync_object (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_GREMEDY_frame_terminator -static GLboolean _glewInit_GL_GREMEDY_frame_terminator (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_GREMEDY_frame_terminator () { GLboolean r = GL_FALSE; @@ -7571,7 +15081,7 @@ static GLboolean _glewInit_GL_GREMEDY_frame_terminator (GLEW_CONTEXT_ARG_DEF_INI #ifdef GL_GREMEDY_string_marker -static GLboolean _glewInit_GL_GREMEDY_string_marker (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_GREMEDY_string_marker () { GLboolean r = GL_FALSE; @@ -7584,7 +15094,7 @@ static GLboolean _glewInit_GL_GREMEDY_string_marker (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_HP_image_transform -static GLboolean _glewInit_GL_HP_image_transform (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_HP_image_transform () { GLboolean r = GL_FALSE; @@ -7602,7 +15112,7 @@ static GLboolean _glewInit_GL_HP_image_transform (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_IBM_multimode_draw_arrays -static GLboolean _glewInit_GL_IBM_multimode_draw_arrays (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_IBM_multimode_draw_arrays () { GLboolean r = GL_FALSE; @@ -7616,7 +15126,7 @@ static GLboolean _glewInit_GL_IBM_multimode_draw_arrays (GLEW_CONTEXT_ARG_DEF_IN #ifdef GL_IBM_vertex_array_lists -static GLboolean _glewInit_GL_IBM_vertex_array_lists (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_IBM_vertex_array_lists () { GLboolean r = GL_FALSE; @@ -7634,9 +15144,55 @@ static GLboolean _glewInit_GL_IBM_vertex_array_lists (GLEW_CONTEXT_ARG_DEF_INIT) #endif /* GL_IBM_vertex_array_lists */ +#ifdef GL_IMG_bindless_texture + +static GLboolean _glewInit_GL_IMG_bindless_texture () +{ + GLboolean r = GL_FALSE; + + r = ((glGetTextureHandleIMG = (PFNGLGETTEXTUREHANDLEIMGPROC)glewGetProcAddress((const GLubyte*)"glGetTextureHandleIMG")) == NULL) || r; + r = ((glGetTextureSamplerHandleIMG = (PFNGLGETTEXTURESAMPLERHANDLEIMGPROC)glewGetProcAddress((const GLubyte*)"glGetTextureSamplerHandleIMG")) == NULL) || r; + r = ((glProgramUniformHandleui64IMG = (PFNGLPROGRAMUNIFORMHANDLEUI64IMGPROC)glewGetProcAddress((const GLubyte*)"glProgramUniformHandleui64IMG")) == NULL) || r; + r = ((glProgramUniformHandleui64vIMG = (PFNGLPROGRAMUNIFORMHANDLEUI64VIMGPROC)glewGetProcAddress((const GLubyte*)"glProgramUniformHandleui64vIMG")) == NULL) || r; + r = ((glUniformHandleui64IMG = (PFNGLUNIFORMHANDLEUI64IMGPROC)glewGetProcAddress((const GLubyte*)"glUniformHandleui64IMG")) == NULL) || r; + r = ((glUniformHandleui64vIMG = (PFNGLUNIFORMHANDLEUI64VIMGPROC)glewGetProcAddress((const GLubyte*)"glUniformHandleui64vIMG")) == NULL) || r; + + return r; +} + +#endif /* GL_IMG_bindless_texture */ + +#ifdef GL_IMG_framebuffer_downsample + +static GLboolean _glewInit_GL_IMG_framebuffer_downsample () +{ + GLboolean r = GL_FALSE; + + r = ((glFramebufferTexture2DDownsampleIMG = (PFNGLFRAMEBUFFERTEXTURE2DDOWNSAMPLEIMGPROC)glewGetProcAddress((const GLubyte*)"glFramebufferTexture2DDownsampleIMG")) == NULL) || r; + r = ((glFramebufferTextureLayerDownsampleIMG = (PFNGLFRAMEBUFFERTEXTURELAYERDOWNSAMPLEIMGPROC)glewGetProcAddress((const GLubyte*)"glFramebufferTextureLayerDownsampleIMG")) == NULL) || r; + + return r; +} + +#endif /* GL_IMG_framebuffer_downsample */ + +#ifdef GL_IMG_multisampled_render_to_texture + +static GLboolean _glewInit_GL_IMG_multisampled_render_to_texture () +{ + GLboolean r = GL_FALSE; + + r = ((glFramebufferTexture2DMultisampleIMG = (PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEIMGPROC)glewGetProcAddress((const GLubyte*)"glFramebufferTexture2DMultisampleIMG")) == NULL) || r; + r = ((glRenderbufferStorageMultisampleIMG = (PFNGLRENDERBUFFERSTORAGEMULTISAMPLEIMGPROC)glewGetProcAddress((const GLubyte*)"glRenderbufferStorageMultisampleIMG")) == NULL) || r; + + return r; +} + +#endif /* GL_IMG_multisampled_render_to_texture */ + #ifdef GL_INTEL_map_texture -static GLboolean _glewInit_GL_INTEL_map_texture (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_INTEL_map_texture () { GLboolean r = GL_FALSE; @@ -7651,7 +15207,7 @@ static GLboolean _glewInit_GL_INTEL_map_texture (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_INTEL_parallel_arrays -static GLboolean _glewInit_GL_INTEL_parallel_arrays (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_INTEL_parallel_arrays () { GLboolean r = GL_FALSE; @@ -7667,7 +15223,7 @@ static GLboolean _glewInit_GL_INTEL_parallel_arrays (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_INTEL_performance_query -static GLboolean _glewInit_GL_INTEL_performance_query (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_INTEL_performance_query () { GLboolean r = GL_FALSE; @@ -7689,7 +15245,7 @@ static GLboolean _glewInit_GL_INTEL_performance_query (GLEW_CONTEXT_ARG_DEF_INIT #ifdef GL_INTEL_texture_scissor -static GLboolean _glewInit_GL_INTEL_texture_scissor (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_INTEL_texture_scissor () { GLboolean r = GL_FALSE; @@ -7703,7 +15259,7 @@ static GLboolean _glewInit_GL_INTEL_texture_scissor (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_KHR_blend_equation_advanced -static GLboolean _glewInit_GL_KHR_blend_equation_advanced (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_KHR_blend_equation_advanced () { GLboolean r = GL_FALSE; @@ -7716,7 +15272,7 @@ static GLboolean _glewInit_GL_KHR_blend_equation_advanced (GLEW_CONTEXT_ARG_DEF_ #ifdef GL_KHR_debug -static GLboolean _glewInit_GL_KHR_debug (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_KHR_debug () { GLboolean r = GL_FALSE; @@ -7736,9 +15292,22 @@ static GLboolean _glewInit_GL_KHR_debug (GLEW_CONTEXT_ARG_DEF_INIT) #endif /* GL_KHR_debug */ +#ifdef GL_KHR_parallel_shader_compile + +static GLboolean _glewInit_GL_KHR_parallel_shader_compile () +{ + GLboolean r = GL_FALSE; + + r = ((glMaxShaderCompilerThreadsKHR = (PFNGLMAXSHADERCOMPILERTHREADSKHRPROC)glewGetProcAddress((const GLubyte*)"glMaxShaderCompilerThreadsKHR")) == NULL) || r; + + return r; +} + +#endif /* GL_KHR_parallel_shader_compile */ + #ifdef GL_KHR_robustness -static GLboolean _glewInit_GL_KHR_robustness (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_KHR_robustness () { GLboolean r = GL_FALSE; @@ -7754,7 +15323,7 @@ static GLboolean _glewInit_GL_KHR_robustness (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_KTX_buffer_region -static GLboolean _glewInit_GL_KTX_buffer_region (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_KTX_buffer_region () { GLboolean r = GL_FALSE; @@ -7769,9 +15338,23 @@ static GLboolean _glewInit_GL_KTX_buffer_region (GLEW_CONTEXT_ARG_DEF_INIT) #endif /* GL_KTX_buffer_region */ +#ifdef GL_MESA_framebuffer_flip_y + +static GLboolean _glewInit_GL_MESA_framebuffer_flip_y () +{ + GLboolean r = GL_FALSE; + + r = ((glFramebufferParameteriMESA = (PFNGLFRAMEBUFFERPARAMETERIMESAPROC)glewGetProcAddress((const GLubyte*)"glFramebufferParameteriMESA")) == NULL) || r; + r = ((glGetFramebufferParameterivMESA = (PFNGLGETFRAMEBUFFERPARAMETERIVMESAPROC)glewGetProcAddress((const GLubyte*)"glGetFramebufferParameterivMESA")) == NULL) || r; + + return r; +} + +#endif /* GL_MESA_framebuffer_flip_y */ + #ifdef GL_MESA_resize_buffers -static GLboolean _glewInit_GL_MESA_resize_buffers (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_MESA_resize_buffers () { GLboolean r = GL_FALSE; @@ -7784,7 +15367,7 @@ static GLboolean _glewInit_GL_MESA_resize_buffers (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_MESA_window_pos -static GLboolean _glewInit_GL_MESA_window_pos (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_MESA_window_pos () { GLboolean r = GL_FALSE; @@ -7820,7 +15403,7 @@ static GLboolean _glewInit_GL_MESA_window_pos (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_NVX_conditional_render -static GLboolean _glewInit_GL_NVX_conditional_render (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_NVX_conditional_render () { GLboolean r = GL_FALSE; @@ -7832,9 +15415,84 @@ static GLboolean _glewInit_GL_NVX_conditional_render (GLEW_CONTEXT_ARG_DEF_INIT) #endif /* GL_NVX_conditional_render */ +#ifdef GL_NVX_gpu_multicast2 + +static GLboolean _glewInit_GL_NVX_gpu_multicast2 () +{ + GLboolean r = GL_FALSE; + + r = ((glAsyncCopyBufferSubDataNVX = (PFNGLASYNCCOPYBUFFERSUBDATANVXPROC)glewGetProcAddress((const GLubyte*)"glAsyncCopyBufferSubDataNVX")) == NULL) || r; + r = ((glAsyncCopyImageSubDataNVX = (PFNGLASYNCCOPYIMAGESUBDATANVXPROC)glewGetProcAddress((const GLubyte*)"glAsyncCopyImageSubDataNVX")) == NULL) || r; + r = ((glMulticastScissorArrayvNVX = (PFNGLMULTICASTSCISSORARRAYVNVXPROC)glewGetProcAddress((const GLubyte*)"glMulticastScissorArrayvNVX")) == NULL) || r; + r = ((glMulticastViewportArrayvNVX = (PFNGLMULTICASTVIEWPORTARRAYVNVXPROC)glewGetProcAddress((const GLubyte*)"glMulticastViewportArrayvNVX")) == NULL) || r; + r = ((glMulticastViewportPositionWScaleNVX = (PFNGLMULTICASTVIEWPORTPOSITIONWSCALENVXPROC)glewGetProcAddress((const GLubyte*)"glMulticastViewportPositionWScaleNVX")) == NULL) || r; + r = ((glUploadGpuMaskNVX = (PFNGLUPLOADGPUMASKNVXPROC)glewGetProcAddress((const GLubyte*)"glUploadGpuMaskNVX")) == NULL) || r; + + return r; +} + +#endif /* GL_NVX_gpu_multicast2 */ + +#ifdef GL_NVX_linked_gpu_multicast + +static GLboolean _glewInit_GL_NVX_linked_gpu_multicast () +{ + GLboolean r = GL_FALSE; + + r = ((glLGPUCopyImageSubDataNVX = (PFNGLLGPUCOPYIMAGESUBDATANVXPROC)glewGetProcAddress((const GLubyte*)"glLGPUCopyImageSubDataNVX")) == NULL) || r; + r = ((glLGPUInterlockNVX = (PFNGLLGPUINTERLOCKNVXPROC)glewGetProcAddress((const GLubyte*)"glLGPUInterlockNVX")) == NULL) || r; + r = ((glLGPUNamedBufferSubDataNVX = (PFNGLLGPUNAMEDBUFFERSUBDATANVXPROC)glewGetProcAddress((const GLubyte*)"glLGPUNamedBufferSubDataNVX")) == NULL) || r; + + return r; +} + +#endif /* GL_NVX_linked_gpu_multicast */ + +#ifdef GL_NVX_progress_fence + +static GLboolean _glewInit_GL_NVX_progress_fence () +{ + GLboolean r = GL_FALSE; + + r = ((glClientWaitSemaphoreui64NVX = (PFNGLCLIENTWAITSEMAPHOREUI64NVXPROC)glewGetProcAddress((const GLubyte*)"glClientWaitSemaphoreui64NVX")) == NULL) || r; + r = ((glSignalSemaphoreui64NVX = (PFNGLSIGNALSEMAPHOREUI64NVXPROC)glewGetProcAddress((const GLubyte*)"glSignalSemaphoreui64NVX")) == NULL) || r; + r = ((glWaitSemaphoreui64NVX = (PFNGLWAITSEMAPHOREUI64NVXPROC)glewGetProcAddress((const GLubyte*)"glWaitSemaphoreui64NVX")) == NULL) || r; + + return r; +} + +#endif /* GL_NVX_progress_fence */ + +#ifdef GL_NV_3dvision_settings + +static GLboolean _glewInit_GL_NV_3dvision_settings () +{ + GLboolean r = GL_FALSE; + + r = ((glStereoParameterfNV = (PFNGLSTEREOPARAMETERFNVPROC)glewGetProcAddress((const GLubyte*)"glStereoParameterfNV")) == NULL) || r; + r = ((glStereoParameteriNV = (PFNGLSTEREOPARAMETERINVPROC)glewGetProcAddress((const GLubyte*)"glStereoParameteriNV")) == NULL) || r; + + return r; +} + +#endif /* GL_NV_3dvision_settings */ + +#ifdef GL_NV_alpha_to_coverage_dither_control + +static GLboolean _glewInit_GL_NV_alpha_to_coverage_dither_control () +{ + GLboolean r = GL_FALSE; + + r = ((glAlphaToCoverageDitherControlNV = (PFNGLALPHATOCOVERAGEDITHERCONTROLNVPROC)glewGetProcAddress((const GLubyte*)"glAlphaToCoverageDitherControlNV")) == NULL) || r; + + return r; +} + +#endif /* GL_NV_alpha_to_coverage_dither_control */ + #ifdef GL_NV_bindless_multi_draw_indirect -static GLboolean _glewInit_GL_NV_bindless_multi_draw_indirect (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_NV_bindless_multi_draw_indirect () { GLboolean r = GL_FALSE; @@ -7848,7 +15506,7 @@ static GLboolean _glewInit_GL_NV_bindless_multi_draw_indirect (GLEW_CONTEXT_ARG_ #ifdef GL_NV_bindless_multi_draw_indirect_count -static GLboolean _glewInit_GL_NV_bindless_multi_draw_indirect_count (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_NV_bindless_multi_draw_indirect_count () { GLboolean r = GL_FALSE; @@ -7862,7 +15520,7 @@ static GLboolean _glewInit_GL_NV_bindless_multi_draw_indirect_count (GLEW_CONTEX #ifdef GL_NV_bindless_texture -static GLboolean _glewInit_GL_NV_bindless_texture (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_NV_bindless_texture () { GLboolean r = GL_FALSE; @@ -7887,7 +15545,7 @@ static GLboolean _glewInit_GL_NV_bindless_texture (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_NV_blend_equation_advanced -static GLboolean _glewInit_GL_NV_blend_equation_advanced (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_NV_blend_equation_advanced () { GLboolean r = GL_FALSE; @@ -7899,9 +15557,51 @@ static GLboolean _glewInit_GL_NV_blend_equation_advanced (GLEW_CONTEXT_ARG_DEF_I #endif /* GL_NV_blend_equation_advanced */ +#ifdef GL_NV_clip_space_w_scaling + +static GLboolean _glewInit_GL_NV_clip_space_w_scaling () +{ + GLboolean r = GL_FALSE; + + r = ((glViewportPositionWScaleNV = (PFNGLVIEWPORTPOSITIONWSCALENVPROC)glewGetProcAddress((const GLubyte*)"glViewportPositionWScaleNV")) == NULL) || r; + + return r; +} + +#endif /* GL_NV_clip_space_w_scaling */ + +#ifdef GL_NV_command_list + +static GLboolean _glewInit_GL_NV_command_list () +{ + GLboolean r = GL_FALSE; + + r = ((glCallCommandListNV = (PFNGLCALLCOMMANDLISTNVPROC)glewGetProcAddress((const GLubyte*)"glCallCommandListNV")) == NULL) || r; + r = ((glCommandListSegmentsNV = (PFNGLCOMMANDLISTSEGMENTSNVPROC)glewGetProcAddress((const GLubyte*)"glCommandListSegmentsNV")) == NULL) || r; + r = ((glCompileCommandListNV = (PFNGLCOMPILECOMMANDLISTNVPROC)glewGetProcAddress((const GLubyte*)"glCompileCommandListNV")) == NULL) || r; + r = ((glCreateCommandListsNV = (PFNGLCREATECOMMANDLISTSNVPROC)glewGetProcAddress((const GLubyte*)"glCreateCommandListsNV")) == NULL) || r; + r = ((glCreateStatesNV = (PFNGLCREATESTATESNVPROC)glewGetProcAddress((const GLubyte*)"glCreateStatesNV")) == NULL) || r; + r = ((glDeleteCommandListsNV = (PFNGLDELETECOMMANDLISTSNVPROC)glewGetProcAddress((const GLubyte*)"glDeleteCommandListsNV")) == NULL) || r; + r = ((glDeleteStatesNV = (PFNGLDELETESTATESNVPROC)glewGetProcAddress((const GLubyte*)"glDeleteStatesNV")) == NULL) || r; + r = ((glDrawCommandsAddressNV = (PFNGLDRAWCOMMANDSADDRESSNVPROC)glewGetProcAddress((const GLubyte*)"glDrawCommandsAddressNV")) == NULL) || r; + r = ((glDrawCommandsNV = (PFNGLDRAWCOMMANDSNVPROC)glewGetProcAddress((const GLubyte*)"glDrawCommandsNV")) == NULL) || r; + r = ((glDrawCommandsStatesAddressNV = (PFNGLDRAWCOMMANDSSTATESADDRESSNVPROC)glewGetProcAddress((const GLubyte*)"glDrawCommandsStatesAddressNV")) == NULL) || r; + r = ((glDrawCommandsStatesNV = (PFNGLDRAWCOMMANDSSTATESNVPROC)glewGetProcAddress((const GLubyte*)"glDrawCommandsStatesNV")) == NULL) || r; + r = ((glGetCommandHeaderNV = (PFNGLGETCOMMANDHEADERNVPROC)glewGetProcAddress((const GLubyte*)"glGetCommandHeaderNV")) == NULL) || r; + r = ((glGetStageIndexNV = (PFNGLGETSTAGEINDEXNVPROC)glewGetProcAddress((const GLubyte*)"glGetStageIndexNV")) == NULL) || r; + r = ((glIsCommandListNV = (PFNGLISCOMMANDLISTNVPROC)glewGetProcAddress((const GLubyte*)"glIsCommandListNV")) == NULL) || r; + r = ((glIsStateNV = (PFNGLISSTATENVPROC)glewGetProcAddress((const GLubyte*)"glIsStateNV")) == NULL) || r; + r = ((glListDrawCommandsStatesClientNV = (PFNGLLISTDRAWCOMMANDSSTATESCLIENTNVPROC)glewGetProcAddress((const GLubyte*)"glListDrawCommandsStatesClientNV")) == NULL) || r; + r = ((glStateCaptureNV = (PFNGLSTATECAPTURENVPROC)glewGetProcAddress((const GLubyte*)"glStateCaptureNV")) == NULL) || r; + + return r; +} + +#endif /* GL_NV_command_list */ + #ifdef GL_NV_conditional_render -static GLboolean _glewInit_GL_NV_conditional_render (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_NV_conditional_render () { GLboolean r = GL_FALSE; @@ -7915,7 +15615,7 @@ static GLboolean _glewInit_GL_NV_conditional_render (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_NV_conservative_raster -static GLboolean _glewInit_GL_NV_conservative_raster (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_NV_conservative_raster () { GLboolean r = GL_FALSE; @@ -7928,7 +15628,7 @@ static GLboolean _glewInit_GL_NV_conservative_raster (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_NV_conservative_raster_dilate -static GLboolean _glewInit_GL_NV_conservative_raster_dilate (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_NV_conservative_raster_dilate () { GLboolean r = GL_FALSE; @@ -7939,9 +15639,35 @@ static GLboolean _glewInit_GL_NV_conservative_raster_dilate (GLEW_CONTEXT_ARG_DE #endif /* GL_NV_conservative_raster_dilate */ +#ifdef GL_NV_conservative_raster_pre_snap_triangles + +static GLboolean _glewInit_GL_NV_conservative_raster_pre_snap_triangles () +{ + GLboolean r = GL_FALSE; + + r = ((glConservativeRasterParameteriNV = (PFNGLCONSERVATIVERASTERPARAMETERINVPROC)glewGetProcAddress((const GLubyte*)"glConservativeRasterParameteriNV")) == NULL) || r; + + return r; +} + +#endif /* GL_NV_conservative_raster_pre_snap_triangles */ + +#ifdef GL_NV_copy_buffer + +static GLboolean _glewInit_GL_NV_copy_buffer () +{ + GLboolean r = GL_FALSE; + + r = ((glCopyBufferSubDataNV = (PFNGLCOPYBUFFERSUBDATANVPROC)glewGetProcAddress((const GLubyte*)"glCopyBufferSubDataNV")) == NULL) || r; + + return r; +} + +#endif /* GL_NV_copy_buffer */ + #ifdef GL_NV_copy_image -static GLboolean _glewInit_GL_NV_copy_image (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_NV_copy_image () { GLboolean r = GL_FALSE; @@ -7954,7 +15680,7 @@ static GLboolean _glewInit_GL_NV_copy_image (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_NV_depth_buffer_float -static GLboolean _glewInit_GL_NV_depth_buffer_float (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_NV_depth_buffer_float () { GLboolean r = GL_FALSE; @@ -7967,9 +15693,36 @@ static GLboolean _glewInit_GL_NV_depth_buffer_float (GLEW_CONTEXT_ARG_DEF_INIT) #endif /* GL_NV_depth_buffer_float */ +#ifdef GL_NV_draw_buffers + +static GLboolean _glewInit_GL_NV_draw_buffers () +{ + GLboolean r = GL_FALSE; + + r = ((glDrawBuffersNV = (PFNGLDRAWBUFFERSNVPROC)glewGetProcAddress((const GLubyte*)"glDrawBuffersNV")) == NULL) || r; + + return r; +} + +#endif /* GL_NV_draw_buffers */ + +#ifdef GL_NV_draw_instanced + +static GLboolean _glewInit_GL_NV_draw_instanced () +{ + GLboolean r = GL_FALSE; + + r = ((glDrawArraysInstancedNV = (PFNGLDRAWARRAYSINSTANCEDNVPROC)glewGetProcAddress((const GLubyte*)"glDrawArraysInstancedNV")) == NULL) || r; + r = ((glDrawElementsInstancedNV = (PFNGLDRAWELEMENTSINSTANCEDNVPROC)glewGetProcAddress((const GLubyte*)"glDrawElementsInstancedNV")) == NULL) || r; + + return r; +} + +#endif /* GL_NV_draw_instanced */ + #ifdef GL_NV_draw_texture -static GLboolean _glewInit_GL_NV_draw_texture (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_NV_draw_texture () { GLboolean r = GL_FALSE; @@ -7980,9 +15733,26 @@ static GLboolean _glewInit_GL_NV_draw_texture (GLEW_CONTEXT_ARG_DEF_INIT) #endif /* GL_NV_draw_texture */ +#ifdef GL_NV_draw_vulkan_image + +static GLboolean _glewInit_GL_NV_draw_vulkan_image () +{ + GLboolean r = GL_FALSE; + + r = ((glDrawVkImageNV = (PFNGLDRAWVKIMAGENVPROC)glewGetProcAddress((const GLubyte*)"glDrawVkImageNV")) == NULL) || r; + r = ((glGetVkProcAddrNV = (PFNGLGETVKPROCADDRNVPROC)glewGetProcAddress((const GLubyte*)"glGetVkProcAddrNV")) == NULL) || r; + r = ((glSignalVkFenceNV = (PFNGLSIGNALVKFENCENVPROC)glewGetProcAddress((const GLubyte*)"glSignalVkFenceNV")) == NULL) || r; + r = ((glSignalVkSemaphoreNV = (PFNGLSIGNALVKSEMAPHORENVPROC)glewGetProcAddress((const GLubyte*)"glSignalVkSemaphoreNV")) == NULL) || r; + r = ((glWaitVkSemaphoreNV = (PFNGLWAITVKSEMAPHORENVPROC)glewGetProcAddress((const GLubyte*)"glWaitVkSemaphoreNV")) == NULL) || r; + + return r; +} + +#endif /* GL_NV_draw_vulkan_image */ + #ifdef GL_NV_evaluators -static GLboolean _glewInit_GL_NV_evaluators (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_NV_evaluators () { GLboolean r = GL_FALSE; @@ -8003,7 +15773,7 @@ static GLboolean _glewInit_GL_NV_evaluators (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_NV_explicit_multisample -static GLboolean _glewInit_GL_NV_explicit_multisample (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_NV_explicit_multisample () { GLboolean r = GL_FALSE; @@ -8018,7 +15788,7 @@ static GLboolean _glewInit_GL_NV_explicit_multisample (GLEW_CONTEXT_ARG_DEF_INIT #ifdef GL_NV_fence -static GLboolean _glewInit_GL_NV_fence (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_NV_fence () { GLboolean r = GL_FALSE; @@ -8037,7 +15807,7 @@ static GLboolean _glewInit_GL_NV_fence (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_NV_fragment_coverage_to_color -static GLboolean _glewInit_GL_NV_fragment_coverage_to_color (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_NV_fragment_coverage_to_color () { GLboolean r = GL_FALSE; @@ -8050,7 +15820,7 @@ static GLboolean _glewInit_GL_NV_fragment_coverage_to_color (GLEW_CONTEXT_ARG_DE #ifdef GL_NV_fragment_program -static GLboolean _glewInit_GL_NV_fragment_program (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_NV_fragment_program () { GLboolean r = GL_FALSE; @@ -8066,9 +15836,35 @@ static GLboolean _glewInit_GL_NV_fragment_program (GLEW_CONTEXT_ARG_DEF_INIT) #endif /* GL_NV_fragment_program */ +#ifdef GL_NV_framebuffer_blit + +static GLboolean _glewInit_GL_NV_framebuffer_blit () +{ + GLboolean r = GL_FALSE; + + r = ((glBlitFramebufferNV = (PFNGLBLITFRAMEBUFFERNVPROC)glewGetProcAddress((const GLubyte*)"glBlitFramebufferNV")) == NULL) || r; + + return r; +} + +#endif /* GL_NV_framebuffer_blit */ + +#ifdef GL_NV_framebuffer_multisample + +static GLboolean _glewInit_GL_NV_framebuffer_multisample () +{ + GLboolean r = GL_FALSE; + + r = ((glRenderbufferStorageMultisampleNV = (PFNGLRENDERBUFFERSTORAGEMULTISAMPLENVPROC)glewGetProcAddress((const GLubyte*)"glRenderbufferStorageMultisampleNV")) == NULL) || r; + + return r; +} + +#endif /* GL_NV_framebuffer_multisample */ + #ifdef GL_NV_framebuffer_multisample_coverage -static GLboolean _glewInit_GL_NV_framebuffer_multisample_coverage (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_NV_framebuffer_multisample_coverage () { GLboolean r = GL_FALSE; @@ -8081,7 +15877,7 @@ static GLboolean _glewInit_GL_NV_framebuffer_multisample_coverage (GLEW_CONTEXT_ #ifdef GL_NV_geometry_program4 -static GLboolean _glewInit_GL_NV_geometry_program4 (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_NV_geometry_program4 () { GLboolean r = GL_FALSE; @@ -8092,9 +15888,33 @@ static GLboolean _glewInit_GL_NV_geometry_program4 (GLEW_CONTEXT_ARG_DEF_INIT) #endif /* GL_NV_geometry_program4 */ +#ifdef GL_NV_gpu_multicast + +static GLboolean _glewInit_GL_NV_gpu_multicast () +{ + GLboolean r = GL_FALSE; + + r = ((glMulticastBarrierNV = (PFNGLMULTICASTBARRIERNVPROC)glewGetProcAddress((const GLubyte*)"glMulticastBarrierNV")) == NULL) || r; + r = ((glMulticastBlitFramebufferNV = (PFNGLMULTICASTBLITFRAMEBUFFERNVPROC)glewGetProcAddress((const GLubyte*)"glMulticastBlitFramebufferNV")) == NULL) || r; + r = ((glMulticastBufferSubDataNV = (PFNGLMULTICASTBUFFERSUBDATANVPROC)glewGetProcAddress((const GLubyte*)"glMulticastBufferSubDataNV")) == NULL) || r; + r = ((glMulticastCopyBufferSubDataNV = (PFNGLMULTICASTCOPYBUFFERSUBDATANVPROC)glewGetProcAddress((const GLubyte*)"glMulticastCopyBufferSubDataNV")) == NULL) || r; + r = ((glMulticastCopyImageSubDataNV = (PFNGLMULTICASTCOPYIMAGESUBDATANVPROC)glewGetProcAddress((const GLubyte*)"glMulticastCopyImageSubDataNV")) == NULL) || r; + r = ((glMulticastFramebufferSampleLocationsfvNV = (PFNGLMULTICASTFRAMEBUFFERSAMPLELOCATIONSFVNVPROC)glewGetProcAddress((const GLubyte*)"glMulticastFramebufferSampleLocationsfvNV")) == NULL) || r; + r = ((glMulticastGetQueryObjecti64vNV = (PFNGLMULTICASTGETQUERYOBJECTI64VNVPROC)glewGetProcAddress((const GLubyte*)"glMulticastGetQueryObjecti64vNV")) == NULL) || r; + r = ((glMulticastGetQueryObjectivNV = (PFNGLMULTICASTGETQUERYOBJECTIVNVPROC)glewGetProcAddress((const GLubyte*)"glMulticastGetQueryObjectivNV")) == NULL) || r; + r = ((glMulticastGetQueryObjectui64vNV = (PFNGLMULTICASTGETQUERYOBJECTUI64VNVPROC)glewGetProcAddress((const GLubyte*)"glMulticastGetQueryObjectui64vNV")) == NULL) || r; + r = ((glMulticastGetQueryObjectuivNV = (PFNGLMULTICASTGETQUERYOBJECTUIVNVPROC)glewGetProcAddress((const GLubyte*)"glMulticastGetQueryObjectuivNV")) == NULL) || r; + r = ((glMulticastWaitSyncNV = (PFNGLMULTICASTWAITSYNCNVPROC)glewGetProcAddress((const GLubyte*)"glMulticastWaitSyncNV")) == NULL) || r; + r = ((glRenderGpuMaskNV = (PFNGLRENDERGPUMASKNVPROC)glewGetProcAddress((const GLubyte*)"glRenderGpuMaskNV")) == NULL) || r; + + return r; +} + +#endif /* GL_NV_gpu_multicast */ + #ifdef GL_NV_gpu_program4 -static GLboolean _glewInit_GL_NV_gpu_program4 (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_NV_gpu_program4 () { GLboolean r = GL_FALSE; @@ -8118,7 +15938,7 @@ static GLboolean _glewInit_GL_NV_gpu_program4 (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_NV_gpu_shader5 -static GLboolean _glewInit_GL_NV_gpu_shader5 (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_NV_gpu_shader5 () { GLboolean r = GL_FALSE; @@ -8164,7 +15984,7 @@ static GLboolean _glewInit_GL_NV_gpu_shader5 (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_NV_half_float -static GLboolean _glewInit_GL_NV_half_float (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_NV_half_float () { GLboolean r = GL_FALSE; @@ -8220,9 +16040,22 @@ static GLboolean _glewInit_GL_NV_half_float (GLEW_CONTEXT_ARG_DEF_INIT) #endif /* GL_NV_half_float */ +#ifdef GL_NV_instanced_arrays + +static GLboolean _glewInit_GL_NV_instanced_arrays () +{ + GLboolean r = GL_FALSE; + + r = ((glVertexAttribDivisorNV = (PFNGLVERTEXATTRIBDIVISORNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribDivisorNV")) == NULL) || r; + + return r; +} + +#endif /* GL_NV_instanced_arrays */ + #ifdef GL_NV_internalformat_sample_query -static GLboolean _glewInit_GL_NV_internalformat_sample_query (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_NV_internalformat_sample_query () { GLboolean r = GL_FALSE; @@ -8233,9 +16066,61 @@ static GLboolean _glewInit_GL_NV_internalformat_sample_query (GLEW_CONTEXT_ARG_D #endif /* GL_NV_internalformat_sample_query */ +#ifdef GL_NV_memory_attachment + +static GLboolean _glewInit_GL_NV_memory_attachment () +{ + GLboolean r = GL_FALSE; + + r = ((glBufferAttachMemoryNV = (PFNGLBUFFERATTACHMEMORYNVPROC)glewGetProcAddress((const GLubyte*)"glBufferAttachMemoryNV")) == NULL) || r; + r = ((glGetMemoryObjectDetachedResourcesuivNV = (PFNGLGETMEMORYOBJECTDETACHEDRESOURCESUIVNVPROC)glewGetProcAddress((const GLubyte*)"glGetMemoryObjectDetachedResourcesuivNV")) == NULL) || r; + r = ((glNamedBufferAttachMemoryNV = (PFNGLNAMEDBUFFERATTACHMEMORYNVPROC)glewGetProcAddress((const GLubyte*)"glNamedBufferAttachMemoryNV")) == NULL) || r; + r = ((glResetMemoryObjectParameterNV = (PFNGLRESETMEMORYOBJECTPARAMETERNVPROC)glewGetProcAddress((const GLubyte*)"glResetMemoryObjectParameterNV")) == NULL) || r; + r = ((glTexAttachMemoryNV = (PFNGLTEXATTACHMEMORYNVPROC)glewGetProcAddress((const GLubyte*)"glTexAttachMemoryNV")) == NULL) || r; + r = ((glTextureAttachMemoryNV = (PFNGLTEXTUREATTACHMEMORYNVPROC)glewGetProcAddress((const GLubyte*)"glTextureAttachMemoryNV")) == NULL) || r; + + return r; +} + +#endif /* GL_NV_memory_attachment */ + +#ifdef GL_NV_mesh_shader + +static GLboolean _glewInit_GL_NV_mesh_shader () +{ + GLboolean r = GL_FALSE; + + r = ((glDrawMeshTasksIndirectNV = (PFNGLDRAWMESHTASKSINDIRECTNVPROC)glewGetProcAddress((const GLubyte*)"glDrawMeshTasksIndirectNV")) == NULL) || r; + r = ((glDrawMeshTasksNV = (PFNGLDRAWMESHTASKSNVPROC)glewGetProcAddress((const GLubyte*)"glDrawMeshTasksNV")) == NULL) || r; + r = ((glMultiDrawMeshTasksIndirectCountNV = (PFNGLMULTIDRAWMESHTASKSINDIRECTCOUNTNVPROC)glewGetProcAddress((const GLubyte*)"glMultiDrawMeshTasksIndirectCountNV")) == NULL) || r; + r = ((glMultiDrawMeshTasksIndirectNV = (PFNGLMULTIDRAWMESHTASKSINDIRECTNVPROC)glewGetProcAddress((const GLubyte*)"glMultiDrawMeshTasksIndirectNV")) == NULL) || r; + + return r; +} + +#endif /* GL_NV_mesh_shader */ + +#ifdef GL_NV_non_square_matrices + +static GLboolean _glewInit_GL_NV_non_square_matrices () +{ + GLboolean r = GL_FALSE; + + r = ((glUniformMatrix2x3fvNV = (PFNGLUNIFORMMATRIX2X3FVNVPROC)glewGetProcAddress((const GLubyte*)"glUniformMatrix2x3fvNV")) == NULL) || r; + r = ((glUniformMatrix2x4fvNV = (PFNGLUNIFORMMATRIX2X4FVNVPROC)glewGetProcAddress((const GLubyte*)"glUniformMatrix2x4fvNV")) == NULL) || r; + r = ((glUniformMatrix3x2fvNV = (PFNGLUNIFORMMATRIX3X2FVNVPROC)glewGetProcAddress((const GLubyte*)"glUniformMatrix3x2fvNV")) == NULL) || r; + r = ((glUniformMatrix3x4fvNV = (PFNGLUNIFORMMATRIX3X4FVNVPROC)glewGetProcAddress((const GLubyte*)"glUniformMatrix3x4fvNV")) == NULL) || r; + r = ((glUniformMatrix4x2fvNV = (PFNGLUNIFORMMATRIX4X2FVNVPROC)glewGetProcAddress((const GLubyte*)"glUniformMatrix4x2fvNV")) == NULL) || r; + r = ((glUniformMatrix4x3fvNV = (PFNGLUNIFORMMATRIX4X3FVNVPROC)glewGetProcAddress((const GLubyte*)"glUniformMatrix4x3fvNV")) == NULL) || r; + + return r; +} + +#endif /* GL_NV_non_square_matrices */ + #ifdef GL_NV_occlusion_query -static GLboolean _glewInit_GL_NV_occlusion_query (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_NV_occlusion_query () { GLboolean r = GL_FALSE; @@ -8254,7 +16139,7 @@ static GLboolean _glewInit_GL_NV_occlusion_query (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_NV_parameter_buffer_object -static GLboolean _glewInit_GL_NV_parameter_buffer_object (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_NV_parameter_buffer_object () { GLboolean r = GL_FALSE; @@ -8269,7 +16154,7 @@ static GLboolean _glewInit_GL_NV_parameter_buffer_object (GLEW_CONTEXT_ARG_DEF_I #ifdef GL_NV_path_rendering -static GLboolean _glewInit_GL_NV_path_rendering (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_NV_path_rendering () { GLboolean r = GL_FALSE; @@ -8345,7 +16230,7 @@ static GLboolean _glewInit_GL_NV_path_rendering (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_NV_pixel_data_range -static GLboolean _glewInit_GL_NV_pixel_data_range (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_NV_pixel_data_range () { GLboolean r = GL_FALSE; @@ -8359,7 +16244,7 @@ static GLboolean _glewInit_GL_NV_pixel_data_range (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_NV_point_sprite -static GLboolean _glewInit_GL_NV_point_sprite (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_NV_point_sprite () { GLboolean r = GL_FALSE; @@ -8371,9 +16256,22 @@ static GLboolean _glewInit_GL_NV_point_sprite (GLEW_CONTEXT_ARG_DEF_INIT) #endif /* GL_NV_point_sprite */ +#ifdef GL_NV_polygon_mode + +static GLboolean _glewInit_GL_NV_polygon_mode () +{ + GLboolean r = GL_FALSE; + + r = ((glPolygonModeNV = (PFNGLPOLYGONMODENVPROC)glewGetProcAddress((const GLubyte*)"glPolygonModeNV")) == NULL) || r; + + return r; +} + +#endif /* GL_NV_polygon_mode */ + #ifdef GL_NV_present_video -static GLboolean _glewInit_GL_NV_present_video (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_NV_present_video () { GLboolean r = GL_FALSE; @@ -8391,7 +16289,7 @@ static GLboolean _glewInit_GL_NV_present_video (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_NV_primitive_restart -static GLboolean _glewInit_GL_NV_primitive_restart (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_NV_primitive_restart () { GLboolean r = GL_FALSE; @@ -8403,9 +16301,22 @@ static GLboolean _glewInit_GL_NV_primitive_restart (GLEW_CONTEXT_ARG_DEF_INIT) #endif /* GL_NV_primitive_restart */ +#ifdef GL_NV_read_buffer + +static GLboolean _glewInit_GL_NV_read_buffer () +{ + GLboolean r = GL_FALSE; + + r = ((glReadBufferNV = (PFNGLREADBUFFERNVPROC)glewGetProcAddress((const GLubyte*)"glReadBufferNV")) == NULL) || r; + + return r; +} + +#endif /* GL_NV_read_buffer */ + #ifdef GL_NV_register_combiners -static GLboolean _glewInit_GL_NV_register_combiners (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_NV_register_combiners () { GLboolean r = GL_FALSE; @@ -8430,7 +16341,7 @@ static GLboolean _glewInit_GL_NV_register_combiners (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_NV_register_combiners2 -static GLboolean _glewInit_GL_NV_register_combiners2 (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_NV_register_combiners2 () { GLboolean r = GL_FALSE; @@ -8444,21 +16355,36 @@ static GLboolean _glewInit_GL_NV_register_combiners2 (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_NV_sample_locations -static GLboolean _glewInit_GL_NV_sample_locations (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_NV_sample_locations () { GLboolean r = GL_FALSE; r = ((glFramebufferSampleLocationsfvNV = (PFNGLFRAMEBUFFERSAMPLELOCATIONSFVNVPROC)glewGetProcAddress((const GLubyte*)"glFramebufferSampleLocationsfvNV")) == NULL) || r; r = ((glNamedFramebufferSampleLocationsfvNV = (PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVNVPROC)glewGetProcAddress((const GLubyte*)"glNamedFramebufferSampleLocationsfvNV")) == NULL) || r; + r = ((glResolveDepthValuesNV = (PFNGLRESOLVEDEPTHVALUESNVPROC)glewGetProcAddress((const GLubyte*)"glResolveDepthValuesNV")) == NULL) || r; return r; } #endif /* GL_NV_sample_locations */ +#ifdef GL_NV_scissor_exclusive + +static GLboolean _glewInit_GL_NV_scissor_exclusive () +{ + GLboolean r = GL_FALSE; + + r = ((glScissorExclusiveArrayvNV = (PFNGLSCISSOREXCLUSIVEARRAYVNVPROC)glewGetProcAddress((const GLubyte*)"glScissorExclusiveArrayvNV")) == NULL) || r; + r = ((glScissorExclusiveNV = (PFNGLSCISSOREXCLUSIVENVPROC)glewGetProcAddress((const GLubyte*)"glScissorExclusiveNV")) == NULL) || r; + + return r; +} + +#endif /* GL_NV_scissor_exclusive */ + #ifdef GL_NV_shader_buffer_load -static GLboolean _glewInit_GL_NV_shader_buffer_load (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_NV_shader_buffer_load () { GLboolean r = GL_FALSE; @@ -8481,9 +16407,45 @@ static GLboolean _glewInit_GL_NV_shader_buffer_load (GLEW_CONTEXT_ARG_DEF_INIT) #endif /* GL_NV_shader_buffer_load */ +#ifdef GL_NV_shading_rate_image + +static GLboolean _glewInit_GL_NV_shading_rate_image () +{ + GLboolean r = GL_FALSE; + + r = ((glBindShadingRateImageNV = (PFNGLBINDSHADINGRATEIMAGENVPROC)glewGetProcAddress((const GLubyte*)"glBindShadingRateImageNV")) == NULL) || r; + r = ((glGetShadingRateImagePaletteNV = (PFNGLGETSHADINGRATEIMAGEPALETTENVPROC)glewGetProcAddress((const GLubyte*)"glGetShadingRateImagePaletteNV")) == NULL) || r; + r = ((glGetShadingRateSampleLocationivNV = (PFNGLGETSHADINGRATESAMPLELOCATIONIVNVPROC)glewGetProcAddress((const GLubyte*)"glGetShadingRateSampleLocationivNV")) == NULL) || r; + r = ((glShadingRateImageBarrierNV = (PFNGLSHADINGRATEIMAGEBARRIERNVPROC)glewGetProcAddress((const GLubyte*)"glShadingRateImageBarrierNV")) == NULL) || r; + r = ((glShadingRateImagePaletteNV = (PFNGLSHADINGRATEIMAGEPALETTENVPROC)glewGetProcAddress((const GLubyte*)"glShadingRateImagePaletteNV")) == NULL) || r; + r = ((glShadingRateSampleOrderCustomNV = (PFNGLSHADINGRATESAMPLEORDERCUSTOMNVPROC)glewGetProcAddress((const GLubyte*)"glShadingRateSampleOrderCustomNV")) == NULL) || r; + + return r; +} + +#endif /* GL_NV_shading_rate_image */ + +#ifdef GL_NV_texture_array + +static GLboolean _glewInit_GL_NV_texture_array () +{ + GLboolean r = GL_FALSE; + + r = ((glCompressedTexImage3DNV = (PFNGLCOMPRESSEDTEXIMAGE3DNVPROC)glewGetProcAddress((const GLubyte*)"glCompressedTexImage3DNV")) == NULL) || r; + r = ((glCompressedTexSubImage3DNV = (PFNGLCOMPRESSEDTEXSUBIMAGE3DNVPROC)glewGetProcAddress((const GLubyte*)"glCompressedTexSubImage3DNV")) == NULL) || r; + r = ((glCopyTexSubImage3DNV = (PFNGLCOPYTEXSUBIMAGE3DNVPROC)glewGetProcAddress((const GLubyte*)"glCopyTexSubImage3DNV")) == NULL) || r; + r = ((glFramebufferTextureLayerNV = (PFNGLFRAMEBUFFERTEXTURELAYERNVPROC)glewGetProcAddress((const GLubyte*)"glFramebufferTextureLayerNV")) == NULL) || r; + r = ((glTexImage3DNV = (PFNGLTEXIMAGE3DNVPROC)glewGetProcAddress((const GLubyte*)"glTexImage3DNV")) == NULL) || r; + r = ((glTexSubImage3DNV = (PFNGLTEXSUBIMAGE3DNVPROC)glewGetProcAddress((const GLubyte*)"glTexSubImage3DNV")) == NULL) || r; + + return r; +} + +#endif /* GL_NV_texture_array */ + #ifdef GL_NV_texture_barrier -static GLboolean _glewInit_GL_NV_texture_barrier (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_NV_texture_barrier () { GLboolean r = GL_FALSE; @@ -8496,7 +16458,7 @@ static GLboolean _glewInit_GL_NV_texture_barrier (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_NV_texture_multisample -static GLboolean _glewInit_GL_NV_texture_multisample (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_NV_texture_multisample () { GLboolean r = GL_FALSE; @@ -8514,7 +16476,7 @@ static GLboolean _glewInit_GL_NV_texture_multisample (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_NV_transform_feedback -static GLboolean _glewInit_GL_NV_transform_feedback (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_NV_transform_feedback () { GLboolean r = GL_FALSE; @@ -8537,7 +16499,7 @@ static GLboolean _glewInit_GL_NV_transform_feedback (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_NV_transform_feedback2 -static GLboolean _glewInit_GL_NV_transform_feedback2 (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_NV_transform_feedback2 () { GLboolean r = GL_FALSE; @@ -8556,7 +16518,7 @@ static GLboolean _glewInit_GL_NV_transform_feedback2 (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_NV_vdpau_interop -static GLboolean _glewInit_GL_NV_vdpau_interop (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_NV_vdpau_interop () { GLboolean r = GL_FALSE; @@ -8576,9 +16538,22 @@ static GLboolean _glewInit_GL_NV_vdpau_interop (GLEW_CONTEXT_ARG_DEF_INIT) #endif /* GL_NV_vdpau_interop */ +#ifdef GL_NV_vdpau_interop2 + +static GLboolean _glewInit_GL_NV_vdpau_interop2 () +{ + GLboolean r = GL_FALSE; + + r = ((glVDPAURegisterVideoSurfaceWithPictureStructureNV = (PFNGLVDPAUREGISTERVIDEOSURFACEWITHPICTURESTRUCTURENVPROC)glewGetProcAddress((const GLubyte*)"glVDPAURegisterVideoSurfaceWithPictureStructureNV")) == NULL) || r; + + return r; +} + +#endif /* GL_NV_vdpau_interop2 */ + #ifdef GL_NV_vertex_array_range -static GLboolean _glewInit_GL_NV_vertex_array_range (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_NV_vertex_array_range () { GLboolean r = GL_FALSE; @@ -8592,7 +16567,7 @@ static GLboolean _glewInit_GL_NV_vertex_array_range (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_NV_vertex_attrib_integer_64bit -static GLboolean _glewInit_GL_NV_vertex_attrib_integer_64bit (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_NV_vertex_attrib_integer_64bit () { GLboolean r = GL_FALSE; @@ -8623,7 +16598,7 @@ static GLboolean _glewInit_GL_NV_vertex_attrib_integer_64bit (GLEW_CONTEXT_ARG_D #ifdef GL_NV_vertex_buffer_unified_memory -static GLboolean _glewInit_GL_NV_vertex_buffer_unified_memory (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_NV_vertex_buffer_unified_memory () { GLboolean r = GL_FALSE; @@ -8647,7 +16622,7 @@ static GLboolean _glewInit_GL_NV_vertex_buffer_unified_memory (GLEW_CONTEXT_ARG_ #ifdef GL_NV_vertex_program -static GLboolean _glewInit_GL_NV_vertex_program (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_NV_vertex_program () { GLboolean r = GL_FALSE; @@ -8723,7 +16698,7 @@ static GLboolean _glewInit_GL_NV_vertex_program (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_NV_video_capture -static GLboolean _glewInit_GL_NV_video_capture (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_NV_video_capture () { GLboolean r = GL_FALSE; @@ -8745,9 +16720,216 @@ static GLboolean _glewInit_GL_NV_video_capture (GLEW_CONTEXT_ARG_DEF_INIT) #endif /* GL_NV_video_capture */ +#ifdef GL_NV_viewport_array + +static GLboolean _glewInit_GL_NV_viewport_array () +{ + GLboolean r = GL_FALSE; + + r = ((glDepthRangeArrayfvNV = (PFNGLDEPTHRANGEARRAYFVNVPROC)glewGetProcAddress((const GLubyte*)"glDepthRangeArrayfvNV")) == NULL) || r; + r = ((glDepthRangeIndexedfNV = (PFNGLDEPTHRANGEINDEXEDFNVPROC)glewGetProcAddress((const GLubyte*)"glDepthRangeIndexedfNV")) == NULL) || r; + r = ((glDisableiNV = (PFNGLDISABLEINVPROC)glewGetProcAddress((const GLubyte*)"glDisableiNV")) == NULL) || r; + r = ((glEnableiNV = (PFNGLENABLEINVPROC)glewGetProcAddress((const GLubyte*)"glEnableiNV")) == NULL) || r; + r = ((glGetFloati_vNV = (PFNGLGETFLOATI_VNVPROC)glewGetProcAddress((const GLubyte*)"glGetFloati_vNV")) == NULL) || r; + r = ((glIsEnablediNV = (PFNGLISENABLEDINVPROC)glewGetProcAddress((const GLubyte*)"glIsEnablediNV")) == NULL) || r; + r = ((glScissorArrayvNV = (PFNGLSCISSORARRAYVNVPROC)glewGetProcAddress((const GLubyte*)"glScissorArrayvNV")) == NULL) || r; + r = ((glScissorIndexedNV = (PFNGLSCISSORINDEXEDNVPROC)glewGetProcAddress((const GLubyte*)"glScissorIndexedNV")) == NULL) || r; + r = ((glScissorIndexedvNV = (PFNGLSCISSORINDEXEDVNVPROC)glewGetProcAddress((const GLubyte*)"glScissorIndexedvNV")) == NULL) || r; + r = ((glViewportArrayvNV = (PFNGLVIEWPORTARRAYVNVPROC)glewGetProcAddress((const GLubyte*)"glViewportArrayvNV")) == NULL) || r; + r = ((glViewportIndexedfNV = (PFNGLVIEWPORTINDEXEDFNVPROC)glewGetProcAddress((const GLubyte*)"glViewportIndexedfNV")) == NULL) || r; + r = ((glViewportIndexedfvNV = (PFNGLVIEWPORTINDEXEDFVNVPROC)glewGetProcAddress((const GLubyte*)"glViewportIndexedfvNV")) == NULL) || r; + + return r; +} + +#endif /* GL_NV_viewport_array */ + +#ifdef GL_NV_viewport_swizzle + +static GLboolean _glewInit_GL_NV_viewport_swizzle () +{ + GLboolean r = GL_FALSE; + + r = ((glViewportSwizzleNV = (PFNGLVIEWPORTSWIZZLENVPROC)glewGetProcAddress((const GLubyte*)"glViewportSwizzleNV")) == NULL) || r; + + return r; +} + +#endif /* GL_NV_viewport_swizzle */ + +#ifdef GL_OES_EGL_image + +static GLboolean _glewInit_GL_OES_EGL_image () +{ + GLboolean r = GL_FALSE; + + r = ((glEGLImageTargetRenderbufferStorageOES = (PFNGLEGLIMAGETARGETRENDERBUFFERSTORAGEOESPROC)glewGetProcAddress((const GLubyte*)"glEGLImageTargetRenderbufferStorageOES")) == NULL) || r; + r = ((glEGLImageTargetTexture2DOES = (PFNGLEGLIMAGETARGETTEXTURE2DOESPROC)glewGetProcAddress((const GLubyte*)"glEGLImageTargetTexture2DOES")) == NULL) || r; + + return r; +} + +#endif /* GL_OES_EGL_image */ + +#ifdef GL_OES_blend_equation_separate + +static GLboolean _glewInit_GL_OES_blend_equation_separate () +{ + GLboolean r = GL_FALSE; + + r = ((glBlendEquationSeparateOES = (PFNGLBLENDEQUATIONSEPARATEOESPROC)glewGetProcAddress((const GLubyte*)"glBlendEquationSeparateOES")) == NULL) || r; + + return r; +} + +#endif /* GL_OES_blend_equation_separate */ + +#ifdef GL_OES_blend_func_separate + +static GLboolean _glewInit_GL_OES_blend_func_separate () +{ + GLboolean r = GL_FALSE; + + r = ((glBlendFuncSeparateOES = (PFNGLBLENDFUNCSEPARATEOESPROC)glewGetProcAddress((const GLubyte*)"glBlendFuncSeparateOES")) == NULL) || r; + + return r; +} + +#endif /* GL_OES_blend_func_separate */ + +#ifdef GL_OES_blend_subtract + +static GLboolean _glewInit_GL_OES_blend_subtract () +{ + GLboolean r = GL_FALSE; + + r = ((glBlendEquationOES = (PFNGLBLENDEQUATIONOESPROC)glewGetProcAddress((const GLubyte*)"glBlendEquationOES")) == NULL) || r; + + return r; +} + +#endif /* GL_OES_blend_subtract */ + +#ifdef GL_OES_copy_image + +static GLboolean _glewInit_GL_OES_copy_image () +{ + GLboolean r = GL_FALSE; + + r = ((glCopyImageSubDataOES = (PFNGLCOPYIMAGESUBDATAOESPROC)glewGetProcAddress((const GLubyte*)"glCopyImageSubDataOES")) == NULL) || r; + + return r; +} + +#endif /* GL_OES_copy_image */ + +#ifdef GL_OES_draw_buffers_indexed + +static GLboolean _glewInit_GL_OES_draw_buffers_indexed () +{ + GLboolean r = GL_FALSE; + + r = ((glBlendEquationSeparateiOES = (PFNGLBLENDEQUATIONSEPARATEIOESPROC)glewGetProcAddress((const GLubyte*)"glBlendEquationSeparateiOES")) == NULL) || r; + r = ((glBlendEquationiOES = (PFNGLBLENDEQUATIONIOESPROC)glewGetProcAddress((const GLubyte*)"glBlendEquationiOES")) == NULL) || r; + r = ((glBlendFuncSeparateiOES = (PFNGLBLENDFUNCSEPARATEIOESPROC)glewGetProcAddress((const GLubyte*)"glBlendFuncSeparateiOES")) == NULL) || r; + r = ((glBlendFunciOES = (PFNGLBLENDFUNCIOESPROC)glewGetProcAddress((const GLubyte*)"glBlendFunciOES")) == NULL) || r; + r = ((glColorMaskiOES = (PFNGLCOLORMASKIOESPROC)glewGetProcAddress((const GLubyte*)"glColorMaskiOES")) == NULL) || r; + r = ((glDisableiOES = (PFNGLDISABLEIOESPROC)glewGetProcAddress((const GLubyte*)"glDisableiOES")) == NULL) || r; + r = ((glEnableiOES = (PFNGLENABLEIOESPROC)glewGetProcAddress((const GLubyte*)"glEnableiOES")) == NULL) || r; + r = ((glIsEnablediOES = (PFNGLISENABLEDIOESPROC)glewGetProcAddress((const GLubyte*)"glIsEnablediOES")) == NULL) || r; + + return r; +} + +#endif /* GL_OES_draw_buffers_indexed */ + +#ifdef GL_OES_framebuffer_object + +static GLboolean _glewInit_GL_OES_framebuffer_object () +{ + GLboolean r = GL_FALSE; + + r = ((glBindFramebufferOES = (PFNGLBINDFRAMEBUFFEROESPROC)glewGetProcAddress((const GLubyte*)"glBindFramebufferOES")) == NULL) || r; + r = ((glBindRenderbufferOES = (PFNGLBINDRENDERBUFFEROESPROC)glewGetProcAddress((const GLubyte*)"glBindRenderbufferOES")) == NULL) || r; + r = ((glCheckFramebufferStatusOES = (PFNGLCHECKFRAMEBUFFERSTATUSOESPROC)glewGetProcAddress((const GLubyte*)"glCheckFramebufferStatusOES")) == NULL) || r; + r = ((glDeleteFramebuffersOES = (PFNGLDELETEFRAMEBUFFERSOESPROC)glewGetProcAddress((const GLubyte*)"glDeleteFramebuffersOES")) == NULL) || r; + r = ((glDeleteRenderbuffersOES = (PFNGLDELETERENDERBUFFERSOESPROC)glewGetProcAddress((const GLubyte*)"glDeleteRenderbuffersOES")) == NULL) || r; + r = ((glFramebufferRenderbufferOES = (PFNGLFRAMEBUFFERRENDERBUFFEROESPROC)glewGetProcAddress((const GLubyte*)"glFramebufferRenderbufferOES")) == NULL) || r; + r = ((glFramebufferTexture2DOES = (PFNGLFRAMEBUFFERTEXTURE2DOESPROC)glewGetProcAddress((const GLubyte*)"glFramebufferTexture2DOES")) == NULL) || r; + r = ((glGenFramebuffersOES = (PFNGLGENFRAMEBUFFERSOESPROC)glewGetProcAddress((const GLubyte*)"glGenFramebuffersOES")) == NULL) || r; + r = ((glGenRenderbuffersOES = (PFNGLGENRENDERBUFFERSOESPROC)glewGetProcAddress((const GLubyte*)"glGenRenderbuffersOES")) == NULL) || r; + r = ((glGenerateMipmapOES = (PFNGLGENERATEMIPMAPOESPROC)glewGetProcAddress((const GLubyte*)"glGenerateMipmapOES")) == NULL) || r; + r = ((glGetFramebufferAttachmentParameterivOES = (PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVOESPROC)glewGetProcAddress((const GLubyte*)"glGetFramebufferAttachmentParameterivOES")) == NULL) || r; + r = ((glGetRenderbufferParameterivOES = (PFNGLGETRENDERBUFFERPARAMETERIVOESPROC)glewGetProcAddress((const GLubyte*)"glGetRenderbufferParameterivOES")) == NULL) || r; + r = ((glIsFramebufferOES = (PFNGLISFRAMEBUFFEROESPROC)glewGetProcAddress((const GLubyte*)"glIsFramebufferOES")) == NULL) || r; + r = ((glIsRenderbufferOES = (PFNGLISRENDERBUFFEROESPROC)glewGetProcAddress((const GLubyte*)"glIsRenderbufferOES")) == NULL) || r; + r = ((glRenderbufferStorageOES = (PFNGLRENDERBUFFERSTORAGEOESPROC)glewGetProcAddress((const GLubyte*)"glRenderbufferStorageOES")) == NULL) || r; + + return r; +} + +#endif /* GL_OES_framebuffer_object */ + +#ifdef GL_OES_get_program_binary + +static GLboolean _glewInit_GL_OES_get_program_binary () +{ + GLboolean r = GL_FALSE; + + r = ((glGetProgramBinaryOES = (PFNGLGETPROGRAMBINARYOESPROC)glewGetProcAddress((const GLubyte*)"glGetProgramBinaryOES")) == NULL) || r; + r = ((glProgramBinaryOES = (PFNGLPROGRAMBINARYOESPROC)glewGetProcAddress((const GLubyte*)"glProgramBinaryOES")) == NULL) || r; + + return r; +} + +#endif /* GL_OES_get_program_binary */ + +#ifdef GL_OES_mapbuffer + +static GLboolean _glewInit_GL_OES_mapbuffer () +{ + GLboolean r = GL_FALSE; + + r = ((glGetBufferPointervOES = (PFNGLGETBUFFERPOINTERVOESPROC)glewGetProcAddress((const GLubyte*)"glGetBufferPointervOES")) == NULL) || r; + r = ((glMapBufferOES = (PFNGLMAPBUFFEROESPROC)glewGetProcAddress((const GLubyte*)"glMapBufferOES")) == NULL) || r; + r = ((glUnmapBufferOES = (PFNGLUNMAPBUFFEROESPROC)glewGetProcAddress((const GLubyte*)"glUnmapBufferOES")) == NULL) || r; + + return r; +} + +#endif /* GL_OES_mapbuffer */ + +#ifdef GL_OES_matrix_palette + +static GLboolean _glewInit_GL_OES_matrix_palette () +{ + GLboolean r = GL_FALSE; + + r = ((glCurrentPaletteMatrixOES = (PFNGLCURRENTPALETTEMATRIXOESPROC)glewGetProcAddress((const GLubyte*)"glCurrentPaletteMatrixOES")) == NULL) || r; + r = ((glMatrixIndexPointerOES = (PFNGLMATRIXINDEXPOINTEROESPROC)glewGetProcAddress((const GLubyte*)"glMatrixIndexPointerOES")) == NULL) || r; + r = ((glWeightPointerOES = (PFNGLWEIGHTPOINTEROESPROC)glewGetProcAddress((const GLubyte*)"glWeightPointerOES")) == NULL) || r; + + return r; +} + +#endif /* GL_OES_matrix_palette */ + +#ifdef GL_OES_sample_shading + +static GLboolean _glewInit_GL_OES_sample_shading () +{ + GLboolean r = GL_FALSE; + + r = ((glMinSampleShadingOES = (PFNGLMINSAMPLESHADINGOESPROC)glewGetProcAddress((const GLubyte*)"glMinSampleShadingOES")) == NULL) || r; + + return r; +} + +#endif /* GL_OES_sample_shading */ + #ifdef GL_OES_single_precision -static GLboolean _glewInit_GL_OES_single_precision (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_OES_single_precision () { GLboolean r = GL_FALSE; @@ -8763,22 +16945,270 @@ static GLboolean _glewInit_GL_OES_single_precision (GLEW_CONTEXT_ARG_DEF_INIT) #endif /* GL_OES_single_precision */ +#ifdef GL_OES_texture_3D + +static GLboolean _glewInit_GL_OES_texture_3D () +{ + GLboolean r = GL_FALSE; + + r = ((glCompressedTexImage3DOES = (PFNGLCOMPRESSEDTEXIMAGE3DOESPROC)glewGetProcAddress((const GLubyte*)"glCompressedTexImage3DOES")) == NULL) || r; + r = ((glCompressedTexSubImage3DOES = (PFNGLCOMPRESSEDTEXSUBIMAGE3DOESPROC)glewGetProcAddress((const GLubyte*)"glCompressedTexSubImage3DOES")) == NULL) || r; + r = ((glCopyTexSubImage3DOES = (PFNGLCOPYTEXSUBIMAGE3DOESPROC)glewGetProcAddress((const GLubyte*)"glCopyTexSubImage3DOES")) == NULL) || r; + r = ((glFramebufferTexture3DOES = (PFNGLFRAMEBUFFERTEXTURE3DOESPROC)glewGetProcAddress((const GLubyte*)"glFramebufferTexture3DOES")) == NULL) || r; + r = ((glTexImage3DOES = (PFNGLTEXIMAGE3DOESPROC)glewGetProcAddress((const GLubyte*)"glTexImage3DOES")) == NULL) || r; + r = ((glTexSubImage3DOES = (PFNGLTEXSUBIMAGE3DOESPROC)glewGetProcAddress((const GLubyte*)"glTexSubImage3DOES")) == NULL) || r; + + return r; +} + +#endif /* GL_OES_texture_3D */ + +#ifdef GL_OES_texture_border_clamp + +static GLboolean _glewInit_GL_OES_texture_border_clamp () +{ + GLboolean r = GL_FALSE; + + r = ((glGetSamplerParameterIivOES = (PFNGLGETSAMPLERPARAMETERIIVOESPROC)glewGetProcAddress((const GLubyte*)"glGetSamplerParameterIivOES")) == NULL) || r; + r = ((glGetSamplerParameterIuivOES = (PFNGLGETSAMPLERPARAMETERIUIVOESPROC)glewGetProcAddress((const GLubyte*)"glGetSamplerParameterIuivOES")) == NULL) || r; + r = ((glGetTexParameterIivOES = (PFNGLGETTEXPARAMETERIIVOESPROC)glewGetProcAddress((const GLubyte*)"glGetTexParameterIivOES")) == NULL) || r; + r = ((glGetTexParameterIuivOES = (PFNGLGETTEXPARAMETERIUIVOESPROC)glewGetProcAddress((const GLubyte*)"glGetTexParameterIuivOES")) == NULL) || r; + r = ((glSamplerParameterIivOES = (PFNGLSAMPLERPARAMETERIIVOESPROC)glewGetProcAddress((const GLubyte*)"glSamplerParameterIivOES")) == NULL) || r; + r = ((glSamplerParameterIuivOES = (PFNGLSAMPLERPARAMETERIUIVOESPROC)glewGetProcAddress((const GLubyte*)"glSamplerParameterIuivOES")) == NULL) || r; + r = ((glTexParameterIivOES = (PFNGLTEXPARAMETERIIVOESPROC)glewGetProcAddress((const GLubyte*)"glTexParameterIivOES")) == NULL) || r; + r = ((glTexParameterIuivOES = (PFNGLTEXPARAMETERIUIVOESPROC)glewGetProcAddress((const GLubyte*)"glTexParameterIuivOES")) == NULL) || r; + + return r; +} + +#endif /* GL_OES_texture_border_clamp */ + +#ifdef GL_OES_texture_buffer + +static GLboolean _glewInit_GL_OES_texture_buffer () +{ + GLboolean r = GL_FALSE; + + r = ((glTexBufferOES = (PFNGLTEXBUFFEROESPROC)glewGetProcAddress((const GLubyte*)"glTexBufferOES")) == NULL) || r; + r = ((glTexBufferRangeOES = (PFNGLTEXBUFFERRANGEOESPROC)glewGetProcAddress((const GLubyte*)"glTexBufferRangeOES")) == NULL) || r; + + return r; +} + +#endif /* GL_OES_texture_buffer */ + +#ifdef GL_OES_texture_cube_map + +static GLboolean _glewInit_GL_OES_texture_cube_map () +{ + GLboolean r = GL_FALSE; + + r = ((glGetTexGenfvOES = (PFNGLGETTEXGENFVOESPROC)glewGetProcAddress((const GLubyte*)"glGetTexGenfvOES")) == NULL) || r; + r = ((glGetTexGenivOES = (PFNGLGETTEXGENIVOESPROC)glewGetProcAddress((const GLubyte*)"glGetTexGenivOES")) == NULL) || r; + r = ((glGetTexGenxvOES = (PFNGLGETTEXGENXVOESPROC)glewGetProcAddress((const GLubyte*)"glGetTexGenxvOES")) == NULL) || r; + r = ((glTexGenfOES = (PFNGLTEXGENFOESPROC)glewGetProcAddress((const GLubyte*)"glTexGenfOES")) == NULL) || r; + r = ((glTexGenfvOES = (PFNGLTEXGENFVOESPROC)glewGetProcAddress((const GLubyte*)"glTexGenfvOES")) == NULL) || r; + r = ((glTexGeniOES = (PFNGLTEXGENIOESPROC)glewGetProcAddress((const GLubyte*)"glTexGeniOES")) == NULL) || r; + r = ((glTexGenivOES = (PFNGLTEXGENIVOESPROC)glewGetProcAddress((const GLubyte*)"glTexGenivOES")) == NULL) || r; + r = ((glTexGenxOES = (PFNGLTEXGENXOESPROC)glewGetProcAddress((const GLubyte*)"glTexGenxOES")) == NULL) || r; + r = ((glTexGenxvOES = (PFNGLTEXGENXVOESPROC)glewGetProcAddress((const GLubyte*)"glTexGenxvOES")) == NULL) || r; + + return r; +} + +#endif /* GL_OES_texture_cube_map */ + +#ifdef GL_OES_texture_storage_multisample_2d_array + +static GLboolean _glewInit_GL_OES_texture_storage_multisample_2d_array () +{ + GLboolean r = GL_FALSE; + + r = ((glTexStorage3DMultisampleOES = (PFNGLTEXSTORAGE3DMULTISAMPLEOESPROC)glewGetProcAddress((const GLubyte*)"glTexStorage3DMultisampleOES")) == NULL) || r; + + return r; +} + +#endif /* GL_OES_texture_storage_multisample_2d_array */ + +#ifdef GL_OES_texture_view + +static GLboolean _glewInit_GL_OES_texture_view () +{ + GLboolean r = GL_FALSE; + + r = ((glTextureViewOES = (PFNGLTEXTUREVIEWOESPROC)glewGetProcAddress((const GLubyte*)"glTextureViewOES")) == NULL) || r; + + return r; +} + +#endif /* GL_OES_texture_view */ + +#ifdef GL_OES_vertex_array_object + +static GLboolean _glewInit_GL_OES_vertex_array_object () +{ + GLboolean r = GL_FALSE; + + r = ((glBindVertexArrayOES = (PFNGLBINDVERTEXARRAYOESPROC)glewGetProcAddress((const GLubyte*)"glBindVertexArrayOES")) == NULL) || r; + r = ((glDeleteVertexArraysOES = (PFNGLDELETEVERTEXARRAYSOESPROC)glewGetProcAddress((const GLubyte*)"glDeleteVertexArraysOES")) == NULL) || r; + r = ((glGenVertexArraysOES = (PFNGLGENVERTEXARRAYSOESPROC)glewGetProcAddress((const GLubyte*)"glGenVertexArraysOES")) == NULL) || r; + r = ((glIsVertexArrayOES = (PFNGLISVERTEXARRAYOESPROC)glewGetProcAddress((const GLubyte*)"glIsVertexArrayOES")) == NULL) || r; + + return r; +} + +#endif /* GL_OES_vertex_array_object */ + #ifdef GL_OVR_multiview -static GLboolean _glewInit_GL_OVR_multiview (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_OVR_multiview () { GLboolean r = GL_FALSE; r = ((glFramebufferTextureMultiviewOVR = (PFNGLFRAMEBUFFERTEXTUREMULTIVIEWOVRPROC)glewGetProcAddress((const GLubyte*)"glFramebufferTextureMultiviewOVR")) == NULL) || r; + r = ((glNamedFramebufferTextureMultiviewOVR = (PFNGLNAMEDFRAMEBUFFERTEXTUREMULTIVIEWOVRPROC)glewGetProcAddress((const GLubyte*)"glNamedFramebufferTextureMultiviewOVR")) == NULL) || r; return r; } #endif /* GL_OVR_multiview */ +#ifdef GL_OVR_multiview_multisampled_render_to_texture + +static GLboolean _glewInit_GL_OVR_multiview_multisampled_render_to_texture () +{ + GLboolean r = GL_FALSE; + + r = ((glFramebufferTextureMultisampleMultiviewOVR = (PFNGLFRAMEBUFFERTEXTUREMULTISAMPLEMULTIVIEWOVRPROC)glewGetProcAddress((const GLubyte*)"glFramebufferTextureMultisampleMultiviewOVR")) == NULL) || r; + + return r; +} + +#endif /* GL_OVR_multiview_multisampled_render_to_texture */ + +#ifdef GL_QCOM_alpha_test + +static GLboolean _glewInit_GL_QCOM_alpha_test () +{ + GLboolean r = GL_FALSE; + + r = ((glAlphaFuncQCOM = (PFNGLALPHAFUNCQCOMPROC)glewGetProcAddress((const GLubyte*)"glAlphaFuncQCOM")) == NULL) || r; + + return r; +} + +#endif /* GL_QCOM_alpha_test */ + +#ifdef GL_QCOM_driver_control + +static GLboolean _glewInit_GL_QCOM_driver_control () +{ + GLboolean r = GL_FALSE; + + r = ((glDisableDriverControlQCOM = (PFNGLDISABLEDRIVERCONTROLQCOMPROC)glewGetProcAddress((const GLubyte*)"glDisableDriverControlQCOM")) == NULL) || r; + r = ((glEnableDriverControlQCOM = (PFNGLENABLEDRIVERCONTROLQCOMPROC)glewGetProcAddress((const GLubyte*)"glEnableDriverControlQCOM")) == NULL) || r; + r = ((glGetDriverControlStringQCOM = (PFNGLGETDRIVERCONTROLSTRINGQCOMPROC)glewGetProcAddress((const GLubyte*)"glGetDriverControlStringQCOM")) == NULL) || r; + r = ((glGetDriverControlsQCOM = (PFNGLGETDRIVERCONTROLSQCOMPROC)glewGetProcAddress((const GLubyte*)"glGetDriverControlsQCOM")) == NULL) || r; + + return r; +} + +#endif /* GL_QCOM_driver_control */ + +#ifdef GL_QCOM_extended_get + +static GLboolean _glewInit_GL_QCOM_extended_get () +{ + GLboolean r = GL_FALSE; + + r = ((glExtGetBufferPointervQCOM = (PFNGLEXTGETBUFFERPOINTERVQCOMPROC)glewGetProcAddress((const GLubyte*)"glExtGetBufferPointervQCOM")) == NULL) || r; + r = ((glExtGetBuffersQCOM = (PFNGLEXTGETBUFFERSQCOMPROC)glewGetProcAddress((const GLubyte*)"glExtGetBuffersQCOM")) == NULL) || r; + r = ((glExtGetFramebuffersQCOM = (PFNGLEXTGETFRAMEBUFFERSQCOMPROC)glewGetProcAddress((const GLubyte*)"glExtGetFramebuffersQCOM")) == NULL) || r; + r = ((glExtGetRenderbuffersQCOM = (PFNGLEXTGETRENDERBUFFERSQCOMPROC)glewGetProcAddress((const GLubyte*)"glExtGetRenderbuffersQCOM")) == NULL) || r; + r = ((glExtGetTexLevelParameterivQCOM = (PFNGLEXTGETTEXLEVELPARAMETERIVQCOMPROC)glewGetProcAddress((const GLubyte*)"glExtGetTexLevelParameterivQCOM")) == NULL) || r; + r = ((glExtGetTexSubImageQCOM = (PFNGLEXTGETTEXSUBIMAGEQCOMPROC)glewGetProcAddress((const GLubyte*)"glExtGetTexSubImageQCOM")) == NULL) || r; + r = ((glExtGetTexturesQCOM = (PFNGLEXTGETTEXTURESQCOMPROC)glewGetProcAddress((const GLubyte*)"glExtGetTexturesQCOM")) == NULL) || r; + r = ((glExtTexObjectStateOverrideiQCOM = (PFNGLEXTTEXOBJECTSTATEOVERRIDEIQCOMPROC)glewGetProcAddress((const GLubyte*)"glExtTexObjectStateOverrideiQCOM")) == NULL) || r; + + return r; +} + +#endif /* GL_QCOM_extended_get */ + +#ifdef GL_QCOM_extended_get2 + +static GLboolean _glewInit_GL_QCOM_extended_get2 () +{ + GLboolean r = GL_FALSE; + + r = ((glExtGetProgramBinarySourceQCOM = (PFNGLEXTGETPROGRAMBINARYSOURCEQCOMPROC)glewGetProcAddress((const GLubyte*)"glExtGetProgramBinarySourceQCOM")) == NULL) || r; + r = ((glExtGetProgramsQCOM = (PFNGLEXTGETPROGRAMSQCOMPROC)glewGetProcAddress((const GLubyte*)"glExtGetProgramsQCOM")) == NULL) || r; + r = ((glExtGetShadersQCOM = (PFNGLEXTGETSHADERSQCOMPROC)glewGetProcAddress((const GLubyte*)"glExtGetShadersQCOM")) == NULL) || r; + r = ((glExtIsProgramBinaryQCOM = (PFNGLEXTISPROGRAMBINARYQCOMPROC)glewGetProcAddress((const GLubyte*)"glExtIsProgramBinaryQCOM")) == NULL) || r; + + return r; +} + +#endif /* GL_QCOM_extended_get2 */ + +#ifdef GL_QCOM_framebuffer_foveated + +static GLboolean _glewInit_GL_QCOM_framebuffer_foveated () +{ + GLboolean r = GL_FALSE; + + r = ((glFramebufferFoveationConfigQCOM = (PFNGLFRAMEBUFFERFOVEATIONCONFIGQCOMPROC)glewGetProcAddress((const GLubyte*)"glFramebufferFoveationConfigQCOM")) == NULL) || r; + r = ((glFramebufferFoveationParametersQCOM = (PFNGLFRAMEBUFFERFOVEATIONPARAMETERSQCOMPROC)glewGetProcAddress((const GLubyte*)"glFramebufferFoveationParametersQCOM")) == NULL) || r; + + return r; +} + +#endif /* GL_QCOM_framebuffer_foveated */ + +#ifdef GL_QCOM_shader_framebuffer_fetch_noncoherent + +static GLboolean _glewInit_GL_QCOM_shader_framebuffer_fetch_noncoherent () +{ + GLboolean r = GL_FALSE; + + r = ((glFramebufferFetchBarrierQCOM = (PFNGLFRAMEBUFFERFETCHBARRIERQCOMPROC)glewGetProcAddress((const GLubyte*)"glFramebufferFetchBarrierQCOM")) == NULL) || r; + + return r; +} + +#endif /* GL_QCOM_shader_framebuffer_fetch_noncoherent */ + +#ifdef GL_QCOM_texture_foveated + +static GLboolean _glewInit_GL_QCOM_texture_foveated () +{ + GLboolean r = GL_FALSE; + + r = ((glTextureFoveationParametersQCOM = (PFNGLTEXTUREFOVEATIONPARAMETERSQCOMPROC)glewGetProcAddress((const GLubyte*)"glTextureFoveationParametersQCOM")) == NULL) || r; + + return r; +} + +#endif /* GL_QCOM_texture_foveated */ + +#ifdef GL_QCOM_tiled_rendering + +static GLboolean _glewInit_GL_QCOM_tiled_rendering () +{ + GLboolean r = GL_FALSE; + + r = ((glEndTilingQCOM = (PFNGLENDTILINGQCOMPROC)glewGetProcAddress((const GLubyte*)"glEndTilingQCOM")) == NULL) || r; + r = ((glStartTilingQCOM = (PFNGLSTARTTILINGQCOMPROC)glewGetProcAddress((const GLubyte*)"glStartTilingQCOM")) == NULL) || r; + + return r; +} + +#endif /* GL_QCOM_tiled_rendering */ + #ifdef GL_REGAL_ES1_0_compatibility -static GLboolean _glewInit_GL_REGAL_ES1_0_compatibility (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_REGAL_ES1_0_compatibility () { GLboolean r = GL_FALSE; @@ -8821,7 +17251,7 @@ static GLboolean _glewInit_GL_REGAL_ES1_0_compatibility (GLEW_CONTEXT_ARG_DEF_IN #ifdef GL_REGAL_ES1_1_compatibility -static GLboolean _glewInit_GL_REGAL_ES1_1_compatibility (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_REGAL_ES1_1_compatibility () { GLboolean r = GL_FALSE; @@ -8846,7 +17276,7 @@ static GLboolean _glewInit_GL_REGAL_ES1_1_compatibility (GLEW_CONTEXT_ARG_DEF_IN #ifdef GL_REGAL_error_string -static GLboolean _glewInit_GL_REGAL_error_string (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_REGAL_error_string () { GLboolean r = GL_FALSE; @@ -8859,7 +17289,7 @@ static GLboolean _glewInit_GL_REGAL_error_string (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_REGAL_extension_query -static GLboolean _glewInit_GL_REGAL_extension_query (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_REGAL_extension_query () { GLboolean r = GL_FALSE; @@ -8873,7 +17303,7 @@ static GLboolean _glewInit_GL_REGAL_extension_query (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_REGAL_log -static GLboolean _glewInit_GL_REGAL_log (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_REGAL_log () { GLboolean r = GL_FALSE; @@ -8886,7 +17316,7 @@ static GLboolean _glewInit_GL_REGAL_log (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_REGAL_proc_address -static GLboolean _glewInit_GL_REGAL_proc_address (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_REGAL_proc_address () { GLboolean r = GL_FALSE; @@ -8899,7 +17329,7 @@ static GLboolean _glewInit_GL_REGAL_proc_address (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_SGIS_detail_texture -static GLboolean _glewInit_GL_SGIS_detail_texture (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_SGIS_detail_texture () { GLboolean r = GL_FALSE; @@ -8913,7 +17343,7 @@ static GLboolean _glewInit_GL_SGIS_detail_texture (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_SGIS_fog_function -static GLboolean _glewInit_GL_SGIS_fog_function (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_SGIS_fog_function () { GLboolean r = GL_FALSE; @@ -8927,7 +17357,7 @@ static GLboolean _glewInit_GL_SGIS_fog_function (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_SGIS_multisample -static GLboolean _glewInit_GL_SGIS_multisample (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_SGIS_multisample () { GLboolean r = GL_FALSE; @@ -8939,9 +17369,38 @@ static GLboolean _glewInit_GL_SGIS_multisample (GLEW_CONTEXT_ARG_DEF_INIT) #endif /* GL_SGIS_multisample */ +#ifdef GL_SGIS_multitexture + +static GLboolean _glewInit_GL_SGIS_multitexture () +{ + GLboolean r = GL_FALSE; + + r = ((glInterleavedTextureCoordSetsSGIS = (PFNGLINTERLEAVEDTEXTURECOORDSETSSGISPROC)glewGetProcAddress((const GLubyte*)"glInterleavedTextureCoordSetsSGIS")) == NULL) || r; + r = ((glSelectTextureCoordSetSGIS = (PFNGLSELECTTEXTURECOORDSETSGISPROC)glewGetProcAddress((const GLubyte*)"glSelectTextureCoordSetSGIS")) == NULL) || r; + r = ((glSelectTextureSGIS = (PFNGLSELECTTEXTURESGISPROC)glewGetProcAddress((const GLubyte*)"glSelectTextureSGIS")) == NULL) || r; + r = ((glSelectTextureTransformSGIS = (PFNGLSELECTTEXTURETRANSFORMSGISPROC)glewGetProcAddress((const GLubyte*)"glSelectTextureTransformSGIS")) == NULL) || r; + + return r; +} + +#endif /* GL_SGIS_multitexture */ + +#ifdef GL_SGIS_shared_multisample + +static GLboolean _glewInit_GL_SGIS_shared_multisample () +{ + GLboolean r = GL_FALSE; + + r = ((glMultisampleSubRectPosSGIS = (PFNGLMULTISAMPLESUBRECTPOSSGISPROC)glewGetProcAddress((const GLubyte*)"glMultisampleSubRectPosSGIS")) == NULL) || r; + + return r; +} + +#endif /* GL_SGIS_shared_multisample */ + #ifdef GL_SGIS_sharpen_texture -static GLboolean _glewInit_GL_SGIS_sharpen_texture (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_SGIS_sharpen_texture () { GLboolean r = GL_FALSE; @@ -8955,7 +17414,7 @@ static GLboolean _glewInit_GL_SGIS_sharpen_texture (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_SGIS_texture4D -static GLboolean _glewInit_GL_SGIS_texture4D (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_SGIS_texture4D () { GLboolean r = GL_FALSE; @@ -8969,7 +17428,7 @@ static GLboolean _glewInit_GL_SGIS_texture4D (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_SGIS_texture_filter4 -static GLboolean _glewInit_GL_SGIS_texture_filter4 (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_SGIS_texture_filter4 () { GLboolean r = GL_FALSE; @@ -8983,7 +17442,7 @@ static GLboolean _glewInit_GL_SGIS_texture_filter4 (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_SGIX_async -static GLboolean _glewInit_GL_SGIX_async (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_SGIX_async () { GLboolean r = GL_FALSE; @@ -8999,9 +17458,23 @@ static GLboolean _glewInit_GL_SGIX_async (GLEW_CONTEXT_ARG_DEF_INIT) #endif /* GL_SGIX_async */ +#ifdef GL_SGIX_datapipe + +static GLboolean _glewInit_GL_SGIX_datapipe () +{ + GLboolean r = GL_FALSE; + + r = ((glAddressSpace = (PFNGLADDRESSSPACEPROC)glewGetProcAddress((const GLubyte*)"glAddressSpace")) == NULL) || r; + r = ((glDataPipe = (PFNGLDATAPIPEPROC)glewGetProcAddress((const GLubyte*)"glDataPipe")) == NULL) || r; + + return r; +} + +#endif /* GL_SGIX_datapipe */ + #ifdef GL_SGIX_flush_raster -static GLboolean _glewInit_GL_SGIX_flush_raster (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_SGIX_flush_raster () { GLboolean r = GL_FALSE; @@ -9012,9 +17485,23 @@ static GLboolean _glewInit_GL_SGIX_flush_raster (GLEW_CONTEXT_ARG_DEF_INIT) #endif /* GL_SGIX_flush_raster */ +#ifdef GL_SGIX_fog_layers + +static GLboolean _glewInit_GL_SGIX_fog_layers () +{ + GLboolean r = GL_FALSE; + + r = ((glFogLayersSGIX = (PFNGLFOGLAYERSSGIXPROC)glewGetProcAddress((const GLubyte*)"glFogLayersSGIX")) == NULL) || r; + r = ((glGetFogLayersSGIX = (PFNGLGETFOGLAYERSSGIXPROC)glewGetProcAddress((const GLubyte*)"glGetFogLayersSGIX")) == NULL) || r; + + return r; +} + +#endif /* GL_SGIX_fog_layers */ + #ifdef GL_SGIX_fog_texture -static GLboolean _glewInit_GL_SGIX_fog_texture (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_SGIX_fog_texture () { GLboolean r = GL_FALSE; @@ -9027,7 +17514,7 @@ static GLboolean _glewInit_GL_SGIX_fog_texture (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_SGIX_fragment_specular_lighting -static GLboolean _glewInit_GL_SGIX_fragment_specular_lighting (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_SGIX_fragment_specular_lighting () { GLboolean r = GL_FALSE; @@ -9056,7 +17543,7 @@ static GLboolean _glewInit_GL_SGIX_fragment_specular_lighting (GLEW_CONTEXT_ARG_ #ifdef GL_SGIX_framezoom -static GLboolean _glewInit_GL_SGIX_framezoom (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_SGIX_framezoom () { GLboolean r = GL_FALSE; @@ -9067,9 +17554,61 @@ static GLboolean _glewInit_GL_SGIX_framezoom (GLEW_CONTEXT_ARG_DEF_INIT) #endif /* GL_SGIX_framezoom */ +#ifdef GL_SGIX_igloo_interface + +static GLboolean _glewInit_GL_SGIX_igloo_interface () +{ + GLboolean r = GL_FALSE; + + r = ((glIglooInterfaceSGIX = (PFNGLIGLOOINTERFACESGIXPROC)glewGetProcAddress((const GLubyte*)"glIglooInterfaceSGIX")) == NULL) || r; + + return r; +} + +#endif /* GL_SGIX_igloo_interface */ + +#ifdef GL_SGIX_mpeg1 + +static GLboolean _glewInit_GL_SGIX_mpeg1 () +{ + GLboolean r = GL_FALSE; + + r = ((glAllocMPEGPredictorsSGIX = (PFNGLALLOCMPEGPREDICTORSSGIXPROC)glewGetProcAddress((const GLubyte*)"glAllocMPEGPredictorsSGIX")) == NULL) || r; + r = ((glDeleteMPEGPredictorsSGIX = (PFNGLDELETEMPEGPREDICTORSSGIXPROC)glewGetProcAddress((const GLubyte*)"glDeleteMPEGPredictorsSGIX")) == NULL) || r; + r = ((glGenMPEGPredictorsSGIX = (PFNGLGENMPEGPREDICTORSSGIXPROC)glewGetProcAddress((const GLubyte*)"glGenMPEGPredictorsSGIX")) == NULL) || r; + r = ((glGetMPEGParameterfvSGIX = (PFNGLGETMPEGPARAMETERFVSGIXPROC)glewGetProcAddress((const GLubyte*)"glGetMPEGParameterfvSGIX")) == NULL) || r; + r = ((glGetMPEGParameterivSGIX = (PFNGLGETMPEGPARAMETERIVSGIXPROC)glewGetProcAddress((const GLubyte*)"glGetMPEGParameterivSGIX")) == NULL) || r; + r = ((glGetMPEGPredictorSGIX = (PFNGLGETMPEGPREDICTORSGIXPROC)glewGetProcAddress((const GLubyte*)"glGetMPEGPredictorSGIX")) == NULL) || r; + r = ((glGetMPEGQuantTableubv = (PFNGLGETMPEGQUANTTABLEUBVPROC)glewGetProcAddress((const GLubyte*)"glGetMPEGQuantTableubv")) == NULL) || r; + r = ((glIsMPEGPredictorSGIX = (PFNGLISMPEGPREDICTORSGIXPROC)glewGetProcAddress((const GLubyte*)"glIsMPEGPredictorSGIX")) == NULL) || r; + r = ((glMPEGPredictorSGIX = (PFNGLMPEGPREDICTORSGIXPROC)glewGetProcAddress((const GLubyte*)"glMPEGPredictorSGIX")) == NULL) || r; + r = ((glMPEGQuantTableubv = (PFNGLMPEGQUANTTABLEUBVPROC)glewGetProcAddress((const GLubyte*)"glMPEGQuantTableubv")) == NULL) || r; + r = ((glSwapMPEGPredictorsSGIX = (PFNGLSWAPMPEGPREDICTORSSGIXPROC)glewGetProcAddress((const GLubyte*)"glSwapMPEGPredictorsSGIX")) == NULL) || r; + + return r; +} + +#endif /* GL_SGIX_mpeg1 */ + +#ifdef GL_SGIX_nonlinear_lighting_pervertex + +static GLboolean _glewInit_GL_SGIX_nonlinear_lighting_pervertex () +{ + GLboolean r = GL_FALSE; + + r = ((glGetNonlinLightfvSGIX = (PFNGLGETNONLINLIGHTFVSGIXPROC)glewGetProcAddress((const GLubyte*)"glGetNonlinLightfvSGIX")) == NULL) || r; + r = ((glGetNonlinMaterialfvSGIX = (PFNGLGETNONLINMATERIALFVSGIXPROC)glewGetProcAddress((const GLubyte*)"glGetNonlinMaterialfvSGIX")) == NULL) || r; + r = ((glNonlinLightfvSGIX = (PFNGLNONLINLIGHTFVSGIXPROC)glewGetProcAddress((const GLubyte*)"glNonlinLightfvSGIX")) == NULL) || r; + r = ((glNonlinMaterialfvSGIX = (PFNGLNONLINMATERIALFVSGIXPROC)glewGetProcAddress((const GLubyte*)"glNonlinMaterialfvSGIX")) == NULL) || r; + + return r; +} + +#endif /* GL_SGIX_nonlinear_lighting_pervertex */ + #ifdef GL_SGIX_pixel_texture -static GLboolean _glewInit_GL_SGIX_pixel_texture (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_SGIX_pixel_texture () { GLboolean r = GL_FALSE; @@ -9080,9 +17619,37 @@ static GLboolean _glewInit_GL_SGIX_pixel_texture (GLEW_CONTEXT_ARG_DEF_INIT) #endif /* GL_SGIX_pixel_texture */ +#ifdef GL_SGIX_polynomial_ffd + +static GLboolean _glewInit_GL_SGIX_polynomial_ffd () +{ + GLboolean r = GL_FALSE; + + r = ((glDeformSGIX = (PFNGLDEFORMSGIXPROC)glewGetProcAddress((const GLubyte*)"glDeformSGIX")) == NULL) || r; + r = ((glLoadIdentityDeformationMapSGIX = (PFNGLLOADIDENTITYDEFORMATIONMAPSGIXPROC)glewGetProcAddress((const GLubyte*)"glLoadIdentityDeformationMapSGIX")) == NULL) || r; + + return r; +} + +#endif /* GL_SGIX_polynomial_ffd */ + +#ifdef GL_SGIX_quad_mesh + +static GLboolean _glewInit_GL_SGIX_quad_mesh () +{ + GLboolean r = GL_FALSE; + + r = ((glMeshBreadthSGIX = (PFNGLMESHBREADTHSGIXPROC)glewGetProcAddress((const GLubyte*)"glMeshBreadthSGIX")) == NULL) || r; + r = ((glMeshStrideSGIX = (PFNGLMESHSTRIDESGIXPROC)glewGetProcAddress((const GLubyte*)"glMeshStrideSGIX")) == NULL) || r; + + return r; +} + +#endif /* GL_SGIX_quad_mesh */ + #ifdef GL_SGIX_reference_plane -static GLboolean _glewInit_GL_SGIX_reference_plane (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_SGIX_reference_plane () { GLboolean r = GL_FALSE; @@ -9095,7 +17662,7 @@ static GLboolean _glewInit_GL_SGIX_reference_plane (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_SGIX_sprite -static GLboolean _glewInit_GL_SGIX_sprite (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_SGIX_sprite () { GLboolean r = GL_FALSE; @@ -9111,7 +17678,7 @@ static GLboolean _glewInit_GL_SGIX_sprite (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_SGIX_tag_sample_buffer -static GLboolean _glewInit_GL_SGIX_tag_sample_buffer (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_SGIX_tag_sample_buffer () { GLboolean r = GL_FALSE; @@ -9122,9 +17689,41 @@ static GLboolean _glewInit_GL_SGIX_tag_sample_buffer (GLEW_CONTEXT_ARG_DEF_INIT) #endif /* GL_SGIX_tag_sample_buffer */ +#ifdef GL_SGIX_vector_ops + +static GLboolean _glewInit_GL_SGIX_vector_ops () +{ + GLboolean r = GL_FALSE; + + r = ((glGetVectorOperationSGIX = (PFNGLGETVECTOROPERATIONSGIXPROC)glewGetProcAddress((const GLubyte*)"glGetVectorOperationSGIX")) == NULL) || r; + r = ((glVectorOperationSGIX = (PFNGLVECTOROPERATIONSGIXPROC)glewGetProcAddress((const GLubyte*)"glVectorOperationSGIX")) == NULL) || r; + + return r; +} + +#endif /* GL_SGIX_vector_ops */ + +#ifdef GL_SGIX_vertex_array_object + +static GLboolean _glewInit_GL_SGIX_vertex_array_object () +{ + GLboolean r = GL_FALSE; + + r = ((glAreVertexArraysResidentSGIX = (PFNGLAREVERTEXARRAYSRESIDENTSGIXPROC)glewGetProcAddress((const GLubyte*)"glAreVertexArraysResidentSGIX")) == NULL) || r; + r = ((glBindVertexArraySGIX = (PFNGLBINDVERTEXARRAYSGIXPROC)glewGetProcAddress((const GLubyte*)"glBindVertexArraySGIX")) == NULL) || r; + r = ((glDeleteVertexArraysSGIX = (PFNGLDELETEVERTEXARRAYSSGIXPROC)glewGetProcAddress((const GLubyte*)"glDeleteVertexArraysSGIX")) == NULL) || r; + r = ((glGenVertexArraysSGIX = (PFNGLGENVERTEXARRAYSSGIXPROC)glewGetProcAddress((const GLubyte*)"glGenVertexArraysSGIX")) == NULL) || r; + r = ((glIsVertexArraySGIX = (PFNGLISVERTEXARRAYSGIXPROC)glewGetProcAddress((const GLubyte*)"glIsVertexArraySGIX")) == NULL) || r; + r = ((glPrioritizeVertexArraysSGIX = (PFNGLPRIORITIZEVERTEXARRAYSSGIXPROC)glewGetProcAddress((const GLubyte*)"glPrioritizeVertexArraysSGIX")) == NULL) || r; + + return r; +} + +#endif /* GL_SGIX_vertex_array_object */ + #ifdef GL_SGI_color_table -static GLboolean _glewInit_GL_SGI_color_table (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_SGI_color_table () { GLboolean r = GL_FALSE; @@ -9141,9 +17740,28 @@ static GLboolean _glewInit_GL_SGI_color_table (GLEW_CONTEXT_ARG_DEF_INIT) #endif /* GL_SGI_color_table */ +#ifdef GL_SGI_fft + +static GLboolean _glewInit_GL_SGI_fft () +{ + GLboolean r = GL_FALSE; + + r = ((glGetPixelTransformParameterfvSGI = (PFNGLGETPIXELTRANSFORMPARAMETERFVSGIPROC)glewGetProcAddress((const GLubyte*)"glGetPixelTransformParameterfvSGI")) == NULL) || r; + r = ((glGetPixelTransformParameterivSGI = (PFNGLGETPIXELTRANSFORMPARAMETERIVSGIPROC)glewGetProcAddress((const GLubyte*)"glGetPixelTransformParameterivSGI")) == NULL) || r; + r = ((glPixelTransformParameterfSGI = (PFNGLPIXELTRANSFORMPARAMETERFSGIPROC)glewGetProcAddress((const GLubyte*)"glPixelTransformParameterfSGI")) == NULL) || r; + r = ((glPixelTransformParameterfvSGI = (PFNGLPIXELTRANSFORMPARAMETERFVSGIPROC)glewGetProcAddress((const GLubyte*)"glPixelTransformParameterfvSGI")) == NULL) || r; + r = ((glPixelTransformParameteriSGI = (PFNGLPIXELTRANSFORMPARAMETERISGIPROC)glewGetProcAddress((const GLubyte*)"glPixelTransformParameteriSGI")) == NULL) || r; + r = ((glPixelTransformParameterivSGI = (PFNGLPIXELTRANSFORMPARAMETERIVSGIPROC)glewGetProcAddress((const GLubyte*)"glPixelTransformParameterivSGI")) == NULL) || r; + r = ((glPixelTransformSGI = (PFNGLPIXELTRANSFORMSGIPROC)glewGetProcAddress((const GLubyte*)"glPixelTransformSGI")) == NULL) || r; + + return r; +} + +#endif /* GL_SGI_fft */ + #ifdef GL_SUNX_constant_data -static GLboolean _glewInit_GL_SUNX_constant_data (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_SUNX_constant_data () { GLboolean r = GL_FALSE; @@ -9156,7 +17774,7 @@ static GLboolean _glewInit_GL_SUNX_constant_data (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_SUN_global_alpha -static GLboolean _glewInit_GL_SUN_global_alpha (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_SUN_global_alpha () { GLboolean r = GL_FALSE; @@ -9176,7 +17794,7 @@ static GLboolean _glewInit_GL_SUN_global_alpha (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_SUN_read_video_pixels -static GLboolean _glewInit_GL_SUN_read_video_pixels (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_SUN_read_video_pixels () { GLboolean r = GL_FALSE; @@ -9189,7 +17807,7 @@ static GLboolean _glewInit_GL_SUN_read_video_pixels (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_SUN_triangle_list -static GLboolean _glewInit_GL_SUN_triangle_list (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_SUN_triangle_list () { GLboolean r = GL_FALSE; @@ -9208,7 +17826,7 @@ static GLboolean _glewInit_GL_SUN_triangle_list (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_SUN_vertex -static GLboolean _glewInit_GL_SUN_vertex (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_SUN_vertex () { GLboolean r = GL_FALSE; @@ -9260,7 +17878,7 @@ static GLboolean _glewInit_GL_SUN_vertex (GLEW_CONTEXT_ARG_DEF_INIT) #ifdef GL_WIN_swap_hint -static GLboolean _glewInit_GL_WIN_swap_hint (GLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GL_WIN_swap_hint () { GLboolean r = GL_FALSE; @@ -9273,35 +17891,100 @@ static GLboolean _glewInit_GL_WIN_swap_hint (GLEW_CONTEXT_ARG_DEF_INIT) /* ------------------------------------------------------------------------- */ +static int _glewExtensionCompare(const char *s1, const char *s2) +{ + /* http://www.chanduthedev.com/2012/07/strcmp-implementation-in-c.html */ + while (*s1 || *s2) + { + if (*s1 > *s2) + return 1; + if (*s1 < *s2) + return -1; + s1++; + s2++; + } + return 0; +} + +static ptrdiff_t _glewBsearchExtension(const char* name) +{ + ptrdiff_t lo = 0, hi = sizeof(_glewExtensionLookup) / sizeof(char*) - 2; + + while (lo <= hi) + { + ptrdiff_t mid = (lo + hi) / 2; + const int cmp = _glewExtensionCompare(name, _glewExtensionLookup[mid]); + if (cmp < 0) hi = mid - 1; + else if (cmp > 0) lo = mid + 1; + else return mid; + } + return -1; +} + +static GLboolean *_glewGetExtensionString(const char *name) +{ + ptrdiff_t n = _glewBsearchExtension(name); + if (n >= 0) return &_glewExtensionString[n]; + return NULL; +} + +static GLboolean *_glewGetExtensionEnable(const char *name) +{ + ptrdiff_t n = _glewBsearchExtension(name); + if (n >= 0) return _glewExtensionEnabled[n]; + return NULL; +} + +static const char *_glewNextSpace(const char *i) +{ + const char *j = i; + if (j) + while (*j!=' ' && *j) ++j; + return j; +} + +static const char *_glewNextNonSpace(const char *i) +{ + const char *j = i; + if (j) + while (*j==' ') ++j; + return j; +} + GLboolean GLEWAPIENTRY glewGetExtension (const char* name) -{ - const GLubyte* start; - const GLubyte* end; - start = (const GLubyte*)glGetString(GL_EXTENSIONS); - if (start == 0) - return GL_FALSE; - end = start + _glewStrLen(start); - return _glewSearchExtension(name, start, end); +{ + GLboolean *enable = _glewGetExtensionString(name); + if (enable) + return *enable; + return GL_FALSE; } /* ------------------------------------------------------------------------- */ -#ifndef GLEW_MX -static -#endif -GLenum GLEWAPIENTRY glewContextInit (GLEW_CONTEXT_ARG_DEF_LIST) +typedef const GLubyte* (GLAPIENTRY * PFNGLGETSTRINGPROC) (GLenum name); +typedef void (GLAPIENTRY * PFNGLGETINTEGERVPROC) (GLenum pname, GLint *params); + +static GLenum GLEWAPIENTRY glewContextInit () { + PFNGLGETSTRINGPROC getString; const GLubyte* s; GLuint dot; GLint major, minor; - const GLubyte* extStart; - const GLubyte* extEnd; + + #ifdef _WIN32 + getString = glGetString; + #else + getString = (PFNGLGETSTRINGPROC) glewGetProcAddress((const GLubyte*)"glGetString"); + if (!getString) + return GLEW_ERROR_NO_GL_VERSION; + #endif + /* query opengl version */ - s = glGetString(GL_VERSION); + s = getString(GL_VERSION); dot = _glewStrCLen(s, '.'); if (dot == 0) return GLEW_ERROR_NO_GL_VERSION; - + major = s[dot-1]-'0'; minor = s[dot+1]-'0'; @@ -9309,7 +17992,6 @@ GLenum GLEWAPIENTRY glewContextInit (GLEW_CONTEXT_ARG_DEF_LIST) minor = 0; if (major<0 || major>9) return GLEW_ERROR_NO_GL_VERSION; - if (major == 1 && minor == 0) { @@ -9317,7 +17999,8 @@ GLenum GLEWAPIENTRY glewContextInit (GLEW_CONTEXT_ARG_DEF_LIST) } else { - GLEW_VERSION_4_5 = ( major > 4 ) || ( major == 4 && minor >= 5 ) ? GL_TRUE : GL_FALSE; + GLEW_VERSION_4_6 = ( major > 4 ) || ( major == 4 && minor >= 6 ) ? GL_TRUE : GL_FALSE; + GLEW_VERSION_4_5 = GLEW_VERSION_4_6 == GL_TRUE || ( major == 4 && minor >= 5 ) ? GL_TRUE : GL_FALSE; GLEW_VERSION_4_4 = GLEW_VERSION_4_5 == GL_TRUE || ( major == 4 && minor >= 4 ) ? GL_TRUE : GL_FALSE; GLEW_VERSION_4_3 = GLEW_VERSION_4_4 == GL_TRUE || ( major == 4 && minor >= 3 ) ? GL_TRUE : GL_FALSE; GLEW_VERSION_4_2 = GLEW_VERSION_4_3 == GL_TRUE || ( major == 4 && minor >= 2 ) ? GL_TRUE : GL_FALSE; @@ -9327,2047 +18010,3026 @@ GLenum GLEWAPIENTRY glewContextInit (GLEW_CONTEXT_ARG_DEF_LIST) GLEW_VERSION_3_2 = GLEW_VERSION_3_3 == GL_TRUE || ( major == 3 && minor >= 2 ) ? GL_TRUE : GL_FALSE; GLEW_VERSION_3_1 = GLEW_VERSION_3_2 == GL_TRUE || ( major == 3 && minor >= 1 ) ? GL_TRUE : GL_FALSE; GLEW_VERSION_3_0 = GLEW_VERSION_3_1 == GL_TRUE || ( major == 3 ) ? GL_TRUE : GL_FALSE; - GLEW_VERSION_2_1 = GLEW_VERSION_3_0 == GL_TRUE || ( major == 2 && minor >= 1 ) ? GL_TRUE : GL_FALSE; + GLEW_VERSION_2_1 = GLEW_VERSION_3_0 == GL_TRUE || ( major == 2 && minor >= 1 ) ? GL_TRUE : GL_FALSE; GLEW_VERSION_2_0 = GLEW_VERSION_2_1 == GL_TRUE || ( major == 2 ) ? GL_TRUE : GL_FALSE; GLEW_VERSION_1_5 = GLEW_VERSION_2_0 == GL_TRUE || ( major == 1 && minor >= 5 ) ? GL_TRUE : GL_FALSE; GLEW_VERSION_1_4 = GLEW_VERSION_1_5 == GL_TRUE || ( major == 1 && minor >= 4 ) ? GL_TRUE : GL_FALSE; GLEW_VERSION_1_3 = GLEW_VERSION_1_4 == GL_TRUE || ( major == 1 && minor >= 3 ) ? GL_TRUE : GL_FALSE; - GLEW_VERSION_1_2_1 = GLEW_VERSION_1_3 == GL_TRUE ? GL_TRUE : GL_FALSE; + GLEW_VERSION_1_2_1 = GLEW_VERSION_1_3 == GL_TRUE ? GL_TRUE : GL_FALSE; GLEW_VERSION_1_2 = GLEW_VERSION_1_2_1 == GL_TRUE || ( major == 1 && minor >= 2 ) ? GL_TRUE : GL_FALSE; GLEW_VERSION_1_1 = GLEW_VERSION_1_2 == GL_TRUE || ( major == 1 && minor >= 1 ) ? GL_TRUE : GL_FALSE; } - /* query opengl extensions string */ - extStart = glGetString(GL_EXTENSIONS); - if (extStart == 0) - extStart = (const GLubyte*)""; - extEnd = extStart + _glewStrLen(extStart); + { + size_t i; + for (i = 0; i < sizeof(_glewExtensionString) / sizeof(_glewExtensionString[0]); ++i) + _glewExtensionString[i] = GL_FALSE; + } - /* initialize extensions */ + if (GLEW_VERSION_3_0) + { + GLint n = 0; + GLint i; + PFNGLGETINTEGERVPROC getIntegerv; + PFNGLGETSTRINGIPROC getStringi; + const char *ext; + GLboolean *enable; + + #ifdef _WIN32 + getIntegerv = glGetIntegerv; + #else + getIntegerv = (PFNGLGETINTEGERVPROC) glewGetProcAddress((const GLubyte*)"glGetIntegerv"); + #endif + + if (getIntegerv) + getIntegerv(GL_NUM_EXTENSIONS, &n); + + /* glGetStringi is OpenGL 3.0 */ + getStringi = (PFNGLGETSTRINGIPROC) glewGetProcAddress((const GLubyte*)"glGetStringi"); + if (getStringi) + for (i = 0; i= (ptrdiff_t) sizeof(ext)) + continue; + _glewStrCopy(ext, i, ' '); + + /* Based on extension string(s), glewGetExtension purposes */ + enable = _glewGetExtensionString(ext); + if (enable) + *enable = GL_TRUE; + + /* Based on extension string(s), experimental mode, glewIsSupported purposes */ + enable = _glewGetExtensionEnable(ext); + if (enable) + *enable = GL_TRUE; + } + } + } #ifdef GL_VERSION_1_2 - if (glewExperimental || GLEW_VERSION_1_2) GLEW_VERSION_1_2 = !_glewInit_GL_VERSION_1_2(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_VERSION_1_2) GLEW_VERSION_1_2 = !_glewInit_GL_VERSION_1_2(); #endif /* GL_VERSION_1_2 */ -#ifdef GL_VERSION_1_2_1 -#endif /* GL_VERSION_1_2_1 */ #ifdef GL_VERSION_1_3 - if (glewExperimental || GLEW_VERSION_1_3) GLEW_VERSION_1_3 = !_glewInit_GL_VERSION_1_3(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_VERSION_1_3) GLEW_VERSION_1_3 = !_glewInit_GL_VERSION_1_3(); #endif /* GL_VERSION_1_3 */ #ifdef GL_VERSION_1_4 - if (glewExperimental || GLEW_VERSION_1_4) GLEW_VERSION_1_4 = !_glewInit_GL_VERSION_1_4(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_VERSION_1_4) GLEW_VERSION_1_4 = !_glewInit_GL_VERSION_1_4(); #endif /* GL_VERSION_1_4 */ #ifdef GL_VERSION_1_5 - if (glewExperimental || GLEW_VERSION_1_5) GLEW_VERSION_1_5 = !_glewInit_GL_VERSION_1_5(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_VERSION_1_5) GLEW_VERSION_1_5 = !_glewInit_GL_VERSION_1_5(); #endif /* GL_VERSION_1_5 */ #ifdef GL_VERSION_2_0 - if (glewExperimental || GLEW_VERSION_2_0) GLEW_VERSION_2_0 = !_glewInit_GL_VERSION_2_0(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_VERSION_2_0) GLEW_VERSION_2_0 = !_glewInit_GL_VERSION_2_0(); #endif /* GL_VERSION_2_0 */ #ifdef GL_VERSION_2_1 - if (glewExperimental || GLEW_VERSION_2_1) GLEW_VERSION_2_1 = !_glewInit_GL_VERSION_2_1(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_VERSION_2_1) GLEW_VERSION_2_1 = !_glewInit_GL_VERSION_2_1(); #endif /* GL_VERSION_2_1 */ #ifdef GL_VERSION_3_0 - if (glewExperimental || GLEW_VERSION_3_0) GLEW_VERSION_3_0 = !_glewInit_GL_VERSION_3_0(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_VERSION_3_0) GLEW_VERSION_3_0 = !_glewInit_GL_VERSION_3_0(); #endif /* GL_VERSION_3_0 */ #ifdef GL_VERSION_3_1 - if (glewExperimental || GLEW_VERSION_3_1) GLEW_VERSION_3_1 = !_glewInit_GL_VERSION_3_1(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_VERSION_3_1) GLEW_VERSION_3_1 = !_glewInit_GL_VERSION_3_1(); #endif /* GL_VERSION_3_1 */ #ifdef GL_VERSION_3_2 - if (glewExperimental || GLEW_VERSION_3_2) GLEW_VERSION_3_2 = !_glewInit_GL_VERSION_3_2(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_VERSION_3_2) GLEW_VERSION_3_2 = !_glewInit_GL_VERSION_3_2(); #endif /* GL_VERSION_3_2 */ #ifdef GL_VERSION_3_3 - if (glewExperimental || GLEW_VERSION_3_3) GLEW_VERSION_3_3 = !_glewInit_GL_VERSION_3_3(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_VERSION_3_3) GLEW_VERSION_3_3 = !_glewInit_GL_VERSION_3_3(); #endif /* GL_VERSION_3_3 */ #ifdef GL_VERSION_4_0 - if (glewExperimental || GLEW_VERSION_4_0) GLEW_VERSION_4_0 = !_glewInit_GL_VERSION_4_0(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_VERSION_4_0) GLEW_VERSION_4_0 = !_glewInit_GL_VERSION_4_0(); #endif /* GL_VERSION_4_0 */ -#ifdef GL_VERSION_4_1 -#endif /* GL_VERSION_4_1 */ -#ifdef GL_VERSION_4_2 -#endif /* GL_VERSION_4_2 */ -#ifdef GL_VERSION_4_3 -#endif /* GL_VERSION_4_3 */ -#ifdef GL_VERSION_4_4 -#endif /* GL_VERSION_4_4 */ #ifdef GL_VERSION_4_5 - if (glewExperimental || GLEW_VERSION_4_5) GLEW_VERSION_4_5 = !_glewInit_GL_VERSION_4_5(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_VERSION_4_5) GLEW_VERSION_4_5 = !_glewInit_GL_VERSION_4_5(); #endif /* GL_VERSION_4_5 */ -#ifdef GL_3DFX_multisample - GLEW_3DFX_multisample = _glewSearchExtension("GL_3DFX_multisample", extStart, extEnd); -#endif /* GL_3DFX_multisample */ +#ifdef GL_VERSION_4_6 + if (glewExperimental || GLEW_VERSION_4_6) GLEW_VERSION_4_6 = !_glewInit_GL_VERSION_4_6(); +#endif /* GL_VERSION_4_6 */ #ifdef GL_3DFX_tbuffer - GLEW_3DFX_tbuffer = _glewSearchExtension("GL_3DFX_tbuffer", extStart, extEnd); - if (glewExperimental || GLEW_3DFX_tbuffer) GLEW_3DFX_tbuffer = !_glewInit_GL_3DFX_tbuffer(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_3DFX_tbuffer) GLEW_3DFX_tbuffer = !_glewInit_GL_3DFX_tbuffer(); #endif /* GL_3DFX_tbuffer */ -#ifdef GL_3DFX_texture_compression_FXT1 - GLEW_3DFX_texture_compression_FXT1 = _glewSearchExtension("GL_3DFX_texture_compression_FXT1", extStart, extEnd); -#endif /* GL_3DFX_texture_compression_FXT1 */ -#ifdef GL_AMD_blend_minmax_factor - GLEW_AMD_blend_minmax_factor = _glewSearchExtension("GL_AMD_blend_minmax_factor", extStart, extEnd); -#endif /* GL_AMD_blend_minmax_factor */ -#ifdef GL_AMD_conservative_depth - GLEW_AMD_conservative_depth = _glewSearchExtension("GL_AMD_conservative_depth", extStart, extEnd); -#endif /* GL_AMD_conservative_depth */ #ifdef GL_AMD_debug_output - GLEW_AMD_debug_output = _glewSearchExtension("GL_AMD_debug_output", extStart, extEnd); - if (glewExperimental || GLEW_AMD_debug_output) GLEW_AMD_debug_output = !_glewInit_GL_AMD_debug_output(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_AMD_debug_output) GLEW_AMD_debug_output = !_glewInit_GL_AMD_debug_output(); #endif /* GL_AMD_debug_output */ -#ifdef GL_AMD_depth_clamp_separate - GLEW_AMD_depth_clamp_separate = _glewSearchExtension("GL_AMD_depth_clamp_separate", extStart, extEnd); -#endif /* GL_AMD_depth_clamp_separate */ #ifdef GL_AMD_draw_buffers_blend - GLEW_AMD_draw_buffers_blend = _glewSearchExtension("GL_AMD_draw_buffers_blend", extStart, extEnd); - if (glewExperimental || GLEW_AMD_draw_buffers_blend) GLEW_AMD_draw_buffers_blend = !_glewInit_GL_AMD_draw_buffers_blend(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_AMD_draw_buffers_blend) GLEW_AMD_draw_buffers_blend = !_glewInit_GL_AMD_draw_buffers_blend(); #endif /* GL_AMD_draw_buffers_blend */ -#ifdef GL_AMD_gcn_shader - GLEW_AMD_gcn_shader = _glewSearchExtension("GL_AMD_gcn_shader", extStart, extEnd); -#endif /* GL_AMD_gcn_shader */ -#ifdef GL_AMD_gpu_shader_int64 - GLEW_AMD_gpu_shader_int64 = _glewSearchExtension("GL_AMD_gpu_shader_int64", extStart, extEnd); -#endif /* GL_AMD_gpu_shader_int64 */ +#ifdef GL_AMD_framebuffer_multisample_advanced + if (glewExperimental || GLEW_AMD_framebuffer_multisample_advanced) GLEW_AMD_framebuffer_multisample_advanced = !_glewInit_GL_AMD_framebuffer_multisample_advanced(); +#endif /* GL_AMD_framebuffer_multisample_advanced */ +#ifdef GL_AMD_framebuffer_sample_positions + if (glewExperimental || GLEW_AMD_framebuffer_sample_positions) GLEW_AMD_framebuffer_sample_positions = !_glewInit_GL_AMD_framebuffer_sample_positions(); +#endif /* GL_AMD_framebuffer_sample_positions */ #ifdef GL_AMD_interleaved_elements - GLEW_AMD_interleaved_elements = _glewSearchExtension("GL_AMD_interleaved_elements", extStart, extEnd); - if (glewExperimental || GLEW_AMD_interleaved_elements) GLEW_AMD_interleaved_elements = !_glewInit_GL_AMD_interleaved_elements(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_AMD_interleaved_elements) GLEW_AMD_interleaved_elements = !_glewInit_GL_AMD_interleaved_elements(); #endif /* GL_AMD_interleaved_elements */ #ifdef GL_AMD_multi_draw_indirect - GLEW_AMD_multi_draw_indirect = _glewSearchExtension("GL_AMD_multi_draw_indirect", extStart, extEnd); - if (glewExperimental || GLEW_AMD_multi_draw_indirect) GLEW_AMD_multi_draw_indirect = !_glewInit_GL_AMD_multi_draw_indirect(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_AMD_multi_draw_indirect) GLEW_AMD_multi_draw_indirect = !_glewInit_GL_AMD_multi_draw_indirect(); #endif /* GL_AMD_multi_draw_indirect */ #ifdef GL_AMD_name_gen_delete - GLEW_AMD_name_gen_delete = _glewSearchExtension("GL_AMD_name_gen_delete", extStart, extEnd); - if (glewExperimental || GLEW_AMD_name_gen_delete) GLEW_AMD_name_gen_delete = !_glewInit_GL_AMD_name_gen_delete(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_AMD_name_gen_delete) GLEW_AMD_name_gen_delete = !_glewInit_GL_AMD_name_gen_delete(); #endif /* GL_AMD_name_gen_delete */ #ifdef GL_AMD_occlusion_query_event - GLEW_AMD_occlusion_query_event = _glewSearchExtension("GL_AMD_occlusion_query_event", extStart, extEnd); - if (glewExperimental || GLEW_AMD_occlusion_query_event) GLEW_AMD_occlusion_query_event = !_glewInit_GL_AMD_occlusion_query_event(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_AMD_occlusion_query_event) GLEW_AMD_occlusion_query_event = !_glewInit_GL_AMD_occlusion_query_event(); #endif /* GL_AMD_occlusion_query_event */ #ifdef GL_AMD_performance_monitor - GLEW_AMD_performance_monitor = _glewSearchExtension("GL_AMD_performance_monitor", extStart, extEnd); - if (glewExperimental || GLEW_AMD_performance_monitor) GLEW_AMD_performance_monitor = !_glewInit_GL_AMD_performance_monitor(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_AMD_performance_monitor) GLEW_AMD_performance_monitor = !_glewInit_GL_AMD_performance_monitor(); #endif /* GL_AMD_performance_monitor */ -#ifdef GL_AMD_pinned_memory - GLEW_AMD_pinned_memory = _glewSearchExtension("GL_AMD_pinned_memory", extStart, extEnd); -#endif /* GL_AMD_pinned_memory */ -#ifdef GL_AMD_query_buffer_object - GLEW_AMD_query_buffer_object = _glewSearchExtension("GL_AMD_query_buffer_object", extStart, extEnd); -#endif /* GL_AMD_query_buffer_object */ #ifdef GL_AMD_sample_positions - GLEW_AMD_sample_positions = _glewSearchExtension("GL_AMD_sample_positions", extStart, extEnd); - if (glewExperimental || GLEW_AMD_sample_positions) GLEW_AMD_sample_positions = !_glewInit_GL_AMD_sample_positions(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_AMD_sample_positions) GLEW_AMD_sample_positions = !_glewInit_GL_AMD_sample_positions(); #endif /* GL_AMD_sample_positions */ -#ifdef GL_AMD_seamless_cubemap_per_texture - GLEW_AMD_seamless_cubemap_per_texture = _glewSearchExtension("GL_AMD_seamless_cubemap_per_texture", extStart, extEnd); -#endif /* GL_AMD_seamless_cubemap_per_texture */ -#ifdef GL_AMD_shader_atomic_counter_ops - GLEW_AMD_shader_atomic_counter_ops = _glewSearchExtension("GL_AMD_shader_atomic_counter_ops", extStart, extEnd); -#endif /* GL_AMD_shader_atomic_counter_ops */ -#ifdef GL_AMD_shader_stencil_export - GLEW_AMD_shader_stencil_export = _glewSearchExtension("GL_AMD_shader_stencil_export", extStart, extEnd); -#endif /* GL_AMD_shader_stencil_export */ -#ifdef GL_AMD_shader_stencil_value_export - GLEW_AMD_shader_stencil_value_export = _glewSearchExtension("GL_AMD_shader_stencil_value_export", extStart, extEnd); -#endif /* GL_AMD_shader_stencil_value_export */ -#ifdef GL_AMD_shader_trinary_minmax - GLEW_AMD_shader_trinary_minmax = _glewSearchExtension("GL_AMD_shader_trinary_minmax", extStart, extEnd); -#endif /* GL_AMD_shader_trinary_minmax */ #ifdef GL_AMD_sparse_texture - GLEW_AMD_sparse_texture = _glewSearchExtension("GL_AMD_sparse_texture", extStart, extEnd); - if (glewExperimental || GLEW_AMD_sparse_texture) GLEW_AMD_sparse_texture = !_glewInit_GL_AMD_sparse_texture(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_AMD_sparse_texture) GLEW_AMD_sparse_texture = !_glewInit_GL_AMD_sparse_texture(); #endif /* GL_AMD_sparse_texture */ #ifdef GL_AMD_stencil_operation_extended - GLEW_AMD_stencil_operation_extended = _glewSearchExtension("GL_AMD_stencil_operation_extended", extStart, extEnd); - if (glewExperimental || GLEW_AMD_stencil_operation_extended) GLEW_AMD_stencil_operation_extended = !_glewInit_GL_AMD_stencil_operation_extended(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_AMD_stencil_operation_extended) GLEW_AMD_stencil_operation_extended = !_glewInit_GL_AMD_stencil_operation_extended(); #endif /* GL_AMD_stencil_operation_extended */ -#ifdef GL_AMD_texture_texture4 - GLEW_AMD_texture_texture4 = _glewSearchExtension("GL_AMD_texture_texture4", extStart, extEnd); -#endif /* GL_AMD_texture_texture4 */ -#ifdef GL_AMD_transform_feedback3_lines_triangles - GLEW_AMD_transform_feedback3_lines_triangles = _glewSearchExtension("GL_AMD_transform_feedback3_lines_triangles", extStart, extEnd); -#endif /* GL_AMD_transform_feedback3_lines_triangles */ -#ifdef GL_AMD_transform_feedback4 - GLEW_AMD_transform_feedback4 = _glewSearchExtension("GL_AMD_transform_feedback4", extStart, extEnd); -#endif /* GL_AMD_transform_feedback4 */ -#ifdef GL_AMD_vertex_shader_layer - GLEW_AMD_vertex_shader_layer = _glewSearchExtension("GL_AMD_vertex_shader_layer", extStart, extEnd); -#endif /* GL_AMD_vertex_shader_layer */ #ifdef GL_AMD_vertex_shader_tessellator - GLEW_AMD_vertex_shader_tessellator = _glewSearchExtension("GL_AMD_vertex_shader_tessellator", extStart, extEnd); - if (glewExperimental || GLEW_AMD_vertex_shader_tessellator) GLEW_AMD_vertex_shader_tessellator = !_glewInit_GL_AMD_vertex_shader_tessellator(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_AMD_vertex_shader_tessellator) GLEW_AMD_vertex_shader_tessellator = !_glewInit_GL_AMD_vertex_shader_tessellator(); #endif /* GL_AMD_vertex_shader_tessellator */ -#ifdef GL_AMD_vertex_shader_viewport_index - GLEW_AMD_vertex_shader_viewport_index = _glewSearchExtension("GL_AMD_vertex_shader_viewport_index", extStart, extEnd); -#endif /* GL_AMD_vertex_shader_viewport_index */ -#ifdef GL_ANGLE_depth_texture - GLEW_ANGLE_depth_texture = _glewSearchExtension("GL_ANGLE_depth_texture", extStart, extEnd); -#endif /* GL_ANGLE_depth_texture */ #ifdef GL_ANGLE_framebuffer_blit - GLEW_ANGLE_framebuffer_blit = _glewSearchExtension("GL_ANGLE_framebuffer_blit", extStart, extEnd); - if (glewExperimental || GLEW_ANGLE_framebuffer_blit) GLEW_ANGLE_framebuffer_blit = !_glewInit_GL_ANGLE_framebuffer_blit(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ANGLE_framebuffer_blit) GLEW_ANGLE_framebuffer_blit = !_glewInit_GL_ANGLE_framebuffer_blit(); #endif /* GL_ANGLE_framebuffer_blit */ #ifdef GL_ANGLE_framebuffer_multisample - GLEW_ANGLE_framebuffer_multisample = _glewSearchExtension("GL_ANGLE_framebuffer_multisample", extStart, extEnd); - if (glewExperimental || GLEW_ANGLE_framebuffer_multisample) GLEW_ANGLE_framebuffer_multisample = !_glewInit_GL_ANGLE_framebuffer_multisample(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ANGLE_framebuffer_multisample) GLEW_ANGLE_framebuffer_multisample = !_glewInit_GL_ANGLE_framebuffer_multisample(); #endif /* GL_ANGLE_framebuffer_multisample */ #ifdef GL_ANGLE_instanced_arrays - GLEW_ANGLE_instanced_arrays = _glewSearchExtension("GL_ANGLE_instanced_arrays", extStart, extEnd); - if (glewExperimental || GLEW_ANGLE_instanced_arrays) GLEW_ANGLE_instanced_arrays = !_glewInit_GL_ANGLE_instanced_arrays(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ANGLE_instanced_arrays) GLEW_ANGLE_instanced_arrays = !_glewInit_GL_ANGLE_instanced_arrays(); #endif /* GL_ANGLE_instanced_arrays */ -#ifdef GL_ANGLE_pack_reverse_row_order - GLEW_ANGLE_pack_reverse_row_order = _glewSearchExtension("GL_ANGLE_pack_reverse_row_order", extStart, extEnd); -#endif /* GL_ANGLE_pack_reverse_row_order */ -#ifdef GL_ANGLE_program_binary - GLEW_ANGLE_program_binary = _glewSearchExtension("GL_ANGLE_program_binary", extStart, extEnd); -#endif /* GL_ANGLE_program_binary */ -#ifdef GL_ANGLE_texture_compression_dxt1 - GLEW_ANGLE_texture_compression_dxt1 = _glewSearchExtension("GL_ANGLE_texture_compression_dxt1", extStart, extEnd); -#endif /* GL_ANGLE_texture_compression_dxt1 */ -#ifdef GL_ANGLE_texture_compression_dxt3 - GLEW_ANGLE_texture_compression_dxt3 = _glewSearchExtension("GL_ANGLE_texture_compression_dxt3", extStart, extEnd); -#endif /* GL_ANGLE_texture_compression_dxt3 */ -#ifdef GL_ANGLE_texture_compression_dxt5 - GLEW_ANGLE_texture_compression_dxt5 = _glewSearchExtension("GL_ANGLE_texture_compression_dxt5", extStart, extEnd); -#endif /* GL_ANGLE_texture_compression_dxt5 */ -#ifdef GL_ANGLE_texture_usage - GLEW_ANGLE_texture_usage = _glewSearchExtension("GL_ANGLE_texture_usage", extStart, extEnd); -#endif /* GL_ANGLE_texture_usage */ #ifdef GL_ANGLE_timer_query - GLEW_ANGLE_timer_query = _glewSearchExtension("GL_ANGLE_timer_query", extStart, extEnd); - if (glewExperimental || GLEW_ANGLE_timer_query) GLEW_ANGLE_timer_query = !_glewInit_GL_ANGLE_timer_query(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ANGLE_timer_query) GLEW_ANGLE_timer_query = !_glewInit_GL_ANGLE_timer_query(); #endif /* GL_ANGLE_timer_query */ #ifdef GL_ANGLE_translated_shader_source - GLEW_ANGLE_translated_shader_source = _glewSearchExtension("GL_ANGLE_translated_shader_source", extStart, extEnd); - if (glewExperimental || GLEW_ANGLE_translated_shader_source) GLEW_ANGLE_translated_shader_source = !_glewInit_GL_ANGLE_translated_shader_source(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ANGLE_translated_shader_source) GLEW_ANGLE_translated_shader_source = !_glewInit_GL_ANGLE_translated_shader_source(); #endif /* GL_ANGLE_translated_shader_source */ -#ifdef GL_APPLE_aux_depth_stencil - GLEW_APPLE_aux_depth_stencil = _glewSearchExtension("GL_APPLE_aux_depth_stencil", extStart, extEnd); -#endif /* GL_APPLE_aux_depth_stencil */ -#ifdef GL_APPLE_client_storage - GLEW_APPLE_client_storage = _glewSearchExtension("GL_APPLE_client_storage", extStart, extEnd); -#endif /* GL_APPLE_client_storage */ +#ifdef GL_APPLE_copy_texture_levels + if (glewExperimental || GLEW_APPLE_copy_texture_levels) GLEW_APPLE_copy_texture_levels = !_glewInit_GL_APPLE_copy_texture_levels(); +#endif /* GL_APPLE_copy_texture_levels */ #ifdef GL_APPLE_element_array - GLEW_APPLE_element_array = _glewSearchExtension("GL_APPLE_element_array", extStart, extEnd); - if (glewExperimental || GLEW_APPLE_element_array) GLEW_APPLE_element_array = !_glewInit_GL_APPLE_element_array(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_APPLE_element_array) GLEW_APPLE_element_array = !_glewInit_GL_APPLE_element_array(); #endif /* GL_APPLE_element_array */ #ifdef GL_APPLE_fence - GLEW_APPLE_fence = _glewSearchExtension("GL_APPLE_fence", extStart, extEnd); - if (glewExperimental || GLEW_APPLE_fence) GLEW_APPLE_fence = !_glewInit_GL_APPLE_fence(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_APPLE_fence) GLEW_APPLE_fence = !_glewInit_GL_APPLE_fence(); #endif /* GL_APPLE_fence */ -#ifdef GL_APPLE_float_pixels - GLEW_APPLE_float_pixels = _glewSearchExtension("GL_APPLE_float_pixels", extStart, extEnd); -#endif /* GL_APPLE_float_pixels */ #ifdef GL_APPLE_flush_buffer_range - GLEW_APPLE_flush_buffer_range = _glewSearchExtension("GL_APPLE_flush_buffer_range", extStart, extEnd); - if (glewExperimental || GLEW_APPLE_flush_buffer_range) GLEW_APPLE_flush_buffer_range = !_glewInit_GL_APPLE_flush_buffer_range(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_APPLE_flush_buffer_range) GLEW_APPLE_flush_buffer_range = !_glewInit_GL_APPLE_flush_buffer_range(); #endif /* GL_APPLE_flush_buffer_range */ +#ifdef GL_APPLE_framebuffer_multisample + if (glewExperimental || GLEW_APPLE_framebuffer_multisample) GLEW_APPLE_framebuffer_multisample = !_glewInit_GL_APPLE_framebuffer_multisample(); +#endif /* GL_APPLE_framebuffer_multisample */ #ifdef GL_APPLE_object_purgeable - GLEW_APPLE_object_purgeable = _glewSearchExtension("GL_APPLE_object_purgeable", extStart, extEnd); - if (glewExperimental || GLEW_APPLE_object_purgeable) GLEW_APPLE_object_purgeable = !_glewInit_GL_APPLE_object_purgeable(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_APPLE_object_purgeable) GLEW_APPLE_object_purgeable = !_glewInit_GL_APPLE_object_purgeable(); #endif /* GL_APPLE_object_purgeable */ -#ifdef GL_APPLE_pixel_buffer - GLEW_APPLE_pixel_buffer = _glewSearchExtension("GL_APPLE_pixel_buffer", extStart, extEnd); -#endif /* GL_APPLE_pixel_buffer */ -#ifdef GL_APPLE_rgb_422 - GLEW_APPLE_rgb_422 = _glewSearchExtension("GL_APPLE_rgb_422", extStart, extEnd); -#endif /* GL_APPLE_rgb_422 */ -#ifdef GL_APPLE_row_bytes - GLEW_APPLE_row_bytes = _glewSearchExtension("GL_APPLE_row_bytes", extStart, extEnd); -#endif /* GL_APPLE_row_bytes */ -#ifdef GL_APPLE_specular_vector - GLEW_APPLE_specular_vector = _glewSearchExtension("GL_APPLE_specular_vector", extStart, extEnd); -#endif /* GL_APPLE_specular_vector */ +#ifdef GL_APPLE_sync + if (glewExperimental || GLEW_APPLE_sync) GLEW_APPLE_sync = !_glewInit_GL_APPLE_sync(); +#endif /* GL_APPLE_sync */ #ifdef GL_APPLE_texture_range - GLEW_APPLE_texture_range = _glewSearchExtension("GL_APPLE_texture_range", extStart, extEnd); - if (glewExperimental || GLEW_APPLE_texture_range) GLEW_APPLE_texture_range = !_glewInit_GL_APPLE_texture_range(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_APPLE_texture_range) GLEW_APPLE_texture_range = !_glewInit_GL_APPLE_texture_range(); #endif /* GL_APPLE_texture_range */ -#ifdef GL_APPLE_transform_hint - GLEW_APPLE_transform_hint = _glewSearchExtension("GL_APPLE_transform_hint", extStart, extEnd); -#endif /* GL_APPLE_transform_hint */ #ifdef GL_APPLE_vertex_array_object - GLEW_APPLE_vertex_array_object = _glewSearchExtension("GL_APPLE_vertex_array_object", extStart, extEnd); - if (glewExperimental || GLEW_APPLE_vertex_array_object) GLEW_APPLE_vertex_array_object = !_glewInit_GL_APPLE_vertex_array_object(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_APPLE_vertex_array_object) GLEW_APPLE_vertex_array_object = !_glewInit_GL_APPLE_vertex_array_object(); #endif /* GL_APPLE_vertex_array_object */ #ifdef GL_APPLE_vertex_array_range - GLEW_APPLE_vertex_array_range = _glewSearchExtension("GL_APPLE_vertex_array_range", extStart, extEnd); - if (glewExperimental || GLEW_APPLE_vertex_array_range) GLEW_APPLE_vertex_array_range = !_glewInit_GL_APPLE_vertex_array_range(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_APPLE_vertex_array_range) GLEW_APPLE_vertex_array_range = !_glewInit_GL_APPLE_vertex_array_range(); #endif /* GL_APPLE_vertex_array_range */ #ifdef GL_APPLE_vertex_program_evaluators - GLEW_APPLE_vertex_program_evaluators = _glewSearchExtension("GL_APPLE_vertex_program_evaluators", extStart, extEnd); - if (glewExperimental || GLEW_APPLE_vertex_program_evaluators) GLEW_APPLE_vertex_program_evaluators = !_glewInit_GL_APPLE_vertex_program_evaluators(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_APPLE_vertex_program_evaluators) GLEW_APPLE_vertex_program_evaluators = !_glewInit_GL_APPLE_vertex_program_evaluators(); #endif /* GL_APPLE_vertex_program_evaluators */ -#ifdef GL_APPLE_ycbcr_422 - GLEW_APPLE_ycbcr_422 = _glewSearchExtension("GL_APPLE_ycbcr_422", extStart, extEnd); -#endif /* GL_APPLE_ycbcr_422 */ #ifdef GL_ARB_ES2_compatibility - GLEW_ARB_ES2_compatibility = _glewSearchExtension("GL_ARB_ES2_compatibility", extStart, extEnd); - if (glewExperimental || GLEW_ARB_ES2_compatibility) GLEW_ARB_ES2_compatibility = !_glewInit_GL_ARB_ES2_compatibility(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_ES2_compatibility) GLEW_ARB_ES2_compatibility = !_glewInit_GL_ARB_ES2_compatibility(); #endif /* GL_ARB_ES2_compatibility */ #ifdef GL_ARB_ES3_1_compatibility - GLEW_ARB_ES3_1_compatibility = _glewSearchExtension("GL_ARB_ES3_1_compatibility", extStart, extEnd); - if (glewExperimental || GLEW_ARB_ES3_1_compatibility) GLEW_ARB_ES3_1_compatibility = !_glewInit_GL_ARB_ES3_1_compatibility(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_ES3_1_compatibility) GLEW_ARB_ES3_1_compatibility = !_glewInit_GL_ARB_ES3_1_compatibility(); #endif /* GL_ARB_ES3_1_compatibility */ #ifdef GL_ARB_ES3_2_compatibility - GLEW_ARB_ES3_2_compatibility = _glewSearchExtension("GL_ARB_ES3_2_compatibility", extStart, extEnd); - if (glewExperimental || GLEW_ARB_ES3_2_compatibility) GLEW_ARB_ES3_2_compatibility = !_glewInit_GL_ARB_ES3_2_compatibility(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_ES3_2_compatibility) GLEW_ARB_ES3_2_compatibility = !_glewInit_GL_ARB_ES3_2_compatibility(); #endif /* GL_ARB_ES3_2_compatibility */ -#ifdef GL_ARB_ES3_compatibility - GLEW_ARB_ES3_compatibility = _glewSearchExtension("GL_ARB_ES3_compatibility", extStart, extEnd); -#endif /* GL_ARB_ES3_compatibility */ -#ifdef GL_ARB_arrays_of_arrays - GLEW_ARB_arrays_of_arrays = _glewSearchExtension("GL_ARB_arrays_of_arrays", extStart, extEnd); -#endif /* GL_ARB_arrays_of_arrays */ #ifdef GL_ARB_base_instance - GLEW_ARB_base_instance = _glewSearchExtension("GL_ARB_base_instance", extStart, extEnd); - if (glewExperimental || GLEW_ARB_base_instance) GLEW_ARB_base_instance = !_glewInit_GL_ARB_base_instance(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_base_instance) GLEW_ARB_base_instance = !_glewInit_GL_ARB_base_instance(); #endif /* GL_ARB_base_instance */ #ifdef GL_ARB_bindless_texture - GLEW_ARB_bindless_texture = _glewSearchExtension("GL_ARB_bindless_texture", extStart, extEnd); - if (glewExperimental || GLEW_ARB_bindless_texture) GLEW_ARB_bindless_texture = !_glewInit_GL_ARB_bindless_texture(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_bindless_texture) GLEW_ARB_bindless_texture = !_glewInit_GL_ARB_bindless_texture(); #endif /* GL_ARB_bindless_texture */ #ifdef GL_ARB_blend_func_extended - GLEW_ARB_blend_func_extended = _glewSearchExtension("GL_ARB_blend_func_extended", extStart, extEnd); - if (glewExperimental || GLEW_ARB_blend_func_extended) GLEW_ARB_blend_func_extended = !_glewInit_GL_ARB_blend_func_extended(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_blend_func_extended) GLEW_ARB_blend_func_extended = !_glewInit_GL_ARB_blend_func_extended(); #endif /* GL_ARB_blend_func_extended */ #ifdef GL_ARB_buffer_storage - GLEW_ARB_buffer_storage = _glewSearchExtension("GL_ARB_buffer_storage", extStart, extEnd); - if (glewExperimental || GLEW_ARB_buffer_storage) GLEW_ARB_buffer_storage = !_glewInit_GL_ARB_buffer_storage(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_buffer_storage) GLEW_ARB_buffer_storage = !_glewInit_GL_ARB_buffer_storage(); #endif /* GL_ARB_buffer_storage */ #ifdef GL_ARB_cl_event - GLEW_ARB_cl_event = _glewSearchExtension("GL_ARB_cl_event", extStart, extEnd); - if (glewExperimental || GLEW_ARB_cl_event) GLEW_ARB_cl_event = !_glewInit_GL_ARB_cl_event(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_cl_event) GLEW_ARB_cl_event = !_glewInit_GL_ARB_cl_event(); #endif /* GL_ARB_cl_event */ #ifdef GL_ARB_clear_buffer_object - GLEW_ARB_clear_buffer_object = _glewSearchExtension("GL_ARB_clear_buffer_object", extStart, extEnd); - if (glewExperimental || GLEW_ARB_clear_buffer_object) GLEW_ARB_clear_buffer_object = !_glewInit_GL_ARB_clear_buffer_object(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_clear_buffer_object) GLEW_ARB_clear_buffer_object = !_glewInit_GL_ARB_clear_buffer_object(); #endif /* GL_ARB_clear_buffer_object */ #ifdef GL_ARB_clear_texture - GLEW_ARB_clear_texture = _glewSearchExtension("GL_ARB_clear_texture", extStart, extEnd); - if (glewExperimental || GLEW_ARB_clear_texture) GLEW_ARB_clear_texture = !_glewInit_GL_ARB_clear_texture(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_clear_texture) GLEW_ARB_clear_texture = !_glewInit_GL_ARB_clear_texture(); #endif /* GL_ARB_clear_texture */ #ifdef GL_ARB_clip_control - GLEW_ARB_clip_control = _glewSearchExtension("GL_ARB_clip_control", extStart, extEnd); - if (glewExperimental || GLEW_ARB_clip_control) GLEW_ARB_clip_control = !_glewInit_GL_ARB_clip_control(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_clip_control) GLEW_ARB_clip_control = !_glewInit_GL_ARB_clip_control(); #endif /* GL_ARB_clip_control */ #ifdef GL_ARB_color_buffer_float - GLEW_ARB_color_buffer_float = _glewSearchExtension("GL_ARB_color_buffer_float", extStart, extEnd); - if (glewExperimental || GLEW_ARB_color_buffer_float) GLEW_ARB_color_buffer_float = !_glewInit_GL_ARB_color_buffer_float(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_color_buffer_float) GLEW_ARB_color_buffer_float = !_glewInit_GL_ARB_color_buffer_float(); #endif /* GL_ARB_color_buffer_float */ -#ifdef GL_ARB_compatibility - GLEW_ARB_compatibility = _glewSearchExtension("GL_ARB_compatibility", extStart, extEnd); -#endif /* GL_ARB_compatibility */ -#ifdef GL_ARB_compressed_texture_pixel_storage - GLEW_ARB_compressed_texture_pixel_storage = _glewSearchExtension("GL_ARB_compressed_texture_pixel_storage", extStart, extEnd); -#endif /* GL_ARB_compressed_texture_pixel_storage */ #ifdef GL_ARB_compute_shader - GLEW_ARB_compute_shader = _glewSearchExtension("GL_ARB_compute_shader", extStart, extEnd); - if (glewExperimental || GLEW_ARB_compute_shader) GLEW_ARB_compute_shader = !_glewInit_GL_ARB_compute_shader(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_compute_shader) GLEW_ARB_compute_shader = !_glewInit_GL_ARB_compute_shader(); #endif /* GL_ARB_compute_shader */ #ifdef GL_ARB_compute_variable_group_size - GLEW_ARB_compute_variable_group_size = _glewSearchExtension("GL_ARB_compute_variable_group_size", extStart, extEnd); - if (glewExperimental || GLEW_ARB_compute_variable_group_size) GLEW_ARB_compute_variable_group_size = !_glewInit_GL_ARB_compute_variable_group_size(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_compute_variable_group_size) GLEW_ARB_compute_variable_group_size = !_glewInit_GL_ARB_compute_variable_group_size(); #endif /* GL_ARB_compute_variable_group_size */ -#ifdef GL_ARB_conditional_render_inverted - GLEW_ARB_conditional_render_inverted = _glewSearchExtension("GL_ARB_conditional_render_inverted", extStart, extEnd); -#endif /* GL_ARB_conditional_render_inverted */ -#ifdef GL_ARB_conservative_depth - GLEW_ARB_conservative_depth = _glewSearchExtension("GL_ARB_conservative_depth", extStart, extEnd); -#endif /* GL_ARB_conservative_depth */ #ifdef GL_ARB_copy_buffer - GLEW_ARB_copy_buffer = _glewSearchExtension("GL_ARB_copy_buffer", extStart, extEnd); - if (glewExperimental || GLEW_ARB_copy_buffer) GLEW_ARB_copy_buffer = !_glewInit_GL_ARB_copy_buffer(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_copy_buffer) GLEW_ARB_copy_buffer = !_glewInit_GL_ARB_copy_buffer(); #endif /* GL_ARB_copy_buffer */ #ifdef GL_ARB_copy_image - GLEW_ARB_copy_image = _glewSearchExtension("GL_ARB_copy_image", extStart, extEnd); - if (glewExperimental || GLEW_ARB_copy_image) GLEW_ARB_copy_image = !_glewInit_GL_ARB_copy_image(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_copy_image) GLEW_ARB_copy_image = !_glewInit_GL_ARB_copy_image(); #endif /* GL_ARB_copy_image */ -#ifdef GL_ARB_cull_distance - GLEW_ARB_cull_distance = _glewSearchExtension("GL_ARB_cull_distance", extStart, extEnd); -#endif /* GL_ARB_cull_distance */ #ifdef GL_ARB_debug_output - GLEW_ARB_debug_output = _glewSearchExtension("GL_ARB_debug_output", extStart, extEnd); - if (glewExperimental || GLEW_ARB_debug_output) GLEW_ARB_debug_output = !_glewInit_GL_ARB_debug_output(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_debug_output) GLEW_ARB_debug_output = !_glewInit_GL_ARB_debug_output(); #endif /* GL_ARB_debug_output */ -#ifdef GL_ARB_depth_buffer_float - GLEW_ARB_depth_buffer_float = _glewSearchExtension("GL_ARB_depth_buffer_float", extStart, extEnd); -#endif /* GL_ARB_depth_buffer_float */ -#ifdef GL_ARB_depth_clamp - GLEW_ARB_depth_clamp = _glewSearchExtension("GL_ARB_depth_clamp", extStart, extEnd); -#endif /* GL_ARB_depth_clamp */ -#ifdef GL_ARB_depth_texture - GLEW_ARB_depth_texture = _glewSearchExtension("GL_ARB_depth_texture", extStart, extEnd); -#endif /* GL_ARB_depth_texture */ -#ifdef GL_ARB_derivative_control - GLEW_ARB_derivative_control = _glewSearchExtension("GL_ARB_derivative_control", extStart, extEnd); -#endif /* GL_ARB_derivative_control */ #ifdef GL_ARB_direct_state_access - GLEW_ARB_direct_state_access = _glewSearchExtension("GL_ARB_direct_state_access", extStart, extEnd); - if (glewExperimental || GLEW_ARB_direct_state_access) GLEW_ARB_direct_state_access = !_glewInit_GL_ARB_direct_state_access(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_direct_state_access) GLEW_ARB_direct_state_access = !_glewInit_GL_ARB_direct_state_access(); #endif /* GL_ARB_direct_state_access */ #ifdef GL_ARB_draw_buffers - GLEW_ARB_draw_buffers = _glewSearchExtension("GL_ARB_draw_buffers", extStart, extEnd); - if (glewExperimental || GLEW_ARB_draw_buffers) GLEW_ARB_draw_buffers = !_glewInit_GL_ARB_draw_buffers(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_draw_buffers) GLEW_ARB_draw_buffers = !_glewInit_GL_ARB_draw_buffers(); #endif /* GL_ARB_draw_buffers */ #ifdef GL_ARB_draw_buffers_blend - GLEW_ARB_draw_buffers_blend = _glewSearchExtension("GL_ARB_draw_buffers_blend", extStart, extEnd); - if (glewExperimental || GLEW_ARB_draw_buffers_blend) GLEW_ARB_draw_buffers_blend = !_glewInit_GL_ARB_draw_buffers_blend(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_draw_buffers_blend) GLEW_ARB_draw_buffers_blend = !_glewInit_GL_ARB_draw_buffers_blend(); #endif /* GL_ARB_draw_buffers_blend */ #ifdef GL_ARB_draw_elements_base_vertex - GLEW_ARB_draw_elements_base_vertex = _glewSearchExtension("GL_ARB_draw_elements_base_vertex", extStart, extEnd); - if (glewExperimental || GLEW_ARB_draw_elements_base_vertex) GLEW_ARB_draw_elements_base_vertex = !_glewInit_GL_ARB_draw_elements_base_vertex(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_draw_elements_base_vertex) GLEW_ARB_draw_elements_base_vertex = !_glewInit_GL_ARB_draw_elements_base_vertex(); #endif /* GL_ARB_draw_elements_base_vertex */ #ifdef GL_ARB_draw_indirect - GLEW_ARB_draw_indirect = _glewSearchExtension("GL_ARB_draw_indirect", extStart, extEnd); - if (glewExperimental || GLEW_ARB_draw_indirect) GLEW_ARB_draw_indirect = !_glewInit_GL_ARB_draw_indirect(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_draw_indirect) GLEW_ARB_draw_indirect = !_glewInit_GL_ARB_draw_indirect(); #endif /* GL_ARB_draw_indirect */ -#ifdef GL_ARB_draw_instanced - GLEW_ARB_draw_instanced = _glewSearchExtension("GL_ARB_draw_instanced", extStart, extEnd); -#endif /* GL_ARB_draw_instanced */ -#ifdef GL_ARB_enhanced_layouts - GLEW_ARB_enhanced_layouts = _glewSearchExtension("GL_ARB_enhanced_layouts", extStart, extEnd); -#endif /* GL_ARB_enhanced_layouts */ -#ifdef GL_ARB_explicit_attrib_location - GLEW_ARB_explicit_attrib_location = _glewSearchExtension("GL_ARB_explicit_attrib_location", extStart, extEnd); -#endif /* GL_ARB_explicit_attrib_location */ -#ifdef GL_ARB_explicit_uniform_location - GLEW_ARB_explicit_uniform_location = _glewSearchExtension("GL_ARB_explicit_uniform_location", extStart, extEnd); -#endif /* GL_ARB_explicit_uniform_location */ -#ifdef GL_ARB_fragment_coord_conventions - GLEW_ARB_fragment_coord_conventions = _glewSearchExtension("GL_ARB_fragment_coord_conventions", extStart, extEnd); -#endif /* GL_ARB_fragment_coord_conventions */ -#ifdef GL_ARB_fragment_layer_viewport - GLEW_ARB_fragment_layer_viewport = _glewSearchExtension("GL_ARB_fragment_layer_viewport", extStart, extEnd); -#endif /* GL_ARB_fragment_layer_viewport */ -#ifdef GL_ARB_fragment_program - GLEW_ARB_fragment_program = _glewSearchExtension("GL_ARB_fragment_program", extStart, extEnd); -#endif /* GL_ARB_fragment_program */ -#ifdef GL_ARB_fragment_program_shadow - GLEW_ARB_fragment_program_shadow = _glewSearchExtension("GL_ARB_fragment_program_shadow", extStart, extEnd); -#endif /* GL_ARB_fragment_program_shadow */ -#ifdef GL_ARB_fragment_shader - GLEW_ARB_fragment_shader = _glewSearchExtension("GL_ARB_fragment_shader", extStart, extEnd); -#endif /* GL_ARB_fragment_shader */ -#ifdef GL_ARB_fragment_shader_interlock - GLEW_ARB_fragment_shader_interlock = _glewSearchExtension("GL_ARB_fragment_shader_interlock", extStart, extEnd); -#endif /* GL_ARB_fragment_shader_interlock */ #ifdef GL_ARB_framebuffer_no_attachments - GLEW_ARB_framebuffer_no_attachments = _glewSearchExtension("GL_ARB_framebuffer_no_attachments", extStart, extEnd); - if (glewExperimental || GLEW_ARB_framebuffer_no_attachments) GLEW_ARB_framebuffer_no_attachments = !_glewInit_GL_ARB_framebuffer_no_attachments(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_framebuffer_no_attachments) GLEW_ARB_framebuffer_no_attachments = !_glewInit_GL_ARB_framebuffer_no_attachments(); #endif /* GL_ARB_framebuffer_no_attachments */ #ifdef GL_ARB_framebuffer_object - GLEW_ARB_framebuffer_object = _glewSearchExtension("GL_ARB_framebuffer_object", extStart, extEnd); - if (glewExperimental || GLEW_ARB_framebuffer_object) GLEW_ARB_framebuffer_object = !_glewInit_GL_ARB_framebuffer_object(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_framebuffer_object) GLEW_ARB_framebuffer_object = !_glewInit_GL_ARB_framebuffer_object(); #endif /* GL_ARB_framebuffer_object */ -#ifdef GL_ARB_framebuffer_sRGB - GLEW_ARB_framebuffer_sRGB = _glewSearchExtension("GL_ARB_framebuffer_sRGB", extStart, extEnd); -#endif /* GL_ARB_framebuffer_sRGB */ #ifdef GL_ARB_geometry_shader4 - GLEW_ARB_geometry_shader4 = _glewSearchExtension("GL_ARB_geometry_shader4", extStart, extEnd); - if (glewExperimental || GLEW_ARB_geometry_shader4) GLEW_ARB_geometry_shader4 = !_glewInit_GL_ARB_geometry_shader4(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_geometry_shader4) GLEW_ARB_geometry_shader4 = !_glewInit_GL_ARB_geometry_shader4(); #endif /* GL_ARB_geometry_shader4 */ #ifdef GL_ARB_get_program_binary - GLEW_ARB_get_program_binary = _glewSearchExtension("GL_ARB_get_program_binary", extStart, extEnd); - if (glewExperimental || GLEW_ARB_get_program_binary) GLEW_ARB_get_program_binary = !_glewInit_GL_ARB_get_program_binary(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_get_program_binary) GLEW_ARB_get_program_binary = !_glewInit_GL_ARB_get_program_binary(); #endif /* GL_ARB_get_program_binary */ #ifdef GL_ARB_get_texture_sub_image - GLEW_ARB_get_texture_sub_image = _glewSearchExtension("GL_ARB_get_texture_sub_image", extStart, extEnd); - if (glewExperimental || GLEW_ARB_get_texture_sub_image) GLEW_ARB_get_texture_sub_image = !_glewInit_GL_ARB_get_texture_sub_image(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_get_texture_sub_image) GLEW_ARB_get_texture_sub_image = !_glewInit_GL_ARB_get_texture_sub_image(); #endif /* GL_ARB_get_texture_sub_image */ -#ifdef GL_ARB_gpu_shader5 - GLEW_ARB_gpu_shader5 = _glewSearchExtension("GL_ARB_gpu_shader5", extStart, extEnd); -#endif /* GL_ARB_gpu_shader5 */ +#ifdef GL_ARB_gl_spirv + if (glewExperimental || GLEW_ARB_gl_spirv) GLEW_ARB_gl_spirv = !_glewInit_GL_ARB_gl_spirv(); +#endif /* GL_ARB_gl_spirv */ #ifdef GL_ARB_gpu_shader_fp64 - GLEW_ARB_gpu_shader_fp64 = _glewSearchExtension("GL_ARB_gpu_shader_fp64", extStart, extEnd); - if (glewExperimental || GLEW_ARB_gpu_shader_fp64) GLEW_ARB_gpu_shader_fp64 = !_glewInit_GL_ARB_gpu_shader_fp64(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_gpu_shader_fp64) GLEW_ARB_gpu_shader_fp64 = !_glewInit_GL_ARB_gpu_shader_fp64(); #endif /* GL_ARB_gpu_shader_fp64 */ #ifdef GL_ARB_gpu_shader_int64 - GLEW_ARB_gpu_shader_int64 = _glewSearchExtension("GL_ARB_gpu_shader_int64", extStart, extEnd); - if (glewExperimental || GLEW_ARB_gpu_shader_int64) GLEW_ARB_gpu_shader_int64 = !_glewInit_GL_ARB_gpu_shader_int64(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_gpu_shader_int64) GLEW_ARB_gpu_shader_int64 = !_glewInit_GL_ARB_gpu_shader_int64(); #endif /* GL_ARB_gpu_shader_int64 */ -#ifdef GL_ARB_half_float_pixel - GLEW_ARB_half_float_pixel = _glewSearchExtension("GL_ARB_half_float_pixel", extStart, extEnd); -#endif /* GL_ARB_half_float_pixel */ -#ifdef GL_ARB_half_float_vertex - GLEW_ARB_half_float_vertex = _glewSearchExtension("GL_ARB_half_float_vertex", extStart, extEnd); -#endif /* GL_ARB_half_float_vertex */ #ifdef GL_ARB_imaging - GLEW_ARB_imaging = _glewSearchExtension("GL_ARB_imaging", extStart, extEnd); - if (glewExperimental || GLEW_ARB_imaging) GLEW_ARB_imaging = !_glewInit_GL_ARB_imaging(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_imaging) GLEW_ARB_imaging = !_glewInit_GL_ARB_imaging(); #endif /* GL_ARB_imaging */ #ifdef GL_ARB_indirect_parameters - GLEW_ARB_indirect_parameters = _glewSearchExtension("GL_ARB_indirect_parameters", extStart, extEnd); - if (glewExperimental || GLEW_ARB_indirect_parameters) GLEW_ARB_indirect_parameters = !_glewInit_GL_ARB_indirect_parameters(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_indirect_parameters) GLEW_ARB_indirect_parameters = !_glewInit_GL_ARB_indirect_parameters(); #endif /* GL_ARB_indirect_parameters */ #ifdef GL_ARB_instanced_arrays - GLEW_ARB_instanced_arrays = _glewSearchExtension("GL_ARB_instanced_arrays", extStart, extEnd); - if (glewExperimental || GLEW_ARB_instanced_arrays) GLEW_ARB_instanced_arrays = !_glewInit_GL_ARB_instanced_arrays(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_instanced_arrays) GLEW_ARB_instanced_arrays = !_glewInit_GL_ARB_instanced_arrays(); #endif /* GL_ARB_instanced_arrays */ #ifdef GL_ARB_internalformat_query - GLEW_ARB_internalformat_query = _glewSearchExtension("GL_ARB_internalformat_query", extStart, extEnd); - if (glewExperimental || GLEW_ARB_internalformat_query) GLEW_ARB_internalformat_query = !_glewInit_GL_ARB_internalformat_query(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_internalformat_query) GLEW_ARB_internalformat_query = !_glewInit_GL_ARB_internalformat_query(); #endif /* GL_ARB_internalformat_query */ #ifdef GL_ARB_internalformat_query2 - GLEW_ARB_internalformat_query2 = _glewSearchExtension("GL_ARB_internalformat_query2", extStart, extEnd); - if (glewExperimental || GLEW_ARB_internalformat_query2) GLEW_ARB_internalformat_query2 = !_glewInit_GL_ARB_internalformat_query2(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_internalformat_query2) GLEW_ARB_internalformat_query2 = !_glewInit_GL_ARB_internalformat_query2(); #endif /* GL_ARB_internalformat_query2 */ #ifdef GL_ARB_invalidate_subdata - GLEW_ARB_invalidate_subdata = _glewSearchExtension("GL_ARB_invalidate_subdata", extStart, extEnd); - if (glewExperimental || GLEW_ARB_invalidate_subdata) GLEW_ARB_invalidate_subdata = !_glewInit_GL_ARB_invalidate_subdata(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_invalidate_subdata) GLEW_ARB_invalidate_subdata = !_glewInit_GL_ARB_invalidate_subdata(); #endif /* GL_ARB_invalidate_subdata */ -#ifdef GL_ARB_map_buffer_alignment - GLEW_ARB_map_buffer_alignment = _glewSearchExtension("GL_ARB_map_buffer_alignment", extStart, extEnd); -#endif /* GL_ARB_map_buffer_alignment */ #ifdef GL_ARB_map_buffer_range - GLEW_ARB_map_buffer_range = _glewSearchExtension("GL_ARB_map_buffer_range", extStart, extEnd); - if (glewExperimental || GLEW_ARB_map_buffer_range) GLEW_ARB_map_buffer_range = !_glewInit_GL_ARB_map_buffer_range(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_map_buffer_range) GLEW_ARB_map_buffer_range = !_glewInit_GL_ARB_map_buffer_range(); #endif /* GL_ARB_map_buffer_range */ #ifdef GL_ARB_matrix_palette - GLEW_ARB_matrix_palette = _glewSearchExtension("GL_ARB_matrix_palette", extStart, extEnd); - if (glewExperimental || GLEW_ARB_matrix_palette) GLEW_ARB_matrix_palette = !_glewInit_GL_ARB_matrix_palette(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_matrix_palette) GLEW_ARB_matrix_palette = !_glewInit_GL_ARB_matrix_palette(); #endif /* GL_ARB_matrix_palette */ #ifdef GL_ARB_multi_bind - GLEW_ARB_multi_bind = _glewSearchExtension("GL_ARB_multi_bind", extStart, extEnd); - if (glewExperimental || GLEW_ARB_multi_bind) GLEW_ARB_multi_bind = !_glewInit_GL_ARB_multi_bind(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_multi_bind) GLEW_ARB_multi_bind = !_glewInit_GL_ARB_multi_bind(); #endif /* GL_ARB_multi_bind */ #ifdef GL_ARB_multi_draw_indirect - GLEW_ARB_multi_draw_indirect = _glewSearchExtension("GL_ARB_multi_draw_indirect", extStart, extEnd); - if (glewExperimental || GLEW_ARB_multi_draw_indirect) GLEW_ARB_multi_draw_indirect = !_glewInit_GL_ARB_multi_draw_indirect(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_multi_draw_indirect) GLEW_ARB_multi_draw_indirect = !_glewInit_GL_ARB_multi_draw_indirect(); #endif /* GL_ARB_multi_draw_indirect */ #ifdef GL_ARB_multisample - GLEW_ARB_multisample = _glewSearchExtension("GL_ARB_multisample", extStart, extEnd); - if (glewExperimental || GLEW_ARB_multisample) GLEW_ARB_multisample = !_glewInit_GL_ARB_multisample(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_multisample) GLEW_ARB_multisample = !_glewInit_GL_ARB_multisample(); #endif /* GL_ARB_multisample */ #ifdef GL_ARB_multitexture - GLEW_ARB_multitexture = _glewSearchExtension("GL_ARB_multitexture", extStart, extEnd); - if (glewExperimental || GLEW_ARB_multitexture) GLEW_ARB_multitexture = !_glewInit_GL_ARB_multitexture(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_multitexture) GLEW_ARB_multitexture = !_glewInit_GL_ARB_multitexture(); #endif /* GL_ARB_multitexture */ #ifdef GL_ARB_occlusion_query - GLEW_ARB_occlusion_query = _glewSearchExtension("GL_ARB_occlusion_query", extStart, extEnd); - if (glewExperimental || GLEW_ARB_occlusion_query) GLEW_ARB_occlusion_query = !_glewInit_GL_ARB_occlusion_query(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_occlusion_query) GLEW_ARB_occlusion_query = !_glewInit_GL_ARB_occlusion_query(); #endif /* GL_ARB_occlusion_query */ -#ifdef GL_ARB_occlusion_query2 - GLEW_ARB_occlusion_query2 = _glewSearchExtension("GL_ARB_occlusion_query2", extStart, extEnd); -#endif /* GL_ARB_occlusion_query2 */ #ifdef GL_ARB_parallel_shader_compile - GLEW_ARB_parallel_shader_compile = _glewSearchExtension("GL_ARB_parallel_shader_compile", extStart, extEnd); - if (glewExperimental || GLEW_ARB_parallel_shader_compile) GLEW_ARB_parallel_shader_compile = !_glewInit_GL_ARB_parallel_shader_compile(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_parallel_shader_compile) GLEW_ARB_parallel_shader_compile = !_glewInit_GL_ARB_parallel_shader_compile(); #endif /* GL_ARB_parallel_shader_compile */ -#ifdef GL_ARB_pipeline_statistics_query - GLEW_ARB_pipeline_statistics_query = _glewSearchExtension("GL_ARB_pipeline_statistics_query", extStart, extEnd); -#endif /* GL_ARB_pipeline_statistics_query */ -#ifdef GL_ARB_pixel_buffer_object - GLEW_ARB_pixel_buffer_object = _glewSearchExtension("GL_ARB_pixel_buffer_object", extStart, extEnd); -#endif /* GL_ARB_pixel_buffer_object */ #ifdef GL_ARB_point_parameters - GLEW_ARB_point_parameters = _glewSearchExtension("GL_ARB_point_parameters", extStart, extEnd); - if (glewExperimental || GLEW_ARB_point_parameters) GLEW_ARB_point_parameters = !_glewInit_GL_ARB_point_parameters(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_point_parameters) GLEW_ARB_point_parameters = !_glewInit_GL_ARB_point_parameters(); #endif /* GL_ARB_point_parameters */ -#ifdef GL_ARB_point_sprite - GLEW_ARB_point_sprite = _glewSearchExtension("GL_ARB_point_sprite", extStart, extEnd); -#endif /* GL_ARB_point_sprite */ -#ifdef GL_ARB_post_depth_coverage - GLEW_ARB_post_depth_coverage = _glewSearchExtension("GL_ARB_post_depth_coverage", extStart, extEnd); -#endif /* GL_ARB_post_depth_coverage */ +#ifdef GL_ARB_polygon_offset_clamp + if (glewExperimental || GLEW_ARB_polygon_offset_clamp) GLEW_ARB_polygon_offset_clamp = !_glewInit_GL_ARB_polygon_offset_clamp(); +#endif /* GL_ARB_polygon_offset_clamp */ #ifdef GL_ARB_program_interface_query - GLEW_ARB_program_interface_query = _glewSearchExtension("GL_ARB_program_interface_query", extStart, extEnd); - if (glewExperimental || GLEW_ARB_program_interface_query) GLEW_ARB_program_interface_query = !_glewInit_GL_ARB_program_interface_query(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_program_interface_query) GLEW_ARB_program_interface_query = !_glewInit_GL_ARB_program_interface_query(); #endif /* GL_ARB_program_interface_query */ #ifdef GL_ARB_provoking_vertex - GLEW_ARB_provoking_vertex = _glewSearchExtension("GL_ARB_provoking_vertex", extStart, extEnd); - if (glewExperimental || GLEW_ARB_provoking_vertex) GLEW_ARB_provoking_vertex = !_glewInit_GL_ARB_provoking_vertex(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_provoking_vertex) GLEW_ARB_provoking_vertex = !_glewInit_GL_ARB_provoking_vertex(); #endif /* GL_ARB_provoking_vertex */ -#ifdef GL_ARB_query_buffer_object - GLEW_ARB_query_buffer_object = _glewSearchExtension("GL_ARB_query_buffer_object", extStart, extEnd); -#endif /* GL_ARB_query_buffer_object */ -#ifdef GL_ARB_robust_buffer_access_behavior - GLEW_ARB_robust_buffer_access_behavior = _glewSearchExtension("GL_ARB_robust_buffer_access_behavior", extStart, extEnd); -#endif /* GL_ARB_robust_buffer_access_behavior */ #ifdef GL_ARB_robustness - GLEW_ARB_robustness = _glewSearchExtension("GL_ARB_robustness", extStart, extEnd); - if (glewExperimental || GLEW_ARB_robustness) GLEW_ARB_robustness = !_glewInit_GL_ARB_robustness(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_robustness) GLEW_ARB_robustness = !_glewInit_GL_ARB_robustness(); #endif /* GL_ARB_robustness */ -#ifdef GL_ARB_robustness_application_isolation - GLEW_ARB_robustness_application_isolation = _glewSearchExtension("GL_ARB_robustness_application_isolation", extStart, extEnd); -#endif /* GL_ARB_robustness_application_isolation */ -#ifdef GL_ARB_robustness_share_group_isolation - GLEW_ARB_robustness_share_group_isolation = _glewSearchExtension("GL_ARB_robustness_share_group_isolation", extStart, extEnd); -#endif /* GL_ARB_robustness_share_group_isolation */ #ifdef GL_ARB_sample_locations - GLEW_ARB_sample_locations = _glewSearchExtension("GL_ARB_sample_locations", extStart, extEnd); - if (glewExperimental || GLEW_ARB_sample_locations) GLEW_ARB_sample_locations = !_glewInit_GL_ARB_sample_locations(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_sample_locations) GLEW_ARB_sample_locations = !_glewInit_GL_ARB_sample_locations(); #endif /* GL_ARB_sample_locations */ #ifdef GL_ARB_sample_shading - GLEW_ARB_sample_shading = _glewSearchExtension("GL_ARB_sample_shading", extStart, extEnd); - if (glewExperimental || GLEW_ARB_sample_shading) GLEW_ARB_sample_shading = !_glewInit_GL_ARB_sample_shading(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_sample_shading) GLEW_ARB_sample_shading = !_glewInit_GL_ARB_sample_shading(); #endif /* GL_ARB_sample_shading */ #ifdef GL_ARB_sampler_objects - GLEW_ARB_sampler_objects = _glewSearchExtension("GL_ARB_sampler_objects", extStart, extEnd); - if (glewExperimental || GLEW_ARB_sampler_objects) GLEW_ARB_sampler_objects = !_glewInit_GL_ARB_sampler_objects(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_sampler_objects) GLEW_ARB_sampler_objects = !_glewInit_GL_ARB_sampler_objects(); #endif /* GL_ARB_sampler_objects */ -#ifdef GL_ARB_seamless_cube_map - GLEW_ARB_seamless_cube_map = _glewSearchExtension("GL_ARB_seamless_cube_map", extStart, extEnd); -#endif /* GL_ARB_seamless_cube_map */ -#ifdef GL_ARB_seamless_cubemap_per_texture - GLEW_ARB_seamless_cubemap_per_texture = _glewSearchExtension("GL_ARB_seamless_cubemap_per_texture", extStart, extEnd); -#endif /* GL_ARB_seamless_cubemap_per_texture */ #ifdef GL_ARB_separate_shader_objects - GLEW_ARB_separate_shader_objects = _glewSearchExtension("GL_ARB_separate_shader_objects", extStart, extEnd); - if (glewExperimental || GLEW_ARB_separate_shader_objects) GLEW_ARB_separate_shader_objects = !_glewInit_GL_ARB_separate_shader_objects(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_separate_shader_objects) GLEW_ARB_separate_shader_objects = !_glewInit_GL_ARB_separate_shader_objects(); #endif /* GL_ARB_separate_shader_objects */ -#ifdef GL_ARB_shader_atomic_counter_ops - GLEW_ARB_shader_atomic_counter_ops = _glewSearchExtension("GL_ARB_shader_atomic_counter_ops", extStart, extEnd); -#endif /* GL_ARB_shader_atomic_counter_ops */ #ifdef GL_ARB_shader_atomic_counters - GLEW_ARB_shader_atomic_counters = _glewSearchExtension("GL_ARB_shader_atomic_counters", extStart, extEnd); - if (glewExperimental || GLEW_ARB_shader_atomic_counters) GLEW_ARB_shader_atomic_counters = !_glewInit_GL_ARB_shader_atomic_counters(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_shader_atomic_counters) GLEW_ARB_shader_atomic_counters = !_glewInit_GL_ARB_shader_atomic_counters(); #endif /* GL_ARB_shader_atomic_counters */ -#ifdef GL_ARB_shader_ballot - GLEW_ARB_shader_ballot = _glewSearchExtension("GL_ARB_shader_ballot", extStart, extEnd); -#endif /* GL_ARB_shader_ballot */ -#ifdef GL_ARB_shader_bit_encoding - GLEW_ARB_shader_bit_encoding = _glewSearchExtension("GL_ARB_shader_bit_encoding", extStart, extEnd); -#endif /* GL_ARB_shader_bit_encoding */ -#ifdef GL_ARB_shader_clock - GLEW_ARB_shader_clock = _glewSearchExtension("GL_ARB_shader_clock", extStart, extEnd); -#endif /* GL_ARB_shader_clock */ -#ifdef GL_ARB_shader_draw_parameters - GLEW_ARB_shader_draw_parameters = _glewSearchExtension("GL_ARB_shader_draw_parameters", extStart, extEnd); -#endif /* GL_ARB_shader_draw_parameters */ -#ifdef GL_ARB_shader_group_vote - GLEW_ARB_shader_group_vote = _glewSearchExtension("GL_ARB_shader_group_vote", extStart, extEnd); -#endif /* GL_ARB_shader_group_vote */ #ifdef GL_ARB_shader_image_load_store - GLEW_ARB_shader_image_load_store = _glewSearchExtension("GL_ARB_shader_image_load_store", extStart, extEnd); - if (glewExperimental || GLEW_ARB_shader_image_load_store) GLEW_ARB_shader_image_load_store = !_glewInit_GL_ARB_shader_image_load_store(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_shader_image_load_store) GLEW_ARB_shader_image_load_store = !_glewInit_GL_ARB_shader_image_load_store(); #endif /* GL_ARB_shader_image_load_store */ -#ifdef GL_ARB_shader_image_size - GLEW_ARB_shader_image_size = _glewSearchExtension("GL_ARB_shader_image_size", extStart, extEnd); -#endif /* GL_ARB_shader_image_size */ #ifdef GL_ARB_shader_objects - GLEW_ARB_shader_objects = _glewSearchExtension("GL_ARB_shader_objects", extStart, extEnd); - if (glewExperimental || GLEW_ARB_shader_objects) GLEW_ARB_shader_objects = !_glewInit_GL_ARB_shader_objects(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_shader_objects) GLEW_ARB_shader_objects = !_glewInit_GL_ARB_shader_objects(); #endif /* GL_ARB_shader_objects */ -#ifdef GL_ARB_shader_precision - GLEW_ARB_shader_precision = _glewSearchExtension("GL_ARB_shader_precision", extStart, extEnd); -#endif /* GL_ARB_shader_precision */ -#ifdef GL_ARB_shader_stencil_export - GLEW_ARB_shader_stencil_export = _glewSearchExtension("GL_ARB_shader_stencil_export", extStart, extEnd); -#endif /* GL_ARB_shader_stencil_export */ #ifdef GL_ARB_shader_storage_buffer_object - GLEW_ARB_shader_storage_buffer_object = _glewSearchExtension("GL_ARB_shader_storage_buffer_object", extStart, extEnd); - if (glewExperimental || GLEW_ARB_shader_storage_buffer_object) GLEW_ARB_shader_storage_buffer_object = !_glewInit_GL_ARB_shader_storage_buffer_object(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_shader_storage_buffer_object) GLEW_ARB_shader_storage_buffer_object = !_glewInit_GL_ARB_shader_storage_buffer_object(); #endif /* GL_ARB_shader_storage_buffer_object */ #ifdef GL_ARB_shader_subroutine - GLEW_ARB_shader_subroutine = _glewSearchExtension("GL_ARB_shader_subroutine", extStart, extEnd); - if (glewExperimental || GLEW_ARB_shader_subroutine) GLEW_ARB_shader_subroutine = !_glewInit_GL_ARB_shader_subroutine(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_shader_subroutine) GLEW_ARB_shader_subroutine = !_glewInit_GL_ARB_shader_subroutine(); #endif /* GL_ARB_shader_subroutine */ -#ifdef GL_ARB_shader_texture_image_samples - GLEW_ARB_shader_texture_image_samples = _glewSearchExtension("GL_ARB_shader_texture_image_samples", extStart, extEnd); -#endif /* GL_ARB_shader_texture_image_samples */ -#ifdef GL_ARB_shader_texture_lod - GLEW_ARB_shader_texture_lod = _glewSearchExtension("GL_ARB_shader_texture_lod", extStart, extEnd); -#endif /* GL_ARB_shader_texture_lod */ -#ifdef GL_ARB_shader_viewport_layer_array - GLEW_ARB_shader_viewport_layer_array = _glewSearchExtension("GL_ARB_shader_viewport_layer_array", extStart, extEnd); -#endif /* GL_ARB_shader_viewport_layer_array */ -#ifdef GL_ARB_shading_language_100 - GLEW_ARB_shading_language_100 = _glewSearchExtension("GL_ARB_shading_language_100", extStart, extEnd); -#endif /* GL_ARB_shading_language_100 */ -#ifdef GL_ARB_shading_language_420pack - GLEW_ARB_shading_language_420pack = _glewSearchExtension("GL_ARB_shading_language_420pack", extStart, extEnd); -#endif /* GL_ARB_shading_language_420pack */ #ifdef GL_ARB_shading_language_include - GLEW_ARB_shading_language_include = _glewSearchExtension("GL_ARB_shading_language_include", extStart, extEnd); - if (glewExperimental || GLEW_ARB_shading_language_include) GLEW_ARB_shading_language_include = !_glewInit_GL_ARB_shading_language_include(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_shading_language_include) GLEW_ARB_shading_language_include = !_glewInit_GL_ARB_shading_language_include(); #endif /* GL_ARB_shading_language_include */ -#ifdef GL_ARB_shading_language_packing - GLEW_ARB_shading_language_packing = _glewSearchExtension("GL_ARB_shading_language_packing", extStart, extEnd); -#endif /* GL_ARB_shading_language_packing */ -#ifdef GL_ARB_shadow - GLEW_ARB_shadow = _glewSearchExtension("GL_ARB_shadow", extStart, extEnd); -#endif /* GL_ARB_shadow */ -#ifdef GL_ARB_shadow_ambient - GLEW_ARB_shadow_ambient = _glewSearchExtension("GL_ARB_shadow_ambient", extStart, extEnd); -#endif /* GL_ARB_shadow_ambient */ #ifdef GL_ARB_sparse_buffer - GLEW_ARB_sparse_buffer = _glewSearchExtension("GL_ARB_sparse_buffer", extStart, extEnd); - if (glewExperimental || GLEW_ARB_sparse_buffer) GLEW_ARB_sparse_buffer = !_glewInit_GL_ARB_sparse_buffer(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_sparse_buffer) GLEW_ARB_sparse_buffer = !_glewInit_GL_ARB_sparse_buffer(); #endif /* GL_ARB_sparse_buffer */ #ifdef GL_ARB_sparse_texture - GLEW_ARB_sparse_texture = _glewSearchExtension("GL_ARB_sparse_texture", extStart, extEnd); - if (glewExperimental || GLEW_ARB_sparse_texture) GLEW_ARB_sparse_texture = !_glewInit_GL_ARB_sparse_texture(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_sparse_texture) GLEW_ARB_sparse_texture = !_glewInit_GL_ARB_sparse_texture(); #endif /* GL_ARB_sparse_texture */ -#ifdef GL_ARB_sparse_texture2 - GLEW_ARB_sparse_texture2 = _glewSearchExtension("GL_ARB_sparse_texture2", extStart, extEnd); -#endif /* GL_ARB_sparse_texture2 */ -#ifdef GL_ARB_sparse_texture_clamp - GLEW_ARB_sparse_texture_clamp = _glewSearchExtension("GL_ARB_sparse_texture_clamp", extStart, extEnd); -#endif /* GL_ARB_sparse_texture_clamp */ -#ifdef GL_ARB_stencil_texturing - GLEW_ARB_stencil_texturing = _glewSearchExtension("GL_ARB_stencil_texturing", extStart, extEnd); -#endif /* GL_ARB_stencil_texturing */ #ifdef GL_ARB_sync - GLEW_ARB_sync = _glewSearchExtension("GL_ARB_sync", extStart, extEnd); - if (glewExperimental || GLEW_ARB_sync) GLEW_ARB_sync = !_glewInit_GL_ARB_sync(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_sync) GLEW_ARB_sync = !_glewInit_GL_ARB_sync(); #endif /* GL_ARB_sync */ #ifdef GL_ARB_tessellation_shader - GLEW_ARB_tessellation_shader = _glewSearchExtension("GL_ARB_tessellation_shader", extStart, extEnd); - if (glewExperimental || GLEW_ARB_tessellation_shader) GLEW_ARB_tessellation_shader = !_glewInit_GL_ARB_tessellation_shader(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_tessellation_shader) GLEW_ARB_tessellation_shader = !_glewInit_GL_ARB_tessellation_shader(); #endif /* GL_ARB_tessellation_shader */ #ifdef GL_ARB_texture_barrier - GLEW_ARB_texture_barrier = _glewSearchExtension("GL_ARB_texture_barrier", extStart, extEnd); - if (glewExperimental || GLEW_ARB_texture_barrier) GLEW_ARB_texture_barrier = !_glewInit_GL_ARB_texture_barrier(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_texture_barrier) GLEW_ARB_texture_barrier = !_glewInit_GL_ARB_texture_barrier(); #endif /* GL_ARB_texture_barrier */ -#ifdef GL_ARB_texture_border_clamp - GLEW_ARB_texture_border_clamp = _glewSearchExtension("GL_ARB_texture_border_clamp", extStart, extEnd); -#endif /* GL_ARB_texture_border_clamp */ #ifdef GL_ARB_texture_buffer_object - GLEW_ARB_texture_buffer_object = _glewSearchExtension("GL_ARB_texture_buffer_object", extStart, extEnd); - if (glewExperimental || GLEW_ARB_texture_buffer_object) GLEW_ARB_texture_buffer_object = !_glewInit_GL_ARB_texture_buffer_object(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_texture_buffer_object) GLEW_ARB_texture_buffer_object = !_glewInit_GL_ARB_texture_buffer_object(); #endif /* GL_ARB_texture_buffer_object */ -#ifdef GL_ARB_texture_buffer_object_rgb32 - GLEW_ARB_texture_buffer_object_rgb32 = _glewSearchExtension("GL_ARB_texture_buffer_object_rgb32", extStart, extEnd); -#endif /* GL_ARB_texture_buffer_object_rgb32 */ #ifdef GL_ARB_texture_buffer_range - GLEW_ARB_texture_buffer_range = _glewSearchExtension("GL_ARB_texture_buffer_range", extStart, extEnd); - if (glewExperimental || GLEW_ARB_texture_buffer_range) GLEW_ARB_texture_buffer_range = !_glewInit_GL_ARB_texture_buffer_range(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_texture_buffer_range) GLEW_ARB_texture_buffer_range = !_glewInit_GL_ARB_texture_buffer_range(); #endif /* GL_ARB_texture_buffer_range */ #ifdef GL_ARB_texture_compression - GLEW_ARB_texture_compression = _glewSearchExtension("GL_ARB_texture_compression", extStart, extEnd); - if (glewExperimental || GLEW_ARB_texture_compression) GLEW_ARB_texture_compression = !_glewInit_GL_ARB_texture_compression(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_texture_compression) GLEW_ARB_texture_compression = !_glewInit_GL_ARB_texture_compression(); #endif /* GL_ARB_texture_compression */ -#ifdef GL_ARB_texture_compression_bptc - GLEW_ARB_texture_compression_bptc = _glewSearchExtension("GL_ARB_texture_compression_bptc", extStart, extEnd); -#endif /* GL_ARB_texture_compression_bptc */ -#ifdef GL_ARB_texture_compression_rgtc - GLEW_ARB_texture_compression_rgtc = _glewSearchExtension("GL_ARB_texture_compression_rgtc", extStart, extEnd); -#endif /* GL_ARB_texture_compression_rgtc */ -#ifdef GL_ARB_texture_cube_map - GLEW_ARB_texture_cube_map = _glewSearchExtension("GL_ARB_texture_cube_map", extStart, extEnd); -#endif /* GL_ARB_texture_cube_map */ -#ifdef GL_ARB_texture_cube_map_array - GLEW_ARB_texture_cube_map_array = _glewSearchExtension("GL_ARB_texture_cube_map_array", extStart, extEnd); -#endif /* GL_ARB_texture_cube_map_array */ -#ifdef GL_ARB_texture_env_add - GLEW_ARB_texture_env_add = _glewSearchExtension("GL_ARB_texture_env_add", extStart, extEnd); -#endif /* GL_ARB_texture_env_add */ -#ifdef GL_ARB_texture_env_combine - GLEW_ARB_texture_env_combine = _glewSearchExtension("GL_ARB_texture_env_combine", extStart, extEnd); -#endif /* GL_ARB_texture_env_combine */ -#ifdef GL_ARB_texture_env_crossbar - GLEW_ARB_texture_env_crossbar = _glewSearchExtension("GL_ARB_texture_env_crossbar", extStart, extEnd); -#endif /* GL_ARB_texture_env_crossbar */ -#ifdef GL_ARB_texture_env_dot3 - GLEW_ARB_texture_env_dot3 = _glewSearchExtension("GL_ARB_texture_env_dot3", extStart, extEnd); -#endif /* GL_ARB_texture_env_dot3 */ -#ifdef GL_ARB_texture_filter_minmax - GLEW_ARB_texture_filter_minmax = _glewSearchExtension("GL_ARB_texture_filter_minmax", extStart, extEnd); -#endif /* GL_ARB_texture_filter_minmax */ -#ifdef GL_ARB_texture_float - GLEW_ARB_texture_float = _glewSearchExtension("GL_ARB_texture_float", extStart, extEnd); -#endif /* GL_ARB_texture_float */ -#ifdef GL_ARB_texture_gather - GLEW_ARB_texture_gather = _glewSearchExtension("GL_ARB_texture_gather", extStart, extEnd); -#endif /* GL_ARB_texture_gather */ -#ifdef GL_ARB_texture_mirror_clamp_to_edge - GLEW_ARB_texture_mirror_clamp_to_edge = _glewSearchExtension("GL_ARB_texture_mirror_clamp_to_edge", extStart, extEnd); -#endif /* GL_ARB_texture_mirror_clamp_to_edge */ -#ifdef GL_ARB_texture_mirrored_repeat - GLEW_ARB_texture_mirrored_repeat = _glewSearchExtension("GL_ARB_texture_mirrored_repeat", extStart, extEnd); -#endif /* GL_ARB_texture_mirrored_repeat */ #ifdef GL_ARB_texture_multisample - GLEW_ARB_texture_multisample = _glewSearchExtension("GL_ARB_texture_multisample", extStart, extEnd); - if (glewExperimental || GLEW_ARB_texture_multisample) GLEW_ARB_texture_multisample = !_glewInit_GL_ARB_texture_multisample(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_texture_multisample) GLEW_ARB_texture_multisample = !_glewInit_GL_ARB_texture_multisample(); #endif /* GL_ARB_texture_multisample */ -#ifdef GL_ARB_texture_non_power_of_two - GLEW_ARB_texture_non_power_of_two = _glewSearchExtension("GL_ARB_texture_non_power_of_two", extStart, extEnd); -#endif /* GL_ARB_texture_non_power_of_two */ -#ifdef GL_ARB_texture_query_levels - GLEW_ARB_texture_query_levels = _glewSearchExtension("GL_ARB_texture_query_levels", extStart, extEnd); -#endif /* GL_ARB_texture_query_levels */ -#ifdef GL_ARB_texture_query_lod - GLEW_ARB_texture_query_lod = _glewSearchExtension("GL_ARB_texture_query_lod", extStart, extEnd); -#endif /* GL_ARB_texture_query_lod */ -#ifdef GL_ARB_texture_rectangle - GLEW_ARB_texture_rectangle = _glewSearchExtension("GL_ARB_texture_rectangle", extStart, extEnd); -#endif /* GL_ARB_texture_rectangle */ -#ifdef GL_ARB_texture_rg - GLEW_ARB_texture_rg = _glewSearchExtension("GL_ARB_texture_rg", extStart, extEnd); -#endif /* GL_ARB_texture_rg */ -#ifdef GL_ARB_texture_rgb10_a2ui - GLEW_ARB_texture_rgb10_a2ui = _glewSearchExtension("GL_ARB_texture_rgb10_a2ui", extStart, extEnd); -#endif /* GL_ARB_texture_rgb10_a2ui */ -#ifdef GL_ARB_texture_stencil8 - GLEW_ARB_texture_stencil8 = _glewSearchExtension("GL_ARB_texture_stencil8", extStart, extEnd); -#endif /* GL_ARB_texture_stencil8 */ #ifdef GL_ARB_texture_storage - GLEW_ARB_texture_storage = _glewSearchExtension("GL_ARB_texture_storage", extStart, extEnd); - if (glewExperimental || GLEW_ARB_texture_storage) GLEW_ARB_texture_storage = !_glewInit_GL_ARB_texture_storage(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_texture_storage) GLEW_ARB_texture_storage = !_glewInit_GL_ARB_texture_storage(); #endif /* GL_ARB_texture_storage */ #ifdef GL_ARB_texture_storage_multisample - GLEW_ARB_texture_storage_multisample = _glewSearchExtension("GL_ARB_texture_storage_multisample", extStart, extEnd); - if (glewExperimental || GLEW_ARB_texture_storage_multisample) GLEW_ARB_texture_storage_multisample = !_glewInit_GL_ARB_texture_storage_multisample(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_texture_storage_multisample) GLEW_ARB_texture_storage_multisample = !_glewInit_GL_ARB_texture_storage_multisample(); #endif /* GL_ARB_texture_storage_multisample */ -#ifdef GL_ARB_texture_swizzle - GLEW_ARB_texture_swizzle = _glewSearchExtension("GL_ARB_texture_swizzle", extStart, extEnd); -#endif /* GL_ARB_texture_swizzle */ #ifdef GL_ARB_texture_view - GLEW_ARB_texture_view = _glewSearchExtension("GL_ARB_texture_view", extStart, extEnd); - if (glewExperimental || GLEW_ARB_texture_view) GLEW_ARB_texture_view = !_glewInit_GL_ARB_texture_view(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_texture_view) GLEW_ARB_texture_view = !_glewInit_GL_ARB_texture_view(); #endif /* GL_ARB_texture_view */ #ifdef GL_ARB_timer_query - GLEW_ARB_timer_query = _glewSearchExtension("GL_ARB_timer_query", extStart, extEnd); - if (glewExperimental || GLEW_ARB_timer_query) GLEW_ARB_timer_query = !_glewInit_GL_ARB_timer_query(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_timer_query) GLEW_ARB_timer_query = !_glewInit_GL_ARB_timer_query(); #endif /* GL_ARB_timer_query */ #ifdef GL_ARB_transform_feedback2 - GLEW_ARB_transform_feedback2 = _glewSearchExtension("GL_ARB_transform_feedback2", extStart, extEnd); - if (glewExperimental || GLEW_ARB_transform_feedback2) GLEW_ARB_transform_feedback2 = !_glewInit_GL_ARB_transform_feedback2(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_transform_feedback2) GLEW_ARB_transform_feedback2 = !_glewInit_GL_ARB_transform_feedback2(); #endif /* GL_ARB_transform_feedback2 */ #ifdef GL_ARB_transform_feedback3 - GLEW_ARB_transform_feedback3 = _glewSearchExtension("GL_ARB_transform_feedback3", extStart, extEnd); - if (glewExperimental || GLEW_ARB_transform_feedback3) GLEW_ARB_transform_feedback3 = !_glewInit_GL_ARB_transform_feedback3(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_transform_feedback3) GLEW_ARB_transform_feedback3 = !_glewInit_GL_ARB_transform_feedback3(); #endif /* GL_ARB_transform_feedback3 */ #ifdef GL_ARB_transform_feedback_instanced - GLEW_ARB_transform_feedback_instanced = _glewSearchExtension("GL_ARB_transform_feedback_instanced", extStart, extEnd); - if (glewExperimental || GLEW_ARB_transform_feedback_instanced) GLEW_ARB_transform_feedback_instanced = !_glewInit_GL_ARB_transform_feedback_instanced(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_transform_feedback_instanced) GLEW_ARB_transform_feedback_instanced = !_glewInit_GL_ARB_transform_feedback_instanced(); #endif /* GL_ARB_transform_feedback_instanced */ -#ifdef GL_ARB_transform_feedback_overflow_query - GLEW_ARB_transform_feedback_overflow_query = _glewSearchExtension("GL_ARB_transform_feedback_overflow_query", extStart, extEnd); -#endif /* GL_ARB_transform_feedback_overflow_query */ #ifdef GL_ARB_transpose_matrix - GLEW_ARB_transpose_matrix = _glewSearchExtension("GL_ARB_transpose_matrix", extStart, extEnd); - if (glewExperimental || GLEW_ARB_transpose_matrix) GLEW_ARB_transpose_matrix = !_glewInit_GL_ARB_transpose_matrix(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_transpose_matrix) GLEW_ARB_transpose_matrix = !_glewInit_GL_ARB_transpose_matrix(); #endif /* GL_ARB_transpose_matrix */ #ifdef GL_ARB_uniform_buffer_object - GLEW_ARB_uniform_buffer_object = _glewSearchExtension("GL_ARB_uniform_buffer_object", extStart, extEnd); - if (glewExperimental || GLEW_ARB_uniform_buffer_object) GLEW_ARB_uniform_buffer_object = !_glewInit_GL_ARB_uniform_buffer_object(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_uniform_buffer_object) GLEW_ARB_uniform_buffer_object = !_glewInit_GL_ARB_uniform_buffer_object(); #endif /* GL_ARB_uniform_buffer_object */ -#ifdef GL_ARB_vertex_array_bgra - GLEW_ARB_vertex_array_bgra = _glewSearchExtension("GL_ARB_vertex_array_bgra", extStart, extEnd); -#endif /* GL_ARB_vertex_array_bgra */ #ifdef GL_ARB_vertex_array_object - GLEW_ARB_vertex_array_object = _glewSearchExtension("GL_ARB_vertex_array_object", extStart, extEnd); - if (glewExperimental || GLEW_ARB_vertex_array_object) GLEW_ARB_vertex_array_object = !_glewInit_GL_ARB_vertex_array_object(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_vertex_array_object) GLEW_ARB_vertex_array_object = !_glewInit_GL_ARB_vertex_array_object(); #endif /* GL_ARB_vertex_array_object */ #ifdef GL_ARB_vertex_attrib_64bit - GLEW_ARB_vertex_attrib_64bit = _glewSearchExtension("GL_ARB_vertex_attrib_64bit", extStart, extEnd); - if (glewExperimental || GLEW_ARB_vertex_attrib_64bit) GLEW_ARB_vertex_attrib_64bit = !_glewInit_GL_ARB_vertex_attrib_64bit(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_vertex_attrib_64bit) GLEW_ARB_vertex_attrib_64bit = !_glewInit_GL_ARB_vertex_attrib_64bit(); #endif /* GL_ARB_vertex_attrib_64bit */ #ifdef GL_ARB_vertex_attrib_binding - GLEW_ARB_vertex_attrib_binding = _glewSearchExtension("GL_ARB_vertex_attrib_binding", extStart, extEnd); - if (glewExperimental || GLEW_ARB_vertex_attrib_binding) GLEW_ARB_vertex_attrib_binding = !_glewInit_GL_ARB_vertex_attrib_binding(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_vertex_attrib_binding) GLEW_ARB_vertex_attrib_binding = !_glewInit_GL_ARB_vertex_attrib_binding(); #endif /* GL_ARB_vertex_attrib_binding */ #ifdef GL_ARB_vertex_blend - GLEW_ARB_vertex_blend = _glewSearchExtension("GL_ARB_vertex_blend", extStart, extEnd); - if (glewExperimental || GLEW_ARB_vertex_blend) GLEW_ARB_vertex_blend = !_glewInit_GL_ARB_vertex_blend(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_vertex_blend) GLEW_ARB_vertex_blend = !_glewInit_GL_ARB_vertex_blend(); #endif /* GL_ARB_vertex_blend */ #ifdef GL_ARB_vertex_buffer_object - GLEW_ARB_vertex_buffer_object = _glewSearchExtension("GL_ARB_vertex_buffer_object", extStart, extEnd); - if (glewExperimental || GLEW_ARB_vertex_buffer_object) GLEW_ARB_vertex_buffer_object = !_glewInit_GL_ARB_vertex_buffer_object(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_vertex_buffer_object) GLEW_ARB_vertex_buffer_object = !_glewInit_GL_ARB_vertex_buffer_object(); #endif /* GL_ARB_vertex_buffer_object */ #ifdef GL_ARB_vertex_program - GLEW_ARB_vertex_program = _glewSearchExtension("GL_ARB_vertex_program", extStart, extEnd); - if (glewExperimental || GLEW_ARB_vertex_program) GLEW_ARB_vertex_program = !_glewInit_GL_ARB_vertex_program(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_vertex_program) GLEW_ARB_vertex_program = !_glewInit_GL_ARB_vertex_program(); #endif /* GL_ARB_vertex_program */ #ifdef GL_ARB_vertex_shader - GLEW_ARB_vertex_shader = _glewSearchExtension("GL_ARB_vertex_shader", extStart, extEnd); - if (glewExperimental || GLEW_ARB_vertex_shader) { GLEW_ARB_vertex_shader = !_glewInit_GL_ARB_vertex_shader(GLEW_CONTEXT_ARG_VAR_INIT); _glewInit_GL_ARB_vertex_program(GLEW_CONTEXT_ARG_VAR_INIT); } + if (glewExperimental || GLEW_ARB_vertex_shader) { GLEW_ARB_vertex_shader = !_glewInit_GL_ARB_vertex_shader(); _glewInit_GL_ARB_vertex_program(); } #endif /* GL_ARB_vertex_shader */ -#ifdef GL_ARB_vertex_type_10f_11f_11f_rev - GLEW_ARB_vertex_type_10f_11f_11f_rev = _glewSearchExtension("GL_ARB_vertex_type_10f_11f_11f_rev", extStart, extEnd); -#endif /* GL_ARB_vertex_type_10f_11f_11f_rev */ #ifdef GL_ARB_vertex_type_2_10_10_10_rev - GLEW_ARB_vertex_type_2_10_10_10_rev = _glewSearchExtension("GL_ARB_vertex_type_2_10_10_10_rev", extStart, extEnd); - if (glewExperimental || GLEW_ARB_vertex_type_2_10_10_10_rev) GLEW_ARB_vertex_type_2_10_10_10_rev = !_glewInit_GL_ARB_vertex_type_2_10_10_10_rev(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_vertex_type_2_10_10_10_rev) GLEW_ARB_vertex_type_2_10_10_10_rev = !_glewInit_GL_ARB_vertex_type_2_10_10_10_rev(); #endif /* GL_ARB_vertex_type_2_10_10_10_rev */ #ifdef GL_ARB_viewport_array - GLEW_ARB_viewport_array = _glewSearchExtension("GL_ARB_viewport_array", extStart, extEnd); - if (glewExperimental || GLEW_ARB_viewport_array) GLEW_ARB_viewport_array = !_glewInit_GL_ARB_viewport_array(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_viewport_array) GLEW_ARB_viewport_array = !_glewInit_GL_ARB_viewport_array(); #endif /* GL_ARB_viewport_array */ #ifdef GL_ARB_window_pos - GLEW_ARB_window_pos = _glewSearchExtension("GL_ARB_window_pos", extStart, extEnd); - if (glewExperimental || GLEW_ARB_window_pos) GLEW_ARB_window_pos = !_glewInit_GL_ARB_window_pos(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ARB_window_pos) GLEW_ARB_window_pos = !_glewInit_GL_ARB_window_pos(); #endif /* GL_ARB_window_pos */ -#ifdef GL_ATIX_point_sprites - GLEW_ATIX_point_sprites = _glewSearchExtension("GL_ATIX_point_sprites", extStart, extEnd); -#endif /* GL_ATIX_point_sprites */ -#ifdef GL_ATIX_texture_env_combine3 - GLEW_ATIX_texture_env_combine3 = _glewSearchExtension("GL_ATIX_texture_env_combine3", extStart, extEnd); -#endif /* GL_ATIX_texture_env_combine3 */ -#ifdef GL_ATIX_texture_env_route - GLEW_ATIX_texture_env_route = _glewSearchExtension("GL_ATIX_texture_env_route", extStart, extEnd); -#endif /* GL_ATIX_texture_env_route */ -#ifdef GL_ATIX_vertex_shader_output_point_size - GLEW_ATIX_vertex_shader_output_point_size = _glewSearchExtension("GL_ATIX_vertex_shader_output_point_size", extStart, extEnd); -#endif /* GL_ATIX_vertex_shader_output_point_size */ #ifdef GL_ATI_draw_buffers - GLEW_ATI_draw_buffers = _glewSearchExtension("GL_ATI_draw_buffers", extStart, extEnd); - if (glewExperimental || GLEW_ATI_draw_buffers) GLEW_ATI_draw_buffers = !_glewInit_GL_ATI_draw_buffers(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ATI_draw_buffers) GLEW_ATI_draw_buffers = !_glewInit_GL_ATI_draw_buffers(); #endif /* GL_ATI_draw_buffers */ #ifdef GL_ATI_element_array - GLEW_ATI_element_array = _glewSearchExtension("GL_ATI_element_array", extStart, extEnd); - if (glewExperimental || GLEW_ATI_element_array) GLEW_ATI_element_array = !_glewInit_GL_ATI_element_array(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ATI_element_array) GLEW_ATI_element_array = !_glewInit_GL_ATI_element_array(); #endif /* GL_ATI_element_array */ #ifdef GL_ATI_envmap_bumpmap - GLEW_ATI_envmap_bumpmap = _glewSearchExtension("GL_ATI_envmap_bumpmap", extStart, extEnd); - if (glewExperimental || GLEW_ATI_envmap_bumpmap) GLEW_ATI_envmap_bumpmap = !_glewInit_GL_ATI_envmap_bumpmap(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ATI_envmap_bumpmap) GLEW_ATI_envmap_bumpmap = !_glewInit_GL_ATI_envmap_bumpmap(); #endif /* GL_ATI_envmap_bumpmap */ #ifdef GL_ATI_fragment_shader - GLEW_ATI_fragment_shader = _glewSearchExtension("GL_ATI_fragment_shader", extStart, extEnd); - if (glewExperimental || GLEW_ATI_fragment_shader) GLEW_ATI_fragment_shader = !_glewInit_GL_ATI_fragment_shader(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ATI_fragment_shader) GLEW_ATI_fragment_shader = !_glewInit_GL_ATI_fragment_shader(); #endif /* GL_ATI_fragment_shader */ #ifdef GL_ATI_map_object_buffer - GLEW_ATI_map_object_buffer = _glewSearchExtension("GL_ATI_map_object_buffer", extStart, extEnd); - if (glewExperimental || GLEW_ATI_map_object_buffer) GLEW_ATI_map_object_buffer = !_glewInit_GL_ATI_map_object_buffer(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ATI_map_object_buffer) GLEW_ATI_map_object_buffer = !_glewInit_GL_ATI_map_object_buffer(); #endif /* GL_ATI_map_object_buffer */ -#ifdef GL_ATI_meminfo - GLEW_ATI_meminfo = _glewSearchExtension("GL_ATI_meminfo", extStart, extEnd); -#endif /* GL_ATI_meminfo */ #ifdef GL_ATI_pn_triangles - GLEW_ATI_pn_triangles = _glewSearchExtension("GL_ATI_pn_triangles", extStart, extEnd); - if (glewExperimental || GLEW_ATI_pn_triangles) GLEW_ATI_pn_triangles = !_glewInit_GL_ATI_pn_triangles(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ATI_pn_triangles) GLEW_ATI_pn_triangles = !_glewInit_GL_ATI_pn_triangles(); #endif /* GL_ATI_pn_triangles */ #ifdef GL_ATI_separate_stencil - GLEW_ATI_separate_stencil = _glewSearchExtension("GL_ATI_separate_stencil", extStart, extEnd); - if (glewExperimental || GLEW_ATI_separate_stencil) GLEW_ATI_separate_stencil = !_glewInit_GL_ATI_separate_stencil(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ATI_separate_stencil) GLEW_ATI_separate_stencil = !_glewInit_GL_ATI_separate_stencil(); #endif /* GL_ATI_separate_stencil */ -#ifdef GL_ATI_shader_texture_lod - GLEW_ATI_shader_texture_lod = _glewSearchExtension("GL_ATI_shader_texture_lod", extStart, extEnd); -#endif /* GL_ATI_shader_texture_lod */ -#ifdef GL_ATI_text_fragment_shader - GLEW_ATI_text_fragment_shader = _glewSearchExtension("GL_ATI_text_fragment_shader", extStart, extEnd); -#endif /* GL_ATI_text_fragment_shader */ -#ifdef GL_ATI_texture_compression_3dc - GLEW_ATI_texture_compression_3dc = _glewSearchExtension("GL_ATI_texture_compression_3dc", extStart, extEnd); -#endif /* GL_ATI_texture_compression_3dc */ -#ifdef GL_ATI_texture_env_combine3 - GLEW_ATI_texture_env_combine3 = _glewSearchExtension("GL_ATI_texture_env_combine3", extStart, extEnd); -#endif /* GL_ATI_texture_env_combine3 */ -#ifdef GL_ATI_texture_float - GLEW_ATI_texture_float = _glewSearchExtension("GL_ATI_texture_float", extStart, extEnd); -#endif /* GL_ATI_texture_float */ -#ifdef GL_ATI_texture_mirror_once - GLEW_ATI_texture_mirror_once = _glewSearchExtension("GL_ATI_texture_mirror_once", extStart, extEnd); -#endif /* GL_ATI_texture_mirror_once */ #ifdef GL_ATI_vertex_array_object - GLEW_ATI_vertex_array_object = _glewSearchExtension("GL_ATI_vertex_array_object", extStart, extEnd); - if (glewExperimental || GLEW_ATI_vertex_array_object) GLEW_ATI_vertex_array_object = !_glewInit_GL_ATI_vertex_array_object(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ATI_vertex_array_object) GLEW_ATI_vertex_array_object = !_glewInit_GL_ATI_vertex_array_object(); #endif /* GL_ATI_vertex_array_object */ #ifdef GL_ATI_vertex_attrib_array_object - GLEW_ATI_vertex_attrib_array_object = _glewSearchExtension("GL_ATI_vertex_attrib_array_object", extStart, extEnd); - if (glewExperimental || GLEW_ATI_vertex_attrib_array_object) GLEW_ATI_vertex_attrib_array_object = !_glewInit_GL_ATI_vertex_attrib_array_object(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ATI_vertex_attrib_array_object) GLEW_ATI_vertex_attrib_array_object = !_glewInit_GL_ATI_vertex_attrib_array_object(); #endif /* GL_ATI_vertex_attrib_array_object */ #ifdef GL_ATI_vertex_streams - GLEW_ATI_vertex_streams = _glewSearchExtension("GL_ATI_vertex_streams", extStart, extEnd); - if (glewExperimental || GLEW_ATI_vertex_streams) GLEW_ATI_vertex_streams = !_glewInit_GL_ATI_vertex_streams(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_ATI_vertex_streams) GLEW_ATI_vertex_streams = !_glewInit_GL_ATI_vertex_streams(); #endif /* GL_ATI_vertex_streams */ -#ifdef GL_EXT_422_pixels - GLEW_EXT_422_pixels = _glewSearchExtension("GL_EXT_422_pixels", extStart, extEnd); -#endif /* GL_EXT_422_pixels */ -#ifdef GL_EXT_Cg_shader - GLEW_EXT_Cg_shader = _glewSearchExtension("GL_EXT_Cg_shader", extStart, extEnd); -#endif /* GL_EXT_Cg_shader */ -#ifdef GL_EXT_abgr - GLEW_EXT_abgr = _glewSearchExtension("GL_EXT_abgr", extStart, extEnd); -#endif /* GL_EXT_abgr */ -#ifdef GL_EXT_bgra - GLEW_EXT_bgra = _glewSearchExtension("GL_EXT_bgra", extStart, extEnd); -#endif /* GL_EXT_bgra */ +#ifdef GL_EXT_EGL_image_storage + if (glewExperimental || GLEW_EXT_EGL_image_storage) GLEW_EXT_EGL_image_storage = !_glewInit_GL_EXT_EGL_image_storage(); +#endif /* GL_EXT_EGL_image_storage */ +#ifdef GL_EXT_base_instance + if (glewExperimental || GLEW_EXT_base_instance) GLEW_EXT_base_instance = !_glewInit_GL_EXT_base_instance(); +#endif /* GL_EXT_base_instance */ #ifdef GL_EXT_bindable_uniform - GLEW_EXT_bindable_uniform = _glewSearchExtension("GL_EXT_bindable_uniform", extStart, extEnd); - if (glewExperimental || GLEW_EXT_bindable_uniform) GLEW_EXT_bindable_uniform = !_glewInit_GL_EXT_bindable_uniform(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_bindable_uniform) GLEW_EXT_bindable_uniform = !_glewInit_GL_EXT_bindable_uniform(); #endif /* GL_EXT_bindable_uniform */ #ifdef GL_EXT_blend_color - GLEW_EXT_blend_color = _glewSearchExtension("GL_EXT_blend_color", extStart, extEnd); - if (glewExperimental || GLEW_EXT_blend_color) GLEW_EXT_blend_color = !_glewInit_GL_EXT_blend_color(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_blend_color) GLEW_EXT_blend_color = !_glewInit_GL_EXT_blend_color(); #endif /* GL_EXT_blend_color */ #ifdef GL_EXT_blend_equation_separate - GLEW_EXT_blend_equation_separate = _glewSearchExtension("GL_EXT_blend_equation_separate", extStart, extEnd); - if (glewExperimental || GLEW_EXT_blend_equation_separate) GLEW_EXT_blend_equation_separate = !_glewInit_GL_EXT_blend_equation_separate(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_blend_equation_separate) GLEW_EXT_blend_equation_separate = !_glewInit_GL_EXT_blend_equation_separate(); #endif /* GL_EXT_blend_equation_separate */ +#ifdef GL_EXT_blend_func_extended + if (glewExperimental || GLEW_EXT_blend_func_extended) GLEW_EXT_blend_func_extended = !_glewInit_GL_EXT_blend_func_extended(); +#endif /* GL_EXT_blend_func_extended */ #ifdef GL_EXT_blend_func_separate - GLEW_EXT_blend_func_separate = _glewSearchExtension("GL_EXT_blend_func_separate", extStart, extEnd); - if (glewExperimental || GLEW_EXT_blend_func_separate) GLEW_EXT_blend_func_separate = !_glewInit_GL_EXT_blend_func_separate(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_blend_func_separate) GLEW_EXT_blend_func_separate = !_glewInit_GL_EXT_blend_func_separate(); #endif /* GL_EXT_blend_func_separate */ -#ifdef GL_EXT_blend_logic_op - GLEW_EXT_blend_logic_op = _glewSearchExtension("GL_EXT_blend_logic_op", extStart, extEnd); -#endif /* GL_EXT_blend_logic_op */ #ifdef GL_EXT_blend_minmax - GLEW_EXT_blend_minmax = _glewSearchExtension("GL_EXT_blend_minmax", extStart, extEnd); - if (glewExperimental || GLEW_EXT_blend_minmax) GLEW_EXT_blend_minmax = !_glewInit_GL_EXT_blend_minmax(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_blend_minmax) GLEW_EXT_blend_minmax = !_glewInit_GL_EXT_blend_minmax(); #endif /* GL_EXT_blend_minmax */ -#ifdef GL_EXT_blend_subtract - GLEW_EXT_blend_subtract = _glewSearchExtension("GL_EXT_blend_subtract", extStart, extEnd); -#endif /* GL_EXT_blend_subtract */ -#ifdef GL_EXT_clip_volume_hint - GLEW_EXT_clip_volume_hint = _glewSearchExtension("GL_EXT_clip_volume_hint", extStart, extEnd); -#endif /* GL_EXT_clip_volume_hint */ -#ifdef GL_EXT_cmyka - GLEW_EXT_cmyka = _glewSearchExtension("GL_EXT_cmyka", extStart, extEnd); -#endif /* GL_EXT_cmyka */ +#ifdef GL_EXT_buffer_storage + if (glewExperimental || GLEW_EXT_buffer_storage) GLEW_EXT_buffer_storage = !_glewInit_GL_EXT_buffer_storage(); +#endif /* GL_EXT_buffer_storage */ +#ifdef GL_EXT_clear_texture + if (glewExperimental || GLEW_EXT_clear_texture) GLEW_EXT_clear_texture = !_glewInit_GL_EXT_clear_texture(); +#endif /* GL_EXT_clear_texture */ +#ifdef GL_EXT_clip_control + if (glewExperimental || GLEW_EXT_clip_control) GLEW_EXT_clip_control = !_glewInit_GL_EXT_clip_control(); +#endif /* GL_EXT_clip_control */ #ifdef GL_EXT_color_subtable - GLEW_EXT_color_subtable = _glewSearchExtension("GL_EXT_color_subtable", extStart, extEnd); - if (glewExperimental || GLEW_EXT_color_subtable) GLEW_EXT_color_subtable = !_glewInit_GL_EXT_color_subtable(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_color_subtable) GLEW_EXT_color_subtable = !_glewInit_GL_EXT_color_subtable(); #endif /* GL_EXT_color_subtable */ #ifdef GL_EXT_compiled_vertex_array - GLEW_EXT_compiled_vertex_array = _glewSearchExtension("GL_EXT_compiled_vertex_array", extStart, extEnd); - if (glewExperimental || GLEW_EXT_compiled_vertex_array) GLEW_EXT_compiled_vertex_array = !_glewInit_GL_EXT_compiled_vertex_array(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_compiled_vertex_array) GLEW_EXT_compiled_vertex_array = !_glewInit_GL_EXT_compiled_vertex_array(); #endif /* GL_EXT_compiled_vertex_array */ #ifdef GL_EXT_convolution - GLEW_EXT_convolution = _glewSearchExtension("GL_EXT_convolution", extStart, extEnd); - if (glewExperimental || GLEW_EXT_convolution) GLEW_EXT_convolution = !_glewInit_GL_EXT_convolution(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_convolution) GLEW_EXT_convolution = !_glewInit_GL_EXT_convolution(); #endif /* GL_EXT_convolution */ #ifdef GL_EXT_coordinate_frame - GLEW_EXT_coordinate_frame = _glewSearchExtension("GL_EXT_coordinate_frame", extStart, extEnd); - if (glewExperimental || GLEW_EXT_coordinate_frame) GLEW_EXT_coordinate_frame = !_glewInit_GL_EXT_coordinate_frame(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_coordinate_frame) GLEW_EXT_coordinate_frame = !_glewInit_GL_EXT_coordinate_frame(); #endif /* GL_EXT_coordinate_frame */ +#ifdef GL_EXT_copy_image + if (glewExperimental || GLEW_EXT_copy_image) GLEW_EXT_copy_image = !_glewInit_GL_EXT_copy_image(); +#endif /* GL_EXT_copy_image */ #ifdef GL_EXT_copy_texture - GLEW_EXT_copy_texture = _glewSearchExtension("GL_EXT_copy_texture", extStart, extEnd); - if (glewExperimental || GLEW_EXT_copy_texture) GLEW_EXT_copy_texture = !_glewInit_GL_EXT_copy_texture(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_copy_texture) GLEW_EXT_copy_texture = !_glewInit_GL_EXT_copy_texture(); #endif /* GL_EXT_copy_texture */ #ifdef GL_EXT_cull_vertex - GLEW_EXT_cull_vertex = _glewSearchExtension("GL_EXT_cull_vertex", extStart, extEnd); - if (glewExperimental || GLEW_EXT_cull_vertex) GLEW_EXT_cull_vertex = !_glewInit_GL_EXT_cull_vertex(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_cull_vertex) GLEW_EXT_cull_vertex = !_glewInit_GL_EXT_cull_vertex(); #endif /* GL_EXT_cull_vertex */ #ifdef GL_EXT_debug_label - GLEW_EXT_debug_label = _glewSearchExtension("GL_EXT_debug_label", extStart, extEnd); - if (glewExperimental || GLEW_EXT_debug_label) GLEW_EXT_debug_label = !_glewInit_GL_EXT_debug_label(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_debug_label) GLEW_EXT_debug_label = !_glewInit_GL_EXT_debug_label(); #endif /* GL_EXT_debug_label */ #ifdef GL_EXT_debug_marker - GLEW_EXT_debug_marker = _glewSearchExtension("GL_EXT_debug_marker", extStart, extEnd); - if (glewExperimental || GLEW_EXT_debug_marker) GLEW_EXT_debug_marker = !_glewInit_GL_EXT_debug_marker(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_debug_marker) GLEW_EXT_debug_marker = !_glewInit_GL_EXT_debug_marker(); #endif /* GL_EXT_debug_marker */ #ifdef GL_EXT_depth_bounds_test - GLEW_EXT_depth_bounds_test = _glewSearchExtension("GL_EXT_depth_bounds_test", extStart, extEnd); - if (glewExperimental || GLEW_EXT_depth_bounds_test) GLEW_EXT_depth_bounds_test = !_glewInit_GL_EXT_depth_bounds_test(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_depth_bounds_test) GLEW_EXT_depth_bounds_test = !_glewInit_GL_EXT_depth_bounds_test(); #endif /* GL_EXT_depth_bounds_test */ #ifdef GL_EXT_direct_state_access - GLEW_EXT_direct_state_access = _glewSearchExtension("GL_EXT_direct_state_access", extStart, extEnd); - if (glewExperimental || GLEW_EXT_direct_state_access) GLEW_EXT_direct_state_access = !_glewInit_GL_EXT_direct_state_access(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_direct_state_access) GLEW_EXT_direct_state_access = !_glewInit_GL_EXT_direct_state_access(); #endif /* GL_EXT_direct_state_access */ +#ifdef GL_EXT_discard_framebuffer + if (glewExperimental || GLEW_EXT_discard_framebuffer) GLEW_EXT_discard_framebuffer = !_glewInit_GL_EXT_discard_framebuffer(); +#endif /* GL_EXT_discard_framebuffer */ +#ifdef GL_EXT_disjoint_timer_query + if (glewExperimental || GLEW_EXT_disjoint_timer_query) GLEW_EXT_disjoint_timer_query = !_glewInit_GL_EXT_disjoint_timer_query(); +#endif /* GL_EXT_disjoint_timer_query */ +#ifdef GL_EXT_draw_buffers + if (glewExperimental || GLEW_EXT_draw_buffers) GLEW_EXT_draw_buffers = !_glewInit_GL_EXT_draw_buffers(); +#endif /* GL_EXT_draw_buffers */ #ifdef GL_EXT_draw_buffers2 - GLEW_EXT_draw_buffers2 = _glewSearchExtension("GL_EXT_draw_buffers2", extStart, extEnd); - if (glewExperimental || GLEW_EXT_draw_buffers2) GLEW_EXT_draw_buffers2 = !_glewInit_GL_EXT_draw_buffers2(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_draw_buffers2) GLEW_EXT_draw_buffers2 = !_glewInit_GL_EXT_draw_buffers2(); #endif /* GL_EXT_draw_buffers2 */ +#ifdef GL_EXT_draw_buffers_indexed + if (glewExperimental || GLEW_EXT_draw_buffers_indexed) GLEW_EXT_draw_buffers_indexed = !_glewInit_GL_EXT_draw_buffers_indexed(); +#endif /* GL_EXT_draw_buffers_indexed */ +#ifdef GL_EXT_draw_elements_base_vertex + if (glewExperimental || GLEW_EXT_draw_elements_base_vertex) GLEW_EXT_draw_elements_base_vertex = !_glewInit_GL_EXT_draw_elements_base_vertex(); +#endif /* GL_EXT_draw_elements_base_vertex */ #ifdef GL_EXT_draw_instanced - GLEW_EXT_draw_instanced = _glewSearchExtension("GL_EXT_draw_instanced", extStart, extEnd); - if (glewExperimental || GLEW_EXT_draw_instanced) GLEW_EXT_draw_instanced = !_glewInit_GL_EXT_draw_instanced(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_draw_instanced) GLEW_EXT_draw_instanced = !_glewInit_GL_EXT_draw_instanced(); #endif /* GL_EXT_draw_instanced */ #ifdef GL_EXT_draw_range_elements - GLEW_EXT_draw_range_elements = _glewSearchExtension("GL_EXT_draw_range_elements", extStart, extEnd); - if (glewExperimental || GLEW_EXT_draw_range_elements) GLEW_EXT_draw_range_elements = !_glewInit_GL_EXT_draw_range_elements(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_draw_range_elements) GLEW_EXT_draw_range_elements = !_glewInit_GL_EXT_draw_range_elements(); #endif /* GL_EXT_draw_range_elements */ +#ifdef GL_EXT_draw_transform_feedback + if (glewExperimental || GLEW_EXT_draw_transform_feedback) GLEW_EXT_draw_transform_feedback = !_glewInit_GL_EXT_draw_transform_feedback(); +#endif /* GL_EXT_draw_transform_feedback */ +#ifdef GL_EXT_external_buffer + if (glewExperimental || GLEW_EXT_external_buffer) GLEW_EXT_external_buffer = !_glewInit_GL_EXT_external_buffer(); +#endif /* GL_EXT_external_buffer */ #ifdef GL_EXT_fog_coord - GLEW_EXT_fog_coord = _glewSearchExtension("GL_EXT_fog_coord", extStart, extEnd); - if (glewExperimental || GLEW_EXT_fog_coord) GLEW_EXT_fog_coord = !_glewInit_GL_EXT_fog_coord(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_fog_coord) GLEW_EXT_fog_coord = !_glewInit_GL_EXT_fog_coord(); #endif /* GL_EXT_fog_coord */ #ifdef GL_EXT_fragment_lighting - GLEW_EXT_fragment_lighting = _glewSearchExtension("GL_EXT_fragment_lighting", extStart, extEnd); - if (glewExperimental || GLEW_EXT_fragment_lighting) GLEW_EXT_fragment_lighting = !_glewInit_GL_EXT_fragment_lighting(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_fragment_lighting) GLEW_EXT_fragment_lighting = !_glewInit_GL_EXT_fragment_lighting(); #endif /* GL_EXT_fragment_lighting */ #ifdef GL_EXT_framebuffer_blit - GLEW_EXT_framebuffer_blit = _glewSearchExtension("GL_EXT_framebuffer_blit", extStart, extEnd); - if (glewExperimental || GLEW_EXT_framebuffer_blit) GLEW_EXT_framebuffer_blit = !_glewInit_GL_EXT_framebuffer_blit(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_framebuffer_blit) GLEW_EXT_framebuffer_blit = !_glewInit_GL_EXT_framebuffer_blit(); #endif /* GL_EXT_framebuffer_blit */ #ifdef GL_EXT_framebuffer_multisample - GLEW_EXT_framebuffer_multisample = _glewSearchExtension("GL_EXT_framebuffer_multisample", extStart, extEnd); - if (glewExperimental || GLEW_EXT_framebuffer_multisample) GLEW_EXT_framebuffer_multisample = !_glewInit_GL_EXT_framebuffer_multisample(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_framebuffer_multisample) GLEW_EXT_framebuffer_multisample = !_glewInit_GL_EXT_framebuffer_multisample(); #endif /* GL_EXT_framebuffer_multisample */ -#ifdef GL_EXT_framebuffer_multisample_blit_scaled - GLEW_EXT_framebuffer_multisample_blit_scaled = _glewSearchExtension("GL_EXT_framebuffer_multisample_blit_scaled", extStart, extEnd); -#endif /* GL_EXT_framebuffer_multisample_blit_scaled */ #ifdef GL_EXT_framebuffer_object - GLEW_EXT_framebuffer_object = _glewSearchExtension("GL_EXT_framebuffer_object", extStart, extEnd); - if (glewExperimental || GLEW_EXT_framebuffer_object) GLEW_EXT_framebuffer_object = !_glewInit_GL_EXT_framebuffer_object(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_framebuffer_object) GLEW_EXT_framebuffer_object = !_glewInit_GL_EXT_framebuffer_object(); #endif /* GL_EXT_framebuffer_object */ -#ifdef GL_EXT_framebuffer_sRGB - GLEW_EXT_framebuffer_sRGB = _glewSearchExtension("GL_EXT_framebuffer_sRGB", extStart, extEnd); -#endif /* GL_EXT_framebuffer_sRGB */ #ifdef GL_EXT_geometry_shader4 - GLEW_EXT_geometry_shader4 = _glewSearchExtension("GL_EXT_geometry_shader4", extStart, extEnd); - if (glewExperimental || GLEW_EXT_geometry_shader4) GLEW_EXT_geometry_shader4 = !_glewInit_GL_EXT_geometry_shader4(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_geometry_shader4) GLEW_EXT_geometry_shader4 = !_glewInit_GL_EXT_geometry_shader4(); #endif /* GL_EXT_geometry_shader4 */ #ifdef GL_EXT_gpu_program_parameters - GLEW_EXT_gpu_program_parameters = _glewSearchExtension("GL_EXT_gpu_program_parameters", extStart, extEnd); - if (glewExperimental || GLEW_EXT_gpu_program_parameters) GLEW_EXT_gpu_program_parameters = !_glewInit_GL_EXT_gpu_program_parameters(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_gpu_program_parameters) GLEW_EXT_gpu_program_parameters = !_glewInit_GL_EXT_gpu_program_parameters(); #endif /* GL_EXT_gpu_program_parameters */ #ifdef GL_EXT_gpu_shader4 - GLEW_EXT_gpu_shader4 = _glewSearchExtension("GL_EXT_gpu_shader4", extStart, extEnd); - if (glewExperimental || GLEW_EXT_gpu_shader4) GLEW_EXT_gpu_shader4 = !_glewInit_GL_EXT_gpu_shader4(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_gpu_shader4) GLEW_EXT_gpu_shader4 = !_glewInit_GL_EXT_gpu_shader4(); #endif /* GL_EXT_gpu_shader4 */ #ifdef GL_EXT_histogram - GLEW_EXT_histogram = _glewSearchExtension("GL_EXT_histogram", extStart, extEnd); - if (glewExperimental || GLEW_EXT_histogram) GLEW_EXT_histogram = !_glewInit_GL_EXT_histogram(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_histogram) GLEW_EXT_histogram = !_glewInit_GL_EXT_histogram(); #endif /* GL_EXT_histogram */ -#ifdef GL_EXT_index_array_formats - GLEW_EXT_index_array_formats = _glewSearchExtension("GL_EXT_index_array_formats", extStart, extEnd); -#endif /* GL_EXT_index_array_formats */ #ifdef GL_EXT_index_func - GLEW_EXT_index_func = _glewSearchExtension("GL_EXT_index_func", extStart, extEnd); - if (glewExperimental || GLEW_EXT_index_func) GLEW_EXT_index_func = !_glewInit_GL_EXT_index_func(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_index_func) GLEW_EXT_index_func = !_glewInit_GL_EXT_index_func(); #endif /* GL_EXT_index_func */ #ifdef GL_EXT_index_material - GLEW_EXT_index_material = _glewSearchExtension("GL_EXT_index_material", extStart, extEnd); - if (glewExperimental || GLEW_EXT_index_material) GLEW_EXT_index_material = !_glewInit_GL_EXT_index_material(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_index_material) GLEW_EXT_index_material = !_glewInit_GL_EXT_index_material(); #endif /* GL_EXT_index_material */ -#ifdef GL_EXT_index_texture - GLEW_EXT_index_texture = _glewSearchExtension("GL_EXT_index_texture", extStart, extEnd); -#endif /* GL_EXT_index_texture */ +#ifdef GL_EXT_instanced_arrays + if (glewExperimental || GLEW_EXT_instanced_arrays) GLEW_EXT_instanced_arrays = !_glewInit_GL_EXT_instanced_arrays(); +#endif /* GL_EXT_instanced_arrays */ #ifdef GL_EXT_light_texture - GLEW_EXT_light_texture = _glewSearchExtension("GL_EXT_light_texture", extStart, extEnd); - if (glewExperimental || GLEW_EXT_light_texture) GLEW_EXT_light_texture = !_glewInit_GL_EXT_light_texture(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_light_texture) GLEW_EXT_light_texture = !_glewInit_GL_EXT_light_texture(); #endif /* GL_EXT_light_texture */ -#ifdef GL_EXT_misc_attribute - GLEW_EXT_misc_attribute = _glewSearchExtension("GL_EXT_misc_attribute", extStart, extEnd); -#endif /* GL_EXT_misc_attribute */ +#ifdef GL_EXT_map_buffer_range + if (glewExperimental || GLEW_EXT_map_buffer_range) GLEW_EXT_map_buffer_range = !_glewInit_GL_EXT_map_buffer_range(); +#endif /* GL_EXT_map_buffer_range */ +#ifdef GL_EXT_memory_object + if (glewExperimental || GLEW_EXT_memory_object) GLEW_EXT_memory_object = !_glewInit_GL_EXT_memory_object(); +#endif /* GL_EXT_memory_object */ +#ifdef GL_EXT_memory_object_fd + if (glewExperimental || GLEW_EXT_memory_object_fd) GLEW_EXT_memory_object_fd = !_glewInit_GL_EXT_memory_object_fd(); +#endif /* GL_EXT_memory_object_fd */ +#ifdef GL_EXT_memory_object_win32 + if (glewExperimental || GLEW_EXT_memory_object_win32) GLEW_EXT_memory_object_win32 = !_glewInit_GL_EXT_memory_object_win32(); +#endif /* GL_EXT_memory_object_win32 */ #ifdef GL_EXT_multi_draw_arrays - GLEW_EXT_multi_draw_arrays = _glewSearchExtension("GL_EXT_multi_draw_arrays", extStart, extEnd); - if (glewExperimental || GLEW_EXT_multi_draw_arrays) GLEW_EXT_multi_draw_arrays = !_glewInit_GL_EXT_multi_draw_arrays(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_multi_draw_arrays) GLEW_EXT_multi_draw_arrays = !_glewInit_GL_EXT_multi_draw_arrays(); #endif /* GL_EXT_multi_draw_arrays */ +#ifdef GL_EXT_multi_draw_indirect + if (glewExperimental || GLEW_EXT_multi_draw_indirect) GLEW_EXT_multi_draw_indirect = !_glewInit_GL_EXT_multi_draw_indirect(); +#endif /* GL_EXT_multi_draw_indirect */ #ifdef GL_EXT_multisample - GLEW_EXT_multisample = _glewSearchExtension("GL_EXT_multisample", extStart, extEnd); - if (glewExperimental || GLEW_EXT_multisample) GLEW_EXT_multisample = !_glewInit_GL_EXT_multisample(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_multisample) GLEW_EXT_multisample = !_glewInit_GL_EXT_multisample(); #endif /* GL_EXT_multisample */ -#ifdef GL_EXT_packed_depth_stencil - GLEW_EXT_packed_depth_stencil = _glewSearchExtension("GL_EXT_packed_depth_stencil", extStart, extEnd); -#endif /* GL_EXT_packed_depth_stencil */ -#ifdef GL_EXT_packed_float - GLEW_EXT_packed_float = _glewSearchExtension("GL_EXT_packed_float", extStart, extEnd); -#endif /* GL_EXT_packed_float */ -#ifdef GL_EXT_packed_pixels - GLEW_EXT_packed_pixels = _glewSearchExtension("GL_EXT_packed_pixels", extStart, extEnd); -#endif /* GL_EXT_packed_pixels */ +#ifdef GL_EXT_multisampled_render_to_texture + if (glewExperimental || GLEW_EXT_multisampled_render_to_texture) GLEW_EXT_multisampled_render_to_texture = !_glewInit_GL_EXT_multisampled_render_to_texture(); +#endif /* GL_EXT_multisampled_render_to_texture */ +#ifdef GL_EXT_multiview_draw_buffers + if (glewExperimental || GLEW_EXT_multiview_draw_buffers) GLEW_EXT_multiview_draw_buffers = !_glewInit_GL_EXT_multiview_draw_buffers(); +#endif /* GL_EXT_multiview_draw_buffers */ #ifdef GL_EXT_paletted_texture - GLEW_EXT_paletted_texture = _glewSearchExtension("GL_EXT_paletted_texture", extStart, extEnd); - if (glewExperimental || GLEW_EXT_paletted_texture) GLEW_EXT_paletted_texture = !_glewInit_GL_EXT_paletted_texture(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_paletted_texture) GLEW_EXT_paletted_texture = !_glewInit_GL_EXT_paletted_texture(); #endif /* GL_EXT_paletted_texture */ -#ifdef GL_EXT_pixel_buffer_object - GLEW_EXT_pixel_buffer_object = _glewSearchExtension("GL_EXT_pixel_buffer_object", extStart, extEnd); -#endif /* GL_EXT_pixel_buffer_object */ #ifdef GL_EXT_pixel_transform - GLEW_EXT_pixel_transform = _glewSearchExtension("GL_EXT_pixel_transform", extStart, extEnd); - if (glewExperimental || GLEW_EXT_pixel_transform) GLEW_EXT_pixel_transform = !_glewInit_GL_EXT_pixel_transform(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_pixel_transform) GLEW_EXT_pixel_transform = !_glewInit_GL_EXT_pixel_transform(); #endif /* GL_EXT_pixel_transform */ -#ifdef GL_EXT_pixel_transform_color_table - GLEW_EXT_pixel_transform_color_table = _glewSearchExtension("GL_EXT_pixel_transform_color_table", extStart, extEnd); -#endif /* GL_EXT_pixel_transform_color_table */ #ifdef GL_EXT_point_parameters - GLEW_EXT_point_parameters = _glewSearchExtension("GL_EXT_point_parameters", extStart, extEnd); - if (glewExperimental || GLEW_EXT_point_parameters) GLEW_EXT_point_parameters = !_glewInit_GL_EXT_point_parameters(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_point_parameters) GLEW_EXT_point_parameters = !_glewInit_GL_EXT_point_parameters(); #endif /* GL_EXT_point_parameters */ #ifdef GL_EXT_polygon_offset - GLEW_EXT_polygon_offset = _glewSearchExtension("GL_EXT_polygon_offset", extStart, extEnd); - if (glewExperimental || GLEW_EXT_polygon_offset) GLEW_EXT_polygon_offset = !_glewInit_GL_EXT_polygon_offset(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_polygon_offset) GLEW_EXT_polygon_offset = !_glewInit_GL_EXT_polygon_offset(); #endif /* GL_EXT_polygon_offset */ #ifdef GL_EXT_polygon_offset_clamp - GLEW_EXT_polygon_offset_clamp = _glewSearchExtension("GL_EXT_polygon_offset_clamp", extStart, extEnd); - if (glewExperimental || GLEW_EXT_polygon_offset_clamp) GLEW_EXT_polygon_offset_clamp = !_glewInit_GL_EXT_polygon_offset_clamp(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_polygon_offset_clamp) GLEW_EXT_polygon_offset_clamp = !_glewInit_GL_EXT_polygon_offset_clamp(); #endif /* GL_EXT_polygon_offset_clamp */ -#ifdef GL_EXT_post_depth_coverage - GLEW_EXT_post_depth_coverage = _glewSearchExtension("GL_EXT_post_depth_coverage", extStart, extEnd); -#endif /* GL_EXT_post_depth_coverage */ +#ifdef GL_EXT_primitive_bounding_box + if (glewExperimental || GLEW_EXT_primitive_bounding_box) GLEW_EXT_primitive_bounding_box = !_glewInit_GL_EXT_primitive_bounding_box(); +#endif /* GL_EXT_primitive_bounding_box */ #ifdef GL_EXT_provoking_vertex - GLEW_EXT_provoking_vertex = _glewSearchExtension("GL_EXT_provoking_vertex", extStart, extEnd); - if (glewExperimental || GLEW_EXT_provoking_vertex) GLEW_EXT_provoking_vertex = !_glewInit_GL_EXT_provoking_vertex(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_provoking_vertex) GLEW_EXT_provoking_vertex = !_glewInit_GL_EXT_provoking_vertex(); #endif /* GL_EXT_provoking_vertex */ #ifdef GL_EXT_raster_multisample - GLEW_EXT_raster_multisample = _glewSearchExtension("GL_EXT_raster_multisample", extStart, extEnd); - if (glewExperimental || GLEW_EXT_raster_multisample) GLEW_EXT_raster_multisample = !_glewInit_GL_EXT_raster_multisample(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_raster_multisample) GLEW_EXT_raster_multisample = !_glewInit_GL_EXT_raster_multisample(); #endif /* GL_EXT_raster_multisample */ -#ifdef GL_EXT_rescale_normal - GLEW_EXT_rescale_normal = _glewSearchExtension("GL_EXT_rescale_normal", extStart, extEnd); -#endif /* GL_EXT_rescale_normal */ +#ifdef GL_EXT_robustness + if (glewExperimental || GLEW_EXT_robustness) GLEW_EXT_robustness = !_glewInit_GL_EXT_robustness(); +#endif /* GL_EXT_robustness */ #ifdef GL_EXT_scene_marker - GLEW_EXT_scene_marker = _glewSearchExtension("GL_EXT_scene_marker", extStart, extEnd); - if (glewExperimental || GLEW_EXT_scene_marker) GLEW_EXT_scene_marker = !_glewInit_GL_EXT_scene_marker(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_scene_marker) GLEW_EXT_scene_marker = !_glewInit_GL_EXT_scene_marker(); #endif /* GL_EXT_scene_marker */ #ifdef GL_EXT_secondary_color - GLEW_EXT_secondary_color = _glewSearchExtension("GL_EXT_secondary_color", extStart, extEnd); - if (glewExperimental || GLEW_EXT_secondary_color) GLEW_EXT_secondary_color = !_glewInit_GL_EXT_secondary_color(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_secondary_color) GLEW_EXT_secondary_color = !_glewInit_GL_EXT_secondary_color(); #endif /* GL_EXT_secondary_color */ +#ifdef GL_EXT_semaphore + if (glewExperimental || GLEW_EXT_semaphore) GLEW_EXT_semaphore = !_glewInit_GL_EXT_semaphore(); +#endif /* GL_EXT_semaphore */ +#ifdef GL_EXT_semaphore_fd + if (glewExperimental || GLEW_EXT_semaphore_fd) GLEW_EXT_semaphore_fd = !_glewInit_GL_EXT_semaphore_fd(); +#endif /* GL_EXT_semaphore_fd */ +#ifdef GL_EXT_semaphore_win32 + if (glewExperimental || GLEW_EXT_semaphore_win32) GLEW_EXT_semaphore_win32 = !_glewInit_GL_EXT_semaphore_win32(); +#endif /* GL_EXT_semaphore_win32 */ #ifdef GL_EXT_separate_shader_objects - GLEW_EXT_separate_shader_objects = _glewSearchExtension("GL_EXT_separate_shader_objects", extStart, extEnd); - if (glewExperimental || GLEW_EXT_separate_shader_objects) GLEW_EXT_separate_shader_objects = !_glewInit_GL_EXT_separate_shader_objects(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_separate_shader_objects) GLEW_EXT_separate_shader_objects = !_glewInit_GL_EXT_separate_shader_objects(); #endif /* GL_EXT_separate_shader_objects */ -#ifdef GL_EXT_separate_specular_color - GLEW_EXT_separate_specular_color = _glewSearchExtension("GL_EXT_separate_specular_color", extStart, extEnd); -#endif /* GL_EXT_separate_specular_color */ -#ifdef GL_EXT_shader_image_load_formatted - GLEW_EXT_shader_image_load_formatted = _glewSearchExtension("GL_EXT_shader_image_load_formatted", extStart, extEnd); -#endif /* GL_EXT_shader_image_load_formatted */ +#ifdef GL_EXT_shader_framebuffer_fetch + if (glewExperimental || GLEW_EXT_shader_framebuffer_fetch) GLEW_EXT_shader_framebuffer_fetch = !_glewInit_GL_EXT_shader_framebuffer_fetch(); +#endif /* GL_EXT_shader_framebuffer_fetch */ #ifdef GL_EXT_shader_image_load_store - GLEW_EXT_shader_image_load_store = _glewSearchExtension("GL_EXT_shader_image_load_store", extStart, extEnd); - if (glewExperimental || GLEW_EXT_shader_image_load_store) GLEW_EXT_shader_image_load_store = !_glewInit_GL_EXT_shader_image_load_store(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_shader_image_load_store) GLEW_EXT_shader_image_load_store = !_glewInit_GL_EXT_shader_image_load_store(); #endif /* GL_EXT_shader_image_load_store */ -#ifdef GL_EXT_shader_integer_mix - GLEW_EXT_shader_integer_mix = _glewSearchExtension("GL_EXT_shader_integer_mix", extStart, extEnd); -#endif /* GL_EXT_shader_integer_mix */ -#ifdef GL_EXT_shadow_funcs - GLEW_EXT_shadow_funcs = _glewSearchExtension("GL_EXT_shadow_funcs", extStart, extEnd); -#endif /* GL_EXT_shadow_funcs */ -#ifdef GL_EXT_shared_texture_palette - GLEW_EXT_shared_texture_palette = _glewSearchExtension("GL_EXT_shared_texture_palette", extStart, extEnd); -#endif /* GL_EXT_shared_texture_palette */ -#ifdef GL_EXT_sparse_texture2 - GLEW_EXT_sparse_texture2 = _glewSearchExtension("GL_EXT_sparse_texture2", extStart, extEnd); -#endif /* GL_EXT_sparse_texture2 */ -#ifdef GL_EXT_stencil_clear_tag - GLEW_EXT_stencil_clear_tag = _glewSearchExtension("GL_EXT_stencil_clear_tag", extStart, extEnd); -#endif /* GL_EXT_stencil_clear_tag */ +#ifdef GL_EXT_shader_pixel_local_storage2 + if (glewExperimental || GLEW_EXT_shader_pixel_local_storage2) GLEW_EXT_shader_pixel_local_storage2 = !_glewInit_GL_EXT_shader_pixel_local_storage2(); +#endif /* GL_EXT_shader_pixel_local_storage2 */ +#ifdef GL_EXT_sparse_texture + if (glewExperimental || GLEW_EXT_sparse_texture) GLEW_EXT_sparse_texture = !_glewInit_GL_EXT_sparse_texture(); +#endif /* GL_EXT_sparse_texture */ #ifdef GL_EXT_stencil_two_side - GLEW_EXT_stencil_two_side = _glewSearchExtension("GL_EXT_stencil_two_side", extStart, extEnd); - if (glewExperimental || GLEW_EXT_stencil_two_side) GLEW_EXT_stencil_two_side = !_glewInit_GL_EXT_stencil_two_side(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_stencil_two_side) GLEW_EXT_stencil_two_side = !_glewInit_GL_EXT_stencil_two_side(); #endif /* GL_EXT_stencil_two_side */ -#ifdef GL_EXT_stencil_wrap - GLEW_EXT_stencil_wrap = _glewSearchExtension("GL_EXT_stencil_wrap", extStart, extEnd); -#endif /* GL_EXT_stencil_wrap */ #ifdef GL_EXT_subtexture - GLEW_EXT_subtexture = _glewSearchExtension("GL_EXT_subtexture", extStart, extEnd); - if (glewExperimental || GLEW_EXT_subtexture) GLEW_EXT_subtexture = !_glewInit_GL_EXT_subtexture(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_subtexture) GLEW_EXT_subtexture = !_glewInit_GL_EXT_subtexture(); #endif /* GL_EXT_subtexture */ -#ifdef GL_EXT_texture - GLEW_EXT_texture = _glewSearchExtension("GL_EXT_texture", extStart, extEnd); -#endif /* GL_EXT_texture */ +#ifdef GL_EXT_tessellation_point_size + if (glewExperimental || GLEW_EXT_tessellation_point_size) GLEW_EXT_tessellation_point_size = !_glewInit_GL_EXT_tessellation_point_size(); +#endif /* GL_EXT_tessellation_point_size */ #ifdef GL_EXT_texture3D - GLEW_EXT_texture3D = _glewSearchExtension("GL_EXT_texture3D", extStart, extEnd); - if (glewExperimental || GLEW_EXT_texture3D) GLEW_EXT_texture3D = !_glewInit_GL_EXT_texture3D(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_texture3D) GLEW_EXT_texture3D = !_glewInit_GL_EXT_texture3D(); #endif /* GL_EXT_texture3D */ #ifdef GL_EXT_texture_array - GLEW_EXT_texture_array = _glewSearchExtension("GL_EXT_texture_array", extStart, extEnd); - if (glewExperimental || GLEW_EXT_texture_array) GLEW_EXT_texture_array = !_glewInit_GL_EXT_texture_array(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_texture_array) GLEW_EXT_texture_array = !_glewInit_GL_EXT_texture_array(); #endif /* GL_EXT_texture_array */ +#ifdef GL_EXT_texture_border_clamp + if (glewExperimental || GLEW_EXT_texture_border_clamp) GLEW_EXT_texture_border_clamp = !_glewInit_GL_EXT_texture_border_clamp(); +#endif /* GL_EXT_texture_border_clamp */ #ifdef GL_EXT_texture_buffer_object - GLEW_EXT_texture_buffer_object = _glewSearchExtension("GL_EXT_texture_buffer_object", extStart, extEnd); - if (glewExperimental || GLEW_EXT_texture_buffer_object) GLEW_EXT_texture_buffer_object = !_glewInit_GL_EXT_texture_buffer_object(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_texture_buffer_object) GLEW_EXT_texture_buffer_object = !_glewInit_GL_EXT_texture_buffer_object(); #endif /* GL_EXT_texture_buffer_object */ -#ifdef GL_EXT_texture_compression_dxt1 - GLEW_EXT_texture_compression_dxt1 = _glewSearchExtension("GL_EXT_texture_compression_dxt1", extStart, extEnd); -#endif /* GL_EXT_texture_compression_dxt1 */ -#ifdef GL_EXT_texture_compression_latc - GLEW_EXT_texture_compression_latc = _glewSearchExtension("GL_EXT_texture_compression_latc", extStart, extEnd); -#endif /* GL_EXT_texture_compression_latc */ -#ifdef GL_EXT_texture_compression_rgtc - GLEW_EXT_texture_compression_rgtc = _glewSearchExtension("GL_EXT_texture_compression_rgtc", extStart, extEnd); -#endif /* GL_EXT_texture_compression_rgtc */ -#ifdef GL_EXT_texture_compression_s3tc - GLEW_EXT_texture_compression_s3tc = _glewSearchExtension("GL_EXT_texture_compression_s3tc", extStart, extEnd); -#endif /* GL_EXT_texture_compression_s3tc */ -#ifdef GL_EXT_texture_cube_map - GLEW_EXT_texture_cube_map = _glewSearchExtension("GL_EXT_texture_cube_map", extStart, extEnd); -#endif /* GL_EXT_texture_cube_map */ -#ifdef GL_EXT_texture_edge_clamp - GLEW_EXT_texture_edge_clamp = _glewSearchExtension("GL_EXT_texture_edge_clamp", extStart, extEnd); -#endif /* GL_EXT_texture_edge_clamp */ -#ifdef GL_EXT_texture_env - GLEW_EXT_texture_env = _glewSearchExtension("GL_EXT_texture_env", extStart, extEnd); -#endif /* GL_EXT_texture_env */ -#ifdef GL_EXT_texture_env_add - GLEW_EXT_texture_env_add = _glewSearchExtension("GL_EXT_texture_env_add", extStart, extEnd); -#endif /* GL_EXT_texture_env_add */ -#ifdef GL_EXT_texture_env_combine - GLEW_EXT_texture_env_combine = _glewSearchExtension("GL_EXT_texture_env_combine", extStart, extEnd); -#endif /* GL_EXT_texture_env_combine */ -#ifdef GL_EXT_texture_env_dot3 - GLEW_EXT_texture_env_dot3 = _glewSearchExtension("GL_EXT_texture_env_dot3", extStart, extEnd); -#endif /* GL_EXT_texture_env_dot3 */ -#ifdef GL_EXT_texture_filter_anisotropic - GLEW_EXT_texture_filter_anisotropic = _glewSearchExtension("GL_EXT_texture_filter_anisotropic", extStart, extEnd); -#endif /* GL_EXT_texture_filter_anisotropic */ -#ifdef GL_EXT_texture_filter_minmax - GLEW_EXT_texture_filter_minmax = _glewSearchExtension("GL_EXT_texture_filter_minmax", extStart, extEnd); -#endif /* GL_EXT_texture_filter_minmax */ #ifdef GL_EXT_texture_integer - GLEW_EXT_texture_integer = _glewSearchExtension("GL_EXT_texture_integer", extStart, extEnd); - if (glewExperimental || GLEW_EXT_texture_integer) GLEW_EXT_texture_integer = !_glewInit_GL_EXT_texture_integer(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_texture_integer) GLEW_EXT_texture_integer = !_glewInit_GL_EXT_texture_integer(); #endif /* GL_EXT_texture_integer */ -#ifdef GL_EXT_texture_lod_bias - GLEW_EXT_texture_lod_bias = _glewSearchExtension("GL_EXT_texture_lod_bias", extStart, extEnd); -#endif /* GL_EXT_texture_lod_bias */ -#ifdef GL_EXT_texture_mirror_clamp - GLEW_EXT_texture_mirror_clamp = _glewSearchExtension("GL_EXT_texture_mirror_clamp", extStart, extEnd); -#endif /* GL_EXT_texture_mirror_clamp */ #ifdef GL_EXT_texture_object - GLEW_EXT_texture_object = _glewSearchExtension("GL_EXT_texture_object", extStart, extEnd); - if (glewExperimental || GLEW_EXT_texture_object) GLEW_EXT_texture_object = !_glewInit_GL_EXT_texture_object(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_texture_object) GLEW_EXT_texture_object = !_glewInit_GL_EXT_texture_object(); #endif /* GL_EXT_texture_object */ #ifdef GL_EXT_texture_perturb_normal - GLEW_EXT_texture_perturb_normal = _glewSearchExtension("GL_EXT_texture_perturb_normal", extStart, extEnd); - if (glewExperimental || GLEW_EXT_texture_perturb_normal) GLEW_EXT_texture_perturb_normal = !_glewInit_GL_EXT_texture_perturb_normal(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_texture_perturb_normal) GLEW_EXT_texture_perturb_normal = !_glewInit_GL_EXT_texture_perturb_normal(); #endif /* GL_EXT_texture_perturb_normal */ -#ifdef GL_EXT_texture_rectangle - GLEW_EXT_texture_rectangle = _glewSearchExtension("GL_EXT_texture_rectangle", extStart, extEnd); -#endif /* GL_EXT_texture_rectangle */ -#ifdef GL_EXT_texture_sRGB - GLEW_EXT_texture_sRGB = _glewSearchExtension("GL_EXT_texture_sRGB", extStart, extEnd); -#endif /* GL_EXT_texture_sRGB */ -#ifdef GL_EXT_texture_sRGB_decode - GLEW_EXT_texture_sRGB_decode = _glewSearchExtension("GL_EXT_texture_sRGB_decode", extStart, extEnd); -#endif /* GL_EXT_texture_sRGB_decode */ -#ifdef GL_EXT_texture_shared_exponent - GLEW_EXT_texture_shared_exponent = _glewSearchExtension("GL_EXT_texture_shared_exponent", extStart, extEnd); -#endif /* GL_EXT_texture_shared_exponent */ -#ifdef GL_EXT_texture_snorm - GLEW_EXT_texture_snorm = _glewSearchExtension("GL_EXT_texture_snorm", extStart, extEnd); -#endif /* GL_EXT_texture_snorm */ -#ifdef GL_EXT_texture_swizzle - GLEW_EXT_texture_swizzle = _glewSearchExtension("GL_EXT_texture_swizzle", extStart, extEnd); -#endif /* GL_EXT_texture_swizzle */ +#ifdef GL_EXT_texture_storage + if (glewExperimental || GLEW_EXT_texture_storage) GLEW_EXT_texture_storage = !_glewInit_GL_EXT_texture_storage(); +#endif /* GL_EXT_texture_storage */ +#ifdef GL_EXT_texture_view + if (glewExperimental || GLEW_EXT_texture_view) GLEW_EXT_texture_view = !_glewInit_GL_EXT_texture_view(); +#endif /* GL_EXT_texture_view */ #ifdef GL_EXT_timer_query - GLEW_EXT_timer_query = _glewSearchExtension("GL_EXT_timer_query", extStart, extEnd); - if (glewExperimental || GLEW_EXT_timer_query) GLEW_EXT_timer_query = !_glewInit_GL_EXT_timer_query(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_timer_query) GLEW_EXT_timer_query = !_glewInit_GL_EXT_timer_query(); #endif /* GL_EXT_timer_query */ #ifdef GL_EXT_transform_feedback - GLEW_EXT_transform_feedback = _glewSearchExtension("GL_EXT_transform_feedback", extStart, extEnd); - if (glewExperimental || GLEW_EXT_transform_feedback) GLEW_EXT_transform_feedback = !_glewInit_GL_EXT_transform_feedback(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_transform_feedback) GLEW_EXT_transform_feedback = !_glewInit_GL_EXT_transform_feedback(); #endif /* GL_EXT_transform_feedback */ #ifdef GL_EXT_vertex_array - GLEW_EXT_vertex_array = _glewSearchExtension("GL_EXT_vertex_array", extStart, extEnd); - if (glewExperimental || GLEW_EXT_vertex_array) GLEW_EXT_vertex_array = !_glewInit_GL_EXT_vertex_array(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_vertex_array) GLEW_EXT_vertex_array = !_glewInit_GL_EXT_vertex_array(); #endif /* GL_EXT_vertex_array */ -#ifdef GL_EXT_vertex_array_bgra - GLEW_EXT_vertex_array_bgra = _glewSearchExtension("GL_EXT_vertex_array_bgra", extStart, extEnd); -#endif /* GL_EXT_vertex_array_bgra */ +#ifdef GL_EXT_vertex_array_setXXX + if (glewExperimental || GLEW_EXT_vertex_array_setXXX) GLEW_EXT_vertex_array_setXXX = !_glewInit_GL_EXT_vertex_array_setXXX(); +#endif /* GL_EXT_vertex_array_setXXX */ #ifdef GL_EXT_vertex_attrib_64bit - GLEW_EXT_vertex_attrib_64bit = _glewSearchExtension("GL_EXT_vertex_attrib_64bit", extStart, extEnd); - if (glewExperimental || GLEW_EXT_vertex_attrib_64bit) GLEW_EXT_vertex_attrib_64bit = !_glewInit_GL_EXT_vertex_attrib_64bit(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_vertex_attrib_64bit) GLEW_EXT_vertex_attrib_64bit = !_glewInit_GL_EXT_vertex_attrib_64bit(); #endif /* GL_EXT_vertex_attrib_64bit */ #ifdef GL_EXT_vertex_shader - GLEW_EXT_vertex_shader = _glewSearchExtension("GL_EXT_vertex_shader", extStart, extEnd); - if (glewExperimental || GLEW_EXT_vertex_shader) GLEW_EXT_vertex_shader = !_glewInit_GL_EXT_vertex_shader(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_vertex_shader) GLEW_EXT_vertex_shader = !_glewInit_GL_EXT_vertex_shader(); #endif /* GL_EXT_vertex_shader */ #ifdef GL_EXT_vertex_weighting - GLEW_EXT_vertex_weighting = _glewSearchExtension("GL_EXT_vertex_weighting", extStart, extEnd); - if (glewExperimental || GLEW_EXT_vertex_weighting) GLEW_EXT_vertex_weighting = !_glewInit_GL_EXT_vertex_weighting(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_vertex_weighting) GLEW_EXT_vertex_weighting = !_glewInit_GL_EXT_vertex_weighting(); #endif /* GL_EXT_vertex_weighting */ +#ifdef GL_EXT_win32_keyed_mutex + if (glewExperimental || GLEW_EXT_win32_keyed_mutex) GLEW_EXT_win32_keyed_mutex = !_glewInit_GL_EXT_win32_keyed_mutex(); +#endif /* GL_EXT_win32_keyed_mutex */ +#ifdef GL_EXT_window_rectangles + if (glewExperimental || GLEW_EXT_window_rectangles) GLEW_EXT_window_rectangles = !_glewInit_GL_EXT_window_rectangles(); +#endif /* GL_EXT_window_rectangles */ #ifdef GL_EXT_x11_sync_object - GLEW_EXT_x11_sync_object = _glewSearchExtension("GL_EXT_x11_sync_object", extStart, extEnd); - if (glewExperimental || GLEW_EXT_x11_sync_object) GLEW_EXT_x11_sync_object = !_glewInit_GL_EXT_x11_sync_object(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_EXT_x11_sync_object) GLEW_EXT_x11_sync_object = !_glewInit_GL_EXT_x11_sync_object(); #endif /* GL_EXT_x11_sync_object */ #ifdef GL_GREMEDY_frame_terminator - GLEW_GREMEDY_frame_terminator = _glewSearchExtension("GL_GREMEDY_frame_terminator", extStart, extEnd); - if (glewExperimental || GLEW_GREMEDY_frame_terminator) GLEW_GREMEDY_frame_terminator = !_glewInit_GL_GREMEDY_frame_terminator(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_GREMEDY_frame_terminator) GLEW_GREMEDY_frame_terminator = !_glewInit_GL_GREMEDY_frame_terminator(); #endif /* GL_GREMEDY_frame_terminator */ #ifdef GL_GREMEDY_string_marker - GLEW_GREMEDY_string_marker = _glewSearchExtension("GL_GREMEDY_string_marker", extStart, extEnd); - if (glewExperimental || GLEW_GREMEDY_string_marker) GLEW_GREMEDY_string_marker = !_glewInit_GL_GREMEDY_string_marker(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_GREMEDY_string_marker) GLEW_GREMEDY_string_marker = !_glewInit_GL_GREMEDY_string_marker(); #endif /* GL_GREMEDY_string_marker */ -#ifdef GL_HP_convolution_border_modes - GLEW_HP_convolution_border_modes = _glewSearchExtension("GL_HP_convolution_border_modes", extStart, extEnd); -#endif /* GL_HP_convolution_border_modes */ #ifdef GL_HP_image_transform - GLEW_HP_image_transform = _glewSearchExtension("GL_HP_image_transform", extStart, extEnd); - if (glewExperimental || GLEW_HP_image_transform) GLEW_HP_image_transform = !_glewInit_GL_HP_image_transform(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_HP_image_transform) GLEW_HP_image_transform = !_glewInit_GL_HP_image_transform(); #endif /* GL_HP_image_transform */ -#ifdef GL_HP_occlusion_test - GLEW_HP_occlusion_test = _glewSearchExtension("GL_HP_occlusion_test", extStart, extEnd); -#endif /* GL_HP_occlusion_test */ -#ifdef GL_HP_texture_lighting - GLEW_HP_texture_lighting = _glewSearchExtension("GL_HP_texture_lighting", extStart, extEnd); -#endif /* GL_HP_texture_lighting */ -#ifdef GL_IBM_cull_vertex - GLEW_IBM_cull_vertex = _glewSearchExtension("GL_IBM_cull_vertex", extStart, extEnd); -#endif /* GL_IBM_cull_vertex */ #ifdef GL_IBM_multimode_draw_arrays - GLEW_IBM_multimode_draw_arrays = _glewSearchExtension("GL_IBM_multimode_draw_arrays", extStart, extEnd); - if (glewExperimental || GLEW_IBM_multimode_draw_arrays) GLEW_IBM_multimode_draw_arrays = !_glewInit_GL_IBM_multimode_draw_arrays(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_IBM_multimode_draw_arrays) GLEW_IBM_multimode_draw_arrays = !_glewInit_GL_IBM_multimode_draw_arrays(); #endif /* GL_IBM_multimode_draw_arrays */ -#ifdef GL_IBM_rasterpos_clip - GLEW_IBM_rasterpos_clip = _glewSearchExtension("GL_IBM_rasterpos_clip", extStart, extEnd); -#endif /* GL_IBM_rasterpos_clip */ -#ifdef GL_IBM_static_data - GLEW_IBM_static_data = _glewSearchExtension("GL_IBM_static_data", extStart, extEnd); -#endif /* GL_IBM_static_data */ -#ifdef GL_IBM_texture_mirrored_repeat - GLEW_IBM_texture_mirrored_repeat = _glewSearchExtension("GL_IBM_texture_mirrored_repeat", extStart, extEnd); -#endif /* GL_IBM_texture_mirrored_repeat */ #ifdef GL_IBM_vertex_array_lists - GLEW_IBM_vertex_array_lists = _glewSearchExtension("GL_IBM_vertex_array_lists", extStart, extEnd); - if (glewExperimental || GLEW_IBM_vertex_array_lists) GLEW_IBM_vertex_array_lists = !_glewInit_GL_IBM_vertex_array_lists(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_IBM_vertex_array_lists) GLEW_IBM_vertex_array_lists = !_glewInit_GL_IBM_vertex_array_lists(); #endif /* GL_IBM_vertex_array_lists */ -#ifdef GL_INGR_color_clamp - GLEW_INGR_color_clamp = _glewSearchExtension("GL_INGR_color_clamp", extStart, extEnd); -#endif /* GL_INGR_color_clamp */ -#ifdef GL_INGR_interlace_read - GLEW_INGR_interlace_read = _glewSearchExtension("GL_INGR_interlace_read", extStart, extEnd); -#endif /* GL_INGR_interlace_read */ -#ifdef GL_INTEL_fragment_shader_ordering - GLEW_INTEL_fragment_shader_ordering = _glewSearchExtension("GL_INTEL_fragment_shader_ordering", extStart, extEnd); -#endif /* GL_INTEL_fragment_shader_ordering */ -#ifdef GL_INTEL_framebuffer_CMAA - GLEW_INTEL_framebuffer_CMAA = _glewSearchExtension("GL_INTEL_framebuffer_CMAA", extStart, extEnd); -#endif /* GL_INTEL_framebuffer_CMAA */ +#ifdef GL_IMG_bindless_texture + if (glewExperimental || GLEW_IMG_bindless_texture) GLEW_IMG_bindless_texture = !_glewInit_GL_IMG_bindless_texture(); +#endif /* GL_IMG_bindless_texture */ +#ifdef GL_IMG_framebuffer_downsample + if (glewExperimental || GLEW_IMG_framebuffer_downsample) GLEW_IMG_framebuffer_downsample = !_glewInit_GL_IMG_framebuffer_downsample(); +#endif /* GL_IMG_framebuffer_downsample */ +#ifdef GL_IMG_multisampled_render_to_texture + if (glewExperimental || GLEW_IMG_multisampled_render_to_texture) GLEW_IMG_multisampled_render_to_texture = !_glewInit_GL_IMG_multisampled_render_to_texture(); +#endif /* GL_IMG_multisampled_render_to_texture */ #ifdef GL_INTEL_map_texture - GLEW_INTEL_map_texture = _glewSearchExtension("GL_INTEL_map_texture", extStart, extEnd); - if (glewExperimental || GLEW_INTEL_map_texture) GLEW_INTEL_map_texture = !_glewInit_GL_INTEL_map_texture(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_INTEL_map_texture) GLEW_INTEL_map_texture = !_glewInit_GL_INTEL_map_texture(); #endif /* GL_INTEL_map_texture */ #ifdef GL_INTEL_parallel_arrays - GLEW_INTEL_parallel_arrays = _glewSearchExtension("GL_INTEL_parallel_arrays", extStart, extEnd); - if (glewExperimental || GLEW_INTEL_parallel_arrays) GLEW_INTEL_parallel_arrays = !_glewInit_GL_INTEL_parallel_arrays(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_INTEL_parallel_arrays) GLEW_INTEL_parallel_arrays = !_glewInit_GL_INTEL_parallel_arrays(); #endif /* GL_INTEL_parallel_arrays */ #ifdef GL_INTEL_performance_query - GLEW_INTEL_performance_query = _glewSearchExtension("GL_INTEL_performance_query", extStart, extEnd); - if (glewExperimental || GLEW_INTEL_performance_query) GLEW_INTEL_performance_query = !_glewInit_GL_INTEL_performance_query(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_INTEL_performance_query) GLEW_INTEL_performance_query = !_glewInit_GL_INTEL_performance_query(); #endif /* GL_INTEL_performance_query */ #ifdef GL_INTEL_texture_scissor - GLEW_INTEL_texture_scissor = _glewSearchExtension("GL_INTEL_texture_scissor", extStart, extEnd); - if (glewExperimental || GLEW_INTEL_texture_scissor) GLEW_INTEL_texture_scissor = !_glewInit_GL_INTEL_texture_scissor(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_INTEL_texture_scissor) GLEW_INTEL_texture_scissor = !_glewInit_GL_INTEL_texture_scissor(); #endif /* GL_INTEL_texture_scissor */ #ifdef GL_KHR_blend_equation_advanced - GLEW_KHR_blend_equation_advanced = _glewSearchExtension("GL_KHR_blend_equation_advanced", extStart, extEnd); - if (glewExperimental || GLEW_KHR_blend_equation_advanced) GLEW_KHR_blend_equation_advanced = !_glewInit_GL_KHR_blend_equation_advanced(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_KHR_blend_equation_advanced) GLEW_KHR_blend_equation_advanced = !_glewInit_GL_KHR_blend_equation_advanced(); #endif /* GL_KHR_blend_equation_advanced */ -#ifdef GL_KHR_blend_equation_advanced_coherent - GLEW_KHR_blend_equation_advanced_coherent = _glewSearchExtension("GL_KHR_blend_equation_advanced_coherent", extStart, extEnd); -#endif /* GL_KHR_blend_equation_advanced_coherent */ -#ifdef GL_KHR_context_flush_control - GLEW_KHR_context_flush_control = _glewSearchExtension("GL_KHR_context_flush_control", extStart, extEnd); -#endif /* GL_KHR_context_flush_control */ #ifdef GL_KHR_debug - GLEW_KHR_debug = _glewSearchExtension("GL_KHR_debug", extStart, extEnd); - if (glewExperimental || GLEW_KHR_debug) GLEW_KHR_debug = !_glewInit_GL_KHR_debug(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_KHR_debug) GLEW_KHR_debug = !_glewInit_GL_KHR_debug(); #endif /* GL_KHR_debug */ -#ifdef GL_KHR_no_error - GLEW_KHR_no_error = _glewSearchExtension("GL_KHR_no_error", extStart, extEnd); -#endif /* GL_KHR_no_error */ -#ifdef GL_KHR_robust_buffer_access_behavior - GLEW_KHR_robust_buffer_access_behavior = _glewSearchExtension("GL_KHR_robust_buffer_access_behavior", extStart, extEnd); -#endif /* GL_KHR_robust_buffer_access_behavior */ +#ifdef GL_KHR_parallel_shader_compile + if (glewExperimental || GLEW_KHR_parallel_shader_compile) GLEW_KHR_parallel_shader_compile = !_glewInit_GL_KHR_parallel_shader_compile(); +#endif /* GL_KHR_parallel_shader_compile */ #ifdef GL_KHR_robustness - GLEW_KHR_robustness = _glewSearchExtension("GL_KHR_robustness", extStart, extEnd); - if (glewExperimental || GLEW_KHR_robustness) GLEW_KHR_robustness = !_glewInit_GL_KHR_robustness(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_KHR_robustness) GLEW_KHR_robustness = !_glewInit_GL_KHR_robustness(); #endif /* GL_KHR_robustness */ -#ifdef GL_KHR_texture_compression_astc_hdr - GLEW_KHR_texture_compression_astc_hdr = _glewSearchExtension("GL_KHR_texture_compression_astc_hdr", extStart, extEnd); -#endif /* GL_KHR_texture_compression_astc_hdr */ -#ifdef GL_KHR_texture_compression_astc_ldr - GLEW_KHR_texture_compression_astc_ldr = _glewSearchExtension("GL_KHR_texture_compression_astc_ldr", extStart, extEnd); -#endif /* GL_KHR_texture_compression_astc_ldr */ #ifdef GL_KTX_buffer_region - GLEW_KTX_buffer_region = _glewSearchExtension("GL_KTX_buffer_region", extStart, extEnd); - if (glewExperimental || GLEW_KTX_buffer_region) GLEW_KTX_buffer_region = !_glewInit_GL_KTX_buffer_region(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_KTX_buffer_region) GLEW_KTX_buffer_region = !_glewInit_GL_KTX_buffer_region(); #endif /* GL_KTX_buffer_region */ -#ifdef GL_MESAX_texture_stack - GLEW_MESAX_texture_stack = _glewSearchExtension("GL_MESAX_texture_stack", extStart, extEnd); -#endif /* GL_MESAX_texture_stack */ -#ifdef GL_MESA_pack_invert - GLEW_MESA_pack_invert = _glewSearchExtension("GL_MESA_pack_invert", extStart, extEnd); -#endif /* GL_MESA_pack_invert */ +#ifdef GL_MESA_framebuffer_flip_y + if (glewExperimental || GLEW_MESA_framebuffer_flip_y) GLEW_MESA_framebuffer_flip_y = !_glewInit_GL_MESA_framebuffer_flip_y(); +#endif /* GL_MESA_framebuffer_flip_y */ #ifdef GL_MESA_resize_buffers - GLEW_MESA_resize_buffers = _glewSearchExtension("GL_MESA_resize_buffers", extStart, extEnd); - if (glewExperimental || GLEW_MESA_resize_buffers) GLEW_MESA_resize_buffers = !_glewInit_GL_MESA_resize_buffers(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_MESA_resize_buffers) GLEW_MESA_resize_buffers = !_glewInit_GL_MESA_resize_buffers(); #endif /* GL_MESA_resize_buffers */ #ifdef GL_MESA_window_pos - GLEW_MESA_window_pos = _glewSearchExtension("GL_MESA_window_pos", extStart, extEnd); - if (glewExperimental || GLEW_MESA_window_pos) GLEW_MESA_window_pos = !_glewInit_GL_MESA_window_pos(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_MESA_window_pos) GLEW_MESA_window_pos = !_glewInit_GL_MESA_window_pos(); #endif /* GL_MESA_window_pos */ -#ifdef GL_MESA_ycbcr_texture - GLEW_MESA_ycbcr_texture = _glewSearchExtension("GL_MESA_ycbcr_texture", extStart, extEnd); -#endif /* GL_MESA_ycbcr_texture */ #ifdef GL_NVX_conditional_render - GLEW_NVX_conditional_render = _glewSearchExtension("GL_NVX_conditional_render", extStart, extEnd); - if (glewExperimental || GLEW_NVX_conditional_render) GLEW_NVX_conditional_render = !_glewInit_GL_NVX_conditional_render(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_NVX_conditional_render) GLEW_NVX_conditional_render = !_glewInit_GL_NVX_conditional_render(); #endif /* GL_NVX_conditional_render */ -#ifdef GL_NVX_gpu_memory_info - GLEW_NVX_gpu_memory_info = _glewSearchExtension("GL_NVX_gpu_memory_info", extStart, extEnd); -#endif /* GL_NVX_gpu_memory_info */ +#ifdef GL_NVX_gpu_multicast2 + if (glewExperimental || GLEW_NVX_gpu_multicast2) GLEW_NVX_gpu_multicast2 = !_glewInit_GL_NVX_gpu_multicast2(); +#endif /* GL_NVX_gpu_multicast2 */ +#ifdef GL_NVX_linked_gpu_multicast + if (glewExperimental || GLEW_NVX_linked_gpu_multicast) GLEW_NVX_linked_gpu_multicast = !_glewInit_GL_NVX_linked_gpu_multicast(); +#endif /* GL_NVX_linked_gpu_multicast */ +#ifdef GL_NVX_progress_fence + if (glewExperimental || GLEW_NVX_progress_fence) GLEW_NVX_progress_fence = !_glewInit_GL_NVX_progress_fence(); +#endif /* GL_NVX_progress_fence */ +#ifdef GL_NV_3dvision_settings + if (glewExperimental || GLEW_NV_3dvision_settings) GLEW_NV_3dvision_settings = !_glewInit_GL_NV_3dvision_settings(); +#endif /* GL_NV_3dvision_settings */ +#ifdef GL_NV_alpha_to_coverage_dither_control + if (glewExperimental || GLEW_NV_alpha_to_coverage_dither_control) GLEW_NV_alpha_to_coverage_dither_control = !_glewInit_GL_NV_alpha_to_coverage_dither_control(); +#endif /* GL_NV_alpha_to_coverage_dither_control */ #ifdef GL_NV_bindless_multi_draw_indirect - GLEW_NV_bindless_multi_draw_indirect = _glewSearchExtension("GL_NV_bindless_multi_draw_indirect", extStart, extEnd); - if (glewExperimental || GLEW_NV_bindless_multi_draw_indirect) GLEW_NV_bindless_multi_draw_indirect = !_glewInit_GL_NV_bindless_multi_draw_indirect(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_NV_bindless_multi_draw_indirect) GLEW_NV_bindless_multi_draw_indirect = !_glewInit_GL_NV_bindless_multi_draw_indirect(); #endif /* GL_NV_bindless_multi_draw_indirect */ #ifdef GL_NV_bindless_multi_draw_indirect_count - GLEW_NV_bindless_multi_draw_indirect_count = _glewSearchExtension("GL_NV_bindless_multi_draw_indirect_count", extStart, extEnd); - if (glewExperimental || GLEW_NV_bindless_multi_draw_indirect_count) GLEW_NV_bindless_multi_draw_indirect_count = !_glewInit_GL_NV_bindless_multi_draw_indirect_count(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_NV_bindless_multi_draw_indirect_count) GLEW_NV_bindless_multi_draw_indirect_count = !_glewInit_GL_NV_bindless_multi_draw_indirect_count(); #endif /* GL_NV_bindless_multi_draw_indirect_count */ #ifdef GL_NV_bindless_texture - GLEW_NV_bindless_texture = _glewSearchExtension("GL_NV_bindless_texture", extStart, extEnd); - if (glewExperimental || GLEW_NV_bindless_texture) GLEW_NV_bindless_texture = !_glewInit_GL_NV_bindless_texture(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_NV_bindless_texture) GLEW_NV_bindless_texture = !_glewInit_GL_NV_bindless_texture(); #endif /* GL_NV_bindless_texture */ #ifdef GL_NV_blend_equation_advanced - GLEW_NV_blend_equation_advanced = _glewSearchExtension("GL_NV_blend_equation_advanced", extStart, extEnd); - if (glewExperimental || GLEW_NV_blend_equation_advanced) GLEW_NV_blend_equation_advanced = !_glewInit_GL_NV_blend_equation_advanced(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_NV_blend_equation_advanced) GLEW_NV_blend_equation_advanced = !_glewInit_GL_NV_blend_equation_advanced(); #endif /* GL_NV_blend_equation_advanced */ -#ifdef GL_NV_blend_equation_advanced_coherent - GLEW_NV_blend_equation_advanced_coherent = _glewSearchExtension("GL_NV_blend_equation_advanced_coherent", extStart, extEnd); -#endif /* GL_NV_blend_equation_advanced_coherent */ -#ifdef GL_NV_blend_square - GLEW_NV_blend_square = _glewSearchExtension("GL_NV_blend_square", extStart, extEnd); -#endif /* GL_NV_blend_square */ -#ifdef GL_NV_compute_program5 - GLEW_NV_compute_program5 = _glewSearchExtension("GL_NV_compute_program5", extStart, extEnd); -#endif /* GL_NV_compute_program5 */ +#ifdef GL_NV_clip_space_w_scaling + if (glewExperimental || GLEW_NV_clip_space_w_scaling) GLEW_NV_clip_space_w_scaling = !_glewInit_GL_NV_clip_space_w_scaling(); +#endif /* GL_NV_clip_space_w_scaling */ +#ifdef GL_NV_command_list + if (glewExperimental || GLEW_NV_command_list) GLEW_NV_command_list = !_glewInit_GL_NV_command_list(); +#endif /* GL_NV_command_list */ #ifdef GL_NV_conditional_render - GLEW_NV_conditional_render = _glewSearchExtension("GL_NV_conditional_render", extStart, extEnd); - if (glewExperimental || GLEW_NV_conditional_render) GLEW_NV_conditional_render = !_glewInit_GL_NV_conditional_render(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_NV_conditional_render) GLEW_NV_conditional_render = !_glewInit_GL_NV_conditional_render(); #endif /* GL_NV_conditional_render */ #ifdef GL_NV_conservative_raster - GLEW_NV_conservative_raster = _glewSearchExtension("GL_NV_conservative_raster", extStart, extEnd); - if (glewExperimental || GLEW_NV_conservative_raster) GLEW_NV_conservative_raster = !_glewInit_GL_NV_conservative_raster(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_NV_conservative_raster) GLEW_NV_conservative_raster = !_glewInit_GL_NV_conservative_raster(); #endif /* GL_NV_conservative_raster */ #ifdef GL_NV_conservative_raster_dilate - GLEW_NV_conservative_raster_dilate = _glewSearchExtension("GL_NV_conservative_raster_dilate", extStart, extEnd); - if (glewExperimental || GLEW_NV_conservative_raster_dilate) GLEW_NV_conservative_raster_dilate = !_glewInit_GL_NV_conservative_raster_dilate(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_NV_conservative_raster_dilate) GLEW_NV_conservative_raster_dilate = !_glewInit_GL_NV_conservative_raster_dilate(); #endif /* GL_NV_conservative_raster_dilate */ -#ifdef GL_NV_copy_depth_to_color - GLEW_NV_copy_depth_to_color = _glewSearchExtension("GL_NV_copy_depth_to_color", extStart, extEnd); -#endif /* GL_NV_copy_depth_to_color */ +#ifdef GL_NV_conservative_raster_pre_snap_triangles + if (glewExperimental || GLEW_NV_conservative_raster_pre_snap_triangles) GLEW_NV_conservative_raster_pre_snap_triangles = !_glewInit_GL_NV_conservative_raster_pre_snap_triangles(); +#endif /* GL_NV_conservative_raster_pre_snap_triangles */ +#ifdef GL_NV_copy_buffer + if (glewExperimental || GLEW_NV_copy_buffer) GLEW_NV_copy_buffer = !_glewInit_GL_NV_copy_buffer(); +#endif /* GL_NV_copy_buffer */ #ifdef GL_NV_copy_image - GLEW_NV_copy_image = _glewSearchExtension("GL_NV_copy_image", extStart, extEnd); - if (glewExperimental || GLEW_NV_copy_image) GLEW_NV_copy_image = !_glewInit_GL_NV_copy_image(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_NV_copy_image) GLEW_NV_copy_image = !_glewInit_GL_NV_copy_image(); #endif /* GL_NV_copy_image */ -#ifdef GL_NV_deep_texture3D - GLEW_NV_deep_texture3D = _glewSearchExtension("GL_NV_deep_texture3D", extStart, extEnd); -#endif /* GL_NV_deep_texture3D */ #ifdef GL_NV_depth_buffer_float - GLEW_NV_depth_buffer_float = _glewSearchExtension("GL_NV_depth_buffer_float", extStart, extEnd); - if (glewExperimental || GLEW_NV_depth_buffer_float) GLEW_NV_depth_buffer_float = !_glewInit_GL_NV_depth_buffer_float(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_NV_depth_buffer_float) GLEW_NV_depth_buffer_float = !_glewInit_GL_NV_depth_buffer_float(); #endif /* GL_NV_depth_buffer_float */ -#ifdef GL_NV_depth_clamp - GLEW_NV_depth_clamp = _glewSearchExtension("GL_NV_depth_clamp", extStart, extEnd); -#endif /* GL_NV_depth_clamp */ -#ifdef GL_NV_depth_range_unclamped - GLEW_NV_depth_range_unclamped = _glewSearchExtension("GL_NV_depth_range_unclamped", extStart, extEnd); -#endif /* GL_NV_depth_range_unclamped */ +#ifdef GL_NV_draw_buffers + if (glewExperimental || GLEW_NV_draw_buffers) GLEW_NV_draw_buffers = !_glewInit_GL_NV_draw_buffers(); +#endif /* GL_NV_draw_buffers */ +#ifdef GL_NV_draw_instanced + if (glewExperimental || GLEW_NV_draw_instanced) GLEW_NV_draw_instanced = !_glewInit_GL_NV_draw_instanced(); +#endif /* GL_NV_draw_instanced */ #ifdef GL_NV_draw_texture - GLEW_NV_draw_texture = _glewSearchExtension("GL_NV_draw_texture", extStart, extEnd); - if (glewExperimental || GLEW_NV_draw_texture) GLEW_NV_draw_texture = !_glewInit_GL_NV_draw_texture(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_NV_draw_texture) GLEW_NV_draw_texture = !_glewInit_GL_NV_draw_texture(); #endif /* GL_NV_draw_texture */ +#ifdef GL_NV_draw_vulkan_image + if (glewExperimental || GLEW_NV_draw_vulkan_image) GLEW_NV_draw_vulkan_image = !_glewInit_GL_NV_draw_vulkan_image(); +#endif /* GL_NV_draw_vulkan_image */ #ifdef GL_NV_evaluators - GLEW_NV_evaluators = _glewSearchExtension("GL_NV_evaluators", extStart, extEnd); - if (glewExperimental || GLEW_NV_evaluators) GLEW_NV_evaluators = !_glewInit_GL_NV_evaluators(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_NV_evaluators) GLEW_NV_evaluators = !_glewInit_GL_NV_evaluators(); #endif /* GL_NV_evaluators */ #ifdef GL_NV_explicit_multisample - GLEW_NV_explicit_multisample = _glewSearchExtension("GL_NV_explicit_multisample", extStart, extEnd); - if (glewExperimental || GLEW_NV_explicit_multisample) GLEW_NV_explicit_multisample = !_glewInit_GL_NV_explicit_multisample(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_NV_explicit_multisample) GLEW_NV_explicit_multisample = !_glewInit_GL_NV_explicit_multisample(); #endif /* GL_NV_explicit_multisample */ #ifdef GL_NV_fence - GLEW_NV_fence = _glewSearchExtension("GL_NV_fence", extStart, extEnd); - if (glewExperimental || GLEW_NV_fence) GLEW_NV_fence = !_glewInit_GL_NV_fence(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_NV_fence) GLEW_NV_fence = !_glewInit_GL_NV_fence(); #endif /* GL_NV_fence */ -#ifdef GL_NV_fill_rectangle - GLEW_NV_fill_rectangle = _glewSearchExtension("GL_NV_fill_rectangle", extStart, extEnd); -#endif /* GL_NV_fill_rectangle */ -#ifdef GL_NV_float_buffer - GLEW_NV_float_buffer = _glewSearchExtension("GL_NV_float_buffer", extStart, extEnd); -#endif /* GL_NV_float_buffer */ -#ifdef GL_NV_fog_distance - GLEW_NV_fog_distance = _glewSearchExtension("GL_NV_fog_distance", extStart, extEnd); -#endif /* GL_NV_fog_distance */ #ifdef GL_NV_fragment_coverage_to_color - GLEW_NV_fragment_coverage_to_color = _glewSearchExtension("GL_NV_fragment_coverage_to_color", extStart, extEnd); - if (glewExperimental || GLEW_NV_fragment_coverage_to_color) GLEW_NV_fragment_coverage_to_color = !_glewInit_GL_NV_fragment_coverage_to_color(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_NV_fragment_coverage_to_color) GLEW_NV_fragment_coverage_to_color = !_glewInit_GL_NV_fragment_coverage_to_color(); #endif /* GL_NV_fragment_coverage_to_color */ #ifdef GL_NV_fragment_program - GLEW_NV_fragment_program = _glewSearchExtension("GL_NV_fragment_program", extStart, extEnd); - if (glewExperimental || GLEW_NV_fragment_program) GLEW_NV_fragment_program = !_glewInit_GL_NV_fragment_program(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_NV_fragment_program) GLEW_NV_fragment_program = !_glewInit_GL_NV_fragment_program(); #endif /* GL_NV_fragment_program */ -#ifdef GL_NV_fragment_program2 - GLEW_NV_fragment_program2 = _glewSearchExtension("GL_NV_fragment_program2", extStart, extEnd); -#endif /* GL_NV_fragment_program2 */ -#ifdef GL_NV_fragment_program4 - GLEW_NV_fragment_program4 = _glewSearchExtension("GL_NV_gpu_program4", extStart, extEnd); -#endif /* GL_NV_fragment_program4 */ -#ifdef GL_NV_fragment_program_option - GLEW_NV_fragment_program_option = _glewSearchExtension("GL_NV_fragment_program_option", extStart, extEnd); -#endif /* GL_NV_fragment_program_option */ -#ifdef GL_NV_fragment_shader_interlock - GLEW_NV_fragment_shader_interlock = _glewSearchExtension("GL_NV_fragment_shader_interlock", extStart, extEnd); -#endif /* GL_NV_fragment_shader_interlock */ -#ifdef GL_NV_framebuffer_mixed_samples - GLEW_NV_framebuffer_mixed_samples = _glewSearchExtension("GL_NV_framebuffer_mixed_samples", extStart, extEnd); -#endif /* GL_NV_framebuffer_mixed_samples */ +#ifdef GL_NV_framebuffer_blit + if (glewExperimental || GLEW_NV_framebuffer_blit) GLEW_NV_framebuffer_blit = !_glewInit_GL_NV_framebuffer_blit(); +#endif /* GL_NV_framebuffer_blit */ +#ifdef GL_NV_framebuffer_multisample + if (glewExperimental || GLEW_NV_framebuffer_multisample) GLEW_NV_framebuffer_multisample = !_glewInit_GL_NV_framebuffer_multisample(); +#endif /* GL_NV_framebuffer_multisample */ #ifdef GL_NV_framebuffer_multisample_coverage - GLEW_NV_framebuffer_multisample_coverage = _glewSearchExtension("GL_NV_framebuffer_multisample_coverage", extStart, extEnd); - if (glewExperimental || GLEW_NV_framebuffer_multisample_coverage) GLEW_NV_framebuffer_multisample_coverage = !_glewInit_GL_NV_framebuffer_multisample_coverage(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_NV_framebuffer_multisample_coverage) GLEW_NV_framebuffer_multisample_coverage = !_glewInit_GL_NV_framebuffer_multisample_coverage(); #endif /* GL_NV_framebuffer_multisample_coverage */ #ifdef GL_NV_geometry_program4 - GLEW_NV_geometry_program4 = _glewSearchExtension("GL_NV_gpu_program4", extStart, extEnd); - if (glewExperimental || GLEW_NV_geometry_program4) GLEW_NV_geometry_program4 = !_glewInit_GL_NV_geometry_program4(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_NV_geometry_program4) GLEW_NV_geometry_program4 = !_glewInit_GL_NV_geometry_program4(); #endif /* GL_NV_geometry_program4 */ -#ifdef GL_NV_geometry_shader4 - GLEW_NV_geometry_shader4 = _glewSearchExtension("GL_NV_geometry_shader4", extStart, extEnd); -#endif /* GL_NV_geometry_shader4 */ -#ifdef GL_NV_geometry_shader_passthrough - GLEW_NV_geometry_shader_passthrough = _glewSearchExtension("GL_NV_geometry_shader_passthrough", extStart, extEnd); -#endif /* GL_NV_geometry_shader_passthrough */ +#ifdef GL_NV_gpu_multicast + if (glewExperimental || GLEW_NV_gpu_multicast) GLEW_NV_gpu_multicast = !_glewInit_GL_NV_gpu_multicast(); +#endif /* GL_NV_gpu_multicast */ #ifdef GL_NV_gpu_program4 - GLEW_NV_gpu_program4 = _glewSearchExtension("GL_NV_gpu_program4", extStart, extEnd); - if (glewExperimental || GLEW_NV_gpu_program4) GLEW_NV_gpu_program4 = !_glewInit_GL_NV_gpu_program4(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_NV_gpu_program4) GLEW_NV_gpu_program4 = !_glewInit_GL_NV_gpu_program4(); #endif /* GL_NV_gpu_program4 */ -#ifdef GL_NV_gpu_program5 - GLEW_NV_gpu_program5 = _glewSearchExtension("GL_NV_gpu_program5", extStart, extEnd); -#endif /* GL_NV_gpu_program5 */ -#ifdef GL_NV_gpu_program5_mem_extended - GLEW_NV_gpu_program5_mem_extended = _glewSearchExtension("GL_NV_gpu_program5_mem_extended", extStart, extEnd); -#endif /* GL_NV_gpu_program5_mem_extended */ -#ifdef GL_NV_gpu_program_fp64 - GLEW_NV_gpu_program_fp64 = _glewSearchExtension("GL_NV_gpu_program_fp64", extStart, extEnd); -#endif /* GL_NV_gpu_program_fp64 */ #ifdef GL_NV_gpu_shader5 - GLEW_NV_gpu_shader5 = _glewSearchExtension("GL_NV_gpu_shader5", extStart, extEnd); - if (glewExperimental || GLEW_NV_gpu_shader5) GLEW_NV_gpu_shader5 = !_glewInit_GL_NV_gpu_shader5(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_NV_gpu_shader5) GLEW_NV_gpu_shader5 = !_glewInit_GL_NV_gpu_shader5(); #endif /* GL_NV_gpu_shader5 */ #ifdef GL_NV_half_float - GLEW_NV_half_float = _glewSearchExtension("GL_NV_half_float", extStart, extEnd); - if (glewExperimental || GLEW_NV_half_float) GLEW_NV_half_float = !_glewInit_GL_NV_half_float(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_NV_half_float) GLEW_NV_half_float = !_glewInit_GL_NV_half_float(); #endif /* GL_NV_half_float */ +#ifdef GL_NV_instanced_arrays + if (glewExperimental || GLEW_NV_instanced_arrays) GLEW_NV_instanced_arrays = !_glewInit_GL_NV_instanced_arrays(); +#endif /* GL_NV_instanced_arrays */ #ifdef GL_NV_internalformat_sample_query - GLEW_NV_internalformat_sample_query = _glewSearchExtension("GL_NV_internalformat_sample_query", extStart, extEnd); - if (glewExperimental || GLEW_NV_internalformat_sample_query) GLEW_NV_internalformat_sample_query = !_glewInit_GL_NV_internalformat_sample_query(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_NV_internalformat_sample_query) GLEW_NV_internalformat_sample_query = !_glewInit_GL_NV_internalformat_sample_query(); #endif /* GL_NV_internalformat_sample_query */ -#ifdef GL_NV_light_max_exponent - GLEW_NV_light_max_exponent = _glewSearchExtension("GL_NV_light_max_exponent", extStart, extEnd); -#endif /* GL_NV_light_max_exponent */ -#ifdef GL_NV_multisample_coverage - GLEW_NV_multisample_coverage = _glewSearchExtension("GL_NV_multisample_coverage", extStart, extEnd); -#endif /* GL_NV_multisample_coverage */ -#ifdef GL_NV_multisample_filter_hint - GLEW_NV_multisample_filter_hint = _glewSearchExtension("GL_NV_multisample_filter_hint", extStart, extEnd); -#endif /* GL_NV_multisample_filter_hint */ +#ifdef GL_NV_memory_attachment + if (glewExperimental || GLEW_NV_memory_attachment) GLEW_NV_memory_attachment = !_glewInit_GL_NV_memory_attachment(); +#endif /* GL_NV_memory_attachment */ +#ifdef GL_NV_mesh_shader + if (glewExperimental || GLEW_NV_mesh_shader) GLEW_NV_mesh_shader = !_glewInit_GL_NV_mesh_shader(); +#endif /* GL_NV_mesh_shader */ +#ifdef GL_NV_non_square_matrices + if (glewExperimental || GLEW_NV_non_square_matrices) GLEW_NV_non_square_matrices = !_glewInit_GL_NV_non_square_matrices(); +#endif /* GL_NV_non_square_matrices */ #ifdef GL_NV_occlusion_query - GLEW_NV_occlusion_query = _glewSearchExtension("GL_NV_occlusion_query", extStart, extEnd); - if (glewExperimental || GLEW_NV_occlusion_query) GLEW_NV_occlusion_query = !_glewInit_GL_NV_occlusion_query(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_NV_occlusion_query) GLEW_NV_occlusion_query = !_glewInit_GL_NV_occlusion_query(); #endif /* GL_NV_occlusion_query */ -#ifdef GL_NV_packed_depth_stencil - GLEW_NV_packed_depth_stencil = _glewSearchExtension("GL_NV_packed_depth_stencil", extStart, extEnd); -#endif /* GL_NV_packed_depth_stencil */ #ifdef GL_NV_parameter_buffer_object - GLEW_NV_parameter_buffer_object = _glewSearchExtension("GL_NV_parameter_buffer_object", extStart, extEnd); - if (glewExperimental || GLEW_NV_parameter_buffer_object) GLEW_NV_parameter_buffer_object = !_glewInit_GL_NV_parameter_buffer_object(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_NV_parameter_buffer_object) GLEW_NV_parameter_buffer_object = !_glewInit_GL_NV_parameter_buffer_object(); #endif /* GL_NV_parameter_buffer_object */ -#ifdef GL_NV_parameter_buffer_object2 - GLEW_NV_parameter_buffer_object2 = _glewSearchExtension("GL_NV_parameter_buffer_object2", extStart, extEnd); -#endif /* GL_NV_parameter_buffer_object2 */ #ifdef GL_NV_path_rendering - GLEW_NV_path_rendering = _glewSearchExtension("GL_NV_path_rendering", extStart, extEnd); - if (glewExperimental || GLEW_NV_path_rendering) GLEW_NV_path_rendering = !_glewInit_GL_NV_path_rendering(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_NV_path_rendering) GLEW_NV_path_rendering = !_glewInit_GL_NV_path_rendering(); #endif /* GL_NV_path_rendering */ -#ifdef GL_NV_path_rendering_shared_edge - GLEW_NV_path_rendering_shared_edge = _glewSearchExtension("GL_NV_path_rendering_shared_edge", extStart, extEnd); -#endif /* GL_NV_path_rendering_shared_edge */ #ifdef GL_NV_pixel_data_range - GLEW_NV_pixel_data_range = _glewSearchExtension("GL_NV_pixel_data_range", extStart, extEnd); - if (glewExperimental || GLEW_NV_pixel_data_range) GLEW_NV_pixel_data_range = !_glewInit_GL_NV_pixel_data_range(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_NV_pixel_data_range) GLEW_NV_pixel_data_range = !_glewInit_GL_NV_pixel_data_range(); #endif /* GL_NV_pixel_data_range */ #ifdef GL_NV_point_sprite - GLEW_NV_point_sprite = _glewSearchExtension("GL_NV_point_sprite", extStart, extEnd); - if (glewExperimental || GLEW_NV_point_sprite) GLEW_NV_point_sprite = !_glewInit_GL_NV_point_sprite(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_NV_point_sprite) GLEW_NV_point_sprite = !_glewInit_GL_NV_point_sprite(); #endif /* GL_NV_point_sprite */ +#ifdef GL_NV_polygon_mode + if (glewExperimental || GLEW_NV_polygon_mode) GLEW_NV_polygon_mode = !_glewInit_GL_NV_polygon_mode(); +#endif /* GL_NV_polygon_mode */ #ifdef GL_NV_present_video - GLEW_NV_present_video = _glewSearchExtension("GL_NV_present_video", extStart, extEnd); - if (glewExperimental || GLEW_NV_present_video) GLEW_NV_present_video = !_glewInit_GL_NV_present_video(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_NV_present_video) GLEW_NV_present_video = !_glewInit_GL_NV_present_video(); #endif /* GL_NV_present_video */ #ifdef GL_NV_primitive_restart - GLEW_NV_primitive_restart = _glewSearchExtension("GL_NV_primitive_restart", extStart, extEnd); - if (glewExperimental || GLEW_NV_primitive_restart) GLEW_NV_primitive_restart = !_glewInit_GL_NV_primitive_restart(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_NV_primitive_restart) GLEW_NV_primitive_restart = !_glewInit_GL_NV_primitive_restart(); #endif /* GL_NV_primitive_restart */ +#ifdef GL_NV_read_buffer + if (glewExperimental || GLEW_NV_read_buffer) GLEW_NV_read_buffer = !_glewInit_GL_NV_read_buffer(); +#endif /* GL_NV_read_buffer */ #ifdef GL_NV_register_combiners - GLEW_NV_register_combiners = _glewSearchExtension("GL_NV_register_combiners", extStart, extEnd); - if (glewExperimental || GLEW_NV_register_combiners) GLEW_NV_register_combiners = !_glewInit_GL_NV_register_combiners(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_NV_register_combiners) GLEW_NV_register_combiners = !_glewInit_GL_NV_register_combiners(); #endif /* GL_NV_register_combiners */ #ifdef GL_NV_register_combiners2 - GLEW_NV_register_combiners2 = _glewSearchExtension("GL_NV_register_combiners2", extStart, extEnd); - if (glewExperimental || GLEW_NV_register_combiners2) GLEW_NV_register_combiners2 = !_glewInit_GL_NV_register_combiners2(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_NV_register_combiners2) GLEW_NV_register_combiners2 = !_glewInit_GL_NV_register_combiners2(); #endif /* GL_NV_register_combiners2 */ #ifdef GL_NV_sample_locations - GLEW_NV_sample_locations = _glewSearchExtension("GL_NV_sample_locations", extStart, extEnd); - if (glewExperimental || GLEW_NV_sample_locations) GLEW_NV_sample_locations = !_glewInit_GL_NV_sample_locations(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_NV_sample_locations) GLEW_NV_sample_locations = !_glewInit_GL_NV_sample_locations(); #endif /* GL_NV_sample_locations */ -#ifdef GL_NV_sample_mask_override_coverage - GLEW_NV_sample_mask_override_coverage = _glewSearchExtension("GL_NV_sample_mask_override_coverage", extStart, extEnd); -#endif /* GL_NV_sample_mask_override_coverage */ -#ifdef GL_NV_shader_atomic_counters - GLEW_NV_shader_atomic_counters = _glewSearchExtension("GL_NV_shader_atomic_counters", extStart, extEnd); -#endif /* GL_NV_shader_atomic_counters */ -#ifdef GL_NV_shader_atomic_float - GLEW_NV_shader_atomic_float = _glewSearchExtension("GL_NV_shader_atomic_float", extStart, extEnd); -#endif /* GL_NV_shader_atomic_float */ -#ifdef GL_NV_shader_atomic_fp16_vector - GLEW_NV_shader_atomic_fp16_vector = _glewSearchExtension("GL_NV_shader_atomic_fp16_vector", extStart, extEnd); -#endif /* GL_NV_shader_atomic_fp16_vector */ -#ifdef GL_NV_shader_atomic_int64 - GLEW_NV_shader_atomic_int64 = _glewSearchExtension("GL_NV_shader_atomic_int64", extStart, extEnd); -#endif /* GL_NV_shader_atomic_int64 */ +#ifdef GL_NV_scissor_exclusive + if (glewExperimental || GLEW_NV_scissor_exclusive) GLEW_NV_scissor_exclusive = !_glewInit_GL_NV_scissor_exclusive(); +#endif /* GL_NV_scissor_exclusive */ #ifdef GL_NV_shader_buffer_load - GLEW_NV_shader_buffer_load = _glewSearchExtension("GL_NV_shader_buffer_load", extStart, extEnd); - if (glewExperimental || GLEW_NV_shader_buffer_load) GLEW_NV_shader_buffer_load = !_glewInit_GL_NV_shader_buffer_load(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_NV_shader_buffer_load) GLEW_NV_shader_buffer_load = !_glewInit_GL_NV_shader_buffer_load(); #endif /* GL_NV_shader_buffer_load */ -#ifdef GL_NV_shader_storage_buffer_object - GLEW_NV_shader_storage_buffer_object = _glewSearchExtension("GL_NV_shader_storage_buffer_object", extStart, extEnd); -#endif /* GL_NV_shader_storage_buffer_object */ -#ifdef GL_NV_shader_thread_group - GLEW_NV_shader_thread_group = _glewSearchExtension("GL_NV_shader_thread_group", extStart, extEnd); -#endif /* GL_NV_shader_thread_group */ -#ifdef GL_NV_shader_thread_shuffle - GLEW_NV_shader_thread_shuffle = _glewSearchExtension("GL_NV_shader_thread_shuffle", extStart, extEnd); -#endif /* GL_NV_shader_thread_shuffle */ -#ifdef GL_NV_tessellation_program5 - GLEW_NV_tessellation_program5 = _glewSearchExtension("GL_NV_gpu_program5", extStart, extEnd); -#endif /* GL_NV_tessellation_program5 */ -#ifdef GL_NV_texgen_emboss - GLEW_NV_texgen_emboss = _glewSearchExtension("GL_NV_texgen_emboss", extStart, extEnd); -#endif /* GL_NV_texgen_emboss */ -#ifdef GL_NV_texgen_reflection - GLEW_NV_texgen_reflection = _glewSearchExtension("GL_NV_texgen_reflection", extStart, extEnd); -#endif /* GL_NV_texgen_reflection */ +#ifdef GL_NV_shading_rate_image + if (glewExperimental || GLEW_NV_shading_rate_image) GLEW_NV_shading_rate_image = !_glewInit_GL_NV_shading_rate_image(); +#endif /* GL_NV_shading_rate_image */ +#ifdef GL_NV_texture_array + if (glewExperimental || GLEW_NV_texture_array) GLEW_NV_texture_array = !_glewInit_GL_NV_texture_array(); +#endif /* GL_NV_texture_array */ #ifdef GL_NV_texture_barrier - GLEW_NV_texture_barrier = _glewSearchExtension("GL_NV_texture_barrier", extStart, extEnd); - if (glewExperimental || GLEW_NV_texture_barrier) GLEW_NV_texture_barrier = !_glewInit_GL_NV_texture_barrier(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_NV_texture_barrier) GLEW_NV_texture_barrier = !_glewInit_GL_NV_texture_barrier(); #endif /* GL_NV_texture_barrier */ -#ifdef GL_NV_texture_compression_vtc - GLEW_NV_texture_compression_vtc = _glewSearchExtension("GL_NV_texture_compression_vtc", extStart, extEnd); -#endif /* GL_NV_texture_compression_vtc */ -#ifdef GL_NV_texture_env_combine4 - GLEW_NV_texture_env_combine4 = _glewSearchExtension("GL_NV_texture_env_combine4", extStart, extEnd); -#endif /* GL_NV_texture_env_combine4 */ -#ifdef GL_NV_texture_expand_normal - GLEW_NV_texture_expand_normal = _glewSearchExtension("GL_NV_texture_expand_normal", extStart, extEnd); -#endif /* GL_NV_texture_expand_normal */ #ifdef GL_NV_texture_multisample - GLEW_NV_texture_multisample = _glewSearchExtension("GL_NV_texture_multisample", extStart, extEnd); - if (glewExperimental || GLEW_NV_texture_multisample) GLEW_NV_texture_multisample = !_glewInit_GL_NV_texture_multisample(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_NV_texture_multisample) GLEW_NV_texture_multisample = !_glewInit_GL_NV_texture_multisample(); #endif /* GL_NV_texture_multisample */ -#ifdef GL_NV_texture_rectangle - GLEW_NV_texture_rectangle = _glewSearchExtension("GL_NV_texture_rectangle", extStart, extEnd); -#endif /* GL_NV_texture_rectangle */ -#ifdef GL_NV_texture_shader - GLEW_NV_texture_shader = _glewSearchExtension("GL_NV_texture_shader", extStart, extEnd); -#endif /* GL_NV_texture_shader */ -#ifdef GL_NV_texture_shader2 - GLEW_NV_texture_shader2 = _glewSearchExtension("GL_NV_texture_shader2", extStart, extEnd); -#endif /* GL_NV_texture_shader2 */ -#ifdef GL_NV_texture_shader3 - GLEW_NV_texture_shader3 = _glewSearchExtension("GL_NV_texture_shader3", extStart, extEnd); -#endif /* GL_NV_texture_shader3 */ #ifdef GL_NV_transform_feedback - GLEW_NV_transform_feedback = _glewSearchExtension("GL_NV_transform_feedback", extStart, extEnd); - if (glewExperimental || GLEW_NV_transform_feedback) GLEW_NV_transform_feedback = !_glewInit_GL_NV_transform_feedback(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_NV_transform_feedback) GLEW_NV_transform_feedback = !_glewInit_GL_NV_transform_feedback(); #endif /* GL_NV_transform_feedback */ #ifdef GL_NV_transform_feedback2 - GLEW_NV_transform_feedback2 = _glewSearchExtension("GL_NV_transform_feedback2", extStart, extEnd); - if (glewExperimental || GLEW_NV_transform_feedback2) GLEW_NV_transform_feedback2 = !_glewInit_GL_NV_transform_feedback2(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_NV_transform_feedback2) GLEW_NV_transform_feedback2 = !_glewInit_GL_NV_transform_feedback2(); #endif /* GL_NV_transform_feedback2 */ -#ifdef GL_NV_uniform_buffer_unified_memory - GLEW_NV_uniform_buffer_unified_memory = _glewSearchExtension("GL_NV_uniform_buffer_unified_memory", extStart, extEnd); -#endif /* GL_NV_uniform_buffer_unified_memory */ #ifdef GL_NV_vdpau_interop - GLEW_NV_vdpau_interop = _glewSearchExtension("GL_NV_vdpau_interop", extStart, extEnd); - if (glewExperimental || GLEW_NV_vdpau_interop) GLEW_NV_vdpau_interop = !_glewInit_GL_NV_vdpau_interop(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_NV_vdpau_interop) GLEW_NV_vdpau_interop = !_glewInit_GL_NV_vdpau_interop(); #endif /* GL_NV_vdpau_interop */ +#ifdef GL_NV_vdpau_interop2 + if (glewExperimental || GLEW_NV_vdpau_interop2) GLEW_NV_vdpau_interop2 = !_glewInit_GL_NV_vdpau_interop2(); +#endif /* GL_NV_vdpau_interop2 */ #ifdef GL_NV_vertex_array_range - GLEW_NV_vertex_array_range = _glewSearchExtension("GL_NV_vertex_array_range", extStart, extEnd); - if (glewExperimental || GLEW_NV_vertex_array_range) GLEW_NV_vertex_array_range = !_glewInit_GL_NV_vertex_array_range(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_NV_vertex_array_range) GLEW_NV_vertex_array_range = !_glewInit_GL_NV_vertex_array_range(); #endif /* GL_NV_vertex_array_range */ -#ifdef GL_NV_vertex_array_range2 - GLEW_NV_vertex_array_range2 = _glewSearchExtension("GL_NV_vertex_array_range2", extStart, extEnd); -#endif /* GL_NV_vertex_array_range2 */ #ifdef GL_NV_vertex_attrib_integer_64bit - GLEW_NV_vertex_attrib_integer_64bit = _glewSearchExtension("GL_NV_vertex_attrib_integer_64bit", extStart, extEnd); - if (glewExperimental || GLEW_NV_vertex_attrib_integer_64bit) GLEW_NV_vertex_attrib_integer_64bit = !_glewInit_GL_NV_vertex_attrib_integer_64bit(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_NV_vertex_attrib_integer_64bit) GLEW_NV_vertex_attrib_integer_64bit = !_glewInit_GL_NV_vertex_attrib_integer_64bit(); #endif /* GL_NV_vertex_attrib_integer_64bit */ #ifdef GL_NV_vertex_buffer_unified_memory - GLEW_NV_vertex_buffer_unified_memory = _glewSearchExtension("GL_NV_vertex_buffer_unified_memory", extStart, extEnd); - if (glewExperimental || GLEW_NV_vertex_buffer_unified_memory) GLEW_NV_vertex_buffer_unified_memory = !_glewInit_GL_NV_vertex_buffer_unified_memory(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_NV_vertex_buffer_unified_memory) GLEW_NV_vertex_buffer_unified_memory = !_glewInit_GL_NV_vertex_buffer_unified_memory(); #endif /* GL_NV_vertex_buffer_unified_memory */ #ifdef GL_NV_vertex_program - GLEW_NV_vertex_program = _glewSearchExtension("GL_NV_vertex_program", extStart, extEnd); - if (glewExperimental || GLEW_NV_vertex_program) GLEW_NV_vertex_program = !_glewInit_GL_NV_vertex_program(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_NV_vertex_program) GLEW_NV_vertex_program = !_glewInit_GL_NV_vertex_program(); #endif /* GL_NV_vertex_program */ -#ifdef GL_NV_vertex_program1_1 - GLEW_NV_vertex_program1_1 = _glewSearchExtension("GL_NV_vertex_program1_1", extStart, extEnd); -#endif /* GL_NV_vertex_program1_1 */ -#ifdef GL_NV_vertex_program2 - GLEW_NV_vertex_program2 = _glewSearchExtension("GL_NV_vertex_program2", extStart, extEnd); -#endif /* GL_NV_vertex_program2 */ -#ifdef GL_NV_vertex_program2_option - GLEW_NV_vertex_program2_option = _glewSearchExtension("GL_NV_vertex_program2_option", extStart, extEnd); -#endif /* GL_NV_vertex_program2_option */ -#ifdef GL_NV_vertex_program3 - GLEW_NV_vertex_program3 = _glewSearchExtension("GL_NV_vertex_program3", extStart, extEnd); -#endif /* GL_NV_vertex_program3 */ -#ifdef GL_NV_vertex_program4 - GLEW_NV_vertex_program4 = _glewSearchExtension("GL_NV_gpu_program4", extStart, extEnd); -#endif /* GL_NV_vertex_program4 */ #ifdef GL_NV_video_capture - GLEW_NV_video_capture = _glewSearchExtension("GL_NV_video_capture", extStart, extEnd); - if (glewExperimental || GLEW_NV_video_capture) GLEW_NV_video_capture = !_glewInit_GL_NV_video_capture(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_NV_video_capture) GLEW_NV_video_capture = !_glewInit_GL_NV_video_capture(); #endif /* GL_NV_video_capture */ -#ifdef GL_NV_viewport_array2 - GLEW_NV_viewport_array2 = _glewSearchExtension("GL_NV_viewport_array2", extStart, extEnd); -#endif /* GL_NV_viewport_array2 */ -#ifdef GL_OES_byte_coordinates - GLEW_OES_byte_coordinates = _glewSearchExtension("GL_OES_byte_coordinates", extStart, extEnd); -#endif /* GL_OES_byte_coordinates */ -#ifdef GL_OES_compressed_paletted_texture - GLEW_OES_compressed_paletted_texture = _glewSearchExtension("GL_OES_compressed_paletted_texture", extStart, extEnd); -#endif /* GL_OES_compressed_paletted_texture */ -#ifdef GL_OES_read_format - GLEW_OES_read_format = _glewSearchExtension("GL_OES_read_format", extStart, extEnd); -#endif /* GL_OES_read_format */ +#ifdef GL_NV_viewport_array + if (glewExperimental || GLEW_NV_viewport_array) GLEW_NV_viewport_array = !_glewInit_GL_NV_viewport_array(); +#endif /* GL_NV_viewport_array */ +#ifdef GL_NV_viewport_swizzle + if (glewExperimental || GLEW_NV_viewport_swizzle) GLEW_NV_viewport_swizzle = !_glewInit_GL_NV_viewport_swizzle(); +#endif /* GL_NV_viewport_swizzle */ +#ifdef GL_OES_EGL_image + if (glewExperimental || GLEW_OES_EGL_image) GLEW_OES_EGL_image = !_glewInit_GL_OES_EGL_image(); +#endif /* GL_OES_EGL_image */ +#ifdef GL_OES_blend_equation_separate + if (glewExperimental || GLEW_OES_blend_equation_separate) GLEW_OES_blend_equation_separate = !_glewInit_GL_OES_blend_equation_separate(); +#endif /* GL_OES_blend_equation_separate */ +#ifdef GL_OES_blend_func_separate + if (glewExperimental || GLEW_OES_blend_func_separate) GLEW_OES_blend_func_separate = !_glewInit_GL_OES_blend_func_separate(); +#endif /* GL_OES_blend_func_separate */ +#ifdef GL_OES_blend_subtract + if (glewExperimental || GLEW_OES_blend_subtract) GLEW_OES_blend_subtract = !_glewInit_GL_OES_blend_subtract(); +#endif /* GL_OES_blend_subtract */ +#ifdef GL_OES_copy_image + if (glewExperimental || GLEW_OES_copy_image) GLEW_OES_copy_image = !_glewInit_GL_OES_copy_image(); +#endif /* GL_OES_copy_image */ +#ifdef GL_OES_draw_buffers_indexed + if (glewExperimental || GLEW_OES_draw_buffers_indexed) GLEW_OES_draw_buffers_indexed = !_glewInit_GL_OES_draw_buffers_indexed(); +#endif /* GL_OES_draw_buffers_indexed */ +#ifdef GL_OES_framebuffer_object + if (glewExperimental || GLEW_OES_framebuffer_object) GLEW_OES_framebuffer_object = !_glewInit_GL_OES_framebuffer_object(); +#endif /* GL_OES_framebuffer_object */ +#ifdef GL_OES_get_program_binary + if (glewExperimental || GLEW_OES_get_program_binary) GLEW_OES_get_program_binary = !_glewInit_GL_OES_get_program_binary(); +#endif /* GL_OES_get_program_binary */ +#ifdef GL_OES_mapbuffer + if (glewExperimental || GLEW_OES_mapbuffer) GLEW_OES_mapbuffer = !_glewInit_GL_OES_mapbuffer(); +#endif /* GL_OES_mapbuffer */ +#ifdef GL_OES_matrix_palette + if (glewExperimental || GLEW_OES_matrix_palette) GLEW_OES_matrix_palette = !_glewInit_GL_OES_matrix_palette(); +#endif /* GL_OES_matrix_palette */ +#ifdef GL_OES_sample_shading + if (glewExperimental || GLEW_OES_sample_shading) GLEW_OES_sample_shading = !_glewInit_GL_OES_sample_shading(); +#endif /* GL_OES_sample_shading */ #ifdef GL_OES_single_precision - GLEW_OES_single_precision = _glewSearchExtension("GL_OES_single_precision", extStart, extEnd); - if (glewExperimental || GLEW_OES_single_precision) GLEW_OES_single_precision = !_glewInit_GL_OES_single_precision(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_OES_single_precision) GLEW_OES_single_precision = !_glewInit_GL_OES_single_precision(); #endif /* GL_OES_single_precision */ -#ifdef GL_OML_interlace - GLEW_OML_interlace = _glewSearchExtension("GL_OML_interlace", extStart, extEnd); -#endif /* GL_OML_interlace */ -#ifdef GL_OML_resample - GLEW_OML_resample = _glewSearchExtension("GL_OML_resample", extStart, extEnd); -#endif /* GL_OML_resample */ -#ifdef GL_OML_subsample - GLEW_OML_subsample = _glewSearchExtension("GL_OML_subsample", extStart, extEnd); -#endif /* GL_OML_subsample */ +#ifdef GL_OES_texture_3D + if (glewExperimental || GLEW_OES_texture_3D) GLEW_OES_texture_3D = !_glewInit_GL_OES_texture_3D(); +#endif /* GL_OES_texture_3D */ +#ifdef GL_OES_texture_border_clamp + if (glewExperimental || GLEW_OES_texture_border_clamp) GLEW_OES_texture_border_clamp = !_glewInit_GL_OES_texture_border_clamp(); +#endif /* GL_OES_texture_border_clamp */ +#ifdef GL_OES_texture_buffer + if (glewExperimental || GLEW_OES_texture_buffer) GLEW_OES_texture_buffer = !_glewInit_GL_OES_texture_buffer(); +#endif /* GL_OES_texture_buffer */ +#ifdef GL_OES_texture_cube_map + if (glewExperimental || GLEW_OES_texture_cube_map) GLEW_OES_texture_cube_map = !_glewInit_GL_OES_texture_cube_map(); +#endif /* GL_OES_texture_cube_map */ +#ifdef GL_OES_texture_storage_multisample_2d_array + if (glewExperimental || GLEW_OES_texture_storage_multisample_2d_array) GLEW_OES_texture_storage_multisample_2d_array = !_glewInit_GL_OES_texture_storage_multisample_2d_array(); +#endif /* GL_OES_texture_storage_multisample_2d_array */ +#ifdef GL_OES_texture_view + if (glewExperimental || GLEW_OES_texture_view) GLEW_OES_texture_view = !_glewInit_GL_OES_texture_view(); +#endif /* GL_OES_texture_view */ +#ifdef GL_OES_vertex_array_object + if (glewExperimental || GLEW_OES_vertex_array_object) GLEW_OES_vertex_array_object = !_glewInit_GL_OES_vertex_array_object(); +#endif /* GL_OES_vertex_array_object */ #ifdef GL_OVR_multiview - GLEW_OVR_multiview = _glewSearchExtension("GL_OVR_multiview", extStart, extEnd); - if (glewExperimental || GLEW_OVR_multiview) GLEW_OVR_multiview = !_glewInit_GL_OVR_multiview(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_OVR_multiview) GLEW_OVR_multiview = !_glewInit_GL_OVR_multiview(); #endif /* GL_OVR_multiview */ -#ifdef GL_OVR_multiview2 - GLEW_OVR_multiview2 = _glewSearchExtension("GL_OVR_multiview2", extStart, extEnd); -#endif /* GL_OVR_multiview2 */ -#ifdef GL_PGI_misc_hints - GLEW_PGI_misc_hints = _glewSearchExtension("GL_PGI_misc_hints", extStart, extEnd); -#endif /* GL_PGI_misc_hints */ -#ifdef GL_PGI_vertex_hints - GLEW_PGI_vertex_hints = _glewSearchExtension("GL_PGI_vertex_hints", extStart, extEnd); -#endif /* GL_PGI_vertex_hints */ +#ifdef GL_OVR_multiview_multisampled_render_to_texture + if (glewExperimental || GLEW_OVR_multiview_multisampled_render_to_texture) GLEW_OVR_multiview_multisampled_render_to_texture = !_glewInit_GL_OVR_multiview_multisampled_render_to_texture(); +#endif /* GL_OVR_multiview_multisampled_render_to_texture */ +#ifdef GL_QCOM_alpha_test + if (glewExperimental || GLEW_QCOM_alpha_test) GLEW_QCOM_alpha_test = !_glewInit_GL_QCOM_alpha_test(); +#endif /* GL_QCOM_alpha_test */ +#ifdef GL_QCOM_driver_control + if (glewExperimental || GLEW_QCOM_driver_control) GLEW_QCOM_driver_control = !_glewInit_GL_QCOM_driver_control(); +#endif /* GL_QCOM_driver_control */ +#ifdef GL_QCOM_extended_get + if (glewExperimental || GLEW_QCOM_extended_get) GLEW_QCOM_extended_get = !_glewInit_GL_QCOM_extended_get(); +#endif /* GL_QCOM_extended_get */ +#ifdef GL_QCOM_extended_get2 + if (glewExperimental || GLEW_QCOM_extended_get2) GLEW_QCOM_extended_get2 = !_glewInit_GL_QCOM_extended_get2(); +#endif /* GL_QCOM_extended_get2 */ +#ifdef GL_QCOM_framebuffer_foveated + if (glewExperimental || GLEW_QCOM_framebuffer_foveated) GLEW_QCOM_framebuffer_foveated = !_glewInit_GL_QCOM_framebuffer_foveated(); +#endif /* GL_QCOM_framebuffer_foveated */ +#ifdef GL_QCOM_shader_framebuffer_fetch_noncoherent + if (glewExperimental || GLEW_QCOM_shader_framebuffer_fetch_noncoherent) GLEW_QCOM_shader_framebuffer_fetch_noncoherent = !_glewInit_GL_QCOM_shader_framebuffer_fetch_noncoherent(); +#endif /* GL_QCOM_shader_framebuffer_fetch_noncoherent */ +#ifdef GL_QCOM_texture_foveated + if (glewExperimental || GLEW_QCOM_texture_foveated) GLEW_QCOM_texture_foveated = !_glewInit_GL_QCOM_texture_foveated(); +#endif /* GL_QCOM_texture_foveated */ +#ifdef GL_QCOM_tiled_rendering + if (glewExperimental || GLEW_QCOM_tiled_rendering) GLEW_QCOM_tiled_rendering = !_glewInit_GL_QCOM_tiled_rendering(); +#endif /* GL_QCOM_tiled_rendering */ #ifdef GL_REGAL_ES1_0_compatibility - GLEW_REGAL_ES1_0_compatibility = _glewSearchExtension("GL_REGAL_ES1_0_compatibility", extStart, extEnd); - if (glewExperimental || GLEW_REGAL_ES1_0_compatibility) GLEW_REGAL_ES1_0_compatibility = !_glewInit_GL_REGAL_ES1_0_compatibility(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_REGAL_ES1_0_compatibility) GLEW_REGAL_ES1_0_compatibility = !_glewInit_GL_REGAL_ES1_0_compatibility(); #endif /* GL_REGAL_ES1_0_compatibility */ #ifdef GL_REGAL_ES1_1_compatibility - GLEW_REGAL_ES1_1_compatibility = _glewSearchExtension("GL_REGAL_ES1_1_compatibility", extStart, extEnd); - if (glewExperimental || GLEW_REGAL_ES1_1_compatibility) GLEW_REGAL_ES1_1_compatibility = !_glewInit_GL_REGAL_ES1_1_compatibility(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_REGAL_ES1_1_compatibility) GLEW_REGAL_ES1_1_compatibility = !_glewInit_GL_REGAL_ES1_1_compatibility(); #endif /* GL_REGAL_ES1_1_compatibility */ -#ifdef GL_REGAL_enable - GLEW_REGAL_enable = _glewSearchExtension("GL_REGAL_enable", extStart, extEnd); -#endif /* GL_REGAL_enable */ #ifdef GL_REGAL_error_string - GLEW_REGAL_error_string = _glewSearchExtension("GL_REGAL_error_string", extStart, extEnd); - if (glewExperimental || GLEW_REGAL_error_string) GLEW_REGAL_error_string = !_glewInit_GL_REGAL_error_string(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_REGAL_error_string) GLEW_REGAL_error_string = !_glewInit_GL_REGAL_error_string(); #endif /* GL_REGAL_error_string */ #ifdef GL_REGAL_extension_query - GLEW_REGAL_extension_query = _glewSearchExtension("GL_REGAL_extension_query", extStart, extEnd); - if (glewExperimental || GLEW_REGAL_extension_query) GLEW_REGAL_extension_query = !_glewInit_GL_REGAL_extension_query(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_REGAL_extension_query) GLEW_REGAL_extension_query = !_glewInit_GL_REGAL_extension_query(); #endif /* GL_REGAL_extension_query */ #ifdef GL_REGAL_log - GLEW_REGAL_log = _glewSearchExtension("GL_REGAL_log", extStart, extEnd); - if (glewExperimental || GLEW_REGAL_log) GLEW_REGAL_log = !_glewInit_GL_REGAL_log(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_REGAL_log) GLEW_REGAL_log = !_glewInit_GL_REGAL_log(); #endif /* GL_REGAL_log */ #ifdef GL_REGAL_proc_address - GLEW_REGAL_proc_address = _glewSearchExtension("GL_REGAL_proc_address", extStart, extEnd); - if (glewExperimental || GLEW_REGAL_proc_address) GLEW_REGAL_proc_address = !_glewInit_GL_REGAL_proc_address(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_REGAL_proc_address) GLEW_REGAL_proc_address = !_glewInit_GL_REGAL_proc_address(); #endif /* GL_REGAL_proc_address */ -#ifdef GL_REND_screen_coordinates - GLEW_REND_screen_coordinates = _glewSearchExtension("GL_REND_screen_coordinates", extStart, extEnd); -#endif /* GL_REND_screen_coordinates */ -#ifdef GL_S3_s3tc - GLEW_S3_s3tc = _glewSearchExtension("GL_S3_s3tc", extStart, extEnd); -#endif /* GL_S3_s3tc */ -#ifdef GL_SGIS_color_range - GLEW_SGIS_color_range = _glewSearchExtension("GL_SGIS_color_range", extStart, extEnd); -#endif /* GL_SGIS_color_range */ #ifdef GL_SGIS_detail_texture - GLEW_SGIS_detail_texture = _glewSearchExtension("GL_SGIS_detail_texture", extStart, extEnd); - if (glewExperimental || GLEW_SGIS_detail_texture) GLEW_SGIS_detail_texture = !_glewInit_GL_SGIS_detail_texture(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_SGIS_detail_texture) GLEW_SGIS_detail_texture = !_glewInit_GL_SGIS_detail_texture(); #endif /* GL_SGIS_detail_texture */ #ifdef GL_SGIS_fog_function - GLEW_SGIS_fog_function = _glewSearchExtension("GL_SGIS_fog_function", extStart, extEnd); - if (glewExperimental || GLEW_SGIS_fog_function) GLEW_SGIS_fog_function = !_glewInit_GL_SGIS_fog_function(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_SGIS_fog_function) GLEW_SGIS_fog_function = !_glewInit_GL_SGIS_fog_function(); #endif /* GL_SGIS_fog_function */ -#ifdef GL_SGIS_generate_mipmap - GLEW_SGIS_generate_mipmap = _glewSearchExtension("GL_SGIS_generate_mipmap", extStart, extEnd); -#endif /* GL_SGIS_generate_mipmap */ #ifdef GL_SGIS_multisample - GLEW_SGIS_multisample = _glewSearchExtension("GL_SGIS_multisample", extStart, extEnd); - if (glewExperimental || GLEW_SGIS_multisample) GLEW_SGIS_multisample = !_glewInit_GL_SGIS_multisample(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_SGIS_multisample) GLEW_SGIS_multisample = !_glewInit_GL_SGIS_multisample(); #endif /* GL_SGIS_multisample */ -#ifdef GL_SGIS_pixel_texture - GLEW_SGIS_pixel_texture = _glewSearchExtension("GL_SGIS_pixel_texture", extStart, extEnd); -#endif /* GL_SGIS_pixel_texture */ -#ifdef GL_SGIS_point_line_texgen - GLEW_SGIS_point_line_texgen = _glewSearchExtension("GL_SGIS_point_line_texgen", extStart, extEnd); -#endif /* GL_SGIS_point_line_texgen */ +#ifdef GL_SGIS_multitexture + if (glewExperimental || GLEW_SGIS_multitexture) GLEW_SGIS_multitexture = !_glewInit_GL_SGIS_multitexture(); +#endif /* GL_SGIS_multitexture */ +#ifdef GL_SGIS_shared_multisample + if (glewExperimental || GLEW_SGIS_shared_multisample) GLEW_SGIS_shared_multisample = !_glewInit_GL_SGIS_shared_multisample(); +#endif /* GL_SGIS_shared_multisample */ #ifdef GL_SGIS_sharpen_texture - GLEW_SGIS_sharpen_texture = _glewSearchExtension("GL_SGIS_sharpen_texture", extStart, extEnd); - if (glewExperimental || GLEW_SGIS_sharpen_texture) GLEW_SGIS_sharpen_texture = !_glewInit_GL_SGIS_sharpen_texture(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_SGIS_sharpen_texture) GLEW_SGIS_sharpen_texture = !_glewInit_GL_SGIS_sharpen_texture(); #endif /* GL_SGIS_sharpen_texture */ #ifdef GL_SGIS_texture4D - GLEW_SGIS_texture4D = _glewSearchExtension("GL_SGIS_texture4D", extStart, extEnd); - if (glewExperimental || GLEW_SGIS_texture4D) GLEW_SGIS_texture4D = !_glewInit_GL_SGIS_texture4D(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_SGIS_texture4D) GLEW_SGIS_texture4D = !_glewInit_GL_SGIS_texture4D(); #endif /* GL_SGIS_texture4D */ -#ifdef GL_SGIS_texture_border_clamp - GLEW_SGIS_texture_border_clamp = _glewSearchExtension("GL_SGIS_texture_border_clamp", extStart, extEnd); -#endif /* GL_SGIS_texture_border_clamp */ -#ifdef GL_SGIS_texture_edge_clamp - GLEW_SGIS_texture_edge_clamp = _glewSearchExtension("GL_SGIS_texture_edge_clamp", extStart, extEnd); -#endif /* GL_SGIS_texture_edge_clamp */ #ifdef GL_SGIS_texture_filter4 - GLEW_SGIS_texture_filter4 = _glewSearchExtension("GL_SGIS_texture_filter4", extStart, extEnd); - if (glewExperimental || GLEW_SGIS_texture_filter4) GLEW_SGIS_texture_filter4 = !_glewInit_GL_SGIS_texture_filter4(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_SGIS_texture_filter4) GLEW_SGIS_texture_filter4 = !_glewInit_GL_SGIS_texture_filter4(); #endif /* GL_SGIS_texture_filter4 */ -#ifdef GL_SGIS_texture_lod - GLEW_SGIS_texture_lod = _glewSearchExtension("GL_SGIS_texture_lod", extStart, extEnd); -#endif /* GL_SGIS_texture_lod */ -#ifdef GL_SGIS_texture_select - GLEW_SGIS_texture_select = _glewSearchExtension("GL_SGIS_texture_select", extStart, extEnd); -#endif /* GL_SGIS_texture_select */ #ifdef GL_SGIX_async - GLEW_SGIX_async = _glewSearchExtension("GL_SGIX_async", extStart, extEnd); - if (glewExperimental || GLEW_SGIX_async) GLEW_SGIX_async = !_glewInit_GL_SGIX_async(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_SGIX_async) GLEW_SGIX_async = !_glewInit_GL_SGIX_async(); #endif /* GL_SGIX_async */ -#ifdef GL_SGIX_async_histogram - GLEW_SGIX_async_histogram = _glewSearchExtension("GL_SGIX_async_histogram", extStart, extEnd); -#endif /* GL_SGIX_async_histogram */ -#ifdef GL_SGIX_async_pixel - GLEW_SGIX_async_pixel = _glewSearchExtension("GL_SGIX_async_pixel", extStart, extEnd); -#endif /* GL_SGIX_async_pixel */ -#ifdef GL_SGIX_blend_alpha_minmax - GLEW_SGIX_blend_alpha_minmax = _glewSearchExtension("GL_SGIX_blend_alpha_minmax", extStart, extEnd); -#endif /* GL_SGIX_blend_alpha_minmax */ -#ifdef GL_SGIX_clipmap - GLEW_SGIX_clipmap = _glewSearchExtension("GL_SGIX_clipmap", extStart, extEnd); -#endif /* GL_SGIX_clipmap */ -#ifdef GL_SGIX_convolution_accuracy - GLEW_SGIX_convolution_accuracy = _glewSearchExtension("GL_SGIX_convolution_accuracy", extStart, extEnd); -#endif /* GL_SGIX_convolution_accuracy */ -#ifdef GL_SGIX_depth_texture - GLEW_SGIX_depth_texture = _glewSearchExtension("GL_SGIX_depth_texture", extStart, extEnd); -#endif /* GL_SGIX_depth_texture */ +#ifdef GL_SGIX_datapipe + if (glewExperimental || GLEW_SGIX_datapipe) GLEW_SGIX_datapipe = !_glewInit_GL_SGIX_datapipe(); +#endif /* GL_SGIX_datapipe */ #ifdef GL_SGIX_flush_raster - GLEW_SGIX_flush_raster = _glewSearchExtension("GL_SGIX_flush_raster", extStart, extEnd); - if (glewExperimental || GLEW_SGIX_flush_raster) GLEW_SGIX_flush_raster = !_glewInit_GL_SGIX_flush_raster(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_SGIX_flush_raster) GLEW_SGIX_flush_raster = !_glewInit_GL_SGIX_flush_raster(); #endif /* GL_SGIX_flush_raster */ -#ifdef GL_SGIX_fog_offset - GLEW_SGIX_fog_offset = _glewSearchExtension("GL_SGIX_fog_offset", extStart, extEnd); -#endif /* GL_SGIX_fog_offset */ +#ifdef GL_SGIX_fog_layers + if (glewExperimental || GLEW_SGIX_fog_layers) GLEW_SGIX_fog_layers = !_glewInit_GL_SGIX_fog_layers(); +#endif /* GL_SGIX_fog_layers */ #ifdef GL_SGIX_fog_texture - GLEW_SGIX_fog_texture = _glewSearchExtension("GL_SGIX_fog_texture", extStart, extEnd); - if (glewExperimental || GLEW_SGIX_fog_texture) GLEW_SGIX_fog_texture = !_glewInit_GL_SGIX_fog_texture(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_SGIX_fog_texture) GLEW_SGIX_fog_texture = !_glewInit_GL_SGIX_fog_texture(); #endif /* GL_SGIX_fog_texture */ #ifdef GL_SGIX_fragment_specular_lighting - GLEW_SGIX_fragment_specular_lighting = _glewSearchExtension("GL_SGIX_fragment_specular_lighting", extStart, extEnd); - if (glewExperimental || GLEW_SGIX_fragment_specular_lighting) GLEW_SGIX_fragment_specular_lighting = !_glewInit_GL_SGIX_fragment_specular_lighting(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_SGIX_fragment_specular_lighting) GLEW_SGIX_fragment_specular_lighting = !_glewInit_GL_SGIX_fragment_specular_lighting(); #endif /* GL_SGIX_fragment_specular_lighting */ #ifdef GL_SGIX_framezoom - GLEW_SGIX_framezoom = _glewSearchExtension("GL_SGIX_framezoom", extStart, extEnd); - if (glewExperimental || GLEW_SGIX_framezoom) GLEW_SGIX_framezoom = !_glewInit_GL_SGIX_framezoom(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_SGIX_framezoom) GLEW_SGIX_framezoom = !_glewInit_GL_SGIX_framezoom(); #endif /* GL_SGIX_framezoom */ -#ifdef GL_SGIX_interlace - GLEW_SGIX_interlace = _glewSearchExtension("GL_SGIX_interlace", extStart, extEnd); -#endif /* GL_SGIX_interlace */ -#ifdef GL_SGIX_ir_instrument1 - GLEW_SGIX_ir_instrument1 = _glewSearchExtension("GL_SGIX_ir_instrument1", extStart, extEnd); -#endif /* GL_SGIX_ir_instrument1 */ -#ifdef GL_SGIX_list_priority - GLEW_SGIX_list_priority = _glewSearchExtension("GL_SGIX_list_priority", extStart, extEnd); -#endif /* GL_SGIX_list_priority */ +#ifdef GL_SGIX_igloo_interface + if (glewExperimental || GLEW_SGIX_igloo_interface) GLEW_SGIX_igloo_interface = !_glewInit_GL_SGIX_igloo_interface(); +#endif /* GL_SGIX_igloo_interface */ +#ifdef GL_SGIX_mpeg1 + if (glewExperimental || GLEW_SGIX_mpeg1) GLEW_SGIX_mpeg1 = !_glewInit_GL_SGIX_mpeg1(); +#endif /* GL_SGIX_mpeg1 */ +#ifdef GL_SGIX_nonlinear_lighting_pervertex + if (glewExperimental || GLEW_SGIX_nonlinear_lighting_pervertex) GLEW_SGIX_nonlinear_lighting_pervertex = !_glewInit_GL_SGIX_nonlinear_lighting_pervertex(); +#endif /* GL_SGIX_nonlinear_lighting_pervertex */ #ifdef GL_SGIX_pixel_texture - GLEW_SGIX_pixel_texture = _glewSearchExtension("GL_SGIX_pixel_texture", extStart, extEnd); - if (glewExperimental || GLEW_SGIX_pixel_texture) GLEW_SGIX_pixel_texture = !_glewInit_GL_SGIX_pixel_texture(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_SGIX_pixel_texture) GLEW_SGIX_pixel_texture = !_glewInit_GL_SGIX_pixel_texture(); #endif /* GL_SGIX_pixel_texture */ -#ifdef GL_SGIX_pixel_texture_bits - GLEW_SGIX_pixel_texture_bits = _glewSearchExtension("GL_SGIX_pixel_texture_bits", extStart, extEnd); -#endif /* GL_SGIX_pixel_texture_bits */ +#ifdef GL_SGIX_polynomial_ffd + if (glewExperimental || GLEW_SGIX_polynomial_ffd) GLEW_SGIX_polynomial_ffd = !_glewInit_GL_SGIX_polynomial_ffd(); +#endif /* GL_SGIX_polynomial_ffd */ +#ifdef GL_SGIX_quad_mesh + if (glewExperimental || GLEW_SGIX_quad_mesh) GLEW_SGIX_quad_mesh = !_glewInit_GL_SGIX_quad_mesh(); +#endif /* GL_SGIX_quad_mesh */ #ifdef GL_SGIX_reference_plane - GLEW_SGIX_reference_plane = _glewSearchExtension("GL_SGIX_reference_plane", extStart, extEnd); - if (glewExperimental || GLEW_SGIX_reference_plane) GLEW_SGIX_reference_plane = !_glewInit_GL_SGIX_reference_plane(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_SGIX_reference_plane) GLEW_SGIX_reference_plane = !_glewInit_GL_SGIX_reference_plane(); #endif /* GL_SGIX_reference_plane */ -#ifdef GL_SGIX_resample - GLEW_SGIX_resample = _glewSearchExtension("GL_SGIX_resample", extStart, extEnd); -#endif /* GL_SGIX_resample */ -#ifdef GL_SGIX_shadow - GLEW_SGIX_shadow = _glewSearchExtension("GL_SGIX_shadow", extStart, extEnd); -#endif /* GL_SGIX_shadow */ -#ifdef GL_SGIX_shadow_ambient - GLEW_SGIX_shadow_ambient = _glewSearchExtension("GL_SGIX_shadow_ambient", extStart, extEnd); -#endif /* GL_SGIX_shadow_ambient */ #ifdef GL_SGIX_sprite - GLEW_SGIX_sprite = _glewSearchExtension("GL_SGIX_sprite", extStart, extEnd); - if (glewExperimental || GLEW_SGIX_sprite) GLEW_SGIX_sprite = !_glewInit_GL_SGIX_sprite(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_SGIX_sprite) GLEW_SGIX_sprite = !_glewInit_GL_SGIX_sprite(); #endif /* GL_SGIX_sprite */ #ifdef GL_SGIX_tag_sample_buffer - GLEW_SGIX_tag_sample_buffer = _glewSearchExtension("GL_SGIX_tag_sample_buffer", extStart, extEnd); - if (glewExperimental || GLEW_SGIX_tag_sample_buffer) GLEW_SGIX_tag_sample_buffer = !_glewInit_GL_SGIX_tag_sample_buffer(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_SGIX_tag_sample_buffer) GLEW_SGIX_tag_sample_buffer = !_glewInit_GL_SGIX_tag_sample_buffer(); #endif /* GL_SGIX_tag_sample_buffer */ -#ifdef GL_SGIX_texture_add_env - GLEW_SGIX_texture_add_env = _glewSearchExtension("GL_SGIX_texture_add_env", extStart, extEnd); -#endif /* GL_SGIX_texture_add_env */ -#ifdef GL_SGIX_texture_coordinate_clamp - GLEW_SGIX_texture_coordinate_clamp = _glewSearchExtension("GL_SGIX_texture_coordinate_clamp", extStart, extEnd); -#endif /* GL_SGIX_texture_coordinate_clamp */ -#ifdef GL_SGIX_texture_lod_bias - GLEW_SGIX_texture_lod_bias = _glewSearchExtension("GL_SGIX_texture_lod_bias", extStart, extEnd); -#endif /* GL_SGIX_texture_lod_bias */ -#ifdef GL_SGIX_texture_multi_buffer - GLEW_SGIX_texture_multi_buffer = _glewSearchExtension("GL_SGIX_texture_multi_buffer", extStart, extEnd); -#endif /* GL_SGIX_texture_multi_buffer */ -#ifdef GL_SGIX_texture_range - GLEW_SGIX_texture_range = _glewSearchExtension("GL_SGIX_texture_range", extStart, extEnd); -#endif /* GL_SGIX_texture_range */ -#ifdef GL_SGIX_texture_scale_bias - GLEW_SGIX_texture_scale_bias = _glewSearchExtension("GL_SGIX_texture_scale_bias", extStart, extEnd); -#endif /* GL_SGIX_texture_scale_bias */ -#ifdef GL_SGIX_vertex_preclip - GLEW_SGIX_vertex_preclip = _glewSearchExtension("GL_SGIX_vertex_preclip", extStart, extEnd); -#endif /* GL_SGIX_vertex_preclip */ -#ifdef GL_SGIX_vertex_preclip_hint - GLEW_SGIX_vertex_preclip_hint = _glewSearchExtension("GL_SGIX_vertex_preclip_hint", extStart, extEnd); -#endif /* GL_SGIX_vertex_preclip_hint */ -#ifdef GL_SGIX_ycrcb - GLEW_SGIX_ycrcb = _glewSearchExtension("GL_SGIX_ycrcb", extStart, extEnd); -#endif /* GL_SGIX_ycrcb */ -#ifdef GL_SGI_color_matrix - GLEW_SGI_color_matrix = _glewSearchExtension("GL_SGI_color_matrix", extStart, extEnd); -#endif /* GL_SGI_color_matrix */ +#ifdef GL_SGIX_vector_ops + if (glewExperimental || GLEW_SGIX_vector_ops) GLEW_SGIX_vector_ops = !_glewInit_GL_SGIX_vector_ops(); +#endif /* GL_SGIX_vector_ops */ +#ifdef GL_SGIX_vertex_array_object + if (glewExperimental || GLEW_SGIX_vertex_array_object) GLEW_SGIX_vertex_array_object = !_glewInit_GL_SGIX_vertex_array_object(); +#endif /* GL_SGIX_vertex_array_object */ #ifdef GL_SGI_color_table - GLEW_SGI_color_table = _glewSearchExtension("GL_SGI_color_table", extStart, extEnd); - if (glewExperimental || GLEW_SGI_color_table) GLEW_SGI_color_table = !_glewInit_GL_SGI_color_table(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_SGI_color_table) GLEW_SGI_color_table = !_glewInit_GL_SGI_color_table(); #endif /* GL_SGI_color_table */ -#ifdef GL_SGI_texture_color_table - GLEW_SGI_texture_color_table = _glewSearchExtension("GL_SGI_texture_color_table", extStart, extEnd); -#endif /* GL_SGI_texture_color_table */ +#ifdef GL_SGI_fft + if (glewExperimental || GLEW_SGI_fft) GLEW_SGI_fft = !_glewInit_GL_SGI_fft(); +#endif /* GL_SGI_fft */ #ifdef GL_SUNX_constant_data - GLEW_SUNX_constant_data = _glewSearchExtension("GL_SUNX_constant_data", extStart, extEnd); - if (glewExperimental || GLEW_SUNX_constant_data) GLEW_SUNX_constant_data = !_glewInit_GL_SUNX_constant_data(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_SUNX_constant_data) GLEW_SUNX_constant_data = !_glewInit_GL_SUNX_constant_data(); #endif /* GL_SUNX_constant_data */ -#ifdef GL_SUN_convolution_border_modes - GLEW_SUN_convolution_border_modes = _glewSearchExtension("GL_SUN_convolution_border_modes", extStart, extEnd); -#endif /* GL_SUN_convolution_border_modes */ #ifdef GL_SUN_global_alpha - GLEW_SUN_global_alpha = _glewSearchExtension("GL_SUN_global_alpha", extStart, extEnd); - if (glewExperimental || GLEW_SUN_global_alpha) GLEW_SUN_global_alpha = !_glewInit_GL_SUN_global_alpha(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_SUN_global_alpha) GLEW_SUN_global_alpha = !_glewInit_GL_SUN_global_alpha(); #endif /* GL_SUN_global_alpha */ -#ifdef GL_SUN_mesh_array - GLEW_SUN_mesh_array = _glewSearchExtension("GL_SUN_mesh_array", extStart, extEnd); -#endif /* GL_SUN_mesh_array */ #ifdef GL_SUN_read_video_pixels - GLEW_SUN_read_video_pixels = _glewSearchExtension("GL_SUN_read_video_pixels", extStart, extEnd); - if (glewExperimental || GLEW_SUN_read_video_pixels) GLEW_SUN_read_video_pixels = !_glewInit_GL_SUN_read_video_pixels(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_SUN_read_video_pixels) GLEW_SUN_read_video_pixels = !_glewInit_GL_SUN_read_video_pixels(); #endif /* GL_SUN_read_video_pixels */ -#ifdef GL_SUN_slice_accum - GLEW_SUN_slice_accum = _glewSearchExtension("GL_SUN_slice_accum", extStart, extEnd); -#endif /* GL_SUN_slice_accum */ #ifdef GL_SUN_triangle_list - GLEW_SUN_triangle_list = _glewSearchExtension("GL_SUN_triangle_list", extStart, extEnd); - if (glewExperimental || GLEW_SUN_triangle_list) GLEW_SUN_triangle_list = !_glewInit_GL_SUN_triangle_list(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_SUN_triangle_list) GLEW_SUN_triangle_list = !_glewInit_GL_SUN_triangle_list(); #endif /* GL_SUN_triangle_list */ #ifdef GL_SUN_vertex - GLEW_SUN_vertex = _glewSearchExtension("GL_SUN_vertex", extStart, extEnd); - if (glewExperimental || GLEW_SUN_vertex) GLEW_SUN_vertex = !_glewInit_GL_SUN_vertex(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_SUN_vertex) GLEW_SUN_vertex = !_glewInit_GL_SUN_vertex(); #endif /* GL_SUN_vertex */ -#ifdef GL_WIN_phong_shading - GLEW_WIN_phong_shading = _glewSearchExtension("GL_WIN_phong_shading", extStart, extEnd); -#endif /* GL_WIN_phong_shading */ -#ifdef GL_WIN_specular_fog - GLEW_WIN_specular_fog = _glewSearchExtension("GL_WIN_specular_fog", extStart, extEnd); -#endif /* GL_WIN_specular_fog */ #ifdef GL_WIN_swap_hint - GLEW_WIN_swap_hint = _glewSearchExtension("GL_WIN_swap_hint", extStart, extEnd); - if (glewExperimental || GLEW_WIN_swap_hint) GLEW_WIN_swap_hint = !_glewInit_GL_WIN_swap_hint(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLEW_WIN_swap_hint) GLEW_WIN_swap_hint = !_glewInit_GL_WIN_swap_hint(); #endif /* GL_WIN_swap_hint */ +#ifdef GL_NV_fragment_program4 + GLEW_NV_fragment_program4 = GLEW_NV_gpu_program4; +#endif /* GL_NV_fragment_program4 */ +#ifdef GL_NV_geometry_program4 + GLEW_NV_geometry_program4 = GLEW_NV_gpu_program4; +#endif /* GL_NV_geometry_program4 */ +#ifdef GL_NV_tessellation_program5 + GLEW_NV_tessellation_program5 = GLEW_NV_gpu_program5; +#endif /* GL_NV_tessellation_program5 */ +#ifdef GL_NV_vertex_program4 + GLEW_NV_vertex_program4 = GLEW_NV_gpu_program4; +#endif /* GL_NV_vertex_program4 */ return GLEW_OK; } -#if defined(_WIN32) +#if defined(GLEW_OSMESA) -#if !defined(GLEW_MX) +#elif defined(GLEW_EGL) + +PFNEGLCHOOSECONFIGPROC __eglewChooseConfig = NULL; +PFNEGLCOPYBUFFERSPROC __eglewCopyBuffers = NULL; +PFNEGLCREATECONTEXTPROC __eglewCreateContext = NULL; +PFNEGLCREATEPBUFFERSURFACEPROC __eglewCreatePbufferSurface = NULL; +PFNEGLCREATEPIXMAPSURFACEPROC __eglewCreatePixmapSurface = NULL; +PFNEGLCREATEWINDOWSURFACEPROC __eglewCreateWindowSurface = NULL; +PFNEGLDESTROYCONTEXTPROC __eglewDestroyContext = NULL; +PFNEGLDESTROYSURFACEPROC __eglewDestroySurface = NULL; +PFNEGLGETCONFIGATTRIBPROC __eglewGetConfigAttrib = NULL; +PFNEGLGETCONFIGSPROC __eglewGetConfigs = NULL; +PFNEGLGETCURRENTDISPLAYPROC __eglewGetCurrentDisplay = NULL; +PFNEGLGETCURRENTSURFACEPROC __eglewGetCurrentSurface = NULL; +PFNEGLGETDISPLAYPROC __eglewGetDisplay = NULL; +PFNEGLGETERRORPROC __eglewGetError = NULL; +PFNEGLINITIALIZEPROC __eglewInitialize = NULL; +PFNEGLMAKECURRENTPROC __eglewMakeCurrent = NULL; +PFNEGLQUERYCONTEXTPROC __eglewQueryContext = NULL; +PFNEGLQUERYSTRINGPROC __eglewQueryString = NULL; +PFNEGLQUERYSURFACEPROC __eglewQuerySurface = NULL; +PFNEGLSWAPBUFFERSPROC __eglewSwapBuffers = NULL; +PFNEGLTERMINATEPROC __eglewTerminate = NULL; +PFNEGLWAITGLPROC __eglewWaitGL = NULL; +PFNEGLWAITNATIVEPROC __eglewWaitNative = NULL; + +PFNEGLBINDTEXIMAGEPROC __eglewBindTexImage = NULL; +PFNEGLRELEASETEXIMAGEPROC __eglewReleaseTexImage = NULL; +PFNEGLSURFACEATTRIBPROC __eglewSurfaceAttrib = NULL; +PFNEGLSWAPINTERVALPROC __eglewSwapInterval = NULL; + +PFNEGLBINDAPIPROC __eglewBindAPI = NULL; +PFNEGLCREATEPBUFFERFROMCLIENTBUFFERPROC __eglewCreatePbufferFromClientBuffer = NULL; +PFNEGLQUERYAPIPROC __eglewQueryAPI = NULL; +PFNEGLRELEASETHREADPROC __eglewReleaseThread = NULL; +PFNEGLWAITCLIENTPROC __eglewWaitClient = NULL; + +PFNEGLGETCURRENTCONTEXTPROC __eglewGetCurrentContext = NULL; + +PFNEGLCLIENTWAITSYNCPROC __eglewClientWaitSync = NULL; +PFNEGLCREATEIMAGEPROC __eglewCreateImage = NULL; +PFNEGLCREATEPLATFORMPIXMAPSURFACEPROC __eglewCreatePlatformPixmapSurface = NULL; +PFNEGLCREATEPLATFORMWINDOWSURFACEPROC __eglewCreatePlatformWindowSurface = NULL; +PFNEGLCREATESYNCPROC __eglewCreateSync = NULL; +PFNEGLDESTROYIMAGEPROC __eglewDestroyImage = NULL; +PFNEGLDESTROYSYNCPROC __eglewDestroySync = NULL; +PFNEGLGETPLATFORMDISPLAYPROC __eglewGetPlatformDisplay = NULL; +PFNEGLGETSYNCATTRIBPROC __eglewGetSyncAttrib = NULL; +PFNEGLWAITSYNCPROC __eglewWaitSync = NULL; + +PFNEGLSETBLOBCACHEFUNCSANDROIDPROC __eglewSetBlobCacheFuncsANDROID = NULL; + +PFNEGLCREATENATIVECLIENTBUFFERANDROIDPROC __eglewCreateNativeClientBufferANDROID = NULL; + +PFNEGLGETCOMPOSITORTIMINGANDROIDPROC __eglewGetCompositorTimingANDROID = NULL; +PFNEGLGETCOMPOSITORTIMINGSUPPORTEDANDROIDPROC __eglewGetCompositorTimingSupportedANDROID = NULL; +PFNEGLGETFRAMETIMESTAMPSUPPORTEDANDROIDPROC __eglewGetFrameTimestampSupportedANDROID = NULL; +PFNEGLGETFRAMETIMESTAMPSANDROIDPROC __eglewGetFrameTimestampsANDROID = NULL; +PFNEGLGETNEXTFRAMEIDANDROIDPROC __eglewGetNextFrameIdANDROID = NULL; + +PFNEGLGETNATIVECLIENTBUFFERANDROIDPROC __eglewGetNativeClientBufferANDROID = NULL; + +PFNEGLDUPNATIVEFENCEFDANDROIDPROC __eglewDupNativeFenceFDANDROID = NULL; + +PFNEGLPRESENTATIONTIMEANDROIDPROC __eglewPresentationTimeANDROID = NULL; + +PFNEGLQUERYSURFACEPOINTERANGLEPROC __eglewQuerySurfacePointerANGLE = NULL; + +PFNEGLCLIENTSIGNALSYNCEXTPROC __eglewClientSignalSyncEXT = NULL; + +PFNEGLCOMPOSITORBINDTEXWINDOWEXTPROC __eglewCompositorBindTexWindowEXT = NULL; +PFNEGLCOMPOSITORSETCONTEXTATTRIBUTESEXTPROC __eglewCompositorSetContextAttributesEXT = NULL; +PFNEGLCOMPOSITORSETCONTEXTLISTEXTPROC __eglewCompositorSetContextListEXT = NULL; +PFNEGLCOMPOSITORSETSIZEEXTPROC __eglewCompositorSetSizeEXT = NULL; +PFNEGLCOMPOSITORSETWINDOWATTRIBUTESEXTPROC __eglewCompositorSetWindowAttributesEXT = NULL; +PFNEGLCOMPOSITORSETWINDOWLISTEXTPROC __eglewCompositorSetWindowListEXT = NULL; +PFNEGLCOMPOSITORSWAPPOLICYEXTPROC __eglewCompositorSwapPolicyEXT = NULL; + +PFNEGLQUERYDEVICESEXTPROC __eglewQueryDevicesEXT = NULL; + +PFNEGLQUERYDEVICEATTRIBEXTPROC __eglewQueryDeviceAttribEXT = NULL; +PFNEGLQUERYDEVICESTRINGEXTPROC __eglewQueryDeviceStringEXT = NULL; +PFNEGLQUERYDISPLAYATTRIBEXTPROC __eglewQueryDisplayAttribEXT = NULL; + +PFNEGLQUERYDMABUFFORMATSEXTPROC __eglewQueryDmaBufFormatsEXT = NULL; +PFNEGLQUERYDMABUFMODIFIERSEXTPROC __eglewQueryDmaBufModifiersEXT = NULL; + +PFNEGLGETOUTPUTLAYERSEXTPROC __eglewGetOutputLayersEXT = NULL; +PFNEGLGETOUTPUTPORTSEXTPROC __eglewGetOutputPortsEXT = NULL; +PFNEGLOUTPUTLAYERATTRIBEXTPROC __eglewOutputLayerAttribEXT = NULL; +PFNEGLOUTPUTPORTATTRIBEXTPROC __eglewOutputPortAttribEXT = NULL; +PFNEGLQUERYOUTPUTLAYERATTRIBEXTPROC __eglewQueryOutputLayerAttribEXT = NULL; +PFNEGLQUERYOUTPUTLAYERSTRINGEXTPROC __eglewQueryOutputLayerStringEXT = NULL; +PFNEGLQUERYOUTPUTPORTATTRIBEXTPROC __eglewQueryOutputPortAttribEXT = NULL; +PFNEGLQUERYOUTPUTPORTSTRINGEXTPROC __eglewQueryOutputPortStringEXT = NULL; + +PFNEGLCREATEPLATFORMPIXMAPSURFACEEXTPROC __eglewCreatePlatformPixmapSurfaceEXT = NULL; +PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC __eglewCreatePlatformWindowSurfaceEXT = NULL; +PFNEGLGETPLATFORMDISPLAYEXTPROC __eglewGetPlatformDisplayEXT = NULL; + +PFNEGLSTREAMCONSUMEROUTPUTEXTPROC __eglewStreamConsumerOutputEXT = NULL; + +PFNEGLSWAPBUFFERSWITHDAMAGEEXTPROC __eglewSwapBuffersWithDamageEXT = NULL; + +PFNEGLUNSIGNALSYNCEXTPROC __eglewUnsignalSyncEXT = NULL; + +PFNEGLCREATEPIXMAPSURFACEHIPROC __eglewCreatePixmapSurfaceHI = NULL; + +PFNEGLCREATESYNC64KHRPROC __eglewCreateSync64KHR = NULL; + +PFNEGLDEBUGMESSAGECONTROLKHRPROC __eglewDebugMessageControlKHR = NULL; +PFNEGLLABELOBJECTKHRPROC __eglewLabelObjectKHR = NULL; +PFNEGLQUERYDEBUGKHRPROC __eglewQueryDebugKHR = NULL; + +PFNEGLQUERYDISPLAYATTRIBKHRPROC __eglewQueryDisplayAttribKHR = NULL; + +PFNEGLCREATEIMAGEKHRPROC __eglewCreateImageKHR = NULL; +PFNEGLDESTROYIMAGEKHRPROC __eglewDestroyImageKHR = NULL; + +PFNEGLLOCKSURFACEKHRPROC __eglewLockSurfaceKHR = NULL; +PFNEGLUNLOCKSURFACEKHRPROC __eglewUnlockSurfaceKHR = NULL; + +PFNEGLQUERYSURFACE64KHRPROC __eglewQuerySurface64KHR = NULL; + +PFNEGLSETDAMAGEREGIONKHRPROC __eglewSetDamageRegionKHR = NULL; + +PFNEGLCLIENTWAITSYNCKHRPROC __eglewClientWaitSyncKHR = NULL; +PFNEGLCREATESYNCKHRPROC __eglewCreateSyncKHR = NULL; +PFNEGLDESTROYSYNCKHRPROC __eglewDestroySyncKHR = NULL; +PFNEGLGETSYNCATTRIBKHRPROC __eglewGetSyncAttribKHR = NULL; +PFNEGLSIGNALSYNCKHRPROC __eglewSignalSyncKHR = NULL; + +PFNEGLCREATESTREAMKHRPROC __eglewCreateStreamKHR = NULL; +PFNEGLDESTROYSTREAMKHRPROC __eglewDestroyStreamKHR = NULL; +PFNEGLQUERYSTREAMKHRPROC __eglewQueryStreamKHR = NULL; +PFNEGLQUERYSTREAMU64KHRPROC __eglewQueryStreamu64KHR = NULL; +PFNEGLSTREAMATTRIBKHRPROC __eglewStreamAttribKHR = NULL; + +PFNEGLCREATESTREAMATTRIBKHRPROC __eglewCreateStreamAttribKHR = NULL; +PFNEGLQUERYSTREAMATTRIBKHRPROC __eglewQueryStreamAttribKHR = NULL; +PFNEGLSETSTREAMATTRIBKHRPROC __eglewSetStreamAttribKHR = NULL; +PFNEGLSTREAMCONSUMERACQUIREATTRIBKHRPROC __eglewStreamConsumerAcquireAttribKHR = NULL; +PFNEGLSTREAMCONSUMERRELEASEATTRIBKHRPROC __eglewStreamConsumerReleaseAttribKHR = NULL; + +PFNEGLSTREAMCONSUMERACQUIREKHRPROC __eglewStreamConsumerAcquireKHR = NULL; +PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALKHRPROC __eglewStreamConsumerGLTextureExternalKHR = NULL; +PFNEGLSTREAMCONSUMERRELEASEKHRPROC __eglewStreamConsumerReleaseKHR = NULL; + +PFNEGLCREATESTREAMFROMFILEDESCRIPTORKHRPROC __eglewCreateStreamFromFileDescriptorKHR = NULL; +PFNEGLGETSTREAMFILEDESCRIPTORKHRPROC __eglewGetStreamFileDescriptorKHR = NULL; + +PFNEGLQUERYSTREAMTIMEKHRPROC __eglewQueryStreamTimeKHR = NULL; + +PFNEGLCREATESTREAMPRODUCERSURFACEKHRPROC __eglewCreateStreamProducerSurfaceKHR = NULL; + +PFNEGLSWAPBUFFERSWITHDAMAGEKHRPROC __eglewSwapBuffersWithDamageKHR = NULL; + +PFNEGLWAITSYNCKHRPROC __eglewWaitSyncKHR = NULL; + +PFNEGLCREATEDRMIMAGEMESAPROC __eglewCreateDRMImageMESA = NULL; +PFNEGLEXPORTDRMIMAGEMESAPROC __eglewExportDRMImageMESA = NULL; + +PFNEGLEXPORTDMABUFIMAGEMESAPROC __eglewExportDMABUFImageMESA = NULL; +PFNEGLEXPORTDMABUFIMAGEQUERYMESAPROC __eglewExportDMABUFImageQueryMESA = NULL; + +PFNEGLGETDISPLAYDRIVERCONFIGPROC __eglewGetDisplayDriverConfig = NULL; +PFNEGLGETDISPLAYDRIVERNAMEPROC __eglewGetDisplayDriverName = NULL; + +PFNEGLSWAPBUFFERSREGIONNOKPROC __eglewSwapBuffersRegionNOK = NULL; + +PFNEGLSWAPBUFFERSREGION2NOKPROC __eglewSwapBuffersRegion2NOK = NULL; + +PFNEGLQUERYNATIVEDISPLAYNVPROC __eglewQueryNativeDisplayNV = NULL; +PFNEGLQUERYNATIVEPIXMAPNVPROC __eglewQueryNativePixmapNV = NULL; +PFNEGLQUERYNATIVEWINDOWNVPROC __eglewQueryNativeWindowNV = NULL; + +PFNEGLPOSTSUBBUFFERNVPROC __eglewPostSubBufferNV = NULL; + +PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALATTRIBSNVPROC __eglewStreamConsumerGLTextureExternalAttribsNV = NULL; + +PFNEGLSTREAMFLUSHNVPROC __eglewStreamFlushNV = NULL; + +PFNEGLQUERYDISPLAYATTRIBNVPROC __eglewQueryDisplayAttribNV = NULL; +PFNEGLQUERYSTREAMMETADATANVPROC __eglewQueryStreamMetadataNV = NULL; +PFNEGLSETSTREAMMETADATANVPROC __eglewSetStreamMetadataNV = NULL; + +PFNEGLRESETSTREAMNVPROC __eglewResetStreamNV = NULL; + +PFNEGLCREATESTREAMSYNCNVPROC __eglewCreateStreamSyncNV = NULL; + +PFNEGLCLIENTWAITSYNCNVPROC __eglewClientWaitSyncNV = NULL; +PFNEGLCREATEFENCESYNCNVPROC __eglewCreateFenceSyncNV = NULL; +PFNEGLDESTROYSYNCNVPROC __eglewDestroySyncNV = NULL; +PFNEGLFENCENVPROC __eglewFenceNV = NULL; +PFNEGLGETSYNCATTRIBNVPROC __eglewGetSyncAttribNV = NULL; +PFNEGLSIGNALSYNCNVPROC __eglewSignalSyncNV = NULL; + +PFNEGLGETSYSTEMTIMEFREQUENCYNVPROC __eglewGetSystemTimeFrequencyNV = NULL; +PFNEGLGETSYSTEMTIMENVPROC __eglewGetSystemTimeNV = NULL; + +PFNEGLBINDWAYLANDDISPLAYWLPROC __eglewBindWaylandDisplayWL = NULL; +PFNEGLQUERYWAYLANDBUFFERWLPROC __eglewQueryWaylandBufferWL = NULL; +PFNEGLUNBINDWAYLANDDISPLAYWLPROC __eglewUnbindWaylandDisplayWL = NULL; + +PFNEGLCREATEWAYLANDBUFFERFROMIMAGEWLPROC __eglewCreateWaylandBufferFromImageWL = NULL; +GLboolean __EGLEW_VERSION_1_0 = GL_FALSE; +GLboolean __EGLEW_VERSION_1_1 = GL_FALSE; +GLboolean __EGLEW_VERSION_1_2 = GL_FALSE; +GLboolean __EGLEW_VERSION_1_3 = GL_FALSE; +GLboolean __EGLEW_VERSION_1_4 = GL_FALSE; +GLboolean __EGLEW_VERSION_1_5 = GL_FALSE; +GLboolean __EGLEW_ANDROID_GLES_layers = GL_FALSE; +GLboolean __EGLEW_ANDROID_blob_cache = GL_FALSE; +GLboolean __EGLEW_ANDROID_create_native_client_buffer = GL_FALSE; +GLboolean __EGLEW_ANDROID_framebuffer_target = GL_FALSE; +GLboolean __EGLEW_ANDROID_front_buffer_auto_refresh = GL_FALSE; +GLboolean __EGLEW_ANDROID_get_frame_timestamps = GL_FALSE; +GLboolean __EGLEW_ANDROID_get_native_client_buffer = GL_FALSE; +GLboolean __EGLEW_ANDROID_image_native_buffer = GL_FALSE; +GLboolean __EGLEW_ANDROID_native_fence_sync = GL_FALSE; +GLboolean __EGLEW_ANDROID_presentation_time = GL_FALSE; +GLboolean __EGLEW_ANDROID_recordable = GL_FALSE; +GLboolean __EGLEW_ANGLE_d3d_share_handle_client_buffer = GL_FALSE; +GLboolean __EGLEW_ANGLE_device_d3d = GL_FALSE; +GLboolean __EGLEW_ANGLE_query_surface_pointer = GL_FALSE; +GLboolean __EGLEW_ANGLE_surface_d3d_texture_2d_share_handle = GL_FALSE; +GLboolean __EGLEW_ANGLE_window_fixed_size = GL_FALSE; +GLboolean __EGLEW_ARM_image_format = GL_FALSE; +GLboolean __EGLEW_ARM_implicit_external_sync = GL_FALSE; +GLboolean __EGLEW_ARM_pixmap_multisample_discard = GL_FALSE; +GLboolean __EGLEW_EXT_bind_to_front = GL_FALSE; +GLboolean __EGLEW_EXT_buffer_age = GL_FALSE; +GLboolean __EGLEW_EXT_client_extensions = GL_FALSE; +GLboolean __EGLEW_EXT_client_sync = GL_FALSE; +GLboolean __EGLEW_EXT_compositor = GL_FALSE; +GLboolean __EGLEW_EXT_create_context_robustness = GL_FALSE; +GLboolean __EGLEW_EXT_device_base = GL_FALSE; +GLboolean __EGLEW_EXT_device_drm = GL_FALSE; +GLboolean __EGLEW_EXT_device_enumeration = GL_FALSE; +GLboolean __EGLEW_EXT_device_openwf = GL_FALSE; +GLboolean __EGLEW_EXT_device_query = GL_FALSE; +GLboolean __EGLEW_EXT_gl_colorspace_bt2020_linear = GL_FALSE; +GLboolean __EGLEW_EXT_gl_colorspace_bt2020_pq = GL_FALSE; +GLboolean __EGLEW_EXT_gl_colorspace_display_p3 = GL_FALSE; +GLboolean __EGLEW_EXT_gl_colorspace_display_p3_linear = GL_FALSE; +GLboolean __EGLEW_EXT_gl_colorspace_display_p3_passthrough = GL_FALSE; +GLboolean __EGLEW_EXT_gl_colorspace_scrgb = GL_FALSE; +GLboolean __EGLEW_EXT_gl_colorspace_scrgb_linear = GL_FALSE; +GLboolean __EGLEW_EXT_image_dma_buf_import = GL_FALSE; +GLboolean __EGLEW_EXT_image_dma_buf_import_modifiers = GL_FALSE; +GLboolean __EGLEW_EXT_image_gl_colorspace = GL_FALSE; +GLboolean __EGLEW_EXT_image_implicit_sync_control = GL_FALSE; +GLboolean __EGLEW_EXT_multiview_window = GL_FALSE; +GLboolean __EGLEW_EXT_output_base = GL_FALSE; +GLboolean __EGLEW_EXT_output_drm = GL_FALSE; +GLboolean __EGLEW_EXT_output_openwf = GL_FALSE; +GLboolean __EGLEW_EXT_pixel_format_float = GL_FALSE; +GLboolean __EGLEW_EXT_platform_base = GL_FALSE; +GLboolean __EGLEW_EXT_platform_device = GL_FALSE; +GLboolean __EGLEW_EXT_platform_wayland = GL_FALSE; +GLboolean __EGLEW_EXT_platform_x11 = GL_FALSE; +GLboolean __EGLEW_EXT_protected_content = GL_FALSE; +GLboolean __EGLEW_EXT_protected_surface = GL_FALSE; +GLboolean __EGLEW_EXT_stream_consumer_egloutput = GL_FALSE; +GLboolean __EGLEW_EXT_surface_CTA861_3_metadata = GL_FALSE; +GLboolean __EGLEW_EXT_surface_SMPTE2086_metadata = GL_FALSE; +GLboolean __EGLEW_EXT_swap_buffers_with_damage = GL_FALSE; +GLboolean __EGLEW_EXT_sync_reuse = GL_FALSE; +GLboolean __EGLEW_EXT_yuv_surface = GL_FALSE; +GLboolean __EGLEW_HI_clientpixmap = GL_FALSE; +GLboolean __EGLEW_HI_colorformats = GL_FALSE; +GLboolean __EGLEW_IMG_context_priority = GL_FALSE; +GLboolean __EGLEW_IMG_image_plane_attribs = GL_FALSE; +GLboolean __EGLEW_KHR_cl_event = GL_FALSE; +GLboolean __EGLEW_KHR_cl_event2 = GL_FALSE; +GLboolean __EGLEW_KHR_client_get_all_proc_addresses = GL_FALSE; +GLboolean __EGLEW_KHR_config_attribs = GL_FALSE; +GLboolean __EGLEW_KHR_context_flush_control = GL_FALSE; +GLboolean __EGLEW_KHR_create_context = GL_FALSE; +GLboolean __EGLEW_KHR_create_context_no_error = GL_FALSE; +GLboolean __EGLEW_KHR_debug = GL_FALSE; +GLboolean __EGLEW_KHR_display_reference = GL_FALSE; +GLboolean __EGLEW_KHR_fence_sync = GL_FALSE; +GLboolean __EGLEW_KHR_get_all_proc_addresses = GL_FALSE; +GLboolean __EGLEW_KHR_gl_colorspace = GL_FALSE; +GLboolean __EGLEW_KHR_gl_renderbuffer_image = GL_FALSE; +GLboolean __EGLEW_KHR_gl_texture_2D_image = GL_FALSE; +GLboolean __EGLEW_KHR_gl_texture_3D_image = GL_FALSE; +GLboolean __EGLEW_KHR_gl_texture_cubemap_image = GL_FALSE; +GLboolean __EGLEW_KHR_image = GL_FALSE; +GLboolean __EGLEW_KHR_image_base = GL_FALSE; +GLboolean __EGLEW_KHR_image_pixmap = GL_FALSE; +GLboolean __EGLEW_KHR_lock_surface = GL_FALSE; +GLboolean __EGLEW_KHR_lock_surface2 = GL_FALSE; +GLboolean __EGLEW_KHR_lock_surface3 = GL_FALSE; +GLboolean __EGLEW_KHR_mutable_render_buffer = GL_FALSE; +GLboolean __EGLEW_KHR_no_config_context = GL_FALSE; +GLboolean __EGLEW_KHR_partial_update = GL_FALSE; +GLboolean __EGLEW_KHR_platform_android = GL_FALSE; +GLboolean __EGLEW_KHR_platform_gbm = GL_FALSE; +GLboolean __EGLEW_KHR_platform_wayland = GL_FALSE; +GLboolean __EGLEW_KHR_platform_x11 = GL_FALSE; +GLboolean __EGLEW_KHR_reusable_sync = GL_FALSE; +GLboolean __EGLEW_KHR_stream = GL_FALSE; +GLboolean __EGLEW_KHR_stream_attrib = GL_FALSE; +GLboolean __EGLEW_KHR_stream_consumer_gltexture = GL_FALSE; +GLboolean __EGLEW_KHR_stream_cross_process_fd = GL_FALSE; +GLboolean __EGLEW_KHR_stream_fifo = GL_FALSE; +GLboolean __EGLEW_KHR_stream_producer_aldatalocator = GL_FALSE; +GLboolean __EGLEW_KHR_stream_producer_eglsurface = GL_FALSE; +GLboolean __EGLEW_KHR_surfaceless_context = GL_FALSE; +GLboolean __EGLEW_KHR_swap_buffers_with_damage = GL_FALSE; +GLboolean __EGLEW_KHR_vg_parent_image = GL_FALSE; +GLboolean __EGLEW_KHR_wait_sync = GL_FALSE; +GLboolean __EGLEW_MESA_drm_image = GL_FALSE; +GLboolean __EGLEW_MESA_image_dma_buf_export = GL_FALSE; +GLboolean __EGLEW_MESA_platform_gbm = GL_FALSE; +GLboolean __EGLEW_MESA_platform_surfaceless = GL_FALSE; +GLboolean __EGLEW_MESA_query_driver = GL_FALSE; +GLboolean __EGLEW_NOK_swap_region = GL_FALSE; +GLboolean __EGLEW_NOK_swap_region2 = GL_FALSE; +GLboolean __EGLEW_NOK_texture_from_pixmap = GL_FALSE; +GLboolean __EGLEW_NV_3dvision_surface = GL_FALSE; +GLboolean __EGLEW_NV_context_priority_realtime = GL_FALSE; +GLboolean __EGLEW_NV_coverage_sample = GL_FALSE; +GLboolean __EGLEW_NV_coverage_sample_resolve = GL_FALSE; +GLboolean __EGLEW_NV_cuda_event = GL_FALSE; +GLboolean __EGLEW_NV_depth_nonlinear = GL_FALSE; +GLboolean __EGLEW_NV_device_cuda = GL_FALSE; +GLboolean __EGLEW_NV_native_query = GL_FALSE; +GLboolean __EGLEW_NV_post_convert_rounding = GL_FALSE; +GLboolean __EGLEW_NV_post_sub_buffer = GL_FALSE; +GLboolean __EGLEW_NV_quadruple_buffer = GL_FALSE; +GLboolean __EGLEW_NV_robustness_video_memory_purge = GL_FALSE; +GLboolean __EGLEW_NV_stream_consumer_gltexture_yuv = GL_FALSE; +GLboolean __EGLEW_NV_stream_cross_display = GL_FALSE; +GLboolean __EGLEW_NV_stream_cross_object = GL_FALSE; +GLboolean __EGLEW_NV_stream_cross_partition = GL_FALSE; +GLboolean __EGLEW_NV_stream_cross_process = GL_FALSE; +GLboolean __EGLEW_NV_stream_cross_system = GL_FALSE; +GLboolean __EGLEW_NV_stream_dma = GL_FALSE; +GLboolean __EGLEW_NV_stream_fifo_next = GL_FALSE; +GLboolean __EGLEW_NV_stream_fifo_synchronous = GL_FALSE; +GLboolean __EGLEW_NV_stream_flush = GL_FALSE; +GLboolean __EGLEW_NV_stream_frame_limits = GL_FALSE; +GLboolean __EGLEW_NV_stream_metadata = GL_FALSE; +GLboolean __EGLEW_NV_stream_origin = GL_FALSE; +GLboolean __EGLEW_NV_stream_remote = GL_FALSE; +GLboolean __EGLEW_NV_stream_reset = GL_FALSE; +GLboolean __EGLEW_NV_stream_socket = GL_FALSE; +GLboolean __EGLEW_NV_stream_socket_inet = GL_FALSE; +GLboolean __EGLEW_NV_stream_socket_unix = GL_FALSE; +GLboolean __EGLEW_NV_stream_sync = GL_FALSE; +GLboolean __EGLEW_NV_sync = GL_FALSE; +GLboolean __EGLEW_NV_system_time = GL_FALSE; +GLboolean __EGLEW_NV_triple_buffer = GL_FALSE; +GLboolean __EGLEW_TIZEN_image_native_buffer = GL_FALSE; +GLboolean __EGLEW_TIZEN_image_native_surface = GL_FALSE; +GLboolean __EGLEW_WL_bind_wayland_display = GL_FALSE; +GLboolean __EGLEW_WL_create_wayland_buffer_from_image = GL_FALSE; +#ifdef EGL_VERSION_1_0 + +static GLboolean _glewInit_EGL_VERSION_1_0 () +{ + GLboolean r = GL_FALSE; + + r = ((eglChooseConfig = (PFNEGLCHOOSECONFIGPROC)glewGetProcAddress((const GLubyte*)"eglChooseConfig")) == NULL) || r; + r = ((eglCopyBuffers = (PFNEGLCOPYBUFFERSPROC)glewGetProcAddress((const GLubyte*)"eglCopyBuffers")) == NULL) || r; + r = ((eglCreateContext = (PFNEGLCREATECONTEXTPROC)glewGetProcAddress((const GLubyte*)"eglCreateContext")) == NULL) || r; + r = ((eglCreatePbufferSurface = (PFNEGLCREATEPBUFFERSURFACEPROC)glewGetProcAddress((const GLubyte*)"eglCreatePbufferSurface")) == NULL) || r; + r = ((eglCreatePixmapSurface = (PFNEGLCREATEPIXMAPSURFACEPROC)glewGetProcAddress((const GLubyte*)"eglCreatePixmapSurface")) == NULL) || r; + r = ((eglCreateWindowSurface = (PFNEGLCREATEWINDOWSURFACEPROC)glewGetProcAddress((const GLubyte*)"eglCreateWindowSurface")) == NULL) || r; + r = ((eglDestroyContext = (PFNEGLDESTROYCONTEXTPROC)glewGetProcAddress((const GLubyte*)"eglDestroyContext")) == NULL) || r; + r = ((eglDestroySurface = (PFNEGLDESTROYSURFACEPROC)glewGetProcAddress((const GLubyte*)"eglDestroySurface")) == NULL) || r; + r = ((eglGetConfigAttrib = (PFNEGLGETCONFIGATTRIBPROC)glewGetProcAddress((const GLubyte*)"eglGetConfigAttrib")) == NULL) || r; + r = ((eglGetConfigs = (PFNEGLGETCONFIGSPROC)glewGetProcAddress((const GLubyte*)"eglGetConfigs")) == NULL) || r; + r = ((eglGetCurrentDisplay = (PFNEGLGETCURRENTDISPLAYPROC)glewGetProcAddress((const GLubyte*)"eglGetCurrentDisplay")) == NULL) || r; + r = ((eglGetCurrentSurface = (PFNEGLGETCURRENTSURFACEPROC)glewGetProcAddress((const GLubyte*)"eglGetCurrentSurface")) == NULL) || r; + r = ((eglGetDisplay = (PFNEGLGETDISPLAYPROC)glewGetProcAddress((const GLubyte*)"eglGetDisplay")) == NULL) || r; + r = ((eglGetError = (PFNEGLGETERRORPROC)glewGetProcAddress((const GLubyte*)"eglGetError")) == NULL) || r; + r = ((eglInitialize = (PFNEGLINITIALIZEPROC)glewGetProcAddress((const GLubyte*)"eglInitialize")) == NULL) || r; + r = ((eglMakeCurrent = (PFNEGLMAKECURRENTPROC)glewGetProcAddress((const GLubyte*)"eglMakeCurrent")) == NULL) || r; + r = ((eglQueryContext = (PFNEGLQUERYCONTEXTPROC)glewGetProcAddress((const GLubyte*)"eglQueryContext")) == NULL) || r; + r = ((eglQueryString = (PFNEGLQUERYSTRINGPROC)glewGetProcAddress((const GLubyte*)"eglQueryString")) == NULL) || r; + r = ((eglQuerySurface = (PFNEGLQUERYSURFACEPROC)glewGetProcAddress((const GLubyte*)"eglQuerySurface")) == NULL) || r; + r = ((eglSwapBuffers = (PFNEGLSWAPBUFFERSPROC)glewGetProcAddress((const GLubyte*)"eglSwapBuffers")) == NULL) || r; + r = ((eglTerminate = (PFNEGLTERMINATEPROC)glewGetProcAddress((const GLubyte*)"eglTerminate")) == NULL) || r; + r = ((eglWaitGL = (PFNEGLWAITGLPROC)glewGetProcAddress((const GLubyte*)"eglWaitGL")) == NULL) || r; + r = ((eglWaitNative = (PFNEGLWAITNATIVEPROC)glewGetProcAddress((const GLubyte*)"eglWaitNative")) == NULL) || r; + + return r; +} + +#endif /* EGL_VERSION_1_0 */ + +#ifdef EGL_VERSION_1_1 + +static GLboolean _glewInit_EGL_VERSION_1_1 () +{ + GLboolean r = GL_FALSE; + + r = ((eglBindTexImage = (PFNEGLBINDTEXIMAGEPROC)glewGetProcAddress((const GLubyte*)"eglBindTexImage")) == NULL) || r; + r = ((eglReleaseTexImage = (PFNEGLRELEASETEXIMAGEPROC)glewGetProcAddress((const GLubyte*)"eglReleaseTexImage")) == NULL) || r; + r = ((eglSurfaceAttrib = (PFNEGLSURFACEATTRIBPROC)glewGetProcAddress((const GLubyte*)"eglSurfaceAttrib")) == NULL) || r; + r = ((eglSwapInterval = (PFNEGLSWAPINTERVALPROC)glewGetProcAddress((const GLubyte*)"eglSwapInterval")) == NULL) || r; + + return r; +} + +#endif /* EGL_VERSION_1_1 */ + +#ifdef EGL_VERSION_1_2 + +static GLboolean _glewInit_EGL_VERSION_1_2 () +{ + GLboolean r = GL_FALSE; + + r = ((eglBindAPI = (PFNEGLBINDAPIPROC)glewGetProcAddress((const GLubyte*)"eglBindAPI")) == NULL) || r; + r = ((eglCreatePbufferFromClientBuffer = (PFNEGLCREATEPBUFFERFROMCLIENTBUFFERPROC)glewGetProcAddress((const GLubyte*)"eglCreatePbufferFromClientBuffer")) == NULL) || r; + r = ((eglQueryAPI = (PFNEGLQUERYAPIPROC)glewGetProcAddress((const GLubyte*)"eglQueryAPI")) == NULL) || r; + r = ((eglReleaseThread = (PFNEGLRELEASETHREADPROC)glewGetProcAddress((const GLubyte*)"eglReleaseThread")) == NULL) || r; + r = ((eglWaitClient = (PFNEGLWAITCLIENTPROC)glewGetProcAddress((const GLubyte*)"eglWaitClient")) == NULL) || r; + + return r; +} + +#endif /* EGL_VERSION_1_2 */ + +#ifdef EGL_VERSION_1_4 + +static GLboolean _glewInit_EGL_VERSION_1_4 () +{ + GLboolean r = GL_FALSE; + + r = ((eglGetCurrentContext = (PFNEGLGETCURRENTCONTEXTPROC)glewGetProcAddress((const GLubyte*)"eglGetCurrentContext")) == NULL) || r; + + return r; +} + +#endif /* EGL_VERSION_1_4 */ + +#ifdef EGL_VERSION_1_5 + +static GLboolean _glewInit_EGL_VERSION_1_5 () +{ + GLboolean r = GL_FALSE; + + r = ((eglClientWaitSync = (PFNEGLCLIENTWAITSYNCPROC)glewGetProcAddress((const GLubyte*)"eglClientWaitSync")) == NULL) || r; + r = ((eglCreateImage = (PFNEGLCREATEIMAGEPROC)glewGetProcAddress((const GLubyte*)"eglCreateImage")) == NULL) || r; + r = ((eglCreatePlatformPixmapSurface = (PFNEGLCREATEPLATFORMPIXMAPSURFACEPROC)glewGetProcAddress((const GLubyte*)"eglCreatePlatformPixmapSurface")) == NULL) || r; + r = ((eglCreatePlatformWindowSurface = (PFNEGLCREATEPLATFORMWINDOWSURFACEPROC)glewGetProcAddress((const GLubyte*)"eglCreatePlatformWindowSurface")) == NULL) || r; + r = ((eglCreateSync = (PFNEGLCREATESYNCPROC)glewGetProcAddress((const GLubyte*)"eglCreateSync")) == NULL) || r; + r = ((eglDestroyImage = (PFNEGLDESTROYIMAGEPROC)glewGetProcAddress((const GLubyte*)"eglDestroyImage")) == NULL) || r; + r = ((eglDestroySync = (PFNEGLDESTROYSYNCPROC)glewGetProcAddress((const GLubyte*)"eglDestroySync")) == NULL) || r; + r = ((eglGetPlatformDisplay = (PFNEGLGETPLATFORMDISPLAYPROC)glewGetProcAddress((const GLubyte*)"eglGetPlatformDisplay")) == NULL) || r; + r = ((eglGetSyncAttrib = (PFNEGLGETSYNCATTRIBPROC)glewGetProcAddress((const GLubyte*)"eglGetSyncAttrib")) == NULL) || r; + r = ((eglWaitSync = (PFNEGLWAITSYNCPROC)glewGetProcAddress((const GLubyte*)"eglWaitSync")) == NULL) || r; + + return r; +} + +#endif /* EGL_VERSION_1_5 */ + +#ifdef EGL_ANDROID_blob_cache + +static GLboolean _glewInit_EGL_ANDROID_blob_cache () +{ + GLboolean r = GL_FALSE; + + r = ((eglSetBlobCacheFuncsANDROID = (PFNEGLSETBLOBCACHEFUNCSANDROIDPROC)glewGetProcAddress((const GLubyte*)"eglSetBlobCacheFuncsANDROID")) == NULL) || r; + + return r; +} + +#endif /* EGL_ANDROID_blob_cache */ + +#ifdef EGL_ANDROID_create_native_client_buffer + +static GLboolean _glewInit_EGL_ANDROID_create_native_client_buffer () +{ + GLboolean r = GL_FALSE; + + r = ((eglCreateNativeClientBufferANDROID = (PFNEGLCREATENATIVECLIENTBUFFERANDROIDPROC)glewGetProcAddress((const GLubyte*)"eglCreateNativeClientBufferANDROID")) == NULL) || r; + + return r; +} + +#endif /* EGL_ANDROID_create_native_client_buffer */ + +#ifdef EGL_ANDROID_get_frame_timestamps + +static GLboolean _glewInit_EGL_ANDROID_get_frame_timestamps () +{ + GLboolean r = GL_FALSE; + + r = ((eglGetCompositorTimingANDROID = (PFNEGLGETCOMPOSITORTIMINGANDROIDPROC)glewGetProcAddress((const GLubyte*)"eglGetCompositorTimingANDROID")) == NULL) || r; + r = ((eglGetCompositorTimingSupportedANDROID = (PFNEGLGETCOMPOSITORTIMINGSUPPORTEDANDROIDPROC)glewGetProcAddress((const GLubyte*)"eglGetCompositorTimingSupportedANDROID")) == NULL) || r; + r = ((eglGetFrameTimestampSupportedANDROID = (PFNEGLGETFRAMETIMESTAMPSUPPORTEDANDROIDPROC)glewGetProcAddress((const GLubyte*)"eglGetFrameTimestampSupportedANDROID")) == NULL) || r; + r = ((eglGetFrameTimestampsANDROID = (PFNEGLGETFRAMETIMESTAMPSANDROIDPROC)glewGetProcAddress((const GLubyte*)"eglGetFrameTimestampsANDROID")) == NULL) || r; + r = ((eglGetNextFrameIdANDROID = (PFNEGLGETNEXTFRAMEIDANDROIDPROC)glewGetProcAddress((const GLubyte*)"eglGetNextFrameIdANDROID")) == NULL) || r; + + return r; +} + +#endif /* EGL_ANDROID_get_frame_timestamps */ + +#ifdef EGL_ANDROID_get_native_client_buffer + +static GLboolean _glewInit_EGL_ANDROID_get_native_client_buffer () +{ + GLboolean r = GL_FALSE; + + r = ((eglGetNativeClientBufferANDROID = (PFNEGLGETNATIVECLIENTBUFFERANDROIDPROC)glewGetProcAddress((const GLubyte*)"eglGetNativeClientBufferANDROID")) == NULL) || r; + + return r; +} + +#endif /* EGL_ANDROID_get_native_client_buffer */ + +#ifdef EGL_ANDROID_native_fence_sync + +static GLboolean _glewInit_EGL_ANDROID_native_fence_sync () +{ + GLboolean r = GL_FALSE; + + r = ((eglDupNativeFenceFDANDROID = (PFNEGLDUPNATIVEFENCEFDANDROIDPROC)glewGetProcAddress((const GLubyte*)"eglDupNativeFenceFDANDROID")) == NULL) || r; + + return r; +} + +#endif /* EGL_ANDROID_native_fence_sync */ + +#ifdef EGL_ANDROID_presentation_time + +static GLboolean _glewInit_EGL_ANDROID_presentation_time () +{ + GLboolean r = GL_FALSE; + + r = ((eglPresentationTimeANDROID = (PFNEGLPRESENTATIONTIMEANDROIDPROC)glewGetProcAddress((const GLubyte*)"eglPresentationTimeANDROID")) == NULL) || r; + + return r; +} + +#endif /* EGL_ANDROID_presentation_time */ + +#ifdef EGL_ANGLE_query_surface_pointer + +static GLboolean _glewInit_EGL_ANGLE_query_surface_pointer () +{ + GLboolean r = GL_FALSE; + + r = ((eglQuerySurfacePointerANGLE = (PFNEGLQUERYSURFACEPOINTERANGLEPROC)glewGetProcAddress((const GLubyte*)"eglQuerySurfacePointerANGLE")) == NULL) || r; + + return r; +} + +#endif /* EGL_ANGLE_query_surface_pointer */ + +#ifdef EGL_EXT_client_sync + +static GLboolean _glewInit_EGL_EXT_client_sync () +{ + GLboolean r = GL_FALSE; + + r = ((eglClientSignalSyncEXT = (PFNEGLCLIENTSIGNALSYNCEXTPROC)glewGetProcAddress((const GLubyte*)"eglClientSignalSyncEXT")) == NULL) || r; + + return r; +} + +#endif /* EGL_EXT_client_sync */ + +#ifdef EGL_EXT_compositor + +static GLboolean _glewInit_EGL_EXT_compositor () +{ + GLboolean r = GL_FALSE; + + r = ((eglCompositorBindTexWindowEXT = (PFNEGLCOMPOSITORBINDTEXWINDOWEXTPROC)glewGetProcAddress((const GLubyte*)"eglCompositorBindTexWindowEXT")) == NULL) || r; + r = ((eglCompositorSetContextAttributesEXT = (PFNEGLCOMPOSITORSETCONTEXTATTRIBUTESEXTPROC)glewGetProcAddress((const GLubyte*)"eglCompositorSetContextAttributesEXT")) == NULL) || r; + r = ((eglCompositorSetContextListEXT = (PFNEGLCOMPOSITORSETCONTEXTLISTEXTPROC)glewGetProcAddress((const GLubyte*)"eglCompositorSetContextListEXT")) == NULL) || r; + r = ((eglCompositorSetSizeEXT = (PFNEGLCOMPOSITORSETSIZEEXTPROC)glewGetProcAddress((const GLubyte*)"eglCompositorSetSizeEXT")) == NULL) || r; + r = ((eglCompositorSetWindowAttributesEXT = (PFNEGLCOMPOSITORSETWINDOWATTRIBUTESEXTPROC)glewGetProcAddress((const GLubyte*)"eglCompositorSetWindowAttributesEXT")) == NULL) || r; + r = ((eglCompositorSetWindowListEXT = (PFNEGLCOMPOSITORSETWINDOWLISTEXTPROC)glewGetProcAddress((const GLubyte*)"eglCompositorSetWindowListEXT")) == NULL) || r; + r = ((eglCompositorSwapPolicyEXT = (PFNEGLCOMPOSITORSWAPPOLICYEXTPROC)glewGetProcAddress((const GLubyte*)"eglCompositorSwapPolicyEXT")) == NULL) || r; + + return r; +} + +#endif /* EGL_EXT_compositor */ + +#ifdef EGL_EXT_device_enumeration + +static GLboolean _glewInit_EGL_EXT_device_enumeration () +{ + GLboolean r = GL_FALSE; + + r = ((eglQueryDevicesEXT = (PFNEGLQUERYDEVICESEXTPROC)glewGetProcAddress((const GLubyte*)"eglQueryDevicesEXT")) == NULL) || r; + + return r; +} + +#endif /* EGL_EXT_device_enumeration */ + +#ifdef EGL_EXT_device_query + +static GLboolean _glewInit_EGL_EXT_device_query () +{ + GLboolean r = GL_FALSE; + + r = ((eglQueryDeviceAttribEXT = (PFNEGLQUERYDEVICEATTRIBEXTPROC)glewGetProcAddress((const GLubyte*)"eglQueryDeviceAttribEXT")) == NULL) || r; + r = ((eglQueryDeviceStringEXT = (PFNEGLQUERYDEVICESTRINGEXTPROC)glewGetProcAddress((const GLubyte*)"eglQueryDeviceStringEXT")) == NULL) || r; + r = ((eglQueryDisplayAttribEXT = (PFNEGLQUERYDISPLAYATTRIBEXTPROC)glewGetProcAddress((const GLubyte*)"eglQueryDisplayAttribEXT")) == NULL) || r; + + return r; +} + +#endif /* EGL_EXT_device_query */ + +#ifdef EGL_EXT_image_dma_buf_import_modifiers + +static GLboolean _glewInit_EGL_EXT_image_dma_buf_import_modifiers () +{ + GLboolean r = GL_FALSE; + + r = ((eglQueryDmaBufFormatsEXT = (PFNEGLQUERYDMABUFFORMATSEXTPROC)glewGetProcAddress((const GLubyte*)"eglQueryDmaBufFormatsEXT")) == NULL) || r; + r = ((eglQueryDmaBufModifiersEXT = (PFNEGLQUERYDMABUFMODIFIERSEXTPROC)glewGetProcAddress((const GLubyte*)"eglQueryDmaBufModifiersEXT")) == NULL) || r; + + return r; +} + +#endif /* EGL_EXT_image_dma_buf_import_modifiers */ + +#ifdef EGL_EXT_output_base + +static GLboolean _glewInit_EGL_EXT_output_base () +{ + GLboolean r = GL_FALSE; + + r = ((eglGetOutputLayersEXT = (PFNEGLGETOUTPUTLAYERSEXTPROC)glewGetProcAddress((const GLubyte*)"eglGetOutputLayersEXT")) == NULL) || r; + r = ((eglGetOutputPortsEXT = (PFNEGLGETOUTPUTPORTSEXTPROC)glewGetProcAddress((const GLubyte*)"eglGetOutputPortsEXT")) == NULL) || r; + r = ((eglOutputLayerAttribEXT = (PFNEGLOUTPUTLAYERATTRIBEXTPROC)glewGetProcAddress((const GLubyte*)"eglOutputLayerAttribEXT")) == NULL) || r; + r = ((eglOutputPortAttribEXT = (PFNEGLOUTPUTPORTATTRIBEXTPROC)glewGetProcAddress((const GLubyte*)"eglOutputPortAttribEXT")) == NULL) || r; + r = ((eglQueryOutputLayerAttribEXT = (PFNEGLQUERYOUTPUTLAYERATTRIBEXTPROC)glewGetProcAddress((const GLubyte*)"eglQueryOutputLayerAttribEXT")) == NULL) || r; + r = ((eglQueryOutputLayerStringEXT = (PFNEGLQUERYOUTPUTLAYERSTRINGEXTPROC)glewGetProcAddress((const GLubyte*)"eglQueryOutputLayerStringEXT")) == NULL) || r; + r = ((eglQueryOutputPortAttribEXT = (PFNEGLQUERYOUTPUTPORTATTRIBEXTPROC)glewGetProcAddress((const GLubyte*)"eglQueryOutputPortAttribEXT")) == NULL) || r; + r = ((eglQueryOutputPortStringEXT = (PFNEGLQUERYOUTPUTPORTSTRINGEXTPROC)glewGetProcAddress((const GLubyte*)"eglQueryOutputPortStringEXT")) == NULL) || r; + + return r; +} + +#endif /* EGL_EXT_output_base */ + +#ifdef EGL_EXT_platform_base + +static GLboolean _glewInit_EGL_EXT_platform_base () +{ + GLboolean r = GL_FALSE; + + r = ((eglCreatePlatformPixmapSurfaceEXT = (PFNEGLCREATEPLATFORMPIXMAPSURFACEEXTPROC)glewGetProcAddress((const GLubyte*)"eglCreatePlatformPixmapSurfaceEXT")) == NULL) || r; + r = ((eglCreatePlatformWindowSurfaceEXT = (PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC)glewGetProcAddress((const GLubyte*)"eglCreatePlatformWindowSurfaceEXT")) == NULL) || r; + r = ((eglGetPlatformDisplayEXT = (PFNEGLGETPLATFORMDISPLAYEXTPROC)glewGetProcAddress((const GLubyte*)"eglGetPlatformDisplayEXT")) == NULL) || r; + + return r; +} + +#endif /* EGL_EXT_platform_base */ + +#ifdef EGL_EXT_stream_consumer_egloutput + +static GLboolean _glewInit_EGL_EXT_stream_consumer_egloutput () +{ + GLboolean r = GL_FALSE; + + r = ((eglStreamConsumerOutputEXT = (PFNEGLSTREAMCONSUMEROUTPUTEXTPROC)glewGetProcAddress((const GLubyte*)"eglStreamConsumerOutputEXT")) == NULL) || r; + + return r; +} + +#endif /* EGL_EXT_stream_consumer_egloutput */ + +#ifdef EGL_EXT_swap_buffers_with_damage + +static GLboolean _glewInit_EGL_EXT_swap_buffers_with_damage () +{ + GLboolean r = GL_FALSE; + + r = ((eglSwapBuffersWithDamageEXT = (PFNEGLSWAPBUFFERSWITHDAMAGEEXTPROC)glewGetProcAddress((const GLubyte*)"eglSwapBuffersWithDamageEXT")) == NULL) || r; + + return r; +} + +#endif /* EGL_EXT_swap_buffers_with_damage */ + +#ifdef EGL_EXT_sync_reuse + +static GLboolean _glewInit_EGL_EXT_sync_reuse () +{ + GLboolean r = GL_FALSE; + + r = ((eglUnsignalSyncEXT = (PFNEGLUNSIGNALSYNCEXTPROC)glewGetProcAddress((const GLubyte*)"eglUnsignalSyncEXT")) == NULL) || r; + + return r; +} + +#endif /* EGL_EXT_sync_reuse */ + +#ifdef EGL_HI_clientpixmap + +static GLboolean _glewInit_EGL_HI_clientpixmap () +{ + GLboolean r = GL_FALSE; + + r = ((eglCreatePixmapSurfaceHI = (PFNEGLCREATEPIXMAPSURFACEHIPROC)glewGetProcAddress((const GLubyte*)"eglCreatePixmapSurfaceHI")) == NULL) || r; + + return r; +} + +#endif /* EGL_HI_clientpixmap */ + +#ifdef EGL_KHR_cl_event2 + +static GLboolean _glewInit_EGL_KHR_cl_event2 () +{ + GLboolean r = GL_FALSE; + + r = ((eglCreateSync64KHR = (PFNEGLCREATESYNC64KHRPROC)glewGetProcAddress((const GLubyte*)"eglCreateSync64KHR")) == NULL) || r; + + return r; +} + +#endif /* EGL_KHR_cl_event2 */ + +#ifdef EGL_KHR_debug + +static GLboolean _glewInit_EGL_KHR_debug () +{ + GLboolean r = GL_FALSE; + + r = ((eglDebugMessageControlKHR = (PFNEGLDEBUGMESSAGECONTROLKHRPROC)glewGetProcAddress((const GLubyte*)"eglDebugMessageControlKHR")) == NULL) || r; + r = ((eglLabelObjectKHR = (PFNEGLLABELOBJECTKHRPROC)glewGetProcAddress((const GLubyte*)"eglLabelObjectKHR")) == NULL) || r; + r = ((eglQueryDebugKHR = (PFNEGLQUERYDEBUGKHRPROC)glewGetProcAddress((const GLubyte*)"eglQueryDebugKHR")) == NULL) || r; + + return r; +} + +#endif /* EGL_KHR_debug */ + +#ifdef EGL_KHR_display_reference + +static GLboolean _glewInit_EGL_KHR_display_reference () +{ + GLboolean r = GL_FALSE; + + r = ((eglQueryDisplayAttribKHR = (PFNEGLQUERYDISPLAYATTRIBKHRPROC)glewGetProcAddress((const GLubyte*)"eglQueryDisplayAttribKHR")) == NULL) || r; + + return r; +} + +#endif /* EGL_KHR_display_reference */ + +#ifdef EGL_KHR_image + +static GLboolean _glewInit_EGL_KHR_image () +{ + GLboolean r = GL_FALSE; + + r = ((eglCreateImageKHR = (PFNEGLCREATEIMAGEKHRPROC)glewGetProcAddress((const GLubyte*)"eglCreateImageKHR")) == NULL) || r; + r = ((eglDestroyImageKHR = (PFNEGLDESTROYIMAGEKHRPROC)glewGetProcAddress((const GLubyte*)"eglDestroyImageKHR")) == NULL) || r; + + return r; +} + +#endif /* EGL_KHR_image */ + +#ifdef EGL_KHR_lock_surface + +static GLboolean _glewInit_EGL_KHR_lock_surface () +{ + GLboolean r = GL_FALSE; + + r = ((eglLockSurfaceKHR = (PFNEGLLOCKSURFACEKHRPROC)glewGetProcAddress((const GLubyte*)"eglLockSurfaceKHR")) == NULL) || r; + r = ((eglUnlockSurfaceKHR = (PFNEGLUNLOCKSURFACEKHRPROC)glewGetProcAddress((const GLubyte*)"eglUnlockSurfaceKHR")) == NULL) || r; + + return r; +} + +#endif /* EGL_KHR_lock_surface */ + +#ifdef EGL_KHR_lock_surface3 + +static GLboolean _glewInit_EGL_KHR_lock_surface3 () +{ + GLboolean r = GL_FALSE; + + r = ((eglQuerySurface64KHR = (PFNEGLQUERYSURFACE64KHRPROC)glewGetProcAddress((const GLubyte*)"eglQuerySurface64KHR")) == NULL) || r; + + return r; +} + +#endif /* EGL_KHR_lock_surface3 */ + +#ifdef EGL_KHR_partial_update + +static GLboolean _glewInit_EGL_KHR_partial_update () +{ + GLboolean r = GL_FALSE; + + r = ((eglSetDamageRegionKHR = (PFNEGLSETDAMAGEREGIONKHRPROC)glewGetProcAddress((const GLubyte*)"eglSetDamageRegionKHR")) == NULL) || r; + + return r; +} + +#endif /* EGL_KHR_partial_update */ + +#ifdef EGL_KHR_reusable_sync + +static GLboolean _glewInit_EGL_KHR_reusable_sync () +{ + GLboolean r = GL_FALSE; + + r = ((eglClientWaitSyncKHR = (PFNEGLCLIENTWAITSYNCKHRPROC)glewGetProcAddress((const GLubyte*)"eglClientWaitSyncKHR")) == NULL) || r; + r = ((eglCreateSyncKHR = (PFNEGLCREATESYNCKHRPROC)glewGetProcAddress((const GLubyte*)"eglCreateSyncKHR")) == NULL) || r; + r = ((eglDestroySyncKHR = (PFNEGLDESTROYSYNCKHRPROC)glewGetProcAddress((const GLubyte*)"eglDestroySyncKHR")) == NULL) || r; + r = ((eglGetSyncAttribKHR = (PFNEGLGETSYNCATTRIBKHRPROC)glewGetProcAddress((const GLubyte*)"eglGetSyncAttribKHR")) == NULL) || r; + r = ((eglSignalSyncKHR = (PFNEGLSIGNALSYNCKHRPROC)glewGetProcAddress((const GLubyte*)"eglSignalSyncKHR")) == NULL) || r; + + return r; +} + +#endif /* EGL_KHR_reusable_sync */ + +#ifdef EGL_KHR_stream + +static GLboolean _glewInit_EGL_KHR_stream () +{ + GLboolean r = GL_FALSE; + + r = ((eglCreateStreamKHR = (PFNEGLCREATESTREAMKHRPROC)glewGetProcAddress((const GLubyte*)"eglCreateStreamKHR")) == NULL) || r; + r = ((eglDestroyStreamKHR = (PFNEGLDESTROYSTREAMKHRPROC)glewGetProcAddress((const GLubyte*)"eglDestroyStreamKHR")) == NULL) || r; + r = ((eglQueryStreamKHR = (PFNEGLQUERYSTREAMKHRPROC)glewGetProcAddress((const GLubyte*)"eglQueryStreamKHR")) == NULL) || r; + r = ((eglQueryStreamu64KHR = (PFNEGLQUERYSTREAMU64KHRPROC)glewGetProcAddress((const GLubyte*)"eglQueryStreamu64KHR")) == NULL) || r; + r = ((eglStreamAttribKHR = (PFNEGLSTREAMATTRIBKHRPROC)glewGetProcAddress((const GLubyte*)"eglStreamAttribKHR")) == NULL) || r; + + return r; +} + +#endif /* EGL_KHR_stream */ + +#ifdef EGL_KHR_stream_attrib + +static GLboolean _glewInit_EGL_KHR_stream_attrib () +{ + GLboolean r = GL_FALSE; + + r = ((eglCreateStreamAttribKHR = (PFNEGLCREATESTREAMATTRIBKHRPROC)glewGetProcAddress((const GLubyte*)"eglCreateStreamAttribKHR")) == NULL) || r; + r = ((eglQueryStreamAttribKHR = (PFNEGLQUERYSTREAMATTRIBKHRPROC)glewGetProcAddress((const GLubyte*)"eglQueryStreamAttribKHR")) == NULL) || r; + r = ((eglSetStreamAttribKHR = (PFNEGLSETSTREAMATTRIBKHRPROC)glewGetProcAddress((const GLubyte*)"eglSetStreamAttribKHR")) == NULL) || r; + r = ((eglStreamConsumerAcquireAttribKHR = (PFNEGLSTREAMCONSUMERACQUIREATTRIBKHRPROC)glewGetProcAddress((const GLubyte*)"eglStreamConsumerAcquireAttribKHR")) == NULL) || r; + r = ((eglStreamConsumerReleaseAttribKHR = (PFNEGLSTREAMCONSUMERRELEASEATTRIBKHRPROC)glewGetProcAddress((const GLubyte*)"eglStreamConsumerReleaseAttribKHR")) == NULL) || r; + + return r; +} + +#endif /* EGL_KHR_stream_attrib */ + +#ifdef EGL_KHR_stream_consumer_gltexture + +static GLboolean _glewInit_EGL_KHR_stream_consumer_gltexture () +{ + GLboolean r = GL_FALSE; + + r = ((eglStreamConsumerAcquireKHR = (PFNEGLSTREAMCONSUMERACQUIREKHRPROC)glewGetProcAddress((const GLubyte*)"eglStreamConsumerAcquireKHR")) == NULL) || r; + r = ((eglStreamConsumerGLTextureExternalKHR = (PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALKHRPROC)glewGetProcAddress((const GLubyte*)"eglStreamConsumerGLTextureExternalKHR")) == NULL) || r; + r = ((eglStreamConsumerReleaseKHR = (PFNEGLSTREAMCONSUMERRELEASEKHRPROC)glewGetProcAddress((const GLubyte*)"eglStreamConsumerReleaseKHR")) == NULL) || r; + + return r; +} + +#endif /* EGL_KHR_stream_consumer_gltexture */ + +#ifdef EGL_KHR_stream_cross_process_fd + +static GLboolean _glewInit_EGL_KHR_stream_cross_process_fd () +{ + GLboolean r = GL_FALSE; + + r = ((eglCreateStreamFromFileDescriptorKHR = (PFNEGLCREATESTREAMFROMFILEDESCRIPTORKHRPROC)glewGetProcAddress((const GLubyte*)"eglCreateStreamFromFileDescriptorKHR")) == NULL) || r; + r = ((eglGetStreamFileDescriptorKHR = (PFNEGLGETSTREAMFILEDESCRIPTORKHRPROC)glewGetProcAddress((const GLubyte*)"eglGetStreamFileDescriptorKHR")) == NULL) || r; + + return r; +} + +#endif /* EGL_KHR_stream_cross_process_fd */ + +#ifdef EGL_KHR_stream_fifo + +static GLboolean _glewInit_EGL_KHR_stream_fifo () +{ + GLboolean r = GL_FALSE; + + r = ((eglQueryStreamTimeKHR = (PFNEGLQUERYSTREAMTIMEKHRPROC)glewGetProcAddress((const GLubyte*)"eglQueryStreamTimeKHR")) == NULL) || r; + + return r; +} + +#endif /* EGL_KHR_stream_fifo */ + +#ifdef EGL_KHR_stream_producer_eglsurface + +static GLboolean _glewInit_EGL_KHR_stream_producer_eglsurface () +{ + GLboolean r = GL_FALSE; + + r = ((eglCreateStreamProducerSurfaceKHR = (PFNEGLCREATESTREAMPRODUCERSURFACEKHRPROC)glewGetProcAddress((const GLubyte*)"eglCreateStreamProducerSurfaceKHR")) == NULL) || r; + + return r; +} + +#endif /* EGL_KHR_stream_producer_eglsurface */ + +#ifdef EGL_KHR_swap_buffers_with_damage + +static GLboolean _glewInit_EGL_KHR_swap_buffers_with_damage () +{ + GLboolean r = GL_FALSE; + + r = ((eglSwapBuffersWithDamageKHR = (PFNEGLSWAPBUFFERSWITHDAMAGEKHRPROC)glewGetProcAddress((const GLubyte*)"eglSwapBuffersWithDamageKHR")) == NULL) || r; + + return r; +} + +#endif /* EGL_KHR_swap_buffers_with_damage */ + +#ifdef EGL_KHR_wait_sync + +static GLboolean _glewInit_EGL_KHR_wait_sync () +{ + GLboolean r = GL_FALSE; + + r = ((eglWaitSyncKHR = (PFNEGLWAITSYNCKHRPROC)glewGetProcAddress((const GLubyte*)"eglWaitSyncKHR")) == NULL) || r; + + return r; +} + +#endif /* EGL_KHR_wait_sync */ + +#ifdef EGL_MESA_drm_image + +static GLboolean _glewInit_EGL_MESA_drm_image () +{ + GLboolean r = GL_FALSE; + + r = ((eglCreateDRMImageMESA = (PFNEGLCREATEDRMIMAGEMESAPROC)glewGetProcAddress((const GLubyte*)"eglCreateDRMImageMESA")) == NULL) || r; + r = ((eglExportDRMImageMESA = (PFNEGLEXPORTDRMIMAGEMESAPROC)glewGetProcAddress((const GLubyte*)"eglExportDRMImageMESA")) == NULL) || r; + + return r; +} + +#endif /* EGL_MESA_drm_image */ + +#ifdef EGL_MESA_image_dma_buf_export + +static GLboolean _glewInit_EGL_MESA_image_dma_buf_export () +{ + GLboolean r = GL_FALSE; + + r = ((eglExportDMABUFImageMESA = (PFNEGLEXPORTDMABUFIMAGEMESAPROC)glewGetProcAddress((const GLubyte*)"eglExportDMABUFImageMESA")) == NULL) || r; + r = ((eglExportDMABUFImageQueryMESA = (PFNEGLEXPORTDMABUFIMAGEQUERYMESAPROC)glewGetProcAddress((const GLubyte*)"eglExportDMABUFImageQueryMESA")) == NULL) || r; + + return r; +} + +#endif /* EGL_MESA_image_dma_buf_export */ + +#ifdef EGL_MESA_query_driver + +static GLboolean _glewInit_EGL_MESA_query_driver () +{ + GLboolean r = GL_FALSE; + + r = ((eglGetDisplayDriverConfig = (PFNEGLGETDISPLAYDRIVERCONFIGPROC)glewGetProcAddress((const GLubyte*)"eglGetDisplayDriverConfig")) == NULL) || r; + r = ((eglGetDisplayDriverName = (PFNEGLGETDISPLAYDRIVERNAMEPROC)glewGetProcAddress((const GLubyte*)"eglGetDisplayDriverName")) == NULL) || r; + + return r; +} + +#endif /* EGL_MESA_query_driver */ + +#ifdef EGL_NOK_swap_region + +static GLboolean _glewInit_EGL_NOK_swap_region () +{ + GLboolean r = GL_FALSE; + + r = ((eglSwapBuffersRegionNOK = (PFNEGLSWAPBUFFERSREGIONNOKPROC)glewGetProcAddress((const GLubyte*)"eglSwapBuffersRegionNOK")) == NULL) || r; + + return r; +} + +#endif /* EGL_NOK_swap_region */ + +#ifdef EGL_NOK_swap_region2 + +static GLboolean _glewInit_EGL_NOK_swap_region2 () +{ + GLboolean r = GL_FALSE; + + r = ((eglSwapBuffersRegion2NOK = (PFNEGLSWAPBUFFERSREGION2NOKPROC)glewGetProcAddress((const GLubyte*)"eglSwapBuffersRegion2NOK")) == NULL) || r; + + return r; +} + +#endif /* EGL_NOK_swap_region2 */ + +#ifdef EGL_NV_native_query + +static GLboolean _glewInit_EGL_NV_native_query () +{ + GLboolean r = GL_FALSE; + + r = ((eglQueryNativeDisplayNV = (PFNEGLQUERYNATIVEDISPLAYNVPROC)glewGetProcAddress((const GLubyte*)"eglQueryNativeDisplayNV")) == NULL) || r; + r = ((eglQueryNativePixmapNV = (PFNEGLQUERYNATIVEPIXMAPNVPROC)glewGetProcAddress((const GLubyte*)"eglQueryNativePixmapNV")) == NULL) || r; + r = ((eglQueryNativeWindowNV = (PFNEGLQUERYNATIVEWINDOWNVPROC)glewGetProcAddress((const GLubyte*)"eglQueryNativeWindowNV")) == NULL) || r; + + return r; +} + +#endif /* EGL_NV_native_query */ + +#ifdef EGL_NV_post_sub_buffer + +static GLboolean _glewInit_EGL_NV_post_sub_buffer () +{ + GLboolean r = GL_FALSE; + + r = ((eglPostSubBufferNV = (PFNEGLPOSTSUBBUFFERNVPROC)glewGetProcAddress((const GLubyte*)"eglPostSubBufferNV")) == NULL) || r; + + return r; +} + +#endif /* EGL_NV_post_sub_buffer */ + +#ifdef EGL_NV_stream_consumer_gltexture_yuv + +static GLboolean _glewInit_EGL_NV_stream_consumer_gltexture_yuv () +{ + GLboolean r = GL_FALSE; + + r = ((eglStreamConsumerGLTextureExternalAttribsNV = (PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALATTRIBSNVPROC)glewGetProcAddress((const GLubyte*)"eglStreamConsumerGLTextureExternalAttribsNV")) == NULL) || r; + + return r; +} + +#endif /* EGL_NV_stream_consumer_gltexture_yuv */ + +#ifdef EGL_NV_stream_flush + +static GLboolean _glewInit_EGL_NV_stream_flush () +{ + GLboolean r = GL_FALSE; + + r = ((eglStreamFlushNV = (PFNEGLSTREAMFLUSHNVPROC)glewGetProcAddress((const GLubyte*)"eglStreamFlushNV")) == NULL) || r; + + return r; +} + +#endif /* EGL_NV_stream_flush */ + +#ifdef EGL_NV_stream_metadata + +static GLboolean _glewInit_EGL_NV_stream_metadata () +{ + GLboolean r = GL_FALSE; + + r = ((eglQueryDisplayAttribNV = (PFNEGLQUERYDISPLAYATTRIBNVPROC)glewGetProcAddress((const GLubyte*)"eglQueryDisplayAttribNV")) == NULL) || r; + r = ((eglQueryStreamMetadataNV = (PFNEGLQUERYSTREAMMETADATANVPROC)glewGetProcAddress((const GLubyte*)"eglQueryStreamMetadataNV")) == NULL) || r; + r = ((eglSetStreamMetadataNV = (PFNEGLSETSTREAMMETADATANVPROC)glewGetProcAddress((const GLubyte*)"eglSetStreamMetadataNV")) == NULL) || r; + + return r; +} + +#endif /* EGL_NV_stream_metadata */ + +#ifdef EGL_NV_stream_reset + +static GLboolean _glewInit_EGL_NV_stream_reset () +{ + GLboolean r = GL_FALSE; + + r = ((eglResetStreamNV = (PFNEGLRESETSTREAMNVPROC)glewGetProcAddress((const GLubyte*)"eglResetStreamNV")) == NULL) || r; + + return r; +} + +#endif /* EGL_NV_stream_reset */ + +#ifdef EGL_NV_stream_sync + +static GLboolean _glewInit_EGL_NV_stream_sync () +{ + GLboolean r = GL_FALSE; + + r = ((eglCreateStreamSyncNV = (PFNEGLCREATESTREAMSYNCNVPROC)glewGetProcAddress((const GLubyte*)"eglCreateStreamSyncNV")) == NULL) || r; + + return r; +} + +#endif /* EGL_NV_stream_sync */ + +#ifdef EGL_NV_sync + +static GLboolean _glewInit_EGL_NV_sync () +{ + GLboolean r = GL_FALSE; + + r = ((eglClientWaitSyncNV = (PFNEGLCLIENTWAITSYNCNVPROC)glewGetProcAddress((const GLubyte*)"eglClientWaitSyncNV")) == NULL) || r; + r = ((eglCreateFenceSyncNV = (PFNEGLCREATEFENCESYNCNVPROC)glewGetProcAddress((const GLubyte*)"eglCreateFenceSyncNV")) == NULL) || r; + r = ((eglDestroySyncNV = (PFNEGLDESTROYSYNCNVPROC)glewGetProcAddress((const GLubyte*)"eglDestroySyncNV")) == NULL) || r; + r = ((eglFenceNV = (PFNEGLFENCENVPROC)glewGetProcAddress((const GLubyte*)"eglFenceNV")) == NULL) || r; + r = ((eglGetSyncAttribNV = (PFNEGLGETSYNCATTRIBNVPROC)glewGetProcAddress((const GLubyte*)"eglGetSyncAttribNV")) == NULL) || r; + r = ((eglSignalSyncNV = (PFNEGLSIGNALSYNCNVPROC)glewGetProcAddress((const GLubyte*)"eglSignalSyncNV")) == NULL) || r; + + return r; +} + +#endif /* EGL_NV_sync */ + +#ifdef EGL_NV_system_time + +static GLboolean _glewInit_EGL_NV_system_time () +{ + GLboolean r = GL_FALSE; + + r = ((eglGetSystemTimeFrequencyNV = (PFNEGLGETSYSTEMTIMEFREQUENCYNVPROC)glewGetProcAddress((const GLubyte*)"eglGetSystemTimeFrequencyNV")) == NULL) || r; + r = ((eglGetSystemTimeNV = (PFNEGLGETSYSTEMTIMENVPROC)glewGetProcAddress((const GLubyte*)"eglGetSystemTimeNV")) == NULL) || r; + + return r; +} + +#endif /* EGL_NV_system_time */ + +#ifdef EGL_WL_bind_wayland_display + +static GLboolean _glewInit_EGL_WL_bind_wayland_display () +{ + GLboolean r = GL_FALSE; + + r = ((eglBindWaylandDisplayWL = (PFNEGLBINDWAYLANDDISPLAYWLPROC)glewGetProcAddress((const GLubyte*)"eglBindWaylandDisplayWL")) == NULL) || r; + r = ((eglQueryWaylandBufferWL = (PFNEGLQUERYWAYLANDBUFFERWLPROC)glewGetProcAddress((const GLubyte*)"eglQueryWaylandBufferWL")) == NULL) || r; + r = ((eglUnbindWaylandDisplayWL = (PFNEGLUNBINDWAYLANDDISPLAYWLPROC)glewGetProcAddress((const GLubyte*)"eglUnbindWaylandDisplayWL")) == NULL) || r; + + return r; +} + +#endif /* EGL_WL_bind_wayland_display */ + +#ifdef EGL_WL_create_wayland_buffer_from_image + +static GLboolean _glewInit_EGL_WL_create_wayland_buffer_from_image () +{ + GLboolean r = GL_FALSE; + + r = ((eglCreateWaylandBufferFromImageWL = (PFNEGLCREATEWAYLANDBUFFERFROMIMAGEWLPROC)glewGetProcAddress((const GLubyte*)"eglCreateWaylandBufferFromImageWL")) == NULL) || r; + + return r; +} + +#endif /* EGL_WL_create_wayland_buffer_from_image */ + + /* ------------------------------------------------------------------------ */ + +GLboolean eglewGetExtension (const char* name) +{ + const GLubyte* start; + const GLubyte* end; + + start = (const GLubyte*) eglQueryString(eglGetCurrentDisplay(), EGL_EXTENSIONS); + if (0 == start) return GL_FALSE; + end = start + _glewStrLen(start); + return _glewSearchExtension(name, start, end); +} + +GLenum eglewInit (EGLDisplay display) +{ + EGLint major, minor; + const GLubyte* extStart; + const GLubyte* extEnd; + PFNEGLINITIALIZEPROC initialize = NULL; + PFNEGLQUERYSTRINGPROC queryString = NULL; + + /* Load necessary entry points */ + initialize = (PFNEGLINITIALIZEPROC) glewGetProcAddress("eglInitialize"); + queryString = (PFNEGLQUERYSTRINGPROC) glewGetProcAddress("eglQueryString"); + if (!initialize || !queryString) + return 1; + + /* query EGK version */ + if (initialize(display, &major, &minor) != EGL_TRUE) + return 1; + + EGLEW_VERSION_1_5 = ( major > 1 ) || ( major == 1 && minor >= 5 ) ? GL_TRUE : GL_FALSE; + EGLEW_VERSION_1_4 = EGLEW_VERSION_1_5 == GL_TRUE || ( major == 1 && minor >= 4 ) ? GL_TRUE : GL_FALSE; + EGLEW_VERSION_1_3 = EGLEW_VERSION_1_4 == GL_TRUE || ( major == 1 && minor >= 3 ) ? GL_TRUE : GL_FALSE; + EGLEW_VERSION_1_2 = EGLEW_VERSION_1_3 == GL_TRUE || ( major == 1 && minor >= 2 ) ? GL_TRUE : GL_FALSE; + EGLEW_VERSION_1_1 = EGLEW_VERSION_1_2 == GL_TRUE || ( major == 1 && minor >= 1 ) ? GL_TRUE : GL_FALSE; + EGLEW_VERSION_1_0 = EGLEW_VERSION_1_1 == GL_TRUE || ( major == 1 && minor >= 0 ) ? GL_TRUE : GL_FALSE; + + /* query EGL extension string */ + extStart = (const GLubyte*) queryString(display, EGL_EXTENSIONS); + if (extStart == 0) + extStart = (const GLubyte *)""; + extEnd = extStart + _glewStrLen(extStart); + + /* initialize extensions */ +#ifdef EGL_VERSION_1_0 + if (glewExperimental || EGLEW_VERSION_1_0) EGLEW_VERSION_1_0 = !_glewInit_EGL_VERSION_1_0(); +#endif /* EGL_VERSION_1_0 */ +#ifdef EGL_VERSION_1_1 + if (glewExperimental || EGLEW_VERSION_1_1) EGLEW_VERSION_1_1 = !_glewInit_EGL_VERSION_1_1(); +#endif /* EGL_VERSION_1_1 */ +#ifdef EGL_VERSION_1_2 + if (glewExperimental || EGLEW_VERSION_1_2) EGLEW_VERSION_1_2 = !_glewInit_EGL_VERSION_1_2(); +#endif /* EGL_VERSION_1_2 */ +#ifdef EGL_VERSION_1_4 + if (glewExperimental || EGLEW_VERSION_1_4) EGLEW_VERSION_1_4 = !_glewInit_EGL_VERSION_1_4(); +#endif /* EGL_VERSION_1_4 */ +#ifdef EGL_VERSION_1_5 + if (glewExperimental || EGLEW_VERSION_1_5) EGLEW_VERSION_1_5 = !_glewInit_EGL_VERSION_1_5(); +#endif /* EGL_VERSION_1_5 */ +#ifdef EGL_ANDROID_GLES_layers + EGLEW_ANDROID_GLES_layers = _glewSearchExtension("EGL_ANDROID_GLES_layers", extStart, extEnd); +#endif /* EGL_ANDROID_GLES_layers */ +#ifdef EGL_ANDROID_blob_cache + EGLEW_ANDROID_blob_cache = _glewSearchExtension("EGL_ANDROID_blob_cache", extStart, extEnd); + if (glewExperimental || EGLEW_ANDROID_blob_cache) EGLEW_ANDROID_blob_cache = !_glewInit_EGL_ANDROID_blob_cache(); +#endif /* EGL_ANDROID_blob_cache */ +#ifdef EGL_ANDROID_create_native_client_buffer + EGLEW_ANDROID_create_native_client_buffer = _glewSearchExtension("EGL_ANDROID_create_native_client_buffer", extStart, extEnd); + if (glewExperimental || EGLEW_ANDROID_create_native_client_buffer) EGLEW_ANDROID_create_native_client_buffer = !_glewInit_EGL_ANDROID_create_native_client_buffer(); +#endif /* EGL_ANDROID_create_native_client_buffer */ +#ifdef EGL_ANDROID_framebuffer_target + EGLEW_ANDROID_framebuffer_target = _glewSearchExtension("EGL_ANDROID_framebuffer_target", extStart, extEnd); +#endif /* EGL_ANDROID_framebuffer_target */ +#ifdef EGL_ANDROID_front_buffer_auto_refresh + EGLEW_ANDROID_front_buffer_auto_refresh = _glewSearchExtension("EGL_ANDROID_front_buffer_auto_refresh", extStart, extEnd); +#endif /* EGL_ANDROID_front_buffer_auto_refresh */ +#ifdef EGL_ANDROID_get_frame_timestamps + EGLEW_ANDROID_get_frame_timestamps = _glewSearchExtension("EGL_ANDROID_get_frame_timestamps", extStart, extEnd); + if (glewExperimental || EGLEW_ANDROID_get_frame_timestamps) EGLEW_ANDROID_get_frame_timestamps = !_glewInit_EGL_ANDROID_get_frame_timestamps(); +#endif /* EGL_ANDROID_get_frame_timestamps */ +#ifdef EGL_ANDROID_get_native_client_buffer + EGLEW_ANDROID_get_native_client_buffer = _glewSearchExtension("EGL_ANDROID_get_native_client_buffer", extStart, extEnd); + if (glewExperimental || EGLEW_ANDROID_get_native_client_buffer) EGLEW_ANDROID_get_native_client_buffer = !_glewInit_EGL_ANDROID_get_native_client_buffer(); +#endif /* EGL_ANDROID_get_native_client_buffer */ +#ifdef EGL_ANDROID_image_native_buffer + EGLEW_ANDROID_image_native_buffer = _glewSearchExtension("EGL_ANDROID_image_native_buffer", extStart, extEnd); +#endif /* EGL_ANDROID_image_native_buffer */ +#ifdef EGL_ANDROID_native_fence_sync + EGLEW_ANDROID_native_fence_sync = _glewSearchExtension("EGL_ANDROID_native_fence_sync", extStart, extEnd); + if (glewExperimental || EGLEW_ANDROID_native_fence_sync) EGLEW_ANDROID_native_fence_sync = !_glewInit_EGL_ANDROID_native_fence_sync(); +#endif /* EGL_ANDROID_native_fence_sync */ +#ifdef EGL_ANDROID_presentation_time + EGLEW_ANDROID_presentation_time = _glewSearchExtension("EGL_ANDROID_presentation_time", extStart, extEnd); + if (glewExperimental || EGLEW_ANDROID_presentation_time) EGLEW_ANDROID_presentation_time = !_glewInit_EGL_ANDROID_presentation_time(); +#endif /* EGL_ANDROID_presentation_time */ +#ifdef EGL_ANDROID_recordable + EGLEW_ANDROID_recordable = _glewSearchExtension("EGL_ANDROID_recordable", extStart, extEnd); +#endif /* EGL_ANDROID_recordable */ +#ifdef EGL_ANGLE_d3d_share_handle_client_buffer + EGLEW_ANGLE_d3d_share_handle_client_buffer = _glewSearchExtension("EGL_ANGLE_d3d_share_handle_client_buffer", extStart, extEnd); +#endif /* EGL_ANGLE_d3d_share_handle_client_buffer */ +#ifdef EGL_ANGLE_device_d3d + EGLEW_ANGLE_device_d3d = _glewSearchExtension("EGL_ANGLE_device_d3d", extStart, extEnd); +#endif /* EGL_ANGLE_device_d3d */ +#ifdef EGL_ANGLE_query_surface_pointer + EGLEW_ANGLE_query_surface_pointer = _glewSearchExtension("EGL_ANGLE_query_surface_pointer", extStart, extEnd); + if (glewExperimental || EGLEW_ANGLE_query_surface_pointer) EGLEW_ANGLE_query_surface_pointer = !_glewInit_EGL_ANGLE_query_surface_pointer(); +#endif /* EGL_ANGLE_query_surface_pointer */ +#ifdef EGL_ANGLE_surface_d3d_texture_2d_share_handle + EGLEW_ANGLE_surface_d3d_texture_2d_share_handle = _glewSearchExtension("EGL_ANGLE_surface_d3d_texture_2d_share_handle", extStart, extEnd); +#endif /* EGL_ANGLE_surface_d3d_texture_2d_share_handle */ +#ifdef EGL_ANGLE_window_fixed_size + EGLEW_ANGLE_window_fixed_size = _glewSearchExtension("EGL_ANGLE_window_fixed_size", extStart, extEnd); +#endif /* EGL_ANGLE_window_fixed_size */ +#ifdef EGL_ARM_image_format + EGLEW_ARM_image_format = _glewSearchExtension("EGL_ARM_image_format", extStart, extEnd); +#endif /* EGL_ARM_image_format */ +#ifdef EGL_ARM_implicit_external_sync + EGLEW_ARM_implicit_external_sync = _glewSearchExtension("EGL_ARM_implicit_external_sync", extStart, extEnd); +#endif /* EGL_ARM_implicit_external_sync */ +#ifdef EGL_ARM_pixmap_multisample_discard + EGLEW_ARM_pixmap_multisample_discard = _glewSearchExtension("EGL_ARM_pixmap_multisample_discard", extStart, extEnd); +#endif /* EGL_ARM_pixmap_multisample_discard */ +#ifdef EGL_EXT_bind_to_front + EGLEW_EXT_bind_to_front = _glewSearchExtension("EGL_EXT_bind_to_front", extStart, extEnd); +#endif /* EGL_EXT_bind_to_front */ +#ifdef EGL_EXT_buffer_age + EGLEW_EXT_buffer_age = _glewSearchExtension("EGL_EXT_buffer_age", extStart, extEnd); +#endif /* EGL_EXT_buffer_age */ +#ifdef EGL_EXT_client_extensions + EGLEW_EXT_client_extensions = _glewSearchExtension("EGL_EXT_client_extensions", extStart, extEnd); +#endif /* EGL_EXT_client_extensions */ +#ifdef EGL_EXT_client_sync + EGLEW_EXT_client_sync = _glewSearchExtension("EGL_EXT_client_sync", extStart, extEnd); + if (glewExperimental || EGLEW_EXT_client_sync) EGLEW_EXT_client_sync = !_glewInit_EGL_EXT_client_sync(); +#endif /* EGL_EXT_client_sync */ +#ifdef EGL_EXT_compositor + EGLEW_EXT_compositor = _glewSearchExtension("EGL_EXT_compositor", extStart, extEnd); + if (glewExperimental || EGLEW_EXT_compositor) EGLEW_EXT_compositor = !_glewInit_EGL_EXT_compositor(); +#endif /* EGL_EXT_compositor */ +#ifdef EGL_EXT_create_context_robustness + EGLEW_EXT_create_context_robustness = _glewSearchExtension("EGL_EXT_create_context_robustness", extStart, extEnd); +#endif /* EGL_EXT_create_context_robustness */ +#ifdef EGL_EXT_device_base + EGLEW_EXT_device_base = _glewSearchExtension("EGL_EXT_device_base", extStart, extEnd); +#endif /* EGL_EXT_device_base */ +#ifdef EGL_EXT_device_drm + EGLEW_EXT_device_drm = _glewSearchExtension("EGL_EXT_device_drm", extStart, extEnd); +#endif /* EGL_EXT_device_drm */ +#ifdef EGL_EXT_device_enumeration + EGLEW_EXT_device_enumeration = _glewSearchExtension("EGL_EXT_device_enumeration", extStart, extEnd); + if (glewExperimental || EGLEW_EXT_device_enumeration) EGLEW_EXT_device_enumeration = !_glewInit_EGL_EXT_device_enumeration(); +#endif /* EGL_EXT_device_enumeration */ +#ifdef EGL_EXT_device_openwf + EGLEW_EXT_device_openwf = _glewSearchExtension("EGL_EXT_device_openwf", extStart, extEnd); +#endif /* EGL_EXT_device_openwf */ +#ifdef EGL_EXT_device_query + EGLEW_EXT_device_query = _glewSearchExtension("EGL_EXT_device_query", extStart, extEnd); + if (glewExperimental || EGLEW_EXT_device_query) EGLEW_EXT_device_query = !_glewInit_EGL_EXT_device_query(); +#endif /* EGL_EXT_device_query */ +#ifdef EGL_EXT_gl_colorspace_bt2020_linear + EGLEW_EXT_gl_colorspace_bt2020_linear = _glewSearchExtension("EGL_EXT_gl_colorspace_bt2020_linear", extStart, extEnd); +#endif /* EGL_EXT_gl_colorspace_bt2020_linear */ +#ifdef EGL_EXT_gl_colorspace_bt2020_pq + EGLEW_EXT_gl_colorspace_bt2020_pq = _glewSearchExtension("EGL_EXT_gl_colorspace_bt2020_pq", extStart, extEnd); +#endif /* EGL_EXT_gl_colorspace_bt2020_pq */ +#ifdef EGL_EXT_gl_colorspace_display_p3 + EGLEW_EXT_gl_colorspace_display_p3 = _glewSearchExtension("EGL_EXT_gl_colorspace_display_p3", extStart, extEnd); +#endif /* EGL_EXT_gl_colorspace_display_p3 */ +#ifdef EGL_EXT_gl_colorspace_display_p3_linear + EGLEW_EXT_gl_colorspace_display_p3_linear = _glewSearchExtension("EGL_EXT_gl_colorspace_display_p3_linear", extStart, extEnd); +#endif /* EGL_EXT_gl_colorspace_display_p3_linear */ +#ifdef EGL_EXT_gl_colorspace_display_p3_passthrough + EGLEW_EXT_gl_colorspace_display_p3_passthrough = _glewSearchExtension("EGL_EXT_gl_colorspace_display_p3_passthrough", extStart, extEnd); +#endif /* EGL_EXT_gl_colorspace_display_p3_passthrough */ +#ifdef EGL_EXT_gl_colorspace_scrgb + EGLEW_EXT_gl_colorspace_scrgb = _glewSearchExtension("EGL_EXT_gl_colorspace_scrgb", extStart, extEnd); +#endif /* EGL_EXT_gl_colorspace_scrgb */ +#ifdef EGL_EXT_gl_colorspace_scrgb_linear + EGLEW_EXT_gl_colorspace_scrgb_linear = _glewSearchExtension("EGL_EXT_gl_colorspace_scrgb_linear", extStart, extEnd); +#endif /* EGL_EXT_gl_colorspace_scrgb_linear */ +#ifdef EGL_EXT_image_dma_buf_import + EGLEW_EXT_image_dma_buf_import = _glewSearchExtension("EGL_EXT_image_dma_buf_import", extStart, extEnd); +#endif /* EGL_EXT_image_dma_buf_import */ +#ifdef EGL_EXT_image_dma_buf_import_modifiers + EGLEW_EXT_image_dma_buf_import_modifiers = _glewSearchExtension("EGL_EXT_image_dma_buf_import_modifiers", extStart, extEnd); + if (glewExperimental || EGLEW_EXT_image_dma_buf_import_modifiers) EGLEW_EXT_image_dma_buf_import_modifiers = !_glewInit_EGL_EXT_image_dma_buf_import_modifiers(); +#endif /* EGL_EXT_image_dma_buf_import_modifiers */ +#ifdef EGL_EXT_image_gl_colorspace + EGLEW_EXT_image_gl_colorspace = _glewSearchExtension("EGL_EXT_image_gl_colorspace", extStart, extEnd); +#endif /* EGL_EXT_image_gl_colorspace */ +#ifdef EGL_EXT_image_implicit_sync_control + EGLEW_EXT_image_implicit_sync_control = _glewSearchExtension("EGL_EXT_image_implicit_sync_control", extStart, extEnd); +#endif /* EGL_EXT_image_implicit_sync_control */ +#ifdef EGL_EXT_multiview_window + EGLEW_EXT_multiview_window = _glewSearchExtension("EGL_EXT_multiview_window", extStart, extEnd); +#endif /* EGL_EXT_multiview_window */ +#ifdef EGL_EXT_output_base + EGLEW_EXT_output_base = _glewSearchExtension("EGL_EXT_output_base", extStart, extEnd); + if (glewExperimental || EGLEW_EXT_output_base) EGLEW_EXT_output_base = !_glewInit_EGL_EXT_output_base(); +#endif /* EGL_EXT_output_base */ +#ifdef EGL_EXT_output_drm + EGLEW_EXT_output_drm = _glewSearchExtension("EGL_EXT_output_drm", extStart, extEnd); +#endif /* EGL_EXT_output_drm */ +#ifdef EGL_EXT_output_openwf + EGLEW_EXT_output_openwf = _glewSearchExtension("EGL_EXT_output_openwf", extStart, extEnd); +#endif /* EGL_EXT_output_openwf */ +#ifdef EGL_EXT_pixel_format_float + EGLEW_EXT_pixel_format_float = _glewSearchExtension("EGL_EXT_pixel_format_float", extStart, extEnd); +#endif /* EGL_EXT_pixel_format_float */ +#ifdef EGL_EXT_platform_base + EGLEW_EXT_platform_base = _glewSearchExtension("EGL_EXT_platform_base", extStart, extEnd); + if (glewExperimental || EGLEW_EXT_platform_base) EGLEW_EXT_platform_base = !_glewInit_EGL_EXT_platform_base(); +#endif /* EGL_EXT_platform_base */ +#ifdef EGL_EXT_platform_device + EGLEW_EXT_platform_device = _glewSearchExtension("EGL_EXT_platform_device", extStart, extEnd); +#endif /* EGL_EXT_platform_device */ +#ifdef EGL_EXT_platform_wayland + EGLEW_EXT_platform_wayland = _glewSearchExtension("EGL_EXT_platform_wayland", extStart, extEnd); +#endif /* EGL_EXT_platform_wayland */ +#ifdef EGL_EXT_platform_x11 + EGLEW_EXT_platform_x11 = _glewSearchExtension("EGL_EXT_platform_x11", extStart, extEnd); +#endif /* EGL_EXT_platform_x11 */ +#ifdef EGL_EXT_protected_content + EGLEW_EXT_protected_content = _glewSearchExtension("EGL_EXT_protected_content", extStart, extEnd); +#endif /* EGL_EXT_protected_content */ +#ifdef EGL_EXT_protected_surface + EGLEW_EXT_protected_surface = _glewSearchExtension("EGL_EXT_protected_surface", extStart, extEnd); +#endif /* EGL_EXT_protected_surface */ +#ifdef EGL_EXT_stream_consumer_egloutput + EGLEW_EXT_stream_consumer_egloutput = _glewSearchExtension("EGL_EXT_stream_consumer_egloutput", extStart, extEnd); + if (glewExperimental || EGLEW_EXT_stream_consumer_egloutput) EGLEW_EXT_stream_consumer_egloutput = !_glewInit_EGL_EXT_stream_consumer_egloutput(); +#endif /* EGL_EXT_stream_consumer_egloutput */ +#ifdef EGL_EXT_surface_CTA861_3_metadata + EGLEW_EXT_surface_CTA861_3_metadata = _glewSearchExtension("EGL_EXT_surface_CTA861_3_metadata", extStart, extEnd); +#endif /* EGL_EXT_surface_CTA861_3_metadata */ +#ifdef EGL_EXT_surface_SMPTE2086_metadata + EGLEW_EXT_surface_SMPTE2086_metadata = _glewSearchExtension("EGL_EXT_surface_SMPTE2086_metadata", extStart, extEnd); +#endif /* EGL_EXT_surface_SMPTE2086_metadata */ +#ifdef EGL_EXT_swap_buffers_with_damage + EGLEW_EXT_swap_buffers_with_damage = _glewSearchExtension("EGL_EXT_swap_buffers_with_damage", extStart, extEnd); + if (glewExperimental || EGLEW_EXT_swap_buffers_with_damage) EGLEW_EXT_swap_buffers_with_damage = !_glewInit_EGL_EXT_swap_buffers_with_damage(); +#endif /* EGL_EXT_swap_buffers_with_damage */ +#ifdef EGL_EXT_sync_reuse + EGLEW_EXT_sync_reuse = _glewSearchExtension("EGL_EXT_sync_reuse", extStart, extEnd); + if (glewExperimental || EGLEW_EXT_sync_reuse) EGLEW_EXT_sync_reuse = !_glewInit_EGL_EXT_sync_reuse(); +#endif /* EGL_EXT_sync_reuse */ +#ifdef EGL_EXT_yuv_surface + EGLEW_EXT_yuv_surface = _glewSearchExtension("EGL_EXT_yuv_surface", extStart, extEnd); +#endif /* EGL_EXT_yuv_surface */ +#ifdef EGL_HI_clientpixmap + EGLEW_HI_clientpixmap = _glewSearchExtension("EGL_HI_clientpixmap", extStart, extEnd); + if (glewExperimental || EGLEW_HI_clientpixmap) EGLEW_HI_clientpixmap = !_glewInit_EGL_HI_clientpixmap(); +#endif /* EGL_HI_clientpixmap */ +#ifdef EGL_HI_colorformats + EGLEW_HI_colorformats = _glewSearchExtension("EGL_HI_colorformats", extStart, extEnd); +#endif /* EGL_HI_colorformats */ +#ifdef EGL_IMG_context_priority + EGLEW_IMG_context_priority = _glewSearchExtension("EGL_IMG_context_priority", extStart, extEnd); +#endif /* EGL_IMG_context_priority */ +#ifdef EGL_IMG_image_plane_attribs + EGLEW_IMG_image_plane_attribs = _glewSearchExtension("EGL_IMG_image_plane_attribs", extStart, extEnd); +#endif /* EGL_IMG_image_plane_attribs */ +#ifdef EGL_KHR_cl_event + EGLEW_KHR_cl_event = _glewSearchExtension("EGL_KHR_cl_event", extStart, extEnd); +#endif /* EGL_KHR_cl_event */ +#ifdef EGL_KHR_cl_event2 + EGLEW_KHR_cl_event2 = _glewSearchExtension("EGL_KHR_cl_event2", extStart, extEnd); + if (glewExperimental || EGLEW_KHR_cl_event2) EGLEW_KHR_cl_event2 = !_glewInit_EGL_KHR_cl_event2(); +#endif /* EGL_KHR_cl_event2 */ +#ifdef EGL_KHR_client_get_all_proc_addresses + EGLEW_KHR_client_get_all_proc_addresses = _glewSearchExtension("EGL_KHR_client_get_all_proc_addresses", extStart, extEnd); +#endif /* EGL_KHR_client_get_all_proc_addresses */ +#ifdef EGL_KHR_config_attribs + EGLEW_KHR_config_attribs = _glewSearchExtension("EGL_KHR_config_attribs", extStart, extEnd); +#endif /* EGL_KHR_config_attribs */ +#ifdef EGL_KHR_context_flush_control + EGLEW_KHR_context_flush_control = _glewSearchExtension("EGL_KHR_context_flush_control", extStart, extEnd); +#endif /* EGL_KHR_context_flush_control */ +#ifdef EGL_KHR_create_context + EGLEW_KHR_create_context = _glewSearchExtension("EGL_KHR_create_context", extStart, extEnd); +#endif /* EGL_KHR_create_context */ +#ifdef EGL_KHR_create_context_no_error + EGLEW_KHR_create_context_no_error = _glewSearchExtension("EGL_KHR_create_context_no_error", extStart, extEnd); +#endif /* EGL_KHR_create_context_no_error */ +#ifdef EGL_KHR_debug + EGLEW_KHR_debug = _glewSearchExtension("EGL_KHR_debug", extStart, extEnd); + if (glewExperimental || EGLEW_KHR_debug) EGLEW_KHR_debug = !_glewInit_EGL_KHR_debug(); +#endif /* EGL_KHR_debug */ +#ifdef EGL_KHR_display_reference + EGLEW_KHR_display_reference = _glewSearchExtension("EGL_KHR_display_reference", extStart, extEnd); + if (glewExperimental || EGLEW_KHR_display_reference) EGLEW_KHR_display_reference = !_glewInit_EGL_KHR_display_reference(); +#endif /* EGL_KHR_display_reference */ +#ifdef EGL_KHR_fence_sync + EGLEW_KHR_fence_sync = _glewSearchExtension("EGL_KHR_fence_sync", extStart, extEnd); +#endif /* EGL_KHR_fence_sync */ +#ifdef EGL_KHR_get_all_proc_addresses + EGLEW_KHR_get_all_proc_addresses = _glewSearchExtension("EGL_KHR_get_all_proc_addresses", extStart, extEnd); +#endif /* EGL_KHR_get_all_proc_addresses */ +#ifdef EGL_KHR_gl_colorspace + EGLEW_KHR_gl_colorspace = _glewSearchExtension("EGL_KHR_gl_colorspace", extStart, extEnd); +#endif /* EGL_KHR_gl_colorspace */ +#ifdef EGL_KHR_gl_renderbuffer_image + EGLEW_KHR_gl_renderbuffer_image = _glewSearchExtension("EGL_KHR_gl_renderbuffer_image", extStart, extEnd); +#endif /* EGL_KHR_gl_renderbuffer_image */ +#ifdef EGL_KHR_gl_texture_2D_image + EGLEW_KHR_gl_texture_2D_image = _glewSearchExtension("EGL_KHR_gl_texture_2D_image", extStart, extEnd); +#endif /* EGL_KHR_gl_texture_2D_image */ +#ifdef EGL_KHR_gl_texture_3D_image + EGLEW_KHR_gl_texture_3D_image = _glewSearchExtension("EGL_KHR_gl_texture_3D_image", extStart, extEnd); +#endif /* EGL_KHR_gl_texture_3D_image */ +#ifdef EGL_KHR_gl_texture_cubemap_image + EGLEW_KHR_gl_texture_cubemap_image = _glewSearchExtension("EGL_KHR_gl_texture_cubemap_image", extStart, extEnd); +#endif /* EGL_KHR_gl_texture_cubemap_image */ +#ifdef EGL_KHR_image + EGLEW_KHR_image = _glewSearchExtension("EGL_KHR_image", extStart, extEnd); + if (glewExperimental || EGLEW_KHR_image) EGLEW_KHR_image = !_glewInit_EGL_KHR_image(); +#endif /* EGL_KHR_image */ +#ifdef EGL_KHR_image_base + EGLEW_KHR_image_base = _glewSearchExtension("EGL_KHR_image_base", extStart, extEnd); +#endif /* EGL_KHR_image_base */ +#ifdef EGL_KHR_image_pixmap + EGLEW_KHR_image_pixmap = _glewSearchExtension("EGL_KHR_image_pixmap", extStart, extEnd); +#endif /* EGL_KHR_image_pixmap */ +#ifdef EGL_KHR_lock_surface + EGLEW_KHR_lock_surface = _glewSearchExtension("EGL_KHR_lock_surface", extStart, extEnd); + if (glewExperimental || EGLEW_KHR_lock_surface) EGLEW_KHR_lock_surface = !_glewInit_EGL_KHR_lock_surface(); +#endif /* EGL_KHR_lock_surface */ +#ifdef EGL_KHR_lock_surface2 + EGLEW_KHR_lock_surface2 = _glewSearchExtension("EGL_KHR_lock_surface2", extStart, extEnd); +#endif /* EGL_KHR_lock_surface2 */ +#ifdef EGL_KHR_lock_surface3 + EGLEW_KHR_lock_surface3 = _glewSearchExtension("EGL_KHR_lock_surface3", extStart, extEnd); + if (glewExperimental || EGLEW_KHR_lock_surface3) EGLEW_KHR_lock_surface3 = !_glewInit_EGL_KHR_lock_surface3(); +#endif /* EGL_KHR_lock_surface3 */ +#ifdef EGL_KHR_mutable_render_buffer + EGLEW_KHR_mutable_render_buffer = _glewSearchExtension("EGL_KHR_mutable_render_buffer", extStart, extEnd); +#endif /* EGL_KHR_mutable_render_buffer */ +#ifdef EGL_KHR_no_config_context + EGLEW_KHR_no_config_context = _glewSearchExtension("EGL_KHR_no_config_context", extStart, extEnd); +#endif /* EGL_KHR_no_config_context */ +#ifdef EGL_KHR_partial_update + EGLEW_KHR_partial_update = _glewSearchExtension("EGL_KHR_partial_update", extStart, extEnd); + if (glewExperimental || EGLEW_KHR_partial_update) EGLEW_KHR_partial_update = !_glewInit_EGL_KHR_partial_update(); +#endif /* EGL_KHR_partial_update */ +#ifdef EGL_KHR_platform_android + EGLEW_KHR_platform_android = _glewSearchExtension("EGL_KHR_platform_android", extStart, extEnd); +#endif /* EGL_KHR_platform_android */ +#ifdef EGL_KHR_platform_gbm + EGLEW_KHR_platform_gbm = _glewSearchExtension("EGL_KHR_platform_gbm", extStart, extEnd); +#endif /* EGL_KHR_platform_gbm */ +#ifdef EGL_KHR_platform_wayland + EGLEW_KHR_platform_wayland = _glewSearchExtension("EGL_KHR_platform_wayland", extStart, extEnd); +#endif /* EGL_KHR_platform_wayland */ +#ifdef EGL_KHR_platform_x11 + EGLEW_KHR_platform_x11 = _glewSearchExtension("EGL_KHR_platform_x11", extStart, extEnd); +#endif /* EGL_KHR_platform_x11 */ +#ifdef EGL_KHR_reusable_sync + EGLEW_KHR_reusable_sync = _glewSearchExtension("EGL_KHR_reusable_sync", extStart, extEnd); + if (glewExperimental || EGLEW_KHR_reusable_sync) EGLEW_KHR_reusable_sync = !_glewInit_EGL_KHR_reusable_sync(); +#endif /* EGL_KHR_reusable_sync */ +#ifdef EGL_KHR_stream + EGLEW_KHR_stream = _glewSearchExtension("EGL_KHR_stream", extStart, extEnd); + if (glewExperimental || EGLEW_KHR_stream) EGLEW_KHR_stream = !_glewInit_EGL_KHR_stream(); +#endif /* EGL_KHR_stream */ +#ifdef EGL_KHR_stream_attrib + EGLEW_KHR_stream_attrib = _glewSearchExtension("EGL_KHR_stream_attrib", extStart, extEnd); + if (glewExperimental || EGLEW_KHR_stream_attrib) EGLEW_KHR_stream_attrib = !_glewInit_EGL_KHR_stream_attrib(); +#endif /* EGL_KHR_stream_attrib */ +#ifdef EGL_KHR_stream_consumer_gltexture + EGLEW_KHR_stream_consumer_gltexture = _glewSearchExtension("EGL_KHR_stream_consumer_gltexture", extStart, extEnd); + if (glewExperimental || EGLEW_KHR_stream_consumer_gltexture) EGLEW_KHR_stream_consumer_gltexture = !_glewInit_EGL_KHR_stream_consumer_gltexture(); +#endif /* EGL_KHR_stream_consumer_gltexture */ +#ifdef EGL_KHR_stream_cross_process_fd + EGLEW_KHR_stream_cross_process_fd = _glewSearchExtension("EGL_KHR_stream_cross_process_fd", extStart, extEnd); + if (glewExperimental || EGLEW_KHR_stream_cross_process_fd) EGLEW_KHR_stream_cross_process_fd = !_glewInit_EGL_KHR_stream_cross_process_fd(); +#endif /* EGL_KHR_stream_cross_process_fd */ +#ifdef EGL_KHR_stream_fifo + EGLEW_KHR_stream_fifo = _glewSearchExtension("EGL_KHR_stream_fifo", extStart, extEnd); + if (glewExperimental || EGLEW_KHR_stream_fifo) EGLEW_KHR_stream_fifo = !_glewInit_EGL_KHR_stream_fifo(); +#endif /* EGL_KHR_stream_fifo */ +#ifdef EGL_KHR_stream_producer_aldatalocator + EGLEW_KHR_stream_producer_aldatalocator = _glewSearchExtension("EGL_KHR_stream_producer_aldatalocator", extStart, extEnd); +#endif /* EGL_KHR_stream_producer_aldatalocator */ +#ifdef EGL_KHR_stream_producer_eglsurface + EGLEW_KHR_stream_producer_eglsurface = _glewSearchExtension("EGL_KHR_stream_producer_eglsurface", extStart, extEnd); + if (glewExperimental || EGLEW_KHR_stream_producer_eglsurface) EGLEW_KHR_stream_producer_eglsurface = !_glewInit_EGL_KHR_stream_producer_eglsurface(); +#endif /* EGL_KHR_stream_producer_eglsurface */ +#ifdef EGL_KHR_surfaceless_context + EGLEW_KHR_surfaceless_context = _glewSearchExtension("EGL_KHR_surfaceless_context", extStart, extEnd); +#endif /* EGL_KHR_surfaceless_context */ +#ifdef EGL_KHR_swap_buffers_with_damage + EGLEW_KHR_swap_buffers_with_damage = _glewSearchExtension("EGL_KHR_swap_buffers_with_damage", extStart, extEnd); + if (glewExperimental || EGLEW_KHR_swap_buffers_with_damage) EGLEW_KHR_swap_buffers_with_damage = !_glewInit_EGL_KHR_swap_buffers_with_damage(); +#endif /* EGL_KHR_swap_buffers_with_damage */ +#ifdef EGL_KHR_vg_parent_image + EGLEW_KHR_vg_parent_image = _glewSearchExtension("EGL_KHR_vg_parent_image", extStart, extEnd); +#endif /* EGL_KHR_vg_parent_image */ +#ifdef EGL_KHR_wait_sync + EGLEW_KHR_wait_sync = _glewSearchExtension("EGL_KHR_wait_sync", extStart, extEnd); + if (glewExperimental || EGLEW_KHR_wait_sync) EGLEW_KHR_wait_sync = !_glewInit_EGL_KHR_wait_sync(); +#endif /* EGL_KHR_wait_sync */ +#ifdef EGL_MESA_drm_image + EGLEW_MESA_drm_image = _glewSearchExtension("EGL_MESA_drm_image", extStart, extEnd); + if (glewExperimental || EGLEW_MESA_drm_image) EGLEW_MESA_drm_image = !_glewInit_EGL_MESA_drm_image(); +#endif /* EGL_MESA_drm_image */ +#ifdef EGL_MESA_image_dma_buf_export + EGLEW_MESA_image_dma_buf_export = _glewSearchExtension("EGL_MESA_image_dma_buf_export", extStart, extEnd); + if (glewExperimental || EGLEW_MESA_image_dma_buf_export) EGLEW_MESA_image_dma_buf_export = !_glewInit_EGL_MESA_image_dma_buf_export(); +#endif /* EGL_MESA_image_dma_buf_export */ +#ifdef EGL_MESA_platform_gbm + EGLEW_MESA_platform_gbm = _glewSearchExtension("EGL_MESA_platform_gbm", extStart, extEnd); +#endif /* EGL_MESA_platform_gbm */ +#ifdef EGL_MESA_platform_surfaceless + EGLEW_MESA_platform_surfaceless = _glewSearchExtension("EGL_MESA_platform_surfaceless", extStart, extEnd); +#endif /* EGL_MESA_platform_surfaceless */ +#ifdef EGL_MESA_query_driver + EGLEW_MESA_query_driver = _glewSearchExtension("EGL_MESA_query_driver", extStart, extEnd); + if (glewExperimental || EGLEW_MESA_query_driver) EGLEW_MESA_query_driver = !_glewInit_EGL_MESA_query_driver(); +#endif /* EGL_MESA_query_driver */ +#ifdef EGL_NOK_swap_region + EGLEW_NOK_swap_region = _glewSearchExtension("EGL_NOK_swap_region", extStart, extEnd); + if (glewExperimental || EGLEW_NOK_swap_region) EGLEW_NOK_swap_region = !_glewInit_EGL_NOK_swap_region(); +#endif /* EGL_NOK_swap_region */ +#ifdef EGL_NOK_swap_region2 + EGLEW_NOK_swap_region2 = _glewSearchExtension("EGL_NOK_swap_region2", extStart, extEnd); + if (glewExperimental || EGLEW_NOK_swap_region2) EGLEW_NOK_swap_region2 = !_glewInit_EGL_NOK_swap_region2(); +#endif /* EGL_NOK_swap_region2 */ +#ifdef EGL_NOK_texture_from_pixmap + EGLEW_NOK_texture_from_pixmap = _glewSearchExtension("EGL_NOK_texture_from_pixmap", extStart, extEnd); +#endif /* EGL_NOK_texture_from_pixmap */ +#ifdef EGL_NV_3dvision_surface + EGLEW_NV_3dvision_surface = _glewSearchExtension("EGL_NV_3dvision_surface", extStart, extEnd); +#endif /* EGL_NV_3dvision_surface */ +#ifdef EGL_NV_context_priority_realtime + EGLEW_NV_context_priority_realtime = _glewSearchExtension("EGL_NV_context_priority_realtime", extStart, extEnd); +#endif /* EGL_NV_context_priority_realtime */ +#ifdef EGL_NV_coverage_sample + EGLEW_NV_coverage_sample = _glewSearchExtension("EGL_NV_coverage_sample", extStart, extEnd); +#endif /* EGL_NV_coverage_sample */ +#ifdef EGL_NV_coverage_sample_resolve + EGLEW_NV_coverage_sample_resolve = _glewSearchExtension("EGL_NV_coverage_sample_resolve", extStart, extEnd); +#endif /* EGL_NV_coverage_sample_resolve */ +#ifdef EGL_NV_cuda_event + EGLEW_NV_cuda_event = _glewSearchExtension("EGL_NV_cuda_event", extStart, extEnd); +#endif /* EGL_NV_cuda_event */ +#ifdef EGL_NV_depth_nonlinear + EGLEW_NV_depth_nonlinear = _glewSearchExtension("EGL_NV_depth_nonlinear", extStart, extEnd); +#endif /* EGL_NV_depth_nonlinear */ +#ifdef EGL_NV_device_cuda + EGLEW_NV_device_cuda = _glewSearchExtension("EGL_NV_device_cuda", extStart, extEnd); +#endif /* EGL_NV_device_cuda */ +#ifdef EGL_NV_native_query + EGLEW_NV_native_query = _glewSearchExtension("EGL_NV_native_query", extStart, extEnd); + if (glewExperimental || EGLEW_NV_native_query) EGLEW_NV_native_query = !_glewInit_EGL_NV_native_query(); +#endif /* EGL_NV_native_query */ +#ifdef EGL_NV_post_convert_rounding + EGLEW_NV_post_convert_rounding = _glewSearchExtension("EGL_NV_post_convert_rounding", extStart, extEnd); +#endif /* EGL_NV_post_convert_rounding */ +#ifdef EGL_NV_post_sub_buffer + EGLEW_NV_post_sub_buffer = _glewSearchExtension("EGL_NV_post_sub_buffer", extStart, extEnd); + if (glewExperimental || EGLEW_NV_post_sub_buffer) EGLEW_NV_post_sub_buffer = !_glewInit_EGL_NV_post_sub_buffer(); +#endif /* EGL_NV_post_sub_buffer */ +#ifdef EGL_NV_quadruple_buffer + EGLEW_NV_quadruple_buffer = _glewSearchExtension("EGL_NV_quadruple_buffer", extStart, extEnd); +#endif /* EGL_NV_quadruple_buffer */ +#ifdef EGL_NV_robustness_video_memory_purge + EGLEW_NV_robustness_video_memory_purge = _glewSearchExtension("EGL_NV_robustness_video_memory_purge", extStart, extEnd); +#endif /* EGL_NV_robustness_video_memory_purge */ +#ifdef EGL_NV_stream_consumer_gltexture_yuv + EGLEW_NV_stream_consumer_gltexture_yuv = _glewSearchExtension("EGL_NV_stream_consumer_gltexture_yuv", extStart, extEnd); + if (glewExperimental || EGLEW_NV_stream_consumer_gltexture_yuv) EGLEW_NV_stream_consumer_gltexture_yuv = !_glewInit_EGL_NV_stream_consumer_gltexture_yuv(); +#endif /* EGL_NV_stream_consumer_gltexture_yuv */ +#ifdef EGL_NV_stream_cross_display + EGLEW_NV_stream_cross_display = _glewSearchExtension("EGL_NV_stream_cross_display", extStart, extEnd); +#endif /* EGL_NV_stream_cross_display */ +#ifdef EGL_NV_stream_cross_object + EGLEW_NV_stream_cross_object = _glewSearchExtension("EGL_NV_stream_cross_object", extStart, extEnd); +#endif /* EGL_NV_stream_cross_object */ +#ifdef EGL_NV_stream_cross_partition + EGLEW_NV_stream_cross_partition = _glewSearchExtension("EGL_NV_stream_cross_partition", extStart, extEnd); +#endif /* EGL_NV_stream_cross_partition */ +#ifdef EGL_NV_stream_cross_process + EGLEW_NV_stream_cross_process = _glewSearchExtension("EGL_NV_stream_cross_process", extStart, extEnd); +#endif /* EGL_NV_stream_cross_process */ +#ifdef EGL_NV_stream_cross_system + EGLEW_NV_stream_cross_system = _glewSearchExtension("EGL_NV_stream_cross_system", extStart, extEnd); +#endif /* EGL_NV_stream_cross_system */ +#ifdef EGL_NV_stream_dma + EGLEW_NV_stream_dma = _glewSearchExtension("EGL_NV_stream_dma", extStart, extEnd); +#endif /* EGL_NV_stream_dma */ +#ifdef EGL_NV_stream_fifo_next + EGLEW_NV_stream_fifo_next = _glewSearchExtension("EGL_NV_stream_fifo_next", extStart, extEnd); +#endif /* EGL_NV_stream_fifo_next */ +#ifdef EGL_NV_stream_fifo_synchronous + EGLEW_NV_stream_fifo_synchronous = _glewSearchExtension("EGL_NV_stream_fifo_synchronous", extStart, extEnd); +#endif /* EGL_NV_stream_fifo_synchronous */ +#ifdef EGL_NV_stream_flush + EGLEW_NV_stream_flush = _glewSearchExtension("EGL_NV_stream_flush", extStart, extEnd); + if (glewExperimental || EGLEW_NV_stream_flush) EGLEW_NV_stream_flush = !_glewInit_EGL_NV_stream_flush(); +#endif /* EGL_NV_stream_flush */ +#ifdef EGL_NV_stream_frame_limits + EGLEW_NV_stream_frame_limits = _glewSearchExtension("EGL_NV_stream_frame_limits", extStart, extEnd); +#endif /* EGL_NV_stream_frame_limits */ +#ifdef EGL_NV_stream_metadata + EGLEW_NV_stream_metadata = _glewSearchExtension("EGL_NV_stream_metadata", extStart, extEnd); + if (glewExperimental || EGLEW_NV_stream_metadata) EGLEW_NV_stream_metadata = !_glewInit_EGL_NV_stream_metadata(); +#endif /* EGL_NV_stream_metadata */ +#ifdef EGL_NV_stream_origin + EGLEW_NV_stream_origin = _glewSearchExtension("EGL_NV_stream_origin", extStart, extEnd); +#endif /* EGL_NV_stream_origin */ +#ifdef EGL_NV_stream_remote + EGLEW_NV_stream_remote = _glewSearchExtension("EGL_NV_stream_remote", extStart, extEnd); +#endif /* EGL_NV_stream_remote */ +#ifdef EGL_NV_stream_reset + EGLEW_NV_stream_reset = _glewSearchExtension("EGL_NV_stream_reset", extStart, extEnd); + if (glewExperimental || EGLEW_NV_stream_reset) EGLEW_NV_stream_reset = !_glewInit_EGL_NV_stream_reset(); +#endif /* EGL_NV_stream_reset */ +#ifdef EGL_NV_stream_socket + EGLEW_NV_stream_socket = _glewSearchExtension("EGL_NV_stream_socket", extStart, extEnd); +#endif /* EGL_NV_stream_socket */ +#ifdef EGL_NV_stream_socket_inet + EGLEW_NV_stream_socket_inet = _glewSearchExtension("EGL_NV_stream_socket_inet", extStart, extEnd); +#endif /* EGL_NV_stream_socket_inet */ +#ifdef EGL_NV_stream_socket_unix + EGLEW_NV_stream_socket_unix = _glewSearchExtension("EGL_NV_stream_socket_unix", extStart, extEnd); +#endif /* EGL_NV_stream_socket_unix */ +#ifdef EGL_NV_stream_sync + EGLEW_NV_stream_sync = _glewSearchExtension("EGL_NV_stream_sync", extStart, extEnd); + if (glewExperimental || EGLEW_NV_stream_sync) EGLEW_NV_stream_sync = !_glewInit_EGL_NV_stream_sync(); +#endif /* EGL_NV_stream_sync */ +#ifdef EGL_NV_sync + EGLEW_NV_sync = _glewSearchExtension("EGL_NV_sync", extStart, extEnd); + if (glewExperimental || EGLEW_NV_sync) EGLEW_NV_sync = !_glewInit_EGL_NV_sync(); +#endif /* EGL_NV_sync */ +#ifdef EGL_NV_system_time + EGLEW_NV_system_time = _glewSearchExtension("EGL_NV_system_time", extStart, extEnd); + if (glewExperimental || EGLEW_NV_system_time) EGLEW_NV_system_time = !_glewInit_EGL_NV_system_time(); +#endif /* EGL_NV_system_time */ +#ifdef EGL_NV_triple_buffer + EGLEW_NV_triple_buffer = _glewSearchExtension("EGL_NV_triple_buffer", extStart, extEnd); +#endif /* EGL_NV_triple_buffer */ +#ifdef EGL_TIZEN_image_native_buffer + EGLEW_TIZEN_image_native_buffer = _glewSearchExtension("EGL_TIZEN_image_native_buffer", extStart, extEnd); +#endif /* EGL_TIZEN_image_native_buffer */ +#ifdef EGL_TIZEN_image_native_surface + EGLEW_TIZEN_image_native_surface = _glewSearchExtension("EGL_TIZEN_image_native_surface", extStart, extEnd); +#endif /* EGL_TIZEN_image_native_surface */ +#ifdef EGL_WL_bind_wayland_display + EGLEW_WL_bind_wayland_display = _glewSearchExtension("EGL_WL_bind_wayland_display", extStart, extEnd); + if (glewExperimental || EGLEW_WL_bind_wayland_display) EGLEW_WL_bind_wayland_display = !_glewInit_EGL_WL_bind_wayland_display(); +#endif /* EGL_WL_bind_wayland_display */ +#ifdef EGL_WL_create_wayland_buffer_from_image + EGLEW_WL_create_wayland_buffer_from_image = _glewSearchExtension("EGL_WL_create_wayland_buffer_from_image", extStart, extEnd); + if (glewExperimental || EGLEW_WL_create_wayland_buffer_from_image) EGLEW_WL_create_wayland_buffer_from_image = !_glewInit_EGL_WL_create_wayland_buffer_from_image(); +#endif /* EGL_WL_create_wayland_buffer_from_image */ + + return GLEW_OK; +} + +#elif defined(_WIN32) PFNWGLSETSTEREOEMITTERSTATE3DLPROC __wglewSetStereoEmitterState3DL = NULL; @@ -11524,6 +21186,7 @@ GLboolean __WGLEW_AMD_gpu_association = GL_FALSE; GLboolean __WGLEW_ARB_buffer_region = GL_FALSE; GLboolean __WGLEW_ARB_context_flush_control = GL_FALSE; GLboolean __WGLEW_ARB_create_context = GL_FALSE; +GLboolean __WGLEW_ARB_create_context_no_error = GL_FALSE; GLboolean __WGLEW_ARB_create_context_profile = GL_FALSE; GLboolean __WGLEW_ARB_create_context_robustness = GL_FALSE; GLboolean __WGLEW_ARB_extensions_string = GL_FALSE; @@ -11538,6 +21201,7 @@ GLboolean __WGLEW_ARB_robustness_application_isolation = GL_FALSE; GLboolean __WGLEW_ARB_robustness_share_group_isolation = GL_FALSE; GLboolean __WGLEW_ATI_pixel_format_float = GL_FALSE; GLboolean __WGLEW_ATI_render_texture_rectangle = GL_FALSE; +GLboolean __WGLEW_EXT_colorspace = GL_FALSE; GLboolean __WGLEW_EXT_create_context_es2_profile = GL_FALSE; GLboolean __WGLEW_EXT_create_context_es_profile = GL_FALSE; GLboolean __WGLEW_EXT_depth_float = GL_FALSE; @@ -11563,6 +21227,7 @@ GLboolean __WGLEW_NV_copy_image = GL_FALSE; GLboolean __WGLEW_NV_delay_before_swap = GL_FALSE; GLboolean __WGLEW_NV_float_buffer = GL_FALSE; GLboolean __WGLEW_NV_gpu_affinity = GL_FALSE; +GLboolean __WGLEW_NV_multigpu_context = GL_FALSE; GLboolean __WGLEW_NV_multisample_coverage = GL_FALSE; GLboolean __WGLEW_NV_present_video = GL_FALSE; GLboolean __WGLEW_NV_render_depth_texture = GL_FALSE; @@ -11572,12 +21237,9 @@ GLboolean __WGLEW_NV_vertex_array_range = GL_FALSE; GLboolean __WGLEW_NV_video_capture = GL_FALSE; GLboolean __WGLEW_NV_video_output = GL_FALSE; GLboolean __WGLEW_OML_sync_control = GL_FALSE; - -#endif /* !GLEW_MX */ - #ifdef WGL_3DL_stereo_control -static GLboolean _glewInit_WGL_3DL_stereo_control (WGLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_WGL_3DL_stereo_control () { GLboolean r = GL_FALSE; @@ -11590,7 +21252,7 @@ static GLboolean _glewInit_WGL_3DL_stereo_control (WGLEW_CONTEXT_ARG_DEF_INIT) #ifdef WGL_AMD_gpu_association -static GLboolean _glewInit_WGL_AMD_gpu_association (WGLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_WGL_AMD_gpu_association () { GLboolean r = GL_FALSE; @@ -11611,7 +21273,7 @@ static GLboolean _glewInit_WGL_AMD_gpu_association (WGLEW_CONTEXT_ARG_DEF_INIT) #ifdef WGL_ARB_buffer_region -static GLboolean _glewInit_WGL_ARB_buffer_region (WGLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_WGL_ARB_buffer_region () { GLboolean r = GL_FALSE; @@ -11627,7 +21289,7 @@ static GLboolean _glewInit_WGL_ARB_buffer_region (WGLEW_CONTEXT_ARG_DEF_INIT) #ifdef WGL_ARB_create_context -static GLboolean _glewInit_WGL_ARB_create_context (WGLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_WGL_ARB_create_context () { GLboolean r = GL_FALSE; @@ -11640,7 +21302,7 @@ static GLboolean _glewInit_WGL_ARB_create_context (WGLEW_CONTEXT_ARG_DEF_INIT) #ifdef WGL_ARB_extensions_string -static GLboolean _glewInit_WGL_ARB_extensions_string (WGLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_WGL_ARB_extensions_string () { GLboolean r = GL_FALSE; @@ -11653,7 +21315,7 @@ static GLboolean _glewInit_WGL_ARB_extensions_string (WGLEW_CONTEXT_ARG_DEF_INIT #ifdef WGL_ARB_make_current_read -static GLboolean _glewInit_WGL_ARB_make_current_read (WGLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_WGL_ARB_make_current_read () { GLboolean r = GL_FALSE; @@ -11667,7 +21329,7 @@ static GLboolean _glewInit_WGL_ARB_make_current_read (WGLEW_CONTEXT_ARG_DEF_INIT #ifdef WGL_ARB_pbuffer -static GLboolean _glewInit_WGL_ARB_pbuffer (WGLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_WGL_ARB_pbuffer () { GLboolean r = GL_FALSE; @@ -11684,7 +21346,7 @@ static GLboolean _glewInit_WGL_ARB_pbuffer (WGLEW_CONTEXT_ARG_DEF_INIT) #ifdef WGL_ARB_pixel_format -static GLboolean _glewInit_WGL_ARB_pixel_format (WGLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_WGL_ARB_pixel_format () { GLboolean r = GL_FALSE; @@ -11699,7 +21361,7 @@ static GLboolean _glewInit_WGL_ARB_pixel_format (WGLEW_CONTEXT_ARG_DEF_INIT) #ifdef WGL_ARB_render_texture -static GLboolean _glewInit_WGL_ARB_render_texture (WGLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_WGL_ARB_render_texture () { GLboolean r = GL_FALSE; @@ -11714,7 +21376,7 @@ static GLboolean _glewInit_WGL_ARB_render_texture (WGLEW_CONTEXT_ARG_DEF_INIT) #ifdef WGL_EXT_display_color_table -static GLboolean _glewInit_WGL_EXT_display_color_table (WGLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_WGL_EXT_display_color_table () { GLboolean r = GL_FALSE; @@ -11730,7 +21392,7 @@ static GLboolean _glewInit_WGL_EXT_display_color_table (WGLEW_CONTEXT_ARG_DEF_IN #ifdef WGL_EXT_extensions_string -static GLboolean _glewInit_WGL_EXT_extensions_string (WGLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_WGL_EXT_extensions_string () { GLboolean r = GL_FALSE; @@ -11743,7 +21405,7 @@ static GLboolean _glewInit_WGL_EXT_extensions_string (WGLEW_CONTEXT_ARG_DEF_INIT #ifdef WGL_EXT_make_current_read -static GLboolean _glewInit_WGL_EXT_make_current_read (WGLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_WGL_EXT_make_current_read () { GLboolean r = GL_FALSE; @@ -11757,7 +21419,7 @@ static GLboolean _glewInit_WGL_EXT_make_current_read (WGLEW_CONTEXT_ARG_DEF_INIT #ifdef WGL_EXT_pbuffer -static GLboolean _glewInit_WGL_EXT_pbuffer (WGLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_WGL_EXT_pbuffer () { GLboolean r = GL_FALSE; @@ -11774,7 +21436,7 @@ static GLboolean _glewInit_WGL_EXT_pbuffer (WGLEW_CONTEXT_ARG_DEF_INIT) #ifdef WGL_EXT_pixel_format -static GLboolean _glewInit_WGL_EXT_pixel_format (WGLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_WGL_EXT_pixel_format () { GLboolean r = GL_FALSE; @@ -11789,7 +21451,7 @@ static GLboolean _glewInit_WGL_EXT_pixel_format (WGLEW_CONTEXT_ARG_DEF_INIT) #ifdef WGL_EXT_swap_control -static GLboolean _glewInit_WGL_EXT_swap_control (WGLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_WGL_EXT_swap_control () { GLboolean r = GL_FALSE; @@ -11803,7 +21465,7 @@ static GLboolean _glewInit_WGL_EXT_swap_control (WGLEW_CONTEXT_ARG_DEF_INIT) #ifdef WGL_I3D_digital_video_control -static GLboolean _glewInit_WGL_I3D_digital_video_control (WGLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_WGL_I3D_digital_video_control () { GLboolean r = GL_FALSE; @@ -11817,7 +21479,7 @@ static GLboolean _glewInit_WGL_I3D_digital_video_control (WGLEW_CONTEXT_ARG_DEF_ #ifdef WGL_I3D_gamma -static GLboolean _glewInit_WGL_I3D_gamma (WGLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_WGL_I3D_gamma () { GLboolean r = GL_FALSE; @@ -11833,7 +21495,7 @@ static GLboolean _glewInit_WGL_I3D_gamma (WGLEW_CONTEXT_ARG_DEF_INIT) #ifdef WGL_I3D_genlock -static GLboolean _glewInit_WGL_I3D_genlock (WGLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_WGL_I3D_genlock () { GLboolean r = GL_FALSE; @@ -11857,7 +21519,7 @@ static GLboolean _glewInit_WGL_I3D_genlock (WGLEW_CONTEXT_ARG_DEF_INIT) #ifdef WGL_I3D_image_buffer -static GLboolean _glewInit_WGL_I3D_image_buffer (WGLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_WGL_I3D_image_buffer () { GLboolean r = GL_FALSE; @@ -11873,7 +21535,7 @@ static GLboolean _glewInit_WGL_I3D_image_buffer (WGLEW_CONTEXT_ARG_DEF_INIT) #ifdef WGL_I3D_swap_frame_lock -static GLboolean _glewInit_WGL_I3D_swap_frame_lock (WGLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_WGL_I3D_swap_frame_lock () { GLboolean r = GL_FALSE; @@ -11889,7 +21551,7 @@ static GLboolean _glewInit_WGL_I3D_swap_frame_lock (WGLEW_CONTEXT_ARG_DEF_INIT) #ifdef WGL_I3D_swap_frame_usage -static GLboolean _glewInit_WGL_I3D_swap_frame_usage (WGLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_WGL_I3D_swap_frame_usage () { GLboolean r = GL_FALSE; @@ -11905,7 +21567,7 @@ static GLboolean _glewInit_WGL_I3D_swap_frame_usage (WGLEW_CONTEXT_ARG_DEF_INIT) #ifdef WGL_NV_DX_interop -static GLboolean _glewInit_WGL_NV_DX_interop (WGLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_WGL_NV_DX_interop () { GLboolean r = GL_FALSE; @@ -11925,7 +21587,7 @@ static GLboolean _glewInit_WGL_NV_DX_interop (WGLEW_CONTEXT_ARG_DEF_INIT) #ifdef WGL_NV_copy_image -static GLboolean _glewInit_WGL_NV_copy_image (WGLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_WGL_NV_copy_image () { GLboolean r = GL_FALSE; @@ -11938,7 +21600,7 @@ static GLboolean _glewInit_WGL_NV_copy_image (WGLEW_CONTEXT_ARG_DEF_INIT) #ifdef WGL_NV_delay_before_swap -static GLboolean _glewInit_WGL_NV_delay_before_swap (WGLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_WGL_NV_delay_before_swap () { GLboolean r = GL_FALSE; @@ -11951,7 +21613,7 @@ static GLboolean _glewInit_WGL_NV_delay_before_swap (WGLEW_CONTEXT_ARG_DEF_INIT) #ifdef WGL_NV_gpu_affinity -static GLboolean _glewInit_WGL_NV_gpu_affinity (WGLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_WGL_NV_gpu_affinity () { GLboolean r = GL_FALSE; @@ -11968,7 +21630,7 @@ static GLboolean _glewInit_WGL_NV_gpu_affinity (WGLEW_CONTEXT_ARG_DEF_INIT) #ifdef WGL_NV_present_video -static GLboolean _glewInit_WGL_NV_present_video (WGLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_WGL_NV_present_video () { GLboolean r = GL_FALSE; @@ -11983,7 +21645,7 @@ static GLboolean _glewInit_WGL_NV_present_video (WGLEW_CONTEXT_ARG_DEF_INIT) #ifdef WGL_NV_swap_group -static GLboolean _glewInit_WGL_NV_swap_group (WGLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_WGL_NV_swap_group () { GLboolean r = GL_FALSE; @@ -12001,7 +21663,7 @@ static GLboolean _glewInit_WGL_NV_swap_group (WGLEW_CONTEXT_ARG_DEF_INIT) #ifdef WGL_NV_vertex_array_range -static GLboolean _glewInit_WGL_NV_vertex_array_range (WGLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_WGL_NV_vertex_array_range () { GLboolean r = GL_FALSE; @@ -12015,7 +21677,7 @@ static GLboolean _glewInit_WGL_NV_vertex_array_range (WGLEW_CONTEXT_ARG_DEF_INIT #ifdef WGL_NV_video_capture -static GLboolean _glewInit_WGL_NV_video_capture (WGLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_WGL_NV_video_capture () { GLboolean r = GL_FALSE; @@ -12032,7 +21694,7 @@ static GLboolean _glewInit_WGL_NV_video_capture (WGLEW_CONTEXT_ARG_DEF_INIT) #ifdef WGL_NV_video_output -static GLboolean _glewInit_WGL_NV_video_output (WGLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_WGL_NV_video_output () { GLboolean r = GL_FALSE; @@ -12050,7 +21712,7 @@ static GLboolean _glewInit_WGL_NV_video_output (WGLEW_CONTEXT_ARG_DEF_INIT) #ifdef WGL_OML_sync_control -static GLboolean _glewInit_WGL_OML_sync_control (WGLEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_WGL_OML_sync_control () { GLboolean r = GL_FALSE; @@ -12088,11 +21750,7 @@ GLboolean GLEWAPIENTRY wglewGetExtension (const char* name) return _glewSearchExtension(name, start, end); } -#ifdef GLEW_MX -GLenum GLEWAPIENTRY wglewContextInit (WGLEW_CONTEXT_ARG_DEF_LIST) -#else -GLenum GLEWAPIENTRY wglewInit (WGLEW_CONTEXT_ARG_DEF_LIST) -#endif +GLenum GLEWAPIENTRY wglewInit () { GLboolean crippled; const GLubyte* extStart; @@ -12106,10 +21764,8 @@ GLenum GLEWAPIENTRY wglewInit (WGLEW_CONTEXT_ARG_DEF_LIST) extStart = (const GLubyte*)""; else extStart = (const GLubyte*)_wglewGetExtensionsStringEXT(); - else { - HDC dc = wglGetCurrentDC(); - extStart = (const GLubyte*)_wglewGetExtensionsStringARB(dc); - } + else + extStart = (const GLubyte*)_wglewGetExtensionsStringARB(wglGetCurrentDC()); extEnd = extStart + _glewStrLen(extStart); /* initialize extensions */ crippled = _wglewGetExtensionsStringARB == NULL && _wglewGetExtensionsStringEXT == NULL; @@ -12118,23 +21774,26 @@ GLenum GLEWAPIENTRY wglewInit (WGLEW_CONTEXT_ARG_DEF_LIST) #endif /* WGL_3DFX_multisample */ #ifdef WGL_3DL_stereo_control WGLEW_3DL_stereo_control = _glewSearchExtension("WGL_3DL_stereo_control", extStart, extEnd); - if (glewExperimental || WGLEW_3DL_stereo_control|| crippled) WGLEW_3DL_stereo_control= !_glewInit_WGL_3DL_stereo_control(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || WGLEW_3DL_stereo_control|| crippled) WGLEW_3DL_stereo_control= !_glewInit_WGL_3DL_stereo_control(); #endif /* WGL_3DL_stereo_control */ #ifdef WGL_AMD_gpu_association WGLEW_AMD_gpu_association = _glewSearchExtension("WGL_AMD_gpu_association", extStart, extEnd); - if (glewExperimental || WGLEW_AMD_gpu_association|| crippled) WGLEW_AMD_gpu_association= !_glewInit_WGL_AMD_gpu_association(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || WGLEW_AMD_gpu_association|| crippled) WGLEW_AMD_gpu_association= !_glewInit_WGL_AMD_gpu_association(); #endif /* WGL_AMD_gpu_association */ #ifdef WGL_ARB_buffer_region WGLEW_ARB_buffer_region = _glewSearchExtension("WGL_ARB_buffer_region", extStart, extEnd); - if (glewExperimental || WGLEW_ARB_buffer_region|| crippled) WGLEW_ARB_buffer_region= !_glewInit_WGL_ARB_buffer_region(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || WGLEW_ARB_buffer_region|| crippled) WGLEW_ARB_buffer_region= !_glewInit_WGL_ARB_buffer_region(); #endif /* WGL_ARB_buffer_region */ #ifdef WGL_ARB_context_flush_control WGLEW_ARB_context_flush_control = _glewSearchExtension("WGL_ARB_context_flush_control", extStart, extEnd); #endif /* WGL_ARB_context_flush_control */ #ifdef WGL_ARB_create_context WGLEW_ARB_create_context = _glewSearchExtension("WGL_ARB_create_context", extStart, extEnd); - if (glewExperimental || WGLEW_ARB_create_context|| crippled) WGLEW_ARB_create_context= !_glewInit_WGL_ARB_create_context(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || WGLEW_ARB_create_context|| crippled) WGLEW_ARB_create_context= !_glewInit_WGL_ARB_create_context(); #endif /* WGL_ARB_create_context */ +#ifdef WGL_ARB_create_context_no_error + WGLEW_ARB_create_context_no_error = _glewSearchExtension("WGL_ARB_create_context_no_error", extStart, extEnd); +#endif /* WGL_ARB_create_context_no_error */ #ifdef WGL_ARB_create_context_profile WGLEW_ARB_create_context_profile = _glewSearchExtension("WGL_ARB_create_context_profile", extStart, extEnd); #endif /* WGL_ARB_create_context_profile */ @@ -12143,32 +21802,32 @@ GLenum GLEWAPIENTRY wglewInit (WGLEW_CONTEXT_ARG_DEF_LIST) #endif /* WGL_ARB_create_context_robustness */ #ifdef WGL_ARB_extensions_string WGLEW_ARB_extensions_string = _glewSearchExtension("WGL_ARB_extensions_string", extStart, extEnd); - if (glewExperimental || WGLEW_ARB_extensions_string|| crippled) WGLEW_ARB_extensions_string= !_glewInit_WGL_ARB_extensions_string(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || WGLEW_ARB_extensions_string|| crippled) WGLEW_ARB_extensions_string= !_glewInit_WGL_ARB_extensions_string(); #endif /* WGL_ARB_extensions_string */ #ifdef WGL_ARB_framebuffer_sRGB WGLEW_ARB_framebuffer_sRGB = _glewSearchExtension("WGL_ARB_framebuffer_sRGB", extStart, extEnd); #endif /* WGL_ARB_framebuffer_sRGB */ #ifdef WGL_ARB_make_current_read WGLEW_ARB_make_current_read = _glewSearchExtension("WGL_ARB_make_current_read", extStart, extEnd); - if (glewExperimental || WGLEW_ARB_make_current_read|| crippled) WGLEW_ARB_make_current_read= !_glewInit_WGL_ARB_make_current_read(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || WGLEW_ARB_make_current_read|| crippled) WGLEW_ARB_make_current_read= !_glewInit_WGL_ARB_make_current_read(); #endif /* WGL_ARB_make_current_read */ #ifdef WGL_ARB_multisample WGLEW_ARB_multisample = _glewSearchExtension("WGL_ARB_multisample", extStart, extEnd); #endif /* WGL_ARB_multisample */ #ifdef WGL_ARB_pbuffer WGLEW_ARB_pbuffer = _glewSearchExtension("WGL_ARB_pbuffer", extStart, extEnd); - if (glewExperimental || WGLEW_ARB_pbuffer|| crippled) WGLEW_ARB_pbuffer= !_glewInit_WGL_ARB_pbuffer(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || WGLEW_ARB_pbuffer|| crippled) WGLEW_ARB_pbuffer= !_glewInit_WGL_ARB_pbuffer(); #endif /* WGL_ARB_pbuffer */ #ifdef WGL_ARB_pixel_format WGLEW_ARB_pixel_format = _glewSearchExtension("WGL_ARB_pixel_format", extStart, extEnd); - if (glewExperimental || WGLEW_ARB_pixel_format|| crippled) WGLEW_ARB_pixel_format= !_glewInit_WGL_ARB_pixel_format(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || WGLEW_ARB_pixel_format|| crippled) WGLEW_ARB_pixel_format= !_glewInit_WGL_ARB_pixel_format(); #endif /* WGL_ARB_pixel_format */ #ifdef WGL_ARB_pixel_format_float WGLEW_ARB_pixel_format_float = _glewSearchExtension("WGL_ARB_pixel_format_float", extStart, extEnd); #endif /* WGL_ARB_pixel_format_float */ #ifdef WGL_ARB_render_texture WGLEW_ARB_render_texture = _glewSearchExtension("WGL_ARB_render_texture", extStart, extEnd); - if (glewExperimental || WGLEW_ARB_render_texture|| crippled) WGLEW_ARB_render_texture= !_glewInit_WGL_ARB_render_texture(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || WGLEW_ARB_render_texture|| crippled) WGLEW_ARB_render_texture= !_glewInit_WGL_ARB_render_texture(); #endif /* WGL_ARB_render_texture */ #ifdef WGL_ARB_robustness_application_isolation WGLEW_ARB_robustness_application_isolation = _glewSearchExtension("WGL_ARB_robustness_application_isolation", extStart, extEnd); @@ -12182,6 +21841,9 @@ GLenum GLEWAPIENTRY wglewInit (WGLEW_CONTEXT_ARG_DEF_LIST) #ifdef WGL_ATI_render_texture_rectangle WGLEW_ATI_render_texture_rectangle = _glewSearchExtension("WGL_ATI_render_texture_rectangle", extStart, extEnd); #endif /* WGL_ATI_render_texture_rectangle */ +#ifdef WGL_EXT_colorspace + WGLEW_EXT_colorspace = _glewSearchExtension("WGL_EXT_colorspace", extStart, extEnd); +#endif /* WGL_EXT_colorspace */ #ifdef WGL_EXT_create_context_es2_profile WGLEW_EXT_create_context_es2_profile = _glewSearchExtension("WGL_EXT_create_context_es2_profile", extStart, extEnd); #endif /* WGL_EXT_create_context_es2_profile */ @@ -12193,92 +21855,95 @@ GLenum GLEWAPIENTRY wglewInit (WGLEW_CONTEXT_ARG_DEF_LIST) #endif /* WGL_EXT_depth_float */ #ifdef WGL_EXT_display_color_table WGLEW_EXT_display_color_table = _glewSearchExtension("WGL_EXT_display_color_table", extStart, extEnd); - if (glewExperimental || WGLEW_EXT_display_color_table|| crippled) WGLEW_EXT_display_color_table= !_glewInit_WGL_EXT_display_color_table(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || WGLEW_EXT_display_color_table|| crippled) WGLEW_EXT_display_color_table= !_glewInit_WGL_EXT_display_color_table(); #endif /* WGL_EXT_display_color_table */ #ifdef WGL_EXT_extensions_string WGLEW_EXT_extensions_string = _glewSearchExtension("WGL_EXT_extensions_string", extStart, extEnd); - if (glewExperimental || WGLEW_EXT_extensions_string|| crippled) WGLEW_EXT_extensions_string= !_glewInit_WGL_EXT_extensions_string(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || WGLEW_EXT_extensions_string|| crippled) WGLEW_EXT_extensions_string= !_glewInit_WGL_EXT_extensions_string(); #endif /* WGL_EXT_extensions_string */ #ifdef WGL_EXT_framebuffer_sRGB WGLEW_EXT_framebuffer_sRGB = _glewSearchExtension("WGL_EXT_framebuffer_sRGB", extStart, extEnd); #endif /* WGL_EXT_framebuffer_sRGB */ #ifdef WGL_EXT_make_current_read WGLEW_EXT_make_current_read = _glewSearchExtension("WGL_EXT_make_current_read", extStart, extEnd); - if (glewExperimental || WGLEW_EXT_make_current_read|| crippled) WGLEW_EXT_make_current_read= !_glewInit_WGL_EXT_make_current_read(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || WGLEW_EXT_make_current_read|| crippled) WGLEW_EXT_make_current_read= !_glewInit_WGL_EXT_make_current_read(); #endif /* WGL_EXT_make_current_read */ #ifdef WGL_EXT_multisample WGLEW_EXT_multisample = _glewSearchExtension("WGL_EXT_multisample", extStart, extEnd); #endif /* WGL_EXT_multisample */ #ifdef WGL_EXT_pbuffer WGLEW_EXT_pbuffer = _glewSearchExtension("WGL_EXT_pbuffer", extStart, extEnd); - if (glewExperimental || WGLEW_EXT_pbuffer|| crippled) WGLEW_EXT_pbuffer= !_glewInit_WGL_EXT_pbuffer(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || WGLEW_EXT_pbuffer|| crippled) WGLEW_EXT_pbuffer= !_glewInit_WGL_EXT_pbuffer(); #endif /* WGL_EXT_pbuffer */ #ifdef WGL_EXT_pixel_format WGLEW_EXT_pixel_format = _glewSearchExtension("WGL_EXT_pixel_format", extStart, extEnd); - if (glewExperimental || WGLEW_EXT_pixel_format|| crippled) WGLEW_EXT_pixel_format= !_glewInit_WGL_EXT_pixel_format(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || WGLEW_EXT_pixel_format|| crippled) WGLEW_EXT_pixel_format= !_glewInit_WGL_EXT_pixel_format(); #endif /* WGL_EXT_pixel_format */ #ifdef WGL_EXT_pixel_format_packed_float WGLEW_EXT_pixel_format_packed_float = _glewSearchExtension("WGL_EXT_pixel_format_packed_float", extStart, extEnd); #endif /* WGL_EXT_pixel_format_packed_float */ #ifdef WGL_EXT_swap_control WGLEW_EXT_swap_control = _glewSearchExtension("WGL_EXT_swap_control", extStart, extEnd); - if (glewExperimental || WGLEW_EXT_swap_control|| crippled) WGLEW_EXT_swap_control= !_glewInit_WGL_EXT_swap_control(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || WGLEW_EXT_swap_control|| crippled) WGLEW_EXT_swap_control= !_glewInit_WGL_EXT_swap_control(); #endif /* WGL_EXT_swap_control */ #ifdef WGL_EXT_swap_control_tear WGLEW_EXT_swap_control_tear = _glewSearchExtension("WGL_EXT_swap_control_tear", extStart, extEnd); #endif /* WGL_EXT_swap_control_tear */ #ifdef WGL_I3D_digital_video_control WGLEW_I3D_digital_video_control = _glewSearchExtension("WGL_I3D_digital_video_control", extStart, extEnd); - if (glewExperimental || WGLEW_I3D_digital_video_control|| crippled) WGLEW_I3D_digital_video_control= !_glewInit_WGL_I3D_digital_video_control(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || WGLEW_I3D_digital_video_control|| crippled) WGLEW_I3D_digital_video_control= !_glewInit_WGL_I3D_digital_video_control(); #endif /* WGL_I3D_digital_video_control */ #ifdef WGL_I3D_gamma WGLEW_I3D_gamma = _glewSearchExtension("WGL_I3D_gamma", extStart, extEnd); - if (glewExperimental || WGLEW_I3D_gamma|| crippled) WGLEW_I3D_gamma= !_glewInit_WGL_I3D_gamma(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || WGLEW_I3D_gamma|| crippled) WGLEW_I3D_gamma= !_glewInit_WGL_I3D_gamma(); #endif /* WGL_I3D_gamma */ #ifdef WGL_I3D_genlock WGLEW_I3D_genlock = _glewSearchExtension("WGL_I3D_genlock", extStart, extEnd); - if (glewExperimental || WGLEW_I3D_genlock|| crippled) WGLEW_I3D_genlock= !_glewInit_WGL_I3D_genlock(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || WGLEW_I3D_genlock|| crippled) WGLEW_I3D_genlock= !_glewInit_WGL_I3D_genlock(); #endif /* WGL_I3D_genlock */ #ifdef WGL_I3D_image_buffer WGLEW_I3D_image_buffer = _glewSearchExtension("WGL_I3D_image_buffer", extStart, extEnd); - if (glewExperimental || WGLEW_I3D_image_buffer|| crippled) WGLEW_I3D_image_buffer= !_glewInit_WGL_I3D_image_buffer(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || WGLEW_I3D_image_buffer|| crippled) WGLEW_I3D_image_buffer= !_glewInit_WGL_I3D_image_buffer(); #endif /* WGL_I3D_image_buffer */ #ifdef WGL_I3D_swap_frame_lock WGLEW_I3D_swap_frame_lock = _glewSearchExtension("WGL_I3D_swap_frame_lock", extStart, extEnd); - if (glewExperimental || WGLEW_I3D_swap_frame_lock|| crippled) WGLEW_I3D_swap_frame_lock= !_glewInit_WGL_I3D_swap_frame_lock(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || WGLEW_I3D_swap_frame_lock|| crippled) WGLEW_I3D_swap_frame_lock= !_glewInit_WGL_I3D_swap_frame_lock(); #endif /* WGL_I3D_swap_frame_lock */ #ifdef WGL_I3D_swap_frame_usage WGLEW_I3D_swap_frame_usage = _glewSearchExtension("WGL_I3D_swap_frame_usage", extStart, extEnd); - if (glewExperimental || WGLEW_I3D_swap_frame_usage|| crippled) WGLEW_I3D_swap_frame_usage= !_glewInit_WGL_I3D_swap_frame_usage(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || WGLEW_I3D_swap_frame_usage|| crippled) WGLEW_I3D_swap_frame_usage= !_glewInit_WGL_I3D_swap_frame_usage(); #endif /* WGL_I3D_swap_frame_usage */ #ifdef WGL_NV_DX_interop WGLEW_NV_DX_interop = _glewSearchExtension("WGL_NV_DX_interop", extStart, extEnd); - if (glewExperimental || WGLEW_NV_DX_interop|| crippled) WGLEW_NV_DX_interop= !_glewInit_WGL_NV_DX_interop(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || WGLEW_NV_DX_interop|| crippled) WGLEW_NV_DX_interop= !_glewInit_WGL_NV_DX_interop(); #endif /* WGL_NV_DX_interop */ #ifdef WGL_NV_DX_interop2 WGLEW_NV_DX_interop2 = _glewSearchExtension("WGL_NV_DX_interop2", extStart, extEnd); #endif /* WGL_NV_DX_interop2 */ #ifdef WGL_NV_copy_image WGLEW_NV_copy_image = _glewSearchExtension("WGL_NV_copy_image", extStart, extEnd); - if (glewExperimental || WGLEW_NV_copy_image|| crippled) WGLEW_NV_copy_image= !_glewInit_WGL_NV_copy_image(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || WGLEW_NV_copy_image|| crippled) WGLEW_NV_copy_image= !_glewInit_WGL_NV_copy_image(); #endif /* WGL_NV_copy_image */ #ifdef WGL_NV_delay_before_swap WGLEW_NV_delay_before_swap = _glewSearchExtension("WGL_NV_delay_before_swap", extStart, extEnd); - if (glewExperimental || WGLEW_NV_delay_before_swap|| crippled) WGLEW_NV_delay_before_swap= !_glewInit_WGL_NV_delay_before_swap(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || WGLEW_NV_delay_before_swap|| crippled) WGLEW_NV_delay_before_swap= !_glewInit_WGL_NV_delay_before_swap(); #endif /* WGL_NV_delay_before_swap */ #ifdef WGL_NV_float_buffer WGLEW_NV_float_buffer = _glewSearchExtension("WGL_NV_float_buffer", extStart, extEnd); #endif /* WGL_NV_float_buffer */ #ifdef WGL_NV_gpu_affinity WGLEW_NV_gpu_affinity = _glewSearchExtension("WGL_NV_gpu_affinity", extStart, extEnd); - if (glewExperimental || WGLEW_NV_gpu_affinity|| crippled) WGLEW_NV_gpu_affinity= !_glewInit_WGL_NV_gpu_affinity(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || WGLEW_NV_gpu_affinity|| crippled) WGLEW_NV_gpu_affinity= !_glewInit_WGL_NV_gpu_affinity(); #endif /* WGL_NV_gpu_affinity */ +#ifdef WGL_NV_multigpu_context + WGLEW_NV_multigpu_context = _glewSearchExtension("WGL_NV_multigpu_context", extStart, extEnd); +#endif /* WGL_NV_multigpu_context */ #ifdef WGL_NV_multisample_coverage WGLEW_NV_multisample_coverage = _glewSearchExtension("WGL_NV_multisample_coverage", extStart, extEnd); #endif /* WGL_NV_multisample_coverage */ #ifdef WGL_NV_present_video WGLEW_NV_present_video = _glewSearchExtension("WGL_NV_present_video", extStart, extEnd); - if (glewExperimental || WGLEW_NV_present_video|| crippled) WGLEW_NV_present_video= !_glewInit_WGL_NV_present_video(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || WGLEW_NV_present_video|| crippled) WGLEW_NV_present_video= !_glewInit_WGL_NV_present_video(); #endif /* WGL_NV_present_video */ #ifdef WGL_NV_render_depth_texture WGLEW_NV_render_depth_texture = _glewSearchExtension("WGL_NV_render_depth_texture", extStart, extEnd); @@ -12288,23 +21953,23 @@ GLenum GLEWAPIENTRY wglewInit (WGLEW_CONTEXT_ARG_DEF_LIST) #endif /* WGL_NV_render_texture_rectangle */ #ifdef WGL_NV_swap_group WGLEW_NV_swap_group = _glewSearchExtension("WGL_NV_swap_group", extStart, extEnd); - if (glewExperimental || WGLEW_NV_swap_group|| crippled) WGLEW_NV_swap_group= !_glewInit_WGL_NV_swap_group(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || WGLEW_NV_swap_group|| crippled) WGLEW_NV_swap_group= !_glewInit_WGL_NV_swap_group(); #endif /* WGL_NV_swap_group */ #ifdef WGL_NV_vertex_array_range WGLEW_NV_vertex_array_range = _glewSearchExtension("WGL_NV_vertex_array_range", extStart, extEnd); - if (glewExperimental || WGLEW_NV_vertex_array_range|| crippled) WGLEW_NV_vertex_array_range= !_glewInit_WGL_NV_vertex_array_range(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || WGLEW_NV_vertex_array_range|| crippled) WGLEW_NV_vertex_array_range= !_glewInit_WGL_NV_vertex_array_range(); #endif /* WGL_NV_vertex_array_range */ #ifdef WGL_NV_video_capture WGLEW_NV_video_capture = _glewSearchExtension("WGL_NV_video_capture", extStart, extEnd); - if (glewExperimental || WGLEW_NV_video_capture|| crippled) WGLEW_NV_video_capture= !_glewInit_WGL_NV_video_capture(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || WGLEW_NV_video_capture|| crippled) WGLEW_NV_video_capture= !_glewInit_WGL_NV_video_capture(); #endif /* WGL_NV_video_capture */ #ifdef WGL_NV_video_output WGLEW_NV_video_output = _glewSearchExtension("WGL_NV_video_output", extStart, extEnd); - if (glewExperimental || WGLEW_NV_video_output|| crippled) WGLEW_NV_video_output= !_glewInit_WGL_NV_video_output(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || WGLEW_NV_video_output|| crippled) WGLEW_NV_video_output= !_glewInit_WGL_NV_video_output(); #endif /* WGL_NV_video_output */ #ifdef WGL_OML_sync_control WGLEW_OML_sync_control = _glewSearchExtension("WGL_OML_sync_control", extStart, extEnd); - if (glewExperimental || WGLEW_OML_sync_control|| crippled) WGLEW_OML_sync_control= !_glewInit_WGL_OML_sync_control(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || WGLEW_OML_sync_control|| crippled) WGLEW_OML_sync_control= !_glewInit_WGL_OML_sync_control(); #endif /* WGL_OML_sync_control */ return GLEW_OK; @@ -12350,6 +22015,7 @@ PFNGLXRELEASETEXIMAGEATIPROC __glewXReleaseTexImageATI = NULL; PFNGLXFREECONTEXTEXTPROC __glewXFreeContextEXT = NULL; PFNGLXGETCONTEXTIDEXTPROC __glewXGetContextIDEXT = NULL; +PFNGLXGETCURRENTDISPLAYEXTPROC __glewXGetCurrentDisplayEXT = NULL; PFNGLXIMPORTCONTEXTEXTPROC __glewXImportContextEXT = NULL; PFNGLXQUERYCONTEXTINFOEXTPROC __glewXQueryContextInfoEXT = NULL; @@ -12463,8 +22129,6 @@ PFNGLXGETTRANSPARENTINDEXSUNPROC __glewXGetTransparentIndexSUN = NULL; PFNGLXGETVIDEORESIZESUNPROC __glewXGetVideoResizeSUN = NULL; PFNGLXVIDEORESIZESUNPROC __glewXVideoResizeSUN = NULL; -#if !defined(GLEW_MX) - GLboolean __GLXEW_VERSION_1_0 = GL_FALSE; GLboolean __GLXEW_VERSION_1_1 = GL_FALSE; GLboolean __GLXEW_VERSION_1_2 = GL_FALSE; @@ -12474,6 +22138,7 @@ GLboolean __GLXEW_3DFX_multisample = GL_FALSE; GLboolean __GLXEW_AMD_gpu_association = GL_FALSE; GLboolean __GLXEW_ARB_context_flush_control = GL_FALSE; GLboolean __GLXEW_ARB_create_context = GL_FALSE; +GLboolean __GLXEW_ARB_create_context_no_error = GL_FALSE; GLboolean __GLXEW_ARB_create_context_profile = GL_FALSE; GLboolean __GLXEW_ARB_create_context_robustness = GL_FALSE; GLboolean __GLXEW_ARB_fbconfig_float = GL_FALSE; @@ -12486,11 +22151,14 @@ GLboolean __GLXEW_ARB_vertex_buffer_object = GL_FALSE; GLboolean __GLXEW_ATI_pixel_format_float = GL_FALSE; GLboolean __GLXEW_ATI_render_texture = GL_FALSE; GLboolean __GLXEW_EXT_buffer_age = GL_FALSE; +GLboolean __GLXEW_EXT_context_priority = GL_FALSE; GLboolean __GLXEW_EXT_create_context_es2_profile = GL_FALSE; GLboolean __GLXEW_EXT_create_context_es_profile = GL_FALSE; GLboolean __GLXEW_EXT_fbconfig_packed_float = GL_FALSE; GLboolean __GLXEW_EXT_framebuffer_sRGB = GL_FALSE; GLboolean __GLXEW_EXT_import_context = GL_FALSE; +GLboolean __GLXEW_EXT_libglvnd = GL_FALSE; +GLboolean __GLXEW_EXT_no_config_context = GL_FALSE; GLboolean __GLXEW_EXT_scene_marker = GL_FALSE; GLboolean __GLXEW_EXT_stereo_tree = GL_FALSE; GLboolean __GLXEW_EXT_swap_control = GL_FALSE; @@ -12510,8 +22178,10 @@ GLboolean __GLXEW_NV_copy_buffer = GL_FALSE; GLboolean __GLXEW_NV_copy_image = GL_FALSE; GLboolean __GLXEW_NV_delay_before_swap = GL_FALSE; GLboolean __GLXEW_NV_float_buffer = GL_FALSE; +GLboolean __GLXEW_NV_multigpu_context = GL_FALSE; GLboolean __GLXEW_NV_multisample_coverage = GL_FALSE; GLboolean __GLXEW_NV_present_video = GL_FALSE; +GLboolean __GLXEW_NV_robustness_video_memory_purge = GL_FALSE; GLboolean __GLXEW_NV_swap_group = GL_FALSE; GLboolean __GLXEW_NV_vertex_array_range = GL_FALSE; GLboolean __GLXEW_NV_video_capture = GL_FALSE; @@ -12535,12 +22205,9 @@ GLboolean __GLXEW_SGI_swap_control = GL_FALSE; GLboolean __GLXEW_SGI_video_sync = GL_FALSE; GLboolean __GLXEW_SUN_get_transparent_index = GL_FALSE; GLboolean __GLXEW_SUN_video_resize = GL_FALSE; - -#endif /* !GLEW_MX */ - #ifdef GLX_VERSION_1_2 -static GLboolean _glewInit_GLX_VERSION_1_2 (GLXEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GLX_VERSION_1_2 () { GLboolean r = GL_FALSE; @@ -12553,7 +22220,7 @@ static GLboolean _glewInit_GLX_VERSION_1_2 (GLXEW_CONTEXT_ARG_DEF_INIT) #ifdef GLX_VERSION_1_3 -static GLboolean _glewInit_GLX_VERSION_1_3 (GLXEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GLX_VERSION_1_3 () { GLboolean r = GL_FALSE; @@ -12582,7 +22249,7 @@ static GLboolean _glewInit_GLX_VERSION_1_3 (GLXEW_CONTEXT_ARG_DEF_INIT) #ifdef GLX_AMD_gpu_association -static GLboolean _glewInit_GLX_AMD_gpu_association (GLXEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GLX_AMD_gpu_association () { GLboolean r = GL_FALSE; @@ -12603,7 +22270,7 @@ static GLboolean _glewInit_GLX_AMD_gpu_association (GLXEW_CONTEXT_ARG_DEF_INIT) #ifdef GLX_ARB_create_context -static GLboolean _glewInit_GLX_ARB_create_context (GLXEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GLX_ARB_create_context () { GLboolean r = GL_FALSE; @@ -12616,7 +22283,7 @@ static GLboolean _glewInit_GLX_ARB_create_context (GLXEW_CONTEXT_ARG_DEF_INIT) #ifdef GLX_ATI_render_texture -static GLboolean _glewInit_GLX_ATI_render_texture (GLXEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GLX_ATI_render_texture () { GLboolean r = GL_FALSE; @@ -12631,12 +22298,13 @@ static GLboolean _glewInit_GLX_ATI_render_texture (GLXEW_CONTEXT_ARG_DEF_INIT) #ifdef GLX_EXT_import_context -static GLboolean _glewInit_GLX_EXT_import_context (GLXEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GLX_EXT_import_context () { GLboolean r = GL_FALSE; r = ((glXFreeContextEXT = (PFNGLXFREECONTEXTEXTPROC)glewGetProcAddress((const GLubyte*)"glXFreeContextEXT")) == NULL) || r; r = ((glXGetContextIDEXT = (PFNGLXGETCONTEXTIDEXTPROC)glewGetProcAddress((const GLubyte*)"glXGetContextIDEXT")) == NULL) || r; + r = ((glXGetCurrentDisplayEXT = (PFNGLXGETCURRENTDISPLAYEXTPROC)glewGetProcAddress((const GLubyte*)"glXGetCurrentDisplayEXT")) == NULL) || r; r = ((glXImportContextEXT = (PFNGLXIMPORTCONTEXTEXTPROC)glewGetProcAddress((const GLubyte*)"glXImportContextEXT")) == NULL) || r; r = ((glXQueryContextInfoEXT = (PFNGLXQUERYCONTEXTINFOEXTPROC)glewGetProcAddress((const GLubyte*)"glXQueryContextInfoEXT")) == NULL) || r; @@ -12647,7 +22315,7 @@ static GLboolean _glewInit_GLX_EXT_import_context (GLXEW_CONTEXT_ARG_DEF_INIT) #ifdef GLX_EXT_swap_control -static GLboolean _glewInit_GLX_EXT_swap_control (GLXEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GLX_EXT_swap_control () { GLboolean r = GL_FALSE; @@ -12660,7 +22328,7 @@ static GLboolean _glewInit_GLX_EXT_swap_control (GLXEW_CONTEXT_ARG_DEF_INIT) #ifdef GLX_EXT_texture_from_pixmap -static GLboolean _glewInit_GLX_EXT_texture_from_pixmap (GLXEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GLX_EXT_texture_from_pixmap () { GLboolean r = GL_FALSE; @@ -12674,7 +22342,7 @@ static GLboolean _glewInit_GLX_EXT_texture_from_pixmap (GLXEW_CONTEXT_ARG_DEF_IN #ifdef GLX_MESA_agp_offset -static GLboolean _glewInit_GLX_MESA_agp_offset (GLXEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GLX_MESA_agp_offset () { GLboolean r = GL_FALSE; @@ -12687,7 +22355,7 @@ static GLboolean _glewInit_GLX_MESA_agp_offset (GLXEW_CONTEXT_ARG_DEF_INIT) #ifdef GLX_MESA_copy_sub_buffer -static GLboolean _glewInit_GLX_MESA_copy_sub_buffer (GLXEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GLX_MESA_copy_sub_buffer () { GLboolean r = GL_FALSE; @@ -12700,7 +22368,7 @@ static GLboolean _glewInit_GLX_MESA_copy_sub_buffer (GLXEW_CONTEXT_ARG_DEF_INIT) #ifdef GLX_MESA_pixmap_colormap -static GLboolean _glewInit_GLX_MESA_pixmap_colormap (GLXEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GLX_MESA_pixmap_colormap () { GLboolean r = GL_FALSE; @@ -12713,7 +22381,7 @@ static GLboolean _glewInit_GLX_MESA_pixmap_colormap (GLXEW_CONTEXT_ARG_DEF_INIT) #ifdef GLX_MESA_query_renderer -static GLboolean _glewInit_GLX_MESA_query_renderer (GLXEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GLX_MESA_query_renderer () { GLboolean r = GL_FALSE; @@ -12729,7 +22397,7 @@ static GLboolean _glewInit_GLX_MESA_query_renderer (GLXEW_CONTEXT_ARG_DEF_INIT) #ifdef GLX_MESA_release_buffers -static GLboolean _glewInit_GLX_MESA_release_buffers (GLXEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GLX_MESA_release_buffers () { GLboolean r = GL_FALSE; @@ -12742,7 +22410,7 @@ static GLboolean _glewInit_GLX_MESA_release_buffers (GLXEW_CONTEXT_ARG_DEF_INIT) #ifdef GLX_MESA_set_3dfx_mode -static GLboolean _glewInit_GLX_MESA_set_3dfx_mode (GLXEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GLX_MESA_set_3dfx_mode () { GLboolean r = GL_FALSE; @@ -12755,7 +22423,7 @@ static GLboolean _glewInit_GLX_MESA_set_3dfx_mode (GLXEW_CONTEXT_ARG_DEF_INIT) #ifdef GLX_MESA_swap_control -static GLboolean _glewInit_GLX_MESA_swap_control (GLXEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GLX_MESA_swap_control () { GLboolean r = GL_FALSE; @@ -12769,7 +22437,7 @@ static GLboolean _glewInit_GLX_MESA_swap_control (GLXEW_CONTEXT_ARG_DEF_INIT) #ifdef GLX_NV_copy_buffer -static GLboolean _glewInit_GLX_NV_copy_buffer (GLXEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GLX_NV_copy_buffer () { GLboolean r = GL_FALSE; @@ -12783,7 +22451,7 @@ static GLboolean _glewInit_GLX_NV_copy_buffer (GLXEW_CONTEXT_ARG_DEF_INIT) #ifdef GLX_NV_copy_image -static GLboolean _glewInit_GLX_NV_copy_image (GLXEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GLX_NV_copy_image () { GLboolean r = GL_FALSE; @@ -12796,7 +22464,7 @@ static GLboolean _glewInit_GLX_NV_copy_image (GLXEW_CONTEXT_ARG_DEF_INIT) #ifdef GLX_NV_delay_before_swap -static GLboolean _glewInit_GLX_NV_delay_before_swap (GLXEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GLX_NV_delay_before_swap () { GLboolean r = GL_FALSE; @@ -12809,7 +22477,7 @@ static GLboolean _glewInit_GLX_NV_delay_before_swap (GLXEW_CONTEXT_ARG_DEF_INIT) #ifdef GLX_NV_present_video -static GLboolean _glewInit_GLX_NV_present_video (GLXEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GLX_NV_present_video () { GLboolean r = GL_FALSE; @@ -12823,7 +22491,7 @@ static GLboolean _glewInit_GLX_NV_present_video (GLXEW_CONTEXT_ARG_DEF_INIT) #ifdef GLX_NV_swap_group -static GLboolean _glewInit_GLX_NV_swap_group (GLXEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GLX_NV_swap_group () { GLboolean r = GL_FALSE; @@ -12841,7 +22509,7 @@ static GLboolean _glewInit_GLX_NV_swap_group (GLXEW_CONTEXT_ARG_DEF_INIT) #ifdef GLX_NV_vertex_array_range -static GLboolean _glewInit_GLX_NV_vertex_array_range (GLXEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GLX_NV_vertex_array_range () { GLboolean r = GL_FALSE; @@ -12855,7 +22523,7 @@ static GLboolean _glewInit_GLX_NV_vertex_array_range (GLXEW_CONTEXT_ARG_DEF_INIT #ifdef GLX_NV_video_capture -static GLboolean _glewInit_GLX_NV_video_capture (GLXEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GLX_NV_video_capture () { GLboolean r = GL_FALSE; @@ -12872,7 +22540,7 @@ static GLboolean _glewInit_GLX_NV_video_capture (GLXEW_CONTEXT_ARG_DEF_INIT) #ifdef GLX_NV_video_out -static GLboolean _glewInit_GLX_NV_video_out (GLXEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GLX_NV_video_out () { GLboolean r = GL_FALSE; @@ -12890,7 +22558,7 @@ static GLboolean _glewInit_GLX_NV_video_out (GLXEW_CONTEXT_ARG_DEF_INIT) #ifdef GLX_OML_sync_control -static GLboolean _glewInit_GLX_OML_sync_control (GLXEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GLX_OML_sync_control () { GLboolean r = GL_FALSE; @@ -12907,7 +22575,7 @@ static GLboolean _glewInit_GLX_OML_sync_control (GLXEW_CONTEXT_ARG_DEF_INIT) #ifdef GLX_SGIX_fbconfig -static GLboolean _glewInit_GLX_SGIX_fbconfig (GLXEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GLX_SGIX_fbconfig () { GLboolean r = GL_FALSE; @@ -12925,7 +22593,7 @@ static GLboolean _glewInit_GLX_SGIX_fbconfig (GLXEW_CONTEXT_ARG_DEF_INIT) #ifdef GLX_SGIX_hyperpipe -static GLboolean _glewInit_GLX_SGIX_hyperpipe (GLXEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GLX_SGIX_hyperpipe () { GLboolean r = GL_FALSE; @@ -12945,7 +22613,7 @@ static GLboolean _glewInit_GLX_SGIX_hyperpipe (GLXEW_CONTEXT_ARG_DEF_INIT) #ifdef GLX_SGIX_pbuffer -static GLboolean _glewInit_GLX_SGIX_pbuffer (GLXEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GLX_SGIX_pbuffer () { GLboolean r = GL_FALSE; @@ -12962,7 +22630,7 @@ static GLboolean _glewInit_GLX_SGIX_pbuffer (GLXEW_CONTEXT_ARG_DEF_INIT) #ifdef GLX_SGIX_swap_barrier -static GLboolean _glewInit_GLX_SGIX_swap_barrier (GLXEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GLX_SGIX_swap_barrier () { GLboolean r = GL_FALSE; @@ -12976,7 +22644,7 @@ static GLboolean _glewInit_GLX_SGIX_swap_barrier (GLXEW_CONTEXT_ARG_DEF_INIT) #ifdef GLX_SGIX_swap_group -static GLboolean _glewInit_GLX_SGIX_swap_group (GLXEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GLX_SGIX_swap_group () { GLboolean r = GL_FALSE; @@ -12989,7 +22657,7 @@ static GLboolean _glewInit_GLX_SGIX_swap_group (GLXEW_CONTEXT_ARG_DEF_INIT) #ifdef GLX_SGIX_video_resize -static GLboolean _glewInit_GLX_SGIX_video_resize (GLXEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GLX_SGIX_video_resize () { GLboolean r = GL_FALSE; @@ -13006,7 +22674,7 @@ static GLboolean _glewInit_GLX_SGIX_video_resize (GLXEW_CONTEXT_ARG_DEF_INIT) #ifdef GLX_SGI_cushion -static GLboolean _glewInit_GLX_SGI_cushion (GLXEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GLX_SGI_cushion () { GLboolean r = GL_FALSE; @@ -13019,7 +22687,7 @@ static GLboolean _glewInit_GLX_SGI_cushion (GLXEW_CONTEXT_ARG_DEF_INIT) #ifdef GLX_SGI_make_current_read -static GLboolean _glewInit_GLX_SGI_make_current_read (GLXEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GLX_SGI_make_current_read () { GLboolean r = GL_FALSE; @@ -13033,7 +22701,7 @@ static GLboolean _glewInit_GLX_SGI_make_current_read (GLXEW_CONTEXT_ARG_DEF_INIT #ifdef GLX_SGI_swap_control -static GLboolean _glewInit_GLX_SGI_swap_control (GLXEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GLX_SGI_swap_control () { GLboolean r = GL_FALSE; @@ -13046,7 +22714,7 @@ static GLboolean _glewInit_GLX_SGI_swap_control (GLXEW_CONTEXT_ARG_DEF_INIT) #ifdef GLX_SGI_video_sync -static GLboolean _glewInit_GLX_SGI_video_sync (GLXEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GLX_SGI_video_sync () { GLboolean r = GL_FALSE; @@ -13060,7 +22728,7 @@ static GLboolean _glewInit_GLX_SGI_video_sync (GLXEW_CONTEXT_ARG_DEF_INIT) #ifdef GLX_SUN_get_transparent_index -static GLboolean _glewInit_GLX_SUN_get_transparent_index (GLXEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GLX_SUN_get_transparent_index () { GLboolean r = GL_FALSE; @@ -13073,7 +22741,7 @@ static GLboolean _glewInit_GLX_SUN_get_transparent_index (GLXEW_CONTEXT_ARG_DEF_ #ifdef GLX_SUN_video_resize -static GLboolean _glewInit_GLX_SUN_video_resize (GLXEW_CONTEXT_ARG_DEF_INIT) +static GLboolean _glewInit_GLX_SUN_video_resize () { GLboolean r = GL_FALSE; @@ -13099,17 +22767,17 @@ GLboolean glxewGetExtension (const char* name) return _glewSearchExtension(name, start, end); } -#ifdef GLEW_MX -GLenum glxewContextInit (GLXEW_CONTEXT_ARG_DEF_LIST) -#else -GLenum glxewInit (GLXEW_CONTEXT_ARG_DEF_LIST) -#endif +GLenum glxewInit () { + Display* display; int major, minor; const GLubyte* extStart; const GLubyte* extEnd; /* initialize core GLX 1.2 */ - if (_glewInit_GLX_VERSION_1_2(GLEW_CONTEXT_ARG_VAR_INIT)) return GLEW_ERROR_GLX_VERSION_11_ONLY; + if (_glewInit_GLX_VERSION_1_2()) return GLEW_ERROR_GLX_VERSION_11_ONLY; + /* check for a display */ + display = glXGetCurrentDisplay(); + if (display == NULL) return GLEW_ERROR_NO_GLX_DISPLAY; /* initialize flags */ GLXEW_VERSION_1_0 = GL_TRUE; GLXEW_VERSION_1_1 = GL_TRUE; @@ -13117,7 +22785,7 @@ GLenum glxewInit (GLXEW_CONTEXT_ARG_DEF_LIST) GLXEW_VERSION_1_3 = GL_TRUE; GLXEW_VERSION_1_4 = GL_TRUE; /* query GLX version */ - glXQueryVersion(glXGetCurrentDisplay(), &major, &minor); + glXQueryVersion(display, &major, &minor); if (major == 1 && minor <= 3) { switch (minor) @@ -13137,28 +22805,31 @@ GLenum glxewInit (GLXEW_CONTEXT_ARG_DEF_LIST) /* query GLX extension string */ extStart = 0; if (glXGetCurrentDisplay != NULL) - extStart = (const GLubyte*)glXGetClientString(glXGetCurrentDisplay(), GLX_EXTENSIONS); + extStart = (const GLubyte*)glXGetClientString(display, GLX_EXTENSIONS); if (extStart == 0) extStart = (const GLubyte *)""; extEnd = extStart + _glewStrLen(extStart); /* initialize extensions */ #ifdef GLX_VERSION_1_3 - if (glewExperimental || GLXEW_VERSION_1_3) GLXEW_VERSION_1_3 = !_glewInit_GLX_VERSION_1_3(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLXEW_VERSION_1_3) GLXEW_VERSION_1_3 = !_glewInit_GLX_VERSION_1_3(); #endif /* GLX_VERSION_1_3 */ #ifdef GLX_3DFX_multisample GLXEW_3DFX_multisample = _glewSearchExtension("GLX_3DFX_multisample", extStart, extEnd); #endif /* GLX_3DFX_multisample */ #ifdef GLX_AMD_gpu_association GLXEW_AMD_gpu_association = _glewSearchExtension("GLX_AMD_gpu_association", extStart, extEnd); - if (glewExperimental || GLXEW_AMD_gpu_association) GLXEW_AMD_gpu_association = !_glewInit_GLX_AMD_gpu_association(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLXEW_AMD_gpu_association) GLXEW_AMD_gpu_association = !_glewInit_GLX_AMD_gpu_association(); #endif /* GLX_AMD_gpu_association */ #ifdef GLX_ARB_context_flush_control GLXEW_ARB_context_flush_control = _glewSearchExtension("GLX_ARB_context_flush_control", extStart, extEnd); #endif /* GLX_ARB_context_flush_control */ #ifdef GLX_ARB_create_context GLXEW_ARB_create_context = _glewSearchExtension("GLX_ARB_create_context", extStart, extEnd); - if (glewExperimental || GLXEW_ARB_create_context) GLXEW_ARB_create_context = !_glewInit_GLX_ARB_create_context(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLXEW_ARB_create_context) GLXEW_ARB_create_context = !_glewInit_GLX_ARB_create_context(); #endif /* GLX_ARB_create_context */ +#ifdef GLX_ARB_create_context_no_error + GLXEW_ARB_create_context_no_error = _glewSearchExtension("GLX_ARB_create_context_no_error", extStart, extEnd); +#endif /* GLX_ARB_create_context_no_error */ #ifdef GLX_ARB_create_context_profile GLXEW_ARB_create_context_profile = _glewSearchExtension("GLX_ARB_create_context_profile", extStart, extEnd); #endif /* GLX_ARB_create_context_profile */ @@ -13191,11 +22862,14 @@ GLenum glxewInit (GLXEW_CONTEXT_ARG_DEF_LIST) #endif /* GLX_ATI_pixel_format_float */ #ifdef GLX_ATI_render_texture GLXEW_ATI_render_texture = _glewSearchExtension("GLX_ATI_render_texture", extStart, extEnd); - if (glewExperimental || GLXEW_ATI_render_texture) GLXEW_ATI_render_texture = !_glewInit_GLX_ATI_render_texture(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLXEW_ATI_render_texture) GLXEW_ATI_render_texture = !_glewInit_GLX_ATI_render_texture(); #endif /* GLX_ATI_render_texture */ #ifdef GLX_EXT_buffer_age GLXEW_EXT_buffer_age = _glewSearchExtension("GLX_EXT_buffer_age", extStart, extEnd); #endif /* GLX_EXT_buffer_age */ +#ifdef GLX_EXT_context_priority + GLXEW_EXT_context_priority = _glewSearchExtension("GLX_EXT_context_priority", extStart, extEnd); +#endif /* GLX_EXT_context_priority */ #ifdef GLX_EXT_create_context_es2_profile GLXEW_EXT_create_context_es2_profile = _glewSearchExtension("GLX_EXT_create_context_es2_profile", extStart, extEnd); #endif /* GLX_EXT_create_context_es2_profile */ @@ -13210,8 +22884,14 @@ GLenum glxewInit (GLXEW_CONTEXT_ARG_DEF_LIST) #endif /* GLX_EXT_framebuffer_sRGB */ #ifdef GLX_EXT_import_context GLXEW_EXT_import_context = _glewSearchExtension("GLX_EXT_import_context", extStart, extEnd); - if (glewExperimental || GLXEW_EXT_import_context) GLXEW_EXT_import_context = !_glewInit_GLX_EXT_import_context(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLXEW_EXT_import_context) GLXEW_EXT_import_context = !_glewInit_GLX_EXT_import_context(); #endif /* GLX_EXT_import_context */ +#ifdef GLX_EXT_libglvnd + GLXEW_EXT_libglvnd = _glewSearchExtension("GLX_EXT_libglvnd", extStart, extEnd); +#endif /* GLX_EXT_libglvnd */ +#ifdef GLX_EXT_no_config_context + GLXEW_EXT_no_config_context = _glewSearchExtension("GLX_EXT_no_config_context", extStart, extEnd); +#endif /* GLX_EXT_no_config_context */ #ifdef GLX_EXT_scene_marker GLXEW_EXT_scene_marker = _glewSearchExtension("GLX_EXT_scene_marker", extStart, extEnd); #endif /* GLX_EXT_scene_marker */ @@ -13220,14 +22900,14 @@ GLenum glxewInit (GLXEW_CONTEXT_ARG_DEF_LIST) #endif /* GLX_EXT_stereo_tree */ #ifdef GLX_EXT_swap_control GLXEW_EXT_swap_control = _glewSearchExtension("GLX_EXT_swap_control", extStart, extEnd); - if (glewExperimental || GLXEW_EXT_swap_control) GLXEW_EXT_swap_control = !_glewInit_GLX_EXT_swap_control(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLXEW_EXT_swap_control) GLXEW_EXT_swap_control = !_glewInit_GLX_EXT_swap_control(); #endif /* GLX_EXT_swap_control */ #ifdef GLX_EXT_swap_control_tear GLXEW_EXT_swap_control_tear = _glewSearchExtension("GLX_EXT_swap_control_tear", extStart, extEnd); #endif /* GLX_EXT_swap_control_tear */ #ifdef GLX_EXT_texture_from_pixmap GLXEW_EXT_texture_from_pixmap = _glewSearchExtension("GLX_EXT_texture_from_pixmap", extStart, extEnd); - if (glewExperimental || GLXEW_EXT_texture_from_pixmap) GLXEW_EXT_texture_from_pixmap = !_glewInit_GLX_EXT_texture_from_pixmap(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLXEW_EXT_texture_from_pixmap) GLXEW_EXT_texture_from_pixmap = !_glewInit_GLX_EXT_texture_from_pixmap(); #endif /* GLX_EXT_texture_from_pixmap */ #ifdef GLX_EXT_visual_info GLXEW_EXT_visual_info = _glewSearchExtension("GLX_EXT_visual_info", extStart, extEnd); @@ -13240,76 +22920,82 @@ GLenum glxewInit (GLXEW_CONTEXT_ARG_DEF_LIST) #endif /* GLX_INTEL_swap_event */ #ifdef GLX_MESA_agp_offset GLXEW_MESA_agp_offset = _glewSearchExtension("GLX_MESA_agp_offset", extStart, extEnd); - if (glewExperimental || GLXEW_MESA_agp_offset) GLXEW_MESA_agp_offset = !_glewInit_GLX_MESA_agp_offset(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLXEW_MESA_agp_offset) GLXEW_MESA_agp_offset = !_glewInit_GLX_MESA_agp_offset(); #endif /* GLX_MESA_agp_offset */ #ifdef GLX_MESA_copy_sub_buffer GLXEW_MESA_copy_sub_buffer = _glewSearchExtension("GLX_MESA_copy_sub_buffer", extStart, extEnd); - if (glewExperimental || GLXEW_MESA_copy_sub_buffer) GLXEW_MESA_copy_sub_buffer = !_glewInit_GLX_MESA_copy_sub_buffer(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLXEW_MESA_copy_sub_buffer) GLXEW_MESA_copy_sub_buffer = !_glewInit_GLX_MESA_copy_sub_buffer(); #endif /* GLX_MESA_copy_sub_buffer */ #ifdef GLX_MESA_pixmap_colormap GLXEW_MESA_pixmap_colormap = _glewSearchExtension("GLX_MESA_pixmap_colormap", extStart, extEnd); - if (glewExperimental || GLXEW_MESA_pixmap_colormap) GLXEW_MESA_pixmap_colormap = !_glewInit_GLX_MESA_pixmap_colormap(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLXEW_MESA_pixmap_colormap) GLXEW_MESA_pixmap_colormap = !_glewInit_GLX_MESA_pixmap_colormap(); #endif /* GLX_MESA_pixmap_colormap */ #ifdef GLX_MESA_query_renderer GLXEW_MESA_query_renderer = _glewSearchExtension("GLX_MESA_query_renderer", extStart, extEnd); - if (glewExperimental || GLXEW_MESA_query_renderer) GLXEW_MESA_query_renderer = !_glewInit_GLX_MESA_query_renderer(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLXEW_MESA_query_renderer) GLXEW_MESA_query_renderer = !_glewInit_GLX_MESA_query_renderer(); #endif /* GLX_MESA_query_renderer */ #ifdef GLX_MESA_release_buffers GLXEW_MESA_release_buffers = _glewSearchExtension("GLX_MESA_release_buffers", extStart, extEnd); - if (glewExperimental || GLXEW_MESA_release_buffers) GLXEW_MESA_release_buffers = !_glewInit_GLX_MESA_release_buffers(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLXEW_MESA_release_buffers) GLXEW_MESA_release_buffers = !_glewInit_GLX_MESA_release_buffers(); #endif /* GLX_MESA_release_buffers */ #ifdef GLX_MESA_set_3dfx_mode GLXEW_MESA_set_3dfx_mode = _glewSearchExtension("GLX_MESA_set_3dfx_mode", extStart, extEnd); - if (glewExperimental || GLXEW_MESA_set_3dfx_mode) GLXEW_MESA_set_3dfx_mode = !_glewInit_GLX_MESA_set_3dfx_mode(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLXEW_MESA_set_3dfx_mode) GLXEW_MESA_set_3dfx_mode = !_glewInit_GLX_MESA_set_3dfx_mode(); #endif /* GLX_MESA_set_3dfx_mode */ #ifdef GLX_MESA_swap_control GLXEW_MESA_swap_control = _glewSearchExtension("GLX_MESA_swap_control", extStart, extEnd); - if (glewExperimental || GLXEW_MESA_swap_control) GLXEW_MESA_swap_control = !_glewInit_GLX_MESA_swap_control(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLXEW_MESA_swap_control) GLXEW_MESA_swap_control = !_glewInit_GLX_MESA_swap_control(); #endif /* GLX_MESA_swap_control */ #ifdef GLX_NV_copy_buffer GLXEW_NV_copy_buffer = _glewSearchExtension("GLX_NV_copy_buffer", extStart, extEnd); - if (glewExperimental || GLXEW_NV_copy_buffer) GLXEW_NV_copy_buffer = !_glewInit_GLX_NV_copy_buffer(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLXEW_NV_copy_buffer) GLXEW_NV_copy_buffer = !_glewInit_GLX_NV_copy_buffer(); #endif /* GLX_NV_copy_buffer */ #ifdef GLX_NV_copy_image GLXEW_NV_copy_image = _glewSearchExtension("GLX_NV_copy_image", extStart, extEnd); - if (glewExperimental || GLXEW_NV_copy_image) GLXEW_NV_copy_image = !_glewInit_GLX_NV_copy_image(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLXEW_NV_copy_image) GLXEW_NV_copy_image = !_glewInit_GLX_NV_copy_image(); #endif /* GLX_NV_copy_image */ #ifdef GLX_NV_delay_before_swap GLXEW_NV_delay_before_swap = _glewSearchExtension("GLX_NV_delay_before_swap", extStart, extEnd); - if (glewExperimental || GLXEW_NV_delay_before_swap) GLXEW_NV_delay_before_swap = !_glewInit_GLX_NV_delay_before_swap(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLXEW_NV_delay_before_swap) GLXEW_NV_delay_before_swap = !_glewInit_GLX_NV_delay_before_swap(); #endif /* GLX_NV_delay_before_swap */ #ifdef GLX_NV_float_buffer GLXEW_NV_float_buffer = _glewSearchExtension("GLX_NV_float_buffer", extStart, extEnd); #endif /* GLX_NV_float_buffer */ +#ifdef GLX_NV_multigpu_context + GLXEW_NV_multigpu_context = _glewSearchExtension("GLX_NV_multigpu_context", extStart, extEnd); +#endif /* GLX_NV_multigpu_context */ #ifdef GLX_NV_multisample_coverage GLXEW_NV_multisample_coverage = _glewSearchExtension("GLX_NV_multisample_coverage", extStart, extEnd); #endif /* GLX_NV_multisample_coverage */ #ifdef GLX_NV_present_video GLXEW_NV_present_video = _glewSearchExtension("GLX_NV_present_video", extStart, extEnd); - if (glewExperimental || GLXEW_NV_present_video) GLXEW_NV_present_video = !_glewInit_GLX_NV_present_video(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLXEW_NV_present_video) GLXEW_NV_present_video = !_glewInit_GLX_NV_present_video(); #endif /* GLX_NV_present_video */ +#ifdef GLX_NV_robustness_video_memory_purge + GLXEW_NV_robustness_video_memory_purge = _glewSearchExtension("GLX_NV_robustness_video_memory_purge", extStart, extEnd); +#endif /* GLX_NV_robustness_video_memory_purge */ #ifdef GLX_NV_swap_group GLXEW_NV_swap_group = _glewSearchExtension("GLX_NV_swap_group", extStart, extEnd); - if (glewExperimental || GLXEW_NV_swap_group) GLXEW_NV_swap_group = !_glewInit_GLX_NV_swap_group(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLXEW_NV_swap_group) GLXEW_NV_swap_group = !_glewInit_GLX_NV_swap_group(); #endif /* GLX_NV_swap_group */ #ifdef GLX_NV_vertex_array_range GLXEW_NV_vertex_array_range = _glewSearchExtension("GLX_NV_vertex_array_range", extStart, extEnd); - if (glewExperimental || GLXEW_NV_vertex_array_range) GLXEW_NV_vertex_array_range = !_glewInit_GLX_NV_vertex_array_range(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLXEW_NV_vertex_array_range) GLXEW_NV_vertex_array_range = !_glewInit_GLX_NV_vertex_array_range(); #endif /* GLX_NV_vertex_array_range */ #ifdef GLX_NV_video_capture GLXEW_NV_video_capture = _glewSearchExtension("GLX_NV_video_capture", extStart, extEnd); - if (glewExperimental || GLXEW_NV_video_capture) GLXEW_NV_video_capture = !_glewInit_GLX_NV_video_capture(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLXEW_NV_video_capture) GLXEW_NV_video_capture = !_glewInit_GLX_NV_video_capture(); #endif /* GLX_NV_video_capture */ #ifdef GLX_NV_video_out GLXEW_NV_video_out = _glewSearchExtension("GLX_NV_video_out", extStart, extEnd); - if (glewExperimental || GLXEW_NV_video_out) GLXEW_NV_video_out = !_glewInit_GLX_NV_video_out(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLXEW_NV_video_out) GLXEW_NV_video_out = !_glewInit_GLX_NV_video_out(); #endif /* GLX_NV_video_out */ #ifdef GLX_OML_swap_method GLXEW_OML_swap_method = _glewSearchExtension("GLX_OML_swap_method", extStart, extEnd); #endif /* GLX_OML_swap_method */ #ifdef GLX_OML_sync_control GLXEW_OML_sync_control = _glewSearchExtension("GLX_OML_sync_control", extStart, extEnd); - if (glewExperimental || GLXEW_OML_sync_control) GLXEW_OML_sync_control = !_glewInit_GLX_OML_sync_control(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLXEW_OML_sync_control) GLXEW_OML_sync_control = !_glewInit_GLX_OML_sync_control(); #endif /* GLX_OML_sync_control */ #ifdef GLX_SGIS_blended_overlay GLXEW_SGIS_blended_overlay = _glewSearchExtension("GLX_SGIS_blended_overlay", extStart, extEnd); @@ -13325,54 +23011,54 @@ GLenum glxewInit (GLXEW_CONTEXT_ARG_DEF_LIST) #endif /* GLX_SGIS_shared_multisample */ #ifdef GLX_SGIX_fbconfig GLXEW_SGIX_fbconfig = _glewSearchExtension("GLX_SGIX_fbconfig", extStart, extEnd); - if (glewExperimental || GLXEW_SGIX_fbconfig) GLXEW_SGIX_fbconfig = !_glewInit_GLX_SGIX_fbconfig(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLXEW_SGIX_fbconfig) GLXEW_SGIX_fbconfig = !_glewInit_GLX_SGIX_fbconfig(); #endif /* GLX_SGIX_fbconfig */ #ifdef GLX_SGIX_hyperpipe GLXEW_SGIX_hyperpipe = _glewSearchExtension("GLX_SGIX_hyperpipe", extStart, extEnd); - if (glewExperimental || GLXEW_SGIX_hyperpipe) GLXEW_SGIX_hyperpipe = !_glewInit_GLX_SGIX_hyperpipe(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLXEW_SGIX_hyperpipe) GLXEW_SGIX_hyperpipe = !_glewInit_GLX_SGIX_hyperpipe(); #endif /* GLX_SGIX_hyperpipe */ #ifdef GLX_SGIX_pbuffer GLXEW_SGIX_pbuffer = _glewSearchExtension("GLX_SGIX_pbuffer", extStart, extEnd); - if (glewExperimental || GLXEW_SGIX_pbuffer) GLXEW_SGIX_pbuffer = !_glewInit_GLX_SGIX_pbuffer(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLXEW_SGIX_pbuffer) GLXEW_SGIX_pbuffer = !_glewInit_GLX_SGIX_pbuffer(); #endif /* GLX_SGIX_pbuffer */ #ifdef GLX_SGIX_swap_barrier GLXEW_SGIX_swap_barrier = _glewSearchExtension("GLX_SGIX_swap_barrier", extStart, extEnd); - if (glewExperimental || GLXEW_SGIX_swap_barrier) GLXEW_SGIX_swap_barrier = !_glewInit_GLX_SGIX_swap_barrier(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLXEW_SGIX_swap_barrier) GLXEW_SGIX_swap_barrier = !_glewInit_GLX_SGIX_swap_barrier(); #endif /* GLX_SGIX_swap_barrier */ #ifdef GLX_SGIX_swap_group GLXEW_SGIX_swap_group = _glewSearchExtension("GLX_SGIX_swap_group", extStart, extEnd); - if (glewExperimental || GLXEW_SGIX_swap_group) GLXEW_SGIX_swap_group = !_glewInit_GLX_SGIX_swap_group(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLXEW_SGIX_swap_group) GLXEW_SGIX_swap_group = !_glewInit_GLX_SGIX_swap_group(); #endif /* GLX_SGIX_swap_group */ #ifdef GLX_SGIX_video_resize GLXEW_SGIX_video_resize = _glewSearchExtension("GLX_SGIX_video_resize", extStart, extEnd); - if (glewExperimental || GLXEW_SGIX_video_resize) GLXEW_SGIX_video_resize = !_glewInit_GLX_SGIX_video_resize(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLXEW_SGIX_video_resize) GLXEW_SGIX_video_resize = !_glewInit_GLX_SGIX_video_resize(); #endif /* GLX_SGIX_video_resize */ #ifdef GLX_SGIX_visual_select_group GLXEW_SGIX_visual_select_group = _glewSearchExtension("GLX_SGIX_visual_select_group", extStart, extEnd); #endif /* GLX_SGIX_visual_select_group */ #ifdef GLX_SGI_cushion GLXEW_SGI_cushion = _glewSearchExtension("GLX_SGI_cushion", extStart, extEnd); - if (glewExperimental || GLXEW_SGI_cushion) GLXEW_SGI_cushion = !_glewInit_GLX_SGI_cushion(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLXEW_SGI_cushion) GLXEW_SGI_cushion = !_glewInit_GLX_SGI_cushion(); #endif /* GLX_SGI_cushion */ #ifdef GLX_SGI_make_current_read GLXEW_SGI_make_current_read = _glewSearchExtension("GLX_SGI_make_current_read", extStart, extEnd); - if (glewExperimental || GLXEW_SGI_make_current_read) GLXEW_SGI_make_current_read = !_glewInit_GLX_SGI_make_current_read(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLXEW_SGI_make_current_read) GLXEW_SGI_make_current_read = !_glewInit_GLX_SGI_make_current_read(); #endif /* GLX_SGI_make_current_read */ #ifdef GLX_SGI_swap_control GLXEW_SGI_swap_control = _glewSearchExtension("GLX_SGI_swap_control", extStart, extEnd); - if (glewExperimental || GLXEW_SGI_swap_control) GLXEW_SGI_swap_control = !_glewInit_GLX_SGI_swap_control(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLXEW_SGI_swap_control) GLXEW_SGI_swap_control = !_glewInit_GLX_SGI_swap_control(); #endif /* GLX_SGI_swap_control */ #ifdef GLX_SGI_video_sync GLXEW_SGI_video_sync = _glewSearchExtension("GLX_SGI_video_sync", extStart, extEnd); - if (glewExperimental || GLXEW_SGI_video_sync) GLXEW_SGI_video_sync = !_glewInit_GLX_SGI_video_sync(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLXEW_SGI_video_sync) GLXEW_SGI_video_sync = !_glewInit_GLX_SGI_video_sync(); #endif /* GLX_SGI_video_sync */ #ifdef GLX_SUN_get_transparent_index GLXEW_SUN_get_transparent_index = _glewSearchExtension("GLX_SUN_get_transparent_index", extStart, extEnd); - if (glewExperimental || GLXEW_SUN_get_transparent_index) GLXEW_SUN_get_transparent_index = !_glewInit_GLX_SUN_get_transparent_index(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLXEW_SUN_get_transparent_index) GLXEW_SUN_get_transparent_index = !_glewInit_GLX_SUN_get_transparent_index(); #endif /* GLX_SUN_get_transparent_index */ #ifdef GLX_SUN_video_resize GLXEW_SUN_video_resize = _glewSearchExtension("GLX_SUN_video_resize", extStart, extEnd); - if (glewExperimental || GLXEW_SUN_video_resize) GLXEW_SUN_video_resize = !_glewInit_GLX_SUN_video_resize(GLEW_CONTEXT_ARG_VAR_INIT); + if (glewExperimental || GLXEW_SUN_video_resize) GLXEW_SUN_video_resize = !_glewInit_GLX_SUN_video_resize(); #endif /* GLX_SUN_video_resize */ return GLEW_OK; @@ -13401,9 +23087,9 @@ const GLubyte * GLEWAPIENTRY glewGetString (GLenum name) static const GLubyte* _glewString[] = { (const GLubyte*)NULL, - (const GLubyte*)"1.13.0", - (const GLubyte*)"1", - (const GLubyte*)"13", + (const GLubyte*)"2.2.0", + (const GLubyte*)"2", + (const GLubyte*)"2", (const GLubyte*)"0" }; const size_t max_string = sizeof(_glewString)/sizeof(*_glewString) - 1; @@ -13414,28 +23100,40 @@ const GLubyte * GLEWAPIENTRY glewGetString (GLenum name) GLboolean glewExperimental = GL_FALSE; -#if !defined(GLEW_MX) - GLenum GLEWAPIENTRY glewInit (void) { GLenum r; +#if defined(GLEW_EGL) + PFNEGLGETCURRENTDISPLAYPROC getCurrentDisplay = NULL; +#endif r = glewContextInit(); if ( r != 0 ) return r; -#if defined(_WIN32) +#if defined(GLEW_EGL) + getCurrentDisplay = (PFNEGLGETCURRENTDISPLAYPROC) glewGetProcAddress("eglGetCurrentDisplay"); + return eglewInit(getCurrentDisplay()); +#elif defined(GLEW_OSMESA) || defined(__ANDROID__) || defined(__native_client__) || defined(__HAIKU__) + return r; +#elif defined(_WIN32) return wglewInit(); -#elif !defined(__ANDROID__) && !defined(__native_client__) && !defined(__HAIKU__) && (!defined(__APPLE__) || defined(GLEW_APPLE_GLX)) /* _UNIX */ +#elif !defined(__APPLE__) || defined(GLEW_APPLE_GLX) /* _UNIX */ return glxewInit(); #else return r; #endif /* _WIN32 */ } -#endif /* !GLEW_MX */ -#ifdef GLEW_MX -GLboolean GLEWAPIENTRY glewContextIsSupported (const GLEWContext* ctx, const char* name) -#else -GLboolean GLEWAPIENTRY glewIsSupported (const char* name) +#if defined(_WIN32) && defined(GLEW_BUILD) && defined(__GNUC__) +/* GCC requires a DLL entry point even without any standard library included. */ +/* Types extracted from windows.h to avoid polluting the rest of the file. */ +int __stdcall DllMainCRTStartup(void* instance, unsigned reason, void* reserved) +{ + (void) instance; + (void) reason; + (void) reserved; + return 1; +} #endif +GLboolean GLEWAPIENTRY glewIsSupported (const char* name) { const GLubyte* pos = (const GLubyte*)name; GLuint len = _glewStrLen(pos); @@ -13564,6 +23262,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) ret = GLEW_VERSION_4_5; continue; } +#endif +#ifdef GL_VERSION_4_6 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"4_6", 3)) + { + ret = GLEW_VERSION_4_6; + continue; + } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"3DFX_", 5)) @@ -13599,6 +23304,20 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_AMD_compressed_3DC_texture + if (_glewStrSame3(&pos, &len, (const GLubyte*)"compressed_3DC_texture", 22)) + { + ret = GLEW_AMD_compressed_3DC_texture; + continue; + } +#endif +#ifdef GL_AMD_compressed_ATC_texture + if (_glewStrSame3(&pos, &len, (const GLubyte*)"compressed_ATC_texture", 22)) + { + ret = GLEW_AMD_compressed_ATC_texture; + continue; + } +#endif #ifdef GL_AMD_conservative_depth if (_glewStrSame3(&pos, &len, (const GLubyte*)"conservative_depth", 18)) { @@ -13627,6 +23346,20 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_AMD_framebuffer_multisample_advanced + if (_glewStrSame3(&pos, &len, (const GLubyte*)"framebuffer_multisample_advanced", 32)) + { + ret = GLEW_AMD_framebuffer_multisample_advanced; + continue; + } +#endif +#ifdef GL_AMD_framebuffer_sample_positions + if (_glewStrSame3(&pos, &len, (const GLubyte*)"framebuffer_sample_positions", 28)) + { + ret = GLEW_AMD_framebuffer_sample_positions; + continue; + } +#endif #ifdef GL_AMD_gcn_shader if (_glewStrSame3(&pos, &len, (const GLubyte*)"gcn_shader", 10)) { @@ -13634,6 +23367,27 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_AMD_gpu_shader_half_float + if (_glewStrSame3(&pos, &len, (const GLubyte*)"gpu_shader_half_float", 21)) + { + ret = GLEW_AMD_gpu_shader_half_float; + continue; + } +#endif +#ifdef GL_AMD_gpu_shader_half_float_fetch + if (_glewStrSame3(&pos, &len, (const GLubyte*)"gpu_shader_half_float_fetch", 27)) + { + ret = GLEW_AMD_gpu_shader_half_float_fetch; + continue; + } +#endif +#ifdef GL_AMD_gpu_shader_int16 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"gpu_shader_int16", 16)) + { + ret = GLEW_AMD_gpu_shader_int16; + continue; + } +#endif #ifdef GL_AMD_gpu_shader_int64 if (_glewStrSame3(&pos, &len, (const GLubyte*)"gpu_shader_int64", 16)) { @@ -13683,6 +23437,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_AMD_program_binary_Z400 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"program_binary_Z400", 19)) + { + ret = GLEW_AMD_program_binary_Z400; + continue; + } +#endif #ifdef GL_AMD_query_buffer_object if (_glewStrSame3(&pos, &len, (const GLubyte*)"query_buffer_object", 19)) { @@ -13711,6 +23472,27 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_AMD_shader_ballot + if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_ballot", 13)) + { + ret = GLEW_AMD_shader_ballot; + continue; + } +#endif +#ifdef GL_AMD_shader_explicit_vertex_parameter + if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_explicit_vertex_parameter", 32)) + { + ret = GLEW_AMD_shader_explicit_vertex_parameter; + continue; + } +#endif +#ifdef GL_AMD_shader_image_load_store_lod + if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_image_load_store_lod", 27)) + { + ret = GLEW_AMD_shader_image_load_store_lod; + continue; + } +#endif #ifdef GL_AMD_shader_stencil_export if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_stencil_export", 21)) { @@ -13746,6 +23528,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_AMD_texture_gather_bias_lod + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_gather_bias_lod", 23)) + { + ret = GLEW_AMD_texture_gather_bias_lod; + continue; + } +#endif #ifdef GL_AMD_texture_texture4 if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_texture4", 16)) { @@ -13787,6 +23576,16 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) ret = GLEW_AMD_vertex_shader_viewport_index; continue; } +#endif + } + if (_glewStrSame2(&pos, &len, (const GLubyte*)"ANDROID_", 8)) + { +#ifdef GL_ANDROID_extension_pack_es31a + if (_glewStrSame3(&pos, &len, (const GLubyte*)"extension_pack_es31a", 20)) + { + ret = GLEW_ANDROID_extension_pack_es31a; + continue; + } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"ANGLE_", 6)) @@ -13892,6 +23691,27 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_APPLE_clip_distance + if (_glewStrSame3(&pos, &len, (const GLubyte*)"clip_distance", 13)) + { + ret = GLEW_APPLE_clip_distance; + continue; + } +#endif +#ifdef GL_APPLE_color_buffer_packed_float + if (_glewStrSame3(&pos, &len, (const GLubyte*)"color_buffer_packed_float", 25)) + { + ret = GLEW_APPLE_color_buffer_packed_float; + continue; + } +#endif +#ifdef GL_APPLE_copy_texture_levels + if (_glewStrSame3(&pos, &len, (const GLubyte*)"copy_texture_levels", 19)) + { + ret = GLEW_APPLE_copy_texture_levels; + continue; + } +#endif #ifdef GL_APPLE_element_array if (_glewStrSame3(&pos, &len, (const GLubyte*)"element_array", 13)) { @@ -13920,6 +23740,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_APPLE_framebuffer_multisample + if (_glewStrSame3(&pos, &len, (const GLubyte*)"framebuffer_multisample", 23)) + { + ret = GLEW_APPLE_framebuffer_multisample; + continue; + } +#endif #ifdef GL_APPLE_object_purgeable if (_glewStrSame3(&pos, &len, (const GLubyte*)"object_purgeable", 16)) { @@ -13955,6 +23782,41 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_APPLE_sync + if (_glewStrSame3(&pos, &len, (const GLubyte*)"sync", 4)) + { + ret = GLEW_APPLE_sync; + continue; + } +#endif +#ifdef GL_APPLE_texture_2D_limited_npot + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_2D_limited_npot", 23)) + { + ret = GLEW_APPLE_texture_2D_limited_npot; + continue; + } +#endif +#ifdef GL_APPLE_texture_format_BGRA8888 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_format_BGRA8888", 23)) + { + ret = GLEW_APPLE_texture_format_BGRA8888; + continue; + } +#endif +#ifdef GL_APPLE_texture_max_level + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_max_level", 17)) + { + ret = GLEW_APPLE_texture_max_level; + continue; + } +#endif +#ifdef GL_APPLE_texture_packed_float + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_packed_float", 20)) + { + ret = GLEW_APPLE_texture_packed_float; + continue; + } +#endif #ifdef GL_APPLE_texture_range if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_range", 13)) { @@ -14343,6 +24205,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_ARB_gl_spirv + if (_glewStrSame3(&pos, &len, (const GLubyte*)"gl_spirv", 8)) + { + ret = GLEW_ARB_gl_spirv; + continue; + } +#endif #ifdef GL_ARB_gpu_shader5 if (_glewStrSame3(&pos, &len, (const GLubyte*)"gpu_shader5", 11)) { @@ -14518,6 +24387,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_ARB_polygon_offset_clamp + if (_glewStrSame3(&pos, &len, (const GLubyte*)"polygon_offset_clamp", 20)) + { + ret = GLEW_ARB_polygon_offset_clamp; + continue; + } +#endif #ifdef GL_ARB_post_depth_coverage if (_glewStrSame3(&pos, &len, (const GLubyte*)"post_depth_coverage", 19)) { @@ -14805,6 +24681,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_ARB_spirv_extensions + if (_glewStrSame3(&pos, &len, (const GLubyte*)"spirv_extensions", 16)) + { + ret = GLEW_ARB_spirv_extensions; + continue; + } +#endif #ifdef GL_ARB_stencil_texturing if (_glewStrSame3(&pos, &len, (const GLubyte*)"stencil_texturing", 17)) { @@ -14924,6 +24807,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_ARB_texture_filter_anisotropic + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_filter_anisotropic", 26)) + { + ret = GLEW_ARB_texture_filter_anisotropic; + continue; + } +#endif #ifdef GL_ARB_texture_filter_minmax if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_filter_minmax", 21)) { @@ -15175,6 +25065,51 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) ret = GLEW_ARB_window_pos; continue; } +#endif + } + if (_glewStrSame2(&pos, &len, (const GLubyte*)"ARM_", 4)) + { +#ifdef GL_ARM_mali_program_binary + if (_glewStrSame3(&pos, &len, (const GLubyte*)"mali_program_binary", 19)) + { + ret = GLEW_ARM_mali_program_binary; + continue; + } +#endif +#ifdef GL_ARM_mali_shader_binary + if (_glewStrSame3(&pos, &len, (const GLubyte*)"mali_shader_binary", 18)) + { + ret = GLEW_ARM_mali_shader_binary; + continue; + } +#endif +#ifdef GL_ARM_rgba8 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"rgba8", 5)) + { + ret = GLEW_ARM_rgba8; + continue; + } +#endif +#ifdef GL_ARM_shader_framebuffer_fetch + if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_framebuffer_fetch", 24)) + { + ret = GLEW_ARM_shader_framebuffer_fetch; + continue; + } +#endif +#ifdef GL_ARM_shader_framebuffer_fetch_depth_stencil + if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_framebuffer_fetch_depth_stencil", 38)) + { + ret = GLEW_ARM_shader_framebuffer_fetch_depth_stencil; + continue; + } +#endif +#ifdef GL_ARM_texture_unnormalized_coordinates + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_unnormalized_coordinates", 32)) + { + ret = GLEW_ARM_texture_unnormalized_coordinates; + continue; + } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"ATIX_", 5)) @@ -15328,6 +25263,23 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) ret = GLEW_ATI_vertex_streams; continue; } +#endif + } + if (_glewStrSame2(&pos, &len, (const GLubyte*)"DMP_", 4)) + { +#ifdef GL_DMP_program_binary + if (_glewStrSame3(&pos, &len, (const GLubyte*)"program_binary", 14)) + { + ret = GLEW_DMP_program_binary; + continue; + } +#endif +#ifdef GL_DMP_shader_binary + if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_binary", 13)) + { + ret = GLEW_DMP_shader_binary; + continue; + } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"EXT_", 4)) @@ -15346,6 +25298,41 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_EGL_image_array + if (_glewStrSame3(&pos, &len, (const GLubyte*)"EGL_image_array", 15)) + { + ret = GLEW_EXT_EGL_image_array; + continue; + } +#endif +#ifdef GL_EXT_EGL_image_external_wrap_modes + if (_glewStrSame3(&pos, &len, (const GLubyte*)"EGL_image_external_wrap_modes", 29)) + { + ret = GLEW_EXT_EGL_image_external_wrap_modes; + continue; + } +#endif +#ifdef GL_EXT_EGL_image_storage + if (_glewStrSame3(&pos, &len, (const GLubyte*)"EGL_image_storage", 17)) + { + ret = GLEW_EXT_EGL_image_storage; + continue; + } +#endif +#ifdef GL_EXT_EGL_sync + if (_glewStrSame3(&pos, &len, (const GLubyte*)"EGL_sync", 8)) + { + ret = GLEW_EXT_EGL_sync; + continue; + } +#endif +#ifdef GL_EXT_YUV_target + if (_glewStrSame3(&pos, &len, (const GLubyte*)"YUV_target", 10)) + { + ret = GLEW_EXT_YUV_target; + continue; + } +#endif #ifdef GL_EXT_abgr if (_glewStrSame3(&pos, &len, (const GLubyte*)"abgr", 4)) { @@ -15353,6 +25340,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_base_instance + if (_glewStrSame3(&pos, &len, (const GLubyte*)"base_instance", 13)) + { + ret = GLEW_EXT_base_instance; + continue; + } +#endif #ifdef GL_EXT_bgra if (_glewStrSame3(&pos, &len, (const GLubyte*)"bgra", 4)) { @@ -15381,6 +25375,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_blend_func_extended + if (_glewStrSame3(&pos, &len, (const GLubyte*)"blend_func_extended", 19)) + { + ret = GLEW_EXT_blend_func_extended; + continue; + } +#endif #ifdef GL_EXT_blend_func_separate if (_glewStrSame3(&pos, &len, (const GLubyte*)"blend_func_separate", 19)) { @@ -15409,6 +25410,34 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_buffer_storage + if (_glewStrSame3(&pos, &len, (const GLubyte*)"buffer_storage", 14)) + { + ret = GLEW_EXT_buffer_storage; + continue; + } +#endif +#ifdef GL_EXT_clear_texture + if (_glewStrSame3(&pos, &len, (const GLubyte*)"clear_texture", 13)) + { + ret = GLEW_EXT_clear_texture; + continue; + } +#endif +#ifdef GL_EXT_clip_control + if (_glewStrSame3(&pos, &len, (const GLubyte*)"clip_control", 12)) + { + ret = GLEW_EXT_clip_control; + continue; + } +#endif +#ifdef GL_EXT_clip_cull_distance + if (_glewStrSame3(&pos, &len, (const GLubyte*)"clip_cull_distance", 18)) + { + ret = GLEW_EXT_clip_cull_distance; + continue; + } +#endif #ifdef GL_EXT_clip_volume_hint if (_glewStrSame3(&pos, &len, (const GLubyte*)"clip_volume_hint", 16)) { @@ -15423,6 +25452,20 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_color_buffer_float + if (_glewStrSame3(&pos, &len, (const GLubyte*)"color_buffer_float", 18)) + { + ret = GLEW_EXT_color_buffer_float; + continue; + } +#endif +#ifdef GL_EXT_color_buffer_half_float + if (_glewStrSame3(&pos, &len, (const GLubyte*)"color_buffer_half_float", 23)) + { + ret = GLEW_EXT_color_buffer_half_float; + continue; + } +#endif #ifdef GL_EXT_color_subtable if (_glewStrSame3(&pos, &len, (const GLubyte*)"color_subtable", 14)) { @@ -15437,6 +25480,20 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_compressed_ETC1_RGB8_sub_texture + if (_glewStrSame3(&pos, &len, (const GLubyte*)"compressed_ETC1_RGB8_sub_texture", 32)) + { + ret = GLEW_EXT_compressed_ETC1_RGB8_sub_texture; + continue; + } +#endif +#ifdef GL_EXT_conservative_depth + if (_glewStrSame3(&pos, &len, (const GLubyte*)"conservative_depth", 18)) + { + ret = GLEW_EXT_conservative_depth; + continue; + } +#endif #ifdef GL_EXT_convolution if (_glewStrSame3(&pos, &len, (const GLubyte*)"convolution", 11)) { @@ -15451,6 +25508,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_copy_image + if (_glewStrSame3(&pos, &len, (const GLubyte*)"copy_image", 10)) + { + ret = GLEW_EXT_copy_image; + continue; + } +#endif #ifdef GL_EXT_copy_texture if (_glewStrSame3(&pos, &len, (const GLubyte*)"copy_texture", 12)) { @@ -15486,6 +25550,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_depth_clamp + if (_glewStrSame3(&pos, &len, (const GLubyte*)"depth_clamp", 11)) + { + ret = GLEW_EXT_depth_clamp; + continue; + } +#endif #ifdef GL_EXT_direct_state_access if (_glewStrSame3(&pos, &len, (const GLubyte*)"direct_state_access", 19)) { @@ -15493,6 +25564,27 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_discard_framebuffer + if (_glewStrSame3(&pos, &len, (const GLubyte*)"discard_framebuffer", 19)) + { + ret = GLEW_EXT_discard_framebuffer; + continue; + } +#endif +#ifdef GL_EXT_disjoint_timer_query + if (_glewStrSame3(&pos, &len, (const GLubyte*)"disjoint_timer_query", 20)) + { + ret = GLEW_EXT_disjoint_timer_query; + continue; + } +#endif +#ifdef GL_EXT_draw_buffers + if (_glewStrSame3(&pos, &len, (const GLubyte*)"draw_buffers", 12)) + { + ret = GLEW_EXT_draw_buffers; + continue; + } +#endif #ifdef GL_EXT_draw_buffers2 if (_glewStrSame3(&pos, &len, (const GLubyte*)"draw_buffers2", 13)) { @@ -15500,6 +25592,20 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_draw_buffers_indexed + if (_glewStrSame3(&pos, &len, (const GLubyte*)"draw_buffers_indexed", 20)) + { + ret = GLEW_EXT_draw_buffers_indexed; + continue; + } +#endif +#ifdef GL_EXT_draw_elements_base_vertex + if (_glewStrSame3(&pos, &len, (const GLubyte*)"draw_elements_base_vertex", 25)) + { + ret = GLEW_EXT_draw_elements_base_vertex; + continue; + } +#endif #ifdef GL_EXT_draw_instanced if (_glewStrSame3(&pos, &len, (const GLubyte*)"draw_instanced", 14)) { @@ -15514,6 +25620,27 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_draw_transform_feedback + if (_glewStrSame3(&pos, &len, (const GLubyte*)"draw_transform_feedback", 23)) + { + ret = GLEW_EXT_draw_transform_feedback; + continue; + } +#endif +#ifdef GL_EXT_external_buffer + if (_glewStrSame3(&pos, &len, (const GLubyte*)"external_buffer", 15)) + { + ret = GLEW_EXT_external_buffer; + continue; + } +#endif +#ifdef GL_EXT_float_blend + if (_glewStrSame3(&pos, &len, (const GLubyte*)"float_blend", 11)) + { + ret = GLEW_EXT_float_blend; + continue; + } +#endif #ifdef GL_EXT_fog_coord if (_glewStrSame3(&pos, &len, (const GLubyte*)"fog_coord", 9)) { @@ -15521,6 +25648,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_frag_depth + if (_glewStrSame3(&pos, &len, (const GLubyte*)"frag_depth", 10)) + { + ret = GLEW_EXT_frag_depth; + continue; + } +#endif #ifdef GL_EXT_fragment_lighting if (_glewStrSame3(&pos, &len, (const GLubyte*)"fragment_lighting", 17)) { @@ -15563,6 +25697,20 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_geometry_point_size + if (_glewStrSame3(&pos, &len, (const GLubyte*)"geometry_point_size", 19)) + { + ret = GLEW_EXT_geometry_point_size; + continue; + } +#endif +#ifdef GL_EXT_geometry_shader + if (_glewStrSame3(&pos, &len, (const GLubyte*)"geometry_shader", 15)) + { + ret = GLEW_EXT_geometry_shader; + continue; + } +#endif #ifdef GL_EXT_geometry_shader4 if (_glewStrSame3(&pos, &len, (const GLubyte*)"geometry_shader4", 16)) { @@ -15584,6 +25732,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_gpu_shader5 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"gpu_shader5", 11)) + { + ret = GLEW_EXT_gpu_shader5; + continue; + } +#endif #ifdef GL_EXT_histogram if (_glewStrSame3(&pos, &len, (const GLubyte*)"histogram", 9)) { @@ -15619,6 +25774,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_instanced_arrays + if (_glewStrSame3(&pos, &len, (const GLubyte*)"instanced_arrays", 16)) + { + ret = GLEW_EXT_instanced_arrays; + continue; + } +#endif #ifdef GL_EXT_light_texture if (_glewStrSame3(&pos, &len, (const GLubyte*)"light_texture", 13)) { @@ -15626,6 +25788,34 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_map_buffer_range + if (_glewStrSame3(&pos, &len, (const GLubyte*)"map_buffer_range", 16)) + { + ret = GLEW_EXT_map_buffer_range; + continue; + } +#endif +#ifdef GL_EXT_memory_object + if (_glewStrSame3(&pos, &len, (const GLubyte*)"memory_object", 13)) + { + ret = GLEW_EXT_memory_object; + continue; + } +#endif +#ifdef GL_EXT_memory_object_fd + if (_glewStrSame3(&pos, &len, (const GLubyte*)"memory_object_fd", 16)) + { + ret = GLEW_EXT_memory_object_fd; + continue; + } +#endif +#ifdef GL_EXT_memory_object_win32 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"memory_object_win32", 19)) + { + ret = GLEW_EXT_memory_object_win32; + continue; + } +#endif #ifdef GL_EXT_misc_attribute if (_glewStrSame3(&pos, &len, (const GLubyte*)"misc_attribute", 14)) { @@ -15640,6 +25830,20 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_multi_draw_indirect + if (_glewStrSame3(&pos, &len, (const GLubyte*)"multi_draw_indirect", 19)) + { + ret = GLEW_EXT_multi_draw_indirect; + continue; + } +#endif +#ifdef GL_EXT_multiple_textures + if (_glewStrSame3(&pos, &len, (const GLubyte*)"multiple_textures", 17)) + { + ret = GLEW_EXT_multiple_textures; + continue; + } +#endif #ifdef GL_EXT_multisample if (_glewStrSame3(&pos, &len, (const GLubyte*)"multisample", 11)) { @@ -15647,6 +25851,62 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_multisample_compatibility + if (_glewStrSame3(&pos, &len, (const GLubyte*)"multisample_compatibility", 25)) + { + ret = GLEW_EXT_multisample_compatibility; + continue; + } +#endif +#ifdef GL_EXT_multisampled_render_to_texture + if (_glewStrSame3(&pos, &len, (const GLubyte*)"multisampled_render_to_texture", 30)) + { + ret = GLEW_EXT_multisampled_render_to_texture; + continue; + } +#endif +#ifdef GL_EXT_multisampled_render_to_texture2 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"multisampled_render_to_texture2", 31)) + { + ret = GLEW_EXT_multisampled_render_to_texture2; + continue; + } +#endif +#ifdef GL_EXT_multiview_draw_buffers + if (_glewStrSame3(&pos, &len, (const GLubyte*)"multiview_draw_buffers", 22)) + { + ret = GLEW_EXT_multiview_draw_buffers; + continue; + } +#endif +#ifdef GL_EXT_multiview_tessellation_geometry_shader + if (_glewStrSame3(&pos, &len, (const GLubyte*)"multiview_tessellation_geometry_shader", 38)) + { + ret = GLEW_EXT_multiview_tessellation_geometry_shader; + continue; + } +#endif +#ifdef GL_EXT_multiview_texture_multisample + if (_glewStrSame3(&pos, &len, (const GLubyte*)"multiview_texture_multisample", 29)) + { + ret = GLEW_EXT_multiview_texture_multisample; + continue; + } +#endif +#ifdef GL_EXT_multiview_timer_query + if (_glewStrSame3(&pos, &len, (const GLubyte*)"multiview_timer_query", 21)) + { + ret = GLEW_EXT_multiview_timer_query; + continue; + } +#endif +#ifdef GL_EXT_occlusion_query_boolean + if (_glewStrSame3(&pos, &len, (const GLubyte*)"occlusion_query_boolean", 23)) + { + ret = GLEW_EXT_occlusion_query_boolean; + continue; + } +#endif #ifdef GL_EXT_packed_depth_stencil if (_glewStrSame3(&pos, &len, (const GLubyte*)"packed_depth_stencil", 20)) { @@ -15724,6 +25984,20 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_primitive_bounding_box + if (_glewStrSame3(&pos, &len, (const GLubyte*)"primitive_bounding_box", 22)) + { + ret = GLEW_EXT_primitive_bounding_box; + continue; + } +#endif +#ifdef GL_EXT_protected_textures + if (_glewStrSame3(&pos, &len, (const GLubyte*)"protected_textures", 18)) + { + ret = GLEW_EXT_protected_textures; + continue; + } +#endif #ifdef GL_EXT_provoking_vertex if (_glewStrSame3(&pos, &len, (const GLubyte*)"provoking_vertex", 16)) { @@ -15731,6 +26005,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_pvrtc_sRGB + if (_glewStrSame3(&pos, &len, (const GLubyte*)"pvrtc_sRGB", 10)) + { + ret = GLEW_EXT_pvrtc_sRGB; + continue; + } +#endif #ifdef GL_EXT_raster_multisample if (_glewStrSame3(&pos, &len, (const GLubyte*)"raster_multisample", 18)) { @@ -15738,6 +26019,20 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_read_format_bgra + if (_glewStrSame3(&pos, &len, (const GLubyte*)"read_format_bgra", 16)) + { + ret = GLEW_EXT_read_format_bgra; + continue; + } +#endif +#ifdef GL_EXT_render_snorm + if (_glewStrSame3(&pos, &len, (const GLubyte*)"render_snorm", 12)) + { + ret = GLEW_EXT_render_snorm; + continue; + } +#endif #ifdef GL_EXT_rescale_normal if (_glewStrSame3(&pos, &len, (const GLubyte*)"rescale_normal", 14)) { @@ -15745,6 +26040,27 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_robustness + if (_glewStrSame3(&pos, &len, (const GLubyte*)"robustness", 10)) + { + ret = GLEW_EXT_robustness; + continue; + } +#endif +#ifdef GL_EXT_sRGB + if (_glewStrSame3(&pos, &len, (const GLubyte*)"sRGB", 4)) + { + ret = GLEW_EXT_sRGB; + continue; + } +#endif +#ifdef GL_EXT_sRGB_write_control + if (_glewStrSame3(&pos, &len, (const GLubyte*)"sRGB_write_control", 18)) + { + ret = GLEW_EXT_sRGB_write_control; + continue; + } +#endif #ifdef GL_EXT_scene_marker if (_glewStrSame3(&pos, &len, (const GLubyte*)"scene_marker", 12)) { @@ -15759,6 +26075,27 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_semaphore + if (_glewStrSame3(&pos, &len, (const GLubyte*)"semaphore", 9)) + { + ret = GLEW_EXT_semaphore; + continue; + } +#endif +#ifdef GL_EXT_semaphore_fd + if (_glewStrSame3(&pos, &len, (const GLubyte*)"semaphore_fd", 12)) + { + ret = GLEW_EXT_semaphore_fd; + continue; + } +#endif +#ifdef GL_EXT_semaphore_win32 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"semaphore_win32", 15)) + { + ret = GLEW_EXT_semaphore_win32; + continue; + } +#endif #ifdef GL_EXT_separate_shader_objects if (_glewStrSame3(&pos, &len, (const GLubyte*)"separate_shader_objects", 23)) { @@ -15773,6 +26110,27 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_shader_framebuffer_fetch + if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_framebuffer_fetch", 24)) + { + ret = GLEW_EXT_shader_framebuffer_fetch; + continue; + } +#endif +#ifdef GL_EXT_shader_framebuffer_fetch_non_coherent + if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_framebuffer_fetch_non_coherent", 37)) + { + ret = GLEW_EXT_shader_framebuffer_fetch_non_coherent; + continue; + } +#endif +#ifdef GL_EXT_shader_group_vote + if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_group_vote", 17)) + { + ret = GLEW_EXT_shader_group_vote; + continue; + } +#endif #ifdef GL_EXT_shader_image_load_formatted if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_image_load_formatted", 27)) { @@ -15787,6 +26145,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_shader_implicit_conversions + if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_implicit_conversions", 27)) + { + ret = GLEW_EXT_shader_implicit_conversions; + continue; + } +#endif #ifdef GL_EXT_shader_integer_mix if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_integer_mix", 18)) { @@ -15794,6 +26159,41 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_shader_io_blocks + if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_io_blocks", 16)) + { + ret = GLEW_EXT_shader_io_blocks; + continue; + } +#endif +#ifdef GL_EXT_shader_non_constant_global_initializers + if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_non_constant_global_initializers", 39)) + { + ret = GLEW_EXT_shader_non_constant_global_initializers; + continue; + } +#endif +#ifdef GL_EXT_shader_pixel_local_storage + if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_pixel_local_storage", 26)) + { + ret = GLEW_EXT_shader_pixel_local_storage; + continue; + } +#endif +#ifdef GL_EXT_shader_pixel_local_storage2 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_pixel_local_storage2", 27)) + { + ret = GLEW_EXT_shader_pixel_local_storage2; + continue; + } +#endif +#ifdef GL_EXT_shader_texture_lod + if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_texture_lod", 18)) + { + ret = GLEW_EXT_shader_texture_lod; + continue; + } +#endif #ifdef GL_EXT_shadow_funcs if (_glewStrSame3(&pos, &len, (const GLubyte*)"shadow_funcs", 12)) { @@ -15801,6 +26201,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_shadow_samplers + if (_glewStrSame3(&pos, &len, (const GLubyte*)"shadow_samplers", 15)) + { + ret = GLEW_EXT_shadow_samplers; + continue; + } +#endif #ifdef GL_EXT_shared_texture_palette if (_glewStrSame3(&pos, &len, (const GLubyte*)"shared_texture_palette", 22)) { @@ -15808,6 +26215,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_sparse_texture + if (_glewStrSame3(&pos, &len, (const GLubyte*)"sparse_texture", 14)) + { + ret = GLEW_EXT_sparse_texture; + continue; + } +#endif #ifdef GL_EXT_sparse_texture2 if (_glewStrSame3(&pos, &len, (const GLubyte*)"sparse_texture2", 15)) { @@ -15815,6 +26229,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_static_vertex_array + if (_glewStrSame3(&pos, &len, (const GLubyte*)"static_vertex_array", 19)) + { + ret = GLEW_EXT_static_vertex_array; + continue; + } +#endif #ifdef GL_EXT_stencil_clear_tag if (_glewStrSame3(&pos, &len, (const GLubyte*)"stencil_clear_tag", 17)) { @@ -15843,6 +26264,20 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_tessellation_point_size + if (_glewStrSame3(&pos, &len, (const GLubyte*)"tessellation_point_size", 23)) + { + ret = GLEW_EXT_tessellation_point_size; + continue; + } +#endif +#ifdef GL_EXT_tessellation_shader + if (_glewStrSame3(&pos, &len, (const GLubyte*)"tessellation_shader", 19)) + { + ret = GLEW_EXT_tessellation_shader; + continue; + } +#endif #ifdef GL_EXT_texture if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture", 7)) { @@ -15864,6 +26299,20 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_texture_border_clamp + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_border_clamp", 20)) + { + ret = GLEW_EXT_texture_border_clamp; + continue; + } +#endif +#ifdef GL_EXT_texture_buffer + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_buffer", 14)) + { + ret = GLEW_EXT_texture_buffer; + continue; + } +#endif #ifdef GL_EXT_texture_buffer_object if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_buffer_object", 21)) { @@ -15871,6 +26320,27 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_texture_compression_astc_decode_mode + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_compression_astc_decode_mode", 36)) + { + ret = GLEW_EXT_texture_compression_astc_decode_mode; + continue; + } +#endif +#ifdef GL_EXT_texture_compression_astc_decode_mode_rgb9e5 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_compression_astc_decode_mode_rgb9e5", 43)) + { + ret = GLEW_EXT_texture_compression_astc_decode_mode_rgb9e5; + continue; + } +#endif +#ifdef GL_EXT_texture_compression_bptc + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_compression_bptc", 24)) + { + ret = GLEW_EXT_texture_compression_bptc; + continue; + } +#endif #ifdef GL_EXT_texture_compression_dxt1 if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_compression_dxt1", 24)) { @@ -15899,6 +26369,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_texture_compression_s3tc_srgb + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_compression_s3tc_srgb", 29)) + { + ret = GLEW_EXT_texture_compression_s3tc_srgb; + continue; + } +#endif #ifdef GL_EXT_texture_cube_map if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_cube_map", 16)) { @@ -15906,6 +26383,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_texture_cube_map_array + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_cube_map_array", 22)) + { + ret = GLEW_EXT_texture_cube_map_array; + continue; + } +#endif #ifdef GL_EXT_texture_edge_clamp if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_edge_clamp", 18)) { @@ -15955,6 +26439,20 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_texture_format_BGRA8888 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_format_BGRA8888", 23)) + { + ret = GLEW_EXT_texture_format_BGRA8888; + continue; + } +#endif +#ifdef GL_EXT_texture_format_sRGB_override + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_format_sRGB_override", 28)) + { + ret = GLEW_EXT_texture_format_sRGB_override; + continue; + } +#endif #ifdef GL_EXT_texture_integer if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_integer", 15)) { @@ -15976,6 +26474,20 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_texture_mirror_clamp_to_edge + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_mirror_clamp_to_edge", 28)) + { + ret = GLEW_EXT_texture_mirror_clamp_to_edge; + continue; + } +#endif +#ifdef GL_EXT_texture_norm16 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_norm16", 14)) + { + ret = GLEW_EXT_texture_norm16; + continue; + } +#endif #ifdef GL_EXT_texture_object if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_object", 14)) { @@ -15990,6 +26502,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_texture_query_lod + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_query_lod", 17)) + { + ret = GLEW_EXT_texture_query_lod; + continue; + } +#endif #ifdef GL_EXT_texture_rectangle if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_rectangle", 17)) { @@ -15997,6 +26516,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_texture_rg + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_rg", 10)) + { + ret = GLEW_EXT_texture_rg; + continue; + } +#endif #ifdef GL_EXT_texture_sRGB if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_sRGB", 12)) { @@ -16004,6 +26530,20 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_texture_sRGB_R8 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_sRGB_R8", 15)) + { + ret = GLEW_EXT_texture_sRGB_R8; + continue; + } +#endif +#ifdef GL_EXT_texture_sRGB_RG8 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_sRGB_RG8", 16)) + { + ret = GLEW_EXT_texture_sRGB_RG8; + continue; + } +#endif #ifdef GL_EXT_texture_sRGB_decode if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_sRGB_decode", 19)) { @@ -16011,6 +26551,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_texture_shadow_lod + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_shadow_lod", 18)) + { + ret = GLEW_EXT_texture_shadow_lod; + continue; + } +#endif #ifdef GL_EXT_texture_shared_exponent if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_shared_exponent", 23)) { @@ -16025,6 +26572,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_texture_storage + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_storage", 15)) + { + ret = GLEW_EXT_texture_storage; + continue; + } +#endif #ifdef GL_EXT_texture_swizzle if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_swizzle", 15)) { @@ -16032,6 +26586,20 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_texture_type_2_10_10_10_REV + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_type_2_10_10_10_REV", 27)) + { + ret = GLEW_EXT_texture_type_2_10_10_10_REV; + continue; + } +#endif +#ifdef GL_EXT_texture_view + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_view", 12)) + { + ret = GLEW_EXT_texture_view; + continue; + } +#endif #ifdef GL_EXT_timer_query if (_glewStrSame3(&pos, &len, (const GLubyte*)"timer_query", 11)) { @@ -16046,6 +26614,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_unpack_subimage + if (_glewStrSame3(&pos, &len, (const GLubyte*)"unpack_subimage", 15)) + { + ret = GLEW_EXT_unpack_subimage; + continue; + } +#endif #ifdef GL_EXT_vertex_array if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_array", 12)) { @@ -16060,6 +26635,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_vertex_array_setXXX + if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_array_setXXX", 19)) + { + ret = GLEW_EXT_vertex_array_setXXX; + continue; + } +#endif #ifdef GL_EXT_vertex_attrib_64bit if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_attrib_64bit", 19)) { @@ -16081,12 +26663,36 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_EXT_win32_keyed_mutex + if (_glewStrSame3(&pos, &len, (const GLubyte*)"win32_keyed_mutex", 17)) + { + ret = GLEW_EXT_win32_keyed_mutex; + continue; + } +#endif +#ifdef GL_EXT_window_rectangles + if (_glewStrSame3(&pos, &len, (const GLubyte*)"window_rectangles", 17)) + { + ret = GLEW_EXT_window_rectangles; + continue; + } +#endif #ifdef GL_EXT_x11_sync_object if (_glewStrSame3(&pos, &len, (const GLubyte*)"x11_sync_object", 15)) { ret = GLEW_EXT_x11_sync_object; continue; } +#endif + } + if (_glewStrSame2(&pos, &len, (const GLubyte*)"FJ_", 3)) + { +#ifdef GL_FJ_shader_binary_GCCSO + if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_binary_GCCSO", 19)) + { + ret = GLEW_FJ_shader_binary_GCCSO; + continue; + } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"GREMEDY_", 8)) @@ -16180,6 +26786,79 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) ret = GLEW_IBM_vertex_array_lists; continue; } +#endif + } + if (_glewStrSame2(&pos, &len, (const GLubyte*)"IMG_", 4)) + { +#ifdef GL_IMG_bindless_texture + if (_glewStrSame3(&pos, &len, (const GLubyte*)"bindless_texture", 16)) + { + ret = GLEW_IMG_bindless_texture; + continue; + } +#endif +#ifdef GL_IMG_framebuffer_downsample + if (_glewStrSame3(&pos, &len, (const GLubyte*)"framebuffer_downsample", 22)) + { + ret = GLEW_IMG_framebuffer_downsample; + continue; + } +#endif +#ifdef GL_IMG_multisampled_render_to_texture + if (_glewStrSame3(&pos, &len, (const GLubyte*)"multisampled_render_to_texture", 30)) + { + ret = GLEW_IMG_multisampled_render_to_texture; + continue; + } +#endif +#ifdef GL_IMG_program_binary + if (_glewStrSame3(&pos, &len, (const GLubyte*)"program_binary", 14)) + { + ret = GLEW_IMG_program_binary; + continue; + } +#endif +#ifdef GL_IMG_read_format + if (_glewStrSame3(&pos, &len, (const GLubyte*)"read_format", 11)) + { + ret = GLEW_IMG_read_format; + continue; + } +#endif +#ifdef GL_IMG_shader_binary + if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_binary", 13)) + { + ret = GLEW_IMG_shader_binary; + continue; + } +#endif +#ifdef GL_IMG_texture_compression_pvrtc + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_compression_pvrtc", 25)) + { + ret = GLEW_IMG_texture_compression_pvrtc; + continue; + } +#endif +#ifdef GL_IMG_texture_compression_pvrtc2 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_compression_pvrtc2", 26)) + { + ret = GLEW_IMG_texture_compression_pvrtc2; + continue; + } +#endif +#ifdef GL_IMG_texture_env_enhanced_fixed_function + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_env_enhanced_fixed_function", 35)) + { + ret = GLEW_IMG_texture_env_enhanced_fixed_function; + continue; + } +#endif +#ifdef GL_IMG_texture_filter_cubic + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_filter_cubic", 20)) + { + ret = GLEW_IMG_texture_filter_cubic; + continue; + } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"INGR_", 5)) @@ -16201,6 +26880,20 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) } if (_glewStrSame2(&pos, &len, (const GLubyte*)"INTEL_", 6)) { +#ifdef GL_INTEL_blackhole_render + if (_glewStrSame3(&pos, &len, (const GLubyte*)"blackhole_render", 16)) + { + ret = GLEW_INTEL_blackhole_render; + continue; + } +#endif +#ifdef GL_INTEL_conservative_rasterization + if (_glewStrSame3(&pos, &len, (const GLubyte*)"conservative_rasterization", 26)) + { + ret = GLEW_INTEL_conservative_rasterization; + continue; + } +#endif #ifdef GL_INTEL_fragment_shader_ordering if (_glewStrSame3(&pos, &len, (const GLubyte*)"fragment_shader_ordering", 24)) { @@ -16236,6 +26929,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_INTEL_shader_integer_functions2 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_integer_functions2", 25)) + { + ret = GLEW_INTEL_shader_integer_functions2; + continue; + } +#endif #ifdef GL_INTEL_texture_scissor if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_scissor", 15)) { @@ -16281,6 +26981,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_KHR_parallel_shader_compile + if (_glewStrSame3(&pos, &len, (const GLubyte*)"parallel_shader_compile", 23)) + { + ret = GLEW_KHR_parallel_shader_compile; + continue; + } +#endif #ifdef GL_KHR_robust_buffer_access_behavior if (_glewStrSame3(&pos, &len, (const GLubyte*)"robust_buffer_access_behavior", 29)) { @@ -16295,6 +27002,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_KHR_shader_subgroup + if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_subgroup", 15)) + { + ret = GLEW_KHR_shader_subgroup; + continue; + } +#endif #ifdef GL_KHR_texture_compression_astc_hdr if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_compression_astc_hdr", 28)) { @@ -16308,6 +27022,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) ret = GLEW_KHR_texture_compression_astc_ldr; continue; } +#endif +#ifdef GL_KHR_texture_compression_astc_sliced_3d + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_compression_astc_sliced_3d", 34)) + { + ret = GLEW_KHR_texture_compression_astc_sliced_3d; + continue; + } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"KTX_", 4)) @@ -16332,6 +27053,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) } if (_glewStrSame2(&pos, &len, (const GLubyte*)"MESA_", 5)) { +#ifdef GL_MESA_framebuffer_flip_y + if (_glewStrSame3(&pos, &len, (const GLubyte*)"framebuffer_flip_y", 18)) + { + ret = GLEW_MESA_framebuffer_flip_y; + continue; + } +#endif #ifdef GL_MESA_pack_invert if (_glewStrSame3(&pos, &len, (const GLubyte*)"pack_invert", 11)) { @@ -16339,6 +27067,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_MESA_program_binary_formats + if (_glewStrSame3(&pos, &len, (const GLubyte*)"program_binary_formats", 22)) + { + ret = GLEW_MESA_program_binary_formats; + continue; + } +#endif #ifdef GL_MESA_resize_buffers if (_glewStrSame3(&pos, &len, (const GLubyte*)"resize_buffers", 14)) { @@ -16346,6 +27081,20 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_MESA_shader_integer_functions + if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_integer_functions", 24)) + { + ret = GLEW_MESA_shader_integer_functions; + continue; + } +#endif +#ifdef GL_MESA_tile_raster_order + if (_glewStrSame3(&pos, &len, (const GLubyte*)"tile_raster_order", 17)) + { + ret = GLEW_MESA_tile_raster_order; + continue; + } +#endif #ifdef GL_MESA_window_pos if (_glewStrSame3(&pos, &len, (const GLubyte*)"window_pos", 10)) { @@ -16363,6 +27112,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) } if (_glewStrSame2(&pos, &len, (const GLubyte*)"NVX_", 4)) { +#ifdef GL_NVX_blend_equation_advanced_multi_draw_buffers + if (_glewStrSame3(&pos, &len, (const GLubyte*)"blend_equation_advanced_multi_draw_buffers", 42)) + { + ret = GLEW_NVX_blend_equation_advanced_multi_draw_buffers; + continue; + } +#endif #ifdef GL_NVX_conditional_render if (_glewStrSame3(&pos, &len, (const GLubyte*)"conditional_render", 18)) { @@ -16376,10 +27132,59 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) ret = GLEW_NVX_gpu_memory_info; continue; } +#endif +#ifdef GL_NVX_gpu_multicast2 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"gpu_multicast2", 14)) + { + ret = GLEW_NVX_gpu_multicast2; + continue; + } +#endif +#ifdef GL_NVX_linked_gpu_multicast + if (_glewStrSame3(&pos, &len, (const GLubyte*)"linked_gpu_multicast", 20)) + { + ret = GLEW_NVX_linked_gpu_multicast; + continue; + } +#endif +#ifdef GL_NVX_progress_fence + if (_glewStrSame3(&pos, &len, (const GLubyte*)"progress_fence", 14)) + { + ret = GLEW_NVX_progress_fence; + continue; + } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"NV_", 3)) { +#ifdef GL_NV_3dvision_settings + if (_glewStrSame3(&pos, &len, (const GLubyte*)"3dvision_settings", 17)) + { + ret = GLEW_NV_3dvision_settings; + continue; + } +#endif +#ifdef GL_NV_EGL_stream_consumer_external + if (_glewStrSame3(&pos, &len, (const GLubyte*)"EGL_stream_consumer_external", 28)) + { + ret = GLEW_NV_EGL_stream_consumer_external; + continue; + } +#endif +#ifdef GL_NV_alpha_to_coverage_dither_control + if (_glewStrSame3(&pos, &len, (const GLubyte*)"alpha_to_coverage_dither_control", 32)) + { + ret = GLEW_NV_alpha_to_coverage_dither_control; + continue; + } +#endif +#ifdef GL_NV_bgr + if (_glewStrSame3(&pos, &len, (const GLubyte*)"bgr", 3)) + { + ret = GLEW_NV_bgr; + continue; + } +#endif #ifdef GL_NV_bindless_multi_draw_indirect if (_glewStrSame3(&pos, &len, (const GLubyte*)"bindless_multi_draw_indirect", 28)) { @@ -16415,6 +27220,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_NV_blend_minmax_factor + if (_glewStrSame3(&pos, &len, (const GLubyte*)"blend_minmax_factor", 19)) + { + ret = GLEW_NV_blend_minmax_factor; + continue; + } +#endif #ifdef GL_NV_blend_square if (_glewStrSame3(&pos, &len, (const GLubyte*)"blend_square", 12)) { @@ -16422,6 +27234,20 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_NV_clip_space_w_scaling + if (_glewStrSame3(&pos, &len, (const GLubyte*)"clip_space_w_scaling", 20)) + { + ret = GLEW_NV_clip_space_w_scaling; + continue; + } +#endif +#ifdef GL_NV_command_list + if (_glewStrSame3(&pos, &len, (const GLubyte*)"command_list", 12)) + { + ret = GLEW_NV_command_list; + continue; + } +#endif #ifdef GL_NV_compute_program5 if (_glewStrSame3(&pos, &len, (const GLubyte*)"compute_program5", 16)) { @@ -16429,6 +27255,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_NV_compute_shader_derivatives + if (_glewStrSame3(&pos, &len, (const GLubyte*)"compute_shader_derivatives", 26)) + { + ret = GLEW_NV_compute_shader_derivatives; + continue; + } +#endif #ifdef GL_NV_conditional_render if (_glewStrSame3(&pos, &len, (const GLubyte*)"conditional_render", 18)) { @@ -16450,6 +27283,34 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_NV_conservative_raster_pre_snap + if (_glewStrSame3(&pos, &len, (const GLubyte*)"conservative_raster_pre_snap", 28)) + { + ret = GLEW_NV_conservative_raster_pre_snap; + continue; + } +#endif +#ifdef GL_NV_conservative_raster_pre_snap_triangles + if (_glewStrSame3(&pos, &len, (const GLubyte*)"conservative_raster_pre_snap_triangles", 38)) + { + ret = GLEW_NV_conservative_raster_pre_snap_triangles; + continue; + } +#endif +#ifdef GL_NV_conservative_raster_underestimation + if (_glewStrSame3(&pos, &len, (const GLubyte*)"conservative_raster_underestimation", 35)) + { + ret = GLEW_NV_conservative_raster_underestimation; + continue; + } +#endif +#ifdef GL_NV_copy_buffer + if (_glewStrSame3(&pos, &len, (const GLubyte*)"copy_buffer", 11)) + { + ret = GLEW_NV_copy_buffer; + continue; + } +#endif #ifdef GL_NV_copy_depth_to_color if (_glewStrSame3(&pos, &len, (const GLubyte*)"copy_depth_to_color", 19)) { @@ -16485,6 +27346,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_NV_depth_nonlinear + if (_glewStrSame3(&pos, &len, (const GLubyte*)"depth_nonlinear", 15)) + { + ret = GLEW_NV_depth_nonlinear; + continue; + } +#endif #ifdef GL_NV_depth_range_unclamped if (_glewStrSame3(&pos, &len, (const GLubyte*)"depth_range_unclamped", 21)) { @@ -16492,6 +27360,20 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_NV_draw_buffers + if (_glewStrSame3(&pos, &len, (const GLubyte*)"draw_buffers", 12)) + { + ret = GLEW_NV_draw_buffers; + continue; + } +#endif +#ifdef GL_NV_draw_instanced + if (_glewStrSame3(&pos, &len, (const GLubyte*)"draw_instanced", 14)) + { + ret = GLEW_NV_draw_instanced; + continue; + } +#endif #ifdef GL_NV_draw_texture if (_glewStrSame3(&pos, &len, (const GLubyte*)"draw_texture", 12)) { @@ -16499,6 +27381,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_NV_draw_vulkan_image + if (_glewStrSame3(&pos, &len, (const GLubyte*)"draw_vulkan_image", 17)) + { + ret = GLEW_NV_draw_vulkan_image; + continue; + } +#endif #ifdef GL_NV_evaluators if (_glewStrSame3(&pos, &len, (const GLubyte*)"evaluators", 10)) { @@ -16506,6 +27395,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_NV_explicit_attrib_location + if (_glewStrSame3(&pos, &len, (const GLubyte*)"explicit_attrib_location", 24)) + { + ret = GLEW_NV_explicit_attrib_location; + continue; + } +#endif #ifdef GL_NV_explicit_multisample if (_glewStrSame3(&pos, &len, (const GLubyte*)"explicit_multisample", 20)) { @@ -16513,6 +27409,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_NV_fbo_color_attachments + if (_glewStrSame3(&pos, &len, (const GLubyte*)"fbo_color_attachments", 21)) + { + ret = GLEW_NV_fbo_color_attachments; + continue; + } +#endif #ifdef GL_NV_fence if (_glewStrSame3(&pos, &len, (const GLubyte*)"fence", 5)) { @@ -16576,6 +27479,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_NV_fragment_shader_barycentric + if (_glewStrSame3(&pos, &len, (const GLubyte*)"fragment_shader_barycentric", 27)) + { + ret = GLEW_NV_fragment_shader_barycentric; + continue; + } +#endif #ifdef GL_NV_fragment_shader_interlock if (_glewStrSame3(&pos, &len, (const GLubyte*)"fragment_shader_interlock", 25)) { @@ -16583,6 +27493,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_NV_framebuffer_blit + if (_glewStrSame3(&pos, &len, (const GLubyte*)"framebuffer_blit", 16)) + { + ret = GLEW_NV_framebuffer_blit; + continue; + } +#endif #ifdef GL_NV_framebuffer_mixed_samples if (_glewStrSame3(&pos, &len, (const GLubyte*)"framebuffer_mixed_samples", 25)) { @@ -16590,6 +27507,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_NV_framebuffer_multisample + if (_glewStrSame3(&pos, &len, (const GLubyte*)"framebuffer_multisample", 23)) + { + ret = GLEW_NV_framebuffer_multisample; + continue; + } +#endif #ifdef GL_NV_framebuffer_multisample_coverage if (_glewStrSame3(&pos, &len, (const GLubyte*)"framebuffer_multisample_coverage", 32)) { @@ -16597,6 +27521,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_NV_generate_mipmap_sRGB + if (_glewStrSame3(&pos, &len, (const GLubyte*)"generate_mipmap_sRGB", 20)) + { + ret = GLEW_NV_generate_mipmap_sRGB; + continue; + } +#endif #ifdef GL_NV_geometry_program4 if (_glewStrSame3(&pos, &len, (const GLubyte*)"geometry_program4", 17)) { @@ -16618,6 +27549,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_NV_gpu_multicast + if (_glewStrSame3(&pos, &len, (const GLubyte*)"gpu_multicast", 13)) + { + ret = GLEW_NV_gpu_multicast; + continue; + } +#endif #ifdef GL_NV_gpu_program4 if (_glewStrSame3(&pos, &len, (const GLubyte*)"gpu_program4", 12)) { @@ -16660,6 +27598,20 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_NV_image_formats + if (_glewStrSame3(&pos, &len, (const GLubyte*)"image_formats", 13)) + { + ret = GLEW_NV_image_formats; + continue; + } +#endif +#ifdef GL_NV_instanced_arrays + if (_glewStrSame3(&pos, &len, (const GLubyte*)"instanced_arrays", 16)) + { + ret = GLEW_NV_instanced_arrays; + continue; + } +#endif #ifdef GL_NV_internalformat_sample_query if (_glewStrSame3(&pos, &len, (const GLubyte*)"internalformat_sample_query", 27)) { @@ -16674,6 +27626,20 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_NV_memory_attachment + if (_glewStrSame3(&pos, &len, (const GLubyte*)"memory_attachment", 17)) + { + ret = GLEW_NV_memory_attachment; + continue; + } +#endif +#ifdef GL_NV_mesh_shader + if (_glewStrSame3(&pos, &len, (const GLubyte*)"mesh_shader", 11)) + { + ret = GLEW_NV_mesh_shader; + continue; + } +#endif #ifdef GL_NV_multisample_coverage if (_glewStrSame3(&pos, &len, (const GLubyte*)"multisample_coverage", 20)) { @@ -16688,6 +27654,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_NV_non_square_matrices + if (_glewStrSame3(&pos, &len, (const GLubyte*)"non_square_matrices", 19)) + { + ret = GLEW_NV_non_square_matrices; + continue; + } +#endif #ifdef GL_NV_occlusion_query if (_glewStrSame3(&pos, &len, (const GLubyte*)"occlusion_query", 15)) { @@ -16695,6 +27668,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_NV_pack_subimage + if (_glewStrSame3(&pos, &len, (const GLubyte*)"pack_subimage", 13)) + { + ret = GLEW_NV_pack_subimage; + continue; + } +#endif #ifdef GL_NV_packed_depth_stencil if (_glewStrSame3(&pos, &len, (const GLubyte*)"packed_depth_stencil", 20)) { @@ -16702,6 +27682,20 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_NV_packed_float + if (_glewStrSame3(&pos, &len, (const GLubyte*)"packed_float", 12)) + { + ret = GLEW_NV_packed_float; + continue; + } +#endif +#ifdef GL_NV_packed_float_linear + if (_glewStrSame3(&pos, &len, (const GLubyte*)"packed_float_linear", 19)) + { + ret = GLEW_NV_packed_float_linear; + continue; + } +#endif #ifdef GL_NV_parameter_buffer_object if (_glewStrSame3(&pos, &len, (const GLubyte*)"parameter_buffer_object", 23)) { @@ -16730,6 +27724,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_NV_pixel_buffer_object + if (_glewStrSame3(&pos, &len, (const GLubyte*)"pixel_buffer_object", 19)) + { + ret = GLEW_NV_pixel_buffer_object; + continue; + } +#endif #ifdef GL_NV_pixel_data_range if (_glewStrSame3(&pos, &len, (const GLubyte*)"pixel_data_range", 16)) { @@ -16737,6 +27738,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_NV_platform_binary + if (_glewStrSame3(&pos, &len, (const GLubyte*)"platform_binary", 15)) + { + ret = GLEW_NV_platform_binary; + continue; + } +#endif #ifdef GL_NV_point_sprite if (_glewStrSame3(&pos, &len, (const GLubyte*)"point_sprite", 12)) { @@ -16744,6 +27752,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_NV_polygon_mode + if (_glewStrSame3(&pos, &len, (const GLubyte*)"polygon_mode", 12)) + { + ret = GLEW_NV_polygon_mode; + continue; + } +#endif #ifdef GL_NV_present_video if (_glewStrSame3(&pos, &len, (const GLubyte*)"present_video", 13)) { @@ -16758,6 +27773,48 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_NV_query_resource_tag + if (_glewStrSame3(&pos, &len, (const GLubyte*)"query_resource_tag", 18)) + { + ret = GLEW_NV_query_resource_tag; + continue; + } +#endif +#ifdef GL_NV_read_buffer + if (_glewStrSame3(&pos, &len, (const GLubyte*)"read_buffer", 11)) + { + ret = GLEW_NV_read_buffer; + continue; + } +#endif +#ifdef GL_NV_read_buffer_front + if (_glewStrSame3(&pos, &len, (const GLubyte*)"read_buffer_front", 17)) + { + ret = GLEW_NV_read_buffer_front; + continue; + } +#endif +#ifdef GL_NV_read_depth + if (_glewStrSame3(&pos, &len, (const GLubyte*)"read_depth", 10)) + { + ret = GLEW_NV_read_depth; + continue; + } +#endif +#ifdef GL_NV_read_depth_stencil + if (_glewStrSame3(&pos, &len, (const GLubyte*)"read_depth_stencil", 18)) + { + ret = GLEW_NV_read_depth_stencil; + continue; + } +#endif +#ifdef GL_NV_read_stencil + if (_glewStrSame3(&pos, &len, (const GLubyte*)"read_stencil", 12)) + { + ret = GLEW_NV_read_stencil; + continue; + } +#endif #ifdef GL_NV_register_combiners if (_glewStrSame3(&pos, &len, (const GLubyte*)"register_combiners", 18)) { @@ -16772,6 +27829,27 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_NV_representative_fragment_test + if (_glewStrSame3(&pos, &len, (const GLubyte*)"representative_fragment_test", 28)) + { + ret = GLEW_NV_representative_fragment_test; + continue; + } +#endif +#ifdef GL_NV_robustness_video_memory_purge + if (_glewStrSame3(&pos, &len, (const GLubyte*)"robustness_video_memory_purge", 29)) + { + ret = GLEW_NV_robustness_video_memory_purge; + continue; + } +#endif +#ifdef GL_NV_sRGB_formats + if (_glewStrSame3(&pos, &len, (const GLubyte*)"sRGB_formats", 12)) + { + ret = GLEW_NV_sRGB_formats; + continue; + } +#endif #ifdef GL_NV_sample_locations if (_glewStrSame3(&pos, &len, (const GLubyte*)"sample_locations", 16)) { @@ -16786,6 +27864,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_NV_scissor_exclusive + if (_glewStrSame3(&pos, &len, (const GLubyte*)"scissor_exclusive", 17)) + { + ret = GLEW_NV_scissor_exclusive; + continue; + } +#endif #ifdef GL_NV_shader_atomic_counters if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_atomic_counters", 22)) { @@ -16800,6 +27885,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_NV_shader_atomic_float64 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_atomic_float64", 21)) + { + ret = GLEW_NV_shader_atomic_float64; + continue; + } +#endif #ifdef GL_NV_shader_atomic_fp16_vector if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_atomic_fp16_vector", 25)) { @@ -16821,6 +27913,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_NV_shader_noperspective_interpolation + if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_noperspective_interpolation", 34)) + { + ret = GLEW_NV_shader_noperspective_interpolation; + continue; + } +#endif #ifdef GL_NV_shader_storage_buffer_object if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_storage_buffer_object", 28)) { @@ -16828,6 +27927,20 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_NV_shader_subgroup_partitioned + if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_subgroup_partitioned", 27)) + { + ret = GLEW_NV_shader_subgroup_partitioned; + continue; + } +#endif +#ifdef GL_NV_shader_texture_footprint + if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_texture_footprint", 24)) + { + ret = GLEW_NV_shader_texture_footprint; + continue; + } +#endif #ifdef GL_NV_shader_thread_group if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_thread_group", 19)) { @@ -16842,6 +27955,34 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_NV_shading_rate_image + if (_glewStrSame3(&pos, &len, (const GLubyte*)"shading_rate_image", 18)) + { + ret = GLEW_NV_shading_rate_image; + continue; + } +#endif +#ifdef GL_NV_shadow_samplers_array + if (_glewStrSame3(&pos, &len, (const GLubyte*)"shadow_samplers_array", 21)) + { + ret = GLEW_NV_shadow_samplers_array; + continue; + } +#endif +#ifdef GL_NV_shadow_samplers_cube + if (_glewStrSame3(&pos, &len, (const GLubyte*)"shadow_samplers_cube", 20)) + { + ret = GLEW_NV_shadow_samplers_cube; + continue; + } +#endif +#ifdef GL_NV_stereo_view_rendering + if (_glewStrSame3(&pos, &len, (const GLubyte*)"stereo_view_rendering", 21)) + { + ret = GLEW_NV_stereo_view_rendering; + continue; + } +#endif #ifdef GL_NV_tessellation_program5 if (_glewStrSame3(&pos, &len, (const GLubyte*)"tessellation_program5", 21)) { @@ -16863,6 +28004,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_NV_texture_array + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_array", 13)) + { + ret = GLEW_NV_texture_array; + continue; + } +#endif #ifdef GL_NV_texture_barrier if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_barrier", 15)) { @@ -16870,6 +28018,34 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_NV_texture_border_clamp + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_border_clamp", 20)) + { + ret = GLEW_NV_texture_border_clamp; + continue; + } +#endif +#ifdef GL_NV_texture_compression_latc + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_compression_latc", 24)) + { + ret = GLEW_NV_texture_compression_latc; + continue; + } +#endif +#ifdef GL_NV_texture_compression_s3tc + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_compression_s3tc", 24)) + { + ret = GLEW_NV_texture_compression_s3tc; + continue; + } +#endif +#ifdef GL_NV_texture_compression_s3tc_update + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_compression_s3tc_update", 31)) + { + ret = GLEW_NV_texture_compression_s3tc_update; + continue; + } +#endif #ifdef GL_NV_texture_compression_vtc if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_compression_vtc", 23)) { @@ -16898,6 +28074,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_NV_texture_npot_2D_mipmap + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_npot_2D_mipmap", 22)) + { + ret = GLEW_NV_texture_npot_2D_mipmap; + continue; + } +#endif #ifdef GL_NV_texture_rectangle if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_rectangle", 17)) { @@ -16905,6 +28088,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_NV_texture_rectangle_compressed + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_rectangle_compressed", 28)) + { + ret = GLEW_NV_texture_rectangle_compressed; + continue; + } +#endif #ifdef GL_NV_texture_shader if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_shader", 14)) { @@ -16954,6 +28144,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_NV_vdpau_interop2 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"vdpau_interop2", 14)) + { + ret = GLEW_NV_vdpau_interop2; + continue; + } +#endif #ifdef GL_NV_vertex_array_range if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_array_range", 18)) { @@ -17031,16 +28228,72 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_NV_viewport_array + if (_glewStrSame3(&pos, &len, (const GLubyte*)"viewport_array", 14)) + { + ret = GLEW_NV_viewport_array; + continue; + } +#endif #ifdef GL_NV_viewport_array2 if (_glewStrSame3(&pos, &len, (const GLubyte*)"viewport_array2", 15)) { ret = GLEW_NV_viewport_array2; continue; } +#endif +#ifdef GL_NV_viewport_swizzle + if (_glewStrSame3(&pos, &len, (const GLubyte*)"viewport_swizzle", 16)) + { + ret = GLEW_NV_viewport_swizzle; + continue; + } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"OES_", 4)) { +#ifdef GL_OES_EGL_image + if (_glewStrSame3(&pos, &len, (const GLubyte*)"EGL_image", 9)) + { + ret = GLEW_OES_EGL_image; + continue; + } +#endif +#ifdef GL_OES_EGL_image_external + if (_glewStrSame3(&pos, &len, (const GLubyte*)"EGL_image_external", 18)) + { + ret = GLEW_OES_EGL_image_external; + continue; + } +#endif +#ifdef GL_OES_EGL_image_external_essl3 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"EGL_image_external_essl3", 24)) + { + ret = GLEW_OES_EGL_image_external_essl3; + continue; + } +#endif +#ifdef GL_OES_blend_equation_separate + if (_glewStrSame3(&pos, &len, (const GLubyte*)"blend_equation_separate", 23)) + { + ret = GLEW_OES_blend_equation_separate; + continue; + } +#endif +#ifdef GL_OES_blend_func_separate + if (_glewStrSame3(&pos, &len, (const GLubyte*)"blend_func_separate", 19)) + { + ret = GLEW_OES_blend_func_separate; + continue; + } +#endif +#ifdef GL_OES_blend_subtract + if (_glewStrSame3(&pos, &len, (const GLubyte*)"blend_subtract", 14)) + { + ret = GLEW_OES_blend_subtract; + continue; + } +#endif #ifdef GL_OES_byte_coordinates if (_glewStrSame3(&pos, &len, (const GLubyte*)"byte_coordinates", 16)) { @@ -17048,6 +28301,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_OES_compressed_ETC1_RGB8_texture + if (_glewStrSame3(&pos, &len, (const GLubyte*)"compressed_ETC1_RGB8_texture", 28)) + { + ret = GLEW_OES_compressed_ETC1_RGB8_texture; + continue; + } +#endif #ifdef GL_OES_compressed_paletted_texture if (_glewStrSame3(&pos, &len, (const GLubyte*)"compressed_paletted_texture", 27)) { @@ -17055,6 +28315,160 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_OES_copy_image + if (_glewStrSame3(&pos, &len, (const GLubyte*)"copy_image", 10)) + { + ret = GLEW_OES_copy_image; + continue; + } +#endif +#ifdef GL_OES_depth24 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"depth24", 7)) + { + ret = GLEW_OES_depth24; + continue; + } +#endif +#ifdef GL_OES_depth32 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"depth32", 7)) + { + ret = GLEW_OES_depth32; + continue; + } +#endif +#ifdef GL_OES_depth_texture + if (_glewStrSame3(&pos, &len, (const GLubyte*)"depth_texture", 13)) + { + ret = GLEW_OES_depth_texture; + continue; + } +#endif +#ifdef GL_OES_depth_texture_cube_map + if (_glewStrSame3(&pos, &len, (const GLubyte*)"depth_texture_cube_map", 22)) + { + ret = GLEW_OES_depth_texture_cube_map; + continue; + } +#endif +#ifdef GL_OES_draw_buffers_indexed + if (_glewStrSame3(&pos, &len, (const GLubyte*)"draw_buffers_indexed", 20)) + { + ret = GLEW_OES_draw_buffers_indexed; + continue; + } +#endif +#ifdef GL_OES_draw_texture + if (_glewStrSame3(&pos, &len, (const GLubyte*)"draw_texture", 12)) + { + ret = GLEW_OES_draw_texture; + continue; + } +#endif +#ifdef GL_OES_element_index_uint + if (_glewStrSame3(&pos, &len, (const GLubyte*)"element_index_uint", 18)) + { + ret = GLEW_OES_element_index_uint; + continue; + } +#endif +#ifdef GL_OES_extended_matrix_palette + if (_glewStrSame3(&pos, &len, (const GLubyte*)"extended_matrix_palette", 23)) + { + ret = GLEW_OES_extended_matrix_palette; + continue; + } +#endif +#ifdef GL_OES_fbo_render_mipmap + if (_glewStrSame3(&pos, &len, (const GLubyte*)"fbo_render_mipmap", 17)) + { + ret = GLEW_OES_fbo_render_mipmap; + continue; + } +#endif +#ifdef GL_OES_fragment_precision_high + if (_glewStrSame3(&pos, &len, (const GLubyte*)"fragment_precision_high", 23)) + { + ret = GLEW_OES_fragment_precision_high; + continue; + } +#endif +#ifdef GL_OES_framebuffer_object + if (_glewStrSame3(&pos, &len, (const GLubyte*)"framebuffer_object", 18)) + { + ret = GLEW_OES_framebuffer_object; + continue; + } +#endif +#ifdef GL_OES_geometry_point_size + if (_glewStrSame3(&pos, &len, (const GLubyte*)"geometry_point_size", 19)) + { + ret = GLEW_OES_geometry_point_size; + continue; + } +#endif +#ifdef GL_OES_geometry_shader + if (_glewStrSame3(&pos, &len, (const GLubyte*)"geometry_shader", 15)) + { + ret = GLEW_OES_geometry_shader; + continue; + } +#endif +#ifdef GL_OES_get_program_binary + if (_glewStrSame3(&pos, &len, (const GLubyte*)"get_program_binary", 18)) + { + ret = GLEW_OES_get_program_binary; + continue; + } +#endif +#ifdef GL_OES_gpu_shader5 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"gpu_shader5", 11)) + { + ret = GLEW_OES_gpu_shader5; + continue; + } +#endif +#ifdef GL_OES_mapbuffer + if (_glewStrSame3(&pos, &len, (const GLubyte*)"mapbuffer", 9)) + { + ret = GLEW_OES_mapbuffer; + continue; + } +#endif +#ifdef GL_OES_matrix_get + if (_glewStrSame3(&pos, &len, (const GLubyte*)"matrix_get", 10)) + { + ret = GLEW_OES_matrix_get; + continue; + } +#endif +#ifdef GL_OES_matrix_palette + if (_glewStrSame3(&pos, &len, (const GLubyte*)"matrix_palette", 14)) + { + ret = GLEW_OES_matrix_palette; + continue; + } +#endif +#ifdef GL_OES_packed_depth_stencil + if (_glewStrSame3(&pos, &len, (const GLubyte*)"packed_depth_stencil", 20)) + { + ret = GLEW_OES_packed_depth_stencil; + continue; + } +#endif +#ifdef GL_OES_point_size_array + if (_glewStrSame3(&pos, &len, (const GLubyte*)"point_size_array", 16)) + { + ret = GLEW_OES_point_size_array; + continue; + } +#endif +#ifdef GL_OES_point_sprite + if (_glewStrSame3(&pos, &len, (const GLubyte*)"point_sprite", 12)) + { + ret = GLEW_OES_point_sprite; + continue; + } +#endif #ifdef GL_OES_read_format if (_glewStrSame3(&pos, &len, (const GLubyte*)"read_format", 11)) { @@ -17062,12 +28476,215 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_OES_required_internalformat + if (_glewStrSame3(&pos, &len, (const GLubyte*)"required_internalformat", 23)) + { + ret = GLEW_OES_required_internalformat; + continue; + } +#endif +#ifdef GL_OES_rgb8_rgba8 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"rgb8_rgba8", 10)) + { + ret = GLEW_OES_rgb8_rgba8; + continue; + } +#endif +#ifdef GL_OES_sample_shading + if (_glewStrSame3(&pos, &len, (const GLubyte*)"sample_shading", 14)) + { + ret = GLEW_OES_sample_shading; + continue; + } +#endif +#ifdef GL_OES_sample_variables + if (_glewStrSame3(&pos, &len, (const GLubyte*)"sample_variables", 16)) + { + ret = GLEW_OES_sample_variables; + continue; + } +#endif +#ifdef GL_OES_shader_image_atomic + if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_image_atomic", 19)) + { + ret = GLEW_OES_shader_image_atomic; + continue; + } +#endif +#ifdef GL_OES_shader_io_blocks + if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_io_blocks", 16)) + { + ret = GLEW_OES_shader_io_blocks; + continue; + } +#endif +#ifdef GL_OES_shader_multisample_interpolation + if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_multisample_interpolation", 32)) + { + ret = GLEW_OES_shader_multisample_interpolation; + continue; + } +#endif #ifdef GL_OES_single_precision if (_glewStrSame3(&pos, &len, (const GLubyte*)"single_precision", 16)) { ret = GLEW_OES_single_precision; continue; } +#endif +#ifdef GL_OES_standard_derivatives + if (_glewStrSame3(&pos, &len, (const GLubyte*)"standard_derivatives", 20)) + { + ret = GLEW_OES_standard_derivatives; + continue; + } +#endif +#ifdef GL_OES_stencil1 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"stencil1", 8)) + { + ret = GLEW_OES_stencil1; + continue; + } +#endif +#ifdef GL_OES_stencil4 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"stencil4", 8)) + { + ret = GLEW_OES_stencil4; + continue; + } +#endif +#ifdef GL_OES_stencil8 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"stencil8", 8)) + { + ret = GLEW_OES_stencil8; + continue; + } +#endif +#ifdef GL_OES_surfaceless_context + if (_glewStrSame3(&pos, &len, (const GLubyte*)"surfaceless_context", 19)) + { + ret = GLEW_OES_surfaceless_context; + continue; + } +#endif +#ifdef GL_OES_tessellation_point_size + if (_glewStrSame3(&pos, &len, (const GLubyte*)"tessellation_point_size", 23)) + { + ret = GLEW_OES_tessellation_point_size; + continue; + } +#endif +#ifdef GL_OES_tessellation_shader + if (_glewStrSame3(&pos, &len, (const GLubyte*)"tessellation_shader", 19)) + { + ret = GLEW_OES_tessellation_shader; + continue; + } +#endif +#ifdef GL_OES_texture_3D + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_3D", 10)) + { + ret = GLEW_OES_texture_3D; + continue; + } +#endif +#ifdef GL_OES_texture_border_clamp + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_border_clamp", 20)) + { + ret = GLEW_OES_texture_border_clamp; + continue; + } +#endif +#ifdef GL_OES_texture_buffer + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_buffer", 14)) + { + ret = GLEW_OES_texture_buffer; + continue; + } +#endif +#ifdef GL_OES_texture_compression_astc + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_compression_astc", 24)) + { + ret = GLEW_OES_texture_compression_astc; + continue; + } +#endif +#ifdef GL_OES_texture_cube_map + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_cube_map", 16)) + { + ret = GLEW_OES_texture_cube_map; + continue; + } +#endif +#ifdef GL_OES_texture_cube_map_array + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_cube_map_array", 22)) + { + ret = GLEW_OES_texture_cube_map_array; + continue; + } +#endif +#ifdef GL_OES_texture_env_crossbar + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_env_crossbar", 20)) + { + ret = GLEW_OES_texture_env_crossbar; + continue; + } +#endif +#ifdef GL_OES_texture_mirrored_repeat + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_mirrored_repeat", 23)) + { + ret = GLEW_OES_texture_mirrored_repeat; + continue; + } +#endif +#ifdef GL_OES_texture_npot + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_npot", 12)) + { + ret = GLEW_OES_texture_npot; + continue; + } +#endif +#ifdef GL_OES_texture_stencil8 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_stencil8", 16)) + { + ret = GLEW_OES_texture_stencil8; + continue; + } +#endif +#ifdef GL_OES_texture_storage_multisample_2d_array + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_storage_multisample_2d_array", 36)) + { + ret = GLEW_OES_texture_storage_multisample_2d_array; + continue; + } +#endif +#ifdef GL_OES_texture_view + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_view", 12)) + { + ret = GLEW_OES_texture_view; + continue; + } +#endif +#ifdef GL_OES_vertex_array_object + if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_array_object", 19)) + { + ret = GLEW_OES_vertex_array_object; + continue; + } +#endif +#ifdef GL_OES_vertex_half_float + if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_half_float", 17)) + { + ret = GLEW_OES_vertex_half_float; + continue; + } +#endif +#ifdef GL_OES_vertex_type_10_10_10_2 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_type_10_10_10_2", 22)) + { + ret = GLEW_OES_vertex_type_10_10_10_2; + continue; + } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"OML_", 4)) @@ -17109,6 +28726,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) ret = GLEW_OVR_multiview2; continue; } +#endif +#ifdef GL_OVR_multiview_multisampled_render_to_texture + if (_glewStrSame3(&pos, &len, (const GLubyte*)"multiview_multisampled_render_to_texture", 40)) + { + ret = GLEW_OVR_multiview_multisampled_render_to_texture; + continue; + } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"PGI_", 4)) @@ -17126,6 +28750,107 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) ret = GLEW_PGI_vertex_hints; continue; } +#endif + } + if (_glewStrSame2(&pos, &len, (const GLubyte*)"QCOM_", 5)) + { +#ifdef GL_QCOM_YUV_texture_gather + if (_glewStrSame3(&pos, &len, (const GLubyte*)"YUV_texture_gather", 18)) + { + ret = GLEW_QCOM_YUV_texture_gather; + continue; + } +#endif +#ifdef GL_QCOM_alpha_test + if (_glewStrSame3(&pos, &len, (const GLubyte*)"alpha_test", 10)) + { + ret = GLEW_QCOM_alpha_test; + continue; + } +#endif +#ifdef GL_QCOM_binning_control + if (_glewStrSame3(&pos, &len, (const GLubyte*)"binning_control", 15)) + { + ret = GLEW_QCOM_binning_control; + continue; + } +#endif +#ifdef GL_QCOM_driver_control + if (_glewStrSame3(&pos, &len, (const GLubyte*)"driver_control", 14)) + { + ret = GLEW_QCOM_driver_control; + continue; + } +#endif +#ifdef GL_QCOM_extended_get + if (_glewStrSame3(&pos, &len, (const GLubyte*)"extended_get", 12)) + { + ret = GLEW_QCOM_extended_get; + continue; + } +#endif +#ifdef GL_QCOM_extended_get2 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"extended_get2", 13)) + { + ret = GLEW_QCOM_extended_get2; + continue; + } +#endif +#ifdef GL_QCOM_framebuffer_foveated + if (_glewStrSame3(&pos, &len, (const GLubyte*)"framebuffer_foveated", 20)) + { + ret = GLEW_QCOM_framebuffer_foveated; + continue; + } +#endif +#ifdef GL_QCOM_perfmon_global_mode + if (_glewStrSame3(&pos, &len, (const GLubyte*)"perfmon_global_mode", 19)) + { + ret = GLEW_QCOM_perfmon_global_mode; + continue; + } +#endif +#ifdef GL_QCOM_shader_framebuffer_fetch_noncoherent + if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_framebuffer_fetch_noncoherent", 36)) + { + ret = GLEW_QCOM_shader_framebuffer_fetch_noncoherent; + continue; + } +#endif +#ifdef GL_QCOM_shader_framebuffer_fetch_rate + if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_framebuffer_fetch_rate", 29)) + { + ret = GLEW_QCOM_shader_framebuffer_fetch_rate; + continue; + } +#endif +#ifdef GL_QCOM_texture_foveated + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_foveated", 16)) + { + ret = GLEW_QCOM_texture_foveated; + continue; + } +#endif +#ifdef GL_QCOM_texture_foveated_subsampled_layout + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_foveated_subsampled_layout", 34)) + { + ret = GLEW_QCOM_texture_foveated_subsampled_layout; + continue; + } +#endif +#ifdef GL_QCOM_tiled_rendering + if (_glewStrSame3(&pos, &len, (const GLubyte*)"tiled_rendering", 15)) + { + ret = GLEW_QCOM_tiled_rendering; + continue; + } +#endif +#ifdef GL_QCOM_writeonly_rendering + if (_glewStrSame3(&pos, &len, (const GLubyte*)"writeonly_rendering", 19)) + { + ret = GLEW_QCOM_writeonly_rendering; + continue; + } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"REGAL_", 6)) @@ -17202,6 +28927,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) } if (_glewStrSame2(&pos, &len, (const GLubyte*)"SGIS_", 5)) { +#ifdef GL_SGIS_clip_band_hint + if (_glewStrSame3(&pos, &len, (const GLubyte*)"clip_band_hint", 14)) + { + ret = GLEW_SGIS_clip_band_hint; + continue; + } +#endif #ifdef GL_SGIS_color_range if (_glewStrSame3(&pos, &len, (const GLubyte*)"color_range", 11)) { @@ -17230,6 +28962,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_SGIS_line_texgen + if (_glewStrSame3(&pos, &len, (const GLubyte*)"line_texgen", 11)) + { + ret = GLEW_SGIS_line_texgen; + continue; + } +#endif #ifdef GL_SGIS_multisample if (_glewStrSame3(&pos, &len, (const GLubyte*)"multisample", 11)) { @@ -17237,6 +28976,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_SGIS_multitexture + if (_glewStrSame3(&pos, &len, (const GLubyte*)"multitexture", 12)) + { + ret = GLEW_SGIS_multitexture; + continue; + } +#endif #ifdef GL_SGIS_pixel_texture if (_glewStrSame3(&pos, &len, (const GLubyte*)"pixel_texture", 13)) { @@ -17251,6 +28997,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_SGIS_shared_multisample + if (_glewStrSame3(&pos, &len, (const GLubyte*)"shared_multisample", 18)) + { + ret = GLEW_SGIS_shared_multisample; + continue; + } +#endif #ifdef GL_SGIS_sharpen_texture if (_glewStrSame3(&pos, &len, (const GLubyte*)"sharpen_texture", 15)) { @@ -17324,6 +29077,27 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_SGIX_bali_g_instruments + if (_glewStrSame3(&pos, &len, (const GLubyte*)"bali_g_instruments", 18)) + { + ret = GLEW_SGIX_bali_g_instruments; + continue; + } +#endif +#ifdef GL_SGIX_bali_r_instruments + if (_glewStrSame3(&pos, &len, (const GLubyte*)"bali_r_instruments", 18)) + { + ret = GLEW_SGIX_bali_r_instruments; + continue; + } +#endif +#ifdef GL_SGIX_bali_timer_instruments + if (_glewStrSame3(&pos, &len, (const GLubyte*)"bali_timer_instruments", 22)) + { + ret = GLEW_SGIX_bali_timer_instruments; + continue; + } +#endif #ifdef GL_SGIX_blend_alpha_minmax if (_glewStrSame3(&pos, &len, (const GLubyte*)"blend_alpha_minmax", 18)) { @@ -17331,6 +29105,27 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_SGIX_blend_cadd + if (_glewStrSame3(&pos, &len, (const GLubyte*)"blend_cadd", 10)) + { + ret = GLEW_SGIX_blend_cadd; + continue; + } +#endif +#ifdef GL_SGIX_blend_cmultiply + if (_glewStrSame3(&pos, &len, (const GLubyte*)"blend_cmultiply", 15)) + { + ret = GLEW_SGIX_blend_cmultiply; + continue; + } +#endif +#ifdef GL_SGIX_calligraphic_fragment + if (_glewStrSame3(&pos, &len, (const GLubyte*)"calligraphic_fragment", 21)) + { + ret = GLEW_SGIX_calligraphic_fragment; + continue; + } +#endif #ifdef GL_SGIX_clipmap if (_glewStrSame3(&pos, &len, (const GLubyte*)"clipmap", 7)) { @@ -17338,6 +29133,27 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_SGIX_color_matrix_accuracy + if (_glewStrSame3(&pos, &len, (const GLubyte*)"color_matrix_accuracy", 21)) + { + ret = GLEW_SGIX_color_matrix_accuracy; + continue; + } +#endif +#ifdef GL_SGIX_color_table_index_mode + if (_glewStrSame3(&pos, &len, (const GLubyte*)"color_table_index_mode", 22)) + { + ret = GLEW_SGIX_color_table_index_mode; + continue; + } +#endif +#ifdef GL_SGIX_complex_polar + if (_glewStrSame3(&pos, &len, (const GLubyte*)"complex_polar", 13)) + { + ret = GLEW_SGIX_complex_polar; + continue; + } +#endif #ifdef GL_SGIX_convolution_accuracy if (_glewStrSame3(&pos, &len, (const GLubyte*)"convolution_accuracy", 20)) { @@ -17345,6 +29161,41 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_SGIX_cube_map + if (_glewStrSame3(&pos, &len, (const GLubyte*)"cube_map", 8)) + { + ret = GLEW_SGIX_cube_map; + continue; + } +#endif +#ifdef GL_SGIX_cylinder_texgen + if (_glewStrSame3(&pos, &len, (const GLubyte*)"cylinder_texgen", 15)) + { + ret = GLEW_SGIX_cylinder_texgen; + continue; + } +#endif +#ifdef GL_SGIX_datapipe + if (_glewStrSame3(&pos, &len, (const GLubyte*)"datapipe", 8)) + { + ret = GLEW_SGIX_datapipe; + continue; + } +#endif +#ifdef GL_SGIX_decimation + if (_glewStrSame3(&pos, &len, (const GLubyte*)"decimation", 10)) + { + ret = GLEW_SGIX_decimation; + continue; + } +#endif +#ifdef GL_SGIX_depth_pass_instrument + if (_glewStrSame3(&pos, &len, (const GLubyte*)"depth_pass_instrument", 21)) + { + ret = GLEW_SGIX_depth_pass_instrument; + continue; + } +#endif #ifdef GL_SGIX_depth_texture if (_glewStrSame3(&pos, &len, (const GLubyte*)"depth_texture", 13)) { @@ -17352,6 +29203,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_SGIX_dvc + if (_glewStrSame3(&pos, &len, (const GLubyte*)"dvc", 3)) + { + ret = GLEW_SGIX_dvc; + continue; + } +#endif #ifdef GL_SGIX_flush_raster if (_glewStrSame3(&pos, &len, (const GLubyte*)"flush_raster", 12)) { @@ -17359,6 +29217,27 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_SGIX_fog_blend + if (_glewStrSame3(&pos, &len, (const GLubyte*)"fog_blend", 9)) + { + ret = GLEW_SGIX_fog_blend; + continue; + } +#endif +#ifdef GL_SGIX_fog_factor_to_alpha + if (_glewStrSame3(&pos, &len, (const GLubyte*)"fog_factor_to_alpha", 19)) + { + ret = GLEW_SGIX_fog_factor_to_alpha; + continue; + } +#endif +#ifdef GL_SGIX_fog_layers + if (_glewStrSame3(&pos, &len, (const GLubyte*)"fog_layers", 10)) + { + ret = GLEW_SGIX_fog_layers; + continue; + } +#endif #ifdef GL_SGIX_fog_offset if (_glewStrSame3(&pos, &len, (const GLubyte*)"fog_offset", 10)) { @@ -17366,6 +29245,20 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_SGIX_fog_patchy + if (_glewStrSame3(&pos, &len, (const GLubyte*)"fog_patchy", 10)) + { + ret = GLEW_SGIX_fog_patchy; + continue; + } +#endif +#ifdef GL_SGIX_fog_scale + if (_glewStrSame3(&pos, &len, (const GLubyte*)"fog_scale", 9)) + { + ret = GLEW_SGIX_fog_scale; + continue; + } +#endif #ifdef GL_SGIX_fog_texture if (_glewStrSame3(&pos, &len, (const GLubyte*)"fog_texture", 11)) { @@ -17373,6 +29266,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_SGIX_fragment_lighting_space + if (_glewStrSame3(&pos, &len, (const GLubyte*)"fragment_lighting_space", 23)) + { + ret = GLEW_SGIX_fragment_lighting_space; + continue; + } +#endif #ifdef GL_SGIX_fragment_specular_lighting if (_glewStrSame3(&pos, &len, (const GLubyte*)"fragment_specular_lighting", 26)) { @@ -17380,6 +29280,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_SGIX_fragments_instrument + if (_glewStrSame3(&pos, &len, (const GLubyte*)"fragments_instrument", 20)) + { + ret = GLEW_SGIX_fragments_instrument; + continue; + } +#endif #ifdef GL_SGIX_framezoom if (_glewStrSame3(&pos, &len, (const GLubyte*)"framezoom", 9)) { @@ -17387,6 +29294,41 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_SGIX_icc_texture + if (_glewStrSame3(&pos, &len, (const GLubyte*)"icc_texture", 11)) + { + ret = GLEW_SGIX_icc_texture; + continue; + } +#endif +#ifdef GL_SGIX_igloo_interface + if (_glewStrSame3(&pos, &len, (const GLubyte*)"igloo_interface", 15)) + { + ret = GLEW_SGIX_igloo_interface; + continue; + } +#endif +#ifdef GL_SGIX_image_compression + if (_glewStrSame3(&pos, &len, (const GLubyte*)"image_compression", 17)) + { + ret = GLEW_SGIX_image_compression; + continue; + } +#endif +#ifdef GL_SGIX_impact_pixel_texture + if (_glewStrSame3(&pos, &len, (const GLubyte*)"impact_pixel_texture", 20)) + { + ret = GLEW_SGIX_impact_pixel_texture; + continue; + } +#endif +#ifdef GL_SGIX_instrument_error + if (_glewStrSame3(&pos, &len, (const GLubyte*)"instrument_error", 16)) + { + ret = GLEW_SGIX_instrument_error; + continue; + } +#endif #ifdef GL_SGIX_interlace if (_glewStrSame3(&pos, &len, (const GLubyte*)"interlace", 9)) { @@ -17401,6 +29343,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_SGIX_line_quality_hint + if (_glewStrSame3(&pos, &len, (const GLubyte*)"line_quality_hint", 17)) + { + ret = GLEW_SGIX_line_quality_hint; + continue; + } +#endif #ifdef GL_SGIX_list_priority if (_glewStrSame3(&pos, &len, (const GLubyte*)"list_priority", 13)) { @@ -17408,6 +29357,48 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_SGIX_mpeg1 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"mpeg1", 5)) + { + ret = GLEW_SGIX_mpeg1; + continue; + } +#endif +#ifdef GL_SGIX_mpeg2 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"mpeg2", 5)) + { + ret = GLEW_SGIX_mpeg2; + continue; + } +#endif +#ifdef GL_SGIX_nonlinear_lighting_pervertex + if (_glewStrSame3(&pos, &len, (const GLubyte*)"nonlinear_lighting_pervertex", 28)) + { + ret = GLEW_SGIX_nonlinear_lighting_pervertex; + continue; + } +#endif +#ifdef GL_SGIX_nurbs_eval + if (_glewStrSame3(&pos, &len, (const GLubyte*)"nurbs_eval", 10)) + { + ret = GLEW_SGIX_nurbs_eval; + continue; + } +#endif +#ifdef GL_SGIX_occlusion_instrument + if (_glewStrSame3(&pos, &len, (const GLubyte*)"occlusion_instrument", 20)) + { + ret = GLEW_SGIX_occlusion_instrument; + continue; + } +#endif +#ifdef GL_SGIX_packed_6bytes + if (_glewStrSame3(&pos, &len, (const GLubyte*)"packed_6bytes", 13)) + { + ret = GLEW_SGIX_packed_6bytes; + continue; + } +#endif #ifdef GL_SGIX_pixel_texture if (_glewStrSame3(&pos, &len, (const GLubyte*)"pixel_texture", 13)) { @@ -17422,6 +29413,34 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_SGIX_pixel_texture_lod + if (_glewStrSame3(&pos, &len, (const GLubyte*)"pixel_texture_lod", 17)) + { + ret = GLEW_SGIX_pixel_texture_lod; + continue; + } +#endif +#ifdef GL_SGIX_pixel_tiles + if (_glewStrSame3(&pos, &len, (const GLubyte*)"pixel_tiles", 11)) + { + ret = GLEW_SGIX_pixel_tiles; + continue; + } +#endif +#ifdef GL_SGIX_polynomial_ffd + if (_glewStrSame3(&pos, &len, (const GLubyte*)"polynomial_ffd", 14)) + { + ret = GLEW_SGIX_polynomial_ffd; + continue; + } +#endif +#ifdef GL_SGIX_quad_mesh + if (_glewStrSame3(&pos, &len, (const GLubyte*)"quad_mesh", 9)) + { + ret = GLEW_SGIX_quad_mesh; + continue; + } +#endif #ifdef GL_SGIX_reference_plane if (_glewStrSame3(&pos, &len, (const GLubyte*)"reference_plane", 15)) { @@ -17436,6 +29455,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_SGIX_scalebias_hint + if (_glewStrSame3(&pos, &len, (const GLubyte*)"scalebias_hint", 14)) + { + ret = GLEW_SGIX_scalebias_hint; + continue; + } +#endif #ifdef GL_SGIX_shadow if (_glewStrSame3(&pos, &len, (const GLubyte*)"shadow", 6)) { @@ -17450,6 +29476,20 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_SGIX_slim + if (_glewStrSame3(&pos, &len, (const GLubyte*)"slim", 4)) + { + ret = GLEW_SGIX_slim; + continue; + } +#endif +#ifdef GL_SGIX_spotlight_cutoff + if (_glewStrSame3(&pos, &len, (const GLubyte*)"spotlight_cutoff", 16)) + { + ret = GLEW_SGIX_spotlight_cutoff; + continue; + } +#endif #ifdef GL_SGIX_sprite if (_glewStrSame3(&pos, &len, (const GLubyte*)"sprite", 6)) { @@ -17457,6 +29497,20 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_SGIX_subdiv_patch + if (_glewStrSame3(&pos, &len, (const GLubyte*)"subdiv_patch", 12)) + { + ret = GLEW_SGIX_subdiv_patch; + continue; + } +#endif +#ifdef GL_SGIX_subsample + if (_glewStrSame3(&pos, &len, (const GLubyte*)"subsample", 9)) + { + ret = GLEW_SGIX_subsample; + continue; + } +#endif #ifdef GL_SGIX_tag_sample_buffer if (_glewStrSame3(&pos, &len, (const GLubyte*)"tag_sample_buffer", 17)) { @@ -17485,6 +29539,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_SGIX_texture_mipmap_anisotropic + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_mipmap_anisotropic", 26)) + { + ret = GLEW_SGIX_texture_mipmap_anisotropic; + continue; + } +#endif #ifdef GL_SGIX_texture_multi_buffer if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_multi_buffer", 20)) { @@ -17492,6 +29553,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_SGIX_texture_phase + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_phase", 13)) + { + ret = GLEW_SGIX_texture_phase; + continue; + } +#endif #ifdef GL_SGIX_texture_range if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_range", 13)) { @@ -17506,6 +29574,27 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_SGIX_texture_supersample + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_supersample", 19)) + { + ret = GLEW_SGIX_texture_supersample; + continue; + } +#endif +#ifdef GL_SGIX_vector_ops + if (_glewStrSame3(&pos, &len, (const GLubyte*)"vector_ops", 10)) + { + ret = GLEW_SGIX_vector_ops; + continue; + } +#endif +#ifdef GL_SGIX_vertex_array_object + if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_array_object", 19)) + { + ret = GLEW_SGIX_vertex_array_object; + continue; + } +#endif #ifdef GL_SGIX_vertex_preclip if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_preclip", 14)) { @@ -17526,6 +29615,20 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) ret = GLEW_SGIX_ycrcb; continue; } +#endif +#ifdef GL_SGIX_ycrcb_subsample + if (_glewStrSame3(&pos, &len, (const GLubyte*)"ycrcb_subsample", 15)) + { + ret = GLEW_SGIX_ycrcb_subsample; + continue; + } +#endif +#ifdef GL_SGIX_ycrcba + if (_glewStrSame3(&pos, &len, (const GLubyte*)"ycrcba", 6)) + { + ret = GLEW_SGIX_ycrcba; + continue; + } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"SGI_", 4)) @@ -17544,6 +29647,27 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_SGI_complex + if (_glewStrSame3(&pos, &len, (const GLubyte*)"complex", 7)) + { + ret = GLEW_SGI_complex; + continue; + } +#endif +#ifdef GL_SGI_complex_type + if (_glewStrSame3(&pos, &len, (const GLubyte*)"complex_type", 12)) + { + ret = GLEW_SGI_complex_type; + continue; + } +#endif +#ifdef GL_SGI_fft + if (_glewStrSame3(&pos, &len, (const GLubyte*)"fft", 3)) + { + ret = GLEW_SGI_fft; + continue; + } +#endif #ifdef GL_SGI_texture_color_table if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_color_table", 19)) { @@ -17612,6 +29736,16 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) ret = GLEW_SUN_vertex; continue; } +#endif + } + if (_glewStrSame2(&pos, &len, (const GLubyte*)"VIV_", 4)) + { +#ifdef GL_VIV_shader_binary + if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_binary", 13)) + { + ret = GLEW_VIV_shader_binary; + continue; + } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"WIN_", 4)) @@ -17623,6 +29757,13 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) continue; } #endif +#ifdef GL_WIN_scene_markerXXX + if (_glewStrSame3(&pos, &len, (const GLubyte*)"scene_markerXXX", 15)) + { + ret = GLEW_WIN_scene_markerXXX; + continue; + } +#endif #ifdef GL_WIN_specular_fog if (_glewStrSame3(&pos, &len, (const GLubyte*)"specular_fog", 12)) { @@ -17644,13 +29785,9 @@ GLboolean GLEWAPIENTRY glewIsSupported (const char* name) return ret; } -#if defined(_WIN32) +#if defined(_WIN32) && !defined(GLEW_EGL) && !defined(GLEW_OSMESA) -#if defined(GLEW_MX) -GLboolean GLEWAPIENTRY wglewContextIsSupported (const WGLEWContext* ctx, const char* name) -#else GLboolean GLEWAPIENTRY wglewIsSupported (const char* name) -#endif { const GLubyte* pos = (const GLubyte*)name; GLuint len = _glewStrLen(pos); @@ -17712,6 +29849,13 @@ GLboolean GLEWAPIENTRY wglewIsSupported (const char* name) continue; } #endif +#ifdef WGL_ARB_create_context_no_error + if (_glewStrSame3(&pos, &len, (const GLubyte*)"create_context_no_error", 23)) + { + ret = WGLEW_ARB_create_context_no_error; + continue; + } +#endif #ifdef WGL_ARB_create_context_profile if (_glewStrSame3(&pos, &len, (const GLubyte*)"create_context_profile", 22)) { @@ -17816,6 +29960,13 @@ GLboolean GLEWAPIENTRY wglewIsSupported (const char* name) } if (_glewStrSame2(&pos, &len, (const GLubyte*)"EXT_", 4)) { +#ifdef WGL_EXT_colorspace + if (_glewStrSame3(&pos, &len, (const GLubyte*)"colorspace", 10)) + { + ret = WGLEW_EXT_colorspace; + continue; + } +#endif #ifdef WGL_EXT_create_context_es2_profile if (_glewStrSame3(&pos, &len, (const GLubyte*)"create_context_es2_profile", 26)) { @@ -17997,6 +30148,13 @@ GLboolean GLEWAPIENTRY wglewIsSupported (const char* name) continue; } #endif +#ifdef WGL_NV_multigpu_context + if (_glewStrSame3(&pos, &len, (const GLubyte*)"multigpu_context", 16)) + { + ret = WGLEW_NV_multigpu_context; + continue; + } +#endif #ifdef WGL_NV_multisample_coverage if (_glewStrSame3(&pos, &len, (const GLubyte*)"multisample_coverage", 20)) { @@ -18070,13 +30228,9 @@ GLboolean GLEWAPIENTRY wglewIsSupported (const char* name) return ret; } -#elif !defined(__ANDROID__) && !defined(__native_client__) && !defined(__HAIKU__) && !defined(__APPLE__) || defined(GLEW_APPLE_GLX) +#elif !defined(GLEW_OSMESA) && !defined(GLEW_EGL) && !defined(__ANDROID__) && !defined(__native_client__) && !defined(__HAIKU__) && !defined(__APPLE__) || defined(GLEW_APPLE_GLX) -#if defined(GLEW_MX) -GLboolean glxewContextIsSupported (const GLXEWContext* ctx, const char* name) -#else GLboolean glxewIsSupported (const char* name) -#endif { const GLubyte* pos = (const GLubyte*)name; GLuint len = _glewStrLen(pos); @@ -18145,6 +30299,13 @@ GLboolean glxewIsSupported (const char* name) continue; } #endif +#ifdef GLX_ARB_create_context_no_error + if (_glewStrSame3(&pos, &len, (const GLubyte*)"create_context_no_error", 23)) + { + ret = GLXEW_ARB_create_context_no_error; + continue; + } +#endif #ifdef GLX_ARB_create_context_profile if (_glewStrSame3(&pos, &len, (const GLubyte*)"create_context_profile", 22)) { @@ -18235,6 +30396,13 @@ GLboolean glxewIsSupported (const char* name) continue; } #endif +#ifdef GLX_EXT_context_priority + if (_glewStrSame3(&pos, &len, (const GLubyte*)"context_priority", 16)) + { + ret = GLXEW_EXT_context_priority; + continue; + } +#endif #ifdef GLX_EXT_create_context_es2_profile if (_glewStrSame3(&pos, &len, (const GLubyte*)"create_context_es2_profile", 26)) { @@ -18270,6 +30438,20 @@ GLboolean glxewIsSupported (const char* name) continue; } #endif +#ifdef GLX_EXT_libglvnd + if (_glewStrSame3(&pos, &len, (const GLubyte*)"libglvnd", 8)) + { + ret = GLXEW_EXT_libglvnd; + continue; + } +#endif +#ifdef GLX_EXT_no_config_context + if (_glewStrSame3(&pos, &len, (const GLubyte*)"no_config_context", 17)) + { + ret = GLXEW_EXT_no_config_context; + continue; + } +#endif #ifdef GLX_EXT_scene_marker if (_glewStrSame3(&pos, &len, (const GLubyte*)"scene_marker", 12)) { @@ -18412,6 +30594,13 @@ GLboolean glxewIsSupported (const char* name) continue; } #endif +#ifdef GLX_NV_multigpu_context + if (_glewStrSame3(&pos, &len, (const GLubyte*)"multigpu_context", 16)) + { + ret = GLXEW_NV_multigpu_context; + continue; + } +#endif #ifdef GLX_NV_multisample_coverage if (_glewStrSame3(&pos, &len, (const GLubyte*)"multisample_coverage", 20)) { @@ -18426,6 +30615,13 @@ GLboolean glxewIsSupported (const char* name) continue; } #endif +#ifdef GLX_NV_robustness_video_memory_purge + if (_glewStrSame3(&pos, &len, (const GLubyte*)"robustness_video_memory_purge", 29)) + { + ret = GLXEW_NV_robustness_video_memory_purge; + continue; + } +#endif #ifdef GLX_NV_swap_group if (_glewStrSame3(&pos, &len, (const GLubyte*)"swap_group", 10)) { @@ -18609,6 +30805,1145 @@ GLboolean glxewIsSupported (const char* name) return ret; } -#endif /* _WIN32 */ +#elif defined(GLEW_EGL) -#endif /* SLIC3R_GUI */ +GLboolean eglewIsSupported (const char* name) +{ + const GLubyte* pos = (const GLubyte*)name; + GLuint len = _glewStrLen(pos); + GLboolean ret = GL_TRUE; + while (ret && len > 0) + { + if(_glewStrSame1(&pos, &len, (const GLubyte*)"EGL_", 4)) + { + if (_glewStrSame2(&pos, &len, (const GLubyte*)"VERSION_", 8)) + { +#ifdef EGL_VERSION_1_0 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"1_0", 3)) + { + ret = EGLEW_VERSION_1_0; + continue; + } +#endif +#ifdef EGL_VERSION_1_1 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"1_1", 3)) + { + ret = EGLEW_VERSION_1_1; + continue; + } +#endif +#ifdef EGL_VERSION_1_2 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"1_2", 3)) + { + ret = EGLEW_VERSION_1_2; + continue; + } +#endif +#ifdef EGL_VERSION_1_3 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"1_3", 3)) + { + ret = EGLEW_VERSION_1_3; + continue; + } +#endif +#ifdef EGL_VERSION_1_4 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"1_4", 3)) + { + ret = EGLEW_VERSION_1_4; + continue; + } +#endif +#ifdef EGL_VERSION_1_5 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"1_5", 3)) + { + ret = EGLEW_VERSION_1_5; + continue; + } +#endif + } + if (_glewStrSame2(&pos, &len, (const GLubyte*)"ANDROID_", 8)) + { +#ifdef EGL_ANDROID_GLES_layers + if (_glewStrSame3(&pos, &len, (const GLubyte*)"GLES_layers", 11)) + { + ret = EGLEW_ANDROID_GLES_layers; + continue; + } +#endif +#ifdef EGL_ANDROID_blob_cache + if (_glewStrSame3(&pos, &len, (const GLubyte*)"blob_cache", 10)) + { + ret = EGLEW_ANDROID_blob_cache; + continue; + } +#endif +#ifdef EGL_ANDROID_create_native_client_buffer + if (_glewStrSame3(&pos, &len, (const GLubyte*)"create_native_client_buffer", 27)) + { + ret = EGLEW_ANDROID_create_native_client_buffer; + continue; + } +#endif +#ifdef EGL_ANDROID_framebuffer_target + if (_glewStrSame3(&pos, &len, (const GLubyte*)"framebuffer_target", 18)) + { + ret = EGLEW_ANDROID_framebuffer_target; + continue; + } +#endif +#ifdef EGL_ANDROID_front_buffer_auto_refresh + if (_glewStrSame3(&pos, &len, (const GLubyte*)"front_buffer_auto_refresh", 25)) + { + ret = EGLEW_ANDROID_front_buffer_auto_refresh; + continue; + } +#endif +#ifdef EGL_ANDROID_get_frame_timestamps + if (_glewStrSame3(&pos, &len, (const GLubyte*)"get_frame_timestamps", 20)) + { + ret = EGLEW_ANDROID_get_frame_timestamps; + continue; + } +#endif +#ifdef EGL_ANDROID_get_native_client_buffer + if (_glewStrSame3(&pos, &len, (const GLubyte*)"get_native_client_buffer", 24)) + { + ret = EGLEW_ANDROID_get_native_client_buffer; + continue; + } +#endif +#ifdef EGL_ANDROID_image_native_buffer + if (_glewStrSame3(&pos, &len, (const GLubyte*)"image_native_buffer", 19)) + { + ret = EGLEW_ANDROID_image_native_buffer; + continue; + } +#endif +#ifdef EGL_ANDROID_native_fence_sync + if (_glewStrSame3(&pos, &len, (const GLubyte*)"native_fence_sync", 17)) + { + ret = EGLEW_ANDROID_native_fence_sync; + continue; + } +#endif +#ifdef EGL_ANDROID_presentation_time + if (_glewStrSame3(&pos, &len, (const GLubyte*)"presentation_time", 17)) + { + ret = EGLEW_ANDROID_presentation_time; + continue; + } +#endif +#ifdef EGL_ANDROID_recordable + if (_glewStrSame3(&pos, &len, (const GLubyte*)"recordable", 10)) + { + ret = EGLEW_ANDROID_recordable; + continue; + } +#endif + } + if (_glewStrSame2(&pos, &len, (const GLubyte*)"ANGLE_", 6)) + { +#ifdef EGL_ANGLE_d3d_share_handle_client_buffer + if (_glewStrSame3(&pos, &len, (const GLubyte*)"d3d_share_handle_client_buffer", 30)) + { + ret = EGLEW_ANGLE_d3d_share_handle_client_buffer; + continue; + } +#endif +#ifdef EGL_ANGLE_device_d3d + if (_glewStrSame3(&pos, &len, (const GLubyte*)"device_d3d", 10)) + { + ret = EGLEW_ANGLE_device_d3d; + continue; + } +#endif +#ifdef EGL_ANGLE_query_surface_pointer + if (_glewStrSame3(&pos, &len, (const GLubyte*)"query_surface_pointer", 21)) + { + ret = EGLEW_ANGLE_query_surface_pointer; + continue; + } +#endif +#ifdef EGL_ANGLE_surface_d3d_texture_2d_share_handle + if (_glewStrSame3(&pos, &len, (const GLubyte*)"surface_d3d_texture_2d_share_handle", 35)) + { + ret = EGLEW_ANGLE_surface_d3d_texture_2d_share_handle; + continue; + } +#endif +#ifdef EGL_ANGLE_window_fixed_size + if (_glewStrSame3(&pos, &len, (const GLubyte*)"window_fixed_size", 17)) + { + ret = EGLEW_ANGLE_window_fixed_size; + continue; + } +#endif + } + if (_glewStrSame2(&pos, &len, (const GLubyte*)"ARM_", 4)) + { +#ifdef EGL_ARM_image_format + if (_glewStrSame3(&pos, &len, (const GLubyte*)"image_format", 12)) + { + ret = EGLEW_ARM_image_format; + continue; + } +#endif +#ifdef EGL_ARM_implicit_external_sync + if (_glewStrSame3(&pos, &len, (const GLubyte*)"implicit_external_sync", 22)) + { + ret = EGLEW_ARM_implicit_external_sync; + continue; + } +#endif +#ifdef EGL_ARM_pixmap_multisample_discard + if (_glewStrSame3(&pos, &len, (const GLubyte*)"pixmap_multisample_discard", 26)) + { + ret = EGLEW_ARM_pixmap_multisample_discard; + continue; + } +#endif + } + if (_glewStrSame2(&pos, &len, (const GLubyte*)"EXT_", 4)) + { +#ifdef EGL_EXT_bind_to_front + if (_glewStrSame3(&pos, &len, (const GLubyte*)"bind_to_front", 13)) + { + ret = EGLEW_EXT_bind_to_front; + continue; + } +#endif +#ifdef EGL_EXT_buffer_age + if (_glewStrSame3(&pos, &len, (const GLubyte*)"buffer_age", 10)) + { + ret = EGLEW_EXT_buffer_age; + continue; + } +#endif +#ifdef EGL_EXT_client_extensions + if (_glewStrSame3(&pos, &len, (const GLubyte*)"client_extensions", 17)) + { + ret = EGLEW_EXT_client_extensions; + continue; + } +#endif +#ifdef EGL_EXT_client_sync + if (_glewStrSame3(&pos, &len, (const GLubyte*)"client_sync", 11)) + { + ret = EGLEW_EXT_client_sync; + continue; + } +#endif +#ifdef EGL_EXT_compositor + if (_glewStrSame3(&pos, &len, (const GLubyte*)"compositor", 10)) + { + ret = EGLEW_EXT_compositor; + continue; + } +#endif +#ifdef EGL_EXT_create_context_robustness + if (_glewStrSame3(&pos, &len, (const GLubyte*)"create_context_robustness", 25)) + { + ret = EGLEW_EXT_create_context_robustness; + continue; + } +#endif +#ifdef EGL_EXT_device_base + if (_glewStrSame3(&pos, &len, (const GLubyte*)"device_base", 11)) + { + ret = EGLEW_EXT_device_base; + continue; + } +#endif +#ifdef EGL_EXT_device_drm + if (_glewStrSame3(&pos, &len, (const GLubyte*)"device_drm", 10)) + { + ret = EGLEW_EXT_device_drm; + continue; + } +#endif +#ifdef EGL_EXT_device_enumeration + if (_glewStrSame3(&pos, &len, (const GLubyte*)"device_enumeration", 18)) + { + ret = EGLEW_EXT_device_enumeration; + continue; + } +#endif +#ifdef EGL_EXT_device_openwf + if (_glewStrSame3(&pos, &len, (const GLubyte*)"device_openwf", 13)) + { + ret = EGLEW_EXT_device_openwf; + continue; + } +#endif +#ifdef EGL_EXT_device_query + if (_glewStrSame3(&pos, &len, (const GLubyte*)"device_query", 12)) + { + ret = EGLEW_EXT_device_query; + continue; + } +#endif +#ifdef EGL_EXT_gl_colorspace_bt2020_linear + if (_glewStrSame3(&pos, &len, (const GLubyte*)"gl_colorspace_bt2020_linear", 27)) + { + ret = EGLEW_EXT_gl_colorspace_bt2020_linear; + continue; + } +#endif +#ifdef EGL_EXT_gl_colorspace_bt2020_pq + if (_glewStrSame3(&pos, &len, (const GLubyte*)"gl_colorspace_bt2020_pq", 23)) + { + ret = EGLEW_EXT_gl_colorspace_bt2020_pq; + continue; + } +#endif +#ifdef EGL_EXT_gl_colorspace_display_p3 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"gl_colorspace_display_p3", 24)) + { + ret = EGLEW_EXT_gl_colorspace_display_p3; + continue; + } +#endif +#ifdef EGL_EXT_gl_colorspace_display_p3_linear + if (_glewStrSame3(&pos, &len, (const GLubyte*)"gl_colorspace_display_p3_linear", 31)) + { + ret = EGLEW_EXT_gl_colorspace_display_p3_linear; + continue; + } +#endif +#ifdef EGL_EXT_gl_colorspace_display_p3_passthrough + if (_glewStrSame3(&pos, &len, (const GLubyte*)"gl_colorspace_display_p3_passthrough", 36)) + { + ret = EGLEW_EXT_gl_colorspace_display_p3_passthrough; + continue; + } +#endif +#ifdef EGL_EXT_gl_colorspace_scrgb + if (_glewStrSame3(&pos, &len, (const GLubyte*)"gl_colorspace_scrgb", 19)) + { + ret = EGLEW_EXT_gl_colorspace_scrgb; + continue; + } +#endif +#ifdef EGL_EXT_gl_colorspace_scrgb_linear + if (_glewStrSame3(&pos, &len, (const GLubyte*)"gl_colorspace_scrgb_linear", 26)) + { + ret = EGLEW_EXT_gl_colorspace_scrgb_linear; + continue; + } +#endif +#ifdef EGL_EXT_image_dma_buf_import + if (_glewStrSame3(&pos, &len, (const GLubyte*)"image_dma_buf_import", 20)) + { + ret = EGLEW_EXT_image_dma_buf_import; + continue; + } +#endif +#ifdef EGL_EXT_image_dma_buf_import_modifiers + if (_glewStrSame3(&pos, &len, (const GLubyte*)"image_dma_buf_import_modifiers", 30)) + { + ret = EGLEW_EXT_image_dma_buf_import_modifiers; + continue; + } +#endif +#ifdef EGL_EXT_image_gl_colorspace + if (_glewStrSame3(&pos, &len, (const GLubyte*)"image_gl_colorspace", 19)) + { + ret = EGLEW_EXT_image_gl_colorspace; + continue; + } +#endif +#ifdef EGL_EXT_image_implicit_sync_control + if (_glewStrSame3(&pos, &len, (const GLubyte*)"image_implicit_sync_control", 27)) + { + ret = EGLEW_EXT_image_implicit_sync_control; + continue; + } +#endif +#ifdef EGL_EXT_multiview_window + if (_glewStrSame3(&pos, &len, (const GLubyte*)"multiview_window", 16)) + { + ret = EGLEW_EXT_multiview_window; + continue; + } +#endif +#ifdef EGL_EXT_output_base + if (_glewStrSame3(&pos, &len, (const GLubyte*)"output_base", 11)) + { + ret = EGLEW_EXT_output_base; + continue; + } +#endif +#ifdef EGL_EXT_output_drm + if (_glewStrSame3(&pos, &len, (const GLubyte*)"output_drm", 10)) + { + ret = EGLEW_EXT_output_drm; + continue; + } +#endif +#ifdef EGL_EXT_output_openwf + if (_glewStrSame3(&pos, &len, (const GLubyte*)"output_openwf", 13)) + { + ret = EGLEW_EXT_output_openwf; + continue; + } +#endif +#ifdef EGL_EXT_pixel_format_float + if (_glewStrSame3(&pos, &len, (const GLubyte*)"pixel_format_float", 18)) + { + ret = EGLEW_EXT_pixel_format_float; + continue; + } +#endif +#ifdef EGL_EXT_platform_base + if (_glewStrSame3(&pos, &len, (const GLubyte*)"platform_base", 13)) + { + ret = EGLEW_EXT_platform_base; + continue; + } +#endif +#ifdef EGL_EXT_platform_device + if (_glewStrSame3(&pos, &len, (const GLubyte*)"platform_device", 15)) + { + ret = EGLEW_EXT_platform_device; + continue; + } +#endif +#ifdef EGL_EXT_platform_wayland + if (_glewStrSame3(&pos, &len, (const GLubyte*)"platform_wayland", 16)) + { + ret = EGLEW_EXT_platform_wayland; + continue; + } +#endif +#ifdef EGL_EXT_platform_x11 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"platform_x11", 12)) + { + ret = EGLEW_EXT_platform_x11; + continue; + } +#endif +#ifdef EGL_EXT_protected_content + if (_glewStrSame3(&pos, &len, (const GLubyte*)"protected_content", 17)) + { + ret = EGLEW_EXT_protected_content; + continue; + } +#endif +#ifdef EGL_EXT_protected_surface + if (_glewStrSame3(&pos, &len, (const GLubyte*)"protected_surface", 17)) + { + ret = EGLEW_EXT_protected_surface; + continue; + } +#endif +#ifdef EGL_EXT_stream_consumer_egloutput + if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_consumer_egloutput", 25)) + { + ret = EGLEW_EXT_stream_consumer_egloutput; + continue; + } +#endif +#ifdef EGL_EXT_surface_CTA861_3_metadata + if (_glewStrSame3(&pos, &len, (const GLubyte*)"surface_CTA861_3_metadata", 25)) + { + ret = EGLEW_EXT_surface_CTA861_3_metadata; + continue; + } +#endif +#ifdef EGL_EXT_surface_SMPTE2086_metadata + if (_glewStrSame3(&pos, &len, (const GLubyte*)"surface_SMPTE2086_metadata", 26)) + { + ret = EGLEW_EXT_surface_SMPTE2086_metadata; + continue; + } +#endif +#ifdef EGL_EXT_swap_buffers_with_damage + if (_glewStrSame3(&pos, &len, (const GLubyte*)"swap_buffers_with_damage", 24)) + { + ret = EGLEW_EXT_swap_buffers_with_damage; + continue; + } +#endif +#ifdef EGL_EXT_sync_reuse + if (_glewStrSame3(&pos, &len, (const GLubyte*)"sync_reuse", 10)) + { + ret = EGLEW_EXT_sync_reuse; + continue; + } +#endif +#ifdef EGL_EXT_yuv_surface + if (_glewStrSame3(&pos, &len, (const GLubyte*)"yuv_surface", 11)) + { + ret = EGLEW_EXT_yuv_surface; + continue; + } +#endif + } + if (_glewStrSame2(&pos, &len, (const GLubyte*)"HI_", 3)) + { +#ifdef EGL_HI_clientpixmap + if (_glewStrSame3(&pos, &len, (const GLubyte*)"clientpixmap", 12)) + { + ret = EGLEW_HI_clientpixmap; + continue; + } +#endif +#ifdef EGL_HI_colorformats + if (_glewStrSame3(&pos, &len, (const GLubyte*)"colorformats", 12)) + { + ret = EGLEW_HI_colorformats; + continue; + } +#endif + } + if (_glewStrSame2(&pos, &len, (const GLubyte*)"IMG_", 4)) + { +#ifdef EGL_IMG_context_priority + if (_glewStrSame3(&pos, &len, (const GLubyte*)"context_priority", 16)) + { + ret = EGLEW_IMG_context_priority; + continue; + } +#endif +#ifdef EGL_IMG_image_plane_attribs + if (_glewStrSame3(&pos, &len, (const GLubyte*)"image_plane_attribs", 19)) + { + ret = EGLEW_IMG_image_plane_attribs; + continue; + } +#endif + } + if (_glewStrSame2(&pos, &len, (const GLubyte*)"KHR_", 4)) + { +#ifdef EGL_KHR_cl_event + if (_glewStrSame3(&pos, &len, (const GLubyte*)"cl_event", 8)) + { + ret = EGLEW_KHR_cl_event; + continue; + } +#endif +#ifdef EGL_KHR_cl_event2 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"cl_event2", 9)) + { + ret = EGLEW_KHR_cl_event2; + continue; + } +#endif +#ifdef EGL_KHR_client_get_all_proc_addresses + if (_glewStrSame3(&pos, &len, (const GLubyte*)"client_get_all_proc_addresses", 29)) + { + ret = EGLEW_KHR_client_get_all_proc_addresses; + continue; + } +#endif +#ifdef EGL_KHR_config_attribs + if (_glewStrSame3(&pos, &len, (const GLubyte*)"config_attribs", 14)) + { + ret = EGLEW_KHR_config_attribs; + continue; + } +#endif +#ifdef EGL_KHR_context_flush_control + if (_glewStrSame3(&pos, &len, (const GLubyte*)"context_flush_control", 21)) + { + ret = EGLEW_KHR_context_flush_control; + continue; + } +#endif +#ifdef EGL_KHR_create_context + if (_glewStrSame3(&pos, &len, (const GLubyte*)"create_context", 14)) + { + ret = EGLEW_KHR_create_context; + continue; + } +#endif +#ifdef EGL_KHR_create_context_no_error + if (_glewStrSame3(&pos, &len, (const GLubyte*)"create_context_no_error", 23)) + { + ret = EGLEW_KHR_create_context_no_error; + continue; + } +#endif +#ifdef EGL_KHR_debug + if (_glewStrSame3(&pos, &len, (const GLubyte*)"debug", 5)) + { + ret = EGLEW_KHR_debug; + continue; + } +#endif +#ifdef EGL_KHR_display_reference + if (_glewStrSame3(&pos, &len, (const GLubyte*)"display_reference", 17)) + { + ret = EGLEW_KHR_display_reference; + continue; + } +#endif +#ifdef EGL_KHR_fence_sync + if (_glewStrSame3(&pos, &len, (const GLubyte*)"fence_sync", 10)) + { + ret = EGLEW_KHR_fence_sync; + continue; + } +#endif +#ifdef EGL_KHR_get_all_proc_addresses + if (_glewStrSame3(&pos, &len, (const GLubyte*)"get_all_proc_addresses", 22)) + { + ret = EGLEW_KHR_get_all_proc_addresses; + continue; + } +#endif +#ifdef EGL_KHR_gl_colorspace + if (_glewStrSame3(&pos, &len, (const GLubyte*)"gl_colorspace", 13)) + { + ret = EGLEW_KHR_gl_colorspace; + continue; + } +#endif +#ifdef EGL_KHR_gl_renderbuffer_image + if (_glewStrSame3(&pos, &len, (const GLubyte*)"gl_renderbuffer_image", 21)) + { + ret = EGLEW_KHR_gl_renderbuffer_image; + continue; + } +#endif +#ifdef EGL_KHR_gl_texture_2D_image + if (_glewStrSame3(&pos, &len, (const GLubyte*)"gl_texture_2D_image", 19)) + { + ret = EGLEW_KHR_gl_texture_2D_image; + continue; + } +#endif +#ifdef EGL_KHR_gl_texture_3D_image + if (_glewStrSame3(&pos, &len, (const GLubyte*)"gl_texture_3D_image", 19)) + { + ret = EGLEW_KHR_gl_texture_3D_image; + continue; + } +#endif +#ifdef EGL_KHR_gl_texture_cubemap_image + if (_glewStrSame3(&pos, &len, (const GLubyte*)"gl_texture_cubemap_image", 24)) + { + ret = EGLEW_KHR_gl_texture_cubemap_image; + continue; + } +#endif +#ifdef EGL_KHR_image + if (_glewStrSame3(&pos, &len, (const GLubyte*)"image", 5)) + { + ret = EGLEW_KHR_image; + continue; + } +#endif +#ifdef EGL_KHR_image_base + if (_glewStrSame3(&pos, &len, (const GLubyte*)"image_base", 10)) + { + ret = EGLEW_KHR_image_base; + continue; + } +#endif +#ifdef EGL_KHR_image_pixmap + if (_glewStrSame3(&pos, &len, (const GLubyte*)"image_pixmap", 12)) + { + ret = EGLEW_KHR_image_pixmap; + continue; + } +#endif +#ifdef EGL_KHR_lock_surface + if (_glewStrSame3(&pos, &len, (const GLubyte*)"lock_surface", 12)) + { + ret = EGLEW_KHR_lock_surface; + continue; + } +#endif +#ifdef EGL_KHR_lock_surface2 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"lock_surface2", 13)) + { + ret = EGLEW_KHR_lock_surface2; + continue; + } +#endif +#ifdef EGL_KHR_lock_surface3 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"lock_surface3", 13)) + { + ret = EGLEW_KHR_lock_surface3; + continue; + } +#endif +#ifdef EGL_KHR_mutable_render_buffer + if (_glewStrSame3(&pos, &len, (const GLubyte*)"mutable_render_buffer", 21)) + { + ret = EGLEW_KHR_mutable_render_buffer; + continue; + } +#endif +#ifdef EGL_KHR_no_config_context + if (_glewStrSame3(&pos, &len, (const GLubyte*)"no_config_context", 17)) + { + ret = EGLEW_KHR_no_config_context; + continue; + } +#endif +#ifdef EGL_KHR_partial_update + if (_glewStrSame3(&pos, &len, (const GLubyte*)"partial_update", 14)) + { + ret = EGLEW_KHR_partial_update; + continue; + } +#endif +#ifdef EGL_KHR_platform_android + if (_glewStrSame3(&pos, &len, (const GLubyte*)"platform_android", 16)) + { + ret = EGLEW_KHR_platform_android; + continue; + } +#endif +#ifdef EGL_KHR_platform_gbm + if (_glewStrSame3(&pos, &len, (const GLubyte*)"platform_gbm", 12)) + { + ret = EGLEW_KHR_platform_gbm; + continue; + } +#endif +#ifdef EGL_KHR_platform_wayland + if (_glewStrSame3(&pos, &len, (const GLubyte*)"platform_wayland", 16)) + { + ret = EGLEW_KHR_platform_wayland; + continue; + } +#endif +#ifdef EGL_KHR_platform_x11 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"platform_x11", 12)) + { + ret = EGLEW_KHR_platform_x11; + continue; + } +#endif +#ifdef EGL_KHR_reusable_sync + if (_glewStrSame3(&pos, &len, (const GLubyte*)"reusable_sync", 13)) + { + ret = EGLEW_KHR_reusable_sync; + continue; + } +#endif +#ifdef EGL_KHR_stream + if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream", 6)) + { + ret = EGLEW_KHR_stream; + continue; + } +#endif +#ifdef EGL_KHR_stream_attrib + if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_attrib", 13)) + { + ret = EGLEW_KHR_stream_attrib; + continue; + } +#endif +#ifdef EGL_KHR_stream_consumer_gltexture + if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_consumer_gltexture", 25)) + { + ret = EGLEW_KHR_stream_consumer_gltexture; + continue; + } +#endif +#ifdef EGL_KHR_stream_cross_process_fd + if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_cross_process_fd", 23)) + { + ret = EGLEW_KHR_stream_cross_process_fd; + continue; + } +#endif +#ifdef EGL_KHR_stream_fifo + if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_fifo", 11)) + { + ret = EGLEW_KHR_stream_fifo; + continue; + } +#endif +#ifdef EGL_KHR_stream_producer_aldatalocator + if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_producer_aldatalocator", 29)) + { + ret = EGLEW_KHR_stream_producer_aldatalocator; + continue; + } +#endif +#ifdef EGL_KHR_stream_producer_eglsurface + if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_producer_eglsurface", 26)) + { + ret = EGLEW_KHR_stream_producer_eglsurface; + continue; + } +#endif +#ifdef EGL_KHR_surfaceless_context + if (_glewStrSame3(&pos, &len, (const GLubyte*)"surfaceless_context", 19)) + { + ret = EGLEW_KHR_surfaceless_context; + continue; + } +#endif +#ifdef EGL_KHR_swap_buffers_with_damage + if (_glewStrSame3(&pos, &len, (const GLubyte*)"swap_buffers_with_damage", 24)) + { + ret = EGLEW_KHR_swap_buffers_with_damage; + continue; + } +#endif +#ifdef EGL_KHR_vg_parent_image + if (_glewStrSame3(&pos, &len, (const GLubyte*)"vg_parent_image", 15)) + { + ret = EGLEW_KHR_vg_parent_image; + continue; + } +#endif +#ifdef EGL_KHR_wait_sync + if (_glewStrSame3(&pos, &len, (const GLubyte*)"wait_sync", 9)) + { + ret = EGLEW_KHR_wait_sync; + continue; + } +#endif + } + if (_glewStrSame2(&pos, &len, (const GLubyte*)"MESA_", 5)) + { +#ifdef EGL_MESA_drm_image + if (_glewStrSame3(&pos, &len, (const GLubyte*)"drm_image", 9)) + { + ret = EGLEW_MESA_drm_image; + continue; + } +#endif +#ifdef EGL_MESA_image_dma_buf_export + if (_glewStrSame3(&pos, &len, (const GLubyte*)"image_dma_buf_export", 20)) + { + ret = EGLEW_MESA_image_dma_buf_export; + continue; + } +#endif +#ifdef EGL_MESA_platform_gbm + if (_glewStrSame3(&pos, &len, (const GLubyte*)"platform_gbm", 12)) + { + ret = EGLEW_MESA_platform_gbm; + continue; + } +#endif +#ifdef EGL_MESA_platform_surfaceless + if (_glewStrSame3(&pos, &len, (const GLubyte*)"platform_surfaceless", 20)) + { + ret = EGLEW_MESA_platform_surfaceless; + continue; + } +#endif +#ifdef EGL_MESA_query_driver + if (_glewStrSame3(&pos, &len, (const GLubyte*)"query_driver", 12)) + { + ret = EGLEW_MESA_query_driver; + continue; + } +#endif + } + if (_glewStrSame2(&pos, &len, (const GLubyte*)"NOK_", 4)) + { +#ifdef EGL_NOK_swap_region + if (_glewStrSame3(&pos, &len, (const GLubyte*)"swap_region", 11)) + { + ret = EGLEW_NOK_swap_region; + continue; + } +#endif +#ifdef EGL_NOK_swap_region2 + if (_glewStrSame3(&pos, &len, (const GLubyte*)"swap_region2", 12)) + { + ret = EGLEW_NOK_swap_region2; + continue; + } +#endif +#ifdef EGL_NOK_texture_from_pixmap + if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_from_pixmap", 19)) + { + ret = EGLEW_NOK_texture_from_pixmap; + continue; + } +#endif + } + if (_glewStrSame2(&pos, &len, (const GLubyte*)"NV_", 3)) + { +#ifdef EGL_NV_3dvision_surface + if (_glewStrSame3(&pos, &len, (const GLubyte*)"3dvision_surface", 16)) + { + ret = EGLEW_NV_3dvision_surface; + continue; + } +#endif +#ifdef EGL_NV_context_priority_realtime + if (_glewStrSame3(&pos, &len, (const GLubyte*)"context_priority_realtime", 25)) + { + ret = EGLEW_NV_context_priority_realtime; + continue; + } +#endif +#ifdef EGL_NV_coverage_sample + if (_glewStrSame3(&pos, &len, (const GLubyte*)"coverage_sample", 15)) + { + ret = EGLEW_NV_coverage_sample; + continue; + } +#endif +#ifdef EGL_NV_coverage_sample_resolve + if (_glewStrSame3(&pos, &len, (const GLubyte*)"coverage_sample_resolve", 23)) + { + ret = EGLEW_NV_coverage_sample_resolve; + continue; + } +#endif +#ifdef EGL_NV_cuda_event + if (_glewStrSame3(&pos, &len, (const GLubyte*)"cuda_event", 10)) + { + ret = EGLEW_NV_cuda_event; + continue; + } +#endif +#ifdef EGL_NV_depth_nonlinear + if (_glewStrSame3(&pos, &len, (const GLubyte*)"depth_nonlinear", 15)) + { + ret = EGLEW_NV_depth_nonlinear; + continue; + } +#endif +#ifdef EGL_NV_device_cuda + if (_glewStrSame3(&pos, &len, (const GLubyte*)"device_cuda", 11)) + { + ret = EGLEW_NV_device_cuda; + continue; + } +#endif +#ifdef EGL_NV_native_query + if (_glewStrSame3(&pos, &len, (const GLubyte*)"native_query", 12)) + { + ret = EGLEW_NV_native_query; + continue; + } +#endif +#ifdef EGL_NV_post_convert_rounding + if (_glewStrSame3(&pos, &len, (const GLubyte*)"post_convert_rounding", 21)) + { + ret = EGLEW_NV_post_convert_rounding; + continue; + } +#endif +#ifdef EGL_NV_post_sub_buffer + if (_glewStrSame3(&pos, &len, (const GLubyte*)"post_sub_buffer", 15)) + { + ret = EGLEW_NV_post_sub_buffer; + continue; + } +#endif +#ifdef EGL_NV_quadruple_buffer + if (_glewStrSame3(&pos, &len, (const GLubyte*)"quadruple_buffer", 16)) + { + ret = EGLEW_NV_quadruple_buffer; + continue; + } +#endif +#ifdef EGL_NV_robustness_video_memory_purge + if (_glewStrSame3(&pos, &len, (const GLubyte*)"robustness_video_memory_purge", 29)) + { + ret = EGLEW_NV_robustness_video_memory_purge; + continue; + } +#endif +#ifdef EGL_NV_stream_consumer_gltexture_yuv + if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_consumer_gltexture_yuv", 29)) + { + ret = EGLEW_NV_stream_consumer_gltexture_yuv; + continue; + } +#endif +#ifdef EGL_NV_stream_cross_display + if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_cross_display", 20)) + { + ret = EGLEW_NV_stream_cross_display; + continue; + } +#endif +#ifdef EGL_NV_stream_cross_object + if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_cross_object", 19)) + { + ret = EGLEW_NV_stream_cross_object; + continue; + } +#endif +#ifdef EGL_NV_stream_cross_partition + if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_cross_partition", 22)) + { + ret = EGLEW_NV_stream_cross_partition; + continue; + } +#endif +#ifdef EGL_NV_stream_cross_process + if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_cross_process", 20)) + { + ret = EGLEW_NV_stream_cross_process; + continue; + } +#endif +#ifdef EGL_NV_stream_cross_system + if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_cross_system", 19)) + { + ret = EGLEW_NV_stream_cross_system; + continue; + } +#endif +#ifdef EGL_NV_stream_dma + if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_dma", 10)) + { + ret = EGLEW_NV_stream_dma; + continue; + } +#endif +#ifdef EGL_NV_stream_fifo_next + if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_fifo_next", 16)) + { + ret = EGLEW_NV_stream_fifo_next; + continue; + } +#endif +#ifdef EGL_NV_stream_fifo_synchronous + if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_fifo_synchronous", 23)) + { + ret = EGLEW_NV_stream_fifo_synchronous; + continue; + } +#endif +#ifdef EGL_NV_stream_flush + if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_flush", 12)) + { + ret = EGLEW_NV_stream_flush; + continue; + } +#endif +#ifdef EGL_NV_stream_frame_limits + if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_frame_limits", 19)) + { + ret = EGLEW_NV_stream_frame_limits; + continue; + } +#endif +#ifdef EGL_NV_stream_metadata + if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_metadata", 15)) + { + ret = EGLEW_NV_stream_metadata; + continue; + } +#endif +#ifdef EGL_NV_stream_origin + if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_origin", 13)) + { + ret = EGLEW_NV_stream_origin; + continue; + } +#endif +#ifdef EGL_NV_stream_remote + if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_remote", 13)) + { + ret = EGLEW_NV_stream_remote; + continue; + } +#endif +#ifdef EGL_NV_stream_reset + if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_reset", 12)) + { + ret = EGLEW_NV_stream_reset; + continue; + } +#endif +#ifdef EGL_NV_stream_socket + if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_socket", 13)) + { + ret = EGLEW_NV_stream_socket; + continue; + } +#endif +#ifdef EGL_NV_stream_socket_inet + if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_socket_inet", 18)) + { + ret = EGLEW_NV_stream_socket_inet; + continue; + } +#endif +#ifdef EGL_NV_stream_socket_unix + if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_socket_unix", 18)) + { + ret = EGLEW_NV_stream_socket_unix; + continue; + } +#endif +#ifdef EGL_NV_stream_sync + if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_sync", 11)) + { + ret = EGLEW_NV_stream_sync; + continue; + } +#endif +#ifdef EGL_NV_sync + if (_glewStrSame3(&pos, &len, (const GLubyte*)"sync", 4)) + { + ret = EGLEW_NV_sync; + continue; + } +#endif +#ifdef EGL_NV_system_time + if (_glewStrSame3(&pos, &len, (const GLubyte*)"system_time", 11)) + { + ret = EGLEW_NV_system_time; + continue; + } +#endif +#ifdef EGL_NV_triple_buffer + if (_glewStrSame3(&pos, &len, (const GLubyte*)"triple_buffer", 13)) + { + ret = EGLEW_NV_triple_buffer; + continue; + } +#endif + } + if (_glewStrSame2(&pos, &len, (const GLubyte*)"TIZEN_", 6)) + { +#ifdef EGL_TIZEN_image_native_buffer + if (_glewStrSame3(&pos, &len, (const GLubyte*)"image_native_buffer", 19)) + { + ret = EGLEW_TIZEN_image_native_buffer; + continue; + } +#endif +#ifdef EGL_TIZEN_image_native_surface + if (_glewStrSame3(&pos, &len, (const GLubyte*)"image_native_surface", 20)) + { + ret = EGLEW_TIZEN_image_native_surface; + continue; + } +#endif + } + if (_glewStrSame2(&pos, &len, (const GLubyte*)"WL_", 3)) + { +#ifdef EGL_WL_bind_wayland_display + if (_glewStrSame3(&pos, &len, (const GLubyte*)"bind_wayland_display", 20)) + { + ret = EGLEW_WL_bind_wayland_display; + continue; + } +#endif +#ifdef EGL_WL_create_wayland_buffer_from_image + if (_glewStrSame3(&pos, &len, (const GLubyte*)"create_wayland_buffer_from_image", 32)) + { + ret = EGLEW_WL_create_wayland_buffer_from_image; + continue; + } +#endif + } + } + ret = (len == 0); + } + return ret; +} + +#endif /* _WIN32 */ diff --git a/src/imgui/imconfig.h b/src/imgui/imconfig.h index c5627f16b..e95ae3adf 100644 --- a/src/imgui/imconfig.h +++ b/src/imgui/imconfig.h @@ -154,7 +154,8 @@ namespace ImGui const wchar_t DocumentationHoverButton = 0x2601; const wchar_t ClippyMarker = 0x2602; const wchar_t InfoMarker = 0x2603; - + const wchar_t SliderFloatEditBtnIcon = 0x2604; + // void MyFunction(const char* name, const MyMatrix44& v); } diff --git a/src/libslic3r/AppConfig.cpp b/src/libslic3r/AppConfig.cpp index d5444edc6..9c9e7e0f3 100644 --- a/src/libslic3r/AppConfig.cpp +++ b/src/libslic3r/AppConfig.cpp @@ -71,8 +71,6 @@ void AppConfig::set_defaults() if (get("drop_project_action").empty()) set("drop_project_action", "1"); - if (get("version_check").empty()) - set("version_check", "1"); if (get("preset_update").empty()) set("preset_update", "1"); @@ -182,6 +180,9 @@ void AppConfig::set_defaults() if (get("dark_color_mode").empty()) set("dark_color_mode", "0"); + + if (get("sys_menu_enabled").empty()) + set("sys_menu_enabled", "1"); #endif // _WIN32 // Remove legacy window positions/sizes @@ -248,11 +249,11 @@ std::string AppConfig::load() bool recovered = false; try { - ifs.open(AppConfig::config_path()); + ifs.open(AppConfig::loading_path()); #ifdef WIN32 // Verify the checksum of the config file without taking just for debugging purpose. if (!verify_config_file_checksum(ifs)) - BOOST_LOG_TRIVIAL(info) << "The configuration file " << AppConfig::config_path() << + BOOST_LOG_TRIVIAL(info) << "The configuration file " << AppConfig::loading_path() << " has a wrong MD5 checksum or the checksum is missing. This may indicate a file corruption or a harmless user edit."; ifs.seekg(0, boost::nowide::ifstream::beg); @@ -262,32 +263,32 @@ std::string AppConfig::load() #ifdef WIN32 // The configuration file is corrupted, try replacing it with the backup configuration. ifs.close(); - std::string backup_path = (boost::format("%1%.bak") % AppConfig::config_path()).str(); + std::string backup_path = (boost::format("%1%.bak") % AppConfig::loading_path()).str(); if (boost::filesystem::exists(backup_path)) { // Compute checksum of the configuration backup file and try to load configuration from it when the checksum is correct. boost::nowide::ifstream backup_ifs(backup_path); if (!verify_config_file_checksum(backup_ifs)) { - BOOST_LOG_TRIVIAL(error) << format("Both \"%1%\" and \"%2%\" are corrupted. It isn't possible to restore configuration from the backup.", AppConfig::config_path(), backup_path); + BOOST_LOG_TRIVIAL(error) << format("Both \"%1%\" and \"%2%\" are corrupted. It isn't possible to restore configuration from the backup.", AppConfig::loading_path(), backup_path); backup_ifs.close(); boost::filesystem::remove(backup_path); - } else if (std::string error_message; copy_file(backup_path, AppConfig::config_path(), error_message, false) != SUCCESS) { - BOOST_LOG_TRIVIAL(error) << format("Configuration file \"%1%\" is corrupted. Failed to restore from backup \"%2%\": %3%", AppConfig::config_path(), backup_path, error_message); + } else if (std::string error_message; copy_file(backup_path, AppConfig::loading_path(), error_message, false) != SUCCESS) { + BOOST_LOG_TRIVIAL(error) << format("Configuration file \"%1%\" is corrupted. Failed to restore from backup \"%2%\": %3%", AppConfig::loading_path(), backup_path, error_message); backup_ifs.close(); boost::filesystem::remove(backup_path); } else { - BOOST_LOG_TRIVIAL(info) << format("Configuration file \"%1%\" was corrupted. It has been succesfully restored from the backup \"%2%\".", AppConfig::config_path(), backup_path); + BOOST_LOG_TRIVIAL(info) << format("Configuration file \"%1%\" was corrupted. It has been succesfully restored from the backup \"%2%\".", AppConfig::loading_path(), backup_path); // Try parse configuration file after restore from backup. try { - ifs.open(AppConfig::config_path()); + ifs.open(AppConfig::loading_path()); pt::read_ini(ifs, tree); recovered = true; } catch (pt::ptree_error& ex) { - BOOST_LOG_TRIVIAL(info) << format("Failed to parse configuration file \"%1%\" after it has been restored from backup: %2%", AppConfig::config_path(), ex.what()); + BOOST_LOG_TRIVIAL(info) << format("Failed to parse configuration file \"%1%\" after it has been restored from backup: %2%", AppConfig::loading_path(), ex.what()); } } } else #endif // WIN32 - BOOST_LOG_TRIVIAL(info) << format("Failed to parse configuration file \"%1%\": %2%", AppConfig::config_path(), ex.what()); + BOOST_LOG_TRIVIAL(info) << format("Failed to parse configuration file \"%1%\": %2%", AppConfig::loading_path(), ex.what()); if (! recovered) { // Report the initial error of parsing PrusaSlicer.ini. // Error while parsing config file. We'll customize the error message and rethrow to be displayed. diff --git a/src/libslic3r/AppConfig.hpp b/src/libslic3r/AppConfig.hpp index 03c35f35a..5d9f32ab7 100644 --- a/src/libslic3r/AppConfig.hpp +++ b/src/libslic3r/AppConfig.hpp @@ -148,6 +148,9 @@ public: // Does the config file exist? bool exists(); + void set_loading_path(const std::string& path) { m_loading_path = path; } + std::string loading_path() { return (m_loading_path.empty() ? config_path() : m_loading_path); } + std::vector get_recent_projects() const; void set_recent_projects(const std::vector& recent_projects); @@ -196,6 +199,8 @@ private: Semver m_orig_version; // Whether the existing version is before system profiles & configuration updating bool m_legacy_datadir; + + std::string m_loading_path; }; } // namespace Slic3r diff --git a/src/libslic3r/Brim.cpp b/src/libslic3r/Brim.cpp index 8f31b0695..858ca770b 100644 --- a/src/libslic3r/Brim.cpp +++ b/src/libslic3r/Brim.cpp @@ -72,10 +72,6 @@ static ConstPrintObjectPtrs get_top_level_objects_with_brim(const Print &print, ConstPrintObjectPtrs island_to_object; for(size_t print_object_idx = 0; print_object_idx < print.objects().size(); ++print_object_idx) { const PrintObject *object = print.objects()[print_object_idx]; - - if (! object->has_brim()) - continue; - Polygons islands_object; islands_object.reserve(bottom_layers_expolygons[print_object_idx].size()); for (const ExPolygon &ex_poly : bottom_layers_expolygons[print_object_idx]) @@ -134,6 +130,9 @@ static Polygons top_level_outer_brim_islands(const ConstPrintObjectPtrs &top_lev { Polygons islands; for (const PrintObject *object : top_level_objects_with_brim) { + if (!object->has_brim()) + continue; + //FIXME how about the brim type? auto brim_separation = float(scale_(object->config().brim_separation.value)); Polygons islands_object; @@ -177,11 +176,14 @@ static ExPolygons top_level_outer_brim_area(const Print &print if ((brim_type == BrimType::btOuterOnly || brim_type == BrimType::btOuterAndInner) && is_top_outer_brim) append(brim_area_object, diff_ex(offset(ex_poly.contour, brim_width + brim_separation, ClipperLib::jtSquare), offset(ex_poly.contour, brim_separation, ClipperLib::jtSquare))); + // After 7ff76d07684858fd937ef2f5d863f105a10f798e offset and shrink don't work with CW polygons (holes), so let's make it CCW. + Polygons ex_poly_holes_reversed = ex_poly.holes; + polygons_reverse(ex_poly_holes_reversed); if (brim_type == BrimType::btOuterOnly || brim_type == BrimType::btNoBrim) - append(no_brim_area_object, shrink_ex(ex_poly.holes, no_brim_offset, ClipperLib::jtSquare)); + append(no_brim_area_object, shrink_ex(ex_poly_holes_reversed, no_brim_offset, ClipperLib::jtSquare)); if (brim_type == BrimType::btInnerOnly || brim_type == BrimType::btNoBrim) - append(no_brim_area_object, diff_ex(offset(ex_poly.contour, no_brim_offset, ClipperLib::jtSquare), ex_poly.holes)); + append(no_brim_area_object, diff_ex(offset(ex_poly.contour, no_brim_offset, ClipperLib::jtSquare), ex_poly_holes_reversed)); if (brim_type != BrimType::btNoBrim) append(no_brim_area_object, offset_ex(ExPolygon(ex_poly.contour), brim_separation, ClipperLib::jtSquare)); @@ -230,16 +232,19 @@ static ExPolygons inner_brim_area(const Print &print, append(brim_area_object, diff_ex(offset(ex_poly.contour, brim_width + brim_separation, ClipperLib::jtSquare), offset(ex_poly.contour, brim_separation, ClipperLib::jtSquare))); } + // After 7ff76d07684858fd937ef2f5d863f105a10f798e offset and shrink don't work with CW polygons (holes), so let's make it CCW. + Polygons ex_poly_holes_reversed = ex_poly.holes; + polygons_reverse(ex_poly_holes_reversed); if (brim_type == BrimType::btInnerOnly || brim_type == BrimType::btOuterAndInner) - append(brim_area_object, diff_ex(shrink_ex(ex_poly.holes, brim_separation, ClipperLib::jtSquare), shrink_ex(ex_poly.holes, brim_width + brim_separation, ClipperLib::jtSquare))); + append(brim_area_object, diff_ex(shrink_ex(ex_poly_holes_reversed, brim_separation, ClipperLib::jtSquare), shrink_ex(ex_poly_holes_reversed, brim_width + brim_separation, ClipperLib::jtSquare))); if (brim_type == BrimType::btInnerOnly || brim_type == BrimType::btNoBrim) - append(no_brim_area_object, diff_ex(offset(ex_poly.contour, no_brim_offset, ClipperLib::jtSquare), ex_poly.holes)); + append(no_brim_area_object, diff_ex(offset(ex_poly.contour, no_brim_offset, ClipperLib::jtSquare), ex_poly_holes_reversed)); if (brim_type == BrimType::btOuterOnly || brim_type == BrimType::btNoBrim) - append(no_brim_area_object, shrink_ex(ex_poly.holes, no_brim_offset, ClipperLib::jtSquare)); + append(no_brim_area_object, diff_ex(ExPolygon(ex_poly.contour), shrink_ex(ex_poly_holes_reversed, no_brim_offset, ClipperLib::jtSquare))); - append(holes_object, ex_poly.holes); + append(holes_object, ex_poly_holes_reversed); } append(no_brim_area_object, offset_ex(bottom_layers_expolygons[print_object_idx], brim_separation, ClipperLib::jtSquare)); diff --git a/src/libslic3r/CMakeLists.txt b/src/libslic3r/CMakeLists.txt index d42077b9c..5ad589289 100644 --- a/src/libslic3r/CMakeLists.txt +++ b/src/libslic3r/CMakeLists.txt @@ -114,6 +114,14 @@ add_library(libslic3r STATIC GCodeWriter.hpp Geometry.cpp Geometry.hpp + Geometry/Circle.cpp + Geometry/Circle.hpp + Geometry/MedialAxis.cpp + Geometry/MedialAxis.hpp + Geometry/Voronoi.hpp + Geometry/VoronoiOffset.cpp + Geometry/VoronoiOffset.hpp + Geometry/VoronoiVisualUtils.hpp Int128.hpp KDTreeIndirect.hpp Layer.cpp @@ -218,18 +226,12 @@ add_library(libslic3r STATIC TriangleSelector.cpp TriangleSelector.hpp MTUtils.hpp - VoronoiOffset.cpp - VoronoiOffset.hpp - VoronoiVisualUtils.hpp Zipper.hpp Zipper.cpp MinAreaBoundingBox.hpp MinAreaBoundingBox.cpp miniz_extension.hpp miniz_extension.cpp - SimplifyMesh.hpp - SimplifyMeshImpl.hpp - SimplifyMesh.cpp MarchingSquares.hpp Execution/Execution.hpp Execution/ExecutionSeq.hpp diff --git a/src/libslic3r/ExPolygon.cpp b/src/libslic3r/ExPolygon.cpp index bfe0479fe..069c6e602 100644 --- a/src/libslic3r/ExPolygon.cpp +++ b/src/libslic3r/ExPolygon.cpp @@ -1,7 +1,7 @@ #include "BoundingBox.hpp" #include "ExPolygon.hpp" #include "Exception.hpp" -#include "Geometry.hpp" +#include "Geometry/MedialAxis.hpp" #include "Polygon.hpp" #include "Line.hpp" #include "ClipperUtils.hpp" diff --git a/src/libslic3r/Fill/FillBase.cpp b/src/libslic3r/Fill/FillBase.cpp index a41a11cb7..52653f975 100644 --- a/src/libslic3r/Fill/FillBase.cpp +++ b/src/libslic3r/Fill/FillBase.cpp @@ -4,6 +4,7 @@ #include "../ClipperUtils.hpp" #include "../EdgeGrid.hpp" #include "../Geometry.hpp" +#include "../Geometry/Circle.hpp" #include "../Point.hpp" #include "../PrintConfig.hpp" #include "../Surface.hpp" diff --git a/src/libslic3r/Format/SL1.cpp b/src/libslic3r/Format/SL1.cpp index c4b8f030f..a8f920ae2 100644 --- a/src/libslic3r/Format/SL1.cpp +++ b/src/libslic3r/Format/SL1.cpp @@ -135,7 +135,7 @@ ArchiveData extract_sla_archive(const std::string &zipfname, ExPolygons rings_to_expolygons(const std::vector &rings, double px_w, double px_h) { - ExPolygons polys; polys.reserve(rings.size()); + auto polys = reserve_vector(rings.size()); for (const marchsq::Ring &ring : rings) { Polygon poly; Points &pts = poly.points; @@ -147,7 +147,7 @@ ExPolygons rings_to_expolygons(const std::vector &rings, polys.emplace_back(poly); } - // reverse the raster transformations + // TODO: Is a union necessary? return union_ex(polys); } @@ -270,11 +270,11 @@ std::vector extract_slices_from_sla_archive( png::ReadBuf rb{arch.images[i].buf.data(), arch.images[i].buf.size()}; if (!png::decode_png(rb, img)) return; - auto rings = marchsq::execute(img, 128, rstp.win); + uint8_t isoval = 128; + auto rings = marchsq::execute(img, isoval, rstp.win); ExPolygons expolys = rings_to_expolygons(rings, rstp.px_w, rstp.px_h); - // Invert the raster transformations indicated in - // the profile metadata + // Invert the raster transformations indicated in the profile metadata invert_raster_trafo(expolys, rstp.trafo, rstp.width, rstp.height); slices[i] = std::move(expolys); @@ -310,7 +310,24 @@ ConfigSubstitutions import_sla_archive( std::string exclude_entries{"thumbnail"}; ArchiveData arch = extract_sla_archive(zipfname, exclude_entries); DynamicPrintConfig profile_in, profile_use; - ConfigSubstitutions config_substitutions = profile_in.load(arch.profile, ForwardCompatibilitySubstitutionRule::Enable); + ConfigSubstitutions config_substitutions = + profile_in.load(arch.profile, + ForwardCompatibilitySubstitutionRule::Enable); + + if (profile_in.empty()) { // missing profile... do guess work + // try to recover the layer height from the config.ini which was + // present in all versions of sl1 files. + if (auto lh_opt = arch.config.find("layerHeight"); + lh_opt != arch.config.not_found()) + { + auto lh_str = lh_opt->second.data(); + try { + double lh = std::stod(lh_str); // TODO replace with std::from_chars + profile_out.set("layer_height", lh); + profile_out.set("initial_layer_height", lh); + } catch(...) {} + } + } // If the archive contains an empty profile, use the one that was passed as output argument // then replace it with the readed profile to report that it was empty. diff --git a/src/libslic3r/GCode/CoolingBuffer.cpp b/src/libslic3r/GCode/CoolingBuffer.cpp index 3dcc121c1..5657b60fb 100644 --- a/src/libslic3r/GCode/CoolingBuffer.cpp +++ b/src/libslic3r/GCode/CoolingBuffer.cpp @@ -769,27 +769,31 @@ std::string CoolingBuffer::apply_layer_cooldown( // Find the 'F' word. const char *fpos = strstr(line_start + 2, " F") + 2; int new_feedrate = current_feedrate; + // Modify the F word of the current G-code line. bool modify = false; + // Remove the F word from the current G-code line. + bool remove = false; assert(fpos != nullptr); - if (line->slowdown) { - modify = true; - new_feedrate = int(floor(60. * line->feedrate + 0.5)); - } else { - new_feedrate = atoi(fpos); - if (new_feedrate != current_feedrate) { - // Append the line without the comment. - new_gcode.append(line_start, end - line_start); - current_feedrate = new_feedrate; - } else if ((line->type & (CoolingLine::TYPE_ADJUSTABLE | CoolingLine::TYPE_EXTERNAL_PERIMETER | CoolingLine::TYPE_WIPE)) || line->length == 0.) { + new_feedrate = line->slowdown ? int(floor(60. * line->feedrate + 0.5)) : atoi(fpos); + if (new_feedrate == current_feedrate) { + // No need to change the F value. + if ((line->type & (CoolingLine::TYPE_ADJUSTABLE | CoolingLine::TYPE_EXTERNAL_PERIMETER | CoolingLine::TYPE_WIPE)) || line->length == 0.) // Feedrate does not change and this line does not move the print head. Skip the complete G-code line including the G-code comment. end = line_end; - } else { - // Remove the feedrate from the G0/G1 line. - modify = true; - } + else + // Remove the feedrate from the G0/G1 line. The G-code line may become empty! + remove = true; + } else if (line->slowdown) { + // The F value will be overwritten. + modify = true; + } else { + // The F value is different from current_feedrate, but not slowed down, thus the G-code line will not be modified. + // Emit the line without the comment. + new_gcode.append(line_start, end - line_start); + current_feedrate = new_feedrate; } - if (modify) { - if (new_feedrate != current_feedrate) { + if (modify || remove) { + if (modify) { // Replace the feedrate. new_gcode.append(line_start, fpos - line_start); current_feedrate = new_feedrate; @@ -805,12 +809,16 @@ std::string CoolingBuffer::apply_layer_cooldown( new_gcode.append(line_start, f - line_start + 1); } // Skip the non-whitespaces of the F parameter up the comment or end of line. - for (; fpos != end && *fpos != ' ' && *fpos != ';' && *fpos != '\n'; ++fpos); + for (; fpos != end && *fpos != ' ' && *fpos != ';' && *fpos != '\n'; ++ fpos); // Append the rest of the line without the comment. if (fpos < end) + // The G-code line is not empty yet. Emit the rest of it. new_gcode.append(fpos, end - fpos); - // There should never be an empty G1 statement emited by the filter. Such lines should be removed completely. - assert(new_gcode.size() < 4 || new_gcode.substr(new_gcode.size() - 4) != "G1 \n"); + else if (remove && new_gcode == "G1") { + // The G-code line only contained the F word, now it is empty. Remove it completely including the comments. + new_gcode.resize(new_gcode.size() - 2); + end = line_end; + } } // Process the rest of the line. if (end < line_end) { diff --git a/src/libslic3r/Geometry.cpp b/src/libslic3r/Geometry.cpp index dfc463dde..4c24116e4 100644 --- a/src/libslic3r/Geometry.cpp +++ b/src/libslic3r/Geometry.cpp @@ -26,185 +26,6 @@ #include -#ifdef SLIC3R_DEBUG -#include "SVG.hpp" -#endif - -#ifdef SLIC3R_DEBUG -namespace boost { namespace polygon { - -// The following code for the visualization of the boost Voronoi diagram is based on: -// -// Boost.Polygon library voronoi_graphic_utils.hpp header file -// Copyright Andrii Sydorchuk 2010-2012. -// Distributed under the Boost Software License, Version 1.0. -// (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -template -class voronoi_visual_utils { - public: - // Discretize parabolic Voronoi edge. - // Parabolic Voronoi edges are always formed by one point and one segment - // from the initial input set. - // - // Args: - // point: input point. - // segment: input segment. - // max_dist: maximum discretization distance. - // discretization: point discretization of the given Voronoi edge. - // - // Template arguments: - // InCT: coordinate type of the input geometries (usually integer). - // Point: point type, should model point concept. - // Segment: segment type, should model segment concept. - // - // Important: - // discretization should contain both edge endpoints initially. - template class Point, - template class Segment> - static - typename enable_if< - typename gtl_and< - typename gtl_if< - typename is_point_concept< - typename geometry_concept< Point >::type - >::type - >::type, - typename gtl_if< - typename is_segment_concept< - typename geometry_concept< Segment >::type - >::type - >::type - >::type, - void - >::type discretize( - const Point& point, - const Segment& segment, - const CT max_dist, - std::vector< Point >* discretization) { - // Apply the linear transformation to move start point of the segment to - // the point with coordinates (0, 0) and the direction of the segment to - // coincide the positive direction of the x-axis. - CT segm_vec_x = cast(x(high(segment))) - cast(x(low(segment))); - CT segm_vec_y = cast(y(high(segment))) - cast(y(low(segment))); - CT sqr_segment_length = segm_vec_x * segm_vec_x + segm_vec_y * segm_vec_y; - - // Compute x-coordinates of the endpoints of the edge - // in the transformed space. - CT projection_start = sqr_segment_length * - get_point_projection((*discretization)[0], segment); - CT projection_end = sqr_segment_length * - get_point_projection((*discretization)[1], segment); - - // Compute parabola parameters in the transformed space. - // Parabola has next representation: - // f(x) = ((x-rot_x)^2 + rot_y^2) / (2.0*rot_y). - CT point_vec_x = cast(x(point)) - cast(x(low(segment))); - CT point_vec_y = cast(y(point)) - cast(y(low(segment))); - CT rot_x = segm_vec_x * point_vec_x + segm_vec_y * point_vec_y; - CT rot_y = segm_vec_x * point_vec_y - segm_vec_y * point_vec_x; - - // Save the last point. - Point last_point = (*discretization)[1]; - discretization->pop_back(); - - // Use stack to avoid recursion. - std::stack point_stack; - point_stack.push(projection_end); - CT cur_x = projection_start; - CT cur_y = parabola_y(cur_x, rot_x, rot_y); - - // Adjust max_dist parameter in the transformed space. - const CT max_dist_transformed = max_dist * max_dist * sqr_segment_length; - while (!point_stack.empty()) { - CT new_x = point_stack.top(); - CT new_y = parabola_y(new_x, rot_x, rot_y); - - // Compute coordinates of the point of the parabola that is - // furthest from the current line segment. - CT mid_x = (new_y - cur_y) / (new_x - cur_x) * rot_y + rot_x; - CT mid_y = parabola_y(mid_x, rot_x, rot_y); - - // Compute maximum distance between the given parabolic arc - // and line segment that discretize it. - CT dist = (new_y - cur_y) * (mid_x - cur_x) - - (new_x - cur_x) * (mid_y - cur_y); - dist = dist * dist / ((new_y - cur_y) * (new_y - cur_y) + - (new_x - cur_x) * (new_x - cur_x)); - if (dist <= max_dist_transformed) { - // Distance between parabola and line segment is less than max_dist. - point_stack.pop(); - CT inter_x = (segm_vec_x * new_x - segm_vec_y * new_y) / - sqr_segment_length + cast(x(low(segment))); - CT inter_y = (segm_vec_x * new_y + segm_vec_y * new_x) / - sqr_segment_length + cast(y(low(segment))); - discretization->push_back(Point(inter_x, inter_y)); - cur_x = new_x; - cur_y = new_y; - } else { - point_stack.push(mid_x); - } - } - - // Update last point. - discretization->back() = last_point; - } - - private: - // Compute y(x) = ((x - a) * (x - a) + b * b) / (2 * b). - static CT parabola_y(CT x, CT a, CT b) { - return ((x - a) * (x - a) + b * b) / (b + b); - } - - // Get normalized length of the distance between: - // 1) point projection onto the segment - // 2) start point of the segment - // Return this length divided by the segment length. This is made to avoid - // sqrt computation during transformation from the initial space to the - // transformed one and vice versa. The assumption is made that projection of - // the point lies between the start-point and endpoint of the segment. - template class Point, - template class Segment> - static - typename enable_if< - typename gtl_and< - typename gtl_if< - typename is_point_concept< - typename geometry_concept< Point >::type - >::type - >::type, - typename gtl_if< - typename is_segment_concept< - typename geometry_concept< Segment >::type - >::type - >::type - >::type, - CT - >::type get_point_projection( - const Point& point, const Segment& segment) { - CT segment_vec_x = cast(x(high(segment))) - cast(x(low(segment))); - CT segment_vec_y = cast(y(high(segment))) - cast(y(low(segment))); - CT point_vec_x = x(point) - cast(x(low(segment))); - CT point_vec_y = y(point) - cast(y(low(segment))); - CT sqr_segment_length = - segment_vec_x * segment_vec_x + segment_vec_y * segment_vec_y; - CT vec_dot = segment_vec_x * point_vec_x + segment_vec_y * point_vec_y; - return vec_dot / sqr_segment_length; - } - - template - static CT cast(const InCT& value) { - return static_cast(value); - } -}; - -} } // namespace boost::polygon -#endif - -using namespace boost::polygon; // provides also high() and low() - namespace Slic3r { namespace Geometry { // This implementation is based on Andrew's monotone chain 2D convex hull algorithm @@ -337,93 +158,6 @@ double rad2deg_dir(double angle) return rad2deg(angle); } -Point circle_center_taubin_newton(const Points::const_iterator& input_begin, const Points::const_iterator& input_end, size_t cycles) -{ - Vec2ds tmp; - tmp.reserve(std::distance(input_begin, input_end)); - std::transform(input_begin, input_end, std::back_inserter(tmp), [] (const Point& in) { return unscale(in); } ); - Vec2d center = circle_center_taubin_newton(tmp.cbegin(), tmp.end(), cycles); - return Point::new_scale(center.x(), center.y()); -} - -/// Adapted from work in "Circular and Linear Regression: Fitting circles and lines by least squares", pg 126 -/// Returns a point corresponding to the center of a circle for which all of the points from input_begin to input_end -/// lie on. -Vec2d circle_center_taubin_newton(const Vec2ds::const_iterator& input_begin, const Vec2ds::const_iterator& input_end, size_t cycles) -{ - // calculate the centroid of the data set - const Vec2d sum = std::accumulate(input_begin, input_end, Vec2d(0,0)); - const size_t n = std::distance(input_begin, input_end); - const double n_flt = static_cast(n); - const Vec2d centroid { sum / n_flt }; - - // Compute the normalized moments of the data set. - double Mxx = 0, Myy = 0, Mxy = 0, Mxz = 0, Myz = 0, Mzz = 0; - for (auto it = input_begin; it < input_end; ++it) { - // center/normalize the data. - double Xi {it->x() - centroid.x()}; - double Yi {it->y() - centroid.y()}; - double Zi {Xi*Xi + Yi*Yi}; - Mxy += (Xi*Yi); - Mxx += (Xi*Xi); - Myy += (Yi*Yi); - Mxz += (Xi*Zi); - Myz += (Yi*Zi); - Mzz += (Zi*Zi); - } - - // divide by number of points to get the moments - Mxx /= n_flt; - Myy /= n_flt; - Mxy /= n_flt; - Mxz /= n_flt; - Myz /= n_flt; - Mzz /= n_flt; - - // Compute the coefficients of the characteristic polynomial for the circle - // eq 5.60 - const double Mz {Mxx + Myy}; // xx + yy = z - const double Cov_xy {Mxx*Myy - Mxy*Mxy}; // this shows up a couple times so cache it here. - const double C3 {4.0*Mz}; - const double C2 {-3.0*(Mz*Mz) - Mzz}; - const double C1 {Mz*(Mzz - (Mz*Mz)) + 4.0*Mz*Cov_xy - (Mxz*Mxz) - (Myz*Myz)}; - const double C0 {(Mxz*Mxz)*Myy + (Myz*Myz)*Mxx - 2.0*Mxz*Myz*Mxy - Cov_xy*(Mzz - (Mz*Mz))}; - - const double C22 = {C2 + C2}; - const double C33 = {C3 + C3 + C3}; - - // solve the characteristic polynomial with Newton's method. - double xnew = 0.0; - double ynew = 1e20; - - for (size_t i = 0; i < cycles; ++i) { - const double yold {ynew}; - ynew = C0 + xnew * (C1 + xnew*(C2 + xnew * C3)); - if (std::abs(ynew) > std::abs(yold)) { - BOOST_LOG_TRIVIAL(error) << "Geometry: Fit is going in the wrong direction.\n"; - return Vec2d(std::nan(""), std::nan("")); - } - const double Dy {C1 + xnew*(C22 + xnew*C33)}; - - const double xold {xnew}; - xnew = xold - (ynew / Dy); - - if (std::abs((xnew-xold) / xnew) < 1e-12) i = cycles; // converged, we're done here - - if (xnew < 0) { - // reset, we went negative - xnew = 0.0; - } - } - - // compute the determinant and the circle's parameters now that we've solved. - double DET = xnew*xnew - xnew*Mz + Cov_xy; - - Vec2d center(Mxz * (Myy - xnew) - Myz * Mxy, Myz * (Mxx - xnew) - Mxz*Mxy); - center /= (DET * 2.); - return center + centroid; -} - void simplify_polygons(const Polygons &polygons, double tolerance, Polygons* retval) { Polygons pp; @@ -649,212 +383,6 @@ arrange(size_t total_parts, const Vec2d &part_size, coordf_t dist, const Boundin } #endif -#ifdef SLIC3R_DEBUG -// The following code for the visualization of the boost Voronoi diagram is based on: -// -// Boost.Polygon library voronoi_visualizer.cpp file -// Copyright Andrii Sydorchuk 2010-2012. -// Distributed under the Boost Software License, Version 1.0. -// (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -namespace Voronoi { namespace Internal { - - typedef double coordinate_type; - typedef boost::polygon::point_data point_type; - typedef boost::polygon::segment_data segment_type; - typedef boost::polygon::rectangle_data rect_type; - typedef boost::polygon::voronoi_diagram VD; - typedef VD::cell_type cell_type; - typedef VD::cell_type::source_index_type source_index_type; - typedef VD::cell_type::source_category_type source_category_type; - typedef VD::edge_type edge_type; - typedef VD::cell_container_type cell_container_type; - typedef VD::cell_container_type vertex_container_type; - typedef VD::edge_container_type edge_container_type; - typedef VD::const_cell_iterator const_cell_iterator; - typedef VD::const_vertex_iterator const_vertex_iterator; - typedef VD::const_edge_iterator const_edge_iterator; - - static const std::size_t EXTERNAL_COLOR = 1; - - inline void color_exterior(const VD::edge_type* edge) - { - if (edge->color() == EXTERNAL_COLOR) - return; - edge->color(EXTERNAL_COLOR); - edge->twin()->color(EXTERNAL_COLOR); - const VD::vertex_type* v = edge->vertex1(); - if (v == NULL || !edge->is_primary()) - return; - v->color(EXTERNAL_COLOR); - const VD::edge_type* e = v->incident_edge(); - do { - color_exterior(e); - e = e->rot_next(); - } while (e != v->incident_edge()); - } - - inline point_type retrieve_point(const std::vector &segments, const cell_type& cell) - { - assert(cell.source_category() == SOURCE_CATEGORY_SEGMENT_START_POINT || cell.source_category() == SOURCE_CATEGORY_SEGMENT_END_POINT); - return (cell.source_category() == SOURCE_CATEGORY_SEGMENT_START_POINT) ? low(segments[cell.source_index()]) : high(segments[cell.source_index()]); - } - - inline void clip_infinite_edge(const std::vector &segments, const edge_type& edge, coordinate_type bbox_max_size, std::vector* clipped_edge) - { - const cell_type& cell1 = *edge.cell(); - const cell_type& cell2 = *edge.twin()->cell(); - point_type origin, direction; - // Infinite edges could not be created by two segment sites. - if (cell1.contains_point() && cell2.contains_point()) { - point_type p1 = retrieve_point(segments, cell1); - point_type p2 = retrieve_point(segments, cell2); - origin.x((p1.x() + p2.x()) * 0.5); - origin.y((p1.y() + p2.y()) * 0.5); - direction.x(p1.y() - p2.y()); - direction.y(p2.x() - p1.x()); - } else { - origin = cell1.contains_segment() ? retrieve_point(segments, cell2) : retrieve_point(segments, cell1); - segment_type segment = cell1.contains_segment() ? segments[cell1.source_index()] : segments[cell2.source_index()]; - coordinate_type dx = high(segment).x() - low(segment).x(); - coordinate_type dy = high(segment).y() - low(segment).y(); - if ((low(segment) == origin) ^ cell1.contains_point()) { - direction.x(dy); - direction.y(-dx); - } else { - direction.x(-dy); - direction.y(dx); - } - } - coordinate_type koef = bbox_max_size / (std::max)(fabs(direction.x()), fabs(direction.y())); - if (edge.vertex0() == NULL) { - clipped_edge->push_back(point_type( - origin.x() - direction.x() * koef, - origin.y() - direction.y() * koef)); - } else { - clipped_edge->push_back( - point_type(edge.vertex0()->x(), edge.vertex0()->y())); - } - if (edge.vertex1() == NULL) { - clipped_edge->push_back(point_type( - origin.x() + direction.x() * koef, - origin.y() + direction.y() * koef)); - } else { - clipped_edge->push_back( - point_type(edge.vertex1()->x(), edge.vertex1()->y())); - } - } - - inline void sample_curved_edge(const std::vector &segments, const edge_type& edge, std::vector &sampled_edge, coordinate_type max_dist) - { - point_type point = edge.cell()->contains_point() ? - retrieve_point(segments, *edge.cell()) : - retrieve_point(segments, *edge.twin()->cell()); - segment_type segment = edge.cell()->contains_point() ? - segments[edge.twin()->cell()->source_index()] : - segments[edge.cell()->source_index()]; - ::boost::polygon::voronoi_visual_utils::discretize(point, segment, max_dist, &sampled_edge); - } - -} /* namespace Internal */ } // namespace Voronoi - -static inline void dump_voronoi_to_svg(const Lines &lines, /* const */ boost::polygon::voronoi_diagram &vd, const ThickPolylines *polylines, const char *path) -{ - const double scale = 0.2; - const std::string inputSegmentPointColor = "lightseagreen"; - const coord_t inputSegmentPointRadius = coord_t(0.09 * scale / SCALING_FACTOR); - const std::string inputSegmentColor = "lightseagreen"; - const coord_t inputSegmentLineWidth = coord_t(0.03 * scale / SCALING_FACTOR); - - const std::string voronoiPointColor = "black"; - const coord_t voronoiPointRadius = coord_t(0.06 * scale / SCALING_FACTOR); - const std::string voronoiLineColorPrimary = "black"; - const std::string voronoiLineColorSecondary = "green"; - const std::string voronoiArcColor = "red"; - const coord_t voronoiLineWidth = coord_t(0.02 * scale / SCALING_FACTOR); - - const bool internalEdgesOnly = false; - const bool primaryEdgesOnly = false; - - BoundingBox bbox = BoundingBox(lines); - bbox.min(0) -= coord_t(1. / SCALING_FACTOR); - bbox.min(1) -= coord_t(1. / SCALING_FACTOR); - bbox.max(0) += coord_t(1. / SCALING_FACTOR); - bbox.max(1) += coord_t(1. / SCALING_FACTOR); - - ::Slic3r::SVG svg(path, bbox); - - if (polylines != NULL) - svg.draw(*polylines, "lime", "lime", voronoiLineWidth); - -// bbox.scale(1.2); - // For clipping of half-lines to some reasonable value. - // The line will then be clipped by the SVG viewer anyway. - const double bbox_dim_max = double(bbox.max(0) - bbox.min(0)) + double(bbox.max(1) - bbox.min(1)); - // For the discretization of the Voronoi parabolic segments. - const double discretization_step = 0.0005 * bbox_dim_max; - - // Make a copy of the input segments with the double type. - std::vector segments; - for (Lines::const_iterator it = lines.begin(); it != lines.end(); ++ it) - segments.push_back(Voronoi::Internal::segment_type( - Voronoi::Internal::point_type(double(it->a(0)), double(it->a(1))), - Voronoi::Internal::point_type(double(it->b(0)), double(it->b(1))))); - - // Color exterior edges. - for (boost::polygon::voronoi_diagram::const_edge_iterator it = vd.edges().begin(); it != vd.edges().end(); ++it) - if (!it->is_finite()) - Voronoi::Internal::color_exterior(&(*it)); - - // Draw the end points of the input polygon. - for (Lines::const_iterator it = lines.begin(); it != lines.end(); ++it) { - svg.draw(it->a, inputSegmentPointColor, inputSegmentPointRadius); - svg.draw(it->b, inputSegmentPointColor, inputSegmentPointRadius); - } - // Draw the input polygon. - for (Lines::const_iterator it = lines.begin(); it != lines.end(); ++it) - svg.draw(Line(Point(coord_t(it->a(0)), coord_t(it->a(1))), Point(coord_t(it->b(0)), coord_t(it->b(1)))), inputSegmentColor, inputSegmentLineWidth); - -#if 1 - // Draw voronoi vertices. - for (boost::polygon::voronoi_diagram::const_vertex_iterator it = vd.vertices().begin(); it != vd.vertices().end(); ++it) - if (! internalEdgesOnly || it->color() != Voronoi::Internal::EXTERNAL_COLOR) - svg.draw(Point(coord_t(it->x()), coord_t(it->y())), voronoiPointColor, voronoiPointRadius); - - for (boost::polygon::voronoi_diagram::const_edge_iterator it = vd.edges().begin(); it != vd.edges().end(); ++it) { - if (primaryEdgesOnly && !it->is_primary()) - continue; - if (internalEdgesOnly && (it->color() == Voronoi::Internal::EXTERNAL_COLOR)) - continue; - std::vector samples; - std::string color = voronoiLineColorPrimary; - if (!it->is_finite()) { - Voronoi::Internal::clip_infinite_edge(segments, *it, bbox_dim_max, &samples); - if (! it->is_primary()) - color = voronoiLineColorSecondary; - } else { - // Store both points of the segment into samples. sample_curved_edge will split the initial line - // until the discretization_step is reached. - samples.push_back(Voronoi::Internal::point_type(it->vertex0()->x(), it->vertex0()->y())); - samples.push_back(Voronoi::Internal::point_type(it->vertex1()->x(), it->vertex1()->y())); - if (it->is_curved()) { - Voronoi::Internal::sample_curved_edge(segments, *it, samples, discretization_step); - color = voronoiArcColor; - } else if (! it->is_primary()) - color = voronoiLineColorSecondary; - } - for (std::size_t i = 0; i + 1 < samples.size(); ++i) - svg.draw(Line(Point(coord_t(samples[i].x()), coord_t(samples[i].y())), Point(coord_t(samples[i+1].x()), coord_t(samples[i+1].y()))), color, voronoiLineWidth); - } -#endif - - if (polylines != NULL) - svg.draw(*polylines, "blue", voronoiLineWidth); - - svg.Close(); -} -#endif /* SLIC3R_DEBUG */ - // Euclidian distance of two boost::polygon points. template T dist(const boost::polygon::point_data &p1,const boost::polygon::point_data &p2) @@ -878,331 +406,6 @@ inline point_type project_point_to_segment(segment_type &seg, point_type &px) return point_type(p0(0) + t*dir(0), p0(1) + t*dir(1)); } -template -inline const typename VD::point_type retrieve_cell_point(const typename VD::cell_type& cell, const SEGMENTS &segments) -{ - assert(cell.source_category() == SOURCE_CATEGORY_SEGMENT_START_POINT || cell.source_category() == SOURCE_CATEGORY_SEGMENT_END_POINT); - return (cell.source_category() == SOURCE_CATEGORY_SEGMENT_START_POINT) ? low(segments[cell.source_index()]) : high(segments[cell.source_index()]); -} - -template -inline std::pair -measure_edge_thickness(const VD &vd, const typename VD::edge_type& edge, const SEGMENTS &segments) -{ - typedef typename VD::coord_type T; - const typename VD::point_type pa(edge.vertex0()->x(), edge.vertex0()->y()); - const typename VD::point_type pb(edge.vertex1()->x(), edge.vertex1()->y()); - const typename VD::cell_type &cell1 = *edge.cell(); - const typename VD::cell_type &cell2 = *edge.twin()->cell(); - if (cell1.contains_segment()) { - if (cell2.contains_segment()) { - // Both cells contain a linear segment, the left / right cells are symmetric. - // Project pa, pb to the left segment. - const typename VD::segment_type segment1 = segments[cell1.source_index()]; - const typename VD::point_type p1a = project_point_to_segment(segment1, pa); - const typename VD::point_type p1b = project_point_to_segment(segment1, pb); - return std::pair(T(2.)*dist(pa, p1a), T(2.)*dist(pb, p1b)); - } else { - // 1st cell contains a linear segment, 2nd cell contains a point. - // The medial axis between the cells is a parabolic arc. - // Project pa, pb to the left segment. - const typename VD::point_type p2 = retrieve_cell_point(cell2, segments); - return std::pair(T(2.)*dist(pa, p2), T(2.)*dist(pb, p2)); - } - } else if (cell2.contains_segment()) { - // 1st cell contains a point, 2nd cell contains a linear segment. - // The medial axis between the cells is a parabolic arc. - const typename VD::point_type p1 = retrieve_cell_point(cell1, segments); - return std::pair(T(2.)*dist(pa, p1), T(2.)*dist(pb, p1)); - } else { - // Both cells contain a point. The left / right regions are triangular and symmetric. - const typename VD::point_type p1 = retrieve_cell_point(cell1, segments); - return std::pair(T(2.)*dist(pa, p1), T(2.)*dist(pb, p1)); - } -} - -// Converts the Line instances of Lines vector to VD::segment_type. -template -class Lines2VDSegments -{ -public: - Lines2VDSegments(const Lines &alines) : lines(alines) {} - typename VD::segment_type operator[](size_t idx) const { - return typename VD::segment_type( - typename VD::point_type(typename VD::coord_type(lines[idx].a(0)), typename VD::coord_type(lines[idx].a(1))), - typename VD::point_type(typename VD::coord_type(lines[idx].b(0)), typename VD::coord_type(lines[idx].b(1)))); - } -private: - const Lines &lines; -}; - -void -MedialAxis::build(ThickPolylines* polylines) -{ - construct_voronoi(this->lines.begin(), this->lines.end(), &this->vd); - - /* - // DEBUG: dump all Voronoi edges - { - for (VD::const_edge_iterator edge = this->vd.edges().begin(); edge != this->vd.edges().end(); ++edge) { - if (edge->is_infinite()) continue; - - ThickPolyline polyline; - polyline.points.push_back(Point( edge->vertex0()->x(), edge->vertex0()->y() )); - polyline.points.push_back(Point( edge->vertex1()->x(), edge->vertex1()->y() )); - polylines->push_back(polyline); - } - return; - } - */ - - //typedef const VD::vertex_type vert_t; - typedef const VD::edge_type edge_t; - - // collect valid edges (i.e. prune those not belonging to MAT) - // note: this keeps twins, so it inserts twice the number of the valid edges - this->valid_edges.clear(); - { - std::set seen_edges; - for (VD::const_edge_iterator edge = this->vd.edges().begin(); edge != this->vd.edges().end(); ++edge) { - // if we only process segments representing closed loops, none if the - // infinite edges (if any) would be part of our MAT anyway - if (edge->is_secondary() || edge->is_infinite()) continue; - - // don't re-validate twins - if (seen_edges.find(&*edge) != seen_edges.end()) continue; // TODO: is this needed? - seen_edges.insert(&*edge); - seen_edges.insert(edge->twin()); - - if (!this->validate_edge(&*edge)) continue; - this->valid_edges.insert(&*edge); - this->valid_edges.insert(edge->twin()); - } - } - this->edges = this->valid_edges; - - // iterate through the valid edges to build polylines - while (!this->edges.empty()) { - const edge_t* edge = *this->edges.begin(); - - // start a polyline - ThickPolyline polyline; - polyline.points.push_back(Point( edge->vertex0()->x(), edge->vertex0()->y() )); - polyline.points.push_back(Point( edge->vertex1()->x(), edge->vertex1()->y() )); - polyline.width.push_back(this->thickness[edge].first); - polyline.width.push_back(this->thickness[edge].second); - - // remove this edge and its twin from the available edges - (void)this->edges.erase(edge); - (void)this->edges.erase(edge->twin()); - - // get next points - this->process_edge_neighbors(edge, &polyline); - - // get previous points - { - ThickPolyline rpolyline; - this->process_edge_neighbors(edge->twin(), &rpolyline); - polyline.points.insert(polyline.points.begin(), rpolyline.points.rbegin(), rpolyline.points.rend()); - polyline.width.insert(polyline.width.begin(), rpolyline.width.rbegin(), rpolyline.width.rend()); - polyline.endpoints.first = rpolyline.endpoints.second; - } - - assert(polyline.width.size() == polyline.points.size()*2 - 2); - - // prevent loop endpoints from being extended - if (polyline.first_point() == polyline.last_point()) { - polyline.endpoints.first = false; - polyline.endpoints.second = false; - } - - // append polyline to result - polylines->push_back(polyline); - } - - #ifdef SLIC3R_DEBUG - { - static int iRun = 0; - dump_voronoi_to_svg(this->lines, this->vd, polylines, debug_out_path("MedialAxis-%d.svg", iRun ++).c_str()); - printf("Thick lines: "); - for (ThickPolylines::const_iterator it = polylines->begin(); it != polylines->end(); ++ it) { - ThickLines lines = it->thicklines(); - for (ThickLines::const_iterator it2 = lines.begin(); it2 != lines.end(); ++ it2) { - printf("%f,%f ", it2->a_width, it2->b_width); - } - } - printf("\n"); - } - #endif /* SLIC3R_DEBUG */ -} - -void -MedialAxis::build(Polylines* polylines) -{ - ThickPolylines tp; - this->build(&tp); - polylines->insert(polylines->end(), tp.begin(), tp.end()); -} - -void -MedialAxis::process_edge_neighbors(const VD::edge_type* edge, ThickPolyline* polyline) -{ - while (true) { - // Since rot_next() works on the edge starting point but we want - // to find neighbors on the ending point, we just swap edge with - // its twin. - const VD::edge_type* twin = edge->twin(); - - // count neighbors for this edge - std::vector neighbors; - for (const VD::edge_type* neighbor = twin->rot_next(); neighbor != twin; - neighbor = neighbor->rot_next()) { - if (this->valid_edges.count(neighbor) > 0) neighbors.push_back(neighbor); - } - - // if we have a single neighbor then we can continue recursively - if (neighbors.size() == 1) { - const VD::edge_type* neighbor = neighbors.front(); - - // break if this is a closed loop - if (this->edges.count(neighbor) == 0) return; - - Point new_point(neighbor->vertex1()->x(), neighbor->vertex1()->y()); - polyline->points.push_back(new_point); - polyline->width.push_back(this->thickness[neighbor].first); - polyline->width.push_back(this->thickness[neighbor].second); - (void)this->edges.erase(neighbor); - (void)this->edges.erase(neighbor->twin()); - edge = neighbor; - } else if (neighbors.size() == 0) { - polyline->endpoints.second = true; - return; - } else { - // T-shaped or star-shaped joint - return; - } - } -} - -bool MedialAxis::validate_edge(const VD::edge_type* edge) -{ - // prevent overflows and detect almost-infinite edges -#ifndef CLIPPERLIB_INT32 - if (std::abs(edge->vertex0()->x()) > double(CLIPPER_MAX_COORD_UNSCALED) || - std::abs(edge->vertex0()->y()) > double(CLIPPER_MAX_COORD_UNSCALED) || - std::abs(edge->vertex1()->x()) > double(CLIPPER_MAX_COORD_UNSCALED) || - std::abs(edge->vertex1()->y()) > double(CLIPPER_MAX_COORD_UNSCALED)) - return false; -#endif // CLIPPERLIB_INT32 - - // construct the line representing this edge of the Voronoi diagram - const Line line( - Point( edge->vertex0()->x(), edge->vertex0()->y() ), - Point( edge->vertex1()->x(), edge->vertex1()->y() ) - ); - - // discard edge if it lies outside the supplied shape - // this could maybe be optimized (checking inclusion of the endpoints - // might give false positives as they might belong to the contour itself) - if (this->expolygon != NULL) { - if (line.a == line.b) { - // in this case, contains(line) returns a false positive - if (!this->expolygon->contains(line.a)) return false; - } else { - if (!this->expolygon->contains(line)) return false; - } - } - - // retrieve the original line segments which generated the edge we're checking - const VD::cell_type* cell_l = edge->cell(); - const VD::cell_type* cell_r = edge->twin()->cell(); - const Line &segment_l = this->retrieve_segment(cell_l); - const Line &segment_r = this->retrieve_segment(cell_r); - - /* - SVG svg("edge.svg"); - svg.draw(*this->expolygon); - svg.draw(line); - svg.draw(segment_l, "red"); - svg.draw(segment_r, "blue"); - svg.Close(); - */ - - /* Calculate thickness of the cross-section at both the endpoints of this edge. - Our Voronoi edge is part of a CCW sequence going around its Voronoi cell - located on the left side. (segment_l). - This edge's twin goes around segment_r. Thus, segment_r is - oriented in the same direction as our main edge, and segment_l is oriented - in the same direction as our twin edge. - We used to only consider the (half-)distances to segment_r, and that works - whenever segment_l and segment_r are almost specular and facing. However, - at curves they are staggered and they only face for a very little length - (our very short edge represents such visibility). - Both w0 and w1 can be calculated either towards cell_l or cell_r with equal - results by Voronoi definition. - When cell_l or cell_r don't refer to the segment but only to an endpoint, we - calculate the distance to that endpoint instead. */ - - coordf_t w0 = cell_r->contains_segment() - ? segment_r.distance_to(line.a)*2 - : (this->retrieve_endpoint(cell_r) - line.a).cast().norm()*2; - - coordf_t w1 = cell_l->contains_segment() - ? segment_l.distance_to(line.b)*2 - : (this->retrieve_endpoint(cell_l) - line.b).cast().norm()*2; - - if (cell_l->contains_segment() && cell_r->contains_segment()) { - // calculate the relative angle between the two boundary segments - double angle = fabs(segment_r.orientation() - segment_l.orientation()); - if (angle > PI) angle = 2*PI - angle; - assert(angle >= 0 && angle <= PI); - - // fabs(angle) ranges from 0 (collinear, same direction) to PI (collinear, opposite direction) - // we're interested only in segments close to the second case (facing segments) - // so we allow some tolerance. - // this filter ensures that we're dealing with a narrow/oriented area (longer than thick) - // we don't run it on edges not generated by two segments (thus generated by one segment - // and the endpoint of another segment), since their orientation would not be meaningful - if (PI - angle > PI/8) { - // angle is not narrow enough - - // only apply this filter to segments that are not too short otherwise their - // angle could possibly be not meaningful - if (w0 < SCALED_EPSILON || w1 < SCALED_EPSILON || line.length() >= this->min_width) - return false; - } - } else { - if (w0 < SCALED_EPSILON || w1 < SCALED_EPSILON) - return false; - } - - if (w0 < this->min_width && w1 < this->min_width) - return false; - - if (w0 > this->max_width && w1 > this->max_width) - return false; - - this->thickness[edge] = std::make_pair(w0, w1); - this->thickness[edge->twin()] = std::make_pair(w1, w0); - - return true; -} - -const Line& MedialAxis::retrieve_segment(const VD::cell_type* cell) const -{ - return this->lines[cell->source_index()]; -} - -const Point& MedialAxis::retrieve_endpoint(const VD::cell_type* cell) const -{ - const Line& line = this->retrieve_segment(cell); - if (cell->source_category() == SOURCE_CATEGORY_SEGMENT_START_POINT) { - return line.a; - } else { - return line.b; - } -} - void assemble_transform(Transform3d& transform, const Vec3d& translation, const Vec3d& rotation, const Vec3d& scale, const Vec3d& mirror) { transform = Transform3d::Identity(); diff --git a/src/libslic3r/Geometry.hpp b/src/libslic3r/Geometry.hpp index d98cab9c7..179f062ca 100644 --- a/src/libslic3r/Geometry.hpp +++ b/src/libslic3r/Geometry.hpp @@ -10,18 +10,6 @@ // Serialization through the Cereal library #include -#define BOOST_VORONOI_USE_GMP 1 - -#ifdef _MSC_VER -// Suppress warning C4146 in OpenVDB: unary minus operator applied to unsigned type, result still unsigned -#pragma warning(push) -#pragma warning(disable : 4146) -#endif // _MSC_VER -#include "boost/polygon/voronoi.hpp" -#ifdef _MSC_VER -#pragma warning(pop) -#endif // _MSC_VER - namespace Slic3r { namespace ClipperLib { @@ -47,7 +35,7 @@ enum Orientation // and d is limited to 63 bits + signum and we are good. static inline Orientation orient(const Point &a, const Point &b, const Point &c) { - // BOOST_STATIC_ASSERT(sizeof(coord_t) * 2 == sizeof(int64_t)); + static_assert(sizeof(coord_t) * 2 == sizeof(int64_t), "orient works with 32 bit coordinates"); int64_t u = int64_t(b(0)) * int64_t(c(1)) - int64_t(b(1)) * int64_t(c(0)); int64_t v = int64_t(a(0)) * int64_t(c(1)) - int64_t(a(1)) * int64_t(c(0)); int64_t w = int64_t(a(0)) * int64_t(b(1)) - int64_t(a(1)) * int64_t(b(0)); @@ -325,38 +313,6 @@ bool liang_barsky_line_clipping( return liang_barsky_line_clipping(x0clip, x1clip, bbox); } -// Ugly named variant, that accepts the squared line -// Don't call me with a nearly zero length vector! -// sympy: -// factor(solve([a * x + b * y + c, x**2 + y**2 - r**2], [x, y])[0]) -// factor(solve([a * x + b * y + c, x**2 + y**2 - r**2], [x, y])[1]) -template -int ray_circle_intersections_r2_lv2_c(T r2, T a, T b, T lv2, T c, std::pair, Eigen::Matrix> &out) -{ - T x0 = - a * c; - T y0 = - b * c; - T d2 = r2 * lv2 - c * c; - if (d2 < T(0)) - return 0; - T d = sqrt(d2); - out.first.x() = (x0 + b * d) / lv2; - out.first.y() = (y0 - a * d) / lv2; - out.second.x() = (x0 - b * d) / lv2; - out.second.y() = (y0 + a * d) / lv2; - return d == T(0) ? 1 : 2; -} -template -int ray_circle_intersections(T r, T a, T b, T c, std::pair, Eigen::Matrix> &out) -{ - T lv2 = a * a + b * b; - if (lv2 < T(SCALED_EPSILON * SCALED_EPSILON)) { - //FIXME what is the correct epsilon? - // What if the line touches the circle? - return false; - } - return ray_circle_intersections_r2_lv2_c2(r * r, a, b, a * a + b * b, c, out); -} - Pointf3s convex_hull(Pointf3s points); Polygon convex_hull(Points points); Polygon convex_hull(const Polygons &polygons); @@ -384,14 +340,6 @@ template T angle_to_0_2PI(T angle) return angle; } -/// Find the center of the circle corresponding to the vector of Points as an arc. -Point circle_center_taubin_newton(const Points::const_iterator& input_start, const Points::const_iterator& input_end, size_t cycles = 20); -inline Point circle_center_taubin_newton(const Points& input, size_t cycles = 20) { return circle_center_taubin_newton(input.cbegin(), input.cend(), cycles); } - -/// Find the center of the circle corresponding to the vector of Pointfs as an arc. -Vec2d circle_center_taubin_newton(const Vec2ds::const_iterator& input_start, const Vec2ds::const_iterator& input_end, size_t cycles = 20); -inline Vec2d circle_center_taubin_newton(const Vec2ds& input, size_t cycles = 20) { return circle_center_taubin_newton(input.cbegin(), input.cend(), cycles); } - void simplify_polygons(const Polygons &polygons, double tolerance, Polygons* retval); double linint(double value, double oldmin, double oldmax, double newmin, double newmax); @@ -401,36 +349,6 @@ bool arrange( // output Pointfs &positions); -class VoronoiDiagram : public boost::polygon::voronoi_diagram { -public: - typedef double coord_type; - typedef boost::polygon::point_data point_type; - typedef boost::polygon::segment_data segment_type; - typedef boost::polygon::rectangle_data rect_type; -}; - -class MedialAxis { -public: - Lines lines; - const ExPolygon* expolygon; - double max_width; - double min_width; - MedialAxis(double _max_width, double _min_width, const ExPolygon* _expolygon = NULL) - : expolygon(_expolygon), max_width(_max_width), min_width(_min_width) {}; - void build(ThickPolylines* polylines); - void build(Polylines* polylines); - -private: - using VD = VoronoiDiagram; - VD vd; - std::set edges, valid_edges; - std::map > thickness; - void process_edge_neighbors(const VD::edge_type* edge, ThickPolyline* polyline); - bool validate_edge(const VD::edge_type* edge); - const Line& retrieve_segment(const VD::cell_type* cell) const; - const Point& retrieve_endpoint(const VD::cell_type* cell) const; -}; - // Sets the given transform by assembling the given transformations in the following order: // 1) mirror // 2) scale diff --git a/src/libslic3r/Geometry/Circle.cpp b/src/libslic3r/Geometry/Circle.cpp new file mode 100644 index 000000000..bfa1602f4 --- /dev/null +++ b/src/libslic3r/Geometry/Circle.cpp @@ -0,0 +1,97 @@ +#include "Circle.hpp" + +#include "../Polygon.hpp" + +#include +#include + +namespace Slic3r { namespace Geometry { + +Point circle_center_taubin_newton(const Points::const_iterator& input_begin, const Points::const_iterator& input_end, size_t cycles) +{ + Vec2ds tmp; + tmp.reserve(std::distance(input_begin, input_end)); + std::transform(input_begin, input_end, std::back_inserter(tmp), [] (const Point& in) { return unscale(in); } ); + Vec2d center = circle_center_taubin_newton(tmp.cbegin(), tmp.end(), cycles); + return Point::new_scale(center.x(), center.y()); +} + +/// Adapted from work in "Circular and Linear Regression: Fitting circles and lines by least squares", pg 126 +/// Returns a point corresponding to the center of a circle for which all of the points from input_begin to input_end +/// lie on. +Vec2d circle_center_taubin_newton(const Vec2ds::const_iterator& input_begin, const Vec2ds::const_iterator& input_end, size_t cycles) +{ + // calculate the centroid of the data set + const Vec2d sum = std::accumulate(input_begin, input_end, Vec2d(0,0)); + const size_t n = std::distance(input_begin, input_end); + const double n_flt = static_cast(n); + const Vec2d centroid { sum / n_flt }; + + // Compute the normalized moments of the data set. + double Mxx = 0, Myy = 0, Mxy = 0, Mxz = 0, Myz = 0, Mzz = 0; + for (auto it = input_begin; it < input_end; ++it) { + // center/normalize the data. + double Xi {it->x() - centroid.x()}; + double Yi {it->y() - centroid.y()}; + double Zi {Xi*Xi + Yi*Yi}; + Mxy += (Xi*Yi); + Mxx += (Xi*Xi); + Myy += (Yi*Yi); + Mxz += (Xi*Zi); + Myz += (Yi*Zi); + Mzz += (Zi*Zi); + } + + // divide by number of points to get the moments + Mxx /= n_flt; + Myy /= n_flt; + Mxy /= n_flt; + Mxz /= n_flt; + Myz /= n_flt; + Mzz /= n_flt; + + // Compute the coefficients of the characteristic polynomial for the circle + // eq 5.60 + const double Mz {Mxx + Myy}; // xx + yy = z + const double Cov_xy {Mxx*Myy - Mxy*Mxy}; // this shows up a couple times so cache it here. + const double C3 {4.0*Mz}; + const double C2 {-3.0*(Mz*Mz) - Mzz}; + const double C1 {Mz*(Mzz - (Mz*Mz)) + 4.0*Mz*Cov_xy - (Mxz*Mxz) - (Myz*Myz)}; + const double C0 {(Mxz*Mxz)*Myy + (Myz*Myz)*Mxx - 2.0*Mxz*Myz*Mxy - Cov_xy*(Mzz - (Mz*Mz))}; + + const double C22 = {C2 + C2}; + const double C33 = {C3 + C3 + C3}; + + // solve the characteristic polynomial with Newton's method. + double xnew = 0.0; + double ynew = 1e20; + + for (size_t i = 0; i < cycles; ++i) { + const double yold {ynew}; + ynew = C0 + xnew * (C1 + xnew*(C2 + xnew * C3)); + if (std::abs(ynew) > std::abs(yold)) { + BOOST_LOG_TRIVIAL(error) << "Geometry: Fit is going in the wrong direction.\n"; + return Vec2d(std::nan(""), std::nan("")); + } + const double Dy {C1 + xnew*(C22 + xnew*C33)}; + + const double xold {xnew}; + xnew = xold - (ynew / Dy); + + if (std::abs((xnew-xold) / xnew) < 1e-12) i = cycles; // converged, we're done here + + if (xnew < 0) { + // reset, we went negative + xnew = 0.0; + } + } + + // compute the determinant and the circle's parameters now that we've solved. + double DET = xnew*xnew - xnew*Mz + Cov_xy; + + Vec2d center(Mxz * (Myy - xnew) - Myz * Mxy, Myz * (Mxx - xnew) - Mxz*Mxy); + center /= (DET * 2.); + return center + centroid; +} + +} } // namespace Slic3r::Geometry diff --git a/src/libslic3r/Geometry/Circle.hpp b/src/libslic3r/Geometry/Circle.hpp new file mode 100644 index 000000000..a8a993f8b --- /dev/null +++ b/src/libslic3r/Geometry/Circle.hpp @@ -0,0 +1,183 @@ +#ifndef slic3r_Geometry_Circle_hpp_ +#define slic3r_Geometry_Circle_hpp_ + +#include "../Point.hpp" + +#include + +namespace Slic3r { namespace Geometry { + +/// Find the center of the circle corresponding to the vector of Points as an arc. +Point circle_center_taubin_newton(const Points::const_iterator& input_start, const Points::const_iterator& input_end, size_t cycles = 20); +inline Point circle_center_taubin_newton(const Points& input, size_t cycles = 20) { return circle_center_taubin_newton(input.cbegin(), input.cend(), cycles); } + +/// Find the center of the circle corresponding to the vector of Pointfs as an arc. +Vec2d circle_center_taubin_newton(const Vec2ds::const_iterator& input_start, const Vec2ds::const_iterator& input_end, size_t cycles = 20); +inline Vec2d circle_center_taubin_newton(const Vec2ds& input, size_t cycles = 20) { return circle_center_taubin_newton(input.cbegin(), input.cend(), cycles); } + +// https://en.wikipedia.org/wiki/Circumscribed_circle +// Circumcenter coordinates, Cartesian coordinates +template +Vector circle_center(const Vector &a, const Vector &bsrc, const Vector &csrc, typename Vector::Scalar epsilon) +{ + using Scalar = typename Vector::Scalar; + Vector b = bsrc - a; + Vector c = csrc - a; + Scalar lb = b.squaredNorm(); + Scalar lc = c.squaredNorm(); + if (Scalar d = b.x() * c.y() - b.y() * c.x(); std::abs(d) < epsilon) { + // The three points are collinear. Take the center of the two points + // furthest away from each other. + Scalar lbc = (csrc - bsrc).squaredNorm(); + return Scalar(0.5) * ( + lb > lc && lb > lbc ? a + bsrc : + lc > lb && lc > lbc ? a + csrc : bsrc + csrc); + } else { + Vector v = lc * b - lb * c; + return a + Vector(- v.y(), v.x()) / (2 * d); + } +} + +// 2D circle defined by its center and squared radius +template +struct CircleSq { + using Scalar = typename Vector::Scalar; + + Vector center; + Scalar radius2; + + CircleSq() {} + CircleSq(const Vector ¢er, const Scalar radius2) : center(center), radius2(radius2) {} + CircleSq(const Vector &a, const Vector &b) : center(Scalar(0.5) * (a + b)) { radius2 = (a - center).squaredNorm(); } + CircleSq(const Vector &a, const Vector &b, const Vector &c, Scalar epsilon) { + this->center = circle_center(a, b, c, epsilon); + this->radius2 = (a - this->center).squaredNorm(); + } + + bool invalid() const { return this->radius2 < 0; } + bool valid() const { return ! this->invalid(); } + bool contains(const Vector &p) const { return (p - this->center).squaredNorm() < this->radius2; } + bool contains(const Vector &p, const Scalar epsilon2) const { return (p - this->center).squaredNorm() < this->radius2 + epsilon2; } + + CircleSq inflated(Scalar epsilon) const + { assert(this->radius2 >= 0); Scalar r = sqrt(this->radius2) + epsilon; return { this->center, r * r }; } + + static CircleSq make_invalid() { return CircleSq { { 0, 0 }, -1 }; } +}; + +// 2D circle defined by its center and radius +template +struct Circle { + using Scalar = typename Vector::Scalar; + + Vector center; + Scalar radius; + + Circle() {} + Circle(const Vector ¢er, const Scalar radius) : center(center), radius(radius) {} + Circle(const Vector &a, const Vector &b) : center(Scalar(0.5) * (a + b)) { radius = (a - center).norm(); } + Circle(const Vector &a, const Vector &b, const Vector &c, const Scalar epsilon) { *this = CircleSq(a, b, c, epsilon); } + + // Conversion from CircleSq + template + explicit Circle(const CircleSq &c) : center(c.center), radius(c.radius2 <= 0 ? c.radius2 : sqrt(c.radius2)) {} + template + Circle operator=(const CircleSq& c) { this->center = c.center; this->radius = c.radius2 <= 0 ? c.radius2 : sqrt(c.radius2); } + + bool invalid() const { return this->radius < 0; } + bool valid() const { return ! this->invalid(); } + bool contains(const Vector &p) const { return (p - this->center).squaredNorm() <= this->radius * this->radius; } + bool contains(const Vector &p, const Scalar epsilon) const + { Scalar re = this->radius + epsilon; return (p - this->center).squaredNorm() < re * re; } + + Circle inflated(Scalar epsilon) const { assert(this->radius >= 0); return { this->center, this->radius + epsilon }; } + + static Circle make_invalid() { return Circle { { 0, 0 }, -1 }; } +}; + +using Circlef = Circle; +using Circled = Circle; +using CircleSqf = CircleSq; +using CircleSqd = CircleSq; + +// Randomized algorithm by Emo Welzl, working with squared radii for efficiency. The returned circle radius is inflated by epsilon. +template +CircleSq smallest_enclosing_circle2_welzl(const Points &points, const typename Vector::Scalar epsilon) +{ + using Scalar = typename Vector::Scalar; + CircleSq circle; + + if (! points.empty()) { + const auto &p0 = points[0].template cast(); + if (points.size() == 1) { + circle.center = p0; + circle.radius2 = epsilon * epsilon; + } else { + circle = CircleSq(p0, points[1].template cast()).inflated(epsilon); + for (size_t i = 2; i < points.size(); ++ i) + if (const Vector &p = points[i].template cast(); ! circle.contains(p)) { + // p is the first point on the smallest circle enclosing points[0..i] + circle = CircleSq(p0, p).inflated(epsilon); + for (size_t j = 1; j < i; ++ j) + if (const Vector &q = points[j].template cast(); ! circle.contains(q)) { + // q is the second point on the smallest circle enclosing points[0..i] + circle = CircleSq(p, q).inflated(epsilon); + for (size_t k = 0; k < j; ++ k) + if (const Vector &r = points[k].template cast(); ! circle.contains(r)) + circle = CircleSq(p, q, r, epsilon).inflated(epsilon); + } + } + } + } + + return circle; +} + +// Randomized algorithm by Emo Welzl. The returned circle radius is inflated by epsilon. +template +Circle smallest_enclosing_circle_welzl(const Points &points, const typename Vector::Scalar epsilon) +{ + return Circle(smallest_enclosing_circle2_welzl(points, epsilon)); +} + +// Randomized algorithm by Emo Welzl. The returned circle radius is inflated by SCALED_EPSILON. +inline Circled smallest_enclosing_circle_welzl(const Points &points) +{ + return smallest_enclosing_circle_welzl(points, SCALED_EPSILON); +} + +// Ugly named variant, that accepts the squared line +// Don't call me with a nearly zero length vector! +// sympy: +// factor(solve([a * x + b * y + c, x**2 + y**2 - r**2], [x, y])[0]) +// factor(solve([a * x + b * y + c, x**2 + y**2 - r**2], [x, y])[1]) +template +int ray_circle_intersections_r2_lv2_c(T r2, T a, T b, T lv2, T c, std::pair, Eigen::Matrix> &out) +{ + T x0 = - a * c; + T y0 = - b * c; + T d2 = r2 * lv2 - c * c; + if (d2 < T(0)) + return 0; + T d = sqrt(d2); + out.first.x() = (x0 + b * d) / lv2; + out.first.y() = (y0 - a * d) / lv2; + out.second.x() = (x0 - b * d) / lv2; + out.second.y() = (y0 + a * d) / lv2; + return d == T(0) ? 1 : 2; +} +template +int ray_circle_intersections(T r, T a, T b, T c, std::pair, Eigen::Matrix> &out) +{ + T lv2 = a * a + b * b; + if (lv2 < T(SCALED_EPSILON * SCALED_EPSILON)) { + //FIXME what is the correct epsilon? + // What if the line touches the circle? + return false; + } + return ray_circle_intersections_r2_lv2_c2(r * r, a, b, a * a + b * b, c, out); +} + +} } // namespace Slic3r::Geometry + +#endif // slic3r_Geometry_Circle_hpp_ diff --git a/src/libslic3r/Geometry/MedialAxis.cpp b/src/libslic3r/Geometry/MedialAxis.cpp new file mode 100644 index 000000000..ce38a6c70 --- /dev/null +++ b/src/libslic3r/Geometry/MedialAxis.cpp @@ -0,0 +1,712 @@ +#include "MedialAxis.hpp" + +#include "clipper.hpp" + +#ifdef SLIC3R_DEBUG +namespace boost { namespace polygon { + +// The following code for the visualization of the boost Voronoi diagram is based on: +// +// Boost.Polygon library voronoi_graphic_utils.hpp header file +// Copyright Andrii Sydorchuk 2010-2012. +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +template +class voronoi_visual_utils { + public: + // Discretize parabolic Voronoi edge. + // Parabolic Voronoi edges are always formed by one point and one segment + // from the initial input set. + // + // Args: + // point: input point. + // segment: input segment. + // max_dist: maximum discretization distance. + // discretization: point discretization of the given Voronoi edge. + // + // Template arguments: + // InCT: coordinate type of the input geometries (usually integer). + // Point: point type, should model point concept. + // Segment: segment type, should model segment concept. + // + // Important: + // discretization should contain both edge endpoints initially. + template class Point, + template class Segment> + static + typename enable_if< + typename gtl_and< + typename gtl_if< + typename is_point_concept< + typename geometry_concept< Point >::type + >::type + >::type, + typename gtl_if< + typename is_segment_concept< + typename geometry_concept< Segment >::type + >::type + >::type + >::type, + void + >::type discretize( + const Point& point, + const Segment& segment, + const CT max_dist, + std::vector< Point >* discretization) { + // Apply the linear transformation to move start point of the segment to + // the point with coordinates (0, 0) and the direction of the segment to + // coincide the positive direction of the x-axis. + CT segm_vec_x = cast(x(high(segment))) - cast(x(low(segment))); + CT segm_vec_y = cast(y(high(segment))) - cast(y(low(segment))); + CT sqr_segment_length = segm_vec_x * segm_vec_x + segm_vec_y * segm_vec_y; + + // Compute x-coordinates of the endpoints of the edge + // in the transformed space. + CT projection_start = sqr_segment_length * + get_point_projection((*discretization)[0], segment); + CT projection_end = sqr_segment_length * + get_point_projection((*discretization)[1], segment); + + // Compute parabola parameters in the transformed space. + // Parabola has next representation: + // f(x) = ((x-rot_x)^2 + rot_y^2) / (2.0*rot_y). + CT point_vec_x = cast(x(point)) - cast(x(low(segment))); + CT point_vec_y = cast(y(point)) - cast(y(low(segment))); + CT rot_x = segm_vec_x * point_vec_x + segm_vec_y * point_vec_y; + CT rot_y = segm_vec_x * point_vec_y - segm_vec_y * point_vec_x; + + // Save the last point. + Point last_point = (*discretization)[1]; + discretization->pop_back(); + + // Use stack to avoid recursion. + std::stack point_stack; + point_stack.push(projection_end); + CT cur_x = projection_start; + CT cur_y = parabola_y(cur_x, rot_x, rot_y); + + // Adjust max_dist parameter in the transformed space. + const CT max_dist_transformed = max_dist * max_dist * sqr_segment_length; + while (!point_stack.empty()) { + CT new_x = point_stack.top(); + CT new_y = parabola_y(new_x, rot_x, rot_y); + + // Compute coordinates of the point of the parabola that is + // furthest from the current line segment. + CT mid_x = (new_y - cur_y) / (new_x - cur_x) * rot_y + rot_x; + CT mid_y = parabola_y(mid_x, rot_x, rot_y); + + // Compute maximum distance between the given parabolic arc + // and line segment that discretize it. + CT dist = (new_y - cur_y) * (mid_x - cur_x) - + (new_x - cur_x) * (mid_y - cur_y); + dist = dist * dist / ((new_y - cur_y) * (new_y - cur_y) + + (new_x - cur_x) * (new_x - cur_x)); + if (dist <= max_dist_transformed) { + // Distance between parabola and line segment is less than max_dist. + point_stack.pop(); + CT inter_x = (segm_vec_x * new_x - segm_vec_y * new_y) / + sqr_segment_length + cast(x(low(segment))); + CT inter_y = (segm_vec_x * new_y + segm_vec_y * new_x) / + sqr_segment_length + cast(y(low(segment))); + discretization->push_back(Point(inter_x, inter_y)); + cur_x = new_x; + cur_y = new_y; + } else { + point_stack.push(mid_x); + } + } + + // Update last point. + discretization->back() = last_point; + } + + private: + // Compute y(x) = ((x - a) * (x - a) + b * b) / (2 * b). + static CT parabola_y(CT x, CT a, CT b) { + return ((x - a) * (x - a) + b * b) / (b + b); + } + + // Get normalized length of the distance between: + // 1) point projection onto the segment + // 2) start point of the segment + // Return this length divided by the segment length. This is made to avoid + // sqrt computation during transformation from the initial space to the + // transformed one and vice versa. The assumption is made that projection of + // the point lies between the start-point and endpoint of the segment. + template class Point, + template class Segment> + static + typename enable_if< + typename gtl_and< + typename gtl_if< + typename is_point_concept< + typename geometry_concept< Point >::type + >::type + >::type, + typename gtl_if< + typename is_segment_concept< + typename geometry_concept< Segment >::type + >::type + >::type + >::type, + CT + >::type get_point_projection( + const Point& point, const Segment& segment) { + CT segment_vec_x = cast(x(high(segment))) - cast(x(low(segment))); + CT segment_vec_y = cast(y(high(segment))) - cast(y(low(segment))); + CT point_vec_x = x(point) - cast(x(low(segment))); + CT point_vec_y = y(point) - cast(y(low(segment))); + CT sqr_segment_length = + segment_vec_x * segment_vec_x + segment_vec_y * segment_vec_y; + CT vec_dot = segment_vec_x * point_vec_x + segment_vec_y * point_vec_y; + return vec_dot / sqr_segment_length; + } + + template + static CT cast(const InCT& value) { + return static_cast(value); + } +}; + +} } // namespace boost::polygon +#endif // SLIC3R_DEBUG + +namespace Slic3r { namespace Geometry { + + +#ifdef SLIC3R_DEBUG +// The following code for the visualization of the boost Voronoi diagram is based on: +// +// Boost.Polygon library voronoi_visualizer.cpp file +// Copyright Andrii Sydorchuk 2010-2012. +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +namespace Voronoi { namespace Internal { + + typedef double coordinate_type; + typedef boost::polygon::point_data point_type; + typedef boost::polygon::segment_data segment_type; + typedef boost::polygon::rectangle_data rect_type; + typedef boost::polygon::voronoi_diagram VD; + typedef VD::cell_type cell_type; + typedef VD::cell_type::source_index_type source_index_type; + typedef VD::cell_type::source_category_type source_category_type; + typedef VD::edge_type edge_type; + typedef VD::cell_container_type cell_container_type; + typedef VD::cell_container_type vertex_container_type; + typedef VD::edge_container_type edge_container_type; + typedef VD::const_cell_iterator const_cell_iterator; + typedef VD::const_vertex_iterator const_vertex_iterator; + typedef VD::const_edge_iterator const_edge_iterator; + + static const std::size_t EXTERNAL_COLOR = 1; + + inline void color_exterior(const VD::edge_type* edge) + { + if (edge->color() == EXTERNAL_COLOR) + return; + edge->color(EXTERNAL_COLOR); + edge->twin()->color(EXTERNAL_COLOR); + const VD::vertex_type* v = edge->vertex1(); + if (v == NULL || !edge->is_primary()) + return; + v->color(EXTERNAL_COLOR); + const VD::edge_type* e = v->incident_edge(); + do { + color_exterior(e); + e = e->rot_next(); + } while (e != v->incident_edge()); + } + + inline point_type retrieve_point(const std::vector &segments, const cell_type& cell) + { + assert(cell.source_category() == boost::polygon::SOURCE_CATEGORY_SEGMENT_START_POINT || cell.source_category() == boost::polygon::SOURCE_CATEGORY_SEGMENT_END_POINT); + return (cell.source_category() == boost::polygon::SOURCE_CATEGORY_SEGMENT_START_POINT) ? low(segments[cell.source_index()]) : high(segments[cell.source_index()]); + } + + inline void clip_infinite_edge(const std::vector &segments, const edge_type& edge, coordinate_type bbox_max_size, std::vector* clipped_edge) + { + const cell_type& cell1 = *edge.cell(); + const cell_type& cell2 = *edge.twin()->cell(); + point_type origin, direction; + // Infinite edges could not be created by two segment sites. + if (cell1.contains_point() && cell2.contains_point()) { + point_type p1 = retrieve_point(segments, cell1); + point_type p2 = retrieve_point(segments, cell2); + origin.x((p1.x() + p2.x()) * 0.5); + origin.y((p1.y() + p2.y()) * 0.5); + direction.x(p1.y() - p2.y()); + direction.y(p2.x() - p1.x()); + } else { + origin = cell1.contains_segment() ? retrieve_point(segments, cell2) : retrieve_point(segments, cell1); + segment_type segment = cell1.contains_segment() ? segments[cell1.source_index()] : segments[cell2.source_index()]; + coordinate_type dx = high(segment).x() - low(segment).x(); + coordinate_type dy = high(segment).y() - low(segment).y(); + if ((low(segment) == origin) ^ cell1.contains_point()) { + direction.x(dy); + direction.y(-dx); + } else { + direction.x(-dy); + direction.y(dx); + } + } + coordinate_type koef = bbox_max_size / (std::max)(fabs(direction.x()), fabs(direction.y())); + if (edge.vertex0() == NULL) { + clipped_edge->push_back(point_type( + origin.x() - direction.x() * koef, + origin.y() - direction.y() * koef)); + } else { + clipped_edge->push_back( + point_type(edge.vertex0()->x(), edge.vertex0()->y())); + } + if (edge.vertex1() == NULL) { + clipped_edge->push_back(point_type( + origin.x() + direction.x() * koef, + origin.y() + direction.y() * koef)); + } else { + clipped_edge->push_back( + point_type(edge.vertex1()->x(), edge.vertex1()->y())); + } + } + + inline void sample_curved_edge(const std::vector &segments, const edge_type& edge, std::vector &sampled_edge, coordinate_type max_dist) + { + point_type point = edge.cell()->contains_point() ? + retrieve_point(segments, *edge.cell()) : + retrieve_point(segments, *edge.twin()->cell()); + segment_type segment = edge.cell()->contains_point() ? + segments[edge.twin()->cell()->source_index()] : + segments[edge.cell()->source_index()]; + ::boost::polygon::voronoi_visual_utils::discretize(point, segment, max_dist, &sampled_edge); + } + +} /* namespace Internal */ } // namespace Voronoi + +void dump_voronoi_to_svg(const Lines &lines, /* const */ boost::polygon::voronoi_diagram &vd, const ThickPolylines *polylines, const char *path) +{ + const double scale = 0.2; + const std::string inputSegmentPointColor = "lightseagreen"; + const coord_t inputSegmentPointRadius = coord_t(0.09 * scale / SCALING_FACTOR); + const std::string inputSegmentColor = "lightseagreen"; + const coord_t inputSegmentLineWidth = coord_t(0.03 * scale / SCALING_FACTOR); + + const std::string voronoiPointColor = "black"; + const coord_t voronoiPointRadius = coord_t(0.06 * scale / SCALING_FACTOR); + const std::string voronoiLineColorPrimary = "black"; + const std::string voronoiLineColorSecondary = "green"; + const std::string voronoiArcColor = "red"; + const coord_t voronoiLineWidth = coord_t(0.02 * scale / SCALING_FACTOR); + + const bool internalEdgesOnly = false; + const bool primaryEdgesOnly = false; + + BoundingBox bbox = BoundingBox(lines); + bbox.min(0) -= coord_t(1. / SCALING_FACTOR); + bbox.min(1) -= coord_t(1. / SCALING_FACTOR); + bbox.max(0) += coord_t(1. / SCALING_FACTOR); + bbox.max(1) += coord_t(1. / SCALING_FACTOR); + + ::Slic3r::SVG svg(path, bbox); + + if (polylines != NULL) + svg.draw(*polylines, "lime", "lime", voronoiLineWidth); + +// bbox.scale(1.2); + // For clipping of half-lines to some reasonable value. + // The line will then be clipped by the SVG viewer anyway. + const double bbox_dim_max = double(bbox.max(0) - bbox.min(0)) + double(bbox.max(1) - bbox.min(1)); + // For the discretization of the Voronoi parabolic segments. + const double discretization_step = 0.0005 * bbox_dim_max; + + // Make a copy of the input segments with the double type. + std::vector segments; + for (Lines::const_iterator it = lines.begin(); it != lines.end(); ++ it) + segments.push_back(Voronoi::Internal::segment_type( + Voronoi::Internal::point_type(double(it->a(0)), double(it->a(1))), + Voronoi::Internal::point_type(double(it->b(0)), double(it->b(1))))); + + // Color exterior edges. + for (boost::polygon::voronoi_diagram::const_edge_iterator it = vd.edges().begin(); it != vd.edges().end(); ++it) + if (!it->is_finite()) + Voronoi::Internal::color_exterior(&(*it)); + + // Draw the end points of the input polygon. + for (Lines::const_iterator it = lines.begin(); it != lines.end(); ++it) { + svg.draw(it->a, inputSegmentPointColor, inputSegmentPointRadius); + svg.draw(it->b, inputSegmentPointColor, inputSegmentPointRadius); + } + // Draw the input polygon. + for (Lines::const_iterator it = lines.begin(); it != lines.end(); ++it) + svg.draw(Line(Point(coord_t(it->a(0)), coord_t(it->a(1))), Point(coord_t(it->b(0)), coord_t(it->b(1)))), inputSegmentColor, inputSegmentLineWidth); + +#if 1 + // Draw voronoi vertices. + for (boost::polygon::voronoi_diagram::const_vertex_iterator it = vd.vertices().begin(); it != vd.vertices().end(); ++it) + if (! internalEdgesOnly || it->color() != Voronoi::Internal::EXTERNAL_COLOR) + svg.draw(Point(coord_t(it->x()), coord_t(it->y())), voronoiPointColor, voronoiPointRadius); + + for (boost::polygon::voronoi_diagram::const_edge_iterator it = vd.edges().begin(); it != vd.edges().end(); ++it) { + if (primaryEdgesOnly && !it->is_primary()) + continue; + if (internalEdgesOnly && (it->color() == Voronoi::Internal::EXTERNAL_COLOR)) + continue; + std::vector samples; + std::string color = voronoiLineColorPrimary; + if (!it->is_finite()) { + Voronoi::Internal::clip_infinite_edge(segments, *it, bbox_dim_max, &samples); + if (! it->is_primary()) + color = voronoiLineColorSecondary; + } else { + // Store both points of the segment into samples. sample_curved_edge will split the initial line + // until the discretization_step is reached. + samples.push_back(Voronoi::Internal::point_type(it->vertex0()->x(), it->vertex0()->y())); + samples.push_back(Voronoi::Internal::point_type(it->vertex1()->x(), it->vertex1()->y())); + if (it->is_curved()) { + Voronoi::Internal::sample_curved_edge(segments, *it, samples, discretization_step); + color = voronoiArcColor; + } else if (! it->is_primary()) + color = voronoiLineColorSecondary; + } + for (std::size_t i = 0; i + 1 < samples.size(); ++i) + svg.draw(Line(Point(coord_t(samples[i].x()), coord_t(samples[i].y())), Point(coord_t(samples[i+1].x()), coord_t(samples[i+1].y()))), color, voronoiLineWidth); + } +#endif + + if (polylines != NULL) + svg.draw(*polylines, "blue", voronoiLineWidth); + + svg.Close(); +} +#endif // SLIC3R_DEBUG + +template +inline const typename VD::point_type retrieve_cell_point(const typename VD::cell_type& cell, const SEGMENTS &segments) +{ + assert(cell.source_category() == boost::polygon::SOURCE_CATEGORY_SEGMENT_START_POINT || cell.source_category() == boost::polygon::SOURCE_CATEGORY_SEGMENT_END_POINT); + return (cell.source_category() == boost::polygon::SOURCE_CATEGORY_SEGMENT_START_POINT) ? low(segments[cell.source_index()]) : high(segments[cell.source_index()]); +} + +template +inline std::pair +measure_edge_thickness(const VD &vd, const typename VD::edge_type& edge, const SEGMENTS &segments) +{ + typedef typename VD::coord_type T; + const typename VD::point_type pa(edge.vertex0()->x(), edge.vertex0()->y()); + const typename VD::point_type pb(edge.vertex1()->x(), edge.vertex1()->y()); + const typename VD::cell_type &cell1 = *edge.cell(); + const typename VD::cell_type &cell2 = *edge.twin()->cell(); + if (cell1.contains_segment()) { + if (cell2.contains_segment()) { + // Both cells contain a linear segment, the left / right cells are symmetric. + // Project pa, pb to the left segment. + const typename VD::segment_type segment1 = segments[cell1.source_index()]; + const typename VD::point_type p1a = project_point_to_segment(segment1, pa); + const typename VD::point_type p1b = project_point_to_segment(segment1, pb); + return std::pair(T(2.)*dist(pa, p1a), T(2.)*dist(pb, p1b)); + } else { + // 1st cell contains a linear segment, 2nd cell contains a point. + // The medial axis between the cells is a parabolic arc. + // Project pa, pb to the left segment. + const typename VD::point_type p2 = retrieve_cell_point(cell2, segments); + return std::pair(T(2.)*dist(pa, p2), T(2.)*dist(pb, p2)); + } + } else if (cell2.contains_segment()) { + // 1st cell contains a point, 2nd cell contains a linear segment. + // The medial axis between the cells is a parabolic arc. + const typename VD::point_type p1 = retrieve_cell_point(cell1, segments); + return std::pair(T(2.)*dist(pa, p1), T(2.)*dist(pb, p1)); + } else { + // Both cells contain a point. The left / right regions are triangular and symmetric. + const typename VD::point_type p1 = retrieve_cell_point(cell1, segments); + return std::pair(T(2.)*dist(pa, p1), T(2.)*dist(pb, p1)); + } +} + +// Converts the Line instances of Lines vector to VD::segment_type. +template +class Lines2VDSegments +{ +public: + Lines2VDSegments(const Lines &alines) : lines(alines) {} + typename VD::segment_type operator[](size_t idx) const { + return typename VD::segment_type( + typename VD::point_type(typename VD::coord_type(lines[idx].a(0)), typename VD::coord_type(lines[idx].a(1))), + typename VD::point_type(typename VD::coord_type(lines[idx].b(0)), typename VD::coord_type(lines[idx].b(1)))); + } +private: + const Lines &lines; +}; + +void +MedialAxis::build(ThickPolylines* polylines) +{ + construct_voronoi(this->lines.begin(), this->lines.end(), &this->vd); + + /* + // DEBUG: dump all Voronoi edges + { + for (VD::const_edge_iterator edge = this->vd.edges().begin(); edge != this->vd.edges().end(); ++edge) { + if (edge->is_infinite()) continue; + + ThickPolyline polyline; + polyline.points.push_back(Point( edge->vertex0()->x(), edge->vertex0()->y() )); + polyline.points.push_back(Point( edge->vertex1()->x(), edge->vertex1()->y() )); + polylines->push_back(polyline); + } + return; + } + */ + + //typedef const VD::vertex_type vert_t; + typedef const VD::edge_type edge_t; + + // collect valid edges (i.e. prune those not belonging to MAT) + // note: this keeps twins, so it inserts twice the number of the valid edges + this->valid_edges.clear(); + { + std::set seen_edges; + for (VD::const_edge_iterator edge = this->vd.edges().begin(); edge != this->vd.edges().end(); ++edge) { + // if we only process segments representing closed loops, none if the + // infinite edges (if any) would be part of our MAT anyway + if (edge->is_secondary() || edge->is_infinite()) continue; + + // don't re-validate twins + if (seen_edges.find(&*edge) != seen_edges.end()) continue; // TODO: is this needed? + seen_edges.insert(&*edge); + seen_edges.insert(edge->twin()); + + if (!this->validate_edge(&*edge)) continue; + this->valid_edges.insert(&*edge); + this->valid_edges.insert(edge->twin()); + } + } + this->edges = this->valid_edges; + + // iterate through the valid edges to build polylines + while (!this->edges.empty()) { + const edge_t* edge = *this->edges.begin(); + + // start a polyline + ThickPolyline polyline; + polyline.points.push_back(Point( edge->vertex0()->x(), edge->vertex0()->y() )); + polyline.points.push_back(Point( edge->vertex1()->x(), edge->vertex1()->y() )); + polyline.width.push_back(this->thickness[edge].first); + polyline.width.push_back(this->thickness[edge].second); + + // remove this edge and its twin from the available edges + (void)this->edges.erase(edge); + (void)this->edges.erase(edge->twin()); + + // get next points + this->process_edge_neighbors(edge, &polyline); + + // get previous points + { + ThickPolyline rpolyline; + this->process_edge_neighbors(edge->twin(), &rpolyline); + polyline.points.insert(polyline.points.begin(), rpolyline.points.rbegin(), rpolyline.points.rend()); + polyline.width.insert(polyline.width.begin(), rpolyline.width.rbegin(), rpolyline.width.rend()); + polyline.endpoints.first = rpolyline.endpoints.second; + } + + assert(polyline.width.size() == polyline.points.size()*2 - 2); + + // prevent loop endpoints from being extended + if (polyline.first_point() == polyline.last_point()) { + polyline.endpoints.first = false; + polyline.endpoints.second = false; + } + + // append polyline to result + polylines->push_back(polyline); + } + + #ifdef SLIC3R_DEBUG + { + static int iRun = 0; + dump_voronoi_to_svg(this->lines, this->vd, polylines, debug_out_path("MedialAxis-%d.svg", iRun ++).c_str()); + printf("Thick lines: "); + for (ThickPolylines::const_iterator it = polylines->begin(); it != polylines->end(); ++ it) { + ThickLines lines = it->thicklines(); + for (ThickLines::const_iterator it2 = lines.begin(); it2 != lines.end(); ++ it2) { + printf("%f,%f ", it2->a_width, it2->b_width); + } + } + printf("\n"); + } + #endif /* SLIC3R_DEBUG */ +} + +void +MedialAxis::build(Polylines* polylines) +{ + ThickPolylines tp; + this->build(&tp); + polylines->insert(polylines->end(), tp.begin(), tp.end()); +} + +void +MedialAxis::process_edge_neighbors(const VD::edge_type* edge, ThickPolyline* polyline) +{ + while (true) { + // Since rot_next() works on the edge starting point but we want + // to find neighbors on the ending point, we just swap edge with + // its twin. + const VD::edge_type* twin = edge->twin(); + + // count neighbors for this edge + std::vector neighbors; + for (const VD::edge_type* neighbor = twin->rot_next(); neighbor != twin; + neighbor = neighbor->rot_next()) { + if (this->valid_edges.count(neighbor) > 0) neighbors.push_back(neighbor); + } + + // if we have a single neighbor then we can continue recursively + if (neighbors.size() == 1) { + const VD::edge_type* neighbor = neighbors.front(); + + // break if this is a closed loop + if (this->edges.count(neighbor) == 0) return; + + Point new_point(neighbor->vertex1()->x(), neighbor->vertex1()->y()); + polyline->points.push_back(new_point); + polyline->width.push_back(this->thickness[neighbor].first); + polyline->width.push_back(this->thickness[neighbor].second); + (void)this->edges.erase(neighbor); + (void)this->edges.erase(neighbor->twin()); + edge = neighbor; + } else if (neighbors.size() == 0) { + polyline->endpoints.second = true; + return; + } else { + // T-shaped or star-shaped joint + return; + } + } +} + +bool MedialAxis::validate_edge(const VD::edge_type* edge) +{ + // prevent overflows and detect almost-infinite edges +#ifndef CLIPPERLIB_INT32 + if (std::abs(edge->vertex0()->x()) > double(CLIPPER_MAX_COORD_UNSCALED) || + std::abs(edge->vertex0()->y()) > double(CLIPPER_MAX_COORD_UNSCALED) || + std::abs(edge->vertex1()->x()) > double(CLIPPER_MAX_COORD_UNSCALED) || + std::abs(edge->vertex1()->y()) > double(CLIPPER_MAX_COORD_UNSCALED)) + return false; +#endif // CLIPPERLIB_INT32 + + // construct the line representing this edge of the Voronoi diagram + const Line line( + Point( edge->vertex0()->x(), edge->vertex0()->y() ), + Point( edge->vertex1()->x(), edge->vertex1()->y() ) + ); + + // discard edge if it lies outside the supplied shape + // this could maybe be optimized (checking inclusion of the endpoints + // might give false positives as they might belong to the contour itself) + if (this->expolygon != NULL) { + if (line.a == line.b) { + // in this case, contains(line) returns a false positive + if (!this->expolygon->contains(line.a)) return false; + } else { + if (!this->expolygon->contains(line)) return false; + } + } + + // retrieve the original line segments which generated the edge we're checking + const VD::cell_type* cell_l = edge->cell(); + const VD::cell_type* cell_r = edge->twin()->cell(); + const Line &segment_l = this->retrieve_segment(cell_l); + const Line &segment_r = this->retrieve_segment(cell_r); + + /* + SVG svg("edge.svg"); + svg.draw(*this->expolygon); + svg.draw(line); + svg.draw(segment_l, "red"); + svg.draw(segment_r, "blue"); + svg.Close(); + */ + + /* Calculate thickness of the cross-section at both the endpoints of this edge. + Our Voronoi edge is part of a CCW sequence going around its Voronoi cell + located on the left side. (segment_l). + This edge's twin goes around segment_r. Thus, segment_r is + oriented in the same direction as our main edge, and segment_l is oriented + in the same direction as our twin edge. + We used to only consider the (half-)distances to segment_r, and that works + whenever segment_l and segment_r are almost specular and facing. However, + at curves they are staggered and they only face for a very little length + (our very short edge represents such visibility). + Both w0 and w1 can be calculated either towards cell_l or cell_r with equal + results by Voronoi definition. + When cell_l or cell_r don't refer to the segment but only to an endpoint, we + calculate the distance to that endpoint instead. */ + + coordf_t w0 = cell_r->contains_segment() + ? segment_r.distance_to(line.a)*2 + : (this->retrieve_endpoint(cell_r) - line.a).cast().norm()*2; + + coordf_t w1 = cell_l->contains_segment() + ? segment_l.distance_to(line.b)*2 + : (this->retrieve_endpoint(cell_l) - line.b).cast().norm()*2; + + if (cell_l->contains_segment() && cell_r->contains_segment()) { + // calculate the relative angle between the two boundary segments + double angle = fabs(segment_r.orientation() - segment_l.orientation()); + if (angle > PI) angle = 2*PI - angle; + assert(angle >= 0 && angle <= PI); + + // fabs(angle) ranges from 0 (collinear, same direction) to PI (collinear, opposite direction) + // we're interested only in segments close to the second case (facing segments) + // so we allow some tolerance. + // this filter ensures that we're dealing with a narrow/oriented area (longer than thick) + // we don't run it on edges not generated by two segments (thus generated by one segment + // and the endpoint of another segment), since their orientation would not be meaningful + if (PI - angle > PI/8) { + // angle is not narrow enough + + // only apply this filter to segments that are not too short otherwise their + // angle could possibly be not meaningful + if (w0 < SCALED_EPSILON || w1 < SCALED_EPSILON || line.length() >= this->min_width) + return false; + } + } else { + if (w0 < SCALED_EPSILON || w1 < SCALED_EPSILON) + return false; + } + + if (w0 < this->min_width && w1 < this->min_width) + return false; + + if (w0 > this->max_width && w1 > this->max_width) + return false; + + this->thickness[edge] = std::make_pair(w0, w1); + this->thickness[edge->twin()] = std::make_pair(w1, w0); + + return true; +} + +const Line& MedialAxis::retrieve_segment(const VD::cell_type* cell) const +{ + return this->lines[cell->source_index()]; +} + +const Point& MedialAxis::retrieve_endpoint(const VD::cell_type* cell) const +{ + const Line& line = this->retrieve_segment(cell); + if (cell->source_category() == boost::polygon::SOURCE_CATEGORY_SEGMENT_START_POINT) { + return line.a; + } else { + return line.b; + } +} + +} } // namespace Slicer::Geometry diff --git a/src/libslic3r/Geometry/MedialAxis.hpp b/src/libslic3r/Geometry/MedialAxis.hpp new file mode 100644 index 000000000..cfbb5f080 --- /dev/null +++ b/src/libslic3r/Geometry/MedialAxis.hpp @@ -0,0 +1,33 @@ +#ifndef slic3r_Geometry_MedialAxis_hpp_ +#define slic3r_Geometry_MedialAxis_hpp_ + +#include "Voronoi.hpp" +#include "../ExPolygon.hpp" + +namespace Slic3r { namespace Geometry { + +class MedialAxis { +public: + Lines lines; + const ExPolygon* expolygon; + double max_width; + double min_width; + MedialAxis(double _max_width, double _min_width, const ExPolygon* _expolygon = NULL) + : expolygon(_expolygon), max_width(_max_width), min_width(_min_width) {}; + void build(ThickPolylines* polylines); + void build(Polylines* polylines); + +private: + using VD = VoronoiDiagram; + VD vd; + std::set edges, valid_edges; + std::map > thickness; + void process_edge_neighbors(const VD::edge_type* edge, ThickPolyline* polyline); + bool validate_edge(const VD::edge_type* edge); + const Line& retrieve_segment(const VD::cell_type* cell) const; + const Point& retrieve_endpoint(const VD::cell_type* cell) const; +}; + +} } // namespace Slicer::Geometry + +#endif // slic3r_Geometry_MedialAxis_hpp_ diff --git a/src/libslic3r/Geometry/Voronoi.hpp b/src/libslic3r/Geometry/Voronoi.hpp new file mode 100644 index 000000000..5529750f3 --- /dev/null +++ b/src/libslic3r/Geometry/Voronoi.hpp @@ -0,0 +1,33 @@ +#ifndef slic3r_Geometry_Voronoi_hpp_ +#define slic3r_Geometry_Voronoi_hpp_ + +#include "../Line.hpp" +#include "../Polyline.hpp" + +#define BOOST_VORONOI_USE_GMP 1 + +#ifdef _MSC_VER +// Suppress warning C4146 in OpenVDB: unary minus operator applied to unsigned type, result still unsigned +#pragma warning(push) +#pragma warning(disable : 4146) +#endif // _MSC_VER +#include "boost/polygon/voronoi.hpp" +#ifdef _MSC_VER +#pragma warning(pop) +#endif // _MSC_VER + +namespace Slic3r { + +namespace Geometry { + +class VoronoiDiagram : public boost::polygon::voronoi_diagram { +public: + typedef double coord_type; + typedef boost::polygon::point_data point_type; + typedef boost::polygon::segment_data segment_type; + typedef boost::polygon::rectangle_data rect_type; +}; + +} } // namespace Slicer::Geometry + +#endif // slic3r_Geometry_Voronoi_hpp_ diff --git a/src/libslic3r/VoronoiOffset.cpp b/src/libslic3r/Geometry/VoronoiOffset.cpp similarity index 99% rename from src/libslic3r/VoronoiOffset.cpp rename to src/libslic3r/Geometry/VoronoiOffset.cpp index e8d13a6ad..46105220a 100644 --- a/src/libslic3r/VoronoiOffset.cpp +++ b/src/libslic3r/Geometry/VoronoiOffset.cpp @@ -1,5 +1,6 @@ // Polygon offsetting using Voronoi diagram prodiced by boost::polygon. +#include "Geometry.hpp" #include "VoronoiOffset.hpp" #include "libslic3r.h" diff --git a/src/libslic3r/VoronoiOffset.hpp b/src/libslic3r/Geometry/VoronoiOffset.hpp similarity index 99% rename from src/libslic3r/VoronoiOffset.hpp rename to src/libslic3r/Geometry/VoronoiOffset.hpp index 17b590ed7..359fe010c 100644 --- a/src/libslic3r/VoronoiOffset.hpp +++ b/src/libslic3r/Geometry/VoronoiOffset.hpp @@ -3,9 +3,9 @@ #ifndef slic3r_VoronoiOffset_hpp_ #define slic3r_VoronoiOffset_hpp_ -#include "libslic3r.h" +#include "../libslic3r.h" -#include "Geometry.hpp" +#include "Voronoi.hpp" namespace Slic3r { diff --git a/src/libslic3r/VoronoiVisualUtils.hpp b/src/libslic3r/Geometry/VoronoiVisualUtils.hpp similarity index 100% rename from src/libslic3r/VoronoiVisualUtils.hpp rename to src/libslic3r/Geometry/VoronoiVisualUtils.hpp diff --git a/src/libslic3r/MeshBoolean.cpp b/src/libslic3r/MeshBoolean.cpp index 95daa33a6..346d7a954 100644 --- a/src/libslic3r/MeshBoolean.cpp +++ b/src/libslic3r/MeshBoolean.cpp @@ -148,19 +148,23 @@ template TriangleMesh cgal_to_triangle_mesh(const _Mesh &cgalmesh) its.vertices.reserve(cgalmesh.num_vertices()); its.indices.reserve(cgalmesh.num_faces()); - for (auto &vi : cgalmesh.vertices()) { + const auto &faces = cgalmesh.faces(); + const auto &vertices = cgalmesh.vertices(); + int vsize = int(vertices.size()); + + for (auto &vi : vertices) { auto &v = cgalmesh.point(vi); // Don't ask... its.vertices.emplace_back(to_vec3f(v)); } - - for (auto &face : cgalmesh.faces()) { + + for (auto &face : faces) { auto vtc = cgalmesh.vertices_around_face(cgalmesh.halfedge(face)); int i = 0; Vec3i facet; for (auto v : vtc) { int iv = v; - if (i > 2 || iv < 0 || iv >= int(cgalmesh.vertices().size())) { i = 0; break; } + if (i > 2 || iv < 0 || iv >= vsize) { i = 0; break; } facet(i++) = iv; } diff --git a/src/libslic3r/Model.cpp b/src/libslic3r/Model.cpp index 2dcf34211..fec6e422c 100644 --- a/src/libslic3r/Model.cpp +++ b/src/libslic3r/Model.cpp @@ -40,7 +40,8 @@ ModelInstanceEPrintVolumeState printbed_collision_state(const Polygon& printbed_ break; } } - const bool contained_z = -1e10 < obj_min_z && obj_max_z < print_volume_height; + + const bool contained_z = -1e10 < obj_min_z && obj_max_z <= print_volume_height; return (contained_xy && contained_z) ? ModelInstancePVS_Inside : ModelInstancePVS_Partly_Outside; } @@ -1263,10 +1264,10 @@ ModelObjectPtrs ModelObject::cut(size_t instance, coordf_t z, ModelObjectCutAttr instances[instance]->get_mirror() ); - z -= instances[instance]->get_offset()(2); + z -= instances[instance]->get_offset().z(); - // Lower part per-instance bounding boxes - std::vector lower_bboxes { instances.size() }; + // Displacement (in instance coordinates) to be applied to place the upper parts + Vec3d local_displace = Vec3d::Zero(); for (ModelVolume *volume : volumes) { const auto volume_matrix = volume->get_matrix(); @@ -1286,8 +1287,7 @@ ModelObjectPtrs ModelObject::cut(size_t instance, coordf_t z, ModelObjectCutAttr if (attributes.has(ModelObjectCutAttribute::KeepLower)) lower->add_volume(*volume); } - else if (! volume->mesh().empty()) { - + else if (! volume->mesh().empty()) { // Transform the mesh by the combined transformation matrix. // Flip the triangles in case the composite transformation is left handed. TriangleMesh mesh(volume->mesh()); @@ -1327,13 +1327,10 @@ ModelObjectPtrs ModelObject::cut(size_t instance, coordf_t z, ModelObjectCutAttr assert(vol->config.id() != volume->config.id()); vol->set_material(volume->material_id(), *volume->material()); - // Compute the lower part instances' bounding boxes to figure out where to place - // the upper part - if (attributes.has(ModelObjectCutAttribute::KeepUpper)) { - for (size_t i = 0; i < instances.size(); i++) { - lower_bboxes[i].merge(instances[i]->transform_mesh_bounding_box(lower_mesh, true)); - } - } + // Compute the displacement (in instance coordinates) to be applied to place the upper parts + // The upper part displacement is set to half of the lower part bounding box + // this is done in hope at least a part of the upper part will always be visible and draggable + local_displace = lower->full_raw_mesh_bounding_box().size().cwiseProduct(Vec3d(-0.5, -0.5, 0.0)); } } } @@ -1341,17 +1338,18 @@ ModelObjectPtrs ModelObject::cut(size_t instance, coordf_t z, ModelObjectCutAttr ModelObjectPtrs res; if (attributes.has(ModelObjectCutAttribute::KeepUpper) && upper->volumes.size() > 0) { - upper->invalidate_bounding_box(); - upper->center_around_origin(); + if (!upper->origin_translation.isApprox(Vec3d::Zero()) && instances[instance]->get_offset().isApprox(Vec3d::Zero())) { + upper->center_around_origin(); + upper->translate_instances(-upper->origin_translation); + upper->origin_translation = Vec3d::Zero(); + } // Reset instance transformation except offset and Z-rotation - for (size_t i = 0; i < instances.size(); i++) { + for (size_t i = 0; i < instances.size(); ++i) { auto &instance = upper->instances[i]; const Vec3d offset = instance->get_offset(); - const double rot_z = instance->get_rotation()(2); - // The upper part displacement is set to half of the lower part bounding box - // this is done in hope at least a part of the upper part will always be visible and draggable - const Vec3d displace = lower_bboxes[i].size().cwiseProduct(Vec3d(-0.5, -0.5, 0.0)); + const double rot_z = instance->get_rotation().z(); + const Vec3d displace = Geometry::assemble_transform(Vec3d::Zero(), instance->get_rotation()) * local_displace; instance->set_transformation(Geometry::Transformation()); instance->set_offset(offset + displace); @@ -1361,14 +1359,16 @@ ModelObjectPtrs ModelObject::cut(size_t instance, coordf_t z, ModelObjectCutAttr res.push_back(upper); } if (attributes.has(ModelObjectCutAttribute::KeepLower) && lower->volumes.size() > 0) { - lower->invalidate_bounding_box(); - lower->center_around_origin(); + if (!lower->origin_translation.isApprox(Vec3d::Zero()) && instances[instance]->get_offset().isApprox(Vec3d::Zero())) { + lower->center_around_origin(); + lower->translate_instances(-lower->origin_translation); + lower->origin_translation = Vec3d::Zero(); + } // Reset instance transformation except offset and Z-rotation for (auto *instance : lower->instances) { const Vec3d offset = instance->get_offset(); - const double rot_z = instance->get_rotation()(2); - + const double rot_z = instance->get_rotation().z(); instance->set_transformation(Geometry::Transformation()); instance->set_offset(offset); instance->set_rotation(Vec3d(attributes.has(ModelObjectCutAttribute::FlipLower) ? Geometry::deg2rad(180.0) : 0.0, 0.0, rot_z)); @@ -1587,6 +1587,10 @@ unsigned int ModelObject::check_instances_print_volume_state(const Polygon& prin if (vol->is_model_part()) { const Transform3d matrix = model_instance->get_matrix() * vol->get_matrix(); const BoundingBoxf3 bb = vol->mesh().transformed_bounding_box(matrix, 0.0); + if (!bb.defined) { + // this may happen if the part is fully below the printbed, leading to a crash in the following call to its_convex_hull_2d_above() + continue; + } const Polygon volume_hull_2d = its_convex_hull_2d_above(vol->mesh().its, matrix.cast(), 0.0f); ModelInstanceEPrintVolumeState state = printbed_collision_state(printbed_shape, print_volume_height, volume_hull_2d, bb.min.z(), bb.max.z()); if (state == ModelInstancePVS_Inside) @@ -1856,18 +1860,17 @@ size_t ModelVolume::split(unsigned int max_extruders) size_t idx = 0; size_t ivolume = std::find(this->object->volumes.begin(), this->object->volumes.end(), this) - this->object->volumes.begin(); - std::string name = this->name; + const std::string name = this->name; unsigned int extruder_counter = 0; - Vec3d offset = this->get_offset(); + const Vec3d offset = this->get_offset(); for (TriangleMesh &mesh : meshes) { if (mesh.empty()) // Repair may have removed unconnected triangles, thus emptying the mesh. continue; - if (idx == 0) - { + if (idx == 0) { this->set_mesh(std::move(mesh)); this->calculate_convex_hull(); // Assign a new unique ID, so that a new GLVolume will be generated. @@ -1886,7 +1889,19 @@ size_t ModelVolume::split(unsigned int max_extruders) this->object->volumes[ivolume]->m_is_splittable = 0; ++ idx; } - + + // discard volumes for which the convex hull was not generated or is degenerate + size_t i = 0; + while (i < this->object->volumes.size()) { + const std::shared_ptr &hull = this->object->volumes[i]->get_convex_hull_shared_ptr(); + if (hull == nullptr || hull->its.vertices.empty() || hull->its.indices.empty()) { + this->object->delete_volume(i); + --idx; + --i; + } + ++i; + } + return idx; } diff --git a/src/libslic3r/Model.hpp b/src/libslic3r/Model.hpp index e47ebda39..3e11336af 100644 --- a/src/libslic3r/Model.hpp +++ b/src/libslic3r/Model.hpp @@ -684,7 +684,7 @@ public: void calculate_convex_hull(); const TriangleMesh& get_convex_hull() const; - std::shared_ptr get_convex_hull_shared_ptr() const { return m_convex_hull; } + const std::shared_ptr& get_convex_hull_shared_ptr() const { return m_convex_hull; } // Get count of errors in the mesh int get_repaired_errors_count() const; diff --git a/src/libslic3r/MultiMaterialSegmentation.cpp b/src/libslic3r/MultiMaterialSegmentation.cpp index 86b3488b0..7041f7b82 100644 --- a/src/libslic3r/MultiMaterialSegmentation.cpp +++ b/src/libslic3r/MultiMaterialSegmentation.cpp @@ -3,7 +3,7 @@ #include "EdgeGrid.hpp" #include "Layer.hpp" #include "Print.hpp" -#include "VoronoiVisualUtils.hpp" +#include "Geometry/VoronoiVisualUtils.hpp" #include "MutablePolygon.hpp" #include "format.hpp" @@ -44,6 +44,8 @@ struct segment_traits { //#define MMU_SEGMENTATION_DEBUG_GRAPH //#define MMU_SEGMENTATION_DEBUG_REGIONS //#define MMU_SEGMENTATION_DEBUG_INPUT +//#define MMU_SEGMENTATION_DEBUG_PAINTED_LINES +//#define MMU_SEGMENTATION_DEBUG_COLORIZED_POLYGONS namespace Slic3r { @@ -147,18 +149,6 @@ struct PaintedLineVisitor static inline const double append_threshold2 = Slic3r::sqr(append_threshold); }; -static std::vector to_colored_lines(const EdgeGrid::Contour &contour, int color) -{ - std::vector lines; - if (contour.num_segments() > 2) { - lines.reserve(contour.num_segments()); - for (auto it = contour.begin(); it != contour.end() - 1; ++it) - lines.push_back({Line(*it, *(it + 1)), color}); - lines.push_back({Line(contour.back(), contour.front()), color}); - } - return lines; -} - static Polygon colored_points_to_polygon(const std::vector &lines) { Polygon out; @@ -242,25 +232,18 @@ static std::vector>> get_all_segments(cons return all_segments; } -static std::vector colorize_line(const Line & line_to_process, - const size_t start_idx, - const size_t end_idx, - std::vector &painted_lines) +static std::vector filter_painted_lines(const Line &line_to_process, const size_t start_idx, const size_t end_idx, const std::vector &painted_lines) { - std::vector internal_painted; - for (size_t line_idx = start_idx; line_idx <= end_idx; ++line_idx) - internal_painted.emplace_back(painted_lines[line_idx]); - const int filter_eps_value = scale_(0.1f); std::vector filtered_lines; - filtered_lines.emplace_back(internal_painted.front()); - for (size_t line_idx = 1; line_idx < internal_painted.size(); ++line_idx) { + filtered_lines.emplace_back(painted_lines[start_idx]); + for (size_t line_idx = start_idx + 1; line_idx <= end_idx; ++line_idx) { // line_to_process is already all colored. Skip another possible duplicate coloring. if(filtered_lines.back().projected_line.b == line_to_process.b) break; PaintedLine &prev = filtered_lines.back(); - PaintedLine &curr = internal_painted[line_idx]; + const PaintedLine &curr = painted_lines[line_idx]; double prev_length = prev.projected_line.length(); double curr_dist_start = (curr.projected_line.a - prev.projected_line.a).cast().norm(); @@ -278,31 +261,84 @@ static std::vector colorize_line(const Line & line_to_ } } else { double curr_dist_end = (curr.projected_line.b - prev.projected_line.a).cast().norm(); - if (curr_dist_end <= prev_length) { - } else { - if (prev.color == curr.color) { + if (curr_dist_end > prev_length) { + if (prev.color == curr.color) prev.projected_line.b = curr.projected_line.b; - } else { - curr.projected_line.a = prev.projected_line.b; - filtered_lines.emplace_back(curr); - } + else + filtered_lines.push_back({curr.contour_idx, curr.line_idx, Line{prev.projected_line.b, curr.projected_line.b}, curr.color}); } } } - std::vector final_lines; - double dist_to_start = (filtered_lines.front().projected_line.a - line_to_process.a).cast().norm(); - if (dist_to_start <= filter_eps_value) { + if (double dist_to_start = (filtered_lines.front().projected_line.a - line_to_process.a).cast().norm(); dist_to_start <= filter_eps_value) filtered_lines.front().projected_line.a = line_to_process.a; - final_lines.push_back({filtered_lines.front().projected_line, filtered_lines.front().color}); - } else { - final_lines.push_back({Line(line_to_process.a, filtered_lines.front().projected_line.a), 0}); - final_lines.push_back({filtered_lines.front().projected_line, filtered_lines.front().color}); + + if (double dist_to_end = (filtered_lines.back().projected_line.b - line_to_process.b).cast().norm(); dist_to_end <= filter_eps_value) + filtered_lines.back().projected_line.b = line_to_process.b; + + return filtered_lines; +} + +static std::vector> post_process_painted_lines(const std::vector &contours, std::vector &&painted_lines) +{ + if (painted_lines.empty()) + return {}; + + auto comp = [&contours](const PaintedLine &first, const PaintedLine &second) { + Point first_start_p = contours[first.contour_idx].segment_start(first.line_idx); + return first.contour_idx < second.contour_idx || + (first.contour_idx == second.contour_idx && + (first.line_idx < second.line_idx || + (first.line_idx == second.line_idx && + ((first.projected_line.a - first_start_p).cast().squaredNorm() < (second.projected_line.a - first_start_p).cast().squaredNorm() || + ((first.projected_line.a - first_start_p).cast().squaredNorm() == (second.projected_line.a - first_start_p).cast().squaredNorm() && + (first.projected_line.b - first.projected_line.a).cast().squaredNorm() < (second.projected_line.b - second.projected_line.a).cast().squaredNorm()))))); + }; + std::sort(painted_lines.begin(), painted_lines.end(), comp); + + std::vector> filtered_painted_lines(contours.size()); + size_t prev_painted_line_idx = 0; + for (size_t curr_painted_line_idx = 0; curr_painted_line_idx < painted_lines.size(); ++curr_painted_line_idx) { + size_t next_painted_line_idx = curr_painted_line_idx + 1; + if (next_painted_line_idx >= painted_lines.size() || painted_lines[curr_painted_line_idx].contour_idx != painted_lines[next_painted_line_idx].contour_idx || painted_lines[curr_painted_line_idx].line_idx != painted_lines[next_painted_line_idx].line_idx) { + const PaintedLine &start_line = painted_lines[prev_painted_line_idx]; + const Line &line_to_process = contours[start_line.contour_idx].get_segment(start_line.line_idx); + Slic3r::append(filtered_painted_lines[painted_lines[curr_painted_line_idx].contour_idx], filter_painted_lines(line_to_process, prev_painted_line_idx, curr_painted_line_idx, painted_lines)); + prev_painted_line_idx = next_painted_line_idx; + } } - for (size_t line_idx = 1; line_idx < filtered_lines.size(); ++line_idx) { - ColoredLine &prev = final_lines.back(); - PaintedLine &curr = filtered_lines[line_idx]; + return filtered_painted_lines; +} + +#ifndef NDEBUG +static bool are_lines_connected(const std::vector &colored_lines) +{ + for (size_t line_idx = 1; line_idx < colored_lines.size(); ++line_idx) + if (colored_lines[line_idx - 1].line.b != colored_lines[line_idx].line.a) + return false; + return true; +} +#endif + +static std::vector colorize_line(const Line &line_to_process, + const size_t start_idx, + const size_t end_idx, + const std::vector &painted_contour) +{ + assert(start_idx < painted_contour.size() && end_idx < painted_contour.size() && start_idx <= end_idx); + assert(std::all_of(painted_contour.begin() + start_idx, painted_contour.begin() + end_idx + 1, [&painted_contour, &start_idx](const auto &p_line) { return painted_contour[start_idx].line_idx == p_line.line_idx; })); + + const int filter_eps_value = scale_(0.1f); + std::vector final_lines; + const PaintedLine &first_line = painted_contour[start_idx]; + if (double dist_to_start = (first_line.projected_line.a - line_to_process.a).cast().norm(); dist_to_start > filter_eps_value) + final_lines.push_back({Line(line_to_process.a, first_line.projected_line.a), 0}); + final_lines.push_back({first_line.projected_line, first_line.color}); + + for (size_t line_idx = start_idx + 1; line_idx <= end_idx; ++line_idx) { + ColoredLine &prev = final_lines.back(); + const PaintedLine &curr = painted_contour[line_idx]; double line_dist = (curr.projected_line.a - prev.line.b).cast().norm(); if (line_dist <= filter_eps_value) { @@ -318,18 +354,16 @@ static std::vector colorize_line(const Line & line_to_ } } - double dist_to_end = (final_lines.back().line.b - line_to_process.b).cast().norm(); - if (dist_to_end <= filter_eps_value) - final_lines.back().line.b = line_to_process.b; - else + // If there is non-painted space, then inserts line painted by a default color. + if (double dist_to_end = (final_lines.back().line.b - line_to_process.b).cast().norm(); dist_to_end > filter_eps_value) final_lines.push_back({Line(final_lines.back().line.b, line_to_process.b), 0}); - for (size_t line_idx = 1; line_idx < final_lines.size(); ++line_idx) - assert(final_lines[line_idx - 1].line.b == final_lines[line_idx].line.a); + // Make sure all the lines are connected. + assert(are_lines_connected(final_lines)); for (size_t line_idx = 2; line_idx < final_lines.size(); ++line_idx) { const ColoredLine &line_0 = final_lines[line_idx - 2]; - ColoredLine & line_1 = final_lines[line_idx - 1]; + ColoredLine &line_1 = final_lines[line_idx - 1]; const ColoredLine &line_2 = final_lines[line_idx - 0]; if (line_0.color == line_2.color && line_0.color != line_1.color) @@ -349,52 +383,25 @@ static std::vector colorize_line(const Line & line_to_ final_lines = colored_lines_simple; - if (final_lines.size() > 1) { + if (final_lines.size() > 1) if (final_lines.front().color != final_lines[1].color && final_lines.front().line.length() <= scale_(0.2)) { final_lines[1].line.a = final_lines.front().line.a; final_lines.erase(final_lines.begin()); } - } - if (final_lines.size() > 1) { + if (final_lines.size() > 1) if (final_lines.back().color != final_lines[final_lines.size() - 2].color && final_lines.back().line.length() <= scale_(0.2)) { final_lines[final_lines.size() - 2].line.b = final_lines.back().line.b; final_lines.pop_back(); } - } return final_lines; } -static std::vector colorize_polygon(const EdgeGrid::Contour &contour, const size_t start_idx, const size_t end_idx, std::vector &painted_lines) -{ - std::vector new_lines; - new_lines.reserve(end_idx - start_idx + 1); - for (size_t idx = 0; idx < painted_lines[start_idx].line_idx; ++idx) - new_lines.emplace_back(ColoredLine{contour.get_segment(idx), 0}); - - for (size_t first_idx = start_idx; first_idx <= end_idx; ++first_idx) { - size_t second_idx = first_idx; - while (second_idx <= end_idx && painted_lines[first_idx].line_idx == painted_lines[second_idx].line_idx) ++second_idx; - --second_idx; - - assert(painted_lines[first_idx].line_idx == painted_lines[second_idx].line_idx); - std::vector lines_c_line = colorize_line(contour.get_segment(painted_lines[first_idx].line_idx), first_idx, second_idx, painted_lines); - new_lines.insert(new_lines.end(), lines_c_line.begin(), lines_c_line.end()); - - if (second_idx + 1 <= end_idx) - for (size_t idx = painted_lines[second_idx].line_idx + 1; idx < painted_lines[second_idx + 1].line_idx; ++idx) - new_lines.emplace_back(ColoredLine{contour.get_segment(idx), 0}); - - first_idx = second_idx; - } - - for (size_t idx = painted_lines[end_idx].line_idx + 1; idx < contour.num_segments(); ++idx) - new_lines.emplace_back(ColoredLine{contour.get_segment(idx), 0}); - +static std::vector filter_colorized_polygon(std::vector &&new_lines) { for (size_t line_idx = 2; line_idx < new_lines.size(); ++line_idx) { const ColoredLine &line_0 = new_lines[line_idx - 2]; - ColoredLine & line_1 = new_lines[line_idx - 1]; + ColoredLine &line_1 = new_lines[line_idx - 1]; const ColoredLine &line_2 = new_lines[line_idx - 0]; if (line_0.color == line_2.color && line_0.color != line_1.color && line_0.color >= 1) { @@ -404,8 +411,8 @@ static std::vector colorize_polygon(const EdgeGrid::Contour &contou for (size_t line_idx = 3; line_idx < new_lines.size(); ++line_idx) { const ColoredLine &line_0 = new_lines[line_idx - 3]; - ColoredLine & line_1 = new_lines[line_idx - 2]; - ColoredLine & line_2 = new_lines[line_idx - 1]; + ColoredLine &line_1 = new_lines[line_idx - 2]; + ColoredLine &line_2 = new_lines[line_idx - 1]; const ColoredLine &line_3 = new_lines[line_idx - 0]; if (line_0.color == line_3.color && (line_0.color != line_1.color || line_0.color != line_2.color) && line_0.color >= 1 && line_3.color >= 1) { @@ -425,79 +432,110 @@ static std::vector colorize_polygon(const EdgeGrid::Contour &contou return total_length; }; - for (size_t pair_idx = 1; pair_idx < segments.size(); ++pair_idx) { - int color0 = new_lines[segments[pair_idx - 1].first].color; - int color1 = new_lines[segments[pair_idx - 0].first].color; + if (segments.size() >= 2) + for (size_t curr_idx = 0; curr_idx < segments.size(); ++curr_idx) { + size_t next_idx = next_idx_modulo(curr_idx, segments.size()); + assert(curr_idx != next_idx); - double seg0l = segment_length(segments[pair_idx - 1]); - double seg1l = segment_length(segments[pair_idx - 0]); + int color0 = new_lines[segments[curr_idx].first].color; + int color1 = new_lines[segments[next_idx].first].color; - if (color0 != color1 && seg0l >= scale_(0.1) && seg1l <= scale_(0.2)) { - for (size_t seg_start_idx = segments[pair_idx].first; seg_start_idx != segments[pair_idx].second; seg_start_idx = (seg_start_idx + 1 < new_lines.size()) ? seg_start_idx + 1 : 0) - new_lines[seg_start_idx].color = color0; - new_lines[segments[pair_idx].second].color = color0; + double seg0l = segment_length(segments[curr_idx]); + double seg1l = segment_length(segments[next_idx]); + + if (color0 != color1 && seg0l >= scale_(0.1) && seg1l <= scale_(0.2)) { + for (size_t seg_start_idx = segments[next_idx].first; seg_start_idx != segments[next_idx].second; seg_start_idx = (seg_start_idx + 1 < new_lines.size()) ? seg_start_idx + 1 : 0) + new_lines[seg_start_idx].color = color0; + new_lines[segments[next_idx].second].color = color0; + } } - } segments = get_segments(new_lines); - for (size_t pair_idx = 1; pair_idx < segments.size(); ++pair_idx) { - int color0 = new_lines[segments[pair_idx - 1].first].color; - int color1 = new_lines[segments[pair_idx - 0].first].color; - double seg1l = segment_length(segments[pair_idx - 0]); + if (segments.size() >= 2) + for (size_t curr_idx = 0; curr_idx < segments.size(); ++curr_idx) { + size_t next_idx = next_idx_modulo(curr_idx, segments.size()); + assert(curr_idx != next_idx); - if (color0 >= 1 && color0 != color1 && seg1l <= scale_(0.2)) { - for (size_t seg_start_idx = segments[pair_idx].first; seg_start_idx != segments[pair_idx].second; seg_start_idx = (seg_start_idx + 1 < new_lines.size()) ? seg_start_idx + 1 : 0) - new_lines[seg_start_idx].color = color0; - new_lines[segments[pair_idx].second].color = color0; + int color0 = new_lines[segments[curr_idx].first].color; + int color1 = new_lines[segments[next_idx].first].color; + double seg1l = segment_length(segments[next_idx]); + + if (color0 >= 1 && color0 != color1 && seg1l <= scale_(0.2)) { + for (size_t seg_start_idx = segments[next_idx].first; seg_start_idx != segments[next_idx].second; seg_start_idx = (seg_start_idx + 1 < new_lines.size()) ? seg_start_idx + 1 : 0) + new_lines[seg_start_idx].color = color0; + new_lines[segments[next_idx].second].color = color0; + } } - } - for (size_t pair_idx = 2; pair_idx < segments.size(); ++pair_idx) { - int color0 = new_lines[segments[pair_idx - 2].first].color; - int color1 = new_lines[segments[pair_idx - 1].first].color; - int color2 = new_lines[segments[pair_idx - 0].first].color; + segments = get_segments(new_lines); + if (segments.size() >= 3) + for (size_t curr_idx = 0; curr_idx < segments.size(); ++curr_idx) { + size_t next_idx = next_idx_modulo(curr_idx, segments.size()); + size_t next_next_idx = next_idx_modulo(next_idx, segments.size()); - if (color0 > 0 && color0 == color2 && color0 != color1 && segment_length(segments[pair_idx - 1]) <= scale_(0.5)) { - for (size_t seg_start_idx = segments[pair_idx].first; seg_start_idx != segments[pair_idx].second; seg_start_idx = (seg_start_idx + 1 < new_lines.size()) ? seg_start_idx + 1 : 0) - new_lines[seg_start_idx].color = color0; - new_lines[segments[pair_idx].second].color = color0; + int color0 = new_lines[segments[curr_idx].first].color; + int color1 = new_lines[segments[next_idx].first].color; + int color2 = new_lines[segments[next_next_idx].first].color; + + if (color0 > 0 && color0 == color2 && color0 != color1 && segment_length(segments[next_idx]) <= scale_(0.5)) { + for (size_t seg_start_idx = segments[next_next_idx].first; seg_start_idx != segments[next_next_idx].second; seg_start_idx = (seg_start_idx + 1 < new_lines.size()) ? seg_start_idx + 1 : 0) + new_lines[seg_start_idx].color = color0; + new_lines[segments[next_next_idx].second].color = color0; + } } - } - return new_lines; + return std::move(new_lines); } -static std::vector> colorize_polygons(const std::vector &contours, std::vector &painted_lines) -{ - const size_t start_idx = 0; - const size_t end_idx = painted_lines.size() - 1; +static std::vector colorize_contour(const EdgeGrid::Contour &contour, const std::vector &painted_contour) { + assert(painted_contour.empty() || std::all_of(painted_contour.begin(), painted_contour.end(), [&painted_contour](const auto &p_line) { return painted_contour.front().contour_idx == p_line.contour_idx; })); - std::vector> new_polygons; - new_polygons.reserve(contours.size()); - - for (size_t idx = 0; idx < painted_lines[start_idx].contour_idx; ++idx) - new_polygons.emplace_back(to_colored_lines(contours[idx], 0)); - - for (size_t first_idx = start_idx; first_idx <= end_idx; ++first_idx) { - size_t second_idx = first_idx; - while (second_idx <= end_idx && painted_lines[first_idx].contour_idx == painted_lines[second_idx].contour_idx) - ++second_idx; - --second_idx; - - assert(painted_lines[first_idx].contour_idx == painted_lines[second_idx].contour_idx); - new_polygons.emplace_back(colorize_polygon(contours[painted_lines[first_idx].contour_idx], first_idx, second_idx, painted_lines)); - - if (second_idx + 1 <= end_idx) - for (size_t idx = painted_lines[second_idx].contour_idx + 1; idx < painted_lines[second_idx + 1].contour_idx; ++idx) - new_polygons.emplace_back(to_colored_lines(contours[idx], 0)); - - first_idx = second_idx; + std::vector colorized_contour; + if (painted_contour.empty()) { + // Appends contour with default color for lines before the first PaintedLine. + colorized_contour.reserve(contour.num_segments()); + for (const Line &line : contour.get_segments()) + colorized_contour.emplace_back(ColoredLine{line, 0}); + return colorized_contour; } - for (size_t idx = painted_lines[end_idx].contour_idx + 1; idx < contours.size(); ++idx) - new_polygons.emplace_back(to_colored_lines(contours[idx], 0)); + colorized_contour.reserve(contour.num_segments() + painted_contour.size()); + for (size_t idx = 0; idx < painted_contour.front().line_idx; ++idx) + colorized_contour.emplace_back(ColoredLine{contour.get_segment(idx), 0}); - return new_polygons; + size_t prev_painted_line_idx = 0; + for (size_t curr_painted_line_idx = 0; curr_painted_line_idx < painted_contour.size(); ++curr_painted_line_idx) { + size_t next_painted_line_idx = curr_painted_line_idx + 1; + if (next_painted_line_idx >= painted_contour.size() || painted_contour[curr_painted_line_idx].line_idx != painted_contour[next_painted_line_idx].line_idx) { + const std::vector &painted_contour_copy = painted_contour; + Slic3r::append(colorized_contour, colorize_line(contour.get_segment(painted_contour[prev_painted_line_idx].line_idx), prev_painted_line_idx, curr_painted_line_idx, painted_contour_copy)); + + // Appends contour with default color for lines between the current and the next PaintedLine. + if (next_painted_line_idx < painted_contour.size()) + for (size_t idx = painted_contour[curr_painted_line_idx].line_idx + 1; idx < painted_contour[next_painted_line_idx].line_idx; ++idx) + colorized_contour.emplace_back(ColoredLine{contour.get_segment(idx), 0}); + + prev_painted_line_idx = next_painted_line_idx; + } + } + + // Appends contour with default color for lines after the last PaintedLine. + for (size_t idx = painted_contour.back().line_idx + 1; idx < contour.num_segments(); ++idx) + colorized_contour.emplace_back(ColoredLine{contour.get_segment(idx), 0}); + + assert(!colorized_contour.empty()); + return filter_colorized_polygon(std::move(colorized_contour)); +} + +static std::vector> colorize_contours(const std::vector &contours, const std::vector> &painted_contours) +{ + assert(contours.size() == painted_contours.size()); + std::vector> colorized_contours(contours.size()); + for (const std::vector &painted_contour : painted_contours) { + size_t contour_idx = &painted_contour - &painted_contours.front(); + colorized_contours[contour_idx] = colorize_contour(contours[contour_idx], painted_contours[contour_idx]); + } + return colorized_contours; } using boost::polygon::voronoi_diagram; @@ -1075,7 +1113,7 @@ static inline Polygon to_polygon(const std::vector &lines) // It iterates through all nodes on the border between two different colors, and from this point, // start selection always left most edges for every node to construct CCW polygons. // Assumes that graph is planar (without self-intersection edges) -static std::vector> extract_colored_segments(const MMU_Graph &graph) +static std::vector extract_colored_segments(const MMU_Graph &graph, const size_t num_extruders) { std::vector used_arcs(graph.arcs.size(), false); // When there is no next arc, then is returned original_arc or edge with is marked as used @@ -1115,7 +1153,7 @@ static std::vector> extract_colored_segments(const MM return std::all_of(node.arc_idxs.cbegin(), node.arc_idxs.cend(), [&used_arcs](const size_t &arc_idx) -> bool { return used_arcs[arc_idx]; }); }; - std::vector> polygons_segments; + std::vector expolygons_segments(num_extruders + 1); for (size_t node_idx = 0; node_idx < graph.all_border_points; ++node_idx) { const MMU_Graph::Node &node = graph.nodes[node_idx]; @@ -1145,12 +1183,11 @@ static std::vector> extract_colored_segments(const MM p_arc = &next; } while (graph.nodes[p_arc->to_idx].point != start_p || !all_arc_used(graph.nodes[p_arc->to_idx])); - Polygon poly = to_polygon(face_lines); - if (poly.is_counter_clockwise() && poly.is_valid()) - polygons_segments.emplace_back(poly, arc.color); + if (Polygon poly = to_polygon(face_lines); poly.is_counter_clockwise() && poly.is_valid()) + expolygons_segments[arc.color].emplace_back(std::move(poly)); } } - return polygons_segments; + return expolygons_segments; } // Used in remove_multiple_edges_in_vertices() @@ -1231,27 +1268,34 @@ static void remove_multiple_edges_in_vertices(MMU_Graph &graph, const std::vecto } } -static void cut_segmented_layers(const std::vector &input_expolygons, - std::vector>> &segmented_regions, - const float cut_width, - const std::function &throw_on_cancel_callback) +static void cut_segmented_layers(const std::vector &input_expolygons, + std::vector> &segmented_regions, + const float cut_width, + const std::function &throw_on_cancel_callback) { BOOST_LOG_TRIVIAL(debug) << "MMU segmentation - cutting segmented layers in parallel - begin"; tbb::parallel_for(tbb::blocked_range(0, segmented_regions.size()),[&segmented_regions, &input_expolygons, &cut_width, &throw_on_cancel_callback](const tbb::blocked_range& range) { for (size_t layer_idx = range.begin(); layer_idx < range.end(); ++layer_idx) { throw_on_cancel_callback(); - std::vector> segmented_regions_cuts; - for (const std::pair &colored_expoly : segmented_regions[layer_idx]) { - ExPolygons cut_colored_expoly = diff_ex(colored_expoly.first, offset_ex(input_expolygons[layer_idx], cut_width)); - for (ExPolygon &expoly : cut_colored_expoly) - segmented_regions_cuts.emplace_back(std::move(expoly), colored_expoly.second); - } + const size_t num_extruders_plus_one = segmented_regions[layer_idx].size(); + std::vector segmented_regions_cuts(num_extruders_plus_one); // Indexed by extruder_id + for (size_t extruder_idx = 0; extruder_idx < num_extruders_plus_one; ++extruder_idx) + if (const ExPolygons &ex_polygons = segmented_regions[layer_idx][extruder_idx]; !ex_polygons.empty()) + segmented_regions_cuts[extruder_idx] = diff_ex(ex_polygons, offset_ex(input_expolygons[layer_idx], cut_width)); segmented_regions[layer_idx] = std::move(segmented_regions_cuts); } }); // end of parallel_for BOOST_LOG_TRIVIAL(debug) << "MMU segmentation - cutting segmented layers in parallel - end"; } +static bool is_volume_sinking(const indexed_triangle_set &its, const Transform3d &trafo) +{ + const Transform3f trafo_f = trafo.cast(); + for (const stl_vertex &vertex : its.vertices) + if ((trafo_f * vertex).z() < SINKING_Z_THRESHOLD) return true; + return false; +} + //#define MMU_SEGMENTATION_DEBUG_TOP_BOTTOM // Returns MMU segmentation of top and bottom layers based on painting in MMU segmentation gizmo @@ -1277,7 +1321,7 @@ static inline std::vector> mmu_segmentation_top_and_bott // Project upwards pointing painted triangles over top surfaces, // project downards pointing painted triangles over bottom surfaces. std::vector> top_raw(num_extruders), bottom_raw(num_extruders); - std::vector zs = zs_from_layers(print_object.layers()); + std::vector zs = zs_from_layers(layers); Transform3d object_trafo = print_object.trafo_centered(); #ifdef MMU_SEGMENTATION_DEBUG_TOP_BOTTOM @@ -1298,7 +1342,21 @@ static inline std::vector> mmu_segmentation_top_and_bott #endif // MMU_SEGMENTATION_DEBUG_TOP_BOTTOM if (! painted.indices.empty()) { std::vector top, bottom; - slice_mesh_slabs(painted, zs, volume_trafo, max_top_layers > 0 ? &top : nullptr, max_bottom_layers > 0 ? &bottom : nullptr, throw_on_cancel_callback); + if (!zs.empty() && is_volume_sinking(painted, volume_trafo)) { + std::vector zs_sinking = {0.f}; + Slic3r::append(zs_sinking, zs); + slice_mesh_slabs(painted, zs_sinking, volume_trafo, max_top_layers > 0 ? &top : nullptr, max_bottom_layers > 0 ? &bottom : nullptr, throw_on_cancel_callback); + + MeshSlicingParams slicing_params; + slicing_params.trafo = volume_trafo; + Polygons bottom_slice = slice_mesh(painted, zs[0], slicing_params); + + top.erase(top.begin()); + bottom.erase(bottom.begin()); + + bottom[0] = union_(bottom[0], bottom_slice); + } else + slice_mesh_slabs(painted, zs, volume_trafo, max_top_layers > 0 ? &top : nullptr, max_bottom_layers > 0 ? &bottom : nullptr, throw_on_cancel_callback); auto merge = [](std::vector &&src, std::vector &dst) { auto it_src = find_if(src.begin(), src.end(), [](const Polygons &p){ return ! p.empty(); }); if (it_src != src.end()) { @@ -1472,31 +1530,42 @@ static inline std::vector> mmu_segmentation_top_and_bott return triangles_by_color_merged; } -static std::vector>> merge_segmented_layers( - const std::vector>> &segmented_regions, - std::vector> &&top_and_bottom_layers, - const std::function &throw_on_cancel_callback) +static std::vector> merge_segmented_layers( + const std::vector> &segmented_regions, + std::vector> &&top_and_bottom_layers, + const size_t num_extruders, + const std::function &throw_on_cancel_callback) { - std::vector>> segmented_regions_merged(segmented_regions.size()); + const size_t num_layers = segmented_regions.size(); + std::vector> segmented_regions_merged(num_layers); + segmented_regions_merged.assign(num_layers, std::vector(num_extruders)); + assert(num_extruders + 1 == top_and_bottom_layers.size()); BOOST_LOG_TRIVIAL(debug) << "MMU segmentation - merging segmented layers in parallel - begin"; - tbb::parallel_for(tbb::blocked_range(0, segmented_regions.size()), [&segmented_regions, &top_and_bottom_layers, &segmented_regions_merged, &throw_on_cancel_callback](const tbb::blocked_range &range) { + tbb::parallel_for(tbb::blocked_range(0, num_layers), [&segmented_regions, &top_and_bottom_layers, &segmented_regions_merged, &num_extruders, &throw_on_cancel_callback](const tbb::blocked_range &range) { for (size_t layer_idx = range.begin(); layer_idx < range.end(); ++layer_idx) { - for (const std::pair &colored_expoly : segmented_regions[layer_idx]) { + assert(segmented_regions[layer_idx].size() == num_extruders + 1); + // Zero is skipped because it is the default color of the volume + for (size_t extruder_id = 1; extruder_id < num_extruders + 1; ++extruder_id) { throw_on_cancel_callback(); - // Zero is the default color of the volume. - if(colored_expoly.second == 0) - continue; - ExPolygons cut_colored_expoly = {colored_expoly.first}; - for (const std::vector &top_and_bottom_layer : top_and_bottom_layers) - cut_colored_expoly = diff_ex(cut_colored_expoly, top_and_bottom_layer[layer_idx]); - for (ExPolygon &ex_poly : cut_colored_expoly) - segmented_regions_merged[layer_idx].emplace_back(std::move(ex_poly), colored_expoly.second - 1); - } + if (!segmented_regions[layer_idx][extruder_id].empty()) { + ExPolygons segmented_regions_trimmed = segmented_regions[layer_idx][extruder_id]; + for (const std::vector &top_and_bottom_by_extruder : top_and_bottom_layers) + if (!top_and_bottom_by_extruder[layer_idx].empty() && !segmented_regions_trimmed.empty()) + segmented_regions_trimmed = diff_ex(segmented_regions_trimmed, top_and_bottom_by_extruder[layer_idx]); - for (size_t color_idx = 1; color_idx < top_and_bottom_layers.size(); ++color_idx) - for (ExPolygon &expoly : top_and_bottom_layers[color_idx][layer_idx]) - segmented_regions_merged[layer_idx].emplace_back(std::move(expoly), color_idx - 1); + segmented_regions_merged[layer_idx][extruder_id - 1] = std::move(segmented_regions_trimmed); + } + + if (!top_and_bottom_layers[extruder_id][layer_idx].empty()) { + bool was_top_and_bottom_empty = segmented_regions_merged[layer_idx][extruder_id - 1].empty(); + append(segmented_regions_merged[layer_idx][extruder_id - 1], top_and_bottom_layers[extruder_id][layer_idx]); + + // Remove dimples (#7235) appearing after merging side segmentation of the model with tops and bottoms painted layers. + if (!was_top_and_bottom_empty) + segmented_regions_merged[layer_idx][extruder_id - 1] = offset2_ex(union_ex(segmented_regions_merged[layer_idx][extruder_id - 1]), float(SCALED_EPSILON), -float(SCALED_EPSILON)); + } + } } }); // end of parallel_for BOOST_LOG_TRIVIAL(debug) << "MMU segmentation - merging segmented layers in parallel - end"; @@ -1505,7 +1574,7 @@ static std::vector>> merge_segmented_la } #ifdef MMU_SEGMENTATION_DEBUG_REGIONS -static void export_regions_to_svg(const std::string &path, const std::vector> ®ions, const ExPolygons &lslices) +static void export_regions_to_svg(const std::string &path, const std::vector ®ions, const ExPolygons &lslices) { const std::vector colors = {"blue", "cyan", "red", "orange", "magenta", "pink", "purple", "yellow"}; coordf_t stroke_width = scale_(0.05); @@ -1514,12 +1583,12 @@ static void export_regions_to_svg(const std::string &path, const std::vector ®ion : regions) { - int region_color = int(region.second); - if (region_color >= 0 && region_color < int(colors.size())) - svg.draw(region.first, colors[region_color]); + for (const ExPolygons &by_extruder : regions) { + size_t extrude_idx = &by_extruder - ®ions.front(); + if (extrude_idx >= 0 && extrude_idx < int(colors.size())) + svg.draw(by_extruder, colors[extrude_idx], stroke_width); else - svg.draw(region.first, "black"); + svg.draw(by_extruder, "black", stroke_width); } } #endif // MMU_SEGMENTATION_DEBUG_REGIONS @@ -1560,6 +1629,39 @@ void export_processed_input_expolygons_to_svg(const std::string &path, const Lay } #endif // MMU_SEGMENTATION_DEBUG_INPUT +#ifdef MMU_SEGMENTATION_DEBUG_PAINTED_LINES +static void export_painted_lines_to_svg(const std::string &path, const std::vector> &all_painted_lines, const ExPolygons &lslices) +{ + const std::vector colors = {"blue", "cyan", "red", "orange", "magenta", "pink", "purple", "yellow"}; + coordf_t stroke_width = scale_(0.05); + BoundingBox bbox = get_extents(lslices); + bbox.offset(scale_(1.)); + ::Slic3r::SVG svg(path.c_str(), bbox); + + for (const Line &line : to_lines(lslices)) + svg.draw(line, "green", stroke_width); + + for (const std::vector &painted_lines : all_painted_lines) + for (const PaintedLine &painted_line : painted_lines) + svg.draw(painted_line.projected_line, painted_line.color < int(colors.size()) ? colors[painted_line.color] : "black", stroke_width); +} +#endif // MMU_SEGMENTATION_DEBUG_PAINTED_LINES + +#ifdef MMU_SEGMENTATION_DEBUG_COLORIZED_POLYGONS +static void export_colorized_polygons_to_svg(const std::string &path, const std::vector> &colorized_polygons, const ExPolygons &lslices) +{ + const std::vector colors = {"blue", "cyan", "red", "orange", "magenta", "pink", "purple", "green", "yellow"}; + coordf_t stroke_width = scale_(0.05); + BoundingBox bbox = get_extents(lslices); + bbox.offset(scale_(1.)); + ::Slic3r::SVG svg(path.c_str(), bbox); + + for (const std::vector &colorized_polygon : colorized_polygons) + for (const ColoredLine &colorized_line : colorized_polygon) + svg.draw(colorized_line.line, colorized_line.color < int(colors.size())? colors[colorized_line.color] : "black", stroke_width); +} +#endif // MMU_SEGMENTATION_DEBUG_COLORIZED_POLYGONS + // Check if all ColoredLine representing a single layer uses the same color. static bool has_layer_only_one_color(const std::vector> &colored_polygons) { @@ -1574,20 +1676,23 @@ static bool has_layer_only_one_color(const std::vector> return true; } -std::vector>> multi_material_segmentation_by_painting(const PrintObject &print_object, const std::function &throw_on_cancel_callback) +std::vector> multi_material_segmentation_by_painting(const PrintObject &print_object, const std::function &throw_on_cancel_callback) { - std::vector>> segmented_regions(print_object.layers().size()); - std::vector> painted_lines(print_object.layers().size()); - std::array painted_lines_mutex; - std::vector edge_grids(print_object.layers().size()); - const ConstLayerPtrsAdaptor layers = print_object.layers(); - std::vector input_expolygons(layers.size()); + const size_t num_extruders = print_object.print()->config().nozzle_diameter.size(); + const size_t num_layers = print_object.layers().size(); + std::vector> segmented_regions(num_layers); + segmented_regions.assign(num_layers, std::vector(num_extruders + 1)); + std::vector> painted_lines(num_layers); + std::array painted_lines_mutex; + std::vector edge_grids(num_layers); + const ConstLayerPtrsAdaptor layers = print_object.layers(); + std::vector input_expolygons(num_layers); throw_on_cancel_callback(); // Merge all regions and remove small holes BOOST_LOG_TRIVIAL(debug) << "MMU segmentation - slices preparation in parallel - begin"; - tbb::parallel_for(tbb::blocked_range(0, layers.size()), [&layers, &input_expolygons, &throw_on_cancel_callback](const tbb::blocked_range &range) { + tbb::parallel_for(tbb::blocked_range(0, num_layers), [&layers, &input_expolygons, &throw_on_cancel_callback](const tbb::blocked_range &range) { for (size_t layer_idx = range.begin(); layer_idx < range.end(); ++layer_idx) { throw_on_cancel_callback(); ExPolygons ex_polygons; @@ -1618,7 +1723,7 @@ std::vector>> multi_material_segmentati }); // end of parallel_for BOOST_LOG_TRIVIAL(debug) << "MMU segmentation - slices preparation in parallel - end"; - for (size_t layer_idx = 0; layer_idx < layers.size(); ++layer_idx) { + for (size_t layer_idx = 0; layer_idx < num_layers; ++layer_idx) { throw_on_cancel_callback(); BoundingBox bbox(get_extents(layers[layer_idx]->regions())); bbox.merge(get_extents(input_expolygons[layer_idx])); @@ -1630,8 +1735,7 @@ std::vector>> multi_material_segmentati BOOST_LOG_TRIVIAL(debug) << "MMU segmentation - projection of painted triangles - begin"; for (const ModelVolume *mv : print_object.model_object()->volumes) { - const size_t num_extruders = print_object.print()->config().nozzle_diameter.size() + 1; - tbb::parallel_for(tbb::blocked_range(1, num_extruders), [&mv, &print_object, &edge_grids, &painted_lines, &painted_lines_mutex, &input_expolygons, &throw_on_cancel_callback](const tbb::blocked_range &range) { + tbb::parallel_for(tbb::blocked_range(1, num_extruders + 1), [&mv, &print_object, &layers, &edge_grids, &painted_lines, &painted_lines_mutex, &input_expolygons, &throw_on_cancel_callback](const tbb::blocked_range &range) { for (size_t extruder_idx = range.begin(); extruder_idx < range.end(); ++extruder_idx) { throw_on_cancel_callback(); const indexed_triangle_set custom_facets = mv->mmu_segmentation_facets.get_facets(*mv, EnforcerBlockerType(extruder_idx)); @@ -1639,7 +1743,7 @@ std::vector>> multi_material_segmentati continue; const Transform3f tr = print_object.trafo().cast() * mv->get_matrix().cast(); - tbb::parallel_for(tbb::blocked_range(0, custom_facets.indices.size()), [&tr, &custom_facets, &print_object, &edge_grids, &input_expolygons, &painted_lines, &painted_lines_mutex, &extruder_idx](const tbb::blocked_range &range) { + tbb::parallel_for(tbb::blocked_range(0, custom_facets.indices.size()), [&tr, &custom_facets, &print_object, &layers, &edge_grids, &input_expolygons, &painted_lines, &painted_lines_mutex, &extruder_idx](const tbb::blocked_range &range) { for (size_t facet_idx = range.begin(); facet_idx < range.end(); ++facet_idx) { float min_z = std::numeric_limits::max(); float max_z = std::numeric_limits::lowest(); @@ -1655,15 +1759,15 @@ std::vector>> multi_material_segmentati std::sort(facet.begin(), facet.end(), [](const Vec3f &p1, const Vec3f &p2) { return p1.z() < p2.z(); }); // Find lowest slice not below the triangle. - auto first_layer = std::upper_bound(print_object.layers().begin(), print_object.layers().end(), float(min_z - EPSILON), + auto first_layer = std::upper_bound(layers.begin(), layers.end(), float(min_z - EPSILON), [](float z, const Layer *l1) { return z < l1->slice_z; }); - auto last_layer = std::upper_bound(print_object.layers().begin(), print_object.layers().end(), float(max_z + EPSILON), + auto last_layer = std::upper_bound(layers.begin(), layers.end(), float(max_z + EPSILON), [](float z, const Layer *l1) { return z < l1->slice_z; }); --last_layer; for (auto layer_it = first_layer; layer_it != (last_layer + 1); ++layer_it) { const Layer *layer = *layer_it; - size_t layer_idx = layer_it - print_object.layers().begin(); + size_t layer_idx = layer_it - layers.begin(); if (input_expolygons[layer_idx].empty() || facet[0].z() > layer->slice_z || layer->slice_z > facet[2].z()) continue; @@ -1706,31 +1810,40 @@ std::vector>> multi_material_segmentati << std::count_if(painted_lines.begin(), painted_lines.end(), [](const std::vector &pl) { return !pl.empty(); }); BOOST_LOG_TRIVIAL(debug) << "MMU segmentation - layers segmentation in parallel - begin"; - tbb::parallel_for(tbb::blocked_range(0, print_object.layers().size()), [&edge_grids, &input_expolygons, &painted_lines, &segmented_regions, &throw_on_cancel_callback](const tbb::blocked_range &range) { + tbb::parallel_for(tbb::blocked_range(0, num_layers), [&edge_grids, &input_expolygons, &painted_lines, &segmented_regions, &num_extruders, &throw_on_cancel_callback](const tbb::blocked_range &range) { for (size_t layer_idx = range.begin(); layer_idx < range.end(); ++layer_idx) { throw_on_cancel_callback(); - auto comp = [&edge_grids, layer_idx](const PaintedLine &first, const PaintedLine &second) { - Point first_start_p = edge_grids[layer_idx].contours()[first.contour_idx].segment_start(first.line_idx); - return first.contour_idx < second.contour_idx || - (first.contour_idx == second.contour_idx && - (first.line_idx < second.line_idx || - (first.line_idx == second.line_idx && - ((first.projected_line.a - first_start_p).cast().squaredNorm() < (second.projected_line.a - first_start_p).cast().squaredNorm() || - ((first.projected_line.a - first_start_p).cast().squaredNorm() == (second.projected_line.a - first_start_p).cast().squaredNorm() && - (first.projected_line.b - first.projected_line.a).cast().squaredNorm() < (second.projected_line.b - second.projected_line.a).cast().squaredNorm()))))); - }; + if (!painted_lines[layer_idx].empty()) { +#ifdef MMU_SEGMENTATION_DEBUG_PAINTED_LINES + { + static int iRun = 0; + export_painted_lines_to_svg(debug_out_path("mm-painted-lines-%d-%d.svg", layer_idx, iRun++), {painted_lines[layer_idx]}, input_expolygons[layer_idx]); + } +#endif // MMU_SEGMENTATION_DEBUG_PAINTED_LINES - std::sort(painted_lines[layer_idx].begin(), painted_lines[layer_idx].end(), comp); - std::vector &painted_lines_single = painted_lines[layer_idx]; + std::vector> post_processed_painted_lines = post_process_painted_lines(edge_grids[layer_idx].contours(), std::move(painted_lines[layer_idx])); + +#ifdef MMU_SEGMENTATION_DEBUG_PAINTED_LINES + { + static int iRun = 0; + export_painted_lines_to_svg(debug_out_path("mm-painted-lines-post-processed-%d-%d.svg", layer_idx, iRun++), post_processed_painted_lines, input_expolygons[layer_idx]); + } +#endif // MMU_SEGMENTATION_DEBUG_PAINTED_LINES + + std::vector> color_poly = colorize_contours(edge_grids[layer_idx].contours(), post_processed_painted_lines); + +#ifdef MMU_SEGMENTATION_DEBUG_COLORIZED_POLYGONS + { + static int iRun = 0; + export_colorized_polygons_to_svg(debug_out_path("mm-colorized_polygons-%d-%d.svg", layer_idx, iRun++), color_poly, input_expolygons[layer_idx]); + } +#endif // MMU_SEGMENTATION_DEBUG_COLORIZED_POLYGONS - if (!painted_lines_single.empty()) { - std::vector> color_poly = colorize_polygons(edge_grids[layer_idx].contours(), painted_lines_single); assert(!color_poly.empty()); assert(!color_poly.front().empty()); if (has_layer_only_one_color(color_poly)) { // If the whole layer is painted using the same color, it is not needed to construct a Voronoi diagram for the segmentation of this layer. - for (const ExPolygon &ex_polygon : input_expolygons[layer_idx]) - segmented_regions[layer_idx].emplace_back(ex_polygon, size_t(color_poly.front().front().color)); + segmented_regions[layer_idx][size_t(color_poly.front().front().color)] = input_expolygons[layer_idx]; } else { MMU_Graph graph = build_graph(layer_idx, color_poly); remove_multiple_edges_in_vertices(graph, color_poly); @@ -1743,9 +1856,7 @@ std::vector>> multi_material_segmentati } #endif // MMU_SEGMENTATION_DEBUG_GRAPH - std::vector> segmentation = extract_colored_segments(graph); - for (std::pair ®ion : segmentation) - segmented_regions[layer_idx].emplace_back(std::move(region)); + segmented_regions[layer_idx] = extract_colored_segments(graph, num_extruders); } #ifdef MMU_SEGMENTATION_DEBUG_REGIONS @@ -1765,11 +1876,11 @@ std::vector>> multi_material_segmentati throw_on_cancel_callback(); } -// return segmented_regions; - std::vector> top_and_bottom_layers = mmu_segmentation_top_and_bottom_layers(print_object, input_expolygons, throw_on_cancel_callback); + // The first index is extruder number (includes default extruder), and the second one is layer number + std::vector> top_and_bottom_layers = mmu_segmentation_top_and_bottom_layers(print_object, input_expolygons, throw_on_cancel_callback); throw_on_cancel_callback(); - std::vector>> segmented_regions_merged = merge_segmented_layers(segmented_regions, std::move(top_and_bottom_layers), throw_on_cancel_callback); + std::vector> segmented_regions_merged = merge_segmented_layers(segmented_regions, std::move(top_and_bottom_layers), num_extruders, throw_on_cancel_callback); throw_on_cancel_callback(); #ifdef MMU_SEGMENTATION_DEBUG_REGIONS diff --git a/src/libslic3r/MultiMaterialSegmentation.hpp b/src/libslic3r/MultiMaterialSegmentation.hpp index 07767111a..4efdc6951 100644 --- a/src/libslic3r/MultiMaterialSegmentation.hpp +++ b/src/libslic3r/MultiMaterialSegmentation.hpp @@ -11,7 +11,7 @@ class PrintObject; class ExPolygon; // Returns MMU segmentation based on painting in MMU segmentation gizmo -std::vector>> multi_material_segmentation_by_painting(const PrintObject &print_object, const std::function &throw_on_cancel_callback); +std::vector> multi_material_segmentation_by_painting(const PrintObject &print_object, const std::function &throw_on_cancel_callback); } // namespace Slic3r diff --git a/src/libslic3r/PlaceholderParser.cpp b/src/libslic3r/PlaceholderParser.cpp index 6f2b7f3ea..f763c8bb6 100644 --- a/src/libslic3r/PlaceholderParser.cpp +++ b/src/libslic3r/PlaceholderParser.cpp @@ -238,6 +238,7 @@ namespace client int i() const { return data.i; } void set_i(int v) { this->reset(); this->data.i = v; this->type = TYPE_INT; } int as_i() const { return (this->type == TYPE_INT) ? this->i() : int(this->d()); } + int as_i_rounded() const { return (this->type == TYPE_INT) ? this->i() : int(std::round(this->d())); } double& d() { return data.d; } double d() const { return data.d; } void set_d(double v) { this->reset(); this->data.d = v; this->type = TYPE_DOUBLE; } @@ -319,7 +320,7 @@ namespace client expr unary_integer(const Iterator start_pos) const { switch (this->type) { - case TYPE_INT : + case TYPE_INT: return expr(this->i(), start_pos, this->it_range.end()); case TYPE_DOUBLE: return expr(static_cast(this->d()), start_pos, this->it_range.end()); @@ -331,10 +332,25 @@ namespace client return expr(); } + expr round(const Iterator start_pos) const + { + switch (this->type) { + case TYPE_INT: + return expr(this->i(), start_pos, this->it_range.end()); + case TYPE_DOUBLE: + return expr(static_cast(std::round(this->d())), start_pos, this->it_range.end()); + default: + this->throw_exception("Cannot round a non-numeric value."); + } + assert(false); + // Suppress compiler warnings. + return expr(); + } + expr unary_not(const Iterator start_pos) const { switch (this->type) { - case TYPE_BOOL : + case TYPE_BOOL: return expr(! this->b(), start_pos, this->it_range.end()); default: this->throw_exception("Cannot apply a not operator."); @@ -549,6 +565,30 @@ namespace client } } + // Store the result into param1. + // param3 is optional + template + static void digits(expr ¶m1, expr ¶m2, expr ¶m3) + { + throw_if_not_numeric(param1); + if (param2.type != TYPE_INT) + param2.throw_exception("digits: second parameter must be integer"); + bool has_decimals = param3.type != TYPE_EMPTY; + if (has_decimals && param3.type != TYPE_INT) + param3.throw_exception("digits: third parameter must be integer"); + + char buf[256]; + int ndigits = std::clamp(param2.as_i(), 0, 64); + if (has_decimals) { + // Format as double. + int decimals = std::clamp(param3.as_i(), 0, 64); + sprintf(buf, leading_zeros ? "%0*.*lf" : "%*.*lf", ndigits, decimals, param1.as_d()); + } else + // Format as int. + sprintf(buf, leading_zeros ? "%0*d" : "%*d", ndigits, param1.as_i_rounded()); + param1.set_s(buf); + } + static void regex_op(expr &lhs, boost::iterator_range &rhs, char op) { const std::string *subject = nullptr; @@ -930,6 +970,7 @@ namespace client { "additive_expression", "Expecting an expression." }, { "multiplicative_expression", "Expecting an expression." }, { "unary_expression", "Expecting an expression." }, + { "optional_parameter", "Expecting a closing brace or an optional parameter." }, { "scalar_variable_reference", "Expecting a scalar variable reference."}, { "variable_reference", "Expecting a variable reference."}, { "regular_expression", "Expecting a regular expression."} @@ -1194,6 +1235,10 @@ namespace client { out = value.unary_not(out.it_range.begin()); } static void to_int(expr &value, expr &out) { out = value.unary_integer(out.it_range.begin()); } + static void round(expr &value, expr &out) + { out = value.round(out.it_range.begin()); } + // For indicating "no optional parameter". + static void noexpr(expr &out) { out.reset(); } }; unary_expression = iter_pos[px::bind(&FactorActions::set_start_pos, _1, _val)] >> ( scalar_variable_reference(_r1) [ _val = _1 ] @@ -1207,7 +1252,12 @@ namespace client [ px::bind(&expr::max, _val, _2) ] | (kw["random"] > '(' > conditional_expression(_r1) [_val = _1] > ',' > conditional_expression(_r1) > ')') [ px::bind(&MyContext::random, _r1, _val, _2) ] - | (kw["int"] > '(' > unary_expression(_r1) > ')') [ px::bind(&FactorActions::to_int, _1, _val) ] + | (kw["digits"] > '(' > conditional_expression(_r1) [_val = _1] > ',' > conditional_expression(_r1) > optional_parameter(_r1)) + [ px::bind(&expr::template digits, _val, _2, _3) ] + | (kw["zdigits"] > '(' > conditional_expression(_r1) [_val = _1] > ',' > conditional_expression(_r1) > optional_parameter(_r1)) + [ px::bind(&expr::template digits, _val, _2, _3) ] + | (kw["int"] > '(' > conditional_expression(_r1) > ')') [ px::bind(&FactorActions::to_int, _1, _val) ] + | (kw["round"] > '(' > conditional_expression(_r1) > ')') [ px::bind(&FactorActions::round, _1, _val) ] | (strict_double > iter_pos) [ px::bind(&FactorActions::double_, _1, _2, _val) ] | (int_ > iter_pos) [ px::bind(&FactorActions::int_, _1, _2, _val) ] | (kw[bool_] > iter_pos) [ px::bind(&FactorActions::bool_, _1, _2, _val) ] @@ -1216,6 +1266,12 @@ namespace client ); unary_expression.name("unary_expression"); + optional_parameter = iter_pos[px::bind(&FactorActions::set_start_pos, _1, _val)] >> ( + lit(')') [ px::bind(&FactorActions::noexpr, _val) ] + | (lit(',') > conditional_expression(_r1) > ')') [ _val = _1 ] + ); + optional_parameter.name("optional_parameter"); + scalar_variable_reference = variable_reference(_r1)[_a=_1] >> ( @@ -1234,6 +1290,8 @@ namespace client keywords.add ("and") + ("digits") + ("zdigits") ("if") ("int") //("inf") @@ -1244,6 +1302,7 @@ namespace client ("min") ("max") ("random") + ("round") ("not") ("or") ("true"); @@ -1266,6 +1325,7 @@ namespace client debug(additive_expression); debug(multiplicative_expression); debug(unary_expression); + debug(optional_parameter); debug(scalar_variable_reference); debug(variable_reference); debug(regular_expression); @@ -1303,6 +1363,8 @@ namespace client RuleExpression multiplicative_expression; // Number literals, functions, braced expressions, variable references, variable indexing references. RuleExpression unary_expression; + // Accepting an optional parameter. + RuleExpression optional_parameter; // Rule to capture a regular expression enclosed in //. qi::rule(), spirit_encoding::space_type> regular_expression; // Evaluate boolean expression into bool. diff --git a/src/libslic3r/Preset.cpp b/src/libslic3r/Preset.cpp index 09cd38468..eff6c8a8d 100644 --- a/src/libslic3r/Preset.cpp +++ b/src/libslic3r/Preset.cpp @@ -534,6 +534,7 @@ static std::vector s_Preset_sla_print_options { }; static std::vector s_Preset_sla_material_options { + "material_colour", "material_type", "initial_layer_height", "bottle_cost", @@ -1378,6 +1379,14 @@ const Preset* PrinterPresetCollection::find_system_preset_by_model_and_variant(c return it != cend() ? &*it : nullptr; } +bool PrinterPresetCollection::only_default_printers() const +{ + for (const auto& printer : get_presets()) { + if (!boost::starts_with(printer.name,"- default")) + return false; + } + return true; +} // ------------------------- // *** PhysicalPrinter *** // ------------------------- diff --git a/src/libslic3r/Preset.hpp b/src/libslic3r/Preset.hpp index 849dd7b80..6764b197d 100644 --- a/src/libslic3r/Preset.hpp +++ b/src/libslic3r/Preset.hpp @@ -597,6 +597,7 @@ public: const Preset* find_system_preset_by_model_and_variant(const std::string &model_id, const std::string &variant) const; + bool only_default_printers() const; private: PrinterPresetCollection() = default; PrinterPresetCollection(const PrinterPresetCollection &other) = default; diff --git a/src/libslic3r/PresetBundle.cpp b/src/libslic3r/PresetBundle.cpp index feaf0cac7..b6e7fbd5e 100644 --- a/src/libslic3r/PresetBundle.cpp +++ b/src/libslic3r/PresetBundle.cpp @@ -188,6 +188,61 @@ void PresetBundle::setup_directories() } } +// recursively copy all files and dirs in from_dir to to_dir +static void copy_dir(const boost::filesystem::path& from_dir, const boost::filesystem::path& to_dir) +{ + if(!boost::filesystem::is_directory(from_dir)) + return; + // i assume to_dir.parent surely exists + if (!boost::filesystem::is_directory(to_dir)) + boost::filesystem::create_directory(to_dir); + for (auto& dir_entry : boost::filesystem::directory_iterator(from_dir)) { + if (!boost::filesystem::is_directory(dir_entry.path())) { + std::string em; + CopyFileResult cfr = copy_file(dir_entry.path().string(), (to_dir / dir_entry.path().filename()).string(), em, false); + if (cfr != SUCCESS) { + BOOST_LOG_TRIVIAL(error) << "Error when copying files from " << from_dir << " to " << to_dir << ": " << em; + } + } else { + copy_dir(dir_entry.path(), to_dir / dir_entry.path().filename()); + } + } +} + +void PresetBundle::copy_files(const std::string& from) +{ + boost::filesystem::path data_dir = boost::filesystem::path(Slic3r::data_dir()); + // list of searched paths based on current directory system in setup_directories() + // do not copy cache and snapshots + boost::filesystem::path from_data_dir = boost::filesystem::path(from); + std::initializer_list from_dirs= { + from_data_dir / "vendor", + from_data_dir / "shapes", +#ifdef SLIC3R_PROFILE_USE_PRESETS_SUBDIR + // Store the print/filament/printer presets into a "presets" directory. + data_dir / "presets", + data_dir / "presets" / "print", + data_dir / "presets" / "filament", + data_dir / "presets" / "sla_print", + data_dir / "presets" / "sla_material", + data_dir / "presets" / "printer", + data_dir / "presets" / "physical_printer" +#else + // Store the print/filament/printer presets at the same location as the upstream Slic3r. + from_data_dir / "print", + from_data_dir / "filament", + from_data_dir / "sla_print", + from_data_dir / "sla_material", + from_data_dir / "printer", + from_data_dir / "physical_printer" +#endif + }; + // copy recursively all files + for (const boost::filesystem::path& from_dir : from_dirs) { + copy_dir(from_dir, data_dir / from_dir.filename()); + } +} + PresetsConfigSubstitutions PresetBundle::load_presets(AppConfig &config, ForwardCompatibilitySubstitutionRule substitution_rule, const PresetPreferences& preferred_selection/* = PresetPreferences()*/) { @@ -501,13 +556,15 @@ void PresetBundle::load_selections(AppConfig &config, const PresetPreferences& p auto printer_technology = printers.get_selected_preset().printer_technology(); if (printer_technology == ptFFF && ! preferred_selection.filament.empty()) { std::string preferred_preset_name = get_preset_name_by_alias(Preset::Type::TYPE_FILAMENT, preferred_selection.filament); - if (auto it = filaments.find_preset_internal(preferred_preset_name); it != filaments.end() && it->is_visible) { + if (auto it = filaments.find_preset_internal(preferred_preset_name); + it != filaments.end() && it->is_visible && it->is_compatible) { filaments.select_preset_by_name_strict(preferred_preset_name); this->filament_presets.front() = filaments.get_selected_preset_name(); } } else if (printer_technology == ptSLA && ! preferred_selection.sla_material.empty()) { std::string preferred_preset_name = get_preset_name_by_alias(Preset::Type::TYPE_SLA_MATERIAL, preferred_selection.sla_material); - if (auto it = sla_materials.find_preset_internal(preferred_preset_name); it != sla_materials.end() && it->is_visible) + if (auto it = sla_materials.find_preset_internal(preferred_preset_name); + it != sla_materials.end() && it->is_visible && it->is_compatible) sla_materials.select_preset_by_name_strict(preferred_preset_name); } } diff --git a/src/libslic3r/PresetBundle.hpp b/src/libslic3r/PresetBundle.hpp index e5e49fb47..a975e37fe 100644 --- a/src/libslic3r/PresetBundle.hpp +++ b/src/libslic3r/PresetBundle.hpp @@ -24,6 +24,7 @@ public: void reset(bool delete_files); void setup_directories(); + void copy_files(const std::string& from); struct PresetPreferences { std::string printer_model_id;// name of a preferred printer model diff --git a/src/libslic3r/PrintApply.cpp b/src/libslic3r/PrintApply.cpp index 0f70cf3cc..c10e96ede 100644 --- a/src/libslic3r/PrintApply.cpp +++ b/src/libslic3r/PrintApply.cpp @@ -854,15 +854,14 @@ static PrintObjectRegions* generate_print_object_regions( for (int parent_region_id = int(layer_range.volume_regions.size()) - 1; parent_region_id >= 0; -- parent_region_id) if (const PrintObjectRegions::VolumeRegion &parent_region = layer_range.volume_regions[parent_region_id]; parent_region.model_volume->is_model_part() || parent_region.model_volume->is_modifier()) { - const PrintObjectRegions::BoundingBox *parent_bbox = find_volume_extents(layer_range, *parent_region.model_volume); - assert(parent_bbox != nullptr); - if (parent_bbox->intersects(*bbox)) - layer_range.volume_regions.push_back({ - &volume, parent_region_id, - get_create_region(region_config_from_model_volume(parent_region.region->config(), nullptr, volume, num_extruders)), - bbox - }); - } + const PrintObjectRegions::BoundingBox *parent_bbox = find_volume_extents(layer_range, *parent_region.model_volume); + assert(parent_bbox != nullptr); + if (parent_bbox->intersects(*bbox)) + // Only create new region for a modifier, which actually modifies config of it's parent. + if (PrintRegionConfig config = region_config_from_model_volume(parent_region.region->config(), nullptr, volume, num_extruders); + config != parent_region.region->config()) + layer_range.volume_regions.push_back({ &volume, parent_region_id, get_create_region(std::move(config)), bbox }); + } } } } diff --git a/src/libslic3r/PrintBase.cpp b/src/libslic3r/PrintBase.cpp index 7de74035b..b60401e96 100644 --- a/src/libslic3r/PrintBase.cpp +++ b/src/libslic3r/PrintBase.cpp @@ -26,14 +26,17 @@ void PrintBase::update_object_placeholders(DynamicConfig &config, const std::str // get the first input file name std::string input_file; std::vector v_scale; + int num_objects = 0; + int num_instances = 0; for (const ModelObject *model_object : m_model.objects) { ModelInstance *printable = nullptr; for (ModelInstance *model_instance : model_object->instances) if (model_instance->is_printable()) { printable = model_instance; - break; + ++ num_instances; } if (printable) { + ++ num_objects; // CHECK_ME -> Is the following correct ? v_scale.push_back("x:" + boost::lexical_cast(printable->get_scaling_factor(X) * 100) + "% y:" + boost::lexical_cast(printable->get_scaling_factor(Y) * 100) + @@ -43,6 +46,9 @@ void PrintBase::update_object_placeholders(DynamicConfig &config, const std::str } } + config.set_key_value("num_objects", new ConfigOptionInt(num_objects)); + config.set_key_value("num_instances", new ConfigOptionInt(num_instances)); + config.set_key_value("scale", new ConfigOptionStrings(v_scale)); if (! input_file.empty()) { // get basename with and without suffix diff --git a/src/libslic3r/PrintConfig.cpp b/src/libslic3r/PrintConfig.cpp index 232e724e7..39c033df6 100644 --- a/src/libslic3r/PrintConfig.cpp +++ b/src/libslic3r/PrintConfig.cpp @@ -3163,6 +3163,13 @@ void PrintConfigDef::init_sla_params() // SLA Material settings. + + def = this->add("material_colour", coString); + def->label = L("Color"); + def->tooltip = L("This is only used in the Slic3r interface as a visual help."); + def->gui_type = ConfigOptionDef::GUIType::color; + def->set_default_value(new ConfigOptionString("#29B2B2")); + def = this->add("material_type", coString); def->label = L("SLA material type"); def->tooltip = L("SLA material type"); diff --git a/src/libslic3r/PrintObject.cpp b/src/libslic3r/PrintObject.cpp index fd98feff7..eee0c2aba 100644 --- a/src/libslic3r/PrintObject.cpp +++ b/src/libslic3r/PrintObject.cpp @@ -1669,7 +1669,7 @@ bool PrintObject::update_layer_height_profile(const ModelObject &model_object, c // Must not be of even length. ((layer_height_profile.size() & 1) != 0 || // Last entry must be at the top of the object. - std::abs(layer_height_profile[layer_height_profile.size() - 2] - slicing_parameters.object_print_z_max) > 1e-3)) + std::abs(layer_height_profile[layer_height_profile.size() - 2] - slicing_parameters.object_print_z_max + slicing_parameters.object_print_z_min) > 1e-3)) layer_height_profile.clear(); if (layer_height_profile.empty()) { @@ -2284,6 +2284,7 @@ void PrintObject::project_and_append_custom_facets( seam, out); else { std::vector projected; + // Support blockers or enforcers. Project downward facing painted areas upwards to their respective slicing plane. slice_mesh_slabs(custom_facets, zs_from_layers(this->layers()), this->trafo_centered() * mv->get_matrix(), nullptr, &projected, [](){}); // Merge these projections with the output, layer by layer. assert(! projected.empty()); diff --git a/src/libslic3r/PrintObjectSlice.cpp b/src/libslic3r/PrintObjectSlice.cpp index e2844a624..84b212938 100644 --- a/src/libslic3r/PrintObjectSlice.cpp +++ b/src/libslic3r/PrintObjectSlice.cpp @@ -538,7 +538,7 @@ template static inline void apply_mm_segmentation(PrintObject &print_object, ThrowOnCancel throw_on_cancel) { // Returns MMU segmentation based on painting in MMU segmentation gizmo - std::vector>> segmentation = multi_material_segmentation_by_painting(print_object, throw_on_cancel); + std::vector> segmentation = multi_material_segmentation_by_painting(print_object, throw_on_cancel); assert(segmentation.size() == print_object.layer_count()); tbb::parallel_for( tbb::blocked_range(0, segmentation.size(), std::max(segmentation.size() / 128, size_t(1))), @@ -568,9 +568,7 @@ static inline void apply_mm_segmentation(PrintObject &print_object, ThrowOnCance bool layer_split = false; for (size_t extruder_id = 0; extruder_id < num_extruders; ++ extruder_id) { ByExtruder ®ion = by_extruder[extruder_id]; - for (const std::pair &colored_polygon : segmentation[layer_id]) - if (colored_polygon.second == extruder_id) - region.expolygons.emplace_back(std::move(colored_polygon.first)); + append(region.expolygons, std::move(segmentation[layer_id][extruder_id])); if (! region.expolygons.empty()) { region.bbox = get_extents(region.expolygons); layer_split = true; @@ -632,6 +630,13 @@ static inline void apply_mm_segmentation(PrintObject &print_object, ThrowOnCance if (mine.empty()) break; } + // Filter out unprintable polygons produced by subtraction multi-material painted regions from layerm.region(). + // ExPolygon returned from multi-material segmentation does not precisely match ExPolygons in layerm.region() + // (because of preprocessing of the input regions in multi-material segmentation). Therefore, subtraction from + // layerm.region() could produce a huge number of small unprintable regions for the model's base extruder. + // This could, on some models, produce bulges with the model's base color (#7109). + if (! mine.empty()) + mine = opening(union_ex(mine), float(scale_(5 * EPSILON)), float(scale_(5 * EPSILON))); if (! mine.empty()) { ByRegion &dst = by_region[layerm.region().print_object_region_id()]; if (dst.expolygons.empty()) { diff --git a/src/libslic3r/QuadricEdgeCollapse.cpp b/src/libslic3r/QuadricEdgeCollapse.cpp index 7efe15bb2..48a72e6d8 100644 --- a/src/libslic3r/QuadricEdgeCollapse.cpp +++ b/src/libslic3r/QuadricEdgeCollapse.cpp @@ -2,7 +2,6 @@ #include #include #include "MutablePriorityQueue.hpp" -#include "SimplifyMeshImpl.hpp" #include using namespace Slic3r; @@ -13,10 +12,47 @@ using namespace Slic3r; // only private namespace not neccessary be in .hpp namespace QuadricEdgeCollapse { + // SymetricMatrix + class SymMat { + using T = double; + static const constexpr size_t N = 10; + T m[N]; + public: + explicit SymMat(ArithmeticOnly c = T()) { std::fill(m, m + N, c); } + + // Make plane + SymMat(T a, T b, T c, T d) + { + m[0] = a * a; m[1] = a * b; m[2] = a * c; m[3] = a * d; + m[4] = b * b; m[5] = b * c; m[6] = b * d; + m[7] = c * c; m[8] = c * d; + m[9] = d * d; + } + + T operator[](int c) const { return m[c]; } + + // Determinant + T det(int a11, int a12, int a13, + int a21, int a22, int a23, + int a31, int a32, int a33) const + { + T det = m[a11] * m[a22] * m[a33] + m[a13] * m[a21] * m[a32] + + m[a12] * m[a23] * m[a31] - m[a13] * m[a22] * m[a31] - + m[a11] * m[a23] * m[a32] - m[a12] * m[a21] * m[a33]; + + return det; + } + + const SymMat &operator+=(const SymMat &n) + { + for (size_t i = 0; i < N; ++i) m[i] += n[i]; + return *this; + } + }; + using Vertices = std::vector; using Triangle = stl_triangle_vertex_indices; using Indices = std::vector; - using SymMat = SimplifyMesh::implementation::SymetricMatrix; using ThrowOnCancel = std::function; using StatusFn = std::function; // smallest error caused by edges, identify smallest edge in triangle diff --git a/src/libslic3r/SLA/Hollowing.cpp b/src/libslic3r/SLA/Hollowing.cpp index 9cac7f63b..b0d33a0ca 100644 --- a/src/libslic3r/SLA/Hollowing.cpp +++ b/src/libslic3r/SLA/Hollowing.cpp @@ -7,7 +7,7 @@ #include #include #include -#include +#include #include #include @@ -132,7 +132,10 @@ InteriorPtr generate_interior(const TriangleMesh & mesh, // flip normals back... swap_normals(interior->mesh); - Slic3r::simplify_mesh(interior->mesh); + + // simplify mesh lossless + float loss_less_max_error = 2*std::numeric_limits::epsilon(); + its_quadric_edge_collapse(interior->mesh, 0U, &loss_less_max_error); its_compactify_vertices(interior->mesh); its_merge_vertices(interior->mesh); diff --git a/src/libslic3r/SLAPrintSteps.cpp b/src/libslic3r/SLAPrintSteps.cpp index adec5735a..fa7348781 100644 --- a/src/libslic3r/SLAPrintSteps.cpp +++ b/src/libslic3r/SLAPrintSteps.cpp @@ -559,7 +559,7 @@ void SLAPrint::Steps::slice_model(SLAPrintObject &po) if(po.m_config.supports_enable.getBool() || po.m_config.pad_enable.getBool()) { - po.m_supportdata.reset(new SLAPrintObject::SupportData(mesh)); + po.m_supportdata.reset(new SLAPrintObject::SupportData(po.get_mesh_to_print())); } } @@ -570,10 +570,8 @@ void SLAPrint::Steps::support_points(SLAPrintObject &po) // If supports are disabled, we can skip the model scan. if(!po.m_config.supports_enable.getBool()) return; - const TriangleMesh &mesh = po.get_mesh_to_slice(); - if (!po.m_supportdata) - po.m_supportdata.reset(new SLAPrintObject::SupportData(mesh)); + po.m_supportdata.reset(new SLAPrintObject::SupportData(po.get_mesh_to_print())); const ModelObject& mo = *po.m_model_object; diff --git a/src/libslic3r/SimplifyMesh.cpp b/src/libslic3r/SimplifyMesh.cpp deleted file mode 100644 index d30ecfec5..000000000 --- a/src/libslic3r/SimplifyMesh.cpp +++ /dev/null @@ -1,66 +0,0 @@ -#include "SimplifyMesh.hpp" -#include "SimplifyMeshImpl.hpp" - -namespace SimplifyMesh { - -template<> struct vertex_traits { - using coord_type = float; - using compute_type = double; - - static inline float x(const stl_vertex &v) { return v.x(); } - static inline float& x(stl_vertex &v) { return v.x(); } - - static inline float y(const stl_vertex &v) { return v.y(); } - static inline float& y(stl_vertex &v) { return v.y(); } - - static inline float z(const stl_vertex &v) { return v.z(); } - static inline float& z(stl_vertex &v) { return v.z(); } -}; - -template<> struct mesh_traits { - using vertex_t = stl_vertex; - static size_t face_count(const indexed_triangle_set &m) - { - return m.indices.size(); - } - static size_t vertex_count(const indexed_triangle_set &m) - { - return m.vertices.size(); - } - static vertex_t vertex(const indexed_triangle_set &m, size_t idx) - { - return m.vertices[idx]; - } - static void vertex(indexed_triangle_set &m, size_t idx, const vertex_t &v) - { - m.vertices[idx] = v; - } - static Index3 triangle(const indexed_triangle_set &m, size_t idx) - { - std::array t; - for (size_t i = 0; i < 3; ++i) t[i] = size_t(m.indices[idx](int(i))); - return t; - } - static void triangle(indexed_triangle_set &m, size_t fidx, const Index3 &t) - { - auto &face = m.indices[fidx]; - face(0) = int(t[0]); face(1) = int(t[1]); face(2) = int(t[2]); - } - static void update(indexed_triangle_set &m, size_t vc, size_t fc) - { - m.vertices.resize(vc); - m.indices.resize(fc); - } -}; - -} // namespace SimplifyMesh - -namespace Slic3r { - -void simplify_mesh(indexed_triangle_set &m) -{ - SimplifyMesh::implementation::SimplifiableMesh sm{&m}; - sm.simplify_mesh_lossless(); -} - -} diff --git a/src/libslic3r/SimplifyMesh.hpp b/src/libslic3r/SimplifyMesh.hpp deleted file mode 100644 index 23eb343d1..000000000 --- a/src/libslic3r/SimplifyMesh.hpp +++ /dev/null @@ -1,23 +0,0 @@ -#ifndef MESHSIMPLIFY_HPP -#define MESHSIMPLIFY_HPP - -#include - -#include - -namespace Slic3r { - -void simplify_mesh(indexed_triangle_set &); - -// TODO: (but this can be done with IGL as well) -// void simplify_mesh(indexed_triangle_set &, int face_count, float agressiveness = 0.5f); - -template void simplify_mesh(TriangleMesh &m, Args &&...a) -{ - simplify_mesh(m.its, std::forward(a)...); - m = TriangleMesh{ std::move(m.its) }; -} - -} // namespace Slic3r - -#endif // MESHSIMPLIFY_H diff --git a/src/libslic3r/SimplifyMeshImpl.hpp b/src/libslic3r/SimplifyMeshImpl.hpp deleted file mode 100644 index d143b6d87..000000000 --- a/src/libslic3r/SimplifyMeshImpl.hpp +++ /dev/null @@ -1,670 +0,0 @@ -// /////////////////////////////////////////// -// -// Mesh Simplification Tutorial -// -// (C) by Sven Forstmann in 2014 -// -// License : MIT -// http://opensource.org/licenses/MIT -// -// https://github.com/sp4cerat/Fast-Quadric-Mesh-Simplification -// -// 5/2016: Chris Rorden created minimal version for OSX/Linux/Windows compile -// https://github.com/sp4cerat/Fast-Quadric-Mesh-Simplification/ -// -// libslic3r refactor by tamasmeszaros - -#ifndef SIMPLIFYMESHIMPL_HPP -#define SIMPLIFYMESHIMPL_HPP - -#include -#include -#include -#include -#include - -#ifndef NDEBUG -#include -#include -#endif - -namespace SimplifyMesh { - -using Bary = std::array; -using Index3 = std::array; - -template struct vertex_traits { - using coord_type = typename Vertex::coord_type; - using compute_type = coord_type; - - static coord_type x(const Vertex &v); - static coord_type& x(Vertex &v); - - static coord_type y(const Vertex &v); - static coord_type& y(Vertex &v); - - static coord_type z(const Vertex &v); - static coord_type& z(Vertex &v); -}; - -template struct mesh_traits { - using vertex_t = typename Mesh::vertex_t; - - static size_t face_count(const Mesh &m); - static size_t vertex_count(const Mesh &m); - static vertex_t vertex(const Mesh &m, size_t vertex_idx); - static void vertex(Mesh &m, size_t vertex_idx, const vertex_t &v); - static Index3 triangle(const Mesh &m, size_t face_idx); - static void triangle(Mesh &m, size_t face_idx, const Index3 &t); - static void update(Mesh &m, size_t vertex_count, size_t face_count); -}; - -namespace implementation { - -// A shorter C++14 style form of the enable_if metafunction -template -using enable_if_t = typename std::enable_if::type; - -// Meta predicates for floating, integer and generic arithmetic types -template -using FloatingOnly = enable_if_t::value, O>; - -template -using IntegerOnly = enable_if_t::value, O>; - -template -using ArithmeticOnly = enable_if_t::value, O>; - -template< class T > -struct remove_cvref { - using type = typename std::remove_cv< - typename std::remove_reference::type>::type; -}; - -template< class T > -using remove_cvref_t = typename remove_cvref::type; - -template FloatingOnly is_approx(T val, T ref) { return std::abs(val - ref) < 1e-8; } -template IntegerOnly is_approx(T val, T ref) { val == ref; } - -template class SymetricMatrix { - static const constexpr size_t N = 10; -public: - - explicit SymetricMatrix(ArithmeticOnly c = T()) { std::fill(m, m + N, c); } - - // Make plane - SymetricMatrix(T a, T b, T c, T d) - { - m[0] = a * a; m[1] = a * b; m[2] = a * c; m[3] = a * d; - m[4] = b * b; m[5] = b * c; m[6] = b * d; - m[7] = c * c; m[8] = c * d; - m[9] = d * d; - } - - T operator[](int c) const { return m[c]; } - - // Determinant - T det(int a11, int a12, int a13, - int a21, int a22, int a23, - int a31, int a32, int a33) const - { - T det = m[a11] * m[a22] * m[a33] + m[a13] * m[a21] * m[a32] + - m[a12] * m[a23] * m[a31] - m[a13] * m[a22] * m[a31] - - m[a11] * m[a23] * m[a32] - m[a12] * m[a21] * m[a33]; - - return det; - } - - const SymetricMatrix& operator+=(const SymetricMatrix& n) - { - for (size_t i = 0; i < N; ++i) m[i] += n[i]; - return *this; - } - - SymetricMatrix operator+(const SymetricMatrix& n) - { - SymetricMatrix self = *this; - return self += n; - } - - T m[N]; -}; - -template using TCoord = typename vertex_traits>::coord_type; -template using TCompute = typename vertex_traits>::compute_type; -template inline TCoord x(const V &v) { return vertex_traits>::x(v); } -template inline TCoord y(const V &v) { return vertex_traits>::y(v); } -template inline TCoord z(const V &v) { return vertex_traits>::z(v); } -template inline TCoord& x(V &v) { return vertex_traits>::x(v); } -template inline TCoord& y(V &v) { return vertex_traits>::y(v); } -template inline TCoord& z(V &v) { return vertex_traits>::z(v); } -template using TVertex = typename mesh_traits>::vertex_t; -template using TMeshCoord = TCoord>; - -template TCompute dot(const Vertex &v1, const Vertex &v2) -{ - return TCompute(x(v1)) * x(v2) + - TCompute(y(v1)) * y(v2) + - TCompute(z(v1)) * z(v2); -} - -template Vertex cross(const Vertex &a, const Vertex &b) -{ - return Vertex{y(a) * z(b) - z(a) * y(b), - z(a) * x(b) - x(a) * z(b), - x(a) * y(b) - y(a) * x(b)}; -} - -template TCompute lengthsq(const Vertex &v) -{ - return TCompute(x(v)) * x(v) + TCompute(y(v)) * y(v) + - TCompute(z(v)) * z(v); -} - -template void normalize(Vertex &v) -{ - double square = std::sqrt(lengthsq(v)); - x(v) /= square; y(v) /= square; z(v) /= square; -} - -using Bary = std::array; - -template -Bary barycentric(const Vertex &p, const Vertex &a, const Vertex &b, const Vertex &c) -{ - Vertex v0 = (b - a); - Vertex v1 = (c - a); - Vertex v2 = (p - a); - - double d00 = dot(v0, v0); - double d01 = dot(v0, v1); - double d11 = dot(v1, v1); - double d20 = dot(v2, v0); - double d21 = dot(v2, v1); - double denom = d00 * d11 - d01 * d01; - double v = (d11 * d20 - d01 * d21) / denom; - double w = (d00 * d21 - d01 * d20) / denom; - double u = 1.0 - v - w; - - return {u, v, w}; -} - -template class SimplifiableMesh { - Mesh *m_mesh; - - using Vertex = TVertex; - using Coord = TMeshCoord; - using HiPrecison = TCompute>; - using SymMat = SymetricMatrix; - - struct FaceInfo { - size_t idx; - double err[4] = {0.}; - bool deleted = false, dirty = false; - Vertex n; - explicit FaceInfo(size_t id): idx(id) {} - }; - - struct VertexInfo { - size_t idx; - size_t tstart = 0, tcount = 0; - bool border = false; - SymMat q; - explicit VertexInfo(size_t id): idx(id) {} - }; - - struct Ref { size_t face; size_t vertex; }; - - std::vector m_refs; - std::vector m_faceinfo; - std::vector m_vertexinfo; - - void compact_faces(); - void compact(); - - size_t mesh_vcount() const { return mesh_traits::vertex_count(*m_mesh); } - size_t mesh_facecount() const { return mesh_traits::face_count(*m_mesh); } - - size_t vcount() const { return m_vertexinfo.size(); } - - inline Vertex read_vertex(size_t vi) const - { - return mesh_traits::vertex(*m_mesh, vi); - } - - inline Vertex read_vertex(const VertexInfo &vinf) const - { - return read_vertex(vinf.idx); - } - - inline void write_vertex(size_t idx, const Vertex &v) const - { - mesh_traits::vertex(*m_mesh, idx, v); - } - - inline void write_vertex(const VertexInfo &vinf, const Vertex &v) const - { - write_vertex(vinf.idx, v); - } - - inline Index3 read_triangle(size_t fi) const - { - return mesh_traits::triangle(*m_mesh, fi); - } - - inline Index3 read_triangle(const FaceInfo &finf) const - { - return read_triangle(finf.idx); - } - - inline void write_triangle(size_t idx, const Index3 &t) - { - return mesh_traits::triangle(*m_mesh, idx, t); - } - - inline void write_triangle(const FaceInfo &finf, const Index3 &t) - { - return write_triangle(finf.idx, t); - } - - inline std::array triangle_vertices(const Index3 &f) const - { - std::array p; - for (size_t i = 0; i < 3; ++i) p[i] = read_vertex(f[i]); - return p; - } - - // Error between vertex and Quadric - static double vertex_error(const SymMat &q, const Vertex &v) - { - Coord _x = x(v) , _y = y(v), _z = z(v); - return q[0] * _x * _x + 2 * q[1] * _x * _y + 2 * q[2] * _x * _z + - 2 * q[3] * _x + q[4] * _y * _y + 2 * q[5] * _y * _z + - 2 * q[6] * _y + q[7] * _z * _z + 2 * q[8] * _z + q[9]; - } - - // Error for one edge - double calculate_error(size_t id_v1, size_t id_v2, Vertex &p_result); - - void calculate_error(FaceInfo &fi) - { - Vertex p; - Index3 t = read_triangle(fi); - for (size_t j = 0; j < 3; ++j) - fi.err[j] = calculate_error(t[j], t[(j + 1) % 3], p); - - fi.err[3] = std::min(fi.err[0], std::min(fi.err[1], fi.err[2])); - } - - void update_mesh(int iteration); - - // Update triangle connections and edge error after a edge is collapsed - void update_triangles(size_t i, VertexInfo &vi, std::vector &deleted, int &deleted_triangles); - - // Check if a triangle flips when this edge is removed - bool flipped(const Vertex &p, size_t i0, size_t i1, VertexInfo &v0, VertexInfo &v1, std::vector &deleted); - -public: - - explicit SimplifiableMesh(Mesh *m) : m_mesh{m} - { - static_assert( - std::is_arithmetic::value, - "Coordinate type of mesh has to be an arithmetic type!"); - - m_faceinfo.reserve(mesh_traits::face_count(*m)); - m_vertexinfo.reserve(mesh_traits::vertex_count(*m)); - for (size_t i = 0; i < mesh_facecount(); ++i) m_faceinfo.emplace_back(i); - for (size_t i = 0; i < mesh_vcount(); ++i) m_vertexinfo.emplace_back(i); - - } - - template void simplify_mesh_lossless(ProgressFn &&fn); - void simplify_mesh_lossless() { simplify_mesh_lossless([](int){}); } -}; - -template void SimplifiableMesh::compact_faces() -{ - auto it = std::remove_if(m_faceinfo.begin(), m_faceinfo.end(), - [](const FaceInfo &inf) { return inf.deleted; }); - - m_faceinfo.erase(it, m_faceinfo.end()); -} - -template void SimplifiableMesh::compact() -{ - for (auto &vi : m_vertexinfo) vi.tcount = 0; - - compact_faces(); - - for (FaceInfo &fi : m_faceinfo) - for (size_t vidx : read_triangle(fi)) m_vertexinfo[vidx].tcount = 1; - - size_t dst = 0; - for (VertexInfo &vi : m_vertexinfo) { - if (vi.tcount) { - vi.tstart = dst; - write_vertex(dst++, read_vertex(vi)); - } - } - - size_t vertex_count = dst; - - dst = 0; - for (const FaceInfo &fi : m_faceinfo) { - Index3 t = read_triangle(fi); - for (size_t &idx : t) idx = m_vertexinfo[idx].tstart; - write_triangle(dst++, t); - } - - mesh_traits::update(*m_mesh, vertex_count, m_faceinfo.size()); -} - -template -double SimplifiableMesh::calculate_error(size_t id_v1, size_t id_v2, Vertex &p_result) -{ - // compute interpolated vertex - - SymMat q = m_vertexinfo[id_v1].q + m_vertexinfo[id_v2].q; - - bool border = m_vertexinfo[id_v1].border & m_vertexinfo[id_v2].border; - double error = 0; - HiPrecison det = q.det(0, 1, 2, 1, 4, 5, 2, 5, 7); - - if (!is_approx(det, HiPrecison(0)) && !border) - { - // q_delta is invertible - x(p_result) = Coord(-1) / det * q.det(1, 2, 3, 4, 5, 6, 5, 7, 8); // vx = A41/det(q_delta) - y(p_result) = Coord( 1) / det * q.det(0, 2, 3, 1, 5, 6, 2, 7, 8); // vy = A42/det(q_delta) - z(p_result) = Coord(-1) / det * q.det(0, 1, 3, 1, 4, 6, 2, 5, 8); // vz = A43/det(q_delta) - - error = vertex_error(q, p_result); - } else { - // det = 0 -> try to find best result - Vertex p1 = read_vertex(id_v1); - Vertex p2 = read_vertex(id_v2); - Vertex p3 = (p1 + p2) / 2; - double error1 = vertex_error(q, p1); - double error2 = vertex_error(q, p2); - double error3 = vertex_error(q, p3); - error = std::min(error1, std::min(error2, error3)); - - if (is_approx(error1, error)) p_result = p1; - if (is_approx(error2, error)) p_result = p2; - if (is_approx(error3, error)) p_result = p3; - } - - return error; -} - -template void SimplifiableMesh::update_mesh(int iteration) -{ - if (iteration > 0) compact_faces(); - - assert(mesh_vcount() == m_vertexinfo.size()); - - // - // Init Quadrics by Plane & Edge Errors - // - // required at the beginning ( iteration == 0 ) - // recomputing during the simplification is not required, - // but mostly improves the result for closed meshes - // - if (iteration == 0) { - - for (VertexInfo &vinf : m_vertexinfo) vinf.q = SymMat{}; - for (FaceInfo &finf : m_faceinfo) { - Index3 t = read_triangle(finf); - std::array p = triangle_vertices(t); - Vertex n = cross(Vertex(p[1] - p[0]), Vertex(p[2] - p[0])); - normalize(n); - finf.n = n; - - for (size_t fi : t) - m_vertexinfo[fi].q += SymMat(x(n), y(n), z(n), -dot(n, p[0])); - - calculate_error(finf); - } - } - - // Init Reference ID list - for (VertexInfo &vi : m_vertexinfo) { vi.tstart = 0; vi.tcount = 0; } - - for (FaceInfo &fi : m_faceinfo) - for (size_t vidx : read_triangle(fi)) - m_vertexinfo[vidx].tcount++; - - size_t tstart = 0; - for (VertexInfo &vi : m_vertexinfo) { - vi.tstart = tstart; - tstart += vi.tcount; - vi.tcount = 0; - } - - // Write References - m_refs.resize(m_faceinfo.size() * 3); - for (size_t i = 0; i < m_faceinfo.size(); ++i) { - const FaceInfo &fi = m_faceinfo[i]; - Index3 t = read_triangle(fi); - for (size_t j = 0; j < 3; ++j) { - VertexInfo &vi = m_vertexinfo[t[j]]; - - assert(vi.tstart + vi.tcount < m_refs.size()); - - Ref &ref = m_refs[vi.tstart + vi.tcount]; - ref.face = i; - ref.vertex = j; - vi.tcount++; - } - } - - // Identify boundary : vertices[].border=0,1 - if (iteration == 0) { - for (VertexInfo &vi: m_vertexinfo) vi.border = false; - - std::vector vcount, vids; - - for (VertexInfo &vi: m_vertexinfo) { - vcount.clear(); - vids.clear(); - - for(size_t j = 0; j < vi.tcount; ++j) { - assert(vi.tstart + j < m_refs.size()); - FaceInfo &fi = m_faceinfo[m_refs[vi.tstart + j].face]; - Index3 t = read_triangle(fi); - - for (size_t fid : t) { - size_t ofs=0; - while (ofs < vcount.size()) - { - if (vids[ofs] == fid) break; - ofs++; - } - if (ofs == vcount.size()) - { - vcount.emplace_back(1); - vids.emplace_back(fid); - } - else - vcount[ofs]++; - } - } - - for (size_t j = 0; j < vcount.size(); ++j) - if(vcount[j] == 1) m_vertexinfo[vids[j]].border = true; - } - } -} - -template -void SimplifiableMesh::update_triangles(size_t i0, - VertexInfo & vi, - std::vector &deleted, - int &deleted_triangles) -{ - Vertex p; - for (size_t k = 0; k < vi.tcount; ++k) { - assert(vi.tstart + k < m_refs.size()); - - Ref &r = m_refs[vi.tstart + k]; - FaceInfo &fi = m_faceinfo[r.face]; - - if (fi.deleted) continue; - - if (deleted[k]) { - fi.deleted = true; - deleted_triangles++; - continue; - } - - Index3 t = read_triangle(fi); - t[r.vertex] = i0; - write_triangle(fi, t); - - fi.dirty = true; - fi.err[0] = calculate_error(t[0], t[1], p); - fi.err[1] = calculate_error(t[1], t[2], p); - fi.err[2] = calculate_error(t[2], t[0], p); - fi.err[3] = std::min(fi.err[0], std::min(fi.err[1], fi.err[2])); - m_refs.emplace_back(r); - } -} - -template -bool SimplifiableMesh::flipped(const Vertex & p, - size_t /*i0*/, - size_t i1, - VertexInfo & v0, - VertexInfo & /*v1*/, - std::vector &deleted) -{ - for (size_t k = 0; k < v0.tcount; ++k) { - size_t ridx = v0.tstart + k; - assert(ridx < m_refs.size()); - - FaceInfo &fi = m_faceinfo[m_refs[ridx].face]; - if (fi.deleted) continue; - - Index3 t = read_triangle(fi); - int s = m_refs[ridx].vertex; - size_t id1 = t[(s+1) % 3]; - size_t id2 = t[(s+2) % 3]; - - if(id1 == i1 || id2 == i1) // delete ? - { - deleted[k] = true; - continue; - } - - Vertex d1 = read_vertex(id1) - p; - normalize(d1); - Vertex d2 = read_vertex(id2) - p; - normalize(d2); - - if (std::abs(dot(d1, d2)) > 0.999) return true; - - Vertex n = cross(d1, d2); - normalize(n); - - deleted[k] = false; - if (dot(n, fi.n) < 0.2) return true; - } - - return false; -} - -template -template void SimplifiableMesh::simplify_mesh_lossless(Fn &&fn) -{ - // init - for (FaceInfo &fi : m_faceinfo) fi.deleted = false; - - // main iteration loop - int deleted_triangles=0; - std::vector deleted0, deleted1; - - for (int iteration = 0; iteration < 9999; iteration ++) { - // update mesh constantly - update_mesh(iteration); - - // clear dirty flag - for (FaceInfo &fi : m_faceinfo) fi.dirty = false; - - // - // All triangles with edges below the threshold will be removed - // - // The following numbers works well for most models. - // If it does not, try to adjust the 3 parameters - // - double threshold = std::numeric_limits::epsilon(); //1.0E-3 EPS; // Really? (tm) - - fn(iteration); - - for (FaceInfo &fi : m_faceinfo) { - if (fi.err[3] > threshold || fi.deleted || fi.dirty) continue; - - for (size_t j = 0; j < 3; ++j) { - if (fi.err[j] > threshold) continue; - - Index3 t = read_triangle(fi); - size_t i0 = t[j]; - VertexInfo &v0 = m_vertexinfo[i0]; - - size_t i1 = t[(j + 1) % 3]; - VertexInfo &v1 = m_vertexinfo[i1]; - - // Border check - if(v0.border != v1.border) continue; - - // Compute vertex to collapse to - Vertex p; - calculate_error(i0, i1, p); - - deleted0.resize(v0.tcount); // normals temporarily - deleted1.resize(v1.tcount); // normals temporarily - - // don't remove if flipped - if (flipped(p, i0, i1, v0, v1, deleted0)) continue; - if (flipped(p, i1, i0, v1, v0, deleted1)) continue; - - // not flipped, so remove edge - write_vertex(v0, p); - v0.q = v1.q + v0.q; - size_t tstart = m_refs.size(); - - update_triangles(i0, v0, deleted0, deleted_triangles); - update_triangles(i0, v1, deleted1, deleted_triangles); - - assert(m_refs.size() >= tstart); - - size_t tcount = m_refs.size() - tstart; - - if(tcount <= v0.tcount) - { - // save ram - if (tcount) { - auto from = m_refs.begin() + tstart, to = from + tcount; - std::copy(from, to, m_refs.begin() + v0.tstart); - } - } - else - // append - v0.tstart = tstart; - - v0.tcount = tcount; - break; - } - } - - if (deleted_triangles <= 0) break; - deleted_triangles = 0; - } - - compact(); -} - -} // namespace implementation -} // namespace SimplifyMesh - -#endif // SIMPLIFYMESHIMPL_HPP diff --git a/src/libslic3r/SlicesToTriangleMesh.cpp b/src/libslic3r/SlicesToTriangleMesh.cpp index 7a2975d12..3b55cf066 100644 --- a/src/libslic3r/SlicesToTriangleMesh.cpp +++ b/src/libslic3r/SlicesToTriangleMesh.cpp @@ -1,3 +1,4 @@ +#include #include "SlicesToTriangleMesh.hpp" @@ -22,11 +23,16 @@ inline indexed_triangle_set wall_strip(const Polygon &poly, ret.vertices.reserve(ret.vertices.size() + 2 *offs); + // The expression unscaled(p).cast().eval() is important here + // as it ensures identical conversion of 2D scaled coordinates to float 3D + // to that used by the tesselation. This way, the duplicated vertices in the + // output mesh can be found with the == operator of the points. + // its_merge_vertices will then reliably remove the duplicates. for (const Point &p : poly.points) - ret.vertices.emplace_back(to_3d(unscaled(p), float(lower_z_mm))); + ret.vertices.emplace_back(to_3d(unscaled(p).cast().eval(), float(lower_z_mm))); for (const Point &p : poly.points) - ret.vertices.emplace_back(to_3d(unscaled(p), float(upper_z_mm))); + ret.vertices.emplace_back(to_3d(unscaled(p).cast().eval(), float(upper_z_mm))); for (size_t i = startidx + 1; i < startidx + offs; ++i) { ret.indices.emplace_back(i - 1, i, i + offs - 1); @@ -84,12 +90,14 @@ indexed_triangle_set slices_to_mesh( const ExPolygons &upper = slices[i + 1]; const ExPolygons &lower = slices[i]; - ExPolygons dff1 = diff_ex(lower, upper); - ExPolygons dff2 = diff_ex(upper, lower); - its_merge(layers[i], triangulate_expolygons_3d(dff1, grid[i], NORMALS_UP)); - its_merge(layers[i], triangulate_expolygons_3d(dff2, grid[i], NORMALS_DOWN)); + // Small 0 area artefacts can be created by diff_ex, and the + // tesselation also can create 0 area triangles. These will be removed + // by its_remove_degenerate_faces. + ExPolygons free_top = diff_ex(lower, upper); + ExPolygons overhang = diff_ex(upper, lower); + its_merge(layers[i], triangulate_expolygons_3d(free_top, grid[i], NORMALS_UP)); + its_merge(layers[i], triangulate_expolygons_3d(overhang, grid[i], NORMALS_DOWN)); its_merge(layers[i], straight_walls(upper, grid[i], grid[i + 1])); - }); auto merge_fn = []( const indexed_triangle_set &a, const indexed_triangle_set &b ) { @@ -99,37 +107,30 @@ indexed_triangle_set slices_to_mesh( auto ret = execution::reduce(ex_tbb, layers.begin(), layers.end(), indexed_triangle_set{}, merge_fn); - // sla::Contour3D ret = tbb::parallel_reduce( - // tbb::blocked_range(layers.begin(), layers.end()), - // sla::Contour3D{}, - // [](const tbb::blocked_range& r, sla::Contour3D - // init) { - // for(auto it = r.begin(); it != r.end(); ++it ) - // init.merge(*it); return init; - // }, - // []( const sla::Contour3D &a, const sla::Contour3D &b ) { - // sla::Contour3D res{a}; res.merge(b); return res; - // }); - its_merge(ret, triangulate_expolygons_3d(slices.front(), zmin, NORMALS_DOWN)); its_merge(ret, straight_walls(slices.front(), zmin, grid.front())); its_merge(ret, triangulate_expolygons_3d(slices.back(), grid.back(), NORMALS_UP)); - + + // FIXME: these repairs do not fix the mesh entirely. There will be cracks + // in the output. It is very hard to do the meshing in a way that does not + // leave errors. + its_merge_vertices(ret); + its_remove_degenerate_faces(ret); + its_compactify_vertices(ret); + return ret; } void slices_to_mesh(indexed_triangle_set & mesh, - const std::vector &slices, - double zmin, - double lh, - double ilh) + const std::vector &slices, + double zmin, + double lh, + double ilh) { - std::vector wall_meshes(slices.size()); std::vector grid(slices.size(), zmin + ilh); - - for (size_t i = 1; i < grid.size(); ++i) - grid[i] = grid[i - 1] + lh; - + + for (size_t i = 1; i < grid.size(); ++i) grid[i] = grid[i - 1] + lh; + indexed_triangle_set cntr = slices_to_mesh(slices, zmin, grid); its_merge(mesh, cntr); } diff --git a/src/libslic3r/SlicesToTriangleMesh.hpp b/src/libslic3r/SlicesToTriangleMesh.hpp index 2fd177885..57b540d9f 100644 --- a/src/libslic3r/SlicesToTriangleMesh.hpp +++ b/src/libslic3r/SlicesToTriangleMesh.hpp @@ -7,10 +7,10 @@ namespace Slic3r { void slices_to_mesh(indexed_triangle_set & mesh, - const std::vector &slices, - double zmin, - double lh, - double ilh); + const std::vector &slices, + double zmin, + double lh, + double ilh); inline indexed_triangle_set slices_to_mesh( const std::vector &slices, double zmin, double lh, double ilh) diff --git a/src/libslic3r/SupportMaterial.cpp b/src/libslic3r/SupportMaterial.cpp index a668a385b..7ef289757 100644 --- a/src/libslic3r/SupportMaterial.cpp +++ b/src/libslic3r/SupportMaterial.cpp @@ -383,7 +383,9 @@ PrintObjectSupportMaterial::PrintObjectSupportMaterial(const PrintObject *object SupportMaterialPattern support_pattern = m_object_config->support_material_pattern; m_support_params.with_sheath = m_object_config->support_material_with_sheath; - m_support_params.base_fill_pattern = support_pattern == smpHoneycomb ? ipHoneycomb : (m_support_params.support_density > 0.95 ? ipRectilinear : ipSupportBase); + m_support_params.base_fill_pattern = + support_pattern == smpHoneycomb ? ipHoneycomb : + m_support_params.support_density > 0.95 || m_support_params.with_sheath ? ipRectilinear : ipSupportBase; m_support_params.interface_fill_pattern = (m_support_params.interface_density > 0.95 ? ipRectilinear : ipSupportBase); m_support_params.contact_fill_pattern = (m_object_config->support_material_interface_pattern == smipAuto && m_slicing_params.soluble_interface) || @@ -945,6 +947,8 @@ public: { { union_ex(*m_support_polygons) }, { "src", "green", 0.5f } }, }); #endif /* SLIC3R_DEBUG */ + //FIXME do we want to trim with the object here? On one side the columns will be thinner, on the other side support interfaces may disappear for snug supports. + // return diff(smooth_outward(closing(*m_support_polygons, closing_distance, SUPPORT_SURFACES_OFFSET_PARAMETERS), smoothing_distance), *m_trimming_polygons); return smooth_outward(closing(*m_support_polygons, closing_distance, SUPPORT_SURFACES_OFFSET_PARAMETERS), smoothing_distance); } assert(false); @@ -1643,26 +1647,29 @@ static inline std::tuple detect_overhangs( polygons_append(contact_polygons, diff_polygons); } // for each layer.region - if (has_enforcer) { - // Enforce supports (as if with 90 degrees of slope) for the regions covered by the enforcer meshes. -#ifdef SLIC3R_DEBUG - ExPolygons enforcers_united = union_ex(annotations.enforcers_layers[layer_id]); -#endif // SLIC3R_DEBUG - enforcer_polygons = diff(intersection(layer.lslices, annotations.enforcers_layers[layer_id]), - // Inflate just a tiny bit to avoid intersection of the overhang areas with the object. - expand(lower_layer_polygons, 0.05f * no_interface_offset, SUPPORT_SURFACES_OFFSET_PARAMETERS)); -#ifdef SLIC3R_DEBUG - SVG::export_expolygons(debug_out_path("support-top-contacts-enforcers-run%d-layer%d-z%f.svg", iRun, layer_id, layer.print_z), - { { layer.lslices, { "layer.lslices", "gray", 0.2f } }, - { { union_ex(lower_layer_polygons) }, { "lower_layer_polygons", "green", 0.5f } }, - { enforcers_united, { "enforcers", "blue", 0.5f } }, - { { union_safety_offset_ex(enforcer_polygons) }, { "new_contacts", "red", "black", "", scaled(0.1f), 0.5f } } }); -#endif /* SLIC3R_DEBUG */ - polygons_append(overhang_polygons, enforcer_polygons); - slices_margin_update(std::min(lower_layer_offset, float(scale_(gap_xy))), no_interface_offset); - polygons_append(contact_polygons, diff(enforcer_polygons, slices_margin.all_polygons.empty() ? slices_margin.polygons : slices_margin.all_polygons)); + if (has_enforcer) + if (const Polygons &enforcer_polygons_src = annotations.enforcers_layers[layer_id]; ! enforcer_polygons_src.empty()) { + // Enforce supports (as if with 90 degrees of slope) for the regions covered by the enforcer meshes. + #ifdef SLIC3R_DEBUG + ExPolygons enforcers_united = union_ex(enforcer_polygons_src); + #endif // SLIC3R_DEBUG + enforcer_polygons = diff(intersection(layer.lslices, enforcer_polygons_src), + // Inflate just a tiny bit to avoid intersection of the overhang areas with the object. + expand(lower_layer_polygons, 0.05f * no_interface_offset, SUPPORT_SURFACES_OFFSET_PARAMETERS)); + #ifdef SLIC3R_DEBUG + SVG::export_expolygons(debug_out_path("support-top-contacts-enforcers-run%d-layer%d-z%f.svg", iRun, layer_id, layer.print_z), + { { layer.lslices, { "layer.lslices", "gray", 0.2f } }, + { { union_ex(lower_layer_polygons) }, { "lower_layer_polygons", "green", 0.5f } }, + { enforcers_united, { "enforcers", "blue", 0.5f } }, + { { union_safety_offset_ex(enforcer_polygons) }, { "new_contacts", "red", "black", "", scaled(0.1f), 0.5f } } }); + #endif /* SLIC3R_DEBUG */ + if (! enforcer_polygons.empty()) { + polygons_append(overhang_polygons, enforcer_polygons); + slices_margin_update(std::min(lower_layer_offset, float(scale_(gap_xy))), no_interface_offset); + polygons_append(contact_polygons, diff(enforcer_polygons, slices_margin.all_polygons.empty() ? slices_margin.polygons : slices_margin.all_polygons)); + } + } } - } return std::make_tuple(std::move(overhang_polygons), std::move(contact_polygons), std::move(enforcer_polygons), no_interface_offset); } @@ -2346,7 +2353,9 @@ PrintObjectSupportMaterial::MyLayersPtr PrintObjectSupportMaterial::bottom_conta Polygons &layer_support_area = layer_support_areas[layer_id]; Polygons *layer_buildplate_covered = buildplate_covered.empty() ? nullptr : &buildplate_covered[layer_id]; - task_group.run([&grid_params, &overhangs_projection, &overhangs_projection_raw, &layer, &layer_support_area, layer_buildplate_covered + // Filtering the propagated support columns to two extrusions, overlapping by maximum 20%. + float column_propagation_filtering_radius = scaled(0.8 * 0.5 * (m_support_params.support_material_flow.spacing() + m_support_params.support_material_flow.width())); + task_group.run([&grid_params, &overhangs_projection, &overhangs_projection_raw, &layer, &layer_support_area, layer_buildplate_covered, column_propagation_filtering_radius #ifdef SLIC3R_DEBUG , iRun, layer_id #endif /* SLIC3R_DEBUG */ @@ -2357,6 +2366,8 @@ PrintObjectSupportMaterial::MyLayersPtr PrintObjectSupportMaterial::bottom_conta , iRun, layer_id, "general" #endif /* SLIC3R_DEBUG */ ); + // When propagating support areas downwards, stop propagating the support column if it becomes too thin to be printable. + //overhangs_projection = opening(overhangs_projection, column_propagation_filtering_radius); }); Polygons layer_support_area_enforcers; @@ -4051,7 +4062,8 @@ void PrintObjectSupportMaterial::generate_toolpaths( // Pointer to the 1st layer interface filler. auto filler_first_layer = filler_first_layer_ptr ? filler_first_layer_ptr.get() : filler_interface.get(); // Filler for the base interface (to be used for soluble interface / non soluble base, to produce non soluble interface layer below soluble interface layer). - auto filler_base_interface = std::unique_ptr(base_interface_layers.empty() ? nullptr : Fill::new_from_type(m_support_params.interface_density > 0.95 ? ipRectilinear : ipSupportBase)); + auto filler_base_interface = std::unique_ptr(base_interface_layers.empty() ? nullptr : + Fill::new_from_type(m_support_params.interface_density > 0.95 || m_support_params.with_sheath ? ipRectilinear : ipSupportBase)); auto filler_support = std::unique_ptr(Fill::new_from_type(m_support_params.base_fill_pattern)); filler_interface->set_bounding_box(bbox_object); if (filler_first_layer_ptr) @@ -4115,7 +4127,10 @@ void PrintObjectSupportMaterial::generate_toolpaths( base_layer.merge(std::move(bottom_contact_layer)); else if (base_layer.empty() && ! bottom_contact_layer.empty() && ! bottom_contact_layer.layer->bridging) base_layer = std::move(bottom_contact_layer); - } + } else if (bottom_contact_layer.could_merge(top_contact_layer)) + top_contact_layer.merge(std::move(bottom_contact_layer)); + else if (bottom_contact_layer.could_merge(interface_layer)) + bottom_contact_layer.merge(std::move(interface_layer)); #if 0 if ( ! interface_layer.empty() && ! base_layer.empty()) { diff --git a/src/libslic3r/Technologies.hpp b/src/libslic3r/Technologies.hpp index aa0de40a8..c628ae964 100644 --- a/src/libslic3r/Technologies.hpp +++ b/src/libslic3r/Technologies.hpp @@ -74,22 +74,32 @@ //==================== -// 2.4.0.alpha4 techs +// 2.4.0.beta1 techs //==================== -#define ENABLE_2_4_0_ALPHA4 1 +#define ENABLE_2_4_0_BETA1 1 // Enable rendering modifiers and similar objects always as transparent -#define ENABLE_MODIFIERS_ALWAYS_TRANSPARENT (1 && ENABLE_2_4_0_ALPHA4) +#define ENABLE_MODIFIERS_ALWAYS_TRANSPARENT (1 && ENABLE_2_4_0_BETA1) // Enable the fix for the detection of the out of bed state for sinking objects // and detection of out of bed using the bed perimeter -#define ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS (1 && ENABLE_2_4_0_ALPHA4) +#define ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS (1 && ENABLE_2_4_0_BETA1) + +//==================== +// 2.4.0.beta2 techs +//==================== +#define ENABLE_2_4_0_BETA2 1 + +// Enable modified ImGuiWrapper::slider_float() to create a compound widget where +// an additional button can be used to set the keyboard focus into the slider +// to allow the user to type in the desired value +#define ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT (1 && ENABLE_2_4_0_BETA2) // Enable changes in preview layout -#define ENABLE_PREVIEW_LAYOUT (1 && ENABLE_2_4_0_ALPHA4) +#define ENABLE_PREVIEW_LAYOUT (1 && ENABLE_2_4_0_BETA2) // Enable coloring of toolpaths in preview by layer time -#define ENABLE_PREVIEW_LAYER_TIME (1 && ENABLE_2_4_0_ALPHA4) +#define ENABLE_PREVIEW_LAYER_TIME (1 && ENABLE_2_4_0_BETA2) // Enable showing time estimate for travel moves in legend -#define ENABLE_TRAVEL_TIME (1 && ENABLE_2_4_0_ALPHA4) +#define ENABLE_TRAVEL_TIME (1 && ENABLE_2_4_0_BETA2) #endif // _prusaslicer_technologies_h_ diff --git a/src/libslic3r/TriangleMesh.cpp b/src/libslic3r/TriangleMesh.cpp index fb2621225..b33dd38cc 100644 --- a/src/libslic3r/TriangleMesh.cpp +++ b/src/libslic3r/TriangleMesh.cpp @@ -705,22 +705,16 @@ void its_flip_triangles(indexed_triangle_set &its) int its_remove_degenerate_faces(indexed_triangle_set &its, bool shrink_to_fit) { - int last = 0; - for (int i = 0; i < int(its.indices.size()); ++ i) { - const stl_triangle_vertex_indices &face = its.indices[i]; - if (face(0) != face(1) && face(0) != face(2) && face(1) != face(2)) { - if (last < i) - its.indices[last] = its.indices[i]; - ++ last; - } - } - int removed = int(its.indices.size()) - last; - if (removed) { - its.indices.erase(its.indices.begin() + last, its.indices.end()); - // Optionally shrink the vertices. - if (shrink_to_fit) - its.indices.shrink_to_fit(); - } + auto it = std::remove_if(its.indices.begin(), its.indices.end(), [](auto &face) { + return face(0) == face(1) || face(0) == face(2) || face(1) == face(2); + }); + + int removed = std::distance(it, its.indices.end()); + its.indices.erase(it, its.indices.end()); + + if (removed && shrink_to_fit) + its.indices.shrink_to_fit(); + return removed; } @@ -1196,11 +1190,11 @@ std::vector its_split(const indexed_triangle_set &its) } // Number of disconnected patches (faces are connected if they share an edge, shared edge defined with 2 shared vertex indices). -bool its_number_of_patches(const indexed_triangle_set &its) +size_t its_number_of_patches(const indexed_triangle_set &its) { return its_number_of_patches<>(its); } -bool its_number_of_patches(const indexed_triangle_set &its, const std::vector &face_neighbors) +size_t its_number_of_patches(const indexed_triangle_set &its, const std::vector &face_neighbors) { return its_number_of_patches<>(ItsNeighborsWrapper{ its, face_neighbors }); } diff --git a/src/libslic3r/TriangleMesh.hpp b/src/libslic3r/TriangleMesh.hpp index 951e351fe..459917ab9 100644 --- a/src/libslic3r/TriangleMesh.hpp +++ b/src/libslic3r/TriangleMesh.hpp @@ -219,8 +219,8 @@ std::vector its_split(const indexed_triangle_set &its); std::vector its_split(const indexed_triangle_set &its, std::vector &face_neighbors); // Number of disconnected patches (faces are connected if they share an edge, shared edge defined with 2 shared vertex indices). -bool its_number_of_patches(const indexed_triangle_set &its); -bool its_number_of_patches(const indexed_triangle_set &its, const std::vector &face_neighbors); +size_t its_number_of_patches(const indexed_triangle_set &its); +size_t its_number_of_patches(const indexed_triangle_set &its, const std::vector &face_neighbors); // Same as its_number_of_patches(its) > 1, but faster. bool its_is_splittable(const indexed_triangle_set &its); bool its_is_splittable(const indexed_triangle_set &its, const std::vector &face_neighbors); diff --git a/src/libslic3r/TriangleMeshSlicer.cpp b/src/libslic3r/TriangleMeshSlicer.cpp index 83a2be322..38db18043 100644 --- a/src/libslic3r/TriangleMeshSlicer.cpp +++ b/src/libslic3r/TriangleMeshSlicer.cpp @@ -332,7 +332,7 @@ void slice_facet_at_zs( if (min_z != max_z && slice_facet(*it, vertices, indices, edge_ids, idx_vertex_lowest, false, il) == FacetSliceType::Slicing) { assert(il.edge_type != IntersectionLine::FacetEdgeType::Horizontal); size_t slice_id = it - zs.begin(); - boost::lock_guard l(lines_mutex[slice_id >> 6]); + boost::lock_guard l(lines_mutex[slice_id % lines_mutex.size()]); lines[slice_id].emplace_back(il); } } @@ -446,7 +446,7 @@ void slice_facet_with_slabs( auto emit_slab_edge = [&lines, &lines_mutex](IntersectionLine il, size_t slab_id, bool reverse) { if (reverse) il.reverse(); - boost::lock_guard l(lines_mutex[(slab_id + 32) >> 6]); + boost::lock_guard l(lines_mutex[(slab_id + lines_mutex.size() / 2) % lines_mutex.size()]); lines.between_slices[slab_id].emplace_back(il); }; @@ -458,23 +458,33 @@ void slice_facet_with_slabs( // Slicing a horizontal triangle with a slicing plane. The triangle has to be upwards facing for ProjectionFromTop // and downwards facing for ! ProjectionFromTop. assert(min_layer != max_layer); - size_t line_id = min_layer - zs.begin(); - for (int iedge = 0; iedge < 3; ++ iedge) - if (facet_neighbors(iedge) == -1) { - int i = iedge; - int j = next_idx_modulo(i, 3); - assert(vertices[i].z() == zs[line_id]); - assert(vertices[j].z() == zs[line_id]); - IntersectionLine il { - { to_2d(vertices[i]).cast(), to_2d(vertices[j]).cast() }, - indices(i), indices(j), -1, -1, - ProjectionFromTop ? IntersectionLine::FacetEdgeType::Bottom : IntersectionLine::FacetEdgeType::Top - }; - // Don't flip the FacetEdgeType::Top edge, it will be flipped when chaining. - // if (! ProjectionFromTop) il.reverse(); - boost::lock_guard l(lines_mutex[line_id >> 6]); - lines.at_slice[line_id].emplace_back(il); - } + // Slicing plane with which the triangle is coplanar. + size_t slice_id = min_layer - zs.begin(); +#if 0 + // Project the coplanar bottom facing triangles to their slicing plane for both top and bottom facing surfaces. + // This behavior is different from slice_mesh() / slice_mesh_ex(), which do not slice bottom facing faces exactly on slicing plane. + size_t line_id = slice_id; +#else + // Project the coplanar bottom facing triangles to the plane above the slicing plane to match the behavior of slice_mesh() / slice_mesh_ex(), + // where the slicing plane slices the top facing surfaces, but misses the bottom facing surfaces. + if (size_t line_id = ProjectionFromTop ? slice_id : slice_id + 1; ProjectionFromTop || line_id < lines.at_slice.size()) +#endif + for (int iedge = 0; iedge < 3; ++ iedge) + if (facet_neighbors(iedge) == -1) { + int i = iedge; + int j = next_idx_modulo(i, 3); + assert(vertices[i].z() == zs[slice_id]); + assert(vertices[j].z() == zs[slice_id]); + IntersectionLine il { + { to_2d(vertices[i]).cast(), to_2d(vertices[j]).cast() }, + indices(i), indices(j), -1, -1, + ProjectionFromTop ? IntersectionLine::FacetEdgeType::Bottom : IntersectionLine::FacetEdgeType::Top + }; + // Don't flip the FacetEdgeType::Top edge, it will be flipped when chaining. + // if (! ProjectionFromTop) il.reverse(); + boost::lock_guard l(lines_mutex[line_id % lines_mutex.size()]); + lines.at_slice[line_id].emplace_back(il); + } } else { // Triangle is completely between two slicing planes, the triangle may or may not be horizontal, which // does not matter for the processing of such a triangle. @@ -539,6 +549,7 @@ void slice_facet_with_slabs( assert(il.b_id == indices(next_idx_modulo(edge_id, 3))); } else { // The edge is oriented CW along the face perimeter. + assert(type == FacetSliceType::Slicing); assert(il.edge_type == IntersectionLine::FacetEdgeType::Top); edge_id = il.b_id == indices(0) ? 0 : il.b_id == indices(1) ? 1 : 2; assert(il.b_id == indices(edge_id)); @@ -555,8 +566,11 @@ void slice_facet_with_slabs( int num_on_plane = (mesh_vertices[neighbor(0)].z() == z) + (mesh_vertices[neighbor(1)].z() == z) + (mesh_vertices[neighbor(2)].z() == z); assert(num_on_plane == 2 || num_on_plane == 3); #endif // NDEBUG +#if 0 if (mesh_vertices[neighbor(0)].z() == z && mesh_vertices[neighbor(1)].z() == z && mesh_vertices[neighbor(2)].z() == z) { // The neighbor triangle is horizontal. + // Assign the horizontal projections to slicing planes differently from the usual triangle mesh slicing: + // Slicing plane slices top surfaces when projecting from top, it slices bottom surfaces when projecting from bottom. // Is the corner convex or concave? if (il.edge_type == (ProjectionFromTop ? IntersectionLine::FacetEdgeType::Top : IntersectionLine::FacetEdgeType::Bottom)) { // Convex corner. Add this edge to both slabs, the edge is a boundary edge of both the projection patch below and @@ -567,7 +581,12 @@ void slice_facet_with_slabs( // Concave corner. Ignore this edge, it is internal to the projection patch. type = FacetSliceType::Cutting; } - } else if (il.edge_type == IntersectionLine::FacetEdgeType::Top) { + } else +#else + // Project the coplanar bottom facing triangles to the plane above the slicing plane to match the behavior of slice_mesh() / slice_mesh_ex(), + // where the slicing plane slices the top facing surfaces, but misses the bottom facing surfaces. +#endif + if (il.edge_type == IntersectionLine::FacetEdgeType::Top) { // Indicate that the edge belongs to both the slab below and above the plane. assert(type == FacetSliceType::Slicing); il.edge_type = IntersectionLine::FacetEdgeType::TopBottom; @@ -582,7 +601,7 @@ void slice_facet_with_slabs( if (! ProjectionFromTop) il.reverse(); size_t line_id = it - zs.begin(); - boost::lock_guard l(lines_mutex[line_id >> 6]); + boost::lock_guard l(lines_mutex[line_id % lines_mutex.size()]); lines.at_slice[line_id].emplace_back(il); } } @@ -1919,7 +1938,7 @@ void slice_mesh_slabs( #endif // EXPENSIVE_DEBUG_CHECKS std::vector vertices_transformed = transform_mesh_vertices_for_slicing(mesh, trafo); - const bool mirrored = trafo.matrix().determinant() < 0; + const auto mirrored_sign = int64_t(trafo.matrix().block(0, 0, 3, 3).determinant() < 0 ? -1 : 1); std::vector face_orientation(mesh.indices.size(), FaceOrientation::Up); for (const stl_triangle_vertex_indices &tri : mesh.indices) { @@ -1930,7 +1949,7 @@ void slice_mesh_slabs( const Point a = to_2d(fa).cast(); const Point b = to_2d(fb).cast(); const Point c = to_2d(fc).cast(); - const int64_t d = cross2((b - a).cast(), (c - b).cast()) * (mirrored ? -1 : 1); + const int64_t d = cross2((b - a).cast(), (c - b).cast()) * mirrored_sign; FaceOrientation fo = FaceOrientation::Vertical; if (d > 0) fo = FaceOrientation::Up; diff --git a/src/libslic3r/TriangleMeshSlicer.hpp b/src/libslic3r/TriangleMeshSlicer.hpp index 5e08b58e7..fbe724433 100644 --- a/src/libslic3r/TriangleMeshSlicer.hpp +++ b/src/libslic3r/TriangleMeshSlicer.hpp @@ -46,6 +46,17 @@ struct MeshSlicingParamsEx : public MeshSlicingParams double resolution { 0 }; }; +// All the following slicing functions shall produce consistent results with the same mesh, same transformation matrix and slicing parameters. +// Namely, slice_mesh_slabs() shall produce consistent results with slice_mesh() and slice_mesh_ex() in the sense, that projections made by +// slice_mesh_slabs() shall fall onto slicing planes produced by slice_mesh(). +// +// If a slicing plane slices a horizontal face of a mesh exactly, +// an upward facing horizontal face is is considered on slicing plane, +// while a downward facing horizontal face is considered not on slicing plane. +// +// slice_mesh_slabs() thus projects an upward facing horizontal slice to the slicing plane, +// while slice_mesh_slabs() projects a downward facing horizontal slice to the slicing plane above if it exists. + std::vector slice_mesh( const indexed_triangle_set &mesh, const std::vector &zs, diff --git a/src/nanosvg/nanosvg.h b/src/nanosvg/nanosvg.h index b9063213e..4eaff9dad 100644 --- a/src/nanosvg/nanosvg.h +++ b/src/nanosvg/nanosvg.h @@ -165,6 +165,11 @@ typedef struct NSVGimage // Parses SVG file from a file, returns SVG image as paths. NSVGimage* nsvgParseFromFile(const char* filename, const char* units, float dpi); +// Parses SVG file from a file, returns SVG image as paths. +// And makes replases befor parsing +// replace_map containes old_value->new_value +NSVGimage* nsvgParseFromFileWithReplace(const char* filename, const char* units, float dpi, const std::map& replace_map); + // Parses SVG file from a null terminated string, returns SVG image as paths. // Important note: changes the string. NSVGimage* nsvgParse(char* input, const char* units, float dpi); @@ -189,6 +194,8 @@ void nsvgDelete(NSVGimage* image); #include #include +#include + #define NSVG_PI (3.14159265358979323846264338327f) #define NSVG_KAPPA90 (0.5522847493f) // Length proportional to radius of a cubic bezier handle for 90deg arcs. @@ -2901,6 +2908,12 @@ NSVGimage* nsvgParse(char* input, const char* units, float dpi) NSVGimage* nsvgParseFromFile(const char* filename, const char* units, float dpi) { + return nsvgParseFromFileWithReplace(filename, units, dpi, { {} }); +} + +NSVGimage* nsvgParseFromFileWithReplace(const char* filename, const char* units, float dpi, const std::map& replaces) +{ + std::string str; FILE* fp = NULL; size_t size; char* data = NULL; @@ -2916,9 +2929,16 @@ NSVGimage* nsvgParseFromFile(const char* filename, const char* units, float dpi) if (fread(data, 1, size, fp) != size) goto error; data[size] = '\0'; // Must be null terminated. fclose(fp); - image = nsvgParse(data, units, dpi); - free(data); + if(replaces.empty()) + image = nsvgParse(data, units, dpi); + else { + str.assign(data); + for (auto val : replaces) + boost::replace_all(str, val.first, val.second); + image = nsvgParse(str.data(), units, dpi); + } + free(data); return image; error: diff --git a/src/slic3r/Config/Snapshot.cpp b/src/slic3r/Config/Snapshot.cpp index 23713dd11..77a74bffe 100644 --- a/src/slic3r/Config/Snapshot.cpp +++ b/src/slic3r/Config/Snapshot.cpp @@ -22,6 +22,7 @@ #include "../GUI/GUI_App.hpp" #include "../GUI/I18N.hpp" #include "../GUI/MainFrame.hpp" +#include "../GUI/MsgDialog.hpp" #include @@ -591,7 +592,7 @@ bool take_config_snapshot_cancel_on_error(const AppConfig &app_config, Snapshot: SnapshotDB::singleton().take_snapshot(app_config, reason, comment); return true; } catch (std::exception &err) { - wxRichMessageDialog dlg(static_cast(wxGetApp().mainframe), + RichMessageDialog dlg(static_cast(wxGetApp().mainframe), _L("PrusaSlicer has encountered an error while taking a configuration snapshot.") + "\n\n" + from_u8(err.what()) + "\n\n" + from_u8(message), _L("PrusaSlicer error"), wxYES_NO); diff --git a/src/slic3r/GUI/3DBed.cpp b/src/slic3r/GUI/3DBed.cpp index 8e6867311..ee2fb2e69 100644 --- a/src/slic3r/GUI/3DBed.cpp +++ b/src/slic3r/GUI/3DBed.cpp @@ -5,7 +5,7 @@ #include "libslic3r/Polygon.hpp" #include "libslic3r/ClipperUtils.hpp" #include "libslic3r/BoundingBox.hpp" -#include "libslic3r/Geometry.hpp" +#include "libslic3r/Geometry/Circle.hpp" #include "libslic3r/Tesselate.hpp" #include "libslic3r/PresetBundle.hpp" diff --git a/src/slic3r/GUI/3DScene.cpp b/src/slic3r/GUI/3DScene.cpp index c8e72ba39..6bceaec09 100644 --- a/src/slic3r/GUI/3DScene.cpp +++ b/src/slic3r/GUI/3DScene.cpp @@ -990,22 +990,24 @@ bool GLVolumeCollection::check_outside_state(const DynamicPrintConfig* config, M } }; - auto check_against_circular_bed = [](GLVolume& volume, ModelInstanceEPrintVolumeState& state, const Vec2d& center, double radius) { - const TriangleMesh* mesh = (volume.is_sinking() && volume.object_idx() != -1 && volume.volume_idx() != -1)? &GUI::wxGetApp().plater()->model().objects[volume.object_idx()]->volumes[volume.volume_idx()]->mesh() : volume.convex_hull(); - //FIXME 2D convex hull is O(n log n), while testing the 2D points against 2D circle is O(n). - const Polygon volume_hull_2d = its_convex_hull_2d_above(mesh->its, volume.world_matrix().cast(), 0.0f); - size_t outside_count = 0; + auto check_against_circular_bed = [bed_height](GLVolume& volume, ModelInstanceEPrintVolumeState& state, const Vec2d& center, double radius) { + const TriangleMesh* mesh = (volume.is_sinking() && volume.object_idx() != -1 && volume.volume_idx() != -1) ? &GUI::wxGetApp().plater()->model().objects[volume.object_idx()]->volumes[volume.volume_idx()]->mesh() : volume.convex_hull(); const double sq_radius = sqr(radius); - for (const Point& p : volume_hull_2d.points) { - if (sq_radius < (unscale(p) - center).squaredNorm()) - ++outside_count; + size_t outside_count = 0; + size_t valid_count = 0; + for (const Vec3f& v : mesh->its.vertices) { + const Vec3f world_v = volume.world_matrix().cast() * v; + if (0.0f <= world_v.z()) { + ++valid_count; + if (sq_radius < sqr(world_v.x() - center.x()) + sqr(world_v.y() - center.y()) || bed_height < world_v.z()) + ++outside_count; + } } - volume.is_outside = outside_count > 0; if (volume.printable) { if (state == ModelInstancePVS_Inside && volume.is_outside) state = ModelInstancePVS_Fully_Outside; - if (state == ModelInstancePVS_Fully_Outside && volume.is_outside && outside_count < volume_hull_2d.size()) + if (state == ModelInstancePVS_Fully_Outside && volume.is_outside && outside_count < valid_count) state = ModelInstancePVS_Partly_Outside; } }; @@ -1129,29 +1131,41 @@ void GLVolumeCollection::update_colors_by_extruder(const DynamicPrintConfig* con if (config == nullptr) return; - const ConfigOptionStrings* extruders_opt = dynamic_cast(config->option("extruder_colour")); - if (extruders_opt == nullptr) - return; - - const ConfigOptionStrings* filamemts_opt = dynamic_cast(config->option("filament_colour")); - if (filamemts_opt == nullptr) - return; - - unsigned int colors_count = std::max((unsigned int)extruders_opt->values.size(), (unsigned int)filamemts_opt->values.size()); - if (colors_count == 0) - return; - - std::vector colors(colors_count); - unsigned char rgb[3]; - for (unsigned int i = 0; i < colors_count; ++i) { - const std::string& txt_color = config->opt_string("extruder_colour", i); - if (Slic3r::GUI::BitmapCache::parse_color(txt_color, rgb)) - colors[i].set(txt_color, rgb); - else { - const std::string& txt_color = config->opt_string("filament_colour", i); + std::vector colors; + + if (static_cast(config->opt_int("printer_technology")) == ptSLA) + { + const std::string& txt_color = config->opt_string("material_colour"); + if (Slic3r::GUI::BitmapCache::parse_color(txt_color, rgb)) { + colors.resize(1); + colors[0].set(txt_color, rgb); + } + } + else + { + const ConfigOptionStrings* extruders_opt = dynamic_cast(config->option("extruder_colour")); + if (extruders_opt == nullptr) + return; + + const ConfigOptionStrings* filamemts_opt = dynamic_cast(config->option("filament_colour")); + if (filamemts_opt == nullptr) + return; + + unsigned int colors_count = std::max((unsigned int)extruders_opt->values.size(), (unsigned int)filamemts_opt->values.size()); + if (colors_count == 0) + return; + colors.resize(colors_count); + + for (unsigned int i = 0; i < colors_count; ++i) { + const std::string& txt_color = config->opt_string("extruder_colour", i); if (Slic3r::GUI::BitmapCache::parse_color(txt_color, rgb)) colors[i].set(txt_color, rgb); + else { + const std::string& txt_color = config->opt_string("filament_colour", i); + if (Slic3r::GUI::BitmapCache::parse_color(txt_color, rgb)) + colors[i].set(txt_color, rgb); + } } } diff --git a/src/slic3r/GUI/BitmapCache.cpp b/src/slic3r/GUI/BitmapCache.cpp index 2c756c3b9..749fc5ef2 100644 --- a/src/slic3r/GUI/BitmapCache.cpp +++ b/src/slic3r/GUI/BitmapCache.cpp @@ -261,51 +261,28 @@ wxBitmap* BitmapCache::load_png(const std::string &bitmap_name, unsigned width, } wxBitmap* BitmapCache::load_svg(const std::string &bitmap_name, unsigned target_width, unsigned target_height, - const bool grayscale/* = false*/, const bool dark_mode/* = false*/) + const bool grayscale/* = false*/, const bool dark_mode/* = false*/, const std::string& new_color /*= ""*/) { std::string bitmap_key = bitmap_name + ( target_height !=0 ? "-h" + std::to_string(target_height) : "-w" + std::to_string(target_width)) + (m_scale != 1.0f ? "-s" + float_to_string_decimal_point(m_scale) : "") - + (grayscale ? "-gs" : ""); + + (dark_mode ? "-dm" : "") + + (grayscale ? "-gs" : "") + + new_color; - /* For the Dark mode of any platform, we should draw icons in respect to OS background - * Note: All standard(regular) icons are collected in "icons" folder, - * SVG-icons, which have "Dark mode" variant, are collected in "icons/white" folder - */ - std::string folder; + auto it = m_map.find(bitmap_key); + if (it != m_map.end()) + return it->second; + + // map of color replaces + std::map replaces; if (dark_mode) - { -#ifdef __WXMSW__ - folder = "white\\"; -#else - folder = "white/"; -#endif - auto it = m_map.find(folder + bitmap_key); - if (it != m_map.end()) - return it->second; - // It's expensive to check if the bitmap exists every time, but otherwise: - // For the case, when application was started in Light mode and then switched to the Dark, - // we will never get a white bitmaps, if check m_map.find(bitmap_key) - // before boost::filesystem::exists(var(folder + bitmap_name + ".svg")) - if (!boost::filesystem::exists(var(folder + bitmap_name + ".svg"))) { - folder.clear(); - - it = m_map.find(bitmap_key); - if (it != m_map.end()) - return it->second; - } + replaces["#808080"] = "#FFFFFF"; + if (!new_color.empty()) + replaces["#ED6B21"] = new_color; - bitmap_key = folder + bitmap_key; - } - else - { - auto it = m_map.find(bitmap_key); - if (it != m_map.end()) - return it->second; - } - - NSVGimage *image = ::nsvgParseFromFile(Slic3r::var(folder + bitmap_name + ".svg").c_str(), "px", 96.0f); + NSVGimage *image = ::nsvgParseFromFileWithReplace(Slic3r::var(bitmap_name + ".svg").c_str(), "px", 96.0f, replaces); if (image == nullptr) return nullptr; diff --git a/src/slic3r/GUI/BitmapCache.hpp b/src/slic3r/GUI/BitmapCache.hpp index 8147de996..5fa8643b5 100644 --- a/src/slic3r/GUI/BitmapCache.hpp +++ b/src/slic3r/GUI/BitmapCache.hpp @@ -33,7 +33,7 @@ public: // Load png from resources/icons. bitmap_key is given without the .png suffix. Bitmap will be rescaled to provided height/width if nonzero. wxBitmap* load_png(const std::string &bitmap_key, unsigned width = 0, unsigned height = 0, const bool grayscale = false); // Load svg from resources/icons. bitmap_key is given without the .svg suffix. SVG will be rasterized to provided height/width. - wxBitmap* load_svg(const std::string &bitmap_key, unsigned width = 0, unsigned height = 0, const bool grayscale = false, const bool dark_mode = false); + wxBitmap* load_svg(const std::string &bitmap_key, unsigned width = 0, unsigned height = 0, const bool grayscale = false, const bool dark_mode = false, const std::string& new_color = ""); wxBitmap mksolid(size_t width, size_t height, unsigned char r, unsigned char g, unsigned char b, unsigned char transparency, bool suppress_scaling = false, size_t border_width = 0, bool dark_mode = false); wxBitmap mksolid(size_t width, size_t height, const unsigned char rgb[3], bool suppress_scaling = false, size_t border_width = 0, bool dark_mode = false) { return mksolid(width, height, rgb[0], rgb[1], rgb[2], wxALPHA_OPAQUE, suppress_scaling, border_width, dark_mode); } diff --git a/src/slic3r/GUI/BonjourDialog.cpp b/src/slic3r/GUI/BonjourDialog.cpp index be0e20eb2..516b1ab4a 100644 --- a/src/slic3r/GUI/BonjourDialog.cpp +++ b/src/slic3r/GUI/BonjourDialog.cpp @@ -53,7 +53,7 @@ struct LifetimeGuard BonjourDialog::BonjourDialog(wxWindow *parent, Slic3r::PrinterTechnology tech) : wxDialog(parent, wxID_ANY, _(L("Network lookup")), wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER) - , list(new wxListView(this, wxID_ANY)) + , list(new wxListView(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLC_REPORT|wxSIMPLE_BORDER)) , replies(new ReplySet) , label(new wxStaticText(this, wxID_ANY, "")) , timer(new wxTimer()) diff --git a/src/slic3r/GUI/ConfigManipulation.cpp b/src/slic3r/GUI/ConfigManipulation.cpp index 070773c11..0b2af37b8 100644 --- a/src/slic3r/GUI/ConfigManipulation.cpp +++ b/src/slic3r/GUI/ConfigManipulation.cpp @@ -160,12 +160,10 @@ void ConfigManipulation::update_print_fff_config(DynamicPrintConfig* config, con apply(config, &new_conf); } - static bool support_material_overhangs_queried = false; - if (config->opt_bool("support_material")) { // Ask only once. - if (!support_material_overhangs_queried) { - support_material_overhangs_queried = true; + if (!m_support_material_overhangs_queried) { + m_support_material_overhangs_queried = true; if (!config->opt_bool("overhangs")/* != 1*/) { wxString msg_text = _(L("Supports work better, if the following feature is enabled:\n" "- Detect bridging perimeters")); @@ -184,7 +182,7 @@ void ConfigManipulation::update_print_fff_config(DynamicPrintConfig* config, con } } else { - support_material_overhangs_queried = false; + m_support_material_overhangs_queried = false; } if (config->option("fill_density")->value == 100) { diff --git a/src/slic3r/GUI/ConfigManipulation.hpp b/src/slic3r/GUI/ConfigManipulation.hpp index 1e91dbec2..0b50c8ab0 100644 --- a/src/slic3r/GUI/ConfigManipulation.hpp +++ b/src/slic3r/GUI/ConfigManipulation.hpp @@ -21,6 +21,9 @@ class ConfigManipulation { bool is_msg_dlg_already_exist{ false }; + bool m_support_material_overhangs_queried{false}; + bool m_is_initialized_support_material_overhangs_queried{ false }; + // function to loading of changed configuration std::function load_config = nullptr; std::function cb_toggle_field = nullptr; @@ -55,6 +58,13 @@ public: // SLA print void update_print_sla_config(DynamicPrintConfig* config, const bool is_global_config = false); void toggle_print_sla_options(DynamicPrintConfig* config); + + bool is_initialized_support_material_overhangs_queried() { return m_is_initialized_support_material_overhangs_queried; } + void initialize_support_material_overhangs_queried(bool queried) + { + m_is_initialized_support_material_overhangs_queried = true; + m_support_material_overhangs_queried = queried; + } }; } // GUI diff --git a/src/slic3r/GUI/ConfigWizard.cpp b/src/slic3r/GUI/ConfigWizard.cpp index 4d50e1490..04cb7d558 100644 --- a/src/slic3r/GUI/ConfigWizard.cpp +++ b/src/slic3r/GUI/ConfigWizard.cpp @@ -27,6 +27,10 @@ #include #include +#ifdef _MSW_DARK_MODE +#include +#endif // _MSW_DARK_MODE + #include "libslic3r/Platform.hpp" #include "libslic3r/Utils.hpp" #include "libslic3r/Config.hpp" @@ -551,11 +555,13 @@ PagePrinters::PagePrinters(ConfigWizard *parent, wizard_p()->on_printer_pick(this, evt); }); - append(new wxStaticLine(this)); + append(new StaticLine(this)); append(picker); printer_pickers.push_back(picker); + has_printers = true; } + } void PagePrinters::select_all(bool select, bool alternates) @@ -595,7 +601,7 @@ std::set PagePrinters::get_selected_models() void PagePrinters::set_run_reason(ConfigWizard::RunReason run_reason) { - if (technology == T_FFF + if (is_primary_printer_page && (run_reason == ConfigWizard::RR_DATA_EMPTY || run_reason == ConfigWizard::RR_DATA_LEGACY) && printer_pickers.size() > 0 && printer_pickers[0]->vendor_id == PresetBundle::PRUSA_BUNDLE) { @@ -1202,7 +1208,7 @@ PageUpdate::PageUpdate(ConfigWizard *parent) boldfont.SetWeight(wxFONTWEIGHT_BOLD); auto *box_slic3r = new wxCheckBox(this, wxID_ANY, _L("Check for application updates")); - box_slic3r->SetValue(app_config->get("version_check") == "1"); + box_slic3r->SetValue(app_config->get("notify_release") != "none"); append(box_slic3r); append_text(wxString::Format(_L( "If enabled, %s checks for new application versions online. When a new version becomes available, " @@ -1900,25 +1906,28 @@ void ConfigWizard::priv::load_pages() index->add_page(page_welcome); // Printers - index->add_page(page_fff); + if (!only_sla_mode) + index->add_page(page_fff); index->add_page(page_msla); - index->add_page(page_vendors); - for (const auto &pages : pages_3rdparty) { - for ( PagePrinters* page : { pages.second.first, pages.second.second }) - if (page && page->install) - index->add_page(page); - } - - index->add_page(page_custom); - if (page_custom->custom_wanted()) { - index->add_page(page_firmware); - index->add_page(page_bed); - index->add_page(page_diams); - index->add_page(page_temps); - } + if (!only_sla_mode) { + index->add_page(page_vendors); + for (const auto &pages : pages_3rdparty) { + for ( PagePrinters* page : { pages.second.first, pages.second.second }) + if (page && page->install) + index->add_page(page); + } + index->add_page(page_custom); + if (page_custom->custom_wanted()) { + index->add_page(page_firmware); + index->add_page(page_bed); + index->add_page(page_diams); + index->add_page(page_temps); + } + // Filaments & Materials - if (any_fff_selected) { index->add_page(page_filaments); } + if (any_fff_selected) { index->add_page(page_filaments); } + } if (any_sla_selected) { index->add_page(page_sla_materials); } // there should to be selected at least one printer @@ -1934,6 +1943,8 @@ void ConfigWizard::priv::load_pages() index->go_to(former_active); // Will restore the active item/page if possible q->Layout(); +// This Refresh() is needed to avoid ugly artifacts after printer selection, when no one vendor was selected from the very beginnig + q->Refresh(); } void ConfigWizard::priv::init_dialog_size() @@ -1950,7 +1961,7 @@ void ConfigWizard::priv::init_dialog_size() 9*disp_rect.width / 10, 9*disp_rect.height / 10); - const int width_hint = index->GetSize().GetWidth() + page_fff->get_width() + 30 * em(); // XXX: magic constant, I found no better solution + const int width_hint = index->GetSize().GetWidth() + std::max(90 * em(), (only_sla_mode ? page_msla->get_width() : page_fff->get_width()) + 30 * em()); // XXX: magic constant, I found no better solution if (width_hint < window_rect.width) { window_rect.x += (window_rect.width - width_hint) / 2; window_rect.width = width_hint; @@ -2691,7 +2702,7 @@ bool ConfigWizard::priv::apply_config(AppConfig *app_config, PresetBundle *prese app_config->set_vendors(appconfig_new); - app_config->set("version_check", page_update->version_check ? "1" : "0"); + app_config->set("notify_release", page_update->version_check ? "all" : "none"); app_config->set("preset_update", page_update->preset_update ? "1" : "0"); app_config->set("export_sources_full_pathnames", page_reload_from_disk->full_pathnames ? "1" : "0"); @@ -2719,7 +2730,7 @@ bool ConfigWizard::priv::apply_config(AppConfig *app_config, PresetBundle *prese preset_bundle->load_presets(*app_config, ForwardCompatibilitySubstitutionRule::EnableSilentDisableSystem, {preferred_model, preferred_variant, first_added_filament, first_added_sla_material}); - if (page_custom->custom_wanted()) { + if (!only_sla_mode && page_custom->custom_wanted()) { // if unsaved changes was not cheched till this moment if (!check_unsaved_preset_changes && !wxGetApp().check_and_keep_current_preset_changes(caption, _L("Custom printer was installed and it will be activated."), act_btns, &apply_keeped_changes)) @@ -2794,7 +2805,7 @@ ConfigWizard::ConfigWizard(wxWindow *parent) auto *vsizer = new wxBoxSizer(wxVERTICAL); auto *topsizer = new wxBoxSizer(wxHORIZONTAL); - auto *hline = new wxStaticLine(this); + auto* hline = new StaticLine(this); p->btnsizer = new wxBoxSizer(wxHORIZONTAL); // Initially we _do not_ SetScrollRate in order to figure out the overall width of the Wizard without scrolling. @@ -2832,25 +2843,38 @@ ConfigWizard::ConfigWizard(wxWindow *parent) p->add_page(p->page_welcome = new PageWelcome(this)); + p->page_fff = new PagePrinters(this, _L("Prusa FFF Technology Printers"), "Prusa FFF", *vendor_prusa, 0, T_FFF); - p->add_page(p->page_fff); + p->only_sla_mode = !p->page_fff->has_printers; + if (!p->only_sla_mode) { + p->add_page(p->page_fff); + p->page_fff->is_primary_printer_page = true; + } + p->page_msla = new PagePrinters(this, _L("Prusa MSLA Technology Printers"), "Prusa MSLA", *vendor_prusa, 0, T_SLA); p->add_page(p->page_msla); + if (p->only_sla_mode) { + p->page_msla->is_primary_printer_page = true; + } - // Pages for 3rd party vendors - p->create_3rdparty_pages(); // Needs to be done _before_ creating PageVendors - p->add_page(p->page_vendors = new PageVendors(this)); - p->add_page(p->page_custom = new PageCustom(this)); - p->custom_printer_selected = p->page_custom->custom_wanted(); + if (!p->only_sla_mode) { + // Pages for 3rd party vendors + p->create_3rdparty_pages(); // Needs to be done _before_ creating PageVendors + p->add_page(p->page_vendors = new PageVendors(this)); + p->add_page(p->page_custom = new PageCustom(this)); + p->custom_printer_selected = p->page_custom->custom_wanted(); + } p->any_sla_selected = p->check_sla_selected(); - p->any_fff_selected = p->check_fff_selected(); + if (p->only_sla_mode) + p->any_fff_selected = p->check_fff_selected(); p->update_materials(T_ANY); + if (!p->only_sla_mode) + p->add_page(p->page_filaments = new PageMaterials(this, &p->filaments, + _L("Filament Profiles Selection"), _L("Filaments"), _L("Type:") )); - p->add_page(p->page_filaments = new PageMaterials(this, &p->filaments, - _L("Filament Profiles Selection"), _L("Filaments"), _L("Type:") )); p->add_page(p->page_sla_materials = new PageMaterials(this, &p->sla_materials, _L("SLA Material Profiles Selection") + " ", _L("SLA Materials"), _L("Type:") )); @@ -2870,7 +2894,7 @@ ConfigWizard::ConfigWizard(wxWindow *parent) p->index->go_to(size_t{0}); vsizer->Add(topsizer, 1, wxEXPAND | wxALL, DIALOG_MARGIN); - vsizer->Add(hline, 0, wxEXPAND); + vsizer->Add(hline, 0, wxEXPAND | wxLEFT | wxRIGHT, VERTICAL_SPACING); vsizer->Add(p->btnsizer, 0, wxEXPAND | wxALL, DIALOG_MARGIN); SetSizer(vsizer); diff --git a/src/slic3r/GUI/ConfigWizard_private.hpp b/src/slic3r/GUI/ConfigWizard_private.hpp index d4b1fac04..c822a2be8 100644 --- a/src/slic3r/GUI/ConfigWizard_private.hpp +++ b/src/slic3r/GUI/ConfigWizard_private.hpp @@ -257,6 +257,9 @@ struct PagePrinters: ConfigWizardPage std::string get_vendor_id() const { return printer_pickers.empty() ? "" : printer_pickers[0]->vendor_id; } virtual void set_run_reason(ConfigWizard::RunReason run_reason) override; + + bool has_printers { false }; + bool is_primary_printer_page { false }; }; // Here we extend wxListBox and wxCheckListBox @@ -548,7 +551,9 @@ struct ConfigWizard::priv std::unique_ptr custom_config; // Backing for custom printer definition bool any_fff_selected; // Used to decide whether to display Filaments page bool any_sla_selected; // Used to decide whether to display SLA Materials page - bool custom_printer_selected; + bool custom_printer_selected { false }; + // Set to true if there are none FFF printers on the main FFF page. If true, only SLA printers are shown (not even custum printers) + bool only_sla_mode { false }; wxScrolledWindow *hscroll = nullptr; wxBoxSizer *hscroll_sizer = nullptr; diff --git a/src/slic3r/GUI/Field.cpp b/src/slic3r/GUI/Field.cpp index 7dbb9d787..0a5635630 100644 --- a/src/slic3r/GUI/Field.cpp +++ b/src/slic3r/GUI/Field.cpp @@ -414,7 +414,7 @@ void Field::sys_color_changed() template bool is_defined_input_value(wxWindow* win, const ConfigOptionType& type) { - if (!win || (static_cast(win)->GetValue().empty() && type != coString && type != coStrings)) + if (!win || (static_cast(win)->GetValue().empty() && type != coString && type != coStrings && type != coPoints)) return false; return true; } @@ -1320,7 +1320,7 @@ void ColourPicker::BUILD() if (m_opt.width >= 0) size.SetWidth(m_opt.width*m_em_unit); // Validate the color - wxString clr_str(m_opt.get_default_value()->get_at(m_opt_idx)); + wxString clr_str(m_opt.type == coString ? m_opt.get_default_value()->value : m_opt.get_default_value()->get_at(m_opt_idx)); wxColour clr(clr_str); if (clr_str.IsEmpty() || !clr.IsOk()) { clr = wxTransparentColour; diff --git a/src/slic3r/GUI/GCodeViewer.cpp b/src/slic3r/GUI/GCodeViewer.cpp index 8aa5b0bff..0170191af 100644 --- a/src/slic3r/GUI/GCodeViewer.cpp +++ b/src/slic3r/GUI/GCodeViewer.cpp @@ -313,8 +313,12 @@ void GCodeViewer::SequentialView::Marker::render() const if (width != last_window_width || length != last_text_length) { last_window_width = width; last_text_length = length; +#if ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT + imgui.set_requires_extra_frame(); +#else wxGetApp().plater()->get_current_canvas3D()->set_as_dirty(); wxGetApp().plater()->get_current_canvas3D()->request_extra_frame(); +#endif // ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT } imgui.end(); @@ -3466,8 +3470,12 @@ void GCodeViewer::render_legend(float& legend_height) ImGui::PushStyleVar(ImGuiStyleVar_Alpha, 0.3333f); // to avoid the tooltip to change size when moving the mouse +#if ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT + imgui.set_requires_extra_frame(); +#else wxGetApp().plater()->get_current_canvas3D()->set_as_dirty(); wxGetApp().plater()->get_current_canvas3D()->request_extra_frame(); +#endif // ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT } } @@ -4327,8 +4335,12 @@ void GCodeViewer::render_legend(float& legend_height) if (m_view_type == EViewType::LayerTimeLinear || m_view_type == EViewType::LayerTimeLogarithmic) refresh_render_paths(false, false); #endif // ENABLE_PREVIEW_LAYER_TIME +#if ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT + imgui.set_requires_extra_frame(); +#else wxGetApp().plater()->get_current_canvas3D()->set_as_dirty(); wxGetApp().plater()->get_current_canvas3D()->request_extra_frame(); +#endif // ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT } } }; diff --git a/src/slic3r/GUI/GLCanvas3D.cpp b/src/slic3r/GUI/GLCanvas3D.cpp index f39649cd9..e4fb6fa36 100644 --- a/src/slic3r/GUI/GLCanvas3D.cpp +++ b/src/slic3r/GUI/GLCanvas3D.cpp @@ -24,6 +24,7 @@ #include "slic3r/GUI/Plater.hpp" #include "slic3r/GUI/MainFrame.hpp" #include "slic3r/Utils/UndoRedo.hpp" +#include "slic3r/GUI/Gizmos/GLGizmoPainterBase.hpp" #include "GUI_App.hpp" #include "GUI_ObjectList.hpp" @@ -722,8 +723,13 @@ void GLCanvas3D::Labels::render(const std::vector& sorted_ } // force re-render while the windows gets to its final size (it takes several frames) +#if ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT + if (ImGui::GetWindowContentRegionWidth() + 2.0f * ImGui::GetStyle().WindowPadding.x != ImGui::CalcWindowNextAutoFitSize(ImGui::GetCurrentWindow()).x) + imgui.set_requires_extra_frame(); +#else if (ImGui::GetWindowContentRegionWidth() + 2.0f * ImGui::GetStyle().WindowPadding.x != ImGui::CalcWindowNextAutoFitSize(ImGui::GetCurrentWindow()).x) m_canvas.request_extra_frame(); +#endif // ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT imgui.end(); ImGui::PopStyleColor(); @@ -734,47 +740,48 @@ void GLCanvas3D::Labels::render(const std::vector& sorted_ void GLCanvas3D::Tooltip::set_text(const std::string& text) { // If the mouse is inside an ImGUI dialog, then the tooltip is suppressed. - const std::string &new_text = m_in_imgui ? std::string() : text; - if (m_text != new_text) { - if (m_text.empty()) - m_start_time = std::chrono::steady_clock::now(); - - m_text = new_text; - } + m_text = m_in_imgui ? std::string() : text; } -void GLCanvas3D::Tooltip::render(const Vec2d& mouse_position, GLCanvas3D& canvas) const +void GLCanvas3D::Tooltip::render(const Vec2d& mouse_position, GLCanvas3D& canvas) { static ImVec2 size(0.0f, 0.0f); auto validate_position = [](const Vec2d& position, const GLCanvas3D& canvas, const ImVec2& wnd_size) { - Size cnv_size = canvas.get_canvas_size(); - float x = std::clamp((float)position(0), 0.0f, (float)cnv_size.get_width() - wnd_size.x); - float y = std::clamp((float)position(1) + 16, 0.0f, (float)cnv_size.get_height() - wnd_size.y); + const Size cnv_size = canvas.get_canvas_size(); + const float x = std::clamp((float)position.x(), 0.0f, (float)cnv_size.get_width() - wnd_size.x); + const float y = std::clamp((float)position.y() + 16.0f, 0.0f, (float)cnv_size.get_height() - wnd_size.y); return Vec2f(x, y); }; - if (m_text.empty()) + if (m_text.empty()) { + m_start_time = std::chrono::steady_clock::now(); return; + } // draw the tooltip as hidden until the delay is expired // use a value of alpha slightly different from 0.0f because newer imgui does not calculate properly the window size if alpha == 0.0f - float alpha = (std::chrono::duration_cast(std::chrono::steady_clock::now() - m_start_time).count() < 500) ? 0.01f : 1.0f; + const float alpha = (std::chrono::duration_cast(std::chrono::steady_clock::now() - m_start_time).count() < 500) ? 0.01f : 1.0f; - Vec2f position = validate_position(mouse_position, canvas, size); + const Vec2f position = validate_position(mouse_position, canvas, size); ImGuiWrapper& imgui = *wxGetApp().imgui(); ImGui::PushStyleVar(ImGuiStyleVar_WindowRounding, 0.0f); ImGui::PushStyleVar(ImGuiStyleVar_Alpha, alpha); - imgui.set_next_window_pos(position(0), position(1), ImGuiCond_Always, 0.0f, 0.0f); + imgui.set_next_window_pos(position.x(), position.y(), ImGuiCond_Always, 0.0f, 0.0f); imgui.begin(wxString("canvas_tooltip"), ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_NoMouseInputs | ImGuiWindowFlags_NoMove | ImGuiWindowFlags_NoDecoration | ImGuiWindowFlags_NoFocusOnAppearing); ImGui::BringWindowToDisplayFront(ImGui::GetCurrentWindow()); ImGui::TextUnformatted(m_text.c_str()); // force re-render while the windows gets to its final size (it may take several frames) or while hidden +#if ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT + if (alpha < 1.0f || ImGui::GetWindowContentRegionWidth() + 2.0f * ImGui::GetStyle().WindowPadding.x != ImGui::CalcWindowNextAutoFitSize(ImGui::GetCurrentWindow()).x) + imgui.set_requires_extra_frame(); +#else if (alpha < 1.0f || ImGui::GetWindowContentRegionWidth() + 2.0f * ImGui::GetStyle().WindowPadding.x != ImGui::CalcWindowNextAutoFitSize(ImGui::GetCurrentWindow()).x) canvas.request_extra_frame(); +#endif // ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT size = ImGui::GetWindowSize(); @@ -1137,7 +1144,7 @@ void GLCanvas3D::toggle_sla_auxiliaries_visibility(bool visible, const ModelObje } } -void GLCanvas3D::toggle_model_objects_visibility(bool visible, const ModelObject* mo, int instance_idx) +void GLCanvas3D::toggle_model_objects_visibility(bool visible, const ModelObject* mo, int instance_idx, const ModelVolume* mv) { for (GLVolume* vol : m_volumes.volumes) { if (vol->composite_id.object_id == 1000) { // wipe tower @@ -1145,7 +1152,8 @@ void GLCanvas3D::toggle_model_objects_visibility(bool visible, const ModelObject } else { if ((mo == nullptr || m_model->objects[vol->composite_id.object_id] == mo) - && (instance_idx == -1 || vol->composite_id.instance_id == instance_idx)) { + && (instance_idx == -1 || vol->composite_id.instance_id == instance_idx) + && (mv == nullptr || m_model->objects[vol->composite_id.object_id]->volumes[vol->composite_id.volume_id] == mv)) { vol->is_active = visible; if (instance_idx == -1) { @@ -2159,10 +2167,18 @@ void GLCanvas3D::load_preview(const std::vector& str_tool_colors, c // Release OpenGL data before generating new data. this->reset_volumes(); +#if ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS + bool requires_convex_hulls = wxGetApp().plater()->get_bed().get_shape_type() != Bed3D::EShapeType::Rectangle; + _load_print_toolpaths(requires_convex_hulls); + _load_wipe_tower_toolpaths(str_tool_colors, requires_convex_hulls); + for (const PrintObject* object : print->objects()) + _load_print_object_toolpaths(*object, str_tool_colors, color_print_values, requires_convex_hulls); +#else _load_print_toolpaths(); _load_wipe_tower_toolpaths(str_tool_colors); for (const PrintObject* object : print->objects()) _load_print_object_toolpaths(*object, str_tool_colors, color_print_values); +#endif // ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS _update_toolpath_volumes_outside_state(); _set_warning_notification_if_needed(EWarning::ToolpathOutside); @@ -2251,14 +2267,29 @@ void GLCanvas3D::on_idle(wxIdleEvent& evt) m_dirty |= wxGetApp().plater()->get_notification_manager()->update_notifications(*this); auto gizmo = wxGetApp().plater()->canvas3D()->get_gizmos_manager().get_current(); if (gizmo != nullptr) m_dirty |= gizmo->update_items_state(); +#if ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT + // ImGuiWrapper::m_requires_extra_frame may have been set by a render made outside of the OnIdle mechanism + bool imgui_requires_extra_frame = wxGetApp().imgui()->requires_extra_frame(); + m_dirty |= imgui_requires_extra_frame; +#endif // ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT if (!m_dirty) return; +#if ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT + // this needs to be done here. + // during the render launched by the refresh the value may be set again + wxGetApp().imgui()->reset_requires_extra_frame(); +#endif // ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT + _refresh_if_shown_on_screen(); +#if ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT + if (m_extra_frame_requested || mouse3d_controller_applied || imgui_requires_extra_frame || wxGetApp().imgui()->requires_extra_frame()) { +#else if (m_extra_frame_requested || mouse3d_controller_applied) { m_dirty = true; +#endif // ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT m_extra_frame_requested = false; evt.RequestMore(); } @@ -3903,7 +3934,7 @@ void GLCanvas3D::update_sequential_clearance() bool GLCanvas3D::is_object_sinking(int object_idx) const { for (const GLVolume* v : m_volumes.volumes) { - if (v->object_idx() == object_idx && v->is_sinking()) + if (v->object_idx() == object_idx && (v->is_sinking() || (!v->is_modifier && v->is_below_printbed()))) return true; } return false; @@ -4184,7 +4215,7 @@ void GLCanvas3D::_render_thumbnail_internal(ThumbnailData& thumbnail_data, const shader->set_uniform("emission_factor", 0.0f); for (GLVolume* vol : visible_volumes) { - shader->set_uniform("uniform_color", (vol->printable && !vol->is_outside) ? orange : gray); + shader->set_uniform("uniform_color", (vol->printable && !vol->is_outside) ? (current_printer_technology() == ptSLA ? vol->color : orange) : gray); // the volume may have been deactivated by an active gizmo bool is_active = vol->is_active; vol->is_active = true; @@ -5226,10 +5257,7 @@ void GLCanvas3D::_render_objects(GLVolumeCollection::ERenderType type) { const GLGizmosManager& gm = get_gizmos_manager(); GLGizmosManager::EType type = gm.get_current_type(); - if (type == GLGizmosManager::FdmSupports - || type == GLGizmosManager::Seam - || type == GLGizmosManager::MmuSegmentation - || type == GLGizmosManager::Simplify ) { + if (dynamic_cast(gm.get_current())) { shader->stop_using(); gm.render_painter_gizmo(); shader->start_using(); @@ -5820,7 +5848,11 @@ void GLCanvas3D::_stop_timer() m_timer.Stop(); } +#if ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS +void GLCanvas3D::_load_print_toolpaths(bool generate_convex_hulls) +#else void GLCanvas3D::_load_print_toolpaths() +#endif // ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS { const Print *print = this->fff_print(); if (print == nullptr) @@ -5874,12 +5906,17 @@ void GLCanvas3D::_load_print_toolpaths() } } #if ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS - volume->calc_convex_hull_3d(); + if (generate_convex_hulls) + volume->calc_convex_hull_3d(); #endif // ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS volume->indexed_vertex_array.finalize_geometry(m_initialized); } +#if ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS +void GLCanvas3D::_load_print_object_toolpaths(const PrintObject& print_object, const std::vector& str_tool_colors, const std::vector& color_print_values, bool generate_convex_hulls) +#else void GLCanvas3D::_load_print_object_toolpaths(const PrintObject& print_object, const std::vector& str_tool_colors, const std::vector& color_print_values) +#endif // ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS { std::vector> tool_colors = _parse_colors(str_tool_colors); @@ -6169,7 +6206,8 @@ void GLCanvas3D::_load_print_object_toolpaths(const PrintObject& print_object, c #if ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS for (size_t i = volumes_cnt_initial; i < m_volumes.volumes.size(); ++i) { GLVolume* v = m_volumes.volumes[i]; - v->calc_convex_hull_3d(); + if (generate_convex_hulls) + v->calc_convex_hull_3d(); v->indexed_vertex_array.finalize_geometry(m_initialized); } #else @@ -6180,7 +6218,11 @@ void GLCanvas3D::_load_print_object_toolpaths(const PrintObject& print_object, c BOOST_LOG_TRIVIAL(debug) << "Loading print object toolpaths in parallel - end" << m_volumes.log_memory_info() << log_memory_info(); } +#if ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS +void GLCanvas3D::_load_wipe_tower_toolpaths(const std::vector& str_tool_colors, bool generate_convex_hulls) +#else void GLCanvas3D::_load_wipe_tower_toolpaths(const std::vector& str_tool_colors) +#endif // ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS { const Print *print = this->fff_print(); if (print == nullptr || print->wipe_tower_data().tool_changes.empty()) @@ -6334,7 +6376,8 @@ void GLCanvas3D::_load_wipe_tower_toolpaths(const std::vector& str_ #if ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS for (size_t i = volumes_cnt_initial; i < m_volumes.volumes.size(); ++i) { GLVolume* v = m_volumes.volumes[i]; - v->calc_convex_hull_3d(); + if (generate_convex_hulls) + v->calc_convex_hull_3d(); v->indexed_vertex_array.finalize_geometry(m_initialized); } #else diff --git a/src/slic3r/GUI/GLCanvas3D.hpp b/src/slic3r/GUI/GLCanvas3D.hpp index 06676bedd..8a0170a86 100644 --- a/src/slic3r/GUI/GLCanvas3D.hpp +++ b/src/slic3r/GUI/GLCanvas3D.hpp @@ -390,7 +390,7 @@ class GLCanvas3D public: bool is_empty() const { return m_text.empty(); } void set_text(const std::string& text); - void render(const Vec2d& mouse_position, GLCanvas3D& canvas) const; + void render(const Vec2d& mouse_position, GLCanvas3D& canvas); // Indicates that the mouse is inside an ImGUI dialog, therefore the tooltip should be suppressed. void set_in_imgui(bool b) { m_in_imgui = b; } bool is_in_imgui() const { return m_in_imgui; } @@ -635,7 +635,7 @@ public: void update_gcode_sequential_view_current(unsigned int first, unsigned int last) { m_gcode_viewer.update_sequential_view_current(first, last); } void toggle_sla_auxiliaries_visibility(bool visible, const ModelObject* mo = nullptr, int instance_idx = -1); - void toggle_model_objects_visibility(bool visible, const ModelObject* mo = nullptr, int instance_idx = -1); + void toggle_model_objects_visibility(bool visible, const ModelObject* mo = nullptr, int instance_idx = -1, const ModelVolume* mv = nullptr); void update_instance_printable_state_for_object(size_t obj_idx); void update_instance_printable_state_for_objects(const std::vector& object_idxs); @@ -964,6 +964,18 @@ private: void _start_timer(); void _stop_timer(); +#if ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS + // Create 3D thick extrusion lines for a skirt and brim. + // Adds a new Slic3r::GUI::3DScene::Volume to volumes. + void _load_print_toolpaths(bool generate_convex_hulls = false); + // Create 3D thick extrusion lines for object forming extrusions. + // Adds a new Slic3r::GUI::3DScene::Volume to $self->volumes, + // one for perimeters, one for infill and one for supports. + void _load_print_object_toolpaths(const PrintObject& print_object, const std::vector& str_tool_colors, + const std::vector& color_print_values, bool generate_convex_hulls = false); + // Create 3D thick extrusion lines for wipe tower extrusions + void _load_wipe_tower_toolpaths(const std::vector& str_tool_colors, bool generate_convex_hulls = false); +#else // Create 3D thick extrusion lines for a skirt and brim. // Adds a new Slic3r::GUI::3DScene::Volume to volumes. void _load_print_toolpaths(); @@ -971,9 +983,10 @@ private: // Adds a new Slic3r::GUI::3DScene::Volume to $self->volumes, // one for perimeters, one for infill and one for supports. void _load_print_object_toolpaths(const PrintObject& print_object, const std::vector& str_tool_colors, - const std::vector& color_print_values); + const std::vector& color_print_values); // Create 3D thick extrusion lines for wipe tower extrusions void _load_wipe_tower_toolpaths(const std::vector& str_tool_colors); +#endif // ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS // Load SLA objects and support structures for objects, for which the slaposSliceSupports step has been finished. void _load_sla_shells(); diff --git a/src/slic3r/GUI/GLShadersManager.cpp b/src/slic3r/GUI/GLShadersManager.cpp index 0214652b2..01407b09a 100644 --- a/src/slic3r/GUI/GLShadersManager.cpp +++ b/src/slic3r/GUI/GLShadersManager.cpp @@ -79,7 +79,9 @@ std::pair GLShadersManager::init() // For Apple's on Arm CPU computed triangle normals inside fragment shader using dFdx and dFdy has the opposite direction. // Because of this, objects had darker colors inside the multi-material gizmo. // Based on https://stackoverflow.com/a/66206648, the similar behavior was also spotted on some other devices with Arm CPU. - if (platform_flavor() == PlatformFlavor::OSXOnArm) + // Since macOS 12 (Monterey), this issue with the opposite direction on Apple's Arm CPU seems to be fixed, and computed + // triangle normals inside fragment shader have the right direction. + if (platform_flavor() == PlatformFlavor::OSXOnArm && wxPlatformInfo::Get().GetOSMajorVersion() < 12) valid &= append_shader("mm_gouraud", {"mm_gouraud.vs", "mm_gouraud.fs"}, {"FLIP_TRIANGLE_NORMALS"sv}); else valid &= append_shader("mm_gouraud", {"mm_gouraud.vs", "mm_gouraud.fs"}); diff --git a/src/slic3r/GUI/GUI_App.cpp b/src/slic3r/GUI/GUI_App.cpp index 787382c23..96d33d3b0 100644 --- a/src/slic3r/GUI/GUI_App.cpp +++ b/src/slic3r/GUI/GUI_App.cpp @@ -3,6 +3,7 @@ #include "GUI_Init.hpp" #include "GUI_ObjectList.hpp" #include "GUI_ObjectManipulation.hpp" +#include "GUI_Factories.hpp" #include "format.hpp" #include "I18N.hpp" @@ -82,6 +83,9 @@ #include #endif // _MSW_DARK_MODE #endif +#ifdef _WIN32 +#include +#endif #if ENABLE_THUMBNAIL_GENERATOR_DEBUG #include @@ -410,7 +414,7 @@ bool static check_old_linux_datadir(const wxString& app_name) { "location again.\n\n" "What do you want to do now?")) % SLIC3R_APP_NAME % new_path % old_path).str()); wxString caption = from_u8((boost::format(_u8L("%s - BREAKING CHANGE")) % SLIC3R_APP_NAME).str()); - wxRichMessageDialog dlg(nullptr, msg, caption, wxYES_NO); + RichMessageDialog dlg(nullptr, msg, caption, wxYES_NO); dlg.SetYesNoLabels(_L("Quit, I will move my data now"), _L("Start the application")); if (dlg.ShowModal() != wxID_NO) return false; @@ -423,6 +427,56 @@ bool static check_old_linux_datadir(const wxString& app_name) { #endif +#ifdef _WIN32 +static bool run_updater_win() +{ + // find updater exe + boost::filesystem::path path_to_binary = boost::dll::program_location(); + for (const auto& dir_entry : boost::filesystem::directory_iterator(path_to_binary.parent_path())) { + if (dir_entry.path().filename() == "prusaslicer-updater.exe") { + // run updater. Original args: /silent -restartapp prusa-slicer.exe -startappfirst + + // Using quoted string as mentioned in CreateProcessW docs. + std::wstring wcmd = L"\"" + dir_entry.path().wstring() + L"\""; + wcmd += L" /silent"; + + // additional information + STARTUPINFOW si; + PROCESS_INFORMATION pi; + + // set the size of the structures + ZeroMemory(&si, sizeof(si)); + si.cb = sizeof(si); + ZeroMemory(&pi, sizeof(pi)); + + // start the program up + if (CreateProcessW(NULL, // the path + wcmd.data(), // Command line + NULL, // Process handle not inheritable + NULL, // Thread handle not inheritable + FALSE, // Set handle inheritance to FALSE + 0, // No creation flags + NULL, // Use parent's environment block + NULL, // Use parent's starting directory + &si, // Pointer to STARTUPINFO structure + &pi // Pointer to PROCESS_INFORMATION structure (removed extra parentheses) + )) { + // Close process and thread handles. + CloseHandle(pi.hProcess); + CloseHandle(pi.hThread); + return true; + } else { + BOOST_LOG_TRIVIAL(error) << "Failed to start prusaslicer-updater.exe with command " << wcmd; + } + break; + } + } + return false; +} +#endif //_WIN32 + + + wxString file_wildcards(FileType file_type, const std::string &custom_extension) { static const std::string defaults[FT_SIZE] = { @@ -673,12 +727,10 @@ void GUI_App::post_init() // to popup a modal dialog on start without screwing combo boxes. // This is ugly but I honestly found no better way to do it. // Neither wxShowEvent nor wxWindowCreateEvent work reliably. - assert(this->preset_updater); // FIXME Following condition is probably not neccessary. - if (this->preset_updater) { + if (this->preset_updater) { // G-Code Viewer does not initialize preset_updater. this->check_updates(false); CallAfter([this] { bool cw_showed = this->config_wizard_startup(); - this->preset_updater->slic3r_update_notify(); this->preset_updater->sync(preset_bundle); if (! cw_showed) { // The CallAfter is needed as well, without it, GL extensions did not show. @@ -686,6 +738,15 @@ void GUI_App::post_init() // sees something else than "we want something" on the first start. show_send_system_info_dialog_if_needed(); } + bool updater_running = + #ifdef _WIN32 + // Run external updater on Windows. + run_updater_win(); + #else + false; + #endif // _WIN32 + if (!updater_running) + this->preset_updater->slic3r_update_notify(); }); } @@ -744,6 +805,25 @@ bool GUI_App::init_opengl() #endif } +// gets path to PrusaSlicer.ini, returns semver from first line comment +static boost::optional parse_semver_from_ini(std::string path) +{ + std::ifstream stream(path); + std::stringstream buffer; + buffer << stream.rdbuf(); + std::string body = buffer.str(); + size_t end_line = body.find_first_of("\n\r"); + body.resize(end_line); + size_t start = body.find("PrusaSlicer "); + if (start == std::string::npos) + return boost::none; + body = body.substr(start + 12); + size_t end = body.find_first_of(" \n\r"); + if (end < body.size()) + body.resize(end); + return Semver::parse(body); +} + void GUI_App::init_app_config() { // Profiles for the alpha are stored into the PrusaSlicer-alpha directory to not mix with the current release. @@ -792,9 +872,110 @@ void GUI_App::init_app_config() "\n\n" + app_config->config_path() + "\n\n" + error); } } + // Save orig_version here, so its empty if no app_config existed before this run. + m_last_config_version = app_config->orig_version();//parse_semver_from_ini(app_config->config_path()); } } +// returns true if found newer version and user agreed to use it +bool GUI_App::check_older_app_config(Semver current_version, bool backup) +{ + // find other version app config (alpha / beta / release) + std::string config_path = app_config->config_path(); + boost::filesystem::path parent_file_path(config_path); + std::string filename = parent_file_path.filename().string(); + parent_file_path.remove_filename().remove_filename(); + + std::vector candidates; + + if (SLIC3R_APP_KEY "-alpha" != GetAppName()) candidates.emplace_back(parent_file_path / SLIC3R_APP_KEY "-alpha" / filename); + if (SLIC3R_APP_KEY "-beta" != GetAppName()) candidates.emplace_back(parent_file_path / SLIC3R_APP_KEY "-beta" / filename); + if (SLIC3R_APP_KEY != GetAppName()) candidates.emplace_back(parent_file_path / SLIC3R_APP_KEY / filename); + + Semver last_semver = current_version; + for (const auto& candidate : candidates) { + if (boost::filesystem::exists(candidate)) { + // parse + boost::optionalother_semver = parse_semver_from_ini(candidate.string()); + if (other_semver && *other_semver > last_semver) { + last_semver = *other_semver; + m_older_data_dir_path = candidate.parent_path().string(); + } + } + } + if (m_older_data_dir_path.empty()) + return false; + BOOST_LOG_TRIVIAL(info) << "last app config file used: " << m_older_data_dir_path; + // ask about using older data folder + RichMessageDialog msg(nullptr, backup ? + wxString::Format(_L("PrusaSlicer detected another configuration folder at %s." + "\nIts version is %s." + "\nLast version you used in current configuration folder is %s." + "\nPlease note that PrusaSlicer uses different folders to save configuration of alpha, beta and full release versions." + "\nWould you like to copy found configuration to your current configuration folder?" + + "\n\nIf you select yes, PrusaSlicer will copy all profiles and other files from found folder to the current one. Overwriting any existing file with matching name." + "\nIf you select no, you will continue with current configuration.") + , m_older_data_dir_path, last_semver.to_string(), current_version.to_string()) + : wxString::Format(_L("PrusaSlicer detected another configuration folder at %s." + "\nIts version is %s." + "\nThere is no configuration file in current configuration folder." + "\nPlease note that PrusaSlicer uses different folders to save configuration of alpha, beta and full release versions." + "\nWould you like to copy found configuration to your current configuration folder?" + + "\n\nIf you select yes, PrusaSlicer will copy all profiles and other files from found folder to the current one." + "\nIf you select no, you will start with clean installation with configuration wizard.") + , m_older_data_dir_path, last_semver.to_string()) + , _L("PrusaSlicer"), /*wxICON_QUESTION | */wxYES_NO); + if (msg.ShowModal() == wxID_YES) { + std::string snapshot_id; + if (backup) { + // configuration snapshot + std::string comment; + if (const Config::Snapshot* snapshot = Config::take_config_snapshot_report_error( + *app_config, + Config::Snapshot::SNAPSHOT_USER, + comment); + snapshot != nullptr) + // Is thos correct? Save snapshot id for later, when new app config is loaded. + snapshot_id = snapshot->id; + else + BOOST_LOG_TRIVIAL(error) << "Failed to take congiguration snapshot: "; + } + + // This will tell later (when config folder structure is sure to exists) to copy files from m_older_data_dir_path + m_init_app_config_from_older = true; + // load app config from older file + app_config->set_loading_path((boost::filesystem::path(m_older_data_dir_path) / filename).string()); + std::string error = app_config->load(); + if (!error.empty()) { + // Error while parsing config file. We'll customize the error message and rethrow to be displayed. + if (is_editor()) { + throw Slic3r::RuntimeError( + _u8L("Error parsing PrusaSlicer config file, it is probably corrupted. " + "Try to manually delete the file to recover from the error. Your user profiles will not be affected.") + + "\n\n" + app_config->config_path() + "\n\n" + error); + } + else { + throw Slic3r::RuntimeError( + _u8L("Error parsing PrusaGCodeViewer config file, it is probably corrupted. " + "Try to manually delete the file to recover from the error.") + + "\n\n" + app_config->config_path() + "\n\n" + error); + } + } + if (!snapshot_id.empty()) + app_config->set("on_snapshot", snapshot_id); + m_app_conf_exists = true; + return true; + } + return false; +} + +void GUI_App::copy_older_config() +{ + preset_bundle->copy_files(m_older_data_dir_path); +} + void GUI_App::init_single_instance_checker(const std::string &name, const std::string &path) { BOOST_LOG_TRIVIAL(debug) << "init wx instance checker " << name << " "<< path; @@ -813,6 +994,29 @@ bool GUI_App::OnInit() bool GUI_App::on_init_inner() { +// win32 build on win64 and viceversa +#ifdef _WIN64 + if (wxPlatformInfo::Get().GetArchName().substr(0, 2) == "") { + RichMessageDialog dlg(nullptr, + _L("You have started PrusaSlicer for 64-bit architecture on 32-bit system." + "\nPlease download and install correct version at https://www.prusa3d.cz/prusaslicer/." + "\nDo you wish to continue?"), + "PrusaSlicer", wxICON_QUESTION | wxYES_NO); + if (dlg.ShowModal() != wxID_YES) + return false; + } +#elif _WIN32 + if (wxPlatformInfo::Get().GetArchName().substr(0, 2) == "64") { + RichMessageDialog dlg(nullptr, + _L("You have started PrusaSlicer for 32-bit architecture on 64-bit system." + "\nPlease download and install correct version at https://www.prusa3d.cz/prusaslicer/." + "\nDo you wish to continue?"), + "PrusaSlicer", wxICON_QUESTION | wxYES_NO); + if (dlg.ShowModal() != wxID_YES) + return false; + } +#endif // _WIN64 + // Forcing back menu icons under gtk2 and gtk3. Solution is based on: // https://docs.gtk.org/gtk3/class.Settings.html // see also https://docs.wxwidgets.org/3.0/classwx_menu_item.html#a2b5d6bcb820b992b1e4709facbf6d4fb @@ -848,7 +1052,7 @@ bool GUI_App::on_init_inner() bool ssl_accept = app_config->get("tls_cert_store_accepted") == "yes" && ssl_cert_store == Http::tls_system_cert_store(); if (!msg.empty() && !ssl_accept) { - wxRichMessageDialog + RichMessageDialog dlg(nullptr, wxString::Format(_L("%s\nDo you want to continue?"), msg), "PrusaSlicer", wxICON_QUESTION | wxYES_NO); @@ -862,6 +1066,13 @@ bool GUI_App::on_init_inner() } } + if (m_last_config_version) { + if (*m_last_config_version < *Semver::parse(SLIC3R_VERSION)) + check_older_app_config(*m_last_config_version, true); + } else { + check_older_app_config(Semver(), false); + } + app_config->set("version", SLIC3R_VERSION); app_config->save(); @@ -871,11 +1082,7 @@ bool GUI_App::on_init_inner() wxInitAllImageHandlers(); #ifdef _MSW_DARK_MODE - if (bool dark_mode = app_config->get("dark_color_mode") == "1") { - NppDarkMode::InitDarkMode(); - if (dark_mode != NppDarkMode::IsDarkMode()) - NppDarkMode::SetDarkMode(dark_mode); - } + NppDarkMode::InitDarkMode(app_config->get("dark_color_mode") == "1", app_config->get("sys_menu_enabled") == "1"); #endif SplashScreen* scrn = nullptr; if (app_config->get("show_splash_screen") == "1") { @@ -900,12 +1107,18 @@ bool GUI_App::on_init_inner() scrn->SetText(_L("Loading configuration")+ dots); } + + preset_bundle = new PresetBundle(); // just checking for existence of Slic3r::data_dir is not enough : it may be an empty directory // supplied as argument to --datadir; in that case we should still run the wizard preset_bundle->setup_directories(); + + if (m_init_app_config_from_older) + copy_older_config(); + if (is_editor()) { #ifdef __WXMSW__ if (app_config->get("associate_3mf") == "1") @@ -918,26 +1131,30 @@ bool GUI_App::on_init_inner() Bind(EVT_SLIC3R_VERSION_ONLINE, [this](const wxCommandEvent& evt) { app_config->set("version_online", into_u8(evt.GetString())); app_config->save(); - if (this->plater_ != nullptr) { + std::string opt = app_config->get("notify_release"); + if (this->plater_ != nullptr && (opt == "all" || opt == "release")) { if (*Semver::parse(SLIC3R_VERSION) < *Semver::parse(into_u8(evt.GetString()))) { - this->plater_->get_notification_manager()->push_notification(NotificationType::NewAppAvailable); + this->plater_->get_notification_manager()->push_notification(NotificationType::NewAppAvailable + , NotificationManager::NotificationLevel::ImportantNotificationLevel + , Slic3r::format(_u8L("New release version %1% is available."), evt.GetString()) + , _u8L("See Download page.") + , [](wxEvtHandler* evnthndlr) {wxGetApp().open_web_page_localized("https://www.prusa3d.com/slicerweb"); return true; } + ); } } }); - Bind(EVT_SLIC3R_ALPHA_VERSION_ONLINE, [this](const wxCommandEvent& evt) { + Bind(EVT_SLIC3R_EXPERIMENTAL_VERSION_ONLINE, [this](const wxCommandEvent& evt) { app_config->save(); - if (this->plater_ != nullptr && app_config->get("notify_testing_release") == "1") { - if (*Semver::parse(SLIC3R_VERSION) < *Semver::parse(into_u8(evt.GetString()))) { - this->plater_->get_notification_manager()->push_notification(NotificationType::NewAlphaAvailable); - } - } - }); - Bind(EVT_SLIC3R_BETA_VERSION_ONLINE, [this](const wxCommandEvent& evt) { - app_config->save(); - if (this->plater_ != nullptr && app_config->get("notify_testing_release") == "1") { - if (*Semver::parse(SLIC3R_VERSION) < *Semver::parse(into_u8(evt.GetString()))) { - this->plater_->get_notification_manager()->close_notification_of_type(NotificationType::NewAlphaAvailable); - this->plater_->get_notification_manager()->push_notification(NotificationType::NewBetaAvailable); + if (this->plater_ != nullptr && app_config->get("notify_release") == "all") { + std::string evt_string = into_u8(evt.GetString()); + if (*Semver::parse(SLIC3R_VERSION) < *Semver::parse(evt_string)) { + auto notif_type = (evt_string.find("beta") != std::string::npos ? NotificationType::NewBetaAvailable : NotificationType::NewAlphaAvailable); + this->plater_->get_notification_manager()->push_notification( notif_type + , NotificationManager::NotificationLevel::ImportantNotificationLevel + , Slic3r::format(_u8L("New prerelease version %1% is available."), evt_string) + , _u8L("See Releases page.") + , [](wxEvtHandler* evnthndlr) {wxGetApp().open_browser_with_warning_dialog("https://github.com/prusa3d/PrusaSlicer/releases"); return true; } + ); } } }); @@ -1192,10 +1409,9 @@ void GUI_App::UpdateDVCDarkUI(wxDataViewCtrl* dvc, bool highlited/* = false*/) { #ifdef _WIN32 UpdateDarkUI(dvc, highlited ? dark_mode() : false); - wxItemAttr attr(dark_mode() ? m_color_highlight_default : m_color_label_default, - m_color_window_default, - m_normal_font); - dvc->SetHeaderAttr(attr); +#ifdef _MSW_DARK_MODE + dvc->RefreshHeaderDarkMode(&m_normal_font); +#endif //_MSW_DARK_MODE if (dvc->HasFlag(wxDV_ROW_LINES)) dvc->SetAlternateRowColour(m_color_highlight_default); if (dvc->GetBorder() != wxBORDER_SIMPLE) @@ -1419,12 +1635,44 @@ void fatal_error(wxWindow* parent) } #ifdef _WIN32 + +#ifdef _MSW_DARK_MODE +static void update_scrolls(wxWindow* window) +{ + wxWindowList::compatibility_iterator node = window->GetChildren().GetFirst(); + while (node) + { + wxWindow* win = node->GetData(); + if (dynamic_cast(win) || + dynamic_cast(win) || + dynamic_cast(win)) + NppDarkMode::SetDarkExplorerTheme(win->GetHWND()); + + update_scrolls(win); + node = node->GetNext(); + } +} +#endif //_MSW_DARK_MODE + + +#ifdef _MSW_DARK_MODE +void GUI_App::force_menu_update() +{ + NppDarkMode::SetSystemMenuForApp(app_config->get("sys_menu_enabled") == "1"); +} +#endif //_MSW_DARK_MODE + void GUI_App::force_colors_update() { +#ifdef _MSW_DARK_MODE NppDarkMode::SetDarkMode(app_config->get("dark_color_mode") == "1"); + if (WXHWND wxHWND = wxToolTip::GetToolTipCtrl()) + NppDarkMode::SetDarkExplorerTheme((HWND)wxHWND); + NppDarkMode::SetDarkTitleBar(mainframe->GetHWND()); +#endif //_MSW_DARK_MODE m_force_colors_update = true; } -#endif +#endif //_WIN32 // Called after the Preferences dialog is closed and the program settings are saved. // Update the UI based on the current preferences. @@ -1432,11 +1680,15 @@ void GUI_App::update_ui_from_settings() { update_label_colours(); #ifdef _WIN32 - // Upadte UU colors before Update UI from settings + // Upadte UI colors before Update UI from settings if (m_force_colors_update) { m_force_colors_update = false; mainframe->force_color_changed(); mainframe->diff_dialog.force_color_changed(); + mainframe->printhost_queue_dlg()->force_color_changed(); +#ifdef _MSW_DARK_MODE + update_scrolls(mainframe); +#endif //_MSW_DARK_MODE } #endif mainframe->update_ui_from_settings(); @@ -1577,7 +1829,7 @@ static const wxLanguageInfo* linux_get_existing_locale_language(const wxLanguage } #endif -static int GetSingleChoiceIndex(const wxString& message, +int GUI_App::GetSingleChoiceIndex(const wxString& message, const wxString& caption, const wxArrayString& choices, int initialSelection) @@ -1845,7 +2097,7 @@ void GUI_App::add_config_menu(wxMenuBar *menu) local_menu->Append(config_id_base + ConfigMenuWizard, config_wizard_name + dots, config_wizard_tooltip); local_menu->Append(config_id_base + ConfigMenuSnapshots, _L("&Configuration Snapshots") + dots, _L("Inspect / activate configuration snapshots")); local_menu->Append(config_id_base + ConfigMenuTakeSnapshot, _L("Take Configuration &Snapshot"), _L("Capture a configuration snapshot")); - local_menu->Append(config_id_base + ConfigMenuUpdate, _L("Check for updates"), _L("Check for configuration updates")); + local_menu->Append(config_id_base + ConfigMenuUpdate, _L("Check for Configuration Updates"), _L("Check for configuration updates")); #if defined(__linux__) && defined(SLIC3R_DESKTOP_INTEGRATION) //if (DesktopIntegrationDialog::integration_possible()) local_menu->Append(config_id_base + ConfigMenuDesktopIntegration, _L("Desktop Integration"), _L("Desktop Integration")); @@ -2627,7 +2879,7 @@ void GUI_App::window_pos_sanitize(wxTopLevelWindow* window) bool GUI_App::config_wizard_startup() { - if (!m_app_conf_exists || preset_bundle->printers.size() <= 1) { + if (!m_app_conf_exists || preset_bundle->printers.only_default_printers()) { run_wizard(ConfigWizard::RR_DATA_EMPTY); return true; } else if (get_app_config()->legacy_datadir()) { @@ -2669,7 +2921,7 @@ bool GUI_App::open_browser_with_warning_dialog(const wxString& url, int flags/* bool launch = true; if (get_app_config()->get("suppress_hyperlinks").empty()) { - wxRichMessageDialog dialog(nullptr, _L("Should we open this hyperlink in your default browser?"), _L("PrusaSlicer: Open hyperlink"), wxICON_QUESTION | wxYES_NO); + RichMessageDialog dialog(nullptr, _L("Should we open this hyperlink in your default browser?"), _L("PrusaSlicer: Open hyperlink"), wxICON_QUESTION | wxYES_NO); dialog.ShowCheckBox(_L("Remember my choice")); int answer = dialog.ShowModal(); launch = answer == wxID_YES; diff --git a/src/slic3r/GUI/GUI_App.hpp b/src/slic3r/GUI/GUI_App.hpp index ad42803f6..1d281cafe 100644 --- a/src/slic3r/GUI/GUI_App.hpp +++ b/src/slic3r/GUI/GUI_App.hpp @@ -210,6 +210,9 @@ public: const wxColour& get_color_hovered_btn_label() { return m_color_hovered_btn_label; } const wxColour& get_color_selected_btn_bg() { return m_color_selected_btn_bg; } void force_colors_update(); +#ifdef _MSW_DARK_MODE + void force_menu_update(); +#endif //_MSW_DARK_MODE #endif const wxFont& small_font() { return m_small_font; } @@ -326,6 +329,7 @@ public: bool is_gl_version_greater_or_equal_to(unsigned int major, unsigned int minor) const { return m_opengl_mgr.get_gl_info().is_version_greater_or_equal_to(major, minor); } bool is_glsl_version_greater_or_equal_to(unsigned int major, unsigned int minor) const { return m_opengl_mgr.get_gl_info().is_glsl_version_greater_or_equal_to(major, minor); } + int GetSingleChoiceIndex(const wxString& message, const wxString& caption, const wxArrayString& choices, int initialSelection); #ifdef __WXMSW__ void associate_3mf_files(); @@ -336,6 +340,8 @@ public: private: bool on_init_inner(); void init_app_config(); + bool check_older_app_config(Semver current_version, bool backup); + void copy_older_config(); void window_pos_save(wxTopLevelWindow* window, const std::string &name); void window_pos_restore(wxTopLevelWindow* window, const std::string &name, bool default_maximized = false); void window_pos_sanitize(wxTopLevelWindow* window); @@ -343,6 +349,10 @@ private: bool config_wizard_startup(); void check_updates(const bool verbose); + + bool m_init_app_config_from_older { false }; + std::string m_older_data_dir_path; + boost::optional m_last_config_version; }; DECLARE_APP(GUI_App) diff --git a/src/slic3r/GUI/GUI_ObjectList.cpp b/src/slic3r/GUI/GUI_ObjectList.cpp index 43ebd23f2..7674fe908 100644 --- a/src/slic3r/GUI/GUI_ObjectList.cpp +++ b/src/slic3r/GUI/GUI_ObjectList.cpp @@ -2044,8 +2044,7 @@ void ObjectList::split() void ObjectList::merge(bool to_multipart_object) { // merge selected objects to the multipart object - if (to_multipart_object) - { + if (to_multipart_object) { auto get_object_idxs = [this](std::vector& obj_idxs, wxDataViewItemArray& sels) { // check selections and split instances to the separated objects... @@ -2056,8 +2055,7 @@ void ObjectList::merge(bool to_multipart_object) break; } - if (!instance_selection) - { + if (!instance_selection) { for (wxDataViewItem item : sels) { assert(m_objects_model->GetItemType(item) & itObject); obj_idxs.emplace_back(m_objects_model->GetIdByItem(item)); @@ -2069,8 +2067,7 @@ void ObjectList::merge(bool to_multipart_object) std::map> sel_map; std::set empty_set; for (wxDataViewItem item : sels) { - if (m_objects_model->GetItemType(item) & itObject) - { + if (m_objects_model->GetItemType(item) & itObject) { int obj_idx = m_objects_model->GetIdByItem(item); int inst_cnt = (*m_objects)[obj_idx]->instances.size(); if (inst_cnt == 1) @@ -2087,8 +2084,7 @@ void ObjectList::merge(bool to_multipart_object) // all objects, created from the instances will be added to the end of list int new_objects_cnt = 0; // count of this new objects - for (auto map_item : sel_map) - { + for (auto map_item : sel_map) { int obj_idx = map_item.first; // object with just 1 instance if (map_item.second.empty()) { @@ -2148,37 +2144,36 @@ void ObjectList::merge(bool to_multipart_object) new_object->name = _u8L("Merged"); ModelConfig &config = new_object->config; - for (int obj_idx : obj_idxs) - { + for (int obj_idx : obj_idxs) { ModelObject* object = (*m_objects)[obj_idx]; const Geometry::Transformation& transformation = object->instances[0]->get_transformation(); - Vec3d scale = transformation.get_scaling_factor(); - Vec3d mirror = transformation.get_mirror(); - Vec3d rotation = transformation.get_rotation(); + const Vec3d scale = transformation.get_scaling_factor(); + const Vec3d mirror = transformation.get_mirror(); + const Vec3d rotation = transformation.get_rotation(); if (object->id() == (*m_objects)[obj_idxs.front()]->id()) new_object->add_instance(); - Transform3d volume_offset_correction = new_object->instances[0]->get_transformation().get_matrix().inverse() * transformation.get_matrix(); + const Transform3d& volume_offset_correction = transformation.get_matrix(); // merge volumes for (const ModelVolume* volume : object->volumes) { ModelVolume* new_volume = new_object->add_volume(*volume); //set rotation - Vec3d vol_rot = new_volume->get_rotation() + rotation; + const Vec3d vol_rot = new_volume->get_rotation() + rotation; new_volume->set_rotation(vol_rot); // set scale - Vec3d vol_sc_fact = new_volume->get_scaling_factor().cwiseProduct(scale); + const Vec3d vol_sc_fact = new_volume->get_scaling_factor().cwiseProduct(scale); new_volume->set_scaling_factor(vol_sc_fact); // set mirror - Vec3d vol_mirror = new_volume->get_mirror().cwiseProduct(mirror); + const Vec3d vol_mirror = new_volume->get_mirror().cwiseProduct(mirror); new_volume->set_mirror(vol_mirror); // set offset - Vec3d vol_offset = volume_offset_correction* new_volume->get_offset(); + const Vec3d vol_offset = volume_offset_correction* new_volume->get_offset(); new_volume->set_offset(vol_offset); } new_object->sort_volumes(wxGetApp().app_config->get("order_volumes") == "1"); @@ -2211,6 +2206,11 @@ void ObjectList::merge(bool to_multipart_object) for (const auto& range : object->layer_config_ranges) new_object->layer_config_ranges.emplace(range); } + + new_object->center_around_origin(); + new_object->translate_instances(-new_object->origin_translation); + new_object->origin_translation = Vec3d::Zero(); + // remove selected objects remove(); @@ -2221,8 +2221,7 @@ void ObjectList::merge(bool to_multipart_object) } // merge all parts to the one single object // all part's settings will be lost - else - { + else { wxDataViewItem item = GetSelection(); if (!item) return; @@ -3783,7 +3782,7 @@ void ObjectList::change_part_type() } const wxString names[] = { _L("Part"), _L("Negative Volume"), _L("Modifier"), _L("Support Blocker"), _L("Support Enforcer") }; - auto new_type = ModelVolumeType(wxGetSingleChoiceIndex(_L("Type:"), _L("Select type of part"), wxArrayString(5, names), int(type))); + auto new_type = ModelVolumeType(wxGetApp().GetSingleChoiceIndex(_L("Type:"), _L("Select type of part"), wxArrayString(5, names), int(type))); if (new_type == type || new_type == ModelVolumeType::INVALID) return; diff --git a/src/slic3r/GUI/GUI_ObjectManipulation.cpp b/src/slic3r/GUI/GUI_ObjectManipulation.cpp index c279fad90..f5a274d69 100644 --- a/src/slic3r/GUI/GUI_ObjectManipulation.cpp +++ b/src/slic3r/GUI/GUI_ObjectManipulation.cpp @@ -866,6 +866,9 @@ void ObjectManipulation::change_rotation_value(int axis, double value) void ObjectManipulation::change_scale_value(int axis, double value) { + if (value <= 0.0) + return; + if (std::abs(m_cache.scale_rounded(axis) - value) < EPSILON) return; @@ -882,6 +885,9 @@ void ObjectManipulation::change_scale_value(int axis, double value) void ObjectManipulation::change_size_value(int axis, double value) { + if (value <= 0.0) + return; + if (std::abs(m_cache.size_rounded(axis) - value) < EPSILON) return; @@ -947,10 +953,26 @@ void ObjectManipulation::on_change(const std::string& opt_key, int axis, double change_position_value(axis, new_value); else if (opt_key == "rotation") change_rotation_value(axis, new_value); - else if (opt_key == "scale") - change_scale_value(axis, new_value); - else if (opt_key == "size") - change_size_value(axis, new_value); + else if (opt_key == "scale") { + if (new_value > 0.0) + change_scale_value(axis, new_value); + else { + new_value = m_cache.scale(axis); + m_cache.scale(axis) = 0.0; + m_cache.scale_rounded(axis) = DBL_MAX; + change_scale_value(axis, new_value); + } + } + else if (opt_key == "size") { + if (new_value > 0.0) + change_size_value(axis, new_value); + else { + new_value = m_cache.size(axis); + m_cache.size(axis) = 0.0; + m_cache.size_rounded(axis) = DBL_MAX; + change_size_value(axis, new_value); + } + } } void ObjectManipulation::set_uniform_scaling(const bool new_value) diff --git a/src/slic3r/GUI/GalleryDialog.cpp b/src/slic3r/GUI/GalleryDialog.cpp index f5e3083a7..2aba75fba 100644 --- a/src/slic3r/GUI/GalleryDialog.cpp +++ b/src/slic3r/GUI/GalleryDialog.cpp @@ -101,7 +101,7 @@ GalleryDialog::GalleryDialog(wxWindow* parent, bool modify_gallery/* = false*/) ok_btn->SetToolTip(_L("Add selected shape(s) to the bed")); } static_cast(FindWindowById(wxID_CLOSE, this))->Bind(wxEVT_BUTTON, [this](wxCommandEvent&){ this->EndModal(wxID_CLOSE); }); - + this->SetEscapeId(wxID_CLOSE); auto add_btn = [this, buttons]( size_t pos, int& ID, wxString title, wxString tooltip, void (GalleryDialog::* method)(wxEvent&), std::function enable_fn = []() {return true; }) { diff --git a/src/slic3r/GUI/Gizmos/GLGizmoCut.cpp b/src/slic3r/GUI/Gizmos/GLGizmoCut.cpp index b14819671..d2c32d488 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoCut.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoCut.cpp @@ -167,7 +167,11 @@ void GLGizmoCut::on_render_input_window(float x, float y, float bottom_limit) ImGui::SetWindowPos(ImVec2(x, y), ImGuiCond_Always); if (last_h != win_h || last_y != y) { // ask canvas for another frame to render the window in the correct position +#if ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT + m_imgui->set_requires_extra_frame(); +#else m_parent.request_extra_frame(); +#endif // ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT if (last_h != win_h) last_h = win_h; if (last_y != y) diff --git a/src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp b/src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp index 16856a9e3..fcdecfaab 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp @@ -170,7 +170,13 @@ void GLGizmoFdmSupports::on_render_input_window(float x, float y, float bottom_l float slider_start_position = std::max(position_before_text_y, position_after_text_y - slider_height); ImGui::SetCursorPosY(slider_start_position); +#if ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT + wxString tooltip = format_wxstr(_L("Preselects faces by overhang angle. It is possible to restrict paintable facets to only preselected faces when " + "the option \"%1%\" is enabled."), m_desc["on_overhangs_only"]); + if (m_imgui->slider_float("##angle_threshold_deg", &m_highlight_by_angle_threshold_deg, 0.f, 90.f, format_str.data(), 1.0f, true, tooltip)) { +#else if (m_imgui->slider_float("##angle_threshold_deg", &m_highlight_by_angle_threshold_deg, 0.f, 90.f, format_str.data())) { +#endif // ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT m_parent.set_slope_normal_angle(90.f - m_highlight_by_angle_threshold_deg); if (! m_parent.is_using_slope()) { m_parent.use_slope(true); @@ -182,9 +188,11 @@ void GLGizmoFdmSupports::on_render_input_window(float x, float y, float bottom_l ImGui::SetCursorPosY(std::max(position_before_text_y + slider_height, position_after_text_y)); const float max_tooltip_width = ImGui::GetFontSize() * 20.0f; +#if !ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT if (ImGui::IsItemHovered()) m_imgui->tooltip(format_wxstr(_L("Preselects faces by overhang angle. It is possible to restrict paintable facets to only preselected faces when " "the option \"%1%\" is enabled."), m_desc["on_overhangs_only"]), max_tooltip_width); +#endif // !ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT m_imgui->disabled_begin(m_highlight_by_angle_threshold_deg == 0.f); ImGui::NewLine(); @@ -267,9 +275,13 @@ void GLGizmoFdmSupports::on_render_input_window(float x, float y, float bottom_l m_imgui->text(m_desc.at("cursor_size")); ImGui::SameLine(sliders_left_width); ImGui::PushItemWidth(window_width - sliders_left_width); +#if ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT + m_imgui->slider_float("##cursor_radius", &m_cursor_radius, CursorRadiusMin, CursorRadiusMax, "%.2f", 1.0f, true, _L("Alt + Mouse wheel")); +#else m_imgui->slider_float("##cursor_radius", &m_cursor_radius, CursorRadiusMin, CursorRadiusMax, "%.2f"); if (ImGui::IsItemHovered()) m_imgui->tooltip(_L("Alt + Mouse wheel"), max_tooltip_width); +#endif // ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT m_imgui->checkbox(m_desc["split_triangles"], m_triangle_splitting_enabled); @@ -284,14 +296,20 @@ void GLGizmoFdmSupports::on_render_input_window(float x, float y, float bottom_l ImGui::SameLine(sliders_left_width); ImGui::PushItemWidth(window_width - sliders_left_width); +#if ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT + if (m_imgui->slider_float("##smart_fill_angle", &m_smart_fill_angle, SmartFillAngleMin, SmartFillAngleMax, format_str.data(), 1.0f, true, _L("Alt + Mouse wheel"))) +#else if (m_imgui->slider_float("##smart_fill_angle", &m_smart_fill_angle, SmartFillAngleMin, SmartFillAngleMax, format_str.data())) +#endif // ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT for (auto &triangle_selector : m_triangle_selectors) { triangle_selector->seed_fill_unselect_all_triangles(); triangle_selector->request_update_render_data(); } +#if !ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT if (ImGui::IsItemHovered()) m_imgui->tooltip(_L("Alt + Mouse wheel"), max_tooltip_width); +#endif // !ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT } ImGui::Separator(); @@ -310,11 +328,16 @@ void GLGizmoFdmSupports::on_render_input_window(float x, float y, float bottom_l ImGui::SameLine(sliders_left_width); ImGui::PushItemWidth(window_width - sliders_left_width); auto clp_dist = float(m_c->object_clipper()->get_position()); +#if ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT + if (m_imgui->slider_float("##clp_dist", &clp_dist, 0.f, 1.f, "%.2f", 1.0f, true, _L("Ctrl + Mouse wheel"))) + m_c->object_clipper()->set_position(clp_dist, true); +#else if (m_imgui->slider_float("##clp_dist", &clp_dist, 0.f, 1.f, "%.2f")) m_c->object_clipper()->set_position(clp_dist, true); if (ImGui::IsItemHovered()) m_imgui->tooltip(_L("Ctrl + Mouse wheel"), max_tooltip_width); +#endif // ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT ImGui::Separator(); if (m_imgui->button(m_desc.at("remove_all"))) { diff --git a/src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.hpp b/src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.hpp index 4929714a2..69966b0f2 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.hpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.hpp @@ -18,9 +18,6 @@ protected: std::string on_get_name() const override; wxString handle_snapshot_action_name(bool shift_down, Button button_down) const override; - - std::string get_gizmo_entering_text() const override { return _u8L("Entering Paint-on supports"); } - std::string get_gizmo_leaving_text() const override { return _u8L("Leaving Paint-on supports"); } std::string get_action_snapshot_name() override { return _u8L("Paint-on supports editing"); } diff --git a/src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp b/src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp index 4e86b562b..ee7a61082 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp @@ -441,9 +441,13 @@ void GLGizmoMmuSegmentation::on_render_input_window(float x, float y, float bott m_imgui->text(m_desc.at("cursor_size")); ImGui::SameLine(sliders_width); ImGui::PushItemWidth(window_width - sliders_width); +#if ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT + m_imgui->slider_float("##cursor_radius", &m_cursor_radius, CursorRadiusMin, CursorRadiusMax, "%.2f", 1.0f, true, _L("Alt + Mouse wheel")); +#else m_imgui->slider_float("##cursor_radius", &m_cursor_radius, CursorRadiusMin, CursorRadiusMax, "%.2f"); if (ImGui::IsItemHovered()) m_imgui->tooltip(_L("Alt + Mouse wheel"), max_tooltip_width); +#endif // ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT m_imgui->checkbox(m_desc["split_triangles"], m_triangle_splitting_enabled); @@ -460,14 +464,20 @@ void GLGizmoMmuSegmentation::on_render_input_window(float x, float y, float bott "placed after the number with no whitespace in between."); ImGui::SameLine(sliders_width); ImGui::PushItemWidth(window_width - sliders_width); +#if ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT + if (m_imgui->slider_float("##smart_fill_angle", &m_smart_fill_angle, SmartFillAngleMin, SmartFillAngleMax, format_str.data(), 1.0f, true, _L("Alt + Mouse wheel"))) +#else if(m_imgui->slider_float("##smart_fill_angle", &m_smart_fill_angle, SmartFillAngleMin, SmartFillAngleMax, format_str.data())) +#endif // ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT for (auto &triangle_selector : m_triangle_selectors) { triangle_selector->seed_fill_unselect_all_triangles(); triangle_selector->request_update_render_data(); } +#if !ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT if (ImGui::IsItemHovered()) m_imgui->tooltip(_L("Alt + Mouse wheel"), max_tooltip_width); +#endif // !ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT ImGui::Separator(); } @@ -484,11 +494,16 @@ void GLGizmoMmuSegmentation::on_render_input_window(float x, float y, float bott ImGui::SameLine(sliders_width); ImGui::PushItemWidth(window_width - sliders_width); auto clp_dist = float(m_c->object_clipper()->get_position()); +#if ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT + if (m_imgui->slider_float("##clp_dist", &clp_dist, 0.f, 1.f, "%.2f", 1.0f, true, _L("Ctrl + Mouse wheel"))) + m_c->object_clipper()->set_position(clp_dist, true); +#else if (m_imgui->slider_float("##clp_dist", &clp_dist, 0.f, 1.f, "%.2f")) m_c->object_clipper()->set_position(clp_dist, true); if (ImGui::IsItemHovered()) m_imgui->tooltip(_L("Ctrl + Mouse wheel"), max_tooltip_width); +#endif // ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT ImGui::Separator(); if (m_imgui->button(m_desc.at("remove_all"))) { diff --git a/src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.hpp b/src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.hpp index 0991527f1..e5336869e 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.hpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.hpp @@ -111,9 +111,6 @@ protected: bool on_is_activable() const override; wxString handle_snapshot_action_name(bool shift_down, Button button_down) const override; - - std::string get_gizmo_entering_text() const override { return _u8L("Entering Multimaterial painting"); } - std::string get_gizmo_leaving_text() const override { return _u8L("Leaving Multimaterial painting"); } std::string get_action_snapshot_name() override { return _u8L("Multimaterial painting editing"); } size_t m_first_selected_extruder_idx = 0; diff --git a/src/slic3r/GUI/Gizmos/GLGizmoPainterBase.hpp b/src/slic3r/GUI/Gizmos/GLGizmoPainterBase.hpp index eb09715da..2705f82d3 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoPainterBase.hpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoPainterBase.hpp @@ -99,20 +99,11 @@ protected: GLPaintContour m_paint_contour; }; -class GLGizmoTransparentRender -{ -public: - // Following function renders the triangles and cursor. Having this separated - // from usual on_render method allows to render them before transparent - // objects, so they can be seen inside them. The usual on_render is called - // after all volumes (including transparent ones) are rendered. - virtual void render_painter_gizmo() const = 0; -}; // Following class is a base class for a gizmo with ability to paint on mesh // using circular blush (such as FDM supports gizmo and seam painting gizmo). // The purpose is not to duplicate code related to mesh painting. -class GLGizmoPainterBase : public GLGizmoTransparentRender, public GLGizmoBase +class GLGizmoPainterBase : public GLGizmoBase { private: ObjectID m_old_mo_id; @@ -125,6 +116,12 @@ public: virtual void set_painter_gizmo_data(const Selection& selection); virtual bool gizmo_event(SLAGizmoEventType action, const Vec2d& mouse_position, bool shift_down, bool alt_down, bool control_down); + // Following function renders the triangles and cursor. Having this separated + // from usual on_render method allows to render them before transparent + // objects, so they can be seen inside them. The usual on_render is called + // after all volumes (including transparent ones) are rendered. + virtual void render_painter_gizmo() const = 0; + protected: virtual void render_triangles(const Selection& selection) const; void render_cursor() const; @@ -230,9 +227,6 @@ protected: virtual wxString handle_snapshot_action_name(bool shift_down, Button button_down) const = 0; - virtual std::string get_gizmo_entering_text() const = 0; - virtual std::string get_gizmo_leaving_text() const = 0; - friend class ::Slic3r::GUI::GLGizmoMmuSegmentation; }; diff --git a/src/slic3r/GUI/Gizmos/GLGizmoRotate.cpp b/src/slic3r/GUI/Gizmos/GLGizmoRotate.cpp index 54fcfc2c7..52e62f157 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoRotate.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoRotate.cpp @@ -512,9 +512,21 @@ GLGizmoRotate3D::RotoptimzeWindow::RotoptimzeWindow(ImGuiWrapper * imgui, y = std::min(y, alignment.bottom_limit - win_h); ImGui::SetWindowPos(ImVec2(x, y), ImGuiCond_Always); - ImGui::PushItemWidth(300.f); + float max_text_w = 0.; + auto padding = ImGui::GetStyle().FramePadding; + padding.x *= 2.f; + padding.y *= 2.f; - if (ImGui::BeginCombo(_L("Choose goal").c_str(), RotoptimizeJob::get_method_name(state.method_id).c_str())) { + for (size_t i = 0; i < RotoptimizeJob::get_methods_count(); ++i) { + float w = + ImGui::CalcTextSize(RotoptimizeJob::get_method_name(i).c_str()).x + + padding.x + ImGui::GetFrameHeight(); + max_text_w = std::max(w, max_text_w); + } + + ImGui::PushItemWidth(max_text_w); + + if (ImGui::BeginCombo("", RotoptimizeJob::get_method_name(state.method_id).c_str())) { for (size_t i = 0; i < RotoptimizeJob::get_methods_count(); ++i) { if (ImGui::Selectable(RotoptimizeJob::get_method_name(i).c_str())) { state.method_id = i; @@ -530,12 +542,18 @@ GLGizmoRotate3D::RotoptimzeWindow::RotoptimzeWindow(ImGuiWrapper * imgui, ImGui::EndCombo(); } + ImVec2 sz = ImGui::GetItemRectSize(); + if (ImGui::IsItemHovered()) ImGui::SetTooltip("%s", RotoptimizeJob::get_method_description(state.method_id).c_str()); ImGui::Separator(); - if ( imgui->button(_L("Optimize")) ) { + auto btn_txt = _L("Apply"); + auto btn_txt_sz = ImGui::CalcTextSize(btn_txt.c_str()); + ImVec2 button_sz = {btn_txt_sz.x + padding.x, btn_txt_sz.y + padding.y}; + ImGui::SetCursorPosX(padding.x + sz.x - button_sz.x); + if ( imgui->button(btn_txt) ) { wxGetApp().plater()->optimize_rotation(); } } diff --git a/src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp b/src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp index 6971e7cdb..b4378319c 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp @@ -128,9 +128,13 @@ void GLGizmoSeam::on_render_input_window(float x, float y, float bottom_limit) m_imgui->text(m_desc.at("cursor_size")); ImGui::SameLine(sliders_width); ImGui::PushItemWidth(window_width - sliders_width); +#if ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT + m_imgui->slider_float("##cursor_radius", &m_cursor_radius, CursorRadiusMin, CursorRadiusMax, "%.2f", 1.0f, true, _L("Alt + Mouse wheel")); +#else m_imgui->slider_float("##cursor_radius", &m_cursor_radius, CursorRadiusMin, CursorRadiusMax, "%.2f"); if (ImGui::IsItemHovered()) m_imgui->tooltip(_L("Alt + Mouse wheel"), max_tooltip_width); +#endif // ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT ImGui::AlignTextToFramePadding(); m_imgui->text(m_desc.at("cursor_type")); @@ -168,11 +172,16 @@ void GLGizmoSeam::on_render_input_window(float x, float y, float bottom_limit) ImGui::SameLine(sliders_width); ImGui::PushItemWidth(window_width - sliders_width); auto clp_dist = float(m_c->object_clipper()->get_position()); +#if ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT + if (m_imgui->slider_float("##clp_dist", &clp_dist, 0.f, 1.f, "%.2f", 1.0f, true, _L("Ctrl + Mouse wheel"))) + m_c->object_clipper()->set_position(clp_dist, true); +#else if (m_imgui->slider_float("##clp_dist", &clp_dist, 0.f, 1.f, "%.2f")) m_c->object_clipper()->set_position(clp_dist, true); if (ImGui::IsItemHovered()) m_imgui->tooltip(_L("Ctrl + Mouse wheel"), max_tooltip_width); +#endif // ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT ImGui::Separator(); if (m_imgui->button(m_desc.at("remove_all"))) { diff --git a/src/slic3r/GUI/Gizmos/GLGizmoSeam.hpp b/src/slic3r/GUI/Gizmos/GLGizmoSeam.hpp index 408c2ec4c..624a197bd 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoSeam.hpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoSeam.hpp @@ -20,8 +20,6 @@ protected: wxString handle_snapshot_action_name(bool shift_down, Button button_down) const override; - std::string get_gizmo_entering_text() const override { return _u8L("Entering Seam painting"); } - std::string get_gizmo_leaving_text() const override { return _u8L("Leaving Seam painting"); } std::string get_action_snapshot_name() override { return _u8L("Paint-on seam editing"); } private: diff --git a/src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp b/src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp index c72f744e1..9f5990e23 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp @@ -1,5 +1,4 @@ #include "GLGizmoSimplify.hpp" -#include "slic3r/GUI/3DScene.hpp" #include "slic3r/GUI/GLCanvas3D.hpp" #include "slic3r/GUI/GUI_App.hpp" #include "slic3r/GUI/GUI_ObjectManipulation.hpp" @@ -10,51 +9,85 @@ #include "libslic3r/Model.hpp" #include "libslic3r/QuadricEdgeCollapse.hpp" +#include + +#include + namespace Slic3r::GUI { +// Extend call after only when Simplify gizmo is still alive +static void call_after_if_active(std::function fn, GUI_App* app = &wxGetApp()) +{ + // check application GUI + if (app == nullptr) return; + app->CallAfter([fn, app]() { + // app must exist because it call this + // if (app == nullptr) return; + const Plater *plater = app->plater(); + if (plater == nullptr) return; + const GLCanvas3D *canvas = plater->canvas3D(); + if (canvas == nullptr) return; + const GLGizmosManager &mng = canvas->get_gizmos_manager(); + // check if simplify is still activ gizmo + if (mng.get_current_type() != GLGizmosManager::Simplify) return; + fn(); + }); +} + +static ModelVolume* get_model_volume(const Selection& selection, Model& model) +{ + const Selection::IndicesList& idxs = selection.get_volume_idxs(); + // only one selected volume + if (idxs.size() != 1) + return nullptr; + const GLVolume* selected_volume = selection.get_volume(*idxs.begin()); + if (selected_volume == nullptr) + return nullptr; + + const GLVolume::CompositeID& cid = selected_volume->composite_id; + const ModelObjectPtrs& objs = model.objects; + if (cid.object_id < 0 || objs.size() <= static_cast(cid.object_id)) + return nullptr; + const ModelObject* obj = objs[cid.object_id]; + if (cid.volume_id < 0 || obj->volumes.size() <= static_cast(cid.volume_id)) + return nullptr; + return obj->volumes[cid.volume_id]; +} + GLGizmoSimplify::GLGizmoSimplify(GLCanvas3D & parent, const std::string &icon_filename, unsigned int sprite_id) : GLGizmoBase(parent, icon_filename, -1) - , m_state(State::settings) - , m_is_valid_result(false) - , m_exist_preview(false) - , m_progress(0) , m_volume(nullptr) - , m_obj_index(0) - , m_need_reload(false) , m_show_wireframe(false) , m_move_to_center(false) // translation for GUI size , tr_mesh_name(_u8L("Mesh name")) , tr_triangles(_u8L("Triangles")) - , tr_preview(_u8L("Preview")) , tr_detail_level(_u8L("Detail level")) , tr_decimate_ratio(_u8L("Decimate ratio")) - // for wireframe - , m_wireframe_VBO_id(0) - , m_wireframe_IBO_id(0) - , m_wireframe_IBO_size(0) {} -GLGizmoSimplify::~GLGizmoSimplify() { - m_state = State::canceling; - if (m_worker.joinable()) m_worker.join(); - free_gpu(); +GLGizmoSimplify::~GLGizmoSimplify() +{ + stop_worker_thread_request(); + if (m_worker.joinable()) + m_worker.join(); + m_glmodel.reset(); } bool GLGizmoSimplify::on_esc_key_down() { - if (m_state == State::settings || m_state == State::canceling) + return false; + /*if (!m_is_worker_running) return false; - - m_state = State::canceling; - return true; + stop_worker_thread_request(); + return true;*/ } // while opening needs GLGizmoSimplify to set window position void GLGizmoSimplify::add_simplify_suggestion_notification( const std::vector &object_ids, - const ModelObjectPtrs & objects, + const std::vector& objects, NotificationManager & manager) { std::vector big_ids; @@ -74,14 +107,10 @@ void GLGizmoSimplify::add_simplify_suggestion_notification( if (big_ids.empty()) return; for (size_t object_id : big_ids) { - std::string t = _u8L( - "Processing model '@object_name' with more than 1M triangles " + std::string t = GUI::format(_u8L( + "Processing model '%1%' with more than 1M triangles " "could be slow. It is highly recommend to reduce " - "amount of triangles."); - t.replace(t.find("@object_name"), sizeof("@object_name") - 1, - objects[object_id]->name); - // std::stringstream text; - // text << t << "\n"; + "amount of triangles."), objects[object_id]->name); std::string hypertext = _u8L("Simplify model"); std::function open_simplify = @@ -116,39 +145,47 @@ void GLGizmoSimplify::on_render_input_window(float x, float y, float bottom_limi { create_gui_cfg(); const Selection &selection = m_parent.get_selection(); - int obj_index = selection.get_object_idx(); - ModelVolume *act_volume = get_volume(selection, wxGetApp().plater()->model()); + const ModelVolume *act_volume = get_model_volume(selection, wxGetApp().plater()->model()); if (act_volume == nullptr) { - switch (m_state) { - case State::settings: close(); break; - case State::canceling: break; - default: m_state = State::canceling; - } + stop_worker_thread_request(); + close(); return; } + bool is_cancelling = false; + bool is_worker_running = false; + bool is_result_ready = false; + int progress = 0; + { + std::lock_guard lk(m_state_mutex); + is_cancelling = m_state.status == State::cancelling; + is_worker_running = m_state.status == State::running; + is_result_ready = bool(m_state.result); + progress = m_state.progress; + } + + // Whether to trigger calculation after rendering is done. + bool start_process = false; + + // Check selection of new volume // Do not reselect object when processing - if (act_volume != m_volume && m_state == State::settings) { + if (act_volume != m_volume) { bool change_window_position = (m_volume == nullptr); // select different model - if (m_volume != nullptr && m_original_its.has_value()) { - set_its(*m_original_its); - } // close suggestion notification auto notification_manager = wxGetApp().plater()->get_notification_manager(); notification_manager->remove_simplify_suggestion_with_id(act_volume->get_object()->id()); - m_obj_index = obj_index; // to remember correct object m_volume = act_volume; - m_original_its = {}; m_configuration.decimate_ratio = 50.; // default value m_configuration.fix_count_by_ratio(m_volume->mesh().its.indices.size()); - m_is_valid_result = false; - m_exist_preview = false; - init_wireframe(); - live_preview(); + init_model(m_volume->mesh().its); + + // Start processing. If we switched from another object, process will + // stop the background thread and it will restart itself later. + start_process = true; // set window position if (m_move_to_center && change_window_position) { @@ -179,12 +216,6 @@ void GLGizmoSimplify::on_render_input_window(float x, float y, float bottom_limi int flag = ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoCollapse; m_imgui->begin(on_get_name(), flag); - - size_t triangle_count = m_volume->mesh().its.indices.size(); - // already reduced mesh - if (m_original_its.has_value()) - triangle_count = m_original_its->indices.size(); - m_imgui->text_colored(ImGuiWrapper::COL_ORANGE_LIGHT, tr_mesh_name + ":"); ImGui::SameLine(m_gui_cfg->top_left_width); std::string name = m_volume->name; @@ -193,21 +224,16 @@ void GLGizmoSimplify::on_render_input_window(float x, float y, float bottom_limi m_imgui->text(name); m_imgui->text_colored(ImGuiWrapper::COL_ORANGE_LIGHT, tr_triangles + ":"); ImGui::SameLine(m_gui_cfg->top_left_width); - m_imgui->text(std::to_string(triangle_count)); - /* - m_imgui->text_colored(ImGuiWrapper::COL_ORANGE_LIGHT, tr_preview + ":"); - ImGui::SameLine(m_gui_cfg->top_left_width); - if (m_exist_preview) { - m_imgui->text(std::to_string(m_volume->mesh().its.indices.size())); - } else { - m_imgui->text("---"); - }*/ + + size_t orig_triangle_count = m_volume->mesh().its.indices.size(); + m_imgui->text(std::to_string(orig_triangle_count)); + ImGui::Separator(); if(ImGui::RadioButton("##use_error", !m_configuration.use_count)) { m_configuration.use_count = !m_configuration.use_count; - live_preview(); + start_process = true; } ImGui::SameLine(); m_imgui->disabled_begin(m_configuration.use_count); @@ -232,21 +258,21 @@ void GLGizmoSimplify::on_render_input_window(float x, float y, float bottom_limi case 3: m_configuration.max_error = 0.5f; break; case 4: m_configuration.max_error = 1.f; break; } - live_preview(); + start_process = true; } m_imgui->disabled_end(); // !use_count if (ImGui::RadioButton("##use_count", m_configuration.use_count)) { m_configuration.use_count = !m_configuration.use_count; - live_preview(); + start_process = true; } ImGui::SameLine(); // show preview result triangle count (percent) - if (m_need_reload && !m_configuration.use_count) { - m_configuration.wanted_count = static_cast(m_volume->mesh().its.indices.size()); + if (!m_configuration.use_count) { + m_configuration.wanted_count = static_cast(m_triangle_count); m_configuration.decimate_ratio = - (1.0f - (m_configuration.wanted_count / (float) triangle_count)) * 100.f; + (1.0f - (m_configuration.wanted_count / (float) orig_triangle_count)) * 100.f; } m_imgui->disabled_begin(!m_configuration.use_count); @@ -256,13 +282,13 @@ void GLGizmoSimplify::on_render_input_window(float x, float y, float bottom_limi const char * format = (m_configuration.decimate_ratio > 10)? "%.0f %%": ((m_configuration.decimate_ratio > 1)? "%.1f %%":"%.2f %%"); - if (ImGui::SliderFloat("##decimate_ratio", &m_configuration.decimate_ratio, 0.f, 100.f, format)) { + if(m_imgui->slider_float("##decimate_ratio", &m_configuration.decimate_ratio, 0.f, 100.f, format)){ if (m_configuration.decimate_ratio < 0.f) m_configuration.decimate_ratio = 0.01f; if (m_configuration.decimate_ratio > 100.f) m_configuration.decimate_ratio = 100.f; - m_configuration.fix_count_by_ratio(triangle_count); - live_preview(); + m_configuration.fix_count_by_ratio(orig_triangle_count); + start_process = true; } ImGui::NewLine(); @@ -270,79 +296,37 @@ void GLGizmoSimplify::on_render_input_window(float x, float y, float bottom_limi ImGui::Text(_u8L("%d triangles").c_str(), m_configuration.wanted_count); m_imgui->disabled_end(); // use_count - if (ImGui::Checkbox(_u8L("Show wireframe").c_str(), &m_show_wireframe)) { - if (m_show_wireframe) init_wireframe(); - else free_gpu(); - } + ImGui::Checkbox(_u8L("Show wireframe").c_str(), &m_show_wireframe); - bool is_canceling = m_state == State::canceling; - m_imgui->disabled_begin(is_canceling); - if (m_imgui->button(_u8L("Cancel"))) { - if (m_state == State::settings) { - if (m_original_its.has_value()) { - set_its(*m_original_its); - m_state = State::close_on_end; - } else { - close(); - } - } else { - m_state = State::canceling; - } - } else if (ImGui::IsItemHovered(ImGuiHoveredFlags_AllowWhenDisabled) && is_canceling) - ImGui::SetTooltip("%s", _u8L("Operation already canceling. Please wait few seconds.").c_str()); - m_imgui->disabled_end(); // state canceling + m_imgui->disabled_begin(is_cancelling); + if (m_imgui->button(_L("Close"))) { + close(); + } else if (ImGui::IsItemHovered(ImGuiHoveredFlags_AllowWhenDisabled) && is_cancelling) + ImGui::SetTooltip("%s", _u8L("Operation already cancelling. Please wait few seconds.").c_str()); + m_imgui->disabled_end(); // state cancelling ImGui::SameLine(); - bool is_processing = m_state != State::settings; - m_imgui->disabled_begin(is_processing); - if (m_imgui->button(_u8L("Apply"))) { - if (!m_is_valid_result) { - m_state = State::close_on_end; - process(); - } else if (m_exist_preview) { - // use preview and close - after_apply(); - } else { // no changes made - close(); - } - } else if (ImGui::IsItemHovered(ImGuiHoveredFlags_AllowWhenDisabled) && is_processing) + m_imgui->disabled_begin(is_worker_running || ! is_result_ready); + if (m_imgui->button(_L("Apply"))) { + apply_simplify(); + } else if (ImGui::IsItemHovered(ImGuiHoveredFlags_AllowWhenDisabled) && is_worker_running) ImGui::SetTooltip("%s", _u8L("Can't apply when proccess preview.").c_str()); m_imgui->disabled_end(); // state !settings // draw progress bar - if (is_processing) { // apply or preview + if (is_worker_running) { // apply or preview ImGui::SameLine(m_gui_cfg->bottom_left_width); // draw progress bar - char buf[32]; - sprintf(buf, L("Process %d / 100"), m_progress); - ImGui::ProgressBar(m_progress / 100., ImVec2(m_gui_cfg->input_width, 0.f), buf); + std::string progress_text = GUI::format(_L("Process %1% / 100"), std::to_string(progress)); + ImVec2 progress_size(m_gui_cfg->input_width, 0.f); + ImGui::ProgressBar(progress / 100., progress_size, progress_text.c_str()); } m_imgui->end(); - - // refresh view when needed - if (m_need_reload) { - m_need_reload = false; - bool close_on_end = (m_state == State::close_on_end); - // Reload visualization of mesh - change VBO, FBO on GPU - m_parent.reload_scene(true); - // set m_state must be before close() !!! - m_state = State::settings; - if (close_on_end) after_apply(); - else init_wireframe(); - // Fix warning icon in object list - wxGetApp().obj_list()->update_item_error_icon(m_obj_index, -1); - } + if (start_process) + process(); } -void GLGizmoSimplify::after_apply() { - // set flag to NOT revert changes when switch GLGizmoBase::m_state - m_exist_preview = false; - // fix hollowing, sla support points, modifiers, ... - auto plater = wxGetApp().plater(); - plater->changed_mesh(m_obj_index); - close(); -} void GLGizmoSimplify::close() { // close gizmo == open it again @@ -350,117 +334,158 @@ void GLGizmoSimplify::close() { gizmos_mgr.open_gizmo(GLGizmosManager::EType::Simplify); } -void GLGizmoSimplify::live_preview() { - m_is_valid_result = false; - if (m_state != State::settings) { - // already canceling process - if (m_state == State::canceling) return; +void GLGizmoSimplify::stop_worker_thread_request() +{ + std::lock_guard lk(m_state_mutex); + if (m_state.status == State::running) + m_state.status = State::Status::cancelling; +} - // wait until cancel - if (m_worker.joinable()) { - m_state = State::canceling; - m_dealy_process_cv.notify_one(); - m_worker.join(); + +// Following is called from a UI thread when the worker terminates +// worker calls it through a CallAfter. +void GLGizmoSimplify::worker_finished() +{ + { + std::lock_guard lk(m_state_mutex); + if (m_state.status == State::running) { + // Someone started the worker again, before this callback + // was called. Do nothing. + return; } } - - m_state = State::preview; - process(); + if (m_worker.joinable()) + m_worker.join(); + if (GLGizmoBase::m_state == Off) + return; + if (m_state.result) + init_model(*m_state.result); + if (m_state.config != m_configuration || m_state.mv != m_volume) { + // Settings were changed, restart the worker immediately. + process(); + } + request_rerender(true); } void GLGizmoSimplify::process() { - if (m_volume == nullptr) return; - if (m_volume->mesh().its.indices.empty()) return; - size_t count_triangles = m_volume->mesh().its.indices.size(); - // Is neccessary simplification - if ((m_configuration.use_count && m_configuration.wanted_count >= count_triangles) || - (!m_configuration.use_count && m_configuration.max_error <= 0.f)) { - - // Exist different original volume? - if (m_original_its.has_value() && - m_original_its->indices.size() != count_triangles) { - indexed_triangle_set its = *m_original_its; // copy - set_its(its); - } - m_is_valid_result = true; + if (m_volume == nullptr || m_volume->mesh().its.indices.empty()) + return; - // re-render bargraph - set_dirty(); - m_parent.schedule_extra_frame(0); + bool configs_match = false; + bool result_valid = false; + bool is_worker_running = false; + { + std::lock_guard lk(m_state_mutex); + configs_match = (m_volume == m_state.mv && m_state.config == m_configuration); + result_valid = bool(m_state.result); + is_worker_running = m_state.status == State::running; + } + + if ((result_valid || is_worker_running) && configs_match) { + // Either finished or waiting for result already. Nothing to do. return; } - // when not store original volume store it for cancelation - if (!m_original_its.has_value()) { - m_original_its = m_volume->mesh().its; // copy - - // store previous state - auto plater = wxGetApp().plater(); - plater->take_snapshot(_u8L("Simplify ") + m_volume->name); - plater->clear_before_change_mesh(m_obj_index); + if (is_worker_running && ! configs_match) { + // Worker is running with outdated config. Stop it. It will + // restart itself when cancellation is done. + stop_worker_thread_request(); + return; } - - m_progress = 0; - if (m_worker.joinable()) m_worker.join(); - m_worker = std::thread([this]() { - {// delay before process - std::unique_lock lk(m_state_mutex); - auto is_modify = [this]() { return m_state == State::canceling; }; - if (m_dealy_process_cv.wait_for(lk, m_gui_cfg->prcess_delay, is_modify)) { - // exist modification - m_state = State::settings; - request_rerender(); - return; - } - } + if (m_worker.joinable()) { + // This can happen when process() is called after previous worker terminated, + // but before the worker_finished callback was called. In this case, just join the thread, + // the callback will check this and do nothing. + m_worker.join(); + } - // store original triangles - uint32_t triangle_count = (m_configuration.use_count) ? m_configuration.wanted_count : 0; - float max_error = (!m_configuration.use_count) ? m_configuration.max_error : std::numeric_limits::max(); + // Copy configuration that will be used. + m_state.config = m_configuration; + m_state.mv = m_volume; + m_state.status = State::running; - std::function throw_on_cancel = [&]() { - if (m_state == State::canceling) { + // Create a copy of current mesh to pass to the worker thread. + // Using unique_ptr instead of pass-by-value to avoid an extra + // copy (which would happen when passing to std::thread). + auto its = std::make_unique(m_volume->mesh().its); + + m_worker = std::thread([this](std::unique_ptr its) { + + // Checks that the UI thread did not request cancellation, throws if so. + std::function throw_on_cancel = [this]() { + std::lock_guard lk(m_state_mutex); + if (m_state.status == State::cancelling) throw SimplifyCanceledException(); - } }; - int64_t last = 0; - std::function statusfn = [this, &last](int percent) { - m_progress = percent; - - // check max 4fps - int64_t now = m_parent.timestamp_now(); - if ((now - last) < 250) return; - last = now; - - request_rerender(); + // Called by worker thread, updates progress bar. + // Using CallAfter so the rerequest function is run in UI thread. + std::function statusfn = [this](int percent) { + std::lock_guard lk(m_state_mutex); + m_state.progress = percent; + call_after_if_active([this]() { request_rerender(); }); }; - indexed_triangle_set collapsed = *m_original_its; // copy - - try { - its_quadric_edge_collapse(collapsed, triangle_count, &max_error, throw_on_cancel, statusfn); - set_its(collapsed); - m_is_valid_result = true; - m_exist_preview = true; - } catch (SimplifyCanceledException &) { - // set state out of main thread - m_state = State::settings; + // Initialize. + uint32_t triangle_count = 0; + float max_error = std::numeric_limits::max(); + { + std::lock_guard lk(m_state_mutex); + if (m_state.config.use_count) + triangle_count = m_state.config.wanted_count; + if (! m_state.config.use_count) + max_error = m_state.config.max_error; + m_state.progress = 0; + m_state.result.reset(); + m_state.status = State::Status::running; } - // need to render last status fn to change bar graph to buttons - request_rerender(); - }); + + // Start the actual calculation. + try { + its_quadric_edge_collapse(*its, triangle_count, &max_error, throw_on_cancel, statusfn); + } catch (SimplifyCanceledException &) { + std::lock_guard lk(m_state_mutex); + m_state.status = State::idle; + } + + std::lock_guard lk(m_state_mutex); + if (m_state.status == State::Status::running) { + // We were not cancelled, the result is valid. + m_state.status = State::Status::idle; + m_state.result = std::move(its); + } + + // Update UI. Use CallAfter so the function is run on UI thread. + call_after_if_active([this]() { worker_finished(); }); + }, std::move(its)); } -void GLGizmoSimplify::set_its(indexed_triangle_set &its) { - if (m_volume == nullptr) return; // could appear after process - m_volume->set_mesh(its); - m_volume->calculate_convex_hull(); - m_volume->set_new_unique_id(); - m_volume->get_object()->invalidate_bounding_box(); - m_need_reload = true; +void GLGizmoSimplify::apply_simplify() { + + const Selection& selection = m_parent.get_selection(); + int object_idx = selection.get_object_idx(); + + auto plater = wxGetApp().plater(); + plater->take_snapshot(_u8L("Simplify ") + m_volume->name); + plater->clear_before_change_mesh(object_idx); + + ModelVolume* mv = get_model_volume(selection, wxGetApp().model()); + assert(mv == m_volume); + + mv->set_mesh(std::move(*m_state.result)); + m_state.result.reset(); + mv->calculate_convex_hull(); + mv->set_new_unique_id(); + mv->get_object()->invalidate_bounding_box(); + mv->get_object()->ensure_on_bed(true); // allow negative z + + // fix hollowing, sla support points, modifiers, ... + plater->changed_mesh(object_idx); + // Fix warning icon in object list + wxGetApp().obj_list()->update_item_error_icon(object_idx, -1); + close(); } bool GLGizmoSimplify::on_is_activable() const @@ -472,39 +497,11 @@ void GLGizmoSimplify::on_set_state() { // Closing gizmo. e.g. selecting another one if (GLGizmoBase::m_state == GLGizmoBase::Off) { - // can appear when delete objects - bool empty_selection = m_parent.get_selection().is_empty(); + m_parent.toggle_model_objects_visibility(true); - // cancel processing - if (empty_selection && - m_state != State::settings && - m_state != State::canceling) - m_state = State::canceling; - - // refuse outgoing during simlification - // object is not selected when it is deleted(cancel and close gizmo) - if (m_state != State::settings && !empty_selection) { - GLGizmoBase::m_state = GLGizmoBase::On; - auto notification_manager = wxGetApp().plater()->get_notification_manager(); - notification_manager->push_notification( - NotificationType::CustomNotification, - NotificationManager::NotificationLevel::PrintInfoNotificationLevel, - _u8L("ERROR: Wait until Simplification ends or Cancel process.")); - return; - } - - // revert preview - if (m_exist_preview) { - m_exist_preview = false; - if (exist_volume(m_volume)) { - set_its(*m_original_its); - m_parent.reload_scene(false); - m_need_reload = false; - } - } - - // invalidate selected model - m_volume = nullptr; + stop_worker_thread_request(); + m_volume = nullptr; // invalidate selected model + m_glmodel.reset(); } else if (GLGizmoBase::m_state == GLGizmoBase::On) { // when open by hyperlink it needs to show up request_rerender(); @@ -532,142 +529,95 @@ void GLGizmoSimplify::create_gui_cfg() { m_gui_cfg = cfg; } -void GLGizmoSimplify::request_rerender() { - wxGetApp().plater()->CallAfter([this]() { +void GLGizmoSimplify::request_rerender(bool force) { + int64_t now = m_parent.timestamp_now(); + if (force || now > m_last_rerender_timestamp + 250) { // 250 ms set_dirty(); m_parent.schedule_extra_frame(0); - }); + m_last_rerender_timestamp = now; + } } void GLGizmoSimplify::set_center_position() { m_move_to_center = true; } -bool GLGizmoSimplify::exist_volume(ModelVolume *volume) { - auto objs = wxGetApp().plater()->model().objects; - for (const auto &obj : objs) { - const auto &vlms = obj->volumes; - auto item = std::find(vlms.begin(), vlms.end(), volume); - if (item != vlms.end()) return true; - } - return false; -} -ModelVolume * GLGizmoSimplify::get_volume(const Selection &selection, Model &model) +void GLGizmoSimplify::init_model(const indexed_triangle_set& its) { - const Selection::IndicesList& idxs = selection.get_volume_idxs(); - if (idxs.empty()) return nullptr; - // only one selected volume - if (idxs.size() != 1) return nullptr; - const GLVolume *selected_volume = selection.get_volume(*idxs.begin()); - if (selected_volume == nullptr) return nullptr; + if (its.indices.empty()) + return; - const GLVolume::CompositeID &cid = selected_volume->composite_id; - const ModelObjectPtrs& objs = model.objects; - if (cid.object_id < 0 || objs.size() <= static_cast(cid.object_id)) - return nullptr; - const ModelObject* obj = objs[cid.object_id]; - if (cid.volume_id < 0 || obj->volumes.size() <= static_cast(cid.volume_id)) - return nullptr; - return obj->volumes[cid.volume_id]; -} - -const ModelVolume *GLGizmoSimplify::get_volume(const GLVolume::CompositeID &cid, const Model &model) -{ - const ModelObjectPtrs &objs = model.objects; - if (cid.object_id < 0 || objs.size() <= static_cast(cid.object_id)) - return nullptr; - const ModelObject *obj = objs[cid.object_id]; - if (cid.volume_id < 0 || obj->volumes.size() <= static_cast(cid.volume_id)) - return nullptr; - return obj->volumes[cid.volume_id]; -} - -void GLGizmoSimplify::init_wireframe() -{ - if (!m_show_wireframe) return; - const indexed_triangle_set &its = m_volume->mesh().its; - free_gpu(); - if (its.indices.empty()) return; - - // vertices - glsafe(::glGenBuffers(1, &m_wireframe_VBO_id)); - glsafe(::glBindBuffer(GL_ARRAY_BUFFER, m_wireframe_VBO_id)); - glsafe(::glBufferData(GL_ARRAY_BUFFER, - its.vertices.size() * 3 * sizeof(float), - its.vertices.data(), GL_STATIC_DRAW)); + m_glmodel.reset(); + m_glmodel.init_from(its); + m_parent.toggle_model_objects_visibility(true); // selected volume may have changed + m_parent.toggle_model_objects_visibility(false, m_c->selection_info()->model_object(), + m_c->selection_info()->get_active_instance(), m_volume); - // indices - std::vector contour_indices; - contour_indices.reserve((its.indices.size() * 3) / 2); - for (const auto &triangle : its.indices) { - for (size_t ti1 = 0; ti1 < 3; ++ti1) { - size_t ti2 = (ti1 == 2) ? 0 : (ti1 + 1); - if (triangle[ti1] > triangle[ti2]) continue; - contour_indices.emplace_back(triangle[ti1], triangle[ti2]); - } - } - glsafe(::glGenBuffers(1, &m_wireframe_IBO_id)); - glsafe(::glBindBuffer(GL_ARRAY_BUFFER, m_wireframe_IBO_id)); - glsafe(::glBufferData(GL_ARRAY_BUFFER, - 2*contour_indices.size() * sizeof(coord_t), - contour_indices.data(), GL_STATIC_DRAW)); - m_wireframe_IBO_size = contour_indices.size() * 2; - glsafe(::glBindBuffer(GL_ARRAY_BUFFER, 0)); + if (const Selection&sel = m_parent.get_selection(); sel.get_volume_idxs().size() == 1) + m_glmodel.set_color(-1, sel.get_volume(*sel.get_volume_idxs().begin())->color); + m_triangle_count = its.indices.size(); } -void GLGizmoSimplify::render_wireframe() const +void GLGizmoSimplify::on_render() { - // is initialized? - if (m_wireframe_VBO_id == 0 || m_wireframe_IBO_id == 0) return; - if (!m_show_wireframe) return; + if (! m_glmodel.is_initialized()) + return; const auto& selection = m_parent.get_selection(); const auto& volume_idxs = selection.get_volume_idxs(); if (volume_idxs.empty() || volume_idxs.size() != 1) return; const GLVolume *selected_volume = selection.get_volume(*volume_idxs.begin()); - - // check that selected model is wireframe initialized - if (m_volume != get_volume(selected_volume->composite_id, *m_parent.get_model())) + + // Check that the GLVolume still belongs to the ModelObject we work on. + if (m_volume != get_model_volume(selection, wxGetApp().model())) return; const Transform3d trafo_matrix = selected_volume->world_matrix(); glsafe(::glPushMatrix()); glsafe(::glMultMatrixd(trafo_matrix.data())); - auto *contour_shader = wxGetApp().get_shader("mm_contour"); - contour_shader->start_using(); - glsafe(::glDepthFunc(GL_LEQUAL)); - glsafe(::glLineWidth(1.0f)); + auto *gouraud_shader = wxGetApp().get_shader("gouraud_light"); + glsafe(::glPushAttrib(GL_DEPTH_TEST)); + glsafe(::glEnable(GL_DEPTH_TEST)); + gouraud_shader->start_using(); + m_glmodel.render(); + gouraud_shader->stop_using(); - glsafe(::glBindBuffer(GL_ARRAY_BUFFER, m_wireframe_VBO_id)); - glsafe(::glVertexPointer(3, GL_FLOAT, 3 * sizeof(float), nullptr)); - glsafe(::glEnableClientState(GL_VERTEX_ARRAY)); + if (m_show_wireframe) { + auto* contour_shader = wxGetApp().get_shader("mm_contour"); + contour_shader->start_using(); + glsafe(::glLineWidth(1.0f)); + glsafe(::glPolygonMode(GL_FRONT_AND_BACK, GL_LINE)); + //ScopeGuard offset_fill_guard([]() { glsafe(::glDisable(GL_POLYGON_OFFSET_FILL)); }); + //glsafe(::glEnable(GL_POLYGON_OFFSET_FILL)); + //glsafe(::glPolygonOffset(5.0, 5.0)); + m_glmodel.render(); + glsafe(::glPolygonMode(GL_FRONT_AND_BACK, GL_FILL)); + contour_shader->stop_using(); + } - glsafe(::glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, m_wireframe_IBO_id)); - glsafe(::glDrawElements(GL_LINES, m_wireframe_IBO_size, GL_UNSIGNED_INT, nullptr)); - glsafe(::glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0)); - - glsafe(::glDisableClientState(GL_VERTEX_ARRAY)); - - glsafe(::glBindBuffer(GL_ARRAY_BUFFER, 0)); - glsafe(::glDepthFunc(GL_LESS)); - - glsafe(::glPopMatrix()); // pop trafo - contour_shader->stop_using(); + glsafe(::glPopAttrib()); + glsafe(::glPopMatrix()); } -void GLGizmoSimplify::free_gpu() -{ - if (m_wireframe_VBO_id != 0) { - glsafe(::glDeleteBuffers(1, &m_wireframe_VBO_id)); - m_wireframe_VBO_id = 0; - } - if (m_wireframe_IBO_id != 0) { - glsafe(::glDeleteBuffers(1, &m_wireframe_IBO_id)); - m_wireframe_IBO_id = 0; - } +CommonGizmosDataID GLGizmoSimplify::on_get_requirements() const +{ + return CommonGizmosDataID( + int(CommonGizmosDataID::SelectionInfo)); +} + + +void GLGizmoSimplify::Configuration::fix_count_by_ratio(size_t triangle_count) +{ + if (decimate_ratio <= 0.f) + wanted_count = static_cast(triangle_count); + else if (decimate_ratio >= 100.f) + wanted_count = 0; + else + wanted_count = static_cast(std::round( + triangle_count * (100.f - decimate_ratio) / 100.f)); } } // namespace Slic3r::GUI diff --git a/src/slic3r/GUI/Gizmos/GLGizmoSimplify.hpp b/src/slic3r/GUI/Gizmos/GLGizmoSimplify.hpp index b978e9356..e6367ee27 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoSimplify.hpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoSimplify.hpp @@ -4,27 +4,18 @@ // Include GLGizmoBase.hpp before I18N.hpp as it includes some libigl code, // which overrides our localization "L" macro. #include "GLGizmoBase.hpp" -#include "GLGizmoPainterBase.hpp" // for render wireframe +#include "slic3r/GUI/3DScene.hpp" #include "admesh/stl.h" // indexed_triangle_set -#include #include -#include -#include -#include -#include - -#include // GLUint - -// for simplify suggestion -class ModelObjectPtrs; // std::vector namespace Slic3r { class ModelVolume; +class Model; namespace GUI { class NotificationManager; // for simplify suggestion -class GLGizmoSimplify: public GLGizmoBase, public GLGizmoTransparentRender // GLGizmoBase +class GLGizmoSimplify: public GLGizmoBase { public: GLGizmoSimplify(GLCanvas3D& parent, const std::string& icon_filename, unsigned int sprite_id); @@ -32,8 +23,9 @@ public: bool on_esc_key_down(); static void add_simplify_suggestion_notification( const std::vector &object_ids, - const ModelObjectPtrs & objects, + const std::vector & objects, NotificationManager & manager); + protected: virtual std::string on_get_name() const override; virtual void on_render_input_window(float x, float y, float bottom_limit) override; @@ -43,76 +35,75 @@ protected: // must implement virtual bool on_init() override { return true;}; - virtual void on_render() override{}; + virtual void on_render() override; virtual void on_render_for_picking() override{}; - // GLGizmoPainterBase - virtual void render_painter_gizmo() const override{ render_wireframe(); } + virtual CommonGizmosDataID on_get_requirements() const; + private: - void after_apply(); + void apply_simplify(); void close(); - void live_preview(); + void process(); - void set_its(indexed_triangle_set &its); + void stop_worker_thread_request(); + void worker_finished(); + void create_gui_cfg(); - void request_rerender(); + void request_rerender(bool force = false); + void init_model(const indexed_triangle_set& its); void set_center_position(); - // move to global functions - static ModelVolume *get_volume(const Selection &selection, Model &model); - static const ModelVolume *get_volume(const GLVolume::CompositeID &cid, const Model &model); - - // return false when volume was deleted - static bool exist_volume(ModelVolume *volume); - - std::atomic_bool m_is_valid_result; // differ what to do in apply - std::atomic_bool m_exist_preview; // set when process end - - bool m_move_to_center; // opening gizmo - - volatile int m_progress; // percent of done work - ModelVolume *m_volume; // keep pointer to actual working volume - size_t m_obj_index; - - std::optional m_original_its; - bool m_show_wireframe; - - volatile bool m_need_reload; // after simplify, glReload must be on main thread - - std::thread m_worker; - // wait before process - std::mutex m_state_mutex; - std::condition_variable m_dealy_process_cv; - - enum class State { - settings, - preview, // simplify to show preview - close_on_end, // simplify with close on end - canceling // after button click, before canceled - }; - volatile State m_state; struct Configuration { bool use_count = false; - // minimal triangle count float decimate_ratio = 50.f; // in percent - uint32_t wanted_count = 0; // initialize by percents + uint32_t wanted_count = 0; // initialize by percents + float max_error = 1.; // maximal quadric error - // maximal quadric error - float max_error = 1.; - - void fix_count_by_ratio(size_t triangle_count) - { - if (decimate_ratio <= 0.f) - wanted_count = static_cast(triangle_count); - else if (decimate_ratio >= 100.f) - wanted_count = 0; - else - wanted_count = static_cast(std::round( - triangle_count * (100.f - decimate_ratio) / 100.f)); + void fix_count_by_ratio(size_t triangle_count); + bool operator==(const Configuration& rhs) { + return (use_count == rhs.use_count && decimate_ratio == rhs.decimate_ratio + && wanted_count == rhs.wanted_count && max_error == rhs.max_error); } - } m_configuration; + bool operator!=(const Configuration& rhs) { + return ! (*this == rhs); + } + }; + + Configuration m_configuration; + + bool m_move_to_center; // opening gizmo + + const ModelVolume *m_volume; // keep pointer to actual working volume + + bool m_show_wireframe; + GLModel m_glmodel; + size_t m_triangle_count; // triangle count of the model currently shown + + // Timestamp of the last rerender request. Only accessed from UI thread. + int64_t m_last_rerender_timestamp = std::numeric_limits::min(); + + // Following struct is accessed by both UI and worker thread. + // Accesses protected by a mutex. + struct State { + enum Status { + idle, + running, + cancelling + }; + + Status status = idle; + int progress = 0; // percent of done work + Configuration config; // Configuration we started with. + const ModelVolume* mv = nullptr; + std::unique_ptr result; + }; + + std::thread m_worker; + std::mutex m_state_mutex; // guards m_state + State m_state; // accessed by both threads + // This configs holds GUI layout size given by translated texts. // etc. When language changes, GUI is recreated and this class constructed again, @@ -138,17 +129,9 @@ private: // translations used for calc window size const std::string tr_mesh_name; const std::string tr_triangles; - const std::string tr_preview; const std::string tr_detail_level; const std::string tr_decimate_ratio; - // rendering wireframe - void render_wireframe() const; - void init_wireframe(); - void free_gpu(); - GLuint m_wireframe_VBO_id, m_wireframe_IBO_id; - size_t m_wireframe_IBO_size; - // cancel exception class SimplifyCanceledException: public std::exception { diff --git a/src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp b/src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp index ccc67b630..9170db603 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp @@ -401,11 +401,20 @@ bool GLGizmoSlaSupports::gizmo_event(SLAGizmoEventType action, const Vec2d& mous for (size_t idx : points_idxs) points_inside.push_back(points[idx].cast()); - // Only select/deselect points that are actually visible + // Only select/deselect points that are actually visible. We want to check not only + // the point itself, but also the center of base of its cone, so the points don't hide + // under every miniature irregularity on the model. Remember the actual number and + // append the cone bases. + size_t orig_pts_num = points_inside.size(); + for (size_t idx : points_idxs) + points_inside.emplace_back((trafo.get_matrix().cast() * (m_editing_cache[idx].support_point.pos + m_editing_cache[idx].normal)).cast()); + for (size_t idx : m_c->raycaster()->raycaster()->get_unobscured_idxs( trafo, wxGetApp().plater()->get_camera(), points_inside, m_c->object_clipper()->get_clipping_plane())) { + if (idx >= orig_pts_num) // this is a cone-base, get index of point it belongs to + idx -= orig_pts_num; if (rectangle_status == GLSelectionRectangle::Deselect) unselect_point(points_idxs[idx]); else @@ -635,7 +644,11 @@ RENDER_AGAIN: if ((last_h != win_h) || (last_y != y)) { // ask canvas for another frame to render the window in the correct position +#if ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT + m_imgui->set_requires_extra_frame(); +#else m_parent.request_extra_frame(); +#endif // ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT if (last_h != win_h) last_h = win_h; if (last_y != y) diff --git a/src/slic3r/GUI/Gizmos/GLGizmosManager.cpp b/src/slic3r/GUI/Gizmos/GLGizmosManager.cpp index 316f80036..3104a8595 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmosManager.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmosManager.cpp @@ -483,7 +483,7 @@ void GLGizmosManager::render_painter_gizmo() const if (!m_enabled || m_current == Undefined) return; - auto *gizmo = dynamic_cast(get_current()); + auto *gizmo = dynamic_cast(get_current()); assert(gizmo); // check the precondition gizmo->render_painter_gizmo(); } @@ -1234,14 +1234,16 @@ bool GLGizmosManager::activate_gizmo(EType type) if (! m_parent.get_gizmos_manager().is_serializing() && old_gizmo->wants_enter_leave_snapshots()) Plater::TakeSnapshot snapshot(wxGetApp().plater(), - Slic3r::format(_utf8("Leaving %1%"), old_gizmo->get_name(false)), + Slic3r::format(_CTX_utf8("Leaving %1%", "undo/redo action name, placeholder " + "expands to a name of a gizmo being closed"), old_gizmo->get_name(false)), UndoRedo::SnapshotType::LeavingGizmoWithAction); } if (new_gizmo && ! m_parent.get_gizmos_manager().is_serializing() && new_gizmo->wants_enter_leave_snapshots()) Plater::TakeSnapshot snapshot(wxGetApp().plater(), - Slic3r::format(_utf8("Entering %1%"), new_gizmo->get_name(false)), + Slic3r::format(_CTX_utf8("Entering %1%", "undo/redo action name, placeholder " + "expands to a name of a gizmo being opened"), new_gizmo->get_name(false)), UndoRedo::SnapshotType::EnteringGizmo); m_current = type; diff --git a/src/slic3r/GUI/HintNotification.cpp b/src/slic3r/GUI/HintNotification.cpp index 21aecd15b..450067c48 100644 --- a/src/slic3r/GUI/HintNotification.cpp +++ b/src/slic3r/GUI/HintNotification.cpp @@ -413,9 +413,9 @@ void HintDatabase::load_hints_from_file(const boost::filesystem::path& path) // open preferences } else if(dict["hypertext_type"] == "preferences") { int page = static_cast(std::atoi(dict["hypertext_preferences_page"].c_str())); - HintData hint_data{ id_string, text1, weight, was_displayed, hypertext_text, follow_text, disabled_tags, enabled_tags, false, documentation_link, [page]() { wxGetApp().open_preferences(page); } }; + std::string item = dict["hypertext_preferences_item"]; + HintData hint_data{ id_string, text1, weight, was_displayed, hypertext_text, follow_text, disabled_tags, enabled_tags, false, documentation_link, [page, item]() { wxGetApp().open_preferences(page, item); } }; m_loaded_hints.emplace_back(hint_data); - } else if (dict["hypertext_type"] == "plater") { std::string item = dict["hypertext_plater_item"]; HintData hint_data{ id_string, text1, weight, was_displayed, hypertext_text, follow_text, disabled_tags, enabled_tags, true, documentation_link, [item]() { wxGetApp().plater()->canvas3D()->highlight_toolbar_item(item); } }; diff --git a/src/slic3r/GUI/ImGuiWrapper.cpp b/src/slic3r/GUI/ImGuiWrapper.cpp index 57e0ef5f5..92401f0ac 100644 --- a/src/slic3r/GUI/ImGuiWrapper.cpp +++ b/src/slic3r/GUI/ImGuiWrapper.cpp @@ -8,6 +8,10 @@ #include #include #include +#if ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT +#include +#include +#endif // ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT #include #include @@ -48,7 +52,9 @@ static const std::map font_icons = { {ImGui::RightArrowHoverButton , "notification_right_hover" }, {ImGui::PreferencesButton , "notification_preferences" }, {ImGui::PreferencesHoverButton , "notification_preferences_hover"}, - +#if ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT + {ImGui::SliderFloatEditBtnIcon, "edit_button" }, +#endif // ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT }; static const std::map font_icons_large = { {ImGui::CloseNotifButton , "notification_close" }, @@ -85,14 +91,6 @@ const ImVec4 ImGuiWrapper::COL_BUTTON_HOVERED = COL_ORANGE_LIGHT; const ImVec4 ImGuiWrapper::COL_BUTTON_ACTIVE = ImGuiWrapper::COL_BUTTON_HOVERED; ImGuiWrapper::ImGuiWrapper() - : m_glyph_ranges(nullptr) - , m_font_cjk(false) - , m_font_size(18.0) - , m_font_texture(0) - , m_style_scaling(1.0) - , m_mouse_buttons(0) - , m_disabled(false) - , m_new_frame_open(false) { ImGui::CreateContext(); @@ -520,6 +518,60 @@ void ImGuiWrapper::tooltip(const wxString &label, float wrap_width) ImGui::EndTooltip(); } +#if ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT +bool ImGuiWrapper::slider_float(const char* label, float* v, float v_min, float v_max, const char* format/* = "%.3f"*/, float power/* = 1.0f*/, bool clamp /*= true*/, const wxString& tooltip /*= ""*/, bool show_edit_btn /*= true*/) +{ + const float max_tooltip_width = ImGui::GetFontSize() * 20.0f; + + std::string str_label; + if (boost::algorithm::istarts_with(label, "##")) + str_label = std::string(label); + else { + str_label = std::string("##") + std::string(label); + this->text(label); + ImGui::SameLine(); + } + + bool ret = ImGui::SliderFloat(str_label.c_str(), v, v_min, v_max, format, power); + if (!tooltip.empty() && ImGui::IsItemHovered()) + this->tooltip(into_u8(tooltip).c_str(), max_tooltip_width); + + if (clamp) + *v = std::clamp(*v, v_min, v_max); + + if (show_edit_btn) { + const ImGuiStyle& style = ImGui::GetStyle(); + ImGui::PushStyleVar(ImGuiStyleVar_ItemSpacing, { 1, style.ItemSpacing.y }); + ImGui::SameLine(); + std::wstring btn_name = ImGui::SliderFloatEditBtnIcon + boost::nowide::widen(str_label); + ImGui::PushStyleColor(ImGuiCol_Button, { 0.25f, 0.25f, 0.25f, 0.0f }); + ImGui::PushStyleColor(ImGuiCol_ButtonHovered, { 0.5f, 0.5f, 0.5f, 1.0f }); + ImGui::PushStyleColor(ImGuiCol_ButtonActive, { 0.5f, 0.5f, 0.5f, 1.0f }); + if (ImGui::Button(into_u8(btn_name).c_str())) { + ImGui::SetKeyboardFocusHere(-1); + this->set_requires_extra_frame(); + } + ImGui::PopStyleColor(3); + if (ImGui::IsItemHovered()) + this->tooltip(into_u8(_L("Edit")).c_str(), max_tooltip_width); + + ImGui::PopStyleVar(); + } + + return ret; +} + +bool ImGuiWrapper::slider_float(const std::string& label, float* v, float v_min, float v_max, const char* format/* = "%.3f"*/, float power/* = 1.0f*/, bool clamp /*= true*/, const wxString& tooltip /*= ""*/, bool show_edit_btn /*= true*/) +{ + return this->slider_float(label.c_str(), v, v_min, v_max, format, power, clamp, tooltip, show_edit_btn); +} + +bool ImGuiWrapper::slider_float(const wxString& label, float* v, float v_min, float v_max, const char* format/* = "%.3f"*/, float power/* = 1.0f*/, bool clamp /*= true*/, const wxString& tooltip /*= ""*/, bool show_edit_btn /*= true*/) +{ + auto label_utf8 = into_u8(label); + return this->slider_float(label_utf8.c_str(), v, v_min, v_max, format, power, clamp, tooltip, show_edit_btn); +} +#else bool ImGuiWrapper::slider_float(const char* label, float* v, float v_min, float v_max, const char* format/* = "%.3f"*/, float power/* = 1.0f*/, bool clamp /*= true*/) { bool ret = ImGui::SliderFloat(label, v, v_min, v_max, format, power); @@ -538,6 +590,7 @@ bool ImGuiWrapper::slider_float(const wxString& label, float* v, float v_min, fl auto label_utf8 = into_u8(label); return this->slider_float(label_utf8.c_str(), v, v_min, v_max, format, power, clamp); } +#endif // ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT bool ImGuiWrapper::combo(const wxString& label, const std::vector& options, int& selection, ImGuiComboFlags flags) { @@ -1014,15 +1067,7 @@ std::vector ImGuiWrapper::load_svg(const std::string& bitmap_name { std::vector empty_vector; -#ifdef __WXMSW__ - std::string folder = "white\\"; -#else - std::string folder = "white/"; -#endif - if (!boost::filesystem::exists(Slic3r::var(folder + bitmap_name + ".svg"))) - folder.clear(); - - NSVGimage* image = ::nsvgParseFromFile(Slic3r::var(folder + bitmap_name + ".svg").c_str(), "px", 96.0f); + NSVGimage* image = ::nsvgParseFromFileWithReplace(Slic3r::var(bitmap_name + ".svg").c_str(), "px", 96.0f, { { "#808080", "#FFFFFF" } }); if (image == nullptr) return empty_vector; @@ -1194,6 +1239,7 @@ void ImGuiWrapper::init_input() io.KeyMap[ImGuiKey_Backspace] = WXK_BACK; io.KeyMap[ImGuiKey_Space] = WXK_SPACE; io.KeyMap[ImGuiKey_Enter] = WXK_RETURN; + io.KeyMap[ImGuiKey_KeyPadEnter] = WXK_NUMPAD_ENTER; io.KeyMap[ImGuiKey_Escape] = WXK_ESCAPE; io.KeyMap[ImGuiKey_A] = 'A'; io.KeyMap[ImGuiKey_C] = 'C'; diff --git a/src/slic3r/GUI/ImGuiWrapper.hpp b/src/slic3r/GUI/ImGuiWrapper.hpp index 7bc9267c1..8c17ca183 100644 --- a/src/slic3r/GUI/ImGuiWrapper.hpp +++ b/src/slic3r/GUI/ImGuiWrapper.hpp @@ -6,6 +6,8 @@ #include +#include + #include "libslic3r/Point.hpp" namespace Slic3r {namespace Search { @@ -25,15 +27,18 @@ namespace GUI { class ImGuiWrapper { - const ImWchar *m_glyph_ranges; + const ImWchar* m_glyph_ranges{ nullptr }; // Chinese, Japanese, Korean - bool m_font_cjk; - float m_font_size; - unsigned m_font_texture; - float m_style_scaling; - unsigned m_mouse_buttons; - bool m_disabled; - bool m_new_frame_open; + bool m_font_cjk{ false }; + float m_font_size{ 18.0 }; + unsigned m_font_texture{ 0 }; + float m_style_scaling{ 1.0 }; + unsigned m_mouse_buttons{ 0 }; + bool m_disabled{ false }; + bool m_new_frame_open{ false }; +#if ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT + bool m_requires_extra_frame{ false }; +#endif // ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT std::string m_clipboard_text; public: @@ -96,9 +101,15 @@ public: void tooltip(const wxString &label, float wrap_width); // Float sliders: Manually inserted values aren't clamped by ImGui.Using this wrapper function does (when clamp==true). +#if ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT + bool slider_float(const char* label, float* v, float v_min, float v_max, const char* format = "%.3f", float power = 1.0f, bool clamp = true, const wxString& tooltip = "", bool show_edit_btn = true); + bool slider_float(const std::string& label, float* v, float v_min, float v_max, const char* format = "%.3f", float power = 1.0f, bool clamp = true, const wxString& tooltip = "", bool show_edit_btn = true); + bool slider_float(const wxString& label, float* v, float v_min, float v_max, const char* format = "%.3f", float power = 1.0f, bool clamp = true, const wxString& tooltip = "", bool show_edit_btn = true); +#else bool slider_float(const char* label, float* v, float v_min, float v_max, const char* format = "%.3f", float power = 1.0f, bool clamp = true); bool slider_float(const std::string& label, float* v, float v_min, float v_max, const char* format = "%.3f", float power = 1.0f, bool clamp = true); bool slider_float(const wxString& label, float* v, float v_min, float v_max, const char* format = "%.3f", float power = 1.0f, bool clamp = true); +#endif // ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT // Use selection = -1 to not mark any option as selected bool combo(const wxString& label, const std::vector& options, int& selection, ImGuiComboFlags flags = 0); @@ -115,6 +126,12 @@ public: bool want_text_input() const; bool want_any_input() const; +#if ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT + bool requires_extra_frame() const { return m_requires_extra_frame; } + void set_requires_extra_frame() { m_requires_extra_frame = true; } + void reset_requires_extra_frame() { m_requires_extra_frame = false; } +#endif // ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT + static const ImVec4 COL_GREY_DARK; static const ImVec4 COL_GREY_LIGHT; static const ImVec4 COL_ORANGE_DARK; diff --git a/src/slic3r/GUI/Jobs/Job.cpp b/src/slic3r/GUI/Jobs/Job.cpp index 7590f2d42..9d0d4bc80 100644 --- a/src/slic3r/GUI/Jobs/Job.cpp +++ b/src/slic3r/GUI/Jobs/Job.cpp @@ -48,6 +48,9 @@ GUI::Job::Job(std::shared_ptr pri) if (evt.GetInt() == status_range() || m_worker_error) { // set back the original range and cancel callback m_progress->set_range(m_range); + // Make sure progress indicators get the last value of their range + // to make sure they close, fade out, whathever + m_progress->set_progress(m_range); m_progress->set_cancel_callback(); wxEndBusyCursor(); diff --git a/src/slic3r/GUI/Jobs/SLAImportJob.cpp b/src/slic3r/GUI/Jobs/SLAImportJob.cpp index c4465edba..0d42cec2d 100644 --- a/src/slic3r/GUI/Jobs/SLAImportJob.cpp +++ b/src/slic3r/GUI/Jobs/SLAImportJob.cpp @@ -122,7 +122,9 @@ public: std::string err; ConfigSubstitutions config_substitutions; - priv(Plater *plt) : plater{plt} {} + ImportDlg import_dlg; + + priv(Plater *plt) : plater{plt}, import_dlg{plt} {} }; SLAImportJob::SLAImportJob(std::shared_ptr pri, Plater *plater) @@ -176,14 +178,12 @@ void SLAImportJob::prepare() { reset(); - ImportDlg dlg{p->plater}; - - if (dlg.ShowModal() == wxID_OK) { - auto path = dlg.get_path(); + if (p->import_dlg.ShowModal() == wxID_OK) { + auto path = p->import_dlg.get_path(); auto nm = wxFileName(path); p->path = !nm.Exists(wxFILE_EXISTS_REGULAR) ? "" : nm.GetFullPath(); - p->sel = dlg.get_selection(); - p->win = dlg.get_marchsq_windowsize(); + p->sel = p->import_dlg.get_selection(); + p->win = p->import_dlg.get_marchsq_windowsize(); p->config_substitutions.clear(); } else { p->path = ""; @@ -236,7 +236,7 @@ void SLAImportJob::finalize() if (!p->mesh.empty()) { bool is_centered = false; - p->plater->sidebar().obj_list()->load_mesh_object(TriangleMesh{p->mesh}, + p->plater->sidebar().obj_list()->load_mesh_object(TriangleMesh{std::move(p->mesh)}, name, is_centered); } diff --git a/src/slic3r/GUI/MeshUtils.cpp b/src/slic3r/GUI/MeshUtils.cpp index 0f72d0f78..0c1e91c56 100644 --- a/src/slic3r/GUI/MeshUtils.cpp +++ b/src/slic3r/GUI/MeshUtils.cpp @@ -82,10 +82,10 @@ void MeshClipper::recalculate_triangles() const Transform3f& instance_matrix_no_translation_no_scaling = m_trafo.get_matrix(true,false,true).cast(); const Vec3f& scaling = m_trafo.get_scaling_factor().cast(); // Calculate clipping plane normal in mesh coordinates. - Vec3f up_noscale = instance_matrix_no_translation_no_scaling.inverse() * m_plane.get_normal().cast(); - Vec3d up (up_noscale(0)*scaling(0), up_noscale(1)*scaling(1), up_noscale(2)*scaling(2)); + const Vec3f up_noscale = instance_matrix_no_translation_no_scaling.inverse() * m_plane.get_normal().cast(); + const Vec3d up (up_noscale(0)*scaling(0), up_noscale(1)*scaling(1), up_noscale(2)*scaling(2)); // Calculate distance from mesh origin to the clipping plane (in mesh coordinates). - float height_mesh = m_plane.distance(m_trafo.get_offset()) * (up_noscale.norm()/up.norm()); + const float height_mesh = m_plane.distance(m_trafo.get_offset()) * (up_noscale.norm()/up.norm()); // Now do the cutting MeshSlicingParams slicing_params; @@ -94,7 +94,7 @@ void MeshClipper::recalculate_triangles() ExPolygons expolys = union_ex(slice_mesh(m_mesh->its, height_mesh, slicing_params)); if (m_negative_mesh && !m_negative_mesh->empty()) { - ExPolygons neg_expolys = union_ex(slice_mesh(m_negative_mesh->its, height_mesh, slicing_params)); + const ExPolygons neg_expolys = union_ex(slice_mesh(m_negative_mesh->its, height_mesh, slicing_params)); expolys = diff_ex(expolys, neg_expolys); } @@ -110,13 +110,13 @@ void MeshClipper::recalculate_triangles() // Now remove whatever ended up below the limiting plane (e.g. sinking objects). // First transform the limiting plane from world to mesh coords. // Note that inverse of tr transforms the plane from world to horizontal. - Vec3d normal_old = m_limiting_plane.get_normal().normalized(); - Vec3d normal_new = (tr.matrix().block<3,3>(0,0).transpose() * normal_old).normalized(); + const Vec3d normal_old = m_limiting_plane.get_normal().normalized(); + const Vec3d normal_new = (tr.matrix().block<3,3>(0,0).transpose() * normal_old).normalized(); // normal_new should now be the plane normal in mesh coords. To find the offset, // transform a point and set offset so it belongs to the transformed plane. Vec3d pt = Vec3d::Zero(); - double plane_offset = m_limiting_plane.get_data()[3]; + const double plane_offset = m_limiting_plane.get_data()[3]; if (std::abs(normal_old.z()) > 0.5) // normal is normalized, at least one of the coords if larger than sqrt(3)/3 = 0.57 pt.z() = - plane_offset / normal_old.z(); else if (std::abs(normal_old.y()) > 0.5) @@ -124,27 +124,25 @@ void MeshClipper::recalculate_triangles() else pt.x() = - plane_offset / normal_old.x(); pt = tr.inverse() * pt; - double offset = -(normal_new.dot(pt)); + const double offset = -(normal_new.dot(pt)); if (std::abs(normal_old.dot(m_plane.get_normal().normalized())) > 0.99) { // The cuts are parallel, show all or nothing. - if (offset < height_mesh) + if (normal_old.dot(m_plane.get_normal().normalized()) < 0.0 && offset < height_mesh) expolys.clear(); } else { // The cut is a horizontal plane defined by z=height_mesh. // ax+by+e=0 is the line of intersection with the limiting plane. // Normalized so a^2 + b^2 = 1. - double len = std::hypot(normal_new.x(), normal_new.y()); + const double len = std::hypot(normal_new.x(), normal_new.y()); if (len == 0.) return; - double a = normal_new.x() / len; - double b = normal_new.y() / len; - double e = (normal_new.z() * height_mesh + offset) / len; - if (b == 0.) - return; + const double a = normal_new.x() / len; + const double b = normal_new.y() / len; + const double e = (normal_new.z() * height_mesh + offset) / len; // We need a half-plane to limit the cut. Get angle of the intersecting line. - double angle = std::atan(-a/b); + double angle = (b != 0.0) ? std::atan(-a / b) : ((a < 0.0) ? -0.5 * M_PI : 0.5 * M_PI); if (b > 0) // select correct half-plane angle += M_PI; @@ -152,7 +150,7 @@ void MeshClipper::recalculate_triangles() // it so it lies on our line. This will be the figure to subtract // from the cut. The coordinates must not overflow after the transform, // make the rectangle a bit smaller. - coord_t size = (std::numeric_limits::max() - scale_(std::max(std::abs(e*a), std::abs(e*b)))) / 4; + const coord_t size = (std::numeric_limits::max() - scale_(std::max(std::abs(e*a), std::abs(e*b)))) / 4; Polygons ep {Polygon({Point(-size, 0), Point(size, 0), Point(size, 2*size), Point(-size, 2*size)})}; ep.front().rotate(angle); ep.front().translate(scale_(-e * a), scale_(-e * b)); @@ -169,7 +167,7 @@ void MeshClipper::recalculate_triangles() m_vertex_array.push_geometry(tr * Vec3d((*(it+0))(0), (*(it+0))(1), height_mesh), up); m_vertex_array.push_geometry(tr * Vec3d((*(it+1))(0), (*(it+1))(1), height_mesh), up); m_vertex_array.push_geometry(tr * Vec3d((*(it+2))(0), (*(it+2))(1), height_mesh), up); - size_t idx = it - m_triangles2d.cbegin(); + const size_t idx = it - m_triangles2d.cbegin(); m_vertex_array.push_triangle(idx, idx+1, idx+2); } m_vertex_array.finalize_geometry(true); diff --git a/src/slic3r/GUI/MsgDialog.cpp b/src/slic3r/GUI/MsgDialog.cpp index 9f3f34f84..961dfb5f3 100644 --- a/src/slic3r/GUI/MsgDialog.cpp +++ b/src/slic3r/GUI/MsgDialog.cpp @@ -7,6 +7,7 @@ #include #include #include +#include #include #include @@ -24,9 +25,9 @@ namespace Slic3r { namespace GUI { -MsgDialog::MsgDialog(wxWindow *parent, const wxString &title, const wxString &headline, wxWindowID button_id, wxBitmap bitmap) +MsgDialog::MsgDialog(wxWindow *parent, const wxString &title, const wxString &headline, long style, wxBitmap bitmap) : wxDialog(parent ? parent : dynamic_cast(wxGetApp().mainframe), wxID_ANY, title, wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER) - , boldfont(wxGetApp().normal_font()/*wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT)*/) + , boldfont(wxGetApp().normal_font()) , content_sizer(new wxBoxSizer(wxVERTICAL)) , btn_sizer(new wxBoxSizer(wxHORIZONTAL)) { @@ -35,6 +36,7 @@ MsgDialog::MsgDialog(wxWindow *parent, const wxString &title, const wxString &he this->SetFont(wxGetApp().normal_font()); this->CenterOnParent(); + auto *main_sizer = new wxBoxSizer(wxVERTICAL); auto *topsizer = new wxBoxSizer(wxHORIZONTAL); auto *rightsizer = new wxBoxSizer(wxVERTICAL); @@ -45,36 +47,51 @@ MsgDialog::MsgDialog(wxWindow *parent, const wxString &title, const wxString &he rightsizer->AddSpacer(VERT_SPACING); rightsizer->Add(content_sizer, 1, wxEXPAND); + btn_sizer->AddStretchSpacer(); - if (button_id != wxID_NONE) { - auto *button = new wxButton(this, button_id); - button->SetFocus(); - btn_sizer->Add(button); - } - - rightsizer->Add(btn_sizer, 0, wxALIGN_RIGHT); - - if (! bitmap.IsOk()) { - bitmap = create_scaled_bitmap("PrusaSlicer_192px.png", this, 192); - } - - logo = new wxStaticBitmap(this, wxID_ANY, wxNullBitmap); + logo = new wxStaticBitmap(this, wxID_ANY, bitmap.IsOk() ? bitmap : wxNullBitmap); topsizer->Add(logo, 0, wxALL, BORDER); topsizer->Add(rightsizer, 1, wxTOP | wxBOTTOM | wxRIGHT | wxEXPAND, BORDER); - SetSizerAndFit(topsizer); + main_sizer->Add(topsizer, 1, wxEXPAND); + main_sizer->Add(new StaticLine(this), 0, wxEXPAND | wxLEFT | wxRIGHT, HORIZ_SPACING); + main_sizer->Add(btn_sizer, 0, wxALL | wxEXPAND, VERT_SPACING); + + apply_style(style); + + SetSizerAndFit(main_sizer); } -void MsgDialog::add_btn(wxWindowID btn_id, bool set_focus /*= false*/) +void MsgDialog::add_btn(wxWindowID btn_id, bool set_focus /*= false*/, const wxString& label/* = wxString()*/) { - wxButton* btn = new wxButton(this, btn_id); + wxButton* btn = new wxButton(this, btn_id, label); if (set_focus) btn->SetFocus(); - btn_sizer->Add(btn, 0, wxRIGHT, HORIZ_SPACING); + btn_sizer->Add(btn, 0, wxLEFT | wxALIGN_CENTER_VERTICAL, HORIZ_SPACING); btn->Bind(wxEVT_BUTTON, [this, btn_id](wxCommandEvent&) { this->EndModal(btn_id); }); }; +void MsgDialog::apply_style(long style) +{ + if (style & wxOK) add_btn(wxID_OK, true); + if (style & wxYES) add_btn(wxID_YES, true); + if (style & wxNO) add_btn(wxID_NO); + if (style & wxCANCEL) add_btn(wxID_CANCEL); + + logo->SetBitmap( create_scaled_bitmap(style & wxICON_WARNING ? "exclamation" : + style & wxICON_INFORMATION ? "info" : + style & wxICON_QUESTION ? "question" : "PrusaSlicer", this, 64, style & wxICON_ERROR)); +} + +void MsgDialog::finalize() +{ + wxGetApp().UpdateDlgDarkUI(this); + Fit(); + this->CenterOnParent(); +} + + // Text shown as HTML, so that mouse selection and Ctrl-V to copy will work. static void add_msg_content(wxWindow* parent, wxBoxSizer* content_sizer, wxString msg, bool monospaced_font = false) { @@ -101,7 +118,7 @@ static void add_msg_content(wxWindow* parent, wxBoxSizer* content_sizer, wxStrin wxFont font = wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT); wxFont monospace = wxGetApp().code_font(); wxColour text_clr = wxGetApp().get_label_clr_default(); - wxColour bgr_clr = wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOW); + wxColour bgr_clr = parent->GetBackgroundColour(); //wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOW); auto text_clr_str = wxString::Format(wxT("#%02X%02X%02X"), text_clr.Red(), text_clr.Green(), text_clr.Blue()); auto bgr_clr_str = wxString::Format(wxT("#%02X%02X%02X"), bgr_clr.Red(), bgr_clr.Green(), bgr_clr.Blue()); const int font_size = font.GetPointSize(); @@ -140,27 +157,24 @@ static void add_msg_content(wxWindow* parent, wxBoxSizer* content_sizer, wxStrin msg_escaped = std::string("
") + msg_escaped + "
"; html->SetPage("" + wxString::FromUTF8(msg_escaped.data()) + ""); content_sizer->Add(html, 1, wxEXPAND); + wxGetApp().UpdateDarkUI(html); } // ErrorDialog ErrorDialog::ErrorDialog(wxWindow *parent, const wxString &msg, bool monospaced_font) : MsgDialog(parent, wxString::Format(_(L("%s error")), SLIC3R_APP_NAME), - wxString::Format(_(L("%s has encountered an error")), SLIC3R_APP_NAME), - wxID_NONE) + wxString::Format(_(L("%s has encountered an error")), SLIC3R_APP_NAME), wxOK) , msg(msg) { add_msg_content(this, content_sizer, msg, monospaced_font); - add_btn(wxID_OK, true); // Use a small bitmap with monospaced font, as the error text will not be wrapped. logo->SetBitmap(create_scaled_bitmap("PrusaSlicer_192px_grayscale.png", this, monospaced_font ? 48 : /*1*/84)); - wxGetApp().UpdateDlgDarkUI(this); - SetMaxSize(wxSize(-1, CONTENT_MAX_HEIGHT*wxGetApp().em_unit())); - Fit(); - this->CenterOnParent(); + + finalize(); } // WarningDialog @@ -170,19 +184,10 @@ WarningDialog::WarningDialog(wxWindow *parent, const wxString& caption/* = wxEmptyString*/, long style/* = wxOK*/) : MsgDialog(parent, caption.IsEmpty() ? wxString::Format(_L("%s warning"), SLIC3R_APP_NAME) : caption, - wxString::Format(_L("%s has a warning")+":", SLIC3R_APP_NAME), wxID_NONE) + wxString::Format(_L("%s has a warning")+":", SLIC3R_APP_NAME), style) { add_msg_content(this, content_sizer, message); - - if (style & wxOK) add_btn(wxID_OK, true); - if (style & wxYES) add_btn(wxID_YES); - if (style & wxNO) add_btn(wxID_NO); - - logo->SetBitmap(create_scaled_bitmap("PrusaSlicer_192px_grayscale.png", this, 84)); - - wxGetApp().UpdateDlgDarkUI(this); - Fit(); - this->CenterOnParent(); + finalize(); } #ifdef _WIN32 @@ -192,39 +197,52 @@ MessageDialog::MessageDialog(wxWindow* parent, const wxString& message, const wxString& caption/* = wxEmptyString*/, long style/* = wxOK*/) - : MsgDialog(parent, caption.IsEmpty() ? wxString::Format(_L("%s info"), SLIC3R_APP_NAME) : caption, wxEmptyString, wxID_NONE) + : MsgDialog(parent, caption.IsEmpty() ? wxString::Format(_L("%s info"), SLIC3R_APP_NAME) : caption, wxEmptyString, style) +{ + add_msg_content(this, content_sizer, message); + finalize(); +} + + +// RichMessageDialog + +RichMessageDialog::RichMessageDialog(wxWindow* parent, + const wxString& message, + const wxString& caption/* = wxEmptyString*/, + long style/* = wxOK*/) + : MsgDialog(parent, caption.IsEmpty() ? wxString::Format(_L("%s info"), SLIC3R_APP_NAME) : caption, wxEmptyString, style) { add_msg_content(this, content_sizer, message); - if (style & wxOK) add_btn(wxID_OK, true); - if (style & wxYES) add_btn(wxID_YES); - if (style & wxNO) add_btn(wxID_NO); - if (style & wxCANCEL) add_btn(wxID_CANCEL); + m_checkBox = new wxCheckBox(this, wxID_ANY, m_checkBoxText); + wxGetApp().UpdateDarkUI(m_checkBox); + m_checkBox->Bind(wxEVT_CHECKBOX, [this](wxCommandEvent&) { m_checkBoxValue = m_checkBox->GetValue(); }); - logo->SetBitmap(create_scaled_bitmap(style & wxICON_WARNING ? "exclamation" : - style & wxICON_INFORMATION ? "info" : - style & wxICON_QUESTION ? "question" : "PrusaSlicer_192px_grayscale.png", this, 84)); + btn_sizer->Insert(0, m_checkBox, wxALIGN_CENTER_VERTICAL); - wxGetApp().UpdateDlgDarkUI(this); - Fit(); - this->CenterOnParent(); + finalize(); +} + +int RichMessageDialog::ShowModal() +{ + if (m_checkBoxText.IsEmpty()) + m_checkBox->Hide(); + else + m_checkBox->SetLabelText(m_checkBoxText); + Layout(); + + return wxDialog::ShowModal(); } #endif - // InfoDialog InfoDialog::InfoDialog(wxWindow* parent, const wxString &title, const wxString& msg) - : MsgDialog(parent, wxString::Format(_L("%s information"), SLIC3R_APP_NAME), title) + : MsgDialog(parent, wxString::Format(_L("%s information"), SLIC3R_APP_NAME), title, wxOK | wxICON_INFORMATION) , msg(msg) { add_msg_content(this, content_sizer, msg); - // Set info bitmap - logo->SetBitmap(create_scaled_bitmap("info", this, 84)); - - wxGetApp().UpdateDlgDarkUI(this); - - Fit(); + finalize(); } diff --git a/src/slic3r/GUI/MsgDialog.hpp b/src/slic3r/GUI/MsgDialog.hpp index 77617fea1..b2d0a157b 100644 --- a/src/slic3r/GUI/MsgDialog.hpp +++ b/src/slic3r/GUI/MsgDialog.hpp @@ -8,6 +8,9 @@ #include #include #include +#include +#include +#include class wxBoxSizer; class wxCheckBox; @@ -17,7 +20,6 @@ namespace Slic3r { namespace GUI { - // A message / query dialog with a bitmap on the left and any content on the right // with buttons underneath. struct MsgDialog : wxDialog @@ -39,10 +41,11 @@ protected: HORIZ_SPACING = 5, }; - // button_id is an id of a button that can be added by default, use wxID_NONE to disable - MsgDialog(wxWindow *parent, const wxString &title, const wxString &headline, wxWindowID button_id = wxID_OK, wxBitmap bitmap = wxNullBitmap); + MsgDialog(wxWindow *parent, const wxString &title, const wxString &headline, long style = wxOK, wxBitmap bitmap = wxNullBitmap); - void add_btn(wxWindowID btn_id, bool set_focus = false); + void add_btn(wxWindowID btn_id, bool set_focus = false, const wxString& label = wxString()); + void apply_style(long style); + void finalize(); wxFont boldfont; wxBoxSizer *content_sizer; @@ -85,6 +88,23 @@ public: }; #ifdef _WIN32 +// Generic static line, used intead of wxStaticLine +class StaticLine: public wxTextCtrl +{ +public: + StaticLine( wxWindow* parent, + wxWindowID id = wxID_ANY, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = wxLI_HORIZONTAL, + const wxString& name = wxString::FromAscii(wxTextCtrlNameStr)) + : wxTextCtrl(parent, id, wxEmptyString, pos, size!=wxDefaultSize ? size : (style == wxLI_HORIZONTAL ? wxSize(10, 1) : wxSize(1, 10)), wxSIMPLE_BORDER, wxDefaultValidator, name) + { + this->Enable(false); + } + ~StaticLine() {} +}; + // Generic message dialog, used intead of wxMessageDialog class MessageDialog : public MsgDialog { @@ -99,7 +119,158 @@ public: MessageDialog &operator=(const MessageDialog&) = delete; virtual ~MessageDialog() = default; }; + +// Generic rich message dialog, used intead of wxRichMessageDialog +class RichMessageDialog : public MsgDialog +{ + wxCheckBox* m_checkBox{ nullptr }; + wxString m_checkBoxText; + bool m_checkBoxValue{ false }; + +public: + RichMessageDialog( wxWindow *parent, + const wxString& message, + const wxString& caption = wxEmptyString, + long style = wxOK); + RichMessageDialog(RichMessageDialog&&) = delete; + RichMessageDialog(const RichMessageDialog&) = delete; + RichMessageDialog &operator=(RichMessageDialog&&) = delete; + RichMessageDialog &operator=(const RichMessageDialog&) = delete; + virtual ~RichMessageDialog() = default; + + int ShowModal() override; + + void ShowCheckBox(const wxString& checkBoxText, bool checked = false) + { + m_checkBoxText = checkBoxText; + m_checkBoxValue = checked; + } + + wxString GetCheckBoxText() const { return m_checkBoxText; } + bool IsCheckBoxChecked() const { return m_checkBoxValue; } + +// This part o fcode isported from the "wx\msgdlg.h" + using wxMD = wxMessageDialogBase; + // customization of the message box buttons + virtual bool SetYesNoLabels(const wxMD::ButtonLabel& yes, const wxMD::ButtonLabel& no) + { + DoSetCustomLabel(m_yes, yes); + DoSetCustomLabel(m_no, no); + return true; + } + + virtual bool SetYesNoCancelLabels(const wxMD::ButtonLabel& yes, + const wxMD::ButtonLabel& no, + const wxMD::ButtonLabel& cancel) + { + DoSetCustomLabel(m_yes, yes); + DoSetCustomLabel(m_no, no); + DoSetCustomLabel(m_cancel, cancel); + return true; + } + + virtual bool SetOKLabel(const wxMD::ButtonLabel& ok) + { + DoSetCustomLabel(m_ok, ok); + return true; +} + + virtual bool SetOKCancelLabels(const wxMD::ButtonLabel& ok, + const wxMD::ButtonLabel& cancel) + { + DoSetCustomLabel(m_ok, ok); + DoSetCustomLabel(m_cancel, cancel); + return true; + } + + virtual bool SetHelpLabel(const wxMD::ButtonLabel& help) + { + DoSetCustomLabel(m_help, help); + return true; + } + // test if any custom labels were set + bool HasCustomLabels() const + { + return !(m_ok.empty() && m_cancel.empty() && m_help.empty() && + m_yes.empty() && m_no.empty()); + } + + // these functions return the label to be used for the button which is + // either a custom label explicitly set by the user or the default label, + // i.e. they always return a valid string + wxString GetYesLabel() const + { + return m_yes.empty() ? GetDefaultYesLabel() : m_yes; + } + wxString GetNoLabel() const + { + return m_no.empty() ? GetDefaultNoLabel() : m_no; + } + wxString GetOKLabel() const + { + return m_ok.empty() ? GetDefaultOKLabel() : m_ok; + } + wxString GetCancelLabel() const + { + return m_cancel.empty() ? GetDefaultCancelLabel() : m_cancel; + } + wxString GetHelpLabel() const + { + return m_help.empty() ? GetDefaultHelpLabel() : m_help; + } + +protected: + // this function is called by our public SetXXXLabels() and should assign + // the value to var with possibly some transformation (e.g. Cocoa version + // currently uses this to remove any accelerators from the button strings + // while GTK+ one handles stock items specifically here) + void DoSetCustomLabel(wxString& var, const wxMD::ButtonLabel& label) + { + var = label.GetAsString(); + } + + // these functions return the custom label or empty string and should be + // used only in specific circumstances such as creating the buttons with + // these labels (in which case it makes sense to only use a custom label if + // it was really given and fall back on stock label otherwise), use the + // Get{Yes,No,OK,Cancel}Label() methods above otherwise + const wxString& GetCustomYesLabel() const { return m_yes; } + const wxString& GetCustomNoLabel() const { return m_no; } + const wxString& GetCustomOKLabel() const { return m_ok; } + const wxString& GetCustomHelpLabel() const { return m_help; } + const wxString& GetCustomCancelLabel() const { return m_cancel; } + +private: + // these functions may be overridden to provide different defaults for the + // default button labels (this is used by wxGTK) + virtual wxString GetDefaultYesLabel() const { return wxGetTranslation("Yes"); } + virtual wxString GetDefaultNoLabel() const { return wxGetTranslation("No"); } + virtual wxString GetDefaultOKLabel() const { return wxGetTranslation("OK"); } + virtual wxString GetDefaultCancelLabel() const { return wxGetTranslation("Cancel"); } + virtual wxString GetDefaultHelpLabel() const { return wxGetTranslation("Help"); } + + // labels for the buttons, initially empty meaning that the defaults should + // be used, use GetYes/No/OK/CancelLabel() to access them + wxString m_yes, + m_no, + m_ok, + m_cancel, + m_help; +}; #else +// just a wrapper for wxStaticLine to use the same code on all platforms +class StaticLine : public wxStaticLine +{ +public: + StaticLine(wxWindow* parent, + wxWindowID id = wxID_ANY, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = wxLI_HORIZONTAL, + const wxString& name = wxString::FromAscii(wxStaticLineNameStr)) + : wxStaticLine(parent, id, pos, size, style, name) {} + ~StaticLine() {} +}; // just a wrapper to wxMessageBox to use the same code on all platforms class MessageDialog : public wxMessageDialog { @@ -111,8 +282,19 @@ public: : wxMessageDialog(parent, message, caption, style) {} ~MessageDialog() {} }; -#endif +// just a wrapper to wxRichMessageBox to use the same code on all platforms +class RichMessageDialog : public wxRichMessageDialog +{ +public: + RichMessageDialog(wxWindow* parent, + const wxString& message, + const wxString& caption = wxEmptyString, + long style = wxOK) + : wxRichMessageDialog(parent, message, caption, style) {} + ~RichMessageDialog() {} +}; +#endif // Generic info dialog, used for displaying exceptions class InfoDialog : public MsgDialog diff --git a/src/slic3r/GUI/NotificationManager.cpp b/src/slic3r/GUI/NotificationManager.cpp index a984b6ba7..bcef85107 100644 --- a/src/slic3r/GUI/NotificationManager.cpp +++ b/src/slic3r/GUI/NotificationManager.cpp @@ -41,12 +41,6 @@ const NotificationManager::NotificationData NotificationManager::basic_notificat return true; } }, - {NotificationType::NewAppAvailable, NotificationLevel::ImportantNotificationLevel, 20, _u8L("New version is available."), _u8L("See Releases page."), [](wxEvtHandler* evnthndlr) { - wxGetApp().open_browser_with_warning_dialog("https://github.com/prusa3d/PrusaSlicer/releases"); return true; }}, - {NotificationType::NewAlphaAvailable, NotificationLevel::ImportantNotificationLevel, 20, _u8L("New alpha release is available."), _u8L("See Releases page."), [](wxEvtHandler* evnthndlr) { - wxGetApp().open_browser_with_warning_dialog("https://github.com/prusa3d/PrusaSlicer/releases"); return true; }}, - {NotificationType::NewBetaAvailable, NotificationLevel::ImportantNotificationLevel, 20, _u8L("New beta release is available."), _u8L("See Releases page."), [](wxEvtHandler* evnthndlr) { - wxGetApp().open_browser_with_warning_dialog("https://github.com/prusa3d/PrusaSlicer/releases"); return true; }}, {NotificationType::EmptyColorChangeCode, NotificationLevel::PrintInfoNotificationLevel, 10, _u8L("You have just added a G-code for color change, but its value is empty.\n" "To export the G-code correctly, check the \"Color Change G-code\" in \"Printer Settings > Custom G-code\"") }, @@ -61,6 +55,8 @@ const NotificationManager::NotificationData NotificationManager::basic_notificat {NotificationType::UndoDesktopIntegrationFail, NotificationLevel::WarningNotificationLevel, 10, _u8L("Undo desktop integration failed.") }, {NotificationType::ExportOngoing, NotificationLevel::RegularNotificationLevel, 0, _u8L("Exporting.") }, + //{NotificationType::NewAppAvailable, NotificationLevel::ImportantNotificationLevel, 20, _u8L("New version is available."), _u8L("See Releases page."), [](wxEvtHandler* evnthndlr) { + // wxGetApp().open_browser_with_warning_dialog("https://github.com/prusa3d/PrusaSlicer/releases"); return true; }}, //{NotificationType::NewAppAvailable, NotificationLevel::ImportantNotificationLevel, 20, _u8L("New vesion of PrusaSlicer is available.", _u8L("Download page.") }, //{NotificationType::LoadingFailed, NotificationLevel::RegularNotificationLevel, 20, _u8L("Loading of model has Failed") }, //{NotificationType::DeviceEjected, NotificationLevel::RegularNotificationLevel, 10, _u8L("Removable device has been safely ejected")} // if we want changeble text (like here name of device), we need to do it as CustomNotification @@ -2068,9 +2064,11 @@ bool NotificationManager::update_notifications(GLCanvas3D& canvas) if ((*it).remaining_time > 0) (*it).remaining_time -= time_since_render; if ((*it).remaining_time <= 0) { - if ((*it).condition_callback()) { // push notification, erase it from waiting list (frame is scheduled by push) + if ((*it).notification && (*it).condition_callback()) { // push notification, erase it from waiting list (frame is scheduled by push) (*it).notification->reset_timer(); - if (push_notification_data(std::move((*it).notification), 0)) { + // if activate_existing returns false, we expect push to return true. + if(!this->activate_existing((*it).notification.get()) || (*it).delay_interval == 0) { + push_notification_data(std::move((*it).notification), 0); it = m_waiting_notifications.erase(it); continue; } @@ -2107,11 +2105,13 @@ bool NotificationManager::activate_existing(const NotificationManager::PopNotifi const std::string &new_text = notification->get_data().text1; for (auto it = m_pop_notifications.begin(); it != m_pop_notifications.end(); ++it) { if ((*it)->get_type() == new_type && !(*it)->is_finished()) { + // multiple of one type allowed, but must have different text if (std::find(m_multiple_types.begin(), m_multiple_types.end(), new_type) != m_multiple_types.end()) { // If found same type and same text, return true - update will be performed on the old notif if ((*it)->compare_text(new_text) == false) { continue; } + // multiple of one type allowed, but must have different text nad ObjectID } else if (new_type == NotificationType::SlicingWarning) { auto w1 = dynamic_cast(notification); auto w2 = dynamic_cast(it->get()); diff --git a/src/slic3r/GUI/NotificationManager.hpp b/src/slic3r/GUI/NotificationManager.hpp index 9adcc240d..f162182dc 100644 --- a/src/slic3r/GUI/NotificationManager.hpp +++ b/src/slic3r/GUI/NotificationManager.hpp @@ -112,7 +112,7 @@ enum class NotificationType // information about netfabb is finished repairing model (blocking proccess) NetfabbFinished, // Short meesage to fill space between start and finish of export - ExportOngoing + ExportOngoing, }; class NotificationManager @@ -150,7 +150,7 @@ public: // Push a NotificationType::CustomNotification with NotificationLevel::RegularNotificationLevel and 10s fade out interval. void push_notification(const std::string& text, int timestamp = 0); // Push a NotificationType::CustomNotification with provided notification level and 10s for RegularNotificationLevel. - // ErrorNotificationLevel and ImportantNotificationLevel are never faded out. + // ErrorNotificationLevel are never faded out. void push_notification(NotificationType type, NotificationLevel level, const std::string& text, const std::string& hypertext = "", std::function callback = std::function(), int timestamp = 0); // Pushes basic_notification with delay. See push_delayed_notification_data. @@ -706,6 +706,7 @@ private: // Otherwise another delay interval waiting. Timestamp is 0. // Note that notification object is constructed when being added to the waiting list, but there are no updates called on it and its timer is reset at regular push. // Also note that no control of same notification is done during push_delayed_notification_data but if waiting notif fails to push, it continues waiting. + // If delay_interval is 0, notification is pushed only after initial_delay no matter the result. void push_delayed_notification_data(std::unique_ptr notification, std::function condition_callback, int64_t initial_delay, int64_t delay_interval); //finds older notification of same type and moves it to the end of queue. returns true if found bool activate_existing(const NotificationManager::PopNotification* notification); @@ -719,7 +720,7 @@ private: case NotificationLevel::ErrorNotificationLevel: return 0; case NotificationLevel::WarningNotificationLevel: return 0; - case NotificationLevel::ImportantNotificationLevel: return 0; + case NotificationLevel::ImportantNotificationLevel: return 20; case NotificationLevel::ProgressBarNotificationLevel: return 2; case NotificationLevel::PrintInfoShortNotificationLevel: return 5; case NotificationLevel::RegularNotificationLevel: return 10; diff --git a/src/slic3r/GUI/PhysicalPrinterDialog.cpp b/src/slic3r/GUI/PhysicalPrinterDialog.cpp index 22ced12e4..3d528df4b 100644 --- a/src/slic3r/GUI/PhysicalPrinterDialog.cpp +++ b/src/slic3r/GUI/PhysicalPrinterDialog.cpp @@ -534,7 +534,7 @@ void PhysicalPrinterDialog::update_host_type(bool printer_change) [model_id](const VendorProfile::PrinterModel& model) { return model.id == model_id; }); if (it != models.end() && (it->family == "MK3" || it->family == "MINI")) continue; - } else if (!preset->vendor && (boost::ends_with(model_id, "MK3") || boost::ends_with(model_id, "MINI"))) { + } else if (!preset->vendor && (boost::starts_with(model_id, "MK3") || boost::starts_with(model_id, "MINI"))) { continue; } diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index d9daacdb5..ac0f0166c 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -661,6 +661,16 @@ void Sidebar::priv::show_preset_comboboxes() } #ifdef _WIN32 +using wxRichToolTipPopup = wxCustomBackgroundWindow; +static wxRichToolTipPopup* get_rtt_popup(wxButton* btn) +{ + auto children = btn->GetChildren(); + for (auto child : children) + if (child->IsShown()) + return dynamic_cast(child); + return nullptr; +} + void Sidebar::priv::show_rich_tip(const wxString& tooltip, wxButton* btn) { if (tooltip.IsEmpty()) @@ -669,18 +679,26 @@ void Sidebar::priv::show_rich_tip(const wxString& tooltip, wxButton* btn) tip.SetIcon(wxICON_NONE); tip.SetTipKind(wxTipKind_BottomRight); tip.SetTitleFont(wxGetApp().normal_font()); - tip.SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOW)); + tip.SetBackgroundColour(wxGetApp().get_window_default_clr()); + tip.ShowFor(btn); + // Every call of the ShowFor() creates new RichToolTip and show it. + // Every one else are hidden. + // So, set a text color just for the shown rich tooltip + if (wxRichToolTipPopup* popup = get_rtt_popup(btn)) { + auto children = popup->GetChildren(); + for (auto child : children) { + child->SetForegroundColour(wxGetApp().get_label_clr_default()); + // we neen just first text line for out rich tooltip + return; + } + } } void Sidebar::priv::hide_rich_tip(wxButton* btn) { - auto children = btn->GetChildren(); - using wxRichToolTipPopup = wxCustomBackgroundWindow; - for (auto child : children) { - if (wxRichToolTipPopup* popup = dynamic_cast(child)) - popup->Dismiss(); - } + if (wxRichToolTipPopup* popup = get_rtt_popup(btn)) + popup->Dismiss(); } #endif @@ -1069,6 +1087,8 @@ void Sidebar::msw_rescale() p->btn_reslice ->SetMinSize(wxSize(-1, scaled_height)); p->scrolled->Layout(); + + p->searcher.dlg_msw_rescale(); } void Sidebar::sys_color_changed() @@ -1107,6 +1127,8 @@ void Sidebar::sys_color_changed() p->btn_export_gcode_removable->msw_rescale(); p->scrolled->Layout(); + + p->searcher.dlg_sys_color_changed(); } void Sidebar::search() @@ -1905,7 +1927,7 @@ Plater::priv::priv(Plater *q, MainFrame *main_frame) "bed_shape", "bed_custom_texture", "bed_custom_model", "complete_objects", "duplicate_distance", "extruder_clearance_radius", "skirts", "skirt_distance", "brim_width", "brim_separation", "brim_type", "variable_layer_height", "nozzle_diameter", "single_extruder_multi_material", "wipe_tower", "wipe_tower_x", "wipe_tower_y", "wipe_tower_width", "wipe_tower_rotation_angle", "wipe_tower_brim_width", - "extruder_colour", "filament_colour", "max_print_height", "printer_model", "printer_technology", + "extruder_colour", "filament_colour", "material_colour", "max_print_height", "printer_model", "printer_technology", // These values are necessary to construct SlicingParameters by the Canvas3D variable layer height editor. "layer_height", "first_layer_height", "min_layer_height", "max_layer_height", "brim_width", "perimeters", "perimeter_extruder", "fill_density", "infill_extruder", "top_solid_layers", @@ -2301,6 +2323,9 @@ std::vector Plater::priv::load_files(const std::vector& input_ auto *new_model = (!load_model || one_by_one) ? nullptr : new Slic3r::Model(); std::vector obj_idxs; + int answer_convert_from_meters = wxOK_DEFAULT; + int answer_convert_from_imperial_units = wxOK_DEFAULT; + for (size_t i = 0; i < input_files.size(); ++i) { #ifdef _WIN32 auto path = input_files[i]; @@ -2458,26 +2483,48 @@ std::vector Plater::priv::load_files(const std::vector& input_ // Convert even if the object is big. convert_from_imperial_units(model, false); else if (model.looks_like_saved_in_meters()) { - MessageDialog msg_dlg(q, format_wxstr(_L_PLURAL( - "The dimensions of the object from file %s seem to be defined in meters.\n" - "The internal unit of PrusaSlicer are millimeters. Do you want to recalculate the dimensions of the object?", - "The dimensions of some objects from file %s seem to be defined in meters.\n" - "The internal unit of PrusaSlicer are millimeters. Do you want to recalculate the dimensions of these objects?", model.objects.size()), from_path(filename)) + "\n", - _L("The object is too small"), wxICON_WARNING | wxYES | wxNO); - if (msg_dlg.ShowModal() == wxID_YES) - //FIXME up-scale only the small parts? - model.convert_from_meters(true); + auto convert_model_if = [](Model& model, bool condition) { + if (condition) + //FIXME up-scale only the small parts? + model.convert_from_meters(true); + }; + if (answer_convert_from_meters == wxOK_DEFAULT) { + RichMessageDialog dlg(q, format_wxstr(_L_PLURAL( + "The dimensions of the object from file %s seem to be defined in meters.\n" + "The internal unit of PrusaSlicer are millimeters. Do you want to recalculate the dimensions of the object?", + "The dimensions of some objects from file %s seem to be defined in meters.\n" + "The internal unit of PrusaSlicer are millimeters. Do you want to recalculate the dimensions of these objects?", model.objects.size()), from_path(filename)) + "\n", + _L("The object is too small"), wxICON_QUESTION | wxYES_NO); + dlg.ShowCheckBox(_L("Apply to all the remaining small objects being loaded.")); + int answer = dlg.ShowModal(); + if (dlg.IsCheckBoxChecked()) + answer_convert_from_meters = answer; + else + convert_model_if(model, answer == wxID_YES); + } + convert_model_if(model, answer_convert_from_meters == wxID_YES); } else if (model.looks_like_imperial_units()) { - MessageDialog msg_dlg(q, format_wxstr(_L_PLURAL( - "The dimensions of the object from file %s seem to be defined in inches.\n" - "The internal unit of PrusaSlicer are millimeters. Do you want to recalculate the dimensions of the object?", - "The dimensions of some objects from file %s seem to be defined in inches.\n" - "The internal unit of PrusaSlicer are millimeters. Do you want to recalculate the dimensions of these objects?", model.objects.size()), from_path(filename)) + "\n", - _L("The object is too small"), wxICON_WARNING | wxYES | wxNO); - if (msg_dlg.ShowModal() == wxID_YES) - //FIXME up-scale only the small parts? - convert_from_imperial_units(model, true); + auto convert_model_if = [convert_from_imperial_units](Model& model, bool condition) { + if (condition) + //FIXME up-scale only the small parts? + convert_from_imperial_units(model, true); + }; + if (answer_convert_from_imperial_units == wxOK_DEFAULT) { + RichMessageDialog dlg(q, format_wxstr(_L_PLURAL( + "The dimensions of the object from file %s seem to be defined in inches.\n" + "The internal unit of PrusaSlicer are millimeters. Do you want to recalculate the dimensions of the object?", + "The dimensions of some objects from file %s seem to be defined in inches.\n" + "The internal unit of PrusaSlicer are millimeters. Do you want to recalculate the dimensions of these objects?", model.objects.size()), from_path(filename)) + "\n", + _L("The object is too small"), wxICON_QUESTION | wxYES_NO); + dlg.ShowCheckBox(_L("Apply to all the remaining small objects being loaded.")); + int answer = dlg.ShowModal(); + if (dlg.IsCheckBoxChecked()) + answer_convert_from_imperial_units = answer; + else + convert_model_if(model, answer == wxID_YES); + } + convert_model_if(model, answer_convert_from_imperial_units == wxID_YES); } if (model.looks_like_multipart_object()) { @@ -3258,6 +3305,7 @@ void Plater::priv::export_gcode(fs::path output_path, bool output_path_on_remova show_warning_dialog = true; if (! output_path.empty()) { background_process.schedule_export(output_path.string(), output_path_on_removable_media); + notification_manager->push_delayed_notification(NotificationType::ExportOngoing, []() {return true; }, 1000, 0); } else { background_process.schedule_upload(std::move(upload_job)); } @@ -3994,7 +4042,6 @@ void Plater::priv::on_export_began(wxCommandEvent& evt) { if (show_warning_dialog) warnings_dialog(); - notification_manager->push_delayed_notification(NotificationType::ExportOngoing, [](){return true;}, 1000, 1000); } void Plater::priv::on_slicing_began() { @@ -5021,6 +5068,7 @@ void Plater::new_project() Plater::SuppressSnapshots suppress(this); reset(); reset_project_dirty_initial_presets(); + wxGetApp().update_saved_preset_from_current_preset(); update_project_dirty_from_presets(); } @@ -6188,6 +6236,9 @@ void Plater::on_config_change(const DynamicPrintConfig &config) continue; } } + if (opt_key == "material_colour") { + update_scheduled = true; // update should be scheduled (for update 3DScene) + } p->config->set_key_value(opt_key, config.option(opt_key)->clone()); if (opt_key == "printer_technology") { @@ -6839,6 +6890,8 @@ void Plater::set_keep_current_preview_type(bool value) Plater::TakeSnapshot::TakeSnapshot(Plater *plater, const std::string &snapshot_name) : TakeSnapshot(plater, from_u8(snapshot_name)) {} +Plater::TakeSnapshot::TakeSnapshot(Plater* plater, const std::string& snapshot_name, UndoRedo::SnapshotType snapshot_type) +: TakeSnapshot(plater, from_u8(snapshot_name), snapshot_type) {} // Wrapper around wxWindow::PopupMenu to suppress error messages popping out while tracking the popup menu. diff --git a/src/slic3r/GUI/Plater.hpp b/src/slic3r/GUI/Plater.hpp index 2370e09c8..bbb312c88 100644 --- a/src/slic3r/GUI/Plater.hpp +++ b/src/slic3r/GUI/Plater.hpp @@ -401,6 +401,7 @@ public: m_plater->take_snapshot(snapshot_name); m_plater->suppress_snapshots(); } + TakeSnapshot(Plater* plater, const std::string& snapshot_name, UndoRedo::SnapshotType snapshot_type); TakeSnapshot(Plater *plater, const wxString &snapshot_name, UndoRedo::SnapshotType snapshot_type) : m_plater(plater) { m_plater->take_snapshot(snapshot_name, snapshot_type); diff --git a/src/slic3r/GUI/Preferences.cpp b/src/slic3r/GUI/Preferences.cpp index 3748e2251..332de64cb 100644 --- a/src/slic3r/GUI/Preferences.cpp +++ b/src/slic3r/GUI/Preferences.cpp @@ -141,14 +141,6 @@ void PreferencesDialog::build(size_t selected_tab) option = Option(def, "background_processing"); m_optgroup_general->append_single_option_line(option); - // Please keep in sync with ConfigWizard - def.label = L("Check for application updates"); - def.type = coBool; - def.tooltip = L("If enabled, PrusaSlicer will check for the new versions of itself online. When a new version becomes available a notification is displayed at the next application startup (never during program usage). This is only a notification mechanisms, no automatic installation is done."); - def.set_default_value(new ConfigOptionBool(app_config->get("version_check") == "1")); - option = Option(def, "version_check"); - m_optgroup_general->append_single_option_line(option); - m_optgroup_general->append_separator(); // Please keep in sync with ConfigWizard @@ -350,8 +342,6 @@ void PreferencesDialog::build(size_t selected_tab) tabs->Layout(); this->layout(); } - - }; def.label = L("Sequential slider applied only to top layer"); @@ -395,16 +385,6 @@ void PreferencesDialog::build(size_t selected_tab) m_optgroup_gui->append_single_option_line(option); #ifdef _MSW_DARK_MODE - } - def.label = L("Use Dark color mode (experimental)"); - def.type = coBool; - def.tooltip = L("If enabled, UI will use Dark mode colors. " - "If disabled, old UI will be used."); - def.set_default_value(new ConfigOptionBool{ app_config->get("dark_color_mode") == "1" }); - option = Option(def, "dark_color_mode"); - m_optgroup_gui->append_single_option_line(option); - - if (is_editor) { def.label = L("Set settings tabs as menu items (experimental)"); def.type = coBool; def.tooltip = L("If enabled, Settings Tabs will be placed as menu items. " @@ -484,6 +464,36 @@ void PreferencesDialog::build(size_t selected_tab) } #endif // ENABLE_ENVIRONMENT_MAP +#ifdef _WIN32 + // Add "Dark Mode" tab + if (is_editor) { + // Add "Dark Mode" tab + m_optgroup_dark_mode = create_options_tab(_L("Dark mode (experimental)"), tabs); + m_optgroup_dark_mode->m_on_change = [this](t_config_option_key opt_key, boost::any value) { + m_values[opt_key] = boost::any_cast(value) ? "1" : "0"; + }; + + def.label = L("Enable dark mode"); + def.type = coBool; + def.tooltip = L("If enabled, UI will use Dark mode colors. " + "If disabled, old UI will be used."); + def.set_default_value(new ConfigOptionBool{ app_config->get("dark_color_mode") == "1" }); + option = Option(def, "dark_color_mode"); + m_optgroup_dark_mode->append_single_option_line(option); + + def.label = L("Use system menu for application"); + def.type = coBool; + def.tooltip = L("If enabled, application will use standart Windows system menu,\n" + "but on some combination od display scales it can looks ugly. " + "If disabled, old UI will be used."); + def.set_default_value(new ConfigOptionBool{ app_config->get("sys_menu_enabled") == "1" }); + option = Option(def, "sys_menu_enabled"); + m_optgroup_dark_mode->append_single_option_line(option); + + activate_options_tab(m_optgroup_dark_mode); + } +#endif //_WIN32 + // update alignment of the controls for all tabs update_ctrls_alignment(); @@ -525,7 +535,7 @@ void PreferencesDialog::accept(wxEvent&) // if (m_values.find("no_defaults") != m_values.end() // warning_catcher(this, wxString::Format(_L("You need to restart %s to make the changes effective."), SLIC3R_APP_NAME)); - std::vector options_to_recreate_GUI = { "no_defaults", "tabs_as_menu" }; + std::vector options_to_recreate_GUI = { "no_defaults", "tabs_as_menu", "sys_menu_enabled" }; for (const std::string& option : options_to_recreate_GUI) { if (m_values.find(option) != m_values.end()) { @@ -588,11 +598,14 @@ void PreferencesDialog::accept(wxEvent&) EndModal(wxID_OK); -#ifdef _MSW_DARK_MODE +#ifdef _WIN32 if (m_values.find("dark_color_mode") != m_values.end()) wxGetApp().force_colors_update(); -#endif - +#ifdef _MSW_DARK_MODE + if (m_values.find("sys_menu_enabled") != m_values.end()) + wxGetApp().force_menu_update(); +#endif //_MSW_DARK_MODE +#endif // _WIN32 if (m_settings_layout_changed) ;// application will be recreated after Preference dialog will be destroyed else diff --git a/src/slic3r/GUI/Preferences.hpp b/src/slic3r/GUI/Preferences.hpp index 01f116760..210b04d4f 100644 --- a/src/slic3r/GUI/Preferences.hpp +++ b/src/slic3r/GUI/Preferences.hpp @@ -29,6 +29,9 @@ class PreferencesDialog : public DPIDialog std::shared_ptr m_optgroup_general; std::shared_ptr m_optgroup_camera; std::shared_ptr m_optgroup_gui; +#ifdef _WIN32 + std::shared_ptr m_optgroup_dark_mode; +#endif //_WIN32 #if ENABLE_ENVIRONMENT_MAP std::shared_ptr m_optgroup_render; #endif // ENABLE_ENVIRONMENT_MAP diff --git a/src/slic3r/GUI/PresetComboBoxes.cpp b/src/slic3r/GUI/PresetComboBoxes.cpp index 5da359458..acae695d2 100644 --- a/src/slic3r/GUI/PresetComboBoxes.cpp +++ b/src/slic3r/GUI/PresetComboBoxes.cpp @@ -419,7 +419,7 @@ wxString PresetComboBox::separator(const std::string& label) wxBitmap* PresetComboBox::get_bmp( std::string bitmap_key, bool wide_icons, const std::string& main_icon_name, bool is_compatible/* = true*/, bool is_system/* = false*/, bool is_single_bar/* = false*/, - std::string filament_rgb/* = ""*/, std::string extruder_rgb/* = ""*/) + const std::string& filament_rgb/* = ""*/, const std::string& extruder_rgb/* = ""*/, const std::string& material_rgb/* = ""*/) { // If the filament preset is not compatible and there is a "red flag" icon loaded, show it left // to the filament color image. @@ -431,6 +431,7 @@ wxBitmap* PresetComboBox::get_bmp( std::string bitmap_key, bool wide_icons, con bool dark_mode = wxGetApp().dark_mode(); if (dark_mode) bitmap_key += ",dark"; + bitmap_key += material_rgb; wxBitmap* bmp = bitmap_cache().find(bitmap_key); if (bmp == nullptr) { @@ -457,7 +458,10 @@ wxBitmap* PresetComboBox::get_bmp( std::string bitmap_key, bool wide_icons, con { // Paint the color bars. bmps.emplace_back(bitmap_cache().mkclear(thin_space_icon_width, icon_height)); - bmps.emplace_back(create_scaled_bitmap(main_icon_name)); + if (m_type == Preset::TYPE_SLA_MATERIAL) + bmps.emplace_back(create_scaled_bitmap(main_icon_name, this, 16, false, material_rgb)); + else + bmps.emplace_back(create_scaled_bitmap(main_icon_name)); // Paint a lock at the system presets. bmps.emplace_back(bitmap_cache().mkclear(wide_space_icon_width, icon_height)); } @@ -789,7 +793,7 @@ void PlaterPresetComboBox::update() if (!preset.is_visible || (!preset.is_compatible && !is_selected)) continue; - std::string bitmap_key, filament_rgb, extruder_rgb; + std::string bitmap_key, filament_rgb, extruder_rgb, material_rgb; std::string bitmap_type_name = bitmap_key = m_type == Preset::TYPE_PRINTER && preset.printer_technology() == ptSLA ? "sla_printer" : m_main_bitmap_name; bool single_bar = false; @@ -803,10 +807,12 @@ void PlaterPresetComboBox::update() bitmap_key += single_bar ? filament_rgb : filament_rgb + extruder_rgb; } + else if (m_type == Preset::TYPE_SLA_MATERIAL) + material_rgb = is_selected ? m_preset_bundle->sla_materials.get_edited_preset().config.opt_string("material_colour") : preset.config.opt_string("material_colour"); wxBitmap* bmp = get_bmp(bitmap_key, wide_icons, bitmap_type_name, preset.is_compatible, preset.is_system || preset.is_default, - single_bar, filament_rgb, extruder_rgb); + single_bar, filament_rgb, extruder_rgb, material_rgb); assert(bmp); const std::string name = preset.alias.empty() ? preset.name : preset.alias; diff --git a/src/slic3r/GUI/PresetComboBoxes.hpp b/src/slic3r/GUI/PresetComboBoxes.hpp index f6a6eb3e8..654f836c5 100644 --- a/src/slic3r/GUI/PresetComboBoxes.hpp +++ b/src/slic3r/GUI/PresetComboBoxes.hpp @@ -122,7 +122,7 @@ protected: wxBitmap* get_bmp( std::string bitmap_key, bool wide_icons, const std::string& main_icon_name, bool is_compatible = true, bool is_system = false, bool is_single_bar = false, - std::string filament_rgb = "", std::string extruder_rgb = ""); + const std::string& filament_rgb = "", const std::string& extruder_rgb = "", const std::string& material_rgb = ""); wxBitmap* get_bmp( std::string bitmap_key, const std::string& main_icon_name, const std::string& next_icon_name, bool is_enabled = true, bool is_compatible = true, bool is_system = false); diff --git a/src/slic3r/GUI/PrintHostDialogs.cpp b/src/slic3r/GUI/PrintHostDialogs.cpp index 3f2dc5a44..313df2f77 100644 --- a/src/slic3r/GUI/PrintHostDialogs.cpp +++ b/src/slic3r/GUI/PrintHostDialogs.cpp @@ -39,7 +39,7 @@ static const char *CONFIG_KEY_PRINT = "printhost_print"; static const char *CONFIG_KEY_GROUP = "printhost_group"; PrintHostSendDialog::PrintHostSendDialog(const fs::path &path, bool can_start_print, const wxArrayString &groups) - : MsgDialog(static_cast(wxGetApp().mainframe), _L("Send G-Code to printer host"), _L("Upload to Printer Host with the following filename:"), wxID_NONE) + : MsgDialog(static_cast(wxGetApp().mainframe), _L("Send G-Code to printer host"), _L("Upload to Printer Host with the following filename:"), wxOK | wxCANCEL) , txt_filename(new wxTextCtrl(this, wxID_ANY)) , box_print(can_start_print ? new wxCheckBox(this, wxID_ANY, _L("Start printing after upload")) : nullptr) , combo_groups(!groups.IsEmpty() ? new wxComboBox(this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, groups, wxCB_READONLY) : nullptr) @@ -70,10 +70,6 @@ PrintHostSendDialog::PrintHostSendDialog(const fs::path &path, bool can_start_pr combo_groups->SetValue(recent_group); } - auto* szr = CreateStdDialogButtonSizer(wxOK | wxCANCEL); - auto* btn_ok = szr->GetAffirmativeButton(); - btn_sizer->Add(szr); - wxString recent_path = from_u8(app_config->get("recent", CONFIG_KEY_PATH)); if (recent_path.Length() > 0 && recent_path[recent_path.Length() - 1] != '/') { recent_path += '/'; @@ -88,21 +84,19 @@ PrintHostSendDialog::PrintHostSendDialog(const fs::path &path, bool can_start_pr wxString suffix = recent_path.substr(recent_path.find_last_of('.')); - btn_ok->Bind(wxEVT_BUTTON, [this, suffix](wxCommandEvent&) { + static_cast(FindWindowById(wxID_OK, this))->Bind(wxEVT_BUTTON, [this, suffix](wxCommandEvent&) { wxString path = txt_filename->GetValue(); // .gcode suffix control if (!path.Lower().EndsWith(suffix.Lower())) { - //wxMessageDialog msg_wingow(this, wxString::Format(_L("Upload filename doesn't end with \"%s\". Do you wish to continue?"), suffix), wxString(SLIC3R_APP_NAME), wxYES | wxNO); MessageDialog msg_wingow(this, wxString::Format(_L("Upload filename doesn't end with \"%s\". Do you wish to continue?"), suffix), wxString(SLIC3R_APP_NAME), wxYES | wxNO); if (msg_wingow.ShowModal() == wxID_NO) return; } EndDialog(wxID_OK); - }); + }); - Fit(); - CenterOnParent(); + finalize(); #ifdef __linux__ // On Linux with GTK2 when text control lose the focus then selection (colored background) disappears but text color stay white @@ -331,6 +325,14 @@ void PrintHostQueueDialog::on_dpi_changed(const wxRect &suggested_rect) save_user_data(UDT_SIZE | UDT_POSITION | UDT_COLS); } +void PrintHostQueueDialog::on_sys_color_changed() +{ +#ifdef _WIN32 + wxGetApp().UpdateDlgDarkUI(this); + wxGetApp().UpdateDVCDarkUI(job_list); +#endif +} + PrintHostQueueDialog::JobState PrintHostQueueDialog::get_state(int idx) { wxCHECK_MSG(idx >= 0 && idx < job_list->GetItemCount(), ST_ERROR, "Out of bounds access to job list"); diff --git a/src/slic3r/GUI/PrintHostDialogs.hpp b/src/slic3r/GUI/PrintHostDialogs.hpp index 294593bd1..eb5661159 100644 --- a/src/slic3r/GUI/PrintHostDialogs.hpp +++ b/src/slic3r/GUI/PrintHostDialogs.hpp @@ -72,6 +72,7 @@ public: } protected: void on_dpi_changed(const wxRect &suggested_rect) override; + void on_sys_color_changed() override; private: enum Column { diff --git a/src/slic3r/GUI/Search.cpp b/src/slic3r/GUI/Search.cpp index 1e37dc372..add5dc002 100644 --- a/src/slic3r/GUI/Search.cpp +++ b/src/slic3r/GUI/Search.cpp @@ -401,6 +401,18 @@ void OptionsSearcher::show_dialog() search_dialog->Popup(); } +void OptionsSearcher::dlg_sys_color_changed() +{ + if (search_dialog) + search_dialog->on_sys_color_changed(); +} + +void OptionsSearcher::dlg_msw_rescale() +{ + if (search_dialog) + search_dialog->msw_rescale(); +} + void OptionsSearcher::add_key(const std::string& opt_key, Preset::Type type, const wxString& group, const wxString& category) { groups_and_categories[get_key(opt_key, type)] = GroupAndCategory{group, category}; @@ -666,7 +678,7 @@ void SearchDialog::OnLeftDown(wxMouseEvent& event) ProcessSelection(search_list->GetSelection()); } -void SearchDialog::on_dpi_changed(const wxRect& suggested_rect) +void SearchDialog::msw_rescale() { const int& em = em_unit(); diff --git a/src/slic3r/GUI/Search.hpp b/src/slic3r/GUI/Search.hpp index 19de58f96..d5add9262 100644 --- a/src/slic3r/GUI/Search.hpp +++ b/src/slic3r/GUI/Search.hpp @@ -138,6 +138,8 @@ public: void sort_options_by_label() { sort_options(); } void show_dialog(); + void dlg_sys_color_changed(); + void dlg_msw_rescale(); }; @@ -180,9 +182,11 @@ public: void Popup(wxPoint position = wxDefaultPosition); void ProcessSelection(wxDataViewItem selection); -protected: - void on_dpi_changed(const wxRect& suggested_rect) override; + void msw_rescale(); void on_sys_color_changed() override; + +protected: + void on_dpi_changed(const wxRect& suggested_rect) override { msw_rescale(); } }; diff --git a/src/slic3r/GUI/Selection.cpp b/src/slic3r/GUI/Selection.cpp index b15d08c01..a6bcc0b38 100644 --- a/src/slic3r/GUI/Selection.cpp +++ b/src/slic3r/GUI/Selection.cpp @@ -1712,7 +1712,10 @@ void Selection::set_caches() void Selection::do_add_volume(unsigned int volume_idx) { m_list.insert(volume_idx); - (*m_volumes)[volume_idx]->selected = true; + GLVolume* v = (*m_volumes)[volume_idx]; + v->selected = true; + if (v->hover == GLVolume::HS_Select || v->hover == GLVolume::HS_Deselect) + v->hover = GLVolume::HS_Hover; } void Selection::do_add_volumes(const std::vector& volume_idxs) diff --git a/src/slic3r/GUI/SendSystemInfoDialog.cpp b/src/slic3r/GUI/SendSystemInfoDialog.cpp index f92060bfc..fb3205af3 100644 --- a/src/slic3r/GUI/SendSystemInfoDialog.cpp +++ b/src/slic3r/GUI/SendSystemInfoDialog.cpp @@ -1,6 +1,7 @@ #include "SendSystemInfoDialog.hpp" #include "libslic3r/AppConfig.hpp" +#include "libslic3r/BlacklistedLibraryCheck.hpp" #include "libslic3r/Platform.hpp" #include "libslic3r/Utils.hpp" @@ -35,6 +36,8 @@ #ifdef _WIN32 #include + #include + #include #include #pragma comment(lib, "iphlpapi.lib") #elif __APPLE__ @@ -132,6 +135,28 @@ public: +#ifdef _WIN32 +static bool check_internet_connection_win() +{ + bool internet = true; // return true if COM object creation fails. + + if (CoInitializeEx(NULL, COINIT_APARTMENTTHREADED) == S_OK) { + { + CComPtr pNLM; + if (pNLM.CoCreateInstance(CLSID_NetworkListManager) == S_OK) { + NLM_CONNECTIVITY status; + pNLM->GetConnectivity(&status); + internet = (status & (NLM_CONNECTIVITY_IPV4_INTERNET | NLM_CONNECTIVITY_IPV6_INTERNET)); + } + } + CoUninitialize(); + } + + return internet; +} +#endif + + // Last version where the info was sent / dialog dismissed is saved in appconfig. // Only show the dialog when this info is not found (e.g. fresh install) or when // current version is newer. Only major and minor versions are compared. @@ -157,16 +182,19 @@ static bool should_dialog_be_shown() if (! new_version) return false; - // We'll misuse the version check to check internet connection here. - bool is_internet = false; - Http::get(wxGetApp().app_config->version_check_url()) - .size_limit(SLIC3R_VERSION_BODY_MAX) - .timeout_max(2) - .on_complete([&](std::string, unsigned) { - is_internet = true; - }) - .perform_sync(); - return is_internet; + // We might want to check that the internet connection is ready so we don't open the dialog + // if it cannot really send any data. Using a dummy HTTP GET request led to + // https://forum.prusaprinters.org/forum/prusaslicer/prusaslicer-2-4-0-beta1-is-out/#post-518488. + // It might also trigger security softwares, which would look bad and would lead to questions + // about what PS is doing. We better use some less intrusive way of checking the connection. + + // As of now, this is only implemented on Win. The other platforms do not check beforehand. + +#ifdef _WIN32 + return check_internet_connection_win(); +#else + return true; +#endif } @@ -452,6 +480,26 @@ static std::string generate_system_info_json() hw_node.add_child("Monitors", monitors_node); data_node.add_child("Hardware", hw_node); +#ifdef _WIN32 + { + pt::ptree blacklisted_node; + std::vector blacklisted_libraries; + BlacklistedLibraryCheck::get_instance().get_blacklisted(blacklisted_libraries); + for (const std::wstring& wstr : blacklisted_libraries) { + std::string utf8 = boost::nowide::narrow(wstr); + if (size_t last_bs_pos = utf8.find_last_of("\\"); last_bs_pos < utf8.size() - 1) { + // Remove anything before last backslash so we don't send the path to the DLL. + utf8.erase(0, last_bs_pos + 1); + } + pt::ptree node; // Create an unnamed node containing the value + node.put("", utf8); + blacklisted_node.push_back(std::make_pair("", node)); // Add this node to the list. + } + if (! blacklisted_libraries.empty()) + data_node.add_child("Blacklisted libraries", blacklisted_node); + } +#endif // _WIN32 + pt::ptree opengl_node; opengl_node.put("Version", OpenGLManager::get_gl_info().get_version()); opengl_node.put("GLSLVersion", OpenGLManager::get_gl_info().get_glsl_version()); diff --git a/src/slic3r/GUI/Tab.cpp b/src/slic3r/GUI/Tab.cpp index 8b3cd4cf8..4880a3b7a 100644 --- a/src/slic3r/GUI/Tab.cpp +++ b/src/slic3r/GUI/Tab.cpp @@ -1735,6 +1735,18 @@ void TabPrint::update() m_update_cnt++; + // see https://github.com/prusa3d/PrusaSlicer/issues/6814 + // ysFIXME: It's temporary workaround and should be clewer reworked: + // Note: This workaround works till "support_material" and "overhangs" is exclusive sets of mutually no-exclusive parameters. + // But it should be corrected when we will have more such sets. + // Disable check of the compatibility of the "support_material" and "overhangs" options for saved user profile + if (!m_config_manipulation.is_initialized_support_material_overhangs_queried()) { + const Preset& selected_preset = m_preset_bundle->prints.get_selected_preset(); + bool is_user_and_saved_preset = !selected_preset.is_system && !selected_preset.is_dirty; + bool support_material_overhangs_queried = m_config->opt_bool("support_material") && !m_config->opt_bool("overhangs"); + m_config_manipulation.initialize_support_material_overhangs_queried(is_user_and_saved_preset && support_material_overhangs_queried); + } + m_config_manipulation.update_print_fff_config(m_config, true); update_description_lines(); @@ -4145,6 +4157,7 @@ void TabSLAMaterial::build() auto page = add_options_page(L("Material"), "resin"); auto optgroup = page->new_optgroup(L("Material")); + optgroup->append_single_option_line("material_colour"); optgroup->append_single_option_line("bottle_cost"); optgroup->append_single_option_line("bottle_volume"); optgroup->append_single_option_line("bottle_weight"); @@ -4152,6 +4165,12 @@ void TabSLAMaterial::build() optgroup->m_on_change = [this, optgroup](t_config_option_key opt_key, boost::any value) { + if (opt_key == "material_colour") { + update_dirty(); + on_value_change(opt_key, value); + return; + } + DynamicPrintConfig new_conf = *m_config; if (opt_key == "bottle_volume") { diff --git a/src/slic3r/GUI/UpdateDialogs.cpp b/src/slic3r/GUI/UpdateDialogs.cpp index de132b184..b929141a0 100644 --- a/src/slic3r/GUI/UpdateDialogs.cpp +++ b/src/slic3r/GUI/UpdateDialogs.cpp @@ -26,7 +26,7 @@ namespace GUI { static const char* URL_CHANGELOG = "https://files.prusa3d.com/?latest=slicer-stable&lng=%1%"; -static const char* URL_DOWNLOAD = "https://www.prusa3d.com/downloads&lng=%1%"; +static const char* URL_DOWNLOAD = "https://www.prusa3d.com/slicerweb&lng=%1%"; static const char* URL_DEV = "https://github.com/prusa3d/PrusaSlicer/releases/tag/version_%1%"; static const std::string CONFIG_UPDATE_WIKI_URL("https://github.com/prusa3d/PrusaSlicer/wiki/Slic3r-PE-1.40-configuration-update"); @@ -89,7 +89,7 @@ MsgUpdateConfig::MsgUpdateConfig(const std::vector &updates, bool force_ MsgDialog(nullptr, force_before_wizard ? _L("Opening Configuration Wizard") : _L("Configuration update"), force_before_wizard ? _L("PrusaSlicer is not using the newest configuration available.\n" "Configuration Wizard may not offer the latest printers, filaments and SLA materials to be installed. ") : - _L("Configuration update is available"), wxID_NONE) + _L("Configuration update is available"), wxICON_ERROR) { auto *text = new wxStaticText(this, wxID_ANY, _(L( "Would you like to install it?\n\n" @@ -133,22 +133,14 @@ MsgUpdateConfig::MsgUpdateConfig(const std::vector &updates, bool force_ content_sizer->Add(versions); content_sizer->AddSpacer(2*VERT_SPACING); - auto* btn_ok = new wxButton(this, wxID_OK, force_before_wizard ? _L("Install") : "OK"); - btn_sizer->Add(btn_ok); - btn_sizer->AddSpacer(HORIZ_SPACING); + add_btn(wxID_OK, true, force_before_wizard ? _L("Install") : "OK"); if (force_before_wizard) { - auto* btn_no_install = new wxButton(this, wxID_ANY, "Don't install"); - btn_no_install->Bind(wxEVT_BUTTON, [this](wxEvent&) { this->EndModal(wxID_CLOSE); }); - btn_sizer->Add(btn_no_install); - btn_sizer->AddSpacer(HORIZ_SPACING); + add_btn(wxID_CLOSE, false, _L("Don't install")); + static_cast(FindWindowById(wxID_CLOSE, this))->Bind(wxEVT_BUTTON, [this](const wxCommandEvent&) { this->EndModal(wxID_CLOSE); }); } - auto* btn_cancel = new wxButton(this, wxID_CANCEL); - btn_sizer->Add(btn_cancel); - btn_ok->SetFocus(); + add_btn(wxID_CANCEL); - wxGetApp().UpdateDlgDarkUI(this); - - Fit(); + finalize(); } MsgUpdateConfig::~MsgUpdateConfig() {} @@ -156,7 +148,7 @@ MsgUpdateConfig::~MsgUpdateConfig() {} //MsgUpdateForced MsgUpdateForced::MsgUpdateForced(const std::vector& updates) : - MsgDialog(nullptr, wxString::Format(_(L("%s incompatibility")), SLIC3R_APP_NAME), _(L("You must install a configuration update.")) + " ", wxID_NONE) + MsgDialog(nullptr, wxString::Format(_(L("%s incompatibility")), SLIC3R_APP_NAME), _(L("You must install a configuration update.")) + " ", wxOK | wxICON_ERROR) { auto* text = new wxStaticText(this, wxID_ANY, wxString::Format(_(L( "%s will now start updates. Otherwise it won't be able to start.\n\n" @@ -165,7 +157,6 @@ MsgUpdateForced::MsgUpdateForced(const std::vector& updates) : "Updated configuration bundles:" )), SLIC3R_APP_NAME)); - logo->SetBitmap(create_scaled_bitmap("PrusaSlicer_192px_grayscale.png", this, 192)); text->Wrap(CONTENT_WIDTH * wxGetApp().em_unit()); content_sizer->Add(text); @@ -198,19 +189,12 @@ MsgUpdateForced::MsgUpdateForced(const std::vector& updates) : content_sizer->Add(versions); content_sizer->AddSpacer(2 * VERT_SPACING); - - auto* btn_exit = new wxButton(this, wxID_EXIT, wxString::Format(_(L("Exit %s")), SLIC3R_APP_NAME)); - btn_sizer->Add(btn_exit); - btn_sizer->AddSpacer(HORIZ_SPACING); - auto* btn_ok = new wxButton(this, wxID_OK); - btn_sizer->Add(btn_ok); - btn_ok->SetFocus(); - auto exiter = [this](const wxCommandEvent& evt) { this->EndModal(evt.GetId()); }; - btn_exit->Bind(wxEVT_BUTTON, exiter); - btn_ok->Bind(wxEVT_BUTTON, exiter); + add_btn(wxID_EXIT, false, wxString::Format(_L("Exit %s"), SLIC3R_APP_NAME)); + for (auto ID : { wxID_EXIT, wxID_OK }) + static_cast(FindWindowById(ID, this))->Bind(wxEVT_BUTTON, [this](const wxCommandEvent& evt) { this->EndModal(evt.GetId()); }); - Fit(); + finalize(); } MsgUpdateForced::~MsgUpdateForced() {} @@ -219,10 +203,8 @@ MsgUpdateForced::~MsgUpdateForced() {} MsgDataIncompatible::MsgDataIncompatible(const std::unordered_map &incompats) : MsgDialog(nullptr, wxString::Format(_(L("%s incompatibility")), SLIC3R_APP_NAME), - wxString::Format(_(L("%s configuration is incompatible")), SLIC3R_APP_NAME), wxID_NONE) + wxString::Format(_(L("%s configuration is incompatible")), SLIC3R_APP_NAME), wxICON_ERROR) { - logo->SetBitmap(create_scaled_bitmap("PrusaSlicer_192px_grayscale.png", this, 192)); - auto *text = new wxStaticText(this, wxID_ANY, wxString::Format(_(L( "This version of %s is not compatible with currently installed configuration bundles.\n" "This probably happened as a result of running an older %s after using a newer one.\n\n" @@ -254,18 +236,13 @@ MsgDataIncompatible::MsgDataIncompatible(const std::unordered_mapAdd(versions); content_sizer->AddSpacer(2*VERT_SPACING); - auto *btn_exit = new wxButton(this, wxID_EXIT, wxString::Format(_(L("Exit %s")), SLIC3R_APP_NAME)); - btn_sizer->Add(btn_exit); - btn_sizer->AddSpacer(HORIZ_SPACING); - auto *btn_reconf = new wxButton(this, wxID_REPLACE, _(L("Re-configure"))); - btn_sizer->Add(btn_reconf); - btn_exit->SetFocus(); + add_btn(wxID_REPLACE, true, _L("Re-configure")); + add_btn(wxID_EXIT, false, wxString::Format(_L("Exit %s"), SLIC3R_APP_NAME)); - auto exiter = [this](const wxCommandEvent& evt) { this->EndModal(evt.GetId()); }; - btn_exit->Bind(wxEVT_BUTTON, exiter); - btn_reconf->Bind(wxEVT_BUTTON, exiter); + for (auto ID : {wxID_EXIT, wxID_REPLACE}) + static_cast(FindWindowById(ID, this))->Bind(wxEVT_BUTTON, [this](const wxCommandEvent& evt) { this->EndModal(evt.GetId()); }); - Fit(); + finalize(); } MsgDataIncompatible::~MsgDataIncompatible() {} @@ -303,9 +280,7 @@ MsgDataLegacy::MsgDataLegacy() : content_sizer->Add(link); content_sizer->AddSpacer(VERT_SPACING); - wxGetApp().UpdateDlgDarkUI(this); - - Fit(); + finalize(); } MsgDataLegacy::~MsgDataLegacy() {} @@ -314,7 +289,7 @@ MsgDataLegacy::~MsgDataLegacy() {} // MsgNoUpdate MsgNoUpdates::MsgNoUpdates() : - MsgDialog(nullptr, _(L("Configuration updates")), _(L("No updates available"))) + MsgDialog(nullptr, _(L("Configuration updates")), _(L("No updates available")), wxICON_ERROR | wxOK) { auto* text = new wxStaticText(this, wxID_ANY, wxString::Format( @@ -327,11 +302,7 @@ MsgNoUpdates::MsgNoUpdates() : content_sizer->Add(text); content_sizer->AddSpacer(VERT_SPACING); - logo->SetBitmap(create_scaled_bitmap("PrusaSlicer_192px_grayscale.png", this, 192)); - - wxGetApp().UpdateDlgDarkUI(this); - - Fit(); + finalize(); } MsgNoUpdates::~MsgNoUpdates() {} diff --git a/src/slic3r/GUI/wxExtensions.cpp b/src/slic3r/GUI/wxExtensions.cpp index 5e703a37b..01a553a81 100644 --- a/src/slic3r/GUI/wxExtensions.cpp +++ b/src/slic3r/GUI/wxExtensions.cpp @@ -419,7 +419,7 @@ int mode_icon_px_size() wxBitmap create_menu_bitmap(const std::string& bmp_name) { - return create_scaled_bitmap(bmp_name, nullptr, 16, false, true); + return create_scaled_bitmap(bmp_name, nullptr, 16, false, "", true); } // win is used to get a correct em_unit value @@ -429,6 +429,7 @@ wxBitmap create_scaled_bitmap( const std::string& bmp_name_in, wxWindow *win/* = nullptr*/, const int px_cnt/* = 16*/, const bool grayscale/* = false*/, + const std::string& new_color/* = std::string()*/, // color witch will used instead of orange const bool menu_bitmap/* = false*/) { static Slic3r::GUI::BitmapCache cache; @@ -446,7 +447,7 @@ wxBitmap create_scaled_bitmap( const std::string& bmp_name_in, Slic3r::GUI::wxGetApp().dark_mode(); // Try loading an SVG first, then PNG if SVG is not found: - wxBitmap *bmp = cache.load_svg(bmp_name, width, height, grayscale, dark_mode); + wxBitmap *bmp = cache.load_svg(bmp_name, width, height, grayscale, dark_mode, new_color); if (bmp == nullptr) { bmp = cache.load_png(bmp_name, width, height, grayscale); } diff --git a/src/slic3r/GUI/wxExtensions.hpp b/src/slic3r/GUI/wxExtensions.hpp index 25876bd23..f78621a5c 100644 --- a/src/slic3r/GUI/wxExtensions.hpp +++ b/src/slic3r/GUI/wxExtensions.hpp @@ -51,7 +51,9 @@ int mode_icon_px_size(); wxBitmap create_menu_bitmap(const std::string& bmp_name); wxBitmap create_scaled_bitmap(const std::string& bmp_name, wxWindow *win = nullptr, - const int px_cnt = 16, const bool grayscale = false, const bool menu_bitmap = false); + const int px_cnt = 16, const bool grayscale = false, + const std::string& new_color = std::string(), // color witch will used instead of orange + const bool menu_bitmap = false); std::vector get_extruder_color_icons(bool thin_icon = false); diff --git a/src/slic3r/Utils/PresetUpdater.cpp b/src/slic3r/Utils/PresetUpdater.cpp index 76ecc76d9..1d9d287bb 100644 --- a/src/slic3r/Utils/PresetUpdater.cpp +++ b/src/slic3r/Utils/PresetUpdater.cpp @@ -137,8 +137,7 @@ struct Updates wxDEFINE_EVENT(EVT_SLIC3R_VERSION_ONLINE, wxCommandEvent); -wxDEFINE_EVENT(EVT_SLIC3R_ALPHA_VERSION_ONLINE, wxCommandEvent); -wxDEFINE_EVENT(EVT_SLIC3R_BETA_VERSION_ONLINE, wxCommandEvent); +wxDEFINE_EVENT(EVT_SLIC3R_EXPERIMENTAL_VERSION_ONLINE, wxCommandEvent); struct PresetUpdater::priv { @@ -189,7 +188,7 @@ PresetUpdater::priv::priv() // Pull relevant preferences from AppConfig void PresetUpdater::priv::set_download_prefs(AppConfig *app_config) { - enabled_version_check = app_config->get("version_check") == "1"; + enabled_version_check = app_config->get("notify_release") != "none"; version_check_url = app_config->version_check_url(); enabled_config_update = app_config->get("preset_update") == "1" && !app_config->legacy_datadir(); } @@ -276,8 +275,9 @@ void PresetUpdater::priv::parse_version_string(const std::string& body) const version = body.substr(0, first_nl_pos); else version = body; - if (!Semver::parse(version)) { - BOOST_LOG_TRIVIAL(warning) << format("Received invalid contents from `%1%`: Not a correct semver: `%2%`", SLIC3R_APP_NAME, version); + boost::optional release_version = Semver::parse(version); + if (!release_version) { + BOOST_LOG_TRIVIAL(error) << format("Received invalid contents from `%1%`: Not a correct semver: `%2%`", SLIC3R_APP_NAME, version); return; } BOOST_LOG_TRIVIAL(info) << format("Got %1% online version: `%2%`. Sending to GUI thread...", SLIC3R_APP_NAME, version); @@ -286,6 +286,7 @@ void PresetUpdater::priv::parse_version_string(const std::string& body) const GUI::wxGetApp().QueueEvent(evt); // alpha / beta version + std::vector prerelease_versions; size_t nexn_nl_pos = first_nl_pos; while (nexn_nl_pos != std::string::npos && body.size() > nexn_nl_pos + 1) { const auto last_nl_pos = nexn_nl_pos; @@ -300,28 +301,36 @@ void PresetUpdater::priv::parse_version_string(const std::string& body) const if (line.substr(0, 6) == "alpha=") { version = line.substr(6); if (!Semver::parse(version)) { - BOOST_LOG_TRIVIAL(warning) << format("Received invalid contents for alpha release from `%1%`: Not a correct semver: `%2%`", SLIC3R_APP_NAME, version); + BOOST_LOG_TRIVIAL(error) << format("Received invalid contents for alpha release from `%1%`: Not a correct semver: `%2%`", SLIC3R_APP_NAME, version); return; } - BOOST_LOG_TRIVIAL(info) << format("Got %1% online version of alpha release: `%2%`. Sending to GUI thread...", SLIC3R_APP_NAME, version); - wxCommandEvent* evt = new wxCommandEvent(EVT_SLIC3R_ALPHA_VERSION_ONLINE); - evt->SetString(GUI::from_u8(version)); - GUI::wxGetApp().QueueEvent(evt); - + prerelease_versions.emplace_back(version); // beta } else if (line.substr(0, 5) == "beta=") { version = line.substr(5); if (!Semver::parse(version)) { - BOOST_LOG_TRIVIAL(warning) << format("Received invalid contents for beta release from `%1%`: Not a correct semver: `%2%`", SLIC3R_APP_NAME, version); + BOOST_LOG_TRIVIAL(error) << format("Received invalid contents for beta release from `%1%`: Not a correct semver: `%2%`", SLIC3R_APP_NAME, version); return; } - BOOST_LOG_TRIVIAL(info) << format("Got %1% online version of beta release: `%2%`. Sending to GUI thread...", SLIC3R_APP_NAME, version); - wxCommandEvent* evt = new wxCommandEvent(EVT_SLIC3R_BETA_VERSION_ONLINE); - evt->SetString(GUI::from_u8(version)); - GUI::wxGetApp().QueueEvent(evt); + prerelease_versions.emplace_back(version); } } + // find recent version that is newer than last full release. + boost::optional recent_version; + for (const std::string& ver_string : prerelease_versions) { + boost::optional ver = Semver::parse(ver_string); + if (ver && *release_version < *ver && ((recent_version && *recent_version < *ver) || !recent_version)) { + recent_version = ver; + version = ver_string; + } + } + if (recent_version) { + BOOST_LOG_TRIVIAL(info) << format("Got %1% online version: `%2%`. Sending to GUI thread...", SLIC3R_APP_NAME, version); + wxCommandEvent* evt = new wxCommandEvent(EVT_SLIC3R_EXPERIMENTAL_VERSION_ONLINE); + evt->SetString(GUI::from_u8(version)); + GUI::wxGetApp().QueueEvent(evt); + } } // Download vendor indices. Also download new bundles if an index indicates there's a new one available. @@ -741,8 +750,8 @@ void PresetUpdater::sync(PresetBundle *preset_bundle) void PresetUpdater::slic3r_update_notify() { - if (! p->enabled_version_check) { return; } - + if (! p->enabled_version_check) + return; auto* app_config = GUI::wxGetApp().app_config; const auto ver_online_str = app_config->get("version_online"); const auto ver_online = Semver::parse(ver_online_str); @@ -754,7 +763,7 @@ void PresetUpdater::slic3r_update_notify() GUI::MsgUpdateSlic3r notification(Slic3r::SEMVER, *ver_online); notification.ShowModal(); if (notification.disable_version_check()) { - app_config->set("version_check", "0"); + app_config->set("notify_release", "none"); p->enabled_version_check = false; } } diff --git a/src/slic3r/Utils/PresetUpdater.hpp b/src/slic3r/Utils/PresetUpdater.hpp index 085aaa4a6..1313c3df8 100644 --- a/src/slic3r/Utils/PresetUpdater.hpp +++ b/src/slic3r/Utils/PresetUpdater.hpp @@ -63,7 +63,6 @@ private: }; wxDECLARE_EVENT(EVT_SLIC3R_VERSION_ONLINE, wxCommandEvent); -wxDECLARE_EVENT(EVT_SLIC3R_ALPHA_VERSION_ONLINE, wxCommandEvent); -wxDECLARE_EVENT(EVT_SLIC3R_BETA_VERSION_ONLINE, wxCommandEvent); +wxDECLARE_EVENT(EVT_SLIC3R_EXPERIMENTAL_VERSION_ONLINE, wxCommandEvent); } #endif diff --git a/src/slic3r/Utils/Repetier.cpp b/src/slic3r/Utils/Repetier.cpp index 7b66922d7..094d1baa2 100644 --- a/src/slic3r/Utils/Repetier.cpp +++ b/src/slic3r/Utils/Repetier.cpp @@ -107,7 +107,7 @@ bool Repetier::upload(PrintHostUpload upload_data, ProgressFn prorgess_fn, Error bool res = true; - auto url = make_url((boost::format("printer/model/%1%") % port).str()); + auto url = upload_data.start_print?make_url((boost::format("printer/job/%1%") % port).str()):make_url((boost::format("printer/model/%1%") % port).str()); BOOST_LOG_TRIVIAL(info) << boost::format("%1%: Uploading file %2% at %3%, filename: %4%, path: %5%, print: %6%, group: %7%") % name @@ -125,6 +125,10 @@ bool Repetier::upload(PrintHostUpload upload_data, ProgressFn prorgess_fn, Error http.form_add("group", upload_data.group); } + if(upload_data.start_print) { + http.form_add("name", upload_filename.string()); + } + http.form_add("a", "upload") .form_add_file("filename", upload_data.source_path.string(), upload_filename.string()) .on_complete([&](std::string body, unsigned status) { diff --git a/src/slic3r/Utils/Repetier.hpp b/src/slic3r/Utils/Repetier.hpp index 5141dc040..057575417 100644 --- a/src/slic3r/Utils/Repetier.hpp +++ b/src/slic3r/Utils/Repetier.hpp @@ -27,7 +27,7 @@ public: bool upload(PrintHostUpload upload_data, ProgressFn prorgess_fn, ErrorFn error_fn) const override; bool has_auto_discovery() const override { return false; } bool can_test() const override { return true; } - bool can_start_print() const override { return false; } + bool can_start_print() const override { return true; } bool supports_multiple_printers() const override { return true; } std::string get_host() const override { return host; } diff --git a/src/slic3r/Utils/UndoRedo.cpp b/src/slic3r/Utils/UndoRedo.cpp index 3ea57edf2..049de5400 100644 --- a/src/slic3r/Utils/UndoRedo.cpp +++ b/src/slic3r/Utils/UndoRedo.cpp @@ -1078,7 +1078,7 @@ std::vector::iterator StackImpl::release_snapshots(std::vector= begin->timestamp && (end == m_snapshots.end() || m_saved_snapshot_time < end->timestamp)) { + if (m_saved_snapshot_time != size_t(-1) && m_saved_snapshot_time >= begin->timestamp && (end == m_snapshots.end() || m_saved_snapshot_time < end->timestamp)) { assert(m_saved_snapshot_time <= m_snapshots.back().timestamp); auto it_saved = std::lower_bound(begin, end, Snapshot(m_saved_snapshot_time)); assert(it_saved != m_snapshots.end() && it_saved->timestamp == m_saved_snapshot_time); diff --git a/tests/libslic3r/CMakeLists.txt b/tests/libslic3r/CMakeLists.txt index 05898db28..6475570c1 100644 --- a/tests/libslic3r/CMakeLists.txt +++ b/tests/libslic3r/CMakeLists.txt @@ -14,7 +14,6 @@ add_executable(${_TEST_NAME}_tests test_mutable_polygon.cpp test_mutable_priority_queue.cpp test_stl.cpp - test_meshsimplify.cpp test_meshboolean.cpp test_marchingsquares.cpp test_timeutils.cpp diff --git a/tests/libslic3r/test_geometry.cpp b/tests/libslic3r/test_geometry.cpp index 8261fe249..6bec7af68 100644 --- a/tests/libslic3r/test_geometry.cpp +++ b/tests/libslic3r/test_geometry.cpp @@ -6,6 +6,7 @@ #include "libslic3r/Polyline.hpp" #include "libslic3r/Line.hpp" #include "libslic3r/Geometry.hpp" +#include "libslic3r/Geometry/Circle.hpp" #include "libslic3r/ClipperUtils.hpp" #include "libslic3r/ShortestPath.hpp" @@ -320,6 +321,24 @@ SCENARIO("Circle Fit, TaubinFit with Newton's method", "[Geometry]") { } } +TEST_CASE("smallest_enclosing_circle_welzl", "[Geometry]") { + // Some random points in plane. + Points pts { + { 89243, 4359 }, { 763465, 59687 }, { 3245, 734987 }, { 2459867, 987634 }, { 759866, 67843982 }, { 9754687, 9834658 }, { 87235089, 743984373 }, + { 65874456, 2987546 }, { 98234524, 657654873 }, { 786243598, 287934765 }, { 824356, 734265 }, { 82576449, 7864534 }, { 7826345, 3984765 } + }; + + const auto c = Slic3r::Geometry::smallest_enclosing_circle_welzl(pts); + // The radius returned is inflated by SCALED_EPSILON, thus all points should be inside. + bool all_inside = std::all_of(pts.begin(), pts.end(), [c](const Point &pt){ return c.contains(pt.cast()); }); + auto c2(c); + c2.radius -= SCALED_EPSILON * 2.1; + auto num_on_boundary = std::count_if(pts.begin(), pts.end(), [c2](const Point& pt) { return ! c2.contains(pt.cast(), SCALED_EPSILON); }); + + REQUIRE(all_inside); + REQUIRE(num_on_boundary == 3); +} + SCENARIO("Path chaining", "[Geometry]") { GIVEN("A path") { std::vector points = { Point(26,26),Point(52,26),Point(0,26),Point(26,52),Point(26,0),Point(0,52),Point(52,52),Point(52,0) }; diff --git a/tests/libslic3r/test_meshboolean.cpp b/tests/libslic3r/test_meshboolean.cpp index 97d03ac23..f1582fe3b 100644 --- a/tests/libslic3r/test_meshboolean.cpp +++ b/tests/libslic3r/test_meshboolean.cpp @@ -3,7 +3,6 @@ #include #include -#include using namespace Slic3r; diff --git a/tests/libslic3r/test_meshsimplify.cpp b/tests/libslic3r/test_meshsimplify.cpp deleted file mode 100644 index d21c3a892..000000000 --- a/tests/libslic3r/test_meshsimplify.cpp +++ /dev/null @@ -1,11 +0,0 @@ -#include -#include - -//#include - -//TEST_CASE("Mesh simplification", "[mesh_simplify]") { -// Simplify::load_obj(TEST_DATA_DIR PATH_SEPARATOR "zaba.obj"); -// Simplify::simplify_mesh_lossless(); -// Simplify::write_obj("zaba_simplified.obj"); -//} - diff --git a/tests/libslic3r/test_placeholder_parser.cpp b/tests/libslic3r/test_placeholder_parser.cpp index 59784e940..abf7308f2 100644 --- a/tests/libslic3r/test_placeholder_parser.cpp +++ b/tests/libslic3r/test_placeholder_parser.cpp @@ -51,6 +51,20 @@ SCENARIO("Placeholder parser scripting", "[PlaceholderParser]") { SECTION("math: max(13.4, -1238.1)") { REQUIRE(std::stod(parser.process("{max(13.4, -1238.1)}")) == Approx(13.4)); } SECTION("math: int(13.4)") { REQUIRE(parser.process("{int(13.4)}") == "13"); } SECTION("math: int(-13.4)") { REQUIRE(parser.process("{int(-13.4)}") == "-13"); } + SECTION("math: round(13.4)") { REQUIRE(parser.process("{round(13.4)}") == "13"); } + SECTION("math: round(-13.4)") { REQUIRE(parser.process("{round(-13.4)}") == "-13"); } + SECTION("math: round(13.6)") { REQUIRE(parser.process("{round(13.6)}") == "14"); } + SECTION("math: round(-13.6)") { REQUIRE(parser.process("{round(-13.6)}") == "-14"); } + SECTION("math: digits(5, 15)") { REQUIRE(parser.process("{digits(5, 15)}") == " 5"); } + SECTION("math: digits(5., 15)") { REQUIRE(parser.process("{digits(5., 15)}") == " 5"); } + SECTION("math: zdigits(5, 15)") { REQUIRE(parser.process("{zdigits(5, 15)}") == "000000000000005"); } + SECTION("math: zdigits(5., 15)") { REQUIRE(parser.process("{zdigits(5., 15)}") == "000000000000005"); } + SECTION("math: digits(5, 15, 8)") { REQUIRE(parser.process("{digits(5, 15, 8)}") == " 5.00000000"); } + SECTION("math: digits(5., 15, 8)") { REQUIRE(parser.process("{digits(5, 15, 8)}") == " 5.00000000"); } + SECTION("math: zdigits(5, 15, 8)") { REQUIRE(parser.process("{zdigits(5, 15, 8)}") == "000005.00000000"); } + SECTION("math: zdigits(5., 15, 8)") { REQUIRE(parser.process("{zdigits(5, 15, 8)}") == "000005.00000000"); } + SECTION("math: digits(13.84375892476, 15, 8)") { REQUIRE(parser.process("{digits(13.84375892476, 15, 8)}") == " 13.84375892"); } + SECTION("math: zdigits(13.84375892476, 15, 8)") { REQUIRE(parser.process("{zdigits(13.84375892476, 15, 8)}") == "000013.84375892"); } // Test the "coFloatOrPercent" and "xxx_extrusion_width" substitutions. // first_layer_extrusion_width ratio_over first_layer_heigth. diff --git a/tests/libslic3r/test_voronoi.cpp b/tests/libslic3r/test_voronoi.cpp index c78849c01..db12e2fec 100644 --- a/tests/libslic3r/test_voronoi.cpp +++ b/tests/libslic3r/test_voronoi.cpp @@ -6,8 +6,8 @@ #include #include -#include -#include +#include +#include #include