diff --git a/ALL_BUILD.vcxproj b/ALL_BUILD.vcxproj
new file mode 100644
index 0000000..55a5ceb
--- /dev/null
+++ b/ALL_BUILD.vcxproj
@@ -0,0 +1,185 @@
+
+
+
+ x64
+
+
+ false
+
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+ MinSizeRel
+ x64
+
+
+ RelWithDebInfo
+ x64
+
+
+
+ {92B67C4C-487D-30AF-BA17-5262F6902E51}
+ Win32Proj
+ 10.0.26100.0
+ x64
+ ALL_BUILD
+ NoUpgrade
+
+
+
+ Utility
+ MultiByte
+ v143
+
+
+ Utility
+ MultiByte
+ v143
+
+
+ Utility
+ MultiByte
+ v143
+
+
+ Utility
+ MultiByte
+ v143
+
+
+
+
+
+
+
+
+
+ <_ProjectFileVersion>10.0.20506.1
+ $(Platform)\$(Configuration)\$(ProjectName)\
+ $(Platform)\$(Configuration)\$(ProjectName)\
+ $(Platform)\$(Configuration)\$(ProjectName)\
+ $(Platform)\$(Configuration)\$(ProjectName)\
+
+
+
+ %(AdditionalIncludeDirectories)
+ $(ProjectDir)/$(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+
+
+ %(AdditionalIncludeDirectories)
+ $(ProjectDir)/$(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+
+
+ %(AdditionalIncludeDirectories)
+ $(ProjectDir)/$(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+
+
+ %(AdditionalIncludeDirectories)
+ $(ProjectDir)/$(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+
+
+ Always
+ Building Custom Rule C:/Users/simulateur/Documents/Webcam/CMakeLists.txt
+ setlocal
+"C:\Program Files\CMake\bin\cmake.exe" -SC:/Users/simulateur/Documents/Webcam -BC:/Users/simulateur/Documents/Webcam --check-stamp-file C:/Users/simulateur/Documents/Webcam/CMakeFiles/generate.stamp
+if %errorlevel% neq 0 goto :cmEnd
+:cmEnd
+endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
+:cmErrorLevel
+exit /b %1
+:cmDone
+if %errorlevel% neq 0 goto :VCEnd
+ C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeCXXInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeCommonLanguageInclude.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeGenericSystem.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeInitializeConfigs.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeLanguageInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeRCInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeSystemSpecificInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeSystemSpecificInitialize.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Compiler\CMakeCommonCompilerMacros.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Compiler\MSVC-CXX.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Compiler\MSVC.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Internal\CMakeCXXLinkerInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Internal\CMakeCommonLinkerInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Linker\MSVC-CXX.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Linker\MSVC.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Linker\Windows-MSVC-CXX.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Linker\Windows-MSVC.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Windows-Initialize.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Windows-MSVC-CXX.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Windows-MSVC.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Windows.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\WindowsPaths.cmake;C:\Users\simulateur\Documents\Webcam\CMakeFiles\4.3.3\CMakeCXXCompiler.cmake;C:\Users\simulateur\Documents\Webcam\CMakeFiles\4.3.3\CMakeRCCompiler.cmake;C:\Users\simulateur\Documents\Webcam\CMakeFiles\4.3.3\CMakeSystem.cmake;%(AdditionalInputs)
+ C:\Users\simulateur\Documents\Webcam\CMakeFiles\generate.stamp
+ false
+ Building Custom Rule C:/Users/simulateur/Documents/Webcam/CMakeLists.txt
+ setlocal
+"C:\Program Files\CMake\bin\cmake.exe" -SC:/Users/simulateur/Documents/Webcam -BC:/Users/simulateur/Documents/Webcam --check-stamp-file C:/Users/simulateur/Documents/Webcam/CMakeFiles/generate.stamp
+if %errorlevel% neq 0 goto :cmEnd
+:cmEnd
+endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
+:cmErrorLevel
+exit /b %1
+:cmDone
+if %errorlevel% neq 0 goto :VCEnd
+ C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeCXXInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeCommonLanguageInclude.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeGenericSystem.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeInitializeConfigs.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeLanguageInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeRCInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeSystemSpecificInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeSystemSpecificInitialize.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Compiler\CMakeCommonCompilerMacros.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Compiler\MSVC-CXX.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Compiler\MSVC.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Internal\CMakeCXXLinkerInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Internal\CMakeCommonLinkerInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Linker\MSVC-CXX.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Linker\MSVC.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Linker\Windows-MSVC-CXX.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Linker\Windows-MSVC.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Windows-Initialize.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Windows-MSVC-CXX.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Windows-MSVC.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Windows.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\WindowsPaths.cmake;C:\Users\simulateur\Documents\Webcam\CMakeFiles\4.3.3\CMakeCXXCompiler.cmake;C:\Users\simulateur\Documents\Webcam\CMakeFiles\4.3.3\CMakeRCCompiler.cmake;C:\Users\simulateur\Documents\Webcam\CMakeFiles\4.3.3\CMakeSystem.cmake;%(AdditionalInputs)
+ C:\Users\simulateur\Documents\Webcam\CMakeFiles\generate.stamp
+ false
+ Building Custom Rule C:/Users/simulateur/Documents/Webcam/CMakeLists.txt
+ setlocal
+"C:\Program Files\CMake\bin\cmake.exe" -SC:/Users/simulateur/Documents/Webcam -BC:/Users/simulateur/Documents/Webcam --check-stamp-file C:/Users/simulateur/Documents/Webcam/CMakeFiles/generate.stamp
+if %errorlevel% neq 0 goto :cmEnd
+:cmEnd
+endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
+:cmErrorLevel
+exit /b %1
+:cmDone
+if %errorlevel% neq 0 goto :VCEnd
+ C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeCXXInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeCommonLanguageInclude.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeGenericSystem.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeInitializeConfigs.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeLanguageInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeRCInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeSystemSpecificInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeSystemSpecificInitialize.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Compiler\CMakeCommonCompilerMacros.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Compiler\MSVC-CXX.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Compiler\MSVC.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Internal\CMakeCXXLinkerInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Internal\CMakeCommonLinkerInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Linker\MSVC-CXX.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Linker\MSVC.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Linker\Windows-MSVC-CXX.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Linker\Windows-MSVC.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Windows-Initialize.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Windows-MSVC-CXX.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Windows-MSVC.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Windows.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\WindowsPaths.cmake;C:\Users\simulateur\Documents\Webcam\CMakeFiles\4.3.3\CMakeCXXCompiler.cmake;C:\Users\simulateur\Documents\Webcam\CMakeFiles\4.3.3\CMakeRCCompiler.cmake;C:\Users\simulateur\Documents\Webcam\CMakeFiles\4.3.3\CMakeSystem.cmake;%(AdditionalInputs)
+ C:\Users\simulateur\Documents\Webcam\CMakeFiles\generate.stamp
+ false
+ Building Custom Rule C:/Users/simulateur/Documents/Webcam/CMakeLists.txt
+ setlocal
+"C:\Program Files\CMake\bin\cmake.exe" -SC:/Users/simulateur/Documents/Webcam -BC:/Users/simulateur/Documents/Webcam --check-stamp-file C:/Users/simulateur/Documents/Webcam/CMakeFiles/generate.stamp
+if %errorlevel% neq 0 goto :cmEnd
+:cmEnd
+endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
+:cmErrorLevel
+exit /b %1
+:cmDone
+if %errorlevel% neq 0 goto :VCEnd
+ C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeCXXInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeCommonLanguageInclude.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeGenericSystem.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeInitializeConfigs.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeLanguageInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeRCInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeSystemSpecificInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeSystemSpecificInitialize.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Compiler\CMakeCommonCompilerMacros.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Compiler\MSVC-CXX.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Compiler\MSVC.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Internal\CMakeCXXLinkerInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Internal\CMakeCommonLinkerInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Linker\MSVC-CXX.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Linker\MSVC.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Linker\Windows-MSVC-CXX.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Linker\Windows-MSVC.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Windows-Initialize.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Windows-MSVC-CXX.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Windows-MSVC.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Windows.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\WindowsPaths.cmake;C:\Users\simulateur\Documents\Webcam\CMakeFiles\4.3.3\CMakeCXXCompiler.cmake;C:\Users\simulateur\Documents\Webcam\CMakeFiles\4.3.3\CMakeRCCompiler.cmake;C:\Users\simulateur\Documents\Webcam\CMakeFiles\4.3.3\CMakeSystem.cmake;%(AdditionalInputs)
+ C:\Users\simulateur\Documents\Webcam\CMakeFiles\generate.stamp
+ false
+
+
+
+
+
+
+
+ {DFDD874C-C278-3C91-BA8D-C0D52806D143}
+ ZERO_CHECK
+ false
+ Never
+
+
+ {9A0CEC2D-BC80-370B-A1D5-74701C43BA7A}
+ webcam
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ALL_BUILD.vcxproj.filters b/ALL_BUILD.vcxproj.filters
new file mode 100644
index 0000000..de8e59d
--- /dev/null
+++ b/ALL_BUILD.vcxproj.filters
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
diff --git a/CMakeCache.txt b/CMakeCache.txt
new file mode 100644
index 0000000..bd7875b
--- /dev/null
+++ b/CMakeCache.txt
@@ -0,0 +1,308 @@
+# This is the CMakeCache file.
+# For build in directory: c:/Users/simulateur/Documents/Webcam
+# It was generated by CMake: C:/Program Files/CMake/bin/cmake.exe
+# You can edit this file to change values found and used by cmake.
+# If you do not want to change any of the values, simply exit the editor.
+# If you do want to change a value, simply edit, save, and exit the editor.
+# The syntax for the file is as follows:
+# KEY:TYPE=VALUE
+# KEY is the name of a variable in the cache.
+# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!.
+# VALUE is the current value for the KEY.
+
+########################
+# EXTERNAL cache entries
+########################
+
+//Path to a program.
+CMAKE_AR:FILEPATH=C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.44.35207/bin/Hostx64/x64/lib.exe
+
+CMAKE_BUILD_TYPE:STRING=Release
+
+//Semicolon separated list of supported configuration types, only
+// supports Debug, Release, MinSizeRel, and RelWithDebInfo, anything
+// else will be ignored.
+CMAKE_CONFIGURATION_TYPES:STRING=Debug;Release;MinSizeRel;RelWithDebInfo
+
+//Flags used by the CXX compiler during all build types.
+CMAKE_CXX_FLAGS:STRING=/DWIN32 /D_WINDOWS /EHsc
+
+//Flags used by the CXX compiler during DEBUG builds.
+CMAKE_CXX_FLAGS_DEBUG:STRING=/Zi /Ob0 /Od /RTC1
+
+//Flags used by the CXX compiler during MINSIZEREL builds.
+CMAKE_CXX_FLAGS_MINSIZEREL:STRING=/O1 /Ob1 /DNDEBUG
+
+//Flags used by the CXX compiler during RELEASE builds.
+CMAKE_CXX_FLAGS_RELEASE:STRING=/O2 /Ob2 /DNDEBUG
+
+//Flags used by the CXX compiler during RELWITHDEBINFO builds.
+CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=/Zi /O2 /Ob1 /DNDEBUG
+
+//Libraries linked by default with all C++ applications.
+CMAKE_CXX_STANDARD_LIBRARIES:STRING=kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib
+
+//Flags used by the linker during all build types.
+CMAKE_EXE_LINKER_FLAGS:STRING=/machine:x64
+
+//Flags used by the linker during DEBUG builds.
+CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING=/debug /INCREMENTAL
+
+//Flags used by the linker during MINSIZEREL builds.
+CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING=/INCREMENTAL:NO
+
+//Flags used by the linker during RELEASE builds.
+CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING=/INCREMENTAL:NO
+
+//Flags used by the linker during RELWITHDEBINFO builds.
+CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING=/debug /INCREMENTAL
+
+//Value Computed by CMake.
+CMAKE_FIND_PACKAGE_REDIRECTS_DIR:STATIC=C:/Users/simulateur/Documents/Webcam/CMakeFiles/pkgRedirects
+
+//Install path prefix, prepended onto install directories.
+CMAKE_INSTALL_PREFIX:PATH=C:/Program Files (x86)/webcam
+
+//Path to a program.
+CMAKE_LINKER:FILEPATH=C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.44.35207/bin/Hostx64/x64/link.exe
+
+//Flags used by the linker during the creation of modules during
+// all build types.
+CMAKE_MODULE_LINKER_FLAGS:STRING=/machine:x64
+
+//Flags used by the linker during the creation of modules during
+// DEBUG builds.
+CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING=/debug /INCREMENTAL
+
+//Flags used by the linker during the creation of modules during
+// MINSIZEREL builds.
+CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING=/INCREMENTAL:NO
+
+//Flags used by the linker during the creation of modules during
+// RELEASE builds.
+CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING=/INCREMENTAL:NO
+
+//Flags used by the linker during the creation of modules during
+// RELWITHDEBINFO builds.
+CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING=/debug /INCREMENTAL
+
+//Path to a program.
+CMAKE_MT:FILEPATH=CMAKE_MT-NOTFOUND
+
+//Value Computed by CMake
+CMAKE_PROJECT_COMPAT_VERSION:STATIC=
+
+//Value Computed by CMake
+CMAKE_PROJECT_DESCRIPTION:STATIC=
+
+//Value Computed by CMake
+CMAKE_PROJECT_HOMEPAGE_URL:STATIC=
+
+//Value Computed by CMake
+CMAKE_PROJECT_NAME:STATIC=webcam
+
+//Value Computed by CMake
+CMAKE_PROJECT_SPDX_LICENSE:STATIC=
+
+//RC compiler
+CMAKE_RC_COMPILER:FILEPATH=rc
+
+//Flags for Windows Resource Compiler during all build types.
+CMAKE_RC_FLAGS:STRING=-DWIN32
+
+//Flags for Windows Resource Compiler during DEBUG builds.
+CMAKE_RC_FLAGS_DEBUG:STRING=-D_DEBUG
+
+//Flags for Windows Resource Compiler during MINSIZEREL builds.
+CMAKE_RC_FLAGS_MINSIZEREL:STRING=
+
+//Flags for Windows Resource Compiler during RELEASE builds.
+CMAKE_RC_FLAGS_RELEASE:STRING=
+
+//Flags for Windows Resource Compiler during RELWITHDEBINFO builds.
+CMAKE_RC_FLAGS_RELWITHDEBINFO:STRING=
+
+//Flags used by the linker during the creation of shared libraries
+// during all build types.
+CMAKE_SHARED_LINKER_FLAGS:STRING=/machine:x64
+
+//Flags used by the linker during the creation of shared libraries
+// during DEBUG builds.
+CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING=/debug /INCREMENTAL
+
+//Flags used by the linker during the creation of shared libraries
+// during MINSIZEREL builds.
+CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING=/INCREMENTAL:NO
+
+//Flags used by the linker during the creation of shared libraries
+// during RELEASE builds.
+CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING=/INCREMENTAL:NO
+
+//Flags used by the linker during the creation of shared libraries
+// during RELWITHDEBINFO builds.
+CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING=/debug /INCREMENTAL
+
+//If set, runtime paths are not added when installing shared libraries,
+// but are added when building.
+CMAKE_SKIP_INSTALL_RPATH:BOOL=NO
+
+//If set, runtime paths are not added when using shared libraries.
+CMAKE_SKIP_RPATH:BOOL=NO
+
+//Flags used by the archiver during the creation of static libraries
+// during all build types.
+CMAKE_STATIC_LINKER_FLAGS:STRING=/machine:x64
+
+//Flags used by the archiver during the creation of static libraries
+// during DEBUG builds.
+CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING=
+
+//Flags used by the archiver during the creation of static libraries
+// during MINSIZEREL builds.
+CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING=
+
+//Flags used by the archiver during the creation of static libraries
+// during RELEASE builds.
+CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING=
+
+//Flags used by the archiver during the creation of static libraries
+// during RELWITHDEBINFO builds.
+CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING=
+
+//If this value is on, makefiles will be generated without the
+// .SILENT directive, and all commands will be echoed to the console
+// during the make. This is useful for debugging only. With Visual
+// Studio IDE projects all commands are done without /nologo.
+CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE
+
+//Value Computed by CMake
+webcam_BINARY_DIR:STATIC=C:/Users/simulateur/Documents/Webcam
+
+//Value Computed by CMake
+webcam_IS_TOP_LEVEL:STATIC=ON
+
+//Value Computed by CMake
+webcam_SOURCE_DIR:STATIC=C:/Users/simulateur/Documents/Webcam
+
+
+########################
+# INTERNAL cache entries
+########################
+
+//ADVANCED property for variable: CMAKE_AR
+CMAKE_AR-ADVANCED:INTERNAL=1
+//This is the directory where this CMakeCache.txt was created
+CMAKE_CACHEFILE_DIR:INTERNAL=c:/Users/simulateur/Documents/Webcam
+//Major version of cmake used to create the current loaded cache
+CMAKE_CACHE_MAJOR_VERSION:INTERNAL=4
+//Minor version of cmake used to create the current loaded cache
+CMAKE_CACHE_MINOR_VERSION:INTERNAL=3
+//Patch version of cmake used to create the current loaded cache
+CMAKE_CACHE_PATCH_VERSION:INTERNAL=3
+//Path to CMake executable.
+CMAKE_COMMAND:INTERNAL=C:/Program Files/CMake/bin/cmake.exe
+//Path to cpack program executable.
+CMAKE_CPACK_COMMAND:INTERNAL=C:/Program Files/CMake/bin/cpack.exe
+//Path to ctest program executable.
+CMAKE_CTEST_COMMAND:INTERNAL=C:/Program Files/CMake/bin/ctest.exe
+//ADVANCED property for variable: CMAKE_CXX_FLAGS
+CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG
+CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL
+CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE
+CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO
+CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_CXX_STANDARD_LIBRARIES
+CMAKE_CXX_STANDARD_LIBRARIES-ADVANCED:INTERNAL=1
+//Executable file format
+CMAKE_EXECUTABLE_FORMAT:INTERNAL=Unknown
+//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS
+CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG
+CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL
+CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE
+CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO
+CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//Name of external makefile project generator.
+CMAKE_EXTRA_GENERATOR:INTERNAL=
+//Name of generator.
+CMAKE_GENERATOR:INTERNAL=Visual Studio 17 2022
+//Generator instance identifier.
+CMAKE_GENERATOR_INSTANCE:INTERNAL=C:/Program Files/Microsoft Visual Studio/2022/Community
+//Name of generator platform.
+CMAKE_GENERATOR_PLATFORM:INTERNAL=
+//Name of generator toolset.
+CMAKE_GENERATOR_TOOLSET:INTERNAL=
+//Source directory with the top level CMakeLists.txt file for this
+// project
+CMAKE_HOME_DIRECTORY:INTERNAL=C:/Users/simulateur/Documents/Webcam
+//ADVANCED property for variable: CMAKE_LINKER
+CMAKE_LINKER-ADVANCED:INTERNAL=1
+//Name of CMakeLists files to read
+CMAKE_LIST_FILE_NAME:INTERNAL=CMakeLists.txt
+//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS
+CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG
+CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL
+CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE
+CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO
+CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MT
+CMAKE_MT-ADVANCED:INTERNAL=1
+//number of local generators
+CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=1
+//Platform information initialized
+CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1
+//noop for ranlib
+CMAKE_RANLIB:INTERNAL=:
+//ADVANCED property for variable: CMAKE_RC_COMPILER
+CMAKE_RC_COMPILER-ADVANCED:INTERNAL=1
+CMAKE_RC_COMPILER_WORKS:INTERNAL=1
+//ADVANCED property for variable: CMAKE_RC_FLAGS
+CMAKE_RC_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_RC_FLAGS_DEBUG
+CMAKE_RC_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_RC_FLAGS_MINSIZEREL
+CMAKE_RC_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_RC_FLAGS_RELEASE
+CMAKE_RC_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_RC_FLAGS_RELWITHDEBINFO
+CMAKE_RC_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//Path to CMake installation.
+CMAKE_ROOT:INTERNAL=C:/Program Files/CMake/share/cmake-4.3
+//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS
+CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG
+CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL
+CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE
+CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO
+CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH
+CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SKIP_RPATH
+CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS
+CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG
+CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL
+CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE
+CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO
+CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE
+CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1
+
diff --git a/CMakeFiles/4.3.3/CMakeCXXCompiler.cmake b/CMakeFiles/4.3.3/CMakeCXXCompiler.cmake
new file mode 100644
index 0000000..6d8e4b7
--- /dev/null
+++ b/CMakeFiles/4.3.3/CMakeCXXCompiler.cmake
@@ -0,0 +1,102 @@
+set(CMAKE_CXX_COMPILER "C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.44.35207/bin/Hostx64/x64/cl.exe")
+set(CMAKE_CXX_COMPILER_ARG1 "")
+set(CMAKE_CXX_COMPILER_ID "MSVC")
+set(CMAKE_CXX_COMPILER_VERSION "19.44.35217.0")
+set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "")
+set(CMAKE_CXX_COMPILER_WRAPPER "")
+set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "14")
+set(CMAKE_CXX_EXTENSIONS_COMPUTED_DEFAULT "OFF")
+set(CMAKE_CXX_STANDARD_LATEST "23")
+set(CMAKE_CXX_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters;cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates;cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates;cxx_std_17;cxx_std_20;cxx_std_23")
+set(CMAKE_CXX98_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters")
+set(CMAKE_CXX11_COMPILE_FEATURES "cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates")
+set(CMAKE_CXX14_COMPILE_FEATURES "cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates")
+set(CMAKE_CXX17_COMPILE_FEATURES "cxx_std_17")
+set(CMAKE_CXX20_COMPILE_FEATURES "cxx_std_20")
+set(CMAKE_CXX23_COMPILE_FEATURES "cxx_std_23")
+set(CMAKE_CXX26_COMPILE_FEATURES "")
+
+set(CMAKE_CXX_PLATFORM_ID "Windows")
+set(CMAKE_CXX_SIMULATE_ID "")
+set(CMAKE_CXX_COMPILER_FRONTEND_VARIANT "MSVC")
+set(CMAKE_CXX_COMPILER_APPLE_SYSROOT "")
+set(CMAKE_CXX_SIMULATE_VERSION "")
+set(CMAKE_CXX_COMPILER_ARCHITECTURE_ID "x64")
+
+set(MSVC_CXX_ARCHITECTURE_ID x64)
+
+
+set(CMAKE_AR "C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.44.35207/bin/Hostx64/x64/lib.exe")
+set(CMAKE_CXX_COMPILER_AR "")
+set(CMAKE_RANLIB ":")
+set(CMAKE_CXX_COMPILER_RANLIB "")
+set(CMAKE_LINKER "C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.44.35207/bin/Hostx64/x64/link.exe")
+set(CMAKE_LINKER_LINK "C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.44.35207/bin/Hostx64/x64/link.exe")
+set(CMAKE_LINKER_LLD "lld-link")
+set(CMAKE_CXX_COMPILER_LINKER "C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.44.35207/bin/HostX64/x64/link.exe")
+set(CMAKE_CXX_COMPILER_LINKER_ID "MSVC")
+set(CMAKE_CXX_COMPILER_LINKER_VERSION 14.44.35217.0)
+set(CMAKE_CXX_COMPILER_LINKER_FRONTEND_VARIANT MSVC)
+set(CMAKE_MT "CMAKE_MT-NOTFOUND")
+set(CMAKE_TAPI "")
+set(CMAKE_COMPILER_IS_GNUCXX )
+set(CMAKE_CXX_COMPILER_LOADED 1)
+set(CMAKE_CXX_COMPILER_WORKS TRUE)
+set(CMAKE_CXX_ABI_COMPILED TRUE)
+
+set(CMAKE_CXX_COMPILER_ENV_VAR "CXX")
+
+set(CMAKE_CXX_COMPILER_ID_RUN 1)
+set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;m;mm;mpp;CPP;ixx;cppm;ccm;cxxm;c++m)
+set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC)
+
+foreach (lang IN ITEMS C OBJC OBJCXX)
+ if (CMAKE_${lang}_COMPILER_ID_RUN)
+ foreach(extension IN LISTS CMAKE_${lang}_SOURCE_FILE_EXTENSIONS)
+ list(REMOVE_ITEM CMAKE_CXX_SOURCE_FILE_EXTENSIONS ${extension})
+ endforeach()
+ endif()
+endforeach()
+
+set(CMAKE_CXX_LINKER_PREFERENCE 30)
+set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1)
+set(CMAKE_CXX_LINKER_DEPFILE_SUPPORTED )
+set(CMAKE_LINKER_PUSHPOP_STATE_SUPPORTED )
+set(CMAKE_CXX_LINKER_PUSHPOP_STATE_SUPPORTED )
+
+# Save compiler ABI information.
+set(CMAKE_CXX_SIZEOF_DATA_PTR "8")
+set(CMAKE_CXX_COMPILER_ABI "")
+set(CMAKE_CXX_BYTE_ORDER "LITTLE_ENDIAN")
+set(CMAKE_CXX_LIBRARY_ARCHITECTURE "")
+
+if(CMAKE_CXX_SIZEOF_DATA_PTR)
+ set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}")
+endif()
+
+if(CMAKE_CXX_COMPILER_ABI)
+ set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}")
+endif()
+
+if(CMAKE_CXX_LIBRARY_ARCHITECTURE)
+ set(CMAKE_LIBRARY_ARCHITECTURE "")
+endif()
+
+set(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX "")
+if(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX)
+ set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_CXX_CL_SHOWINCLUDES_PREFIX}")
+endif()
+
+
+
+
+
+set(CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES "")
+set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "")
+set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "")
+set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "")
+set(CMAKE_CXX_COMPILER_CLANG_RESOURCE_DIR "")
+
+set(CMAKE_CXX_COMPILER_IMPORT_STD "")
+set(CMAKE_CXX_COMPILER_IMPORT_STD_ERROR_MESSAGE "Unsupported generator: Visual Studio 17 2022")
+set(CMAKE_CXX_STDLIB_MODULES_JSON "")
diff --git a/CMakeFiles/4.3.3/CMakeDetermineCompilerABI_CXX.bin b/CMakeFiles/4.3.3/CMakeDetermineCompilerABI_CXX.bin
new file mode 100644
index 0000000..badd730
Binary files /dev/null and b/CMakeFiles/4.3.3/CMakeDetermineCompilerABI_CXX.bin differ
diff --git a/CMakeFiles/4.3.3/CMakeRCCompiler.cmake b/CMakeFiles/4.3.3/CMakeRCCompiler.cmake
new file mode 100644
index 0000000..0f61961
--- /dev/null
+++ b/CMakeFiles/4.3.3/CMakeRCCompiler.cmake
@@ -0,0 +1,6 @@
+set(CMAKE_RC_COMPILER "rc")
+set(CMAKE_RC_COMPILER_ARG1 "")
+set(CMAKE_RC_COMPILER_LOADED 1)
+set(CMAKE_RC_SOURCE_FILE_EXTENSIONS rc;RC)
+set(CMAKE_RC_OUTPUT_EXTENSION .res)
+set(CMAKE_RC_COMPILER_ENV_VAR "RC")
diff --git a/CMakeFiles/4.3.3/CMakeSystem.cmake b/CMakeFiles/4.3.3/CMakeSystem.cmake
new file mode 100644
index 0000000..88ce365
--- /dev/null
+++ b/CMakeFiles/4.3.3/CMakeSystem.cmake
@@ -0,0 +1,15 @@
+set(CMAKE_HOST_SYSTEM "Windows-10.0.26200")
+set(CMAKE_HOST_SYSTEM_NAME "Windows")
+set(CMAKE_HOST_SYSTEM_VERSION "10.0.26200")
+set(CMAKE_HOST_SYSTEM_PROCESSOR "AMD64")
+
+
+
+set(CMAKE_SYSTEM "Windows-10.0.26200")
+set(CMAKE_SYSTEM_NAME "Windows")
+set(CMAKE_SYSTEM_VERSION "10.0.26200")
+set(CMAKE_SYSTEM_PROCESSOR "AMD64")
+
+set(CMAKE_CROSSCOMPILING "FALSE")
+
+set(CMAKE_SYSTEM_LOADED 1)
diff --git a/CMakeFiles/4.3.3/CompilerIdCXX/CMakeCXXCompilerId.cpp b/CMakeFiles/4.3.3/CompilerIdCXX/CMakeCXXCompilerId.cpp
new file mode 100644
index 0000000..b35f567
--- /dev/null
+++ b/CMakeFiles/4.3.3/CompilerIdCXX/CMakeCXXCompilerId.cpp
@@ -0,0 +1,949 @@
+/* This source file must have a .cpp extension so that all C++ compilers
+ recognize the extension without flags. Borland does not know .cxx for
+ example. */
+#ifndef __cplusplus
+# error "A C compiler has been selected for C++."
+#endif
+
+#if !defined(__has_include)
+/* If the compiler does not have __has_include, pretend the answer is
+ always no. */
+# define __has_include(x) 0
+#endif
+
+
+/* Version number components: V=Version, R=Revision, P=Patch
+ Version date components: YYYY=Year, MM=Month, DD=Day */
+
+#if defined(__INTEL_COMPILER) || defined(__ICC)
+# define COMPILER_ID "Intel"
+# if defined(_MSC_VER)
+# define SIMULATE_ID "MSVC"
+# endif
+# if defined(__GNUC__)
+# define SIMULATE_ID "GNU"
+# endif
+ /* __INTEL_COMPILER = VRP prior to 2021, and then VVVV for 2021 and later,
+ except that a few beta releases use the old format with V=2021. */
+# if __INTEL_COMPILER < 2021 || __INTEL_COMPILER == 202110 || __INTEL_COMPILER == 202111
+# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100)
+# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10)
+# if defined(__INTEL_COMPILER_UPDATE)
+# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE)
+# else
+# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10)
+# endif
+# else
+# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER)
+# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER_UPDATE)
+ /* The third version component from --version is an update index,
+ but no macro is provided for it. */
+# define COMPILER_VERSION_PATCH DEC(0)
+# endif
+# if defined(__INTEL_COMPILER_BUILD_DATE)
+ /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */
+# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE)
+# endif
+# if defined(_MSC_VER)
+ /* _MSC_VER = VVRR */
+# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
+# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
+# endif
+# if defined(__GNUC__)
+# define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
+# elif defined(__GNUG__)
+# define SIMULATE_VERSION_MAJOR DEC(__GNUG__)
+# endif
+# if defined(__GNUC_MINOR__)
+# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
+# endif
+# if defined(__GNUC_PATCHLEVEL__)
+# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
+# endif
+
+#elif (defined(__clang__) && defined(__INTEL_CLANG_COMPILER)) || defined(__INTEL_LLVM_COMPILER)
+# define COMPILER_ID "IntelLLVM"
+#if defined(_MSC_VER)
+# define SIMULATE_ID "MSVC"
+#endif
+#if defined(__GNUC__)
+# define SIMULATE_ID "GNU"
+#endif
+/* __INTEL_LLVM_COMPILER = VVVVRP prior to 2021.2.0, VVVVRRPP for 2021.2.0 and
+ * later. Look for 6 digit vs. 8 digit version number to decide encoding.
+ * VVVV is no smaller than the current year when a version is released.
+ */
+#if __INTEL_LLVM_COMPILER < 1000000L
+# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/100)
+# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 10)
+#else
+# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/10000)
+# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/100 % 100)
+# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 100)
+#endif
+#if defined(_MSC_VER)
+ /* _MSC_VER = VVRR */
+# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
+# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
+#endif
+#if defined(__GNUC__)
+# define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
+#elif defined(__GNUG__)
+# define SIMULATE_VERSION_MAJOR DEC(__GNUG__)
+#endif
+#if defined(__GNUC_MINOR__)
+# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
+#endif
+#if defined(__GNUC_PATCHLEVEL__)
+# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
+#endif
+
+#elif defined(__PATHCC__)
+# define COMPILER_ID "PathScale"
+# define COMPILER_VERSION_MAJOR DEC(__PATHCC__)
+# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__)
+# if defined(__PATHCC_PATCHLEVEL__)
+# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__)
+# endif
+
+#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__)
+# define COMPILER_ID "Embarcadero"
+# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF)
+# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF)
+# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF)
+
+#elif defined(__BORLANDC__)
+# define COMPILER_ID "Borland"
+ /* __BORLANDC__ = 0xVRR */
+# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8)
+# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF)
+
+#elif defined(__WATCOMC__) && __WATCOMC__ < 1200
+# define COMPILER_ID "Watcom"
+ /* __WATCOMC__ = VVRR */
+# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100)
+# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
+# if (__WATCOMC__ % 10) > 0
+# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
+# endif
+
+#elif defined(__WATCOMC__)
+# define COMPILER_ID "OpenWatcom"
+ /* __WATCOMC__ = VVRP + 1100 */
+# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100)
+# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
+# if (__WATCOMC__ % 10) > 0
+# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
+# endif
+
+#elif defined(__SUNPRO_CC)
+# define COMPILER_ID "SunPro"
+# if __SUNPRO_CC >= 0x5100
+ /* __SUNPRO_CC = 0xVRRP */
+# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>12)
+# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xFF)
+# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF)
+# else
+ /* __SUNPRO_CC = 0xVRP */
+# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>8)
+# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xF)
+# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF)
+# endif
+
+#elif defined(__HP_aCC)
+# define COMPILER_ID "HP"
+ /* __HP_aCC = VVRRPP */
+# define COMPILER_VERSION_MAJOR DEC(__HP_aCC/10000)
+# define COMPILER_VERSION_MINOR DEC(__HP_aCC/100 % 100)
+# define COMPILER_VERSION_PATCH DEC(__HP_aCC % 100)
+
+#elif defined(__DECCXX)
+# define COMPILER_ID "Compaq"
+ /* __DECCXX_VER = VVRRTPPPP */
+# define COMPILER_VERSION_MAJOR DEC(__DECCXX_VER/10000000)
+# define COMPILER_VERSION_MINOR DEC(__DECCXX_VER/100000 % 100)
+# define COMPILER_VERSION_PATCH DEC(__DECCXX_VER % 10000)
+
+#elif defined(__IBMCPP__) && defined(__COMPILER_VER__)
+# define COMPILER_ID "zOS"
+ /* __IBMCPP__ = VRP */
+# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
+# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10)
+
+#elif defined(__open_xl__) && defined(__clang__)
+# define COMPILER_ID "IBMClang"
+# define COMPILER_VERSION_MAJOR DEC(__open_xl_version__)
+# define COMPILER_VERSION_MINOR DEC(__open_xl_release__)
+# define COMPILER_VERSION_PATCH DEC(__open_xl_modification__)
+# define COMPILER_VERSION_TWEAK DEC(__open_xl_ptf_fix_level__)
+# define COMPILER_VERSION_INTERNAL_STR __clang_version__
+
+
+#elif defined(__ibmxl__) && defined(__clang__)
+# define COMPILER_ID "XLClang"
+# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__)
+# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__)
+# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__)
+# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__)
+
+
+#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ >= 800
+# define COMPILER_ID "XL"
+ /* __IBMCPP__ = VRP */
+# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
+# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10)
+
+#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ < 800
+# define COMPILER_ID "VisualAge"
+ /* __IBMCPP__ = VRP */
+# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
+# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10)
+
+#elif defined(__NVCOMPILER)
+# define COMPILER_ID "NVHPC"
+# define COMPILER_VERSION_MAJOR DEC(__NVCOMPILER_MAJOR__)
+# define COMPILER_VERSION_MINOR DEC(__NVCOMPILER_MINOR__)
+# if defined(__NVCOMPILER_PATCHLEVEL__)
+# define COMPILER_VERSION_PATCH DEC(__NVCOMPILER_PATCHLEVEL__)
+# endif
+
+#elif defined(__PGI)
+# define COMPILER_ID "PGI"
+# define COMPILER_VERSION_MAJOR DEC(__PGIC__)
+# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__)
+# if defined(__PGIC_PATCHLEVEL__)
+# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__)
+# endif
+
+#elif defined(__clang__) && defined(__cray__)
+# define COMPILER_ID "CrayClang"
+# define COMPILER_VERSION_MAJOR DEC(__cray_major__)
+# define COMPILER_VERSION_MINOR DEC(__cray_minor__)
+# define COMPILER_VERSION_PATCH DEC(__cray_patchlevel__)
+# define COMPILER_VERSION_INTERNAL_STR __clang_version__
+
+
+#elif defined(_CRAYC)
+# define COMPILER_ID "Cray"
+# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR)
+# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR)
+
+#elif defined(__TI_COMPILER_VERSION__)
+# define COMPILER_ID "TI"
+ /* __TI_COMPILER_VERSION__ = VVVRRRPPP */
+# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000)
+# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000)
+# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000)
+
+#elif defined(__CLANG_FUJITSU)
+# define COMPILER_ID "FujitsuClang"
+# define COMPILER_VERSION_MAJOR DEC(__FCC_major__)
+# define COMPILER_VERSION_MINOR DEC(__FCC_minor__)
+# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__)
+# define COMPILER_VERSION_INTERNAL_STR __clang_version__
+
+
+#elif defined(__FUJITSU)
+# define COMPILER_ID "Fujitsu"
+# if defined(__FCC_version__)
+# define COMPILER_VERSION __FCC_version__
+# elif defined(__FCC_major__)
+# define COMPILER_VERSION_MAJOR DEC(__FCC_major__)
+# define COMPILER_VERSION_MINOR DEC(__FCC_minor__)
+# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__)
+# endif
+# if defined(__fcc_version)
+# define COMPILER_VERSION_INTERNAL DEC(__fcc_version)
+# elif defined(__FCC_VERSION)
+# define COMPILER_VERSION_INTERNAL DEC(__FCC_VERSION)
+# endif
+
+
+#elif defined(__ghs__)
+# define COMPILER_ID "GHS"
+/* __GHS_VERSION_NUMBER = VVVVRP */
+# ifdef __GHS_VERSION_NUMBER
+# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100)
+# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10)
+# endif
+
+#elif defined(__TASKING__)
+# define COMPILER_ID "Tasking"
+ # define COMPILER_VERSION_MAJOR DEC(__VERSION__/1000)
+ # define COMPILER_VERSION_MINOR DEC(__VERSION__ % 100)
+# define COMPILER_VERSION_INTERNAL DEC(__VERSION__)
+
+#elif defined(__ORANGEC__)
+# define COMPILER_ID "OrangeC"
+# define COMPILER_VERSION_MAJOR DEC(__ORANGEC_MAJOR__)
+# define COMPILER_VERSION_MINOR DEC(__ORANGEC_MINOR__)
+# define COMPILER_VERSION_PATCH DEC(__ORANGEC_PATCHLEVEL__)
+
+#elif defined(__RENESAS__)
+# define COMPILER_ID "Renesas"
+/* __RENESAS_VERSION__ = 0xVVRRPP00 */
+# define COMPILER_VERSION_MAJOR HEX(__RENESAS_VERSION__ >> 24 & 0xFF)
+# define COMPILER_VERSION_MINOR HEX(__RENESAS_VERSION__ >> 16 & 0xFF)
+# define COMPILER_VERSION_PATCH HEX(__RENESAS_VERSION__ >> 8 & 0xFF)
+
+#elif defined(__SCO_VERSION__)
+# define COMPILER_ID "SCO"
+
+#elif defined(__ARMCC_VERSION) && !defined(__clang__)
+# define COMPILER_ID "ARMCC"
+#if __ARMCC_VERSION >= 1000000
+ /* __ARMCC_VERSION = VRRPPPP */
+ # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000)
+ # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100)
+ # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000)
+#else
+ /* __ARMCC_VERSION = VRPPPP */
+ # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000)
+ # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10)
+ # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000)
+#endif
+
+
+#elif defined(__clang__) && defined(__apple_build_version__)
+# define COMPILER_ID "AppleClang"
+# if defined(_MSC_VER)
+# define SIMULATE_ID "MSVC"
+# endif
+# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
+# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
+# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
+# if defined(_MSC_VER)
+ /* _MSC_VER = VVRR */
+# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
+# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
+# endif
+# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__)
+
+#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION)
+# define COMPILER_ID "ARMClang"
+ # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000)
+ # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100)
+ # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION/100 % 100)
+# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION)
+
+#elif defined(__clang__) && defined(__ti__)
+# define COMPILER_ID "TIClang"
+ # define COMPILER_VERSION_MAJOR DEC(__ti_major__)
+ # define COMPILER_VERSION_MINOR DEC(__ti_minor__)
+ # define COMPILER_VERSION_PATCH DEC(__ti_patchlevel__)
+# define COMPILER_VERSION_INTERNAL DEC(__ti_version__)
+
+#elif defined(__clang__)
+# define COMPILER_ID "Clang"
+# if defined(_MSC_VER)
+# define SIMULATE_ID "MSVC"
+# endif
+# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
+# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
+# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
+# if defined(_MSC_VER)
+ /* _MSC_VER = VVRR */
+# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
+# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
+# endif
+
+#elif defined(__LCC__) && (defined(__GNUC__) || defined(__GNUG__) || defined(__MCST__))
+# define COMPILER_ID "LCC"
+# define COMPILER_VERSION_MAJOR DEC(__LCC__ / 100)
+# define COMPILER_VERSION_MINOR DEC(__LCC__ % 100)
+# if defined(__LCC_MINOR__)
+# define COMPILER_VERSION_PATCH DEC(__LCC_MINOR__)
+# endif
+# if defined(__GNUC__) && defined(__GNUC_MINOR__)
+# define SIMULATE_ID "GNU"
+# define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
+# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
+# if defined(__GNUC_PATCHLEVEL__)
+# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
+# endif
+# endif
+
+#elif defined(__GNUC__) || defined(__GNUG__)
+# define COMPILER_ID "GNU"
+# if defined(__GNUC__)
+# define COMPILER_VERSION_MAJOR DEC(__GNUC__)
+# else
+# define COMPILER_VERSION_MAJOR DEC(__GNUG__)
+# endif
+# if defined(__GNUC_MINOR__)
+# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__)
+# endif
+# if defined(__GNUC_PATCHLEVEL__)
+# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
+# endif
+
+#elif defined(_MSC_VER)
+# define COMPILER_ID "MSVC"
+ /* _MSC_VER = VVRR */
+# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100)
+# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100)
+# if defined(_MSC_FULL_VER)
+# if _MSC_VER >= 1400
+ /* _MSC_FULL_VER = VVRRPPPPP */
+# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000)
+# else
+ /* _MSC_FULL_VER = VVRRPPPP */
+# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000)
+# endif
+# endif
+# if defined(_MSC_BUILD)
+# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD)
+# endif
+
+#elif defined(_ADI_COMPILER)
+# define COMPILER_ID "ADSP"
+#if defined(__VERSIONNUM__)
+ /* __VERSIONNUM__ = 0xVVRRPPTT */
+# define COMPILER_VERSION_MAJOR DEC(__VERSIONNUM__ >> 24 & 0xFF)
+# define COMPILER_VERSION_MINOR DEC(__VERSIONNUM__ >> 16 & 0xFF)
+# define COMPILER_VERSION_PATCH DEC(__VERSIONNUM__ >> 8 & 0xFF)
+# define COMPILER_VERSION_TWEAK DEC(__VERSIONNUM__ & 0xFF)
+#endif
+
+#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
+# define COMPILER_ID "IAR"
+# if defined(__VER__) && defined(__ICCARM__)
+# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000)
+# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000)
+# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000)
+# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)
+# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__) || defined(__ICCSTM8__))
+# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100)
+# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100))
+# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__)
+# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)
+# endif
+
+#elif defined(__DCC__) && defined(_DIAB_TOOL)
+# define COMPILER_ID "Diab"
+ # define COMPILER_VERSION_MAJOR DEC(__VERSION_MAJOR_NUMBER__)
+ # define COMPILER_VERSION_MINOR DEC(__VERSION_MINOR_NUMBER__)
+ # define COMPILER_VERSION_PATCH DEC(__VERSION_ARCH_FEATURE_NUMBER__)
+ # define COMPILER_VERSION_TWEAK DEC(__VERSION_BUG_FIX_NUMBER__)
+
+
+
+/* These compilers are either not known or too old to define an
+ identification macro. Try to identify the platform and guess that
+ it is the native compiler. */
+#elif defined(__hpux) || defined(__hpua)
+# define COMPILER_ID "HP"
+
+#else /* unknown compiler */
+# define COMPILER_ID ""
+#endif
+
+/* Construct the string literal in pieces to prevent the source from
+ getting matched. Store it in a pointer rather than an array
+ because some compilers will just produce instructions to fill the
+ array rather than assigning a pointer to a static array. */
+char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]";
+#ifdef SIMULATE_ID
+char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]";
+#endif
+
+#ifdef __QNXNTO__
+char const* qnxnto = "INFO" ":" "qnxnto[]";
+#endif
+
+#if defined(__CRAYXT_COMPUTE_LINUX_TARGET)
+char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]";
+#endif
+
+#define STRINGIFY_HELPER(X) #X
+#define STRINGIFY(X) STRINGIFY_HELPER(X)
+
+/* Identify known platforms by name. */
+#if defined(__linux) || defined(__linux__) || defined(linux)
+# define PLATFORM_ID "Linux"
+
+#elif defined(__MSYS__)
+# define PLATFORM_ID "MSYS"
+
+#elif defined(__CYGWIN__)
+# define PLATFORM_ID "Cygwin"
+
+#elif defined(__MINGW32__)
+# define PLATFORM_ID "MinGW"
+
+#elif defined(__APPLE__)
+# define PLATFORM_ID "Darwin"
+
+#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
+# define PLATFORM_ID "Windows"
+
+#elif defined(__FreeBSD__) || defined(__FreeBSD)
+# define PLATFORM_ID "FreeBSD"
+
+#elif defined(__NetBSD__) || defined(__NetBSD)
+# define PLATFORM_ID "NetBSD"
+
+#elif defined(__OpenBSD__) || defined(__OPENBSD)
+# define PLATFORM_ID "OpenBSD"
+
+#elif defined(__sun) || defined(sun)
+# define PLATFORM_ID "SunOS"
+
+#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__)
+# define PLATFORM_ID "AIX"
+
+#elif defined(__hpux) || defined(__hpux__)
+# define PLATFORM_ID "HP-UX"
+
+#elif defined(__HAIKU__)
+# define PLATFORM_ID "Haiku"
+
+#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS)
+# define PLATFORM_ID "BeOS"
+
+#elif defined(__QNX__) || defined(__QNXNTO__)
+# define PLATFORM_ID "QNX"
+
+#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__)
+# define PLATFORM_ID "Tru64"
+
+#elif defined(__riscos) || defined(__riscos__)
+# define PLATFORM_ID "RISCos"
+
+#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__)
+# define PLATFORM_ID "SINIX"
+
+#elif defined(__UNIX_SV__)
+# define PLATFORM_ID "UNIX_SV"
+
+#elif defined(__bsdos__)
+# define PLATFORM_ID "BSDOS"
+
+#elif defined(_MPRAS) || defined(MPRAS)
+# define PLATFORM_ID "MP-RAS"
+
+#elif defined(__osf) || defined(__osf__)
+# define PLATFORM_ID "OSF1"
+
+#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv)
+# define PLATFORM_ID "SCO_SV"
+
+#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX)
+# define PLATFORM_ID "ULTRIX"
+
+#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX)
+# define PLATFORM_ID "Xenix"
+
+#elif defined(__WATCOMC__)
+# if defined(__LINUX__)
+# define PLATFORM_ID "Linux"
+
+# elif defined(__DOS__)
+# define PLATFORM_ID "DOS"
+
+# elif defined(__OS2__)
+# define PLATFORM_ID "OS2"
+
+# elif defined(__WINDOWS__)
+# define PLATFORM_ID "Windows3x"
+
+# elif defined(__VXWORKS__)
+# define PLATFORM_ID "VxWorks"
+
+# else /* unknown platform */
+# define PLATFORM_ID
+# endif
+
+#elif defined(__INTEGRITY)
+# if defined(INT_178B)
+# define PLATFORM_ID "Integrity178"
+
+# else /* regular Integrity */
+# define PLATFORM_ID "Integrity"
+# endif
+
+# elif defined(_ADI_COMPILER)
+# define PLATFORM_ID "ADSP"
+
+#else /* unknown platform */
+# define PLATFORM_ID
+
+#endif
+
+/* For windows compilers MSVC and Intel we can determine
+ the architecture of the compiler being used. This is because
+ the compilers do not have flags that can change the architecture,
+ but rather depend on which compiler is being used
+*/
+#if defined(_WIN32) && defined(_MSC_VER)
+# if defined(_M_IA64)
+# define ARCHITECTURE_ID "IA64"
+
+# elif defined(_M_ARM64EC)
+# define ARCHITECTURE_ID "ARM64EC"
+
+# elif defined(_M_X64) || defined(_M_AMD64)
+# define ARCHITECTURE_ID "x64"
+
+# elif defined(_M_IX86)
+# define ARCHITECTURE_ID "X86"
+
+# elif defined(_M_ARM64)
+# define ARCHITECTURE_ID "ARM64"
+
+# elif defined(_M_ARM)
+# if _M_ARM == 4
+# define ARCHITECTURE_ID "ARMV4I"
+# elif _M_ARM == 5
+# define ARCHITECTURE_ID "ARMV5I"
+# else
+# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM)
+# endif
+
+# elif defined(_M_MIPS)
+# define ARCHITECTURE_ID "MIPS"
+
+# elif defined(_M_SH)
+# define ARCHITECTURE_ID "SHx"
+
+# else /* unknown architecture */
+# define ARCHITECTURE_ID ""
+# endif
+
+#elif defined(__WATCOMC__)
+# if defined(_M_I86)
+# define ARCHITECTURE_ID "I86"
+
+# elif defined(_M_IX86)
+# define ARCHITECTURE_ID "X86"
+
+# else /* unknown architecture */
+# define ARCHITECTURE_ID ""
+# endif
+
+#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
+# if defined(__ICCARM__)
+# define ARCHITECTURE_ID "ARM"
+
+# elif defined(__ICCRX__)
+# define ARCHITECTURE_ID "RX"
+
+# elif defined(__ICCRH850__)
+# define ARCHITECTURE_ID "RH850"
+
+# elif defined(__ICCRL78__)
+# define ARCHITECTURE_ID "RL78"
+
+# elif defined(__ICCRISCV__)
+# define ARCHITECTURE_ID "RISCV"
+
+# elif defined(__ICCAVR__)
+# define ARCHITECTURE_ID "AVR"
+
+# elif defined(__ICC430__)
+# define ARCHITECTURE_ID "MSP430"
+
+# elif defined(__ICCV850__)
+# define ARCHITECTURE_ID "V850"
+
+# elif defined(__ICC8051__)
+# define ARCHITECTURE_ID "8051"
+
+# elif defined(__ICCSTM8__)
+# define ARCHITECTURE_ID "STM8"
+
+# else /* unknown architecture */
+# define ARCHITECTURE_ID ""
+# endif
+
+#elif defined(__ghs__)
+# if defined(__PPC64__)
+# define ARCHITECTURE_ID "PPC64"
+
+# elif defined(__ppc__)
+# define ARCHITECTURE_ID "PPC"
+
+# elif defined(__ARM__)
+# define ARCHITECTURE_ID "ARM"
+
+# elif defined(__x86_64__)
+# define ARCHITECTURE_ID "x64"
+
+# elif defined(__i386__)
+# define ARCHITECTURE_ID "X86"
+
+# else /* unknown architecture */
+# define ARCHITECTURE_ID ""
+# endif
+
+#elif defined(__clang__) && defined(__ti__)
+# if defined(__ARM_ARCH)
+# define ARCHITECTURE_ID "ARM"
+
+# else /* unknown architecture */
+# define ARCHITECTURE_ID ""
+# endif
+
+#elif defined(__TI_COMPILER_VERSION__)
+# if defined(__TI_ARM__)
+# define ARCHITECTURE_ID "ARM"
+
+# elif defined(__MSP430__)
+# define ARCHITECTURE_ID "MSP430"
+
+# elif defined(__TMS320C28XX__)
+# define ARCHITECTURE_ID "TMS320C28x"
+
+# elif defined(__TMS320C6X__) || defined(_TMS320C6X)
+# define ARCHITECTURE_ID "TMS320C6x"
+
+# else /* unknown architecture */
+# define ARCHITECTURE_ID ""
+# endif
+
+# elif defined(__ADSPSHARC__)
+# define ARCHITECTURE_ID "SHARC"
+
+# elif defined(__ADSPBLACKFIN__)
+# define ARCHITECTURE_ID "Blackfin"
+
+#elif defined(__TASKING__)
+
+# if defined(__CTC__) || defined(__CPTC__)
+# define ARCHITECTURE_ID "TriCore"
+
+# elif defined(__CMCS__)
+# define ARCHITECTURE_ID "MCS"
+
+# elif defined(__CARM__) || defined(__CPARM__)
+# define ARCHITECTURE_ID "ARM"
+
+# elif defined(__CARC__)
+# define ARCHITECTURE_ID "ARC"
+
+# elif defined(__C51__)
+# define ARCHITECTURE_ID "8051"
+
+# elif defined(__CPCP__)
+# define ARCHITECTURE_ID "PCP"
+
+# else
+# define ARCHITECTURE_ID ""
+# endif
+
+#elif defined(__RENESAS__)
+# if defined(__CCRX__)
+# define ARCHITECTURE_ID "RX"
+
+# elif defined(__CCRL__)
+# define ARCHITECTURE_ID "RL78"
+
+# elif defined(__CCRH__)
+# define ARCHITECTURE_ID "RH850"
+
+# else
+# define ARCHITECTURE_ID ""
+# endif
+
+#else
+# define ARCHITECTURE_ID
+#endif
+
+/* Convert integer to decimal digit literals. */
+#define DEC(n) \
+ ('0' + (((n) / 10000000)%10)), \
+ ('0' + (((n) / 1000000)%10)), \
+ ('0' + (((n) / 100000)%10)), \
+ ('0' + (((n) / 10000)%10)), \
+ ('0' + (((n) / 1000)%10)), \
+ ('0' + (((n) / 100)%10)), \
+ ('0' + (((n) / 10)%10)), \
+ ('0' + ((n) % 10))
+
+/* Convert integer to hex digit literals. */
+#define HEX(n) \
+ ('0' + ((n)>>28 & 0xF)), \
+ ('0' + ((n)>>24 & 0xF)), \
+ ('0' + ((n)>>20 & 0xF)), \
+ ('0' + ((n)>>16 & 0xF)), \
+ ('0' + ((n)>>12 & 0xF)), \
+ ('0' + ((n)>>8 & 0xF)), \
+ ('0' + ((n)>>4 & 0xF)), \
+ ('0' + ((n) & 0xF))
+
+/* Construct a string literal encoding the version number. */
+#ifdef COMPILER_VERSION
+char const* info_version = "INFO" ":" "compiler_version[" COMPILER_VERSION "]";
+
+/* Construct a string literal encoding the version number components. */
+#elif defined(COMPILER_VERSION_MAJOR)
+char const info_version[] = {
+ 'I', 'N', 'F', 'O', ':',
+ 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[',
+ COMPILER_VERSION_MAJOR,
+# ifdef COMPILER_VERSION_MINOR
+ '.', COMPILER_VERSION_MINOR,
+# ifdef COMPILER_VERSION_PATCH
+ '.', COMPILER_VERSION_PATCH,
+# ifdef COMPILER_VERSION_TWEAK
+ '.', COMPILER_VERSION_TWEAK,
+# endif
+# endif
+# endif
+ ']','\0'};
+#endif
+
+/* Construct a string literal encoding the internal version number. */
+#ifdef COMPILER_VERSION_INTERNAL
+char const info_version_internal[] = {
+ 'I', 'N', 'F', 'O', ':',
+ 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_',
+ 'i','n','t','e','r','n','a','l','[',
+ COMPILER_VERSION_INTERNAL,']','\0'};
+#elif defined(COMPILER_VERSION_INTERNAL_STR)
+char const* info_version_internal = "INFO" ":" "compiler_version_internal[" COMPILER_VERSION_INTERNAL_STR "]";
+#endif
+
+/* Construct a string literal encoding the version number components. */
+#ifdef SIMULATE_VERSION_MAJOR
+char const info_simulate_version[] = {
+ 'I', 'N', 'F', 'O', ':',
+ 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[',
+ SIMULATE_VERSION_MAJOR,
+# ifdef SIMULATE_VERSION_MINOR
+ '.', SIMULATE_VERSION_MINOR,
+# ifdef SIMULATE_VERSION_PATCH
+ '.', SIMULATE_VERSION_PATCH,
+# ifdef SIMULATE_VERSION_TWEAK
+ '.', SIMULATE_VERSION_TWEAK,
+# endif
+# endif
+# endif
+ ']','\0'};
+#endif
+
+/* Construct the string literal in pieces to prevent the source from
+ getting matched. Store it in a pointer rather than an array
+ because some compilers will just produce instructions to fill the
+ array rather than assigning a pointer to a static array. */
+char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]";
+char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]";
+
+
+
+#define CXX_STD_98 199711L
+#define CXX_STD_11 201103L
+#define CXX_STD_14 201402L
+#define CXX_STD_17 201703L
+#define CXX_STD_20 202002L
+#define CXX_STD_23 202302L
+
+#if defined(__INTEL_COMPILER) && defined(_MSVC_LANG)
+# if _MSVC_LANG > CXX_STD_17
+# define CXX_STD _MSVC_LANG
+# elif _MSVC_LANG == CXX_STD_17 && defined(__cpp_aggregate_paren_init)
+# define CXX_STD CXX_STD_20
+# elif _MSVC_LANG > CXX_STD_14 && __cplusplus > CXX_STD_17
+# define CXX_STD CXX_STD_20
+# elif _MSVC_LANG > CXX_STD_14
+# define CXX_STD CXX_STD_17
+# elif defined(__INTEL_CXX11_MODE__) && defined(__cpp_aggregate_nsdmi)
+# define CXX_STD CXX_STD_14
+# elif defined(__INTEL_CXX11_MODE__)
+# define CXX_STD CXX_STD_11
+# else
+# define CXX_STD CXX_STD_98
+# endif
+#elif defined(_MSC_VER) && defined(_MSVC_LANG)
+# if _MSVC_LANG > __cplusplus
+# define CXX_STD _MSVC_LANG
+# else
+# define CXX_STD __cplusplus
+# endif
+#elif defined(__NVCOMPILER)
+# if __cplusplus == CXX_STD_17 && defined(__cpp_aggregate_paren_init)
+# define CXX_STD CXX_STD_20
+# else
+# define CXX_STD __cplusplus
+# endif
+#elif defined(__INTEL_COMPILER) || defined(__PGI)
+# if __cplusplus == CXX_STD_11 && defined(__cpp_namespace_attributes)
+# define CXX_STD CXX_STD_17
+# elif __cplusplus == CXX_STD_11 && defined(__cpp_aggregate_nsdmi)
+# define CXX_STD CXX_STD_14
+# else
+# define CXX_STD __cplusplus
+# endif
+#elif (defined(__IBMCPP__) || defined(__ibmxl__)) && defined(__linux__)
+# if __cplusplus == CXX_STD_11 && defined(__cpp_aggregate_nsdmi)
+# define CXX_STD CXX_STD_14
+# else
+# define CXX_STD __cplusplus
+# endif
+#elif __cplusplus == 1 && defined(__GXX_EXPERIMENTAL_CXX0X__)
+# define CXX_STD CXX_STD_11
+#else
+# define CXX_STD __cplusplus
+#endif
+
+const char* info_language_standard_default = "INFO" ":" "standard_default["
+#if CXX_STD > CXX_STD_23
+ "26"
+#elif CXX_STD > CXX_STD_20
+ "23"
+#elif CXX_STD > CXX_STD_17
+ "20"
+#elif CXX_STD > CXX_STD_14
+ "17"
+#elif CXX_STD > CXX_STD_11
+ "14"
+#elif CXX_STD >= CXX_STD_11
+ "11"
+#else
+ "98"
+#endif
+"]";
+
+const char* info_language_extensions_default = "INFO" ":" "extensions_default["
+#if (defined(__clang__) || defined(__GNUC__) || defined(__xlC__) || \
+ defined(__TI_COMPILER_VERSION__) || defined(__RENESAS__)) && \
+ !defined(__STRICT_ANSI__)
+ "ON"
+#else
+ "OFF"
+#endif
+"]";
+
+/*--------------------------------------------------------------------------*/
+
+int main(int argc, char* argv[])
+{
+ int require = 0;
+ require += info_compiler[argc];
+ require += info_platform[argc];
+ require += info_arch[argc];
+#ifdef COMPILER_VERSION_MAJOR
+ require += info_version[argc];
+#endif
+#if defined(COMPILER_VERSION_INTERNAL) || defined(COMPILER_VERSION_INTERNAL_STR)
+ require += info_version_internal[argc];
+#endif
+#ifdef SIMULATE_ID
+ require += info_simulate[argc];
+#endif
+#ifdef SIMULATE_VERSION_MAJOR
+ require += info_simulate_version[argc];
+#endif
+#if defined(__CRAYXT_COMPUTE_LINUX_TARGET)
+ require += info_cray[argc];
+#endif
+ require += info_language_standard_default[argc];
+ require += info_language_extensions_default[argc];
+ (void)argv;
+ return require;
+}
diff --git a/CMakeFiles/4.3.3/CompilerIdCXX/CompilerIdCXX.exe b/CMakeFiles/4.3.3/CompilerIdCXX/CompilerIdCXX.exe
new file mode 100644
index 0000000..0e1119d
Binary files /dev/null and b/CMakeFiles/4.3.3/CompilerIdCXX/CompilerIdCXX.exe differ
diff --git a/CMakeFiles/4.3.3/CompilerIdCXX/CompilerIdCXX.vcxproj b/CMakeFiles/4.3.3/CompilerIdCXX/CompilerIdCXX.vcxproj
new file mode 100644
index 0000000..67e6b4f
--- /dev/null
+++ b/CMakeFiles/4.3.3/CompilerIdCXX/CompilerIdCXX.vcxproj
@@ -0,0 +1,72 @@
+
+
+
+
+ Debug
+ x64
+
+
+
+ {CAE07175-D007-4FC3-BFE8-47B392814159}
+ CompilerIdCXX
+ Win32Proj
+
+
+ 10.0.26100.0
+
+
+
+
+
+
+
+
+ x64
+
+
+ Application
+ v143
+
+ MultiByte
+
+
+
+
+
+
+ <_ProjectFileVersion>10.0.30319.1
+ .\
+ $(Configuration)\
+ false
+
+
+
+ Disabled
+ %(PreprocessorDefinitions)
+ false
+ EnableFastChecks
+ MultiThreadedDebugDLL
+
+
+ TurnOffAllWarnings
+
+
+
+
+
+ false
+ Console
+
+
+
+ for %%i in (cl.exe) do %40echo CMAKE_CXX_COMPILER=%%~$PATH:i
+
+
+
+
+
+
+
+
+
+
diff --git a/CMakeFiles/4.3.3/CompilerIdCXX/Debug/CMakeCXXCompilerId.obj b/CMakeFiles/4.3.3/CompilerIdCXX/Debug/CMakeCXXCompilerId.obj
new file mode 100644
index 0000000..4b3c617
Binary files /dev/null and b/CMakeFiles/4.3.3/CompilerIdCXX/Debug/CMakeCXXCompilerId.obj differ
diff --git a/CMakeFiles/4.3.3/CompilerIdCXX/Debug/CompilerIdCXX.exe.recipe b/CMakeFiles/4.3.3/CompilerIdCXX/Debug/CompilerIdCXX.exe.recipe
new file mode 100644
index 0000000..8461b7a
--- /dev/null
+++ b/CMakeFiles/4.3.3/CompilerIdCXX/Debug/CompilerIdCXX.exe.recipe
@@ -0,0 +1,11 @@
+
+
+
+
+ C:\Users\simulateur\Documents\Webcam\CMakeFiles\4.3.3\CompilerIdCXX\CompilerIdCXX.exe
+
+
+
+
+
+
\ No newline at end of file
diff --git a/CMakeFiles/4.3.3/CompilerIdCXX/Debug/CompilerIdCXX.tlog/CL.command.1.tlog b/CMakeFiles/4.3.3/CompilerIdCXX/Debug/CompilerIdCXX.tlog/CL.command.1.tlog
new file mode 100644
index 0000000..dbe0e11
Binary files /dev/null and b/CMakeFiles/4.3.3/CompilerIdCXX/Debug/CompilerIdCXX.tlog/CL.command.1.tlog differ
diff --git a/CMakeFiles/4.3.3/CompilerIdCXX/Debug/CompilerIdCXX.tlog/CL.read.1.tlog b/CMakeFiles/4.3.3/CompilerIdCXX/Debug/CompilerIdCXX.tlog/CL.read.1.tlog
new file mode 100644
index 0000000..41e371a
Binary files /dev/null and b/CMakeFiles/4.3.3/CompilerIdCXX/Debug/CompilerIdCXX.tlog/CL.read.1.tlog differ
diff --git a/CMakeFiles/4.3.3/CompilerIdCXX/Debug/CompilerIdCXX.tlog/CL.write.1.tlog b/CMakeFiles/4.3.3/CompilerIdCXX/Debug/CompilerIdCXX.tlog/CL.write.1.tlog
new file mode 100644
index 0000000..e7943f3
Binary files /dev/null and b/CMakeFiles/4.3.3/CompilerIdCXX/Debug/CompilerIdCXX.tlog/CL.write.1.tlog differ
diff --git a/CMakeFiles/4.3.3/CompilerIdCXX/Debug/CompilerIdCXX.tlog/Cl.items.tlog b/CMakeFiles/4.3.3/CompilerIdCXX/Debug/CompilerIdCXX.tlog/Cl.items.tlog
new file mode 100644
index 0000000..f717b1e
--- /dev/null
+++ b/CMakeFiles/4.3.3/CompilerIdCXX/Debug/CompilerIdCXX.tlog/Cl.items.tlog
@@ -0,0 +1 @@
+C:\Users\simulateur\Documents\Webcam\CMakeFiles\4.3.3\CompilerIdCXX\CMakeCXXCompilerId.cpp;C:\Users\simulateur\Documents\Webcam\CMakeFiles\4.3.3\CompilerIdCXX\Debug\CMakeCXXCompilerId.obj
diff --git a/CMakeFiles/4.3.3/CompilerIdCXX/Debug/CompilerIdCXX.tlog/CompilerIdCXX.lastbuildstate b/CMakeFiles/4.3.3/CompilerIdCXX/Debug/CompilerIdCXX.tlog/CompilerIdCXX.lastbuildstate
new file mode 100644
index 0000000..a8bcb6f
--- /dev/null
+++ b/CMakeFiles/4.3.3/CompilerIdCXX/Debug/CompilerIdCXX.tlog/CompilerIdCXX.lastbuildstate
@@ -0,0 +1,2 @@
+PlatformToolSet=v143:VCToolArchitecture=Native64Bit:VCToolsVersion=14.44.35207:TargetPlatformVersion=10.0.26100.0:
+Debug|x64|C:\Users\simulateur\Documents\Webcam\CMakeFiles\4.3.3\CompilerIdCXX\|
diff --git a/CMakeFiles/4.3.3/CompilerIdCXX/Debug/CompilerIdCXX.tlog/link.command.1.tlog b/CMakeFiles/4.3.3/CompilerIdCXX/Debug/CompilerIdCXX.tlog/link.command.1.tlog
new file mode 100644
index 0000000..52f25c6
Binary files /dev/null and b/CMakeFiles/4.3.3/CompilerIdCXX/Debug/CompilerIdCXX.tlog/link.command.1.tlog differ
diff --git a/CMakeFiles/4.3.3/CompilerIdCXX/Debug/CompilerIdCXX.tlog/link.read.1.tlog b/CMakeFiles/4.3.3/CompilerIdCXX/Debug/CompilerIdCXX.tlog/link.read.1.tlog
new file mode 100644
index 0000000..39830b3
Binary files /dev/null and b/CMakeFiles/4.3.3/CompilerIdCXX/Debug/CompilerIdCXX.tlog/link.read.1.tlog differ
diff --git a/CMakeFiles/4.3.3/CompilerIdCXX/Debug/CompilerIdCXX.tlog/link.secondary.1.tlog b/CMakeFiles/4.3.3/CompilerIdCXX/Debug/CompilerIdCXX.tlog/link.secondary.1.tlog
new file mode 100644
index 0000000..237fc18
--- /dev/null
+++ b/CMakeFiles/4.3.3/CompilerIdCXX/Debug/CompilerIdCXX.tlog/link.secondary.1.tlog
@@ -0,0 +1 @@
+^C:\USERS\SIMULATEUR\DOCUMENTS\WEBCAM\CMAKEFILES\4.3.3\COMPILERIDCXX\DEBUG\CMAKECXXCOMPILERID.OBJ
diff --git a/CMakeFiles/4.3.3/CompilerIdCXX/Debug/CompilerIdCXX.tlog/link.write.1.tlog b/CMakeFiles/4.3.3/CompilerIdCXX/Debug/CompilerIdCXX.tlog/link.write.1.tlog
new file mode 100644
index 0000000..8caab5c
Binary files /dev/null and b/CMakeFiles/4.3.3/CompilerIdCXX/Debug/CompilerIdCXX.tlog/link.write.1.tlog differ
diff --git a/CMakeFiles/4.3.3/VCTargetsPath.txt b/CMakeFiles/4.3.3/VCTargetsPath.txt
new file mode 100644
index 0000000..513c277
--- /dev/null
+++ b/CMakeFiles/4.3.3/VCTargetsPath.txt
@@ -0,0 +1 @@
+C:/Program Files/Microsoft Visual Studio/2022/Community/MSBuild/Microsoft/VC/v170
diff --git a/CMakeFiles/4.3.3/VCTargetsPath.vcxproj b/CMakeFiles/4.3.3/VCTargetsPath.vcxproj
new file mode 100644
index 0000000..a6410c4
--- /dev/null
+++ b/CMakeFiles/4.3.3/VCTargetsPath.vcxproj
@@ -0,0 +1,31 @@
+
+
+
+
+ Debug
+ x64
+
+
+
+ {F3FC6D86-508D-3FB1-96D2-995F08B142EC}
+ Win32Proj
+ x64
+ 10.0.26100.0
+
+
+
+ x64
+
+
+ Utility
+ MultiByte
+ v143
+
+
+
+
+ echo VCTargetsPath=$(VCTargetsPath)
+
+
+
+
diff --git a/CMakeFiles/4.3.3/VCTargetsPath/x64/Debug/VCTargetsPath.recipe b/CMakeFiles/4.3.3/VCTargetsPath/x64/Debug/VCTargetsPath.recipe
new file mode 100644
index 0000000..5263c2b
--- /dev/null
+++ b/CMakeFiles/4.3.3/VCTargetsPath/x64/Debug/VCTargetsPath.recipe
@@ -0,0 +1,11 @@
+
+
+
+
+ C:\Users\simulateur\Documents\Webcam\CMakeFiles\4.3.3\x64\Debug\VCTargetsPath
+
+
+
+
+
+
\ No newline at end of file
diff --git a/CMakeFiles/4.3.3/VCTargetsPath/x64/Debug/VCTargetsPath.tlog/VCTargetsPath.lastbuildstate b/CMakeFiles/4.3.3/VCTargetsPath/x64/Debug/VCTargetsPath.tlog/VCTargetsPath.lastbuildstate
new file mode 100644
index 0000000..bb72390
--- /dev/null
+++ b/CMakeFiles/4.3.3/VCTargetsPath/x64/Debug/VCTargetsPath.tlog/VCTargetsPath.lastbuildstate
@@ -0,0 +1,2 @@
+PlatformToolSet=v143:VCToolArchitecture=Native64Bit:VCToolsVersion=14.44.35207:TargetPlatformVersion=10.0.26100.0:
+Debug|x64|C:\Users\simulateur\Documents\Webcam\CMakeFiles\4.3.3\|
diff --git a/CMakeFiles/CMakeConfigureLog.yaml b/CMakeFiles/CMakeConfigureLog.yaml
new file mode 100644
index 0000000..5385a1e
--- /dev/null
+++ b/CMakeFiles/CMakeConfigureLog.yaml
@@ -0,0 +1,1223 @@
+
+---
+events:
+ -
+ kind: "message-v1"
+ backtrace:
+ - "C:/Program Files/CMake/share/cmake-4.3/Modules/CMakeDetermineSystem.cmake:212 (message)"
+ - "CMakeLists.txt:3 (project)"
+ message: |
+ The system is: Windows - 10.0.26200 - AMD64
+ -
+ kind: "find-v1"
+ backtrace:
+ - "C:/Program Files/CMake/share/cmake-4.3/Modules/CMakeDetermineCompilerId.cmake:468 (find_file)"
+ - "C:/Program Files/CMake/share/cmake-4.3/Modules/CMakeDetermineCompilerId.cmake:506 (CMAKE_DETERMINE_COMPILER_ID_WRITE)"
+ - "C:/Program Files/CMake/share/cmake-4.3/Modules/CMakeDetermineCompilerId.cmake:8 (CMAKE_DETERMINE_COMPILER_ID_BUILD)"
+ - "C:/Program Files/CMake/share/cmake-4.3/Modules/CMakeDetermineCompilerId.cmake:64 (__determine_compiler_id_test)"
+ - "C:/Program Files/CMake/share/cmake-4.3/Modules/CMakeDetermineCXXCompiler.cmake:125 (CMAKE_DETERMINE_COMPILER_ID)"
+ - "CMakeLists.txt:3 (project)"
+ mode: "file"
+ variable: "src_in"
+ description: "Path to a file."
+ settings:
+ SearchFramework: "NEVER"
+ SearchAppBundle: "NEVER"
+ CMAKE_FIND_USE_CMAKE_PATH: true
+ CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH: true
+ CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH: true
+ CMAKE_FIND_USE_CMAKE_SYSTEM_PATH: true
+ CMAKE_FIND_USE_INSTALL_PREFIX: true
+ names:
+ - "CMakeCXXCompilerId.cpp.in"
+ candidate_directories:
+ - "C:/Program Files/CMake/share/cmake-4.3/Modules/"
+ found: "C:/Program Files/CMake/share/cmake-4.3/Modules/CMakeCXXCompilerId.cpp.in"
+ search_context:
+ ENV{PATH}:
+ - "c:\\Users\\simulateur\\AppData\\Roaming\\Code\\User\\globalStorage\\github.copilot-chat\\debugCommand"
+ - "c:\\Users\\simulateur\\AppData\\Roaming\\Code\\User\\globalStorage\\github.copilot-chat\\copilotCli"
+ - "C:\\Program Files\\Common Files\\Oracle\\Java\\javapath"
+ - "C:\\WINDOWS\\system32"
+ - "C:\\WINDOWS"
+ - "C:\\WINDOWS\\System32\\Wbem"
+ - "C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\"
+ - "C:\\WINDOWS\\System32\\OpenSSH\\"
+ - "c:\\Program Files (x86)\\HP\\HP Performance Advisor"
+ - "C:\\Program Files\\dotnet\\"
+ - "C:\\Program Files\\Git\\cmd"
+ - "C:\\Program Files\\nodejs\\"
+ - "C:\\Program Files\\TortoiseGit\\bin"
+ - "C:\\Program Files (x86)\\Windows Kits\\10\\Windows Performance Toolkit\\"
+ - "C:\\Users\\simulateur\\Downloads\\vcpkg"
+ - "C:\\Users\\simulateur\\.jdks\\valhalla-ea-23-valhalla+1-90\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\CLion\\bin\\cmake\\win\\x64\\bin\\"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Inno Setup 6"
+ - "C:\\Program Files\\WireGuard\\"
+ - "C:\\Program Files\\Cloudflare\\Cloudflare WARP\\"
+ - "C:\\Program Files\\CMake\\bin"
+ - "C:\\Users\\simulateur\\.local\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Python\\Python313\\Scripts\\"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Python\\Python313\\"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Python\\Python311\\Scripts\\"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Python\\Python311\\"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Microsoft\\WindowsApps"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Microsoft VS Code\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Roaming\\npm"
+ - "C:\\Users\\simulateur\\AppData\\Local\\JetBrains\\Toolbox\\scripts"
+ - "C:\\Users\\simulateur\\.dotnet\\tools"
+ - "C:\\Users\\simulateur\\Downloads\\vcpkg"
+ - "C:\\Users\\simulateur\\.jdks\\valhalla-ea-23-valhalla+1-90\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\CLion\\bin\\cmake\\win\\x64\\bin\\"
+ - "C:\\Program Files\\Processing\\"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Python\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Inno Setup 6"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\cursor\\resources\\app\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Ollama"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Antigravity\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Microsoft\\WindowsApps"
+ -
+ kind: "message-v1"
+ backtrace:
+ - "C:/Program Files/CMake/share/cmake-4.3/Modules/CMakeDetermineCompilerId.cmake:17 (message)"
+ - "C:/Program Files/CMake/share/cmake-4.3/Modules/CMakeDetermineCompilerId.cmake:64 (__determine_compiler_id_test)"
+ - "C:/Program Files/CMake/share/cmake-4.3/Modules/CMakeDetermineCXXCompiler.cmake:125 (CMAKE_DETERMINE_COMPILER_ID)"
+ - "CMakeLists.txt:3 (project)"
+ message: |
+ Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" succeeded.
+ Compiler:
+ Build flags:
+ Id flags:
+
+ The output was:
+ 0
+ Version MSBuild 17.14.23+b0019275e pour .NET Framework
+ La g├®n├®ration a d├®marr├® 13/07/2026 16:15:20.
+
+ Projet "C:\\Users\\simulateur\\Documents\\Webcam\\CMakeFiles\\4.3.3\\CompilerIdCXX\\CompilerIdCXX.vcxproj" sur le n┼ôud 1 (cibles par d├®faut).
+ PrepareForBuild:
+ Cr├®ation du r├®pertoire "Debug\\".
+ La sortie structur├®e est activ├®e. La mise en forme du compilateur diagnostics refl├¿te la hi├®rarchie des erreurs. Pour plus dÔÇÖinformations, consultez https://aka.ms/cpp/structured-output.
+ Cr├®ation du r├®pertoire "Debug\\CompilerIdCXX.tlog\\".
+ InitializeBuildStatus:
+ Cr├®ation de "Debug\\CompilerIdCXX.tlog\\unsuccessfulbuild", car "AlwaysCreate" a ├®t├® sp├®cifi├®.
+ Mise à jour de l'horodatage "Debug\\CompilerIdCXX.tlog\\unsuccessfulbuild".
+ ClCompile:
+ C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.44.35207\\bin\\HostX64\\x64\\CL.exe /c /nologo /W0 /WX- /diagnostics:column /Od /D _MBCS /Gm- /EHsc /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /Fo"Debug\\\\" /Fd"Debug\\vc143.pdb" /external:W0 /Gd /TP /FC /errorReport:queue CMakeCXXCompilerId.cpp
+ CMakeCXXCompilerId.cpp
+ Link:
+ C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.44.35207\\bin\\HostX64\\x64\\link.exe /ERRORREPORT:QUEUE /OUT:".\\CompilerIdCXX.exe" /INCREMENTAL:NO /NOLOGO kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /MANIFEST /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /manifest:embed /PDB:".\\CompilerIdCXX.pdb" /SUBSYSTEM:CONSOLE /TLBID:1 /DYNAMICBASE /NXCOMPAT /IMPLIB:".\\CompilerIdCXX.lib" /MACHINE:X64 Debug\\CMakeCXXCompilerId.obj
+ CompilerIdCXX.vcxproj -> C:\\Users\\simulateur\\Documents\\Webcam\\CMakeFiles\\4.3.3\\CompilerIdCXX\\CompilerIdCXX.exe
+ PostBuildEvent:
+ for %%i in (cl.exe) do @echo CMAKE_CXX_COMPILER=%%~$PATH:i
+ :VCEnd
+ CMAKE_CXX_COMPILER=C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.44.35207\\bin\\Hostx64\\x64\\cl.exe
+ FinalizeBuildStatus:
+ Suppression du fichier "Debug\\CompilerIdCXX.tlog\\unsuccessfulbuild".
+ Mise à jour de l'horodatage "Debug\\CompilerIdCXX.tlog\\CompilerIdCXX.lastbuildstate".
+ G├®n├®ration du projet "C:\\Users\\simulateur\\Documents\\Webcam\\CMakeFiles\\4.3.3\\CompilerIdCXX\\CompilerIdCXX.vcxproj" termin├®e (cibles par d├®faut).
+
+ La g├®n├®ration a r├®ussi.
+ 0 Avertissement(s)
+ 0 Erreur(s)
+
+ Temps ├®coul├® 00:00:00.38
+
+
+ Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "CompilerIdCXX.exe"
+
+ Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "CompilerIdCXX.vcxproj"
+
+ The CXX compiler identification is MSVC, found in:
+ C:/Users/simulateur/Documents/Webcam/CMakeFiles/4.3.3/CompilerIdCXX/CompilerIdCXX.exe
+
+ -
+ kind: "find-v1"
+ backtrace:
+ - "C:/Program Files/CMake/share/cmake-4.3/Modules/CMakeFindBinUtils.cmake:37 (find_program)"
+ - "C:/Program Files/CMake/share/cmake-4.3/Modules/CMakeFindBinUtils.cmake:65 (__resolve_tool_path)"
+ - "C:/Program Files/CMake/share/cmake-4.3/Modules/CMakeFindBinUtils.cmake:103 (__resolve_linker_path)"
+ - "C:/Program Files/CMake/share/cmake-4.3/Modules/CMakeDetermineCXXCompiler.cmake:206 (include)"
+ - "CMakeLists.txt:3 (project)"
+ mode: "program"
+ variable: "_CMAKE_TOOL_WITH_PATH"
+ description: "Path to a program."
+ settings:
+ SearchFramework: "NEVER"
+ SearchAppBundle: "NEVER"
+ CMAKE_FIND_USE_CMAKE_PATH: false
+ CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH: false
+ CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH: true
+ CMAKE_FIND_USE_CMAKE_SYSTEM_PATH: true
+ CMAKE_FIND_USE_INSTALL_PREFIX: true
+ names:
+ - "link"
+ candidate_directories:
+ - "C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.44.35207/bin/Hostx64/x64/"
+ - "C:/Users/simulateur/AppData/Roaming/Code/User/globalStorage/github.copilot-chat/debugCommand/"
+ - "C:/Users/simulateur/AppData/Roaming/Code/User/globalStorage/github.copilot-chat/copilotCli/"
+ - "C:/Program Files/Common Files/Oracle/Java/javapath/"
+ - "C:/Windows/System32/"
+ - "C:/Windows/"
+ - "C:/Windows/System32/wbem/"
+ - "C:/Windows/System32/WindowsPowerShell/v1.0/"
+ - "C:/Windows/System32/OpenSSH/"
+ - "C:/Program Files (x86)/HP/HP Performance Advisor/"
+ - "C:/Program Files/dotnet/"
+ - "C:/Program Files/Git/cmd/"
+ - "C:/Program Files/nodejs/"
+ - "C:/Program Files/TortoiseGit/bin/"
+ - "C:/Program Files (x86)/Windows Kits/10/Windows Performance Toolkit/"
+ - "C:/Users/simulateur/Downloads/vcpkg/"
+ - "C:/Users/simulateur/.jdks/valhalla-ea-23-valhalla+1-90/bin/"
+ - "C:/Users/simulateur/AppData/Local/Programs/CLion/bin/cmake/win/x64/bin/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Inno Setup 6/"
+ - "C:/Program Files/WireGuard/"
+ - "C:/Program Files/Cloudflare/Cloudflare WARP/"
+ - "C:/Program Files/CMake/bin/"
+ - "C:/Users/simulateur/.local/bin/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python313/Scripts/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python313/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python311/Scripts/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python311/"
+ - "C:/Users/simulateur/AppData/Local/Microsoft/WindowsApps/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Microsoft VS Code/bin/"
+ - "C:/Users/simulateur/AppData/Roaming/npm/"
+ - "C:/Users/simulateur/AppData/Local/JetBrains/Toolbox/scripts/"
+ - "C:/Users/simulateur/.dotnet/tools/"
+ - "C:/Program Files/Processing/"
+ - "C:/Users/simulateur/AppData/Local/Python/bin/"
+ - "C:/Users/simulateur/AppData/Local/Programs/cursor/resources/app/bin/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Ollama/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Antigravity/bin/"
+ searched_directories:
+ - "C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.44.35207/bin/Hostx64/x64/link.com"
+ found: "C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.44.35207/bin/Hostx64/x64/link.exe"
+ search_context:
+ ENV{PATH}:
+ - "c:\\Users\\simulateur\\AppData\\Roaming\\Code\\User\\globalStorage\\github.copilot-chat\\debugCommand"
+ - "c:\\Users\\simulateur\\AppData\\Roaming\\Code\\User\\globalStorage\\github.copilot-chat\\copilotCli"
+ - "C:\\Program Files\\Common Files\\Oracle\\Java\\javapath"
+ - "C:\\WINDOWS\\system32"
+ - "C:\\WINDOWS"
+ - "C:\\WINDOWS\\System32\\Wbem"
+ - "C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\"
+ - "C:\\WINDOWS\\System32\\OpenSSH\\"
+ - "c:\\Program Files (x86)\\HP\\HP Performance Advisor"
+ - "C:\\Program Files\\dotnet\\"
+ - "C:\\Program Files\\Git\\cmd"
+ - "C:\\Program Files\\nodejs\\"
+ - "C:\\Program Files\\TortoiseGit\\bin"
+ - "C:\\Program Files (x86)\\Windows Kits\\10\\Windows Performance Toolkit\\"
+ - "C:\\Users\\simulateur\\Downloads\\vcpkg"
+ - "C:\\Users\\simulateur\\.jdks\\valhalla-ea-23-valhalla+1-90\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\CLion\\bin\\cmake\\win\\x64\\bin\\"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Inno Setup 6"
+ - "C:\\Program Files\\WireGuard\\"
+ - "C:\\Program Files\\Cloudflare\\Cloudflare WARP\\"
+ - "C:\\Program Files\\CMake\\bin"
+ - "C:\\Users\\simulateur\\.local\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Python\\Python313\\Scripts\\"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Python\\Python313\\"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Python\\Python311\\Scripts\\"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Python\\Python311\\"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Microsoft\\WindowsApps"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Microsoft VS Code\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Roaming\\npm"
+ - "C:\\Users\\simulateur\\AppData\\Local\\JetBrains\\Toolbox\\scripts"
+ - "C:\\Users\\simulateur\\.dotnet\\tools"
+ - "C:\\Users\\simulateur\\Downloads\\vcpkg"
+ - "C:\\Users\\simulateur\\.jdks\\valhalla-ea-23-valhalla+1-90\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\CLion\\bin\\cmake\\win\\x64\\bin\\"
+ - "C:\\Program Files\\Processing\\"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Python\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Inno Setup 6"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\cursor\\resources\\app\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Ollama"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Antigravity\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Microsoft\\WindowsApps"
+ -
+ kind: "find-v1"
+ backtrace:
+ - "C:/Program Files/CMake/share/cmake-4.3/Modules/CMakeFindBinUtils.cmake:37 (find_program)"
+ - "C:/Program Files/CMake/share/cmake-4.3/Modules/CMakeFindBinUtils.cmake:65 (__resolve_tool_path)"
+ - "C:/Program Files/CMake/share/cmake-4.3/Modules/CMakeFindBinUtils.cmake:104 (__resolve_linker_path)"
+ - "C:/Program Files/CMake/share/cmake-4.3/Modules/CMakeDetermineCXXCompiler.cmake:206 (include)"
+ - "CMakeLists.txt:3 (project)"
+ mode: "program"
+ variable: "_CMAKE_TOOL_WITH_PATH"
+ description: "Path to a program."
+ settings:
+ SearchFramework: "NEVER"
+ SearchAppBundle: "NEVER"
+ CMAKE_FIND_USE_CMAKE_PATH: false
+ CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH: false
+ CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH: true
+ CMAKE_FIND_USE_CMAKE_SYSTEM_PATH: true
+ CMAKE_FIND_USE_INSTALL_PREFIX: true
+ names:
+ - "lld-link"
+ candidate_directories:
+ - "C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.44.35207/bin/Hostx64/x64/"
+ - "C:/Users/simulateur/AppData/Roaming/Code/User/globalStorage/github.copilot-chat/debugCommand/"
+ - "C:/Users/simulateur/AppData/Roaming/Code/User/globalStorage/github.copilot-chat/copilotCli/"
+ - "C:/Program Files/Common Files/Oracle/Java/javapath/"
+ - "C:/Windows/System32/"
+ - "C:/Windows/"
+ - "C:/Windows/System32/wbem/"
+ - "C:/Windows/System32/WindowsPowerShell/v1.0/"
+ - "C:/Windows/System32/OpenSSH/"
+ - "C:/Program Files (x86)/HP/HP Performance Advisor/"
+ - "C:/Program Files/dotnet/"
+ - "C:/Program Files/Git/cmd/"
+ - "C:/Program Files/nodejs/"
+ - "C:/Program Files/TortoiseGit/bin/"
+ - "C:/Program Files (x86)/Windows Kits/10/Windows Performance Toolkit/"
+ - "C:/Users/simulateur/Downloads/vcpkg/"
+ - "C:/Users/simulateur/.jdks/valhalla-ea-23-valhalla+1-90/bin/"
+ - "C:/Users/simulateur/AppData/Local/Programs/CLion/bin/cmake/win/x64/bin/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Inno Setup 6/"
+ - "C:/Program Files/WireGuard/"
+ - "C:/Program Files/Cloudflare/Cloudflare WARP/"
+ - "C:/Program Files/CMake/bin/"
+ - "C:/Users/simulateur/.local/bin/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python313/Scripts/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python313/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python311/Scripts/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python311/"
+ - "C:/Users/simulateur/AppData/Local/Microsoft/WindowsApps/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Microsoft VS Code/bin/"
+ - "C:/Users/simulateur/AppData/Roaming/npm/"
+ - "C:/Users/simulateur/AppData/Local/JetBrains/Toolbox/scripts/"
+ - "C:/Users/simulateur/.dotnet/tools/"
+ - "C:/Program Files/Processing/"
+ - "C:/Users/simulateur/AppData/Local/Python/bin/"
+ - "C:/Users/simulateur/AppData/Local/Programs/cursor/resources/app/bin/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Ollama/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Antigravity/bin/"
+ searched_directories:
+ - "C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.44.35207/bin/Hostx64/x64/lld-link.com"
+ - "C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.44.35207/bin/Hostx64/x64/lld-link.exe"
+ - "C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.44.35207/bin/Hostx64/x64/lld-link"
+ - "C:/Users/simulateur/AppData/Roaming/Code/User/globalStorage/github.copilot-chat/debugCommand/lld-link.com"
+ - "C:/Users/simulateur/AppData/Roaming/Code/User/globalStorage/github.copilot-chat/debugCommand/lld-link.exe"
+ - "C:/Users/simulateur/AppData/Roaming/Code/User/globalStorage/github.copilot-chat/debugCommand/lld-link"
+ - "C:/Users/simulateur/AppData/Roaming/Code/User/globalStorage/github.copilot-chat/copilotCli/lld-link.com"
+ - "C:/Users/simulateur/AppData/Roaming/Code/User/globalStorage/github.copilot-chat/copilotCli/lld-link.exe"
+ - "C:/Users/simulateur/AppData/Roaming/Code/User/globalStorage/github.copilot-chat/copilotCli/lld-link"
+ - "C:/Program Files/Common Files/Oracle/Java/javapath/lld-link.com"
+ - "C:/Program Files/Common Files/Oracle/Java/javapath/lld-link.exe"
+ - "C:/Program Files/Common Files/Oracle/Java/javapath/lld-link"
+ - "C:/Windows/System32/lld-link.com"
+ - "C:/Windows/System32/lld-link.exe"
+ - "C:/Windows/System32/lld-link"
+ - "C:/Windows/lld-link.com"
+ - "C:/Windows/lld-link.exe"
+ - "C:/Windows/lld-link"
+ - "C:/Windows/System32/wbem/lld-link.com"
+ - "C:/Windows/System32/wbem/lld-link.exe"
+ - "C:/Windows/System32/wbem/lld-link"
+ - "C:/Windows/System32/WindowsPowerShell/v1.0/lld-link.com"
+ - "C:/Windows/System32/WindowsPowerShell/v1.0/lld-link.exe"
+ - "C:/Windows/System32/WindowsPowerShell/v1.0/lld-link"
+ - "C:/Windows/System32/OpenSSH/lld-link.com"
+ - "C:/Windows/System32/OpenSSH/lld-link.exe"
+ - "C:/Windows/System32/OpenSSH/lld-link"
+ - "C:/Program Files (x86)/HP/HP Performance Advisor/lld-link.com"
+ - "C:/Program Files (x86)/HP/HP Performance Advisor/lld-link.exe"
+ - "C:/Program Files (x86)/HP/HP Performance Advisor/lld-link"
+ - "C:/Program Files/dotnet/lld-link.com"
+ - "C:/Program Files/dotnet/lld-link.exe"
+ - "C:/Program Files/dotnet/lld-link"
+ - "C:/Program Files/Git/cmd/lld-link.com"
+ - "C:/Program Files/Git/cmd/lld-link.exe"
+ - "C:/Program Files/Git/cmd/lld-link"
+ - "C:/Program Files/nodejs/lld-link.com"
+ - "C:/Program Files/nodejs/lld-link.exe"
+ - "C:/Program Files/nodejs/lld-link"
+ - "C:/Program Files/TortoiseGit/bin/lld-link.com"
+ - "C:/Program Files/TortoiseGit/bin/lld-link.exe"
+ - "C:/Program Files/TortoiseGit/bin/lld-link"
+ - "C:/Program Files (x86)/Windows Kits/10/Windows Performance Toolkit/lld-link.com"
+ - "C:/Program Files (x86)/Windows Kits/10/Windows Performance Toolkit/lld-link.exe"
+ - "C:/Program Files (x86)/Windows Kits/10/Windows Performance Toolkit/lld-link"
+ - "C:/Users/simulateur/Downloads/vcpkg/lld-link.com"
+ - "C:/Users/simulateur/Downloads/vcpkg/lld-link.exe"
+ - "C:/Users/simulateur/Downloads/vcpkg/lld-link"
+ - "C:/Users/simulateur/.jdks/valhalla-ea-23-valhalla+1-90/bin/lld-link.com"
+ - "C:/Users/simulateur/.jdks/valhalla-ea-23-valhalla+1-90/bin/lld-link.exe"
+ - "C:/Users/simulateur/.jdks/valhalla-ea-23-valhalla+1-90/bin/lld-link"
+ - "C:/Users/simulateur/AppData/Local/Programs/CLion/bin/cmake/win/x64/bin/lld-link.com"
+ - "C:/Users/simulateur/AppData/Local/Programs/CLion/bin/cmake/win/x64/bin/lld-link.exe"
+ - "C:/Users/simulateur/AppData/Local/Programs/CLion/bin/cmake/win/x64/bin/lld-link"
+ - "C:/Users/simulateur/AppData/Local/Programs/Inno Setup 6/lld-link.com"
+ - "C:/Users/simulateur/AppData/Local/Programs/Inno Setup 6/lld-link.exe"
+ - "C:/Users/simulateur/AppData/Local/Programs/Inno Setup 6/lld-link"
+ - "C:/Program Files/WireGuard/lld-link.com"
+ - "C:/Program Files/WireGuard/lld-link.exe"
+ - "C:/Program Files/WireGuard/lld-link"
+ - "C:/Program Files/Cloudflare/Cloudflare WARP/lld-link.com"
+ - "C:/Program Files/Cloudflare/Cloudflare WARP/lld-link.exe"
+ - "C:/Program Files/Cloudflare/Cloudflare WARP/lld-link"
+ - "C:/Program Files/CMake/bin/lld-link.com"
+ - "C:/Program Files/CMake/bin/lld-link.exe"
+ - "C:/Program Files/CMake/bin/lld-link"
+ - "C:/Users/simulateur/.local/bin/lld-link.com"
+ - "C:/Users/simulateur/.local/bin/lld-link.exe"
+ - "C:/Users/simulateur/.local/bin/lld-link"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python313/Scripts/lld-link.com"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python313/Scripts/lld-link.exe"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python313/Scripts/lld-link"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python313/lld-link.com"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python313/lld-link.exe"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python313/lld-link"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python311/Scripts/lld-link.com"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python311/Scripts/lld-link.exe"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python311/Scripts/lld-link"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python311/lld-link.com"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python311/lld-link.exe"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python311/lld-link"
+ - "C:/Users/simulateur/AppData/Local/Microsoft/WindowsApps/lld-link.com"
+ - "C:/Users/simulateur/AppData/Local/Microsoft/WindowsApps/lld-link.exe"
+ - "C:/Users/simulateur/AppData/Local/Microsoft/WindowsApps/lld-link"
+ - "C:/Users/simulateur/AppData/Local/Programs/Microsoft VS Code/bin/lld-link.com"
+ - "C:/Users/simulateur/AppData/Local/Programs/Microsoft VS Code/bin/lld-link.exe"
+ - "C:/Users/simulateur/AppData/Local/Programs/Microsoft VS Code/bin/lld-link"
+ - "C:/Users/simulateur/AppData/Roaming/npm/lld-link.com"
+ - "C:/Users/simulateur/AppData/Roaming/npm/lld-link.exe"
+ - "C:/Users/simulateur/AppData/Roaming/npm/lld-link"
+ - "C:/Users/simulateur/AppData/Local/JetBrains/Toolbox/scripts/lld-link.com"
+ - "C:/Users/simulateur/AppData/Local/JetBrains/Toolbox/scripts/lld-link.exe"
+ - "C:/Users/simulateur/AppData/Local/JetBrains/Toolbox/scripts/lld-link"
+ - "C:/Users/simulateur/.dotnet/tools/lld-link.com"
+ - "C:/Users/simulateur/.dotnet/tools/lld-link.exe"
+ - "C:/Users/simulateur/.dotnet/tools/lld-link"
+ - "C:/Program Files/Processing/lld-link.com"
+ - "C:/Program Files/Processing/lld-link.exe"
+ - "C:/Program Files/Processing/lld-link"
+ - "C:/Users/simulateur/AppData/Local/Python/bin/lld-link.com"
+ - "C:/Users/simulateur/AppData/Local/Python/bin/lld-link.exe"
+ - "C:/Users/simulateur/AppData/Local/Python/bin/lld-link"
+ - "C:/Users/simulateur/AppData/Local/Programs/cursor/resources/app/bin/lld-link.com"
+ - "C:/Users/simulateur/AppData/Local/Programs/cursor/resources/app/bin/lld-link.exe"
+ - "C:/Users/simulateur/AppData/Local/Programs/cursor/resources/app/bin/lld-link"
+ - "C:/Users/simulateur/AppData/Local/Programs/Ollama/lld-link.com"
+ - "C:/Users/simulateur/AppData/Local/Programs/Ollama/lld-link.exe"
+ - "C:/Users/simulateur/AppData/Local/Programs/Ollama/lld-link"
+ - "C:/Users/simulateur/AppData/Local/Programs/Antigravity/bin/lld-link.com"
+ - "C:/Users/simulateur/AppData/Local/Programs/Antigravity/bin/lld-link.exe"
+ - "C:/Users/simulateur/AppData/Local/Programs/Antigravity/bin/lld-link"
+ found: false
+ search_context:
+ ENV{PATH}:
+ - "c:\\Users\\simulateur\\AppData\\Roaming\\Code\\User\\globalStorage\\github.copilot-chat\\debugCommand"
+ - "c:\\Users\\simulateur\\AppData\\Roaming\\Code\\User\\globalStorage\\github.copilot-chat\\copilotCli"
+ - "C:\\Program Files\\Common Files\\Oracle\\Java\\javapath"
+ - "C:\\WINDOWS\\system32"
+ - "C:\\WINDOWS"
+ - "C:\\WINDOWS\\System32\\Wbem"
+ - "C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\"
+ - "C:\\WINDOWS\\System32\\OpenSSH\\"
+ - "c:\\Program Files (x86)\\HP\\HP Performance Advisor"
+ - "C:\\Program Files\\dotnet\\"
+ - "C:\\Program Files\\Git\\cmd"
+ - "C:\\Program Files\\nodejs\\"
+ - "C:\\Program Files\\TortoiseGit\\bin"
+ - "C:\\Program Files (x86)\\Windows Kits\\10\\Windows Performance Toolkit\\"
+ - "C:\\Users\\simulateur\\Downloads\\vcpkg"
+ - "C:\\Users\\simulateur\\.jdks\\valhalla-ea-23-valhalla+1-90\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\CLion\\bin\\cmake\\win\\x64\\bin\\"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Inno Setup 6"
+ - "C:\\Program Files\\WireGuard\\"
+ - "C:\\Program Files\\Cloudflare\\Cloudflare WARP\\"
+ - "C:\\Program Files\\CMake\\bin"
+ - "C:\\Users\\simulateur\\.local\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Python\\Python313\\Scripts\\"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Python\\Python313\\"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Python\\Python311\\Scripts\\"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Python\\Python311\\"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Microsoft\\WindowsApps"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Microsoft VS Code\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Roaming\\npm"
+ - "C:\\Users\\simulateur\\AppData\\Local\\JetBrains\\Toolbox\\scripts"
+ - "C:\\Users\\simulateur\\.dotnet\\tools"
+ - "C:\\Users\\simulateur\\Downloads\\vcpkg"
+ - "C:\\Users\\simulateur\\.jdks\\valhalla-ea-23-valhalla+1-90\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\CLion\\bin\\cmake\\win\\x64\\bin\\"
+ - "C:\\Program Files\\Processing\\"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Python\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Inno Setup 6"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\cursor\\resources\\app\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Ollama"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Antigravity\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Microsoft\\WindowsApps"
+ -
+ kind: "find-v1"
+ backtrace:
+ - "C:/Program Files/CMake/share/cmake-4.3/Modules/CMakeFindBinUtils.cmake:243 (find_program)"
+ - "C:/Program Files/CMake/share/cmake-4.3/Modules/CMakeDetermineCXXCompiler.cmake:206 (include)"
+ - "CMakeLists.txt:3 (project)"
+ mode: "program"
+ variable: "CMAKE_LINKER"
+ description: "Path to a program."
+ settings:
+ SearchFramework: "NEVER"
+ SearchAppBundle: "NEVER"
+ CMAKE_FIND_USE_CMAKE_PATH: false
+ CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH: false
+ CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH: true
+ CMAKE_FIND_USE_CMAKE_SYSTEM_PATH: true
+ CMAKE_FIND_USE_INSTALL_PREFIX: true
+ names:
+ - "link"
+ candidate_directories:
+ - "C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.44.35207/bin/Hostx64/x64/"
+ - "C:/Users/simulateur/AppData/Roaming/Code/User/globalStorage/github.copilot-chat/debugCommand/"
+ - "C:/Users/simulateur/AppData/Roaming/Code/User/globalStorage/github.copilot-chat/copilotCli/"
+ - "C:/Program Files/Common Files/Oracle/Java/javapath/"
+ - "C:/Windows/System32/"
+ - "C:/Windows/"
+ - "C:/Windows/System32/wbem/"
+ - "C:/Windows/System32/WindowsPowerShell/v1.0/"
+ - "C:/Windows/System32/OpenSSH/"
+ - "C:/Program Files (x86)/HP/HP Performance Advisor/"
+ - "C:/Program Files/dotnet/"
+ - "C:/Program Files/Git/cmd/"
+ - "C:/Program Files/nodejs/"
+ - "C:/Program Files/TortoiseGit/bin/"
+ - "C:/Program Files (x86)/Windows Kits/10/Windows Performance Toolkit/"
+ - "C:/Users/simulateur/Downloads/vcpkg/"
+ - "C:/Users/simulateur/.jdks/valhalla-ea-23-valhalla+1-90/bin/"
+ - "C:/Users/simulateur/AppData/Local/Programs/CLion/bin/cmake/win/x64/bin/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Inno Setup 6/"
+ - "C:/Program Files/WireGuard/"
+ - "C:/Program Files/Cloudflare/Cloudflare WARP/"
+ - "C:/Program Files/CMake/bin/"
+ - "C:/Users/simulateur/.local/bin/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python313/Scripts/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python313/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python311/Scripts/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python311/"
+ - "C:/Users/simulateur/AppData/Local/Microsoft/WindowsApps/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Microsoft VS Code/bin/"
+ - "C:/Users/simulateur/AppData/Roaming/npm/"
+ - "C:/Users/simulateur/AppData/Local/JetBrains/Toolbox/scripts/"
+ - "C:/Users/simulateur/.dotnet/tools/"
+ - "C:/Program Files/Processing/"
+ - "C:/Users/simulateur/AppData/Local/Python/bin/"
+ - "C:/Users/simulateur/AppData/Local/Programs/cursor/resources/app/bin/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Ollama/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Antigravity/bin/"
+ searched_directories:
+ - "C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.44.35207/bin/Hostx64/x64/link.com"
+ found: "C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.44.35207/bin/Hostx64/x64/link.exe"
+ search_context:
+ ENV{PATH}:
+ - "c:\\Users\\simulateur\\AppData\\Roaming\\Code\\User\\globalStorage\\github.copilot-chat\\debugCommand"
+ - "c:\\Users\\simulateur\\AppData\\Roaming\\Code\\User\\globalStorage\\github.copilot-chat\\copilotCli"
+ - "C:\\Program Files\\Common Files\\Oracle\\Java\\javapath"
+ - "C:\\WINDOWS\\system32"
+ - "C:\\WINDOWS"
+ - "C:\\WINDOWS\\System32\\Wbem"
+ - "C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\"
+ - "C:\\WINDOWS\\System32\\OpenSSH\\"
+ - "c:\\Program Files (x86)\\HP\\HP Performance Advisor"
+ - "C:\\Program Files\\dotnet\\"
+ - "C:\\Program Files\\Git\\cmd"
+ - "C:\\Program Files\\nodejs\\"
+ - "C:\\Program Files\\TortoiseGit\\bin"
+ - "C:\\Program Files (x86)\\Windows Kits\\10\\Windows Performance Toolkit\\"
+ - "C:\\Users\\simulateur\\Downloads\\vcpkg"
+ - "C:\\Users\\simulateur\\.jdks\\valhalla-ea-23-valhalla+1-90\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\CLion\\bin\\cmake\\win\\x64\\bin\\"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Inno Setup 6"
+ - "C:\\Program Files\\WireGuard\\"
+ - "C:\\Program Files\\Cloudflare\\Cloudflare WARP\\"
+ - "C:\\Program Files\\CMake\\bin"
+ - "C:\\Users\\simulateur\\.local\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Python\\Python313\\Scripts\\"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Python\\Python313\\"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Python\\Python311\\Scripts\\"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Python\\Python311\\"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Microsoft\\WindowsApps"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Microsoft VS Code\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Roaming\\npm"
+ - "C:\\Users\\simulateur\\AppData\\Local\\JetBrains\\Toolbox\\scripts"
+ - "C:\\Users\\simulateur\\.dotnet\\tools"
+ - "C:\\Users\\simulateur\\Downloads\\vcpkg"
+ - "C:\\Users\\simulateur\\.jdks\\valhalla-ea-23-valhalla+1-90\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\CLion\\bin\\cmake\\win\\x64\\bin\\"
+ - "C:\\Program Files\\Processing\\"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Python\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Inno Setup 6"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\cursor\\resources\\app\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Ollama"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Antigravity\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Microsoft\\WindowsApps"
+ -
+ kind: "find-v1"
+ backtrace:
+ - "C:/Program Files/CMake/share/cmake-4.3/Modules/CMakeFindBinUtils.cmake:243 (find_program)"
+ - "C:/Program Files/CMake/share/cmake-4.3/Modules/CMakeDetermineCXXCompiler.cmake:206 (include)"
+ - "CMakeLists.txt:3 (project)"
+ mode: "program"
+ variable: "CMAKE_MT"
+ description: "Path to a program."
+ settings:
+ SearchFramework: "NEVER"
+ SearchAppBundle: "NEVER"
+ CMAKE_FIND_USE_CMAKE_PATH: false
+ CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH: false
+ CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH: true
+ CMAKE_FIND_USE_CMAKE_SYSTEM_PATH: true
+ CMAKE_FIND_USE_INSTALL_PREFIX: true
+ names:
+ - "mt"
+ candidate_directories:
+ - "C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.44.35207/bin/Hostx64/x64/"
+ - "C:/Users/simulateur/AppData/Roaming/Code/User/globalStorage/github.copilot-chat/debugCommand/"
+ - "C:/Users/simulateur/AppData/Roaming/Code/User/globalStorage/github.copilot-chat/copilotCli/"
+ - "C:/Program Files/Common Files/Oracle/Java/javapath/"
+ - "C:/Windows/System32/"
+ - "C:/Windows/"
+ - "C:/Windows/System32/wbem/"
+ - "C:/Windows/System32/WindowsPowerShell/v1.0/"
+ - "C:/Windows/System32/OpenSSH/"
+ - "C:/Program Files (x86)/HP/HP Performance Advisor/"
+ - "C:/Program Files/dotnet/"
+ - "C:/Program Files/Git/cmd/"
+ - "C:/Program Files/nodejs/"
+ - "C:/Program Files/TortoiseGit/bin/"
+ - "C:/Program Files (x86)/Windows Kits/10/Windows Performance Toolkit/"
+ - "C:/Users/simulateur/Downloads/vcpkg/"
+ - "C:/Users/simulateur/.jdks/valhalla-ea-23-valhalla+1-90/bin/"
+ - "C:/Users/simulateur/AppData/Local/Programs/CLion/bin/cmake/win/x64/bin/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Inno Setup 6/"
+ - "C:/Program Files/WireGuard/"
+ - "C:/Program Files/Cloudflare/Cloudflare WARP/"
+ - "C:/Program Files/CMake/bin/"
+ - "C:/Users/simulateur/.local/bin/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python313/Scripts/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python313/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python311/Scripts/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python311/"
+ - "C:/Users/simulateur/AppData/Local/Microsoft/WindowsApps/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Microsoft VS Code/bin/"
+ - "C:/Users/simulateur/AppData/Roaming/npm/"
+ - "C:/Users/simulateur/AppData/Local/JetBrains/Toolbox/scripts/"
+ - "C:/Users/simulateur/.dotnet/tools/"
+ - "C:/Program Files/Processing/"
+ - "C:/Users/simulateur/AppData/Local/Python/bin/"
+ - "C:/Users/simulateur/AppData/Local/Programs/cursor/resources/app/bin/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Ollama/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Antigravity/bin/"
+ searched_directories:
+ - "C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.44.35207/bin/Hostx64/x64/mt.com"
+ - "C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.44.35207/bin/Hostx64/x64/mt.exe"
+ - "C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.44.35207/bin/Hostx64/x64/mt"
+ - "C:/Users/simulateur/AppData/Roaming/Code/User/globalStorage/github.copilot-chat/debugCommand/mt.com"
+ - "C:/Users/simulateur/AppData/Roaming/Code/User/globalStorage/github.copilot-chat/debugCommand/mt.exe"
+ - "C:/Users/simulateur/AppData/Roaming/Code/User/globalStorage/github.copilot-chat/debugCommand/mt"
+ - "C:/Users/simulateur/AppData/Roaming/Code/User/globalStorage/github.copilot-chat/copilotCli/mt.com"
+ - "C:/Users/simulateur/AppData/Roaming/Code/User/globalStorage/github.copilot-chat/copilotCli/mt.exe"
+ - "C:/Users/simulateur/AppData/Roaming/Code/User/globalStorage/github.copilot-chat/copilotCli/mt"
+ - "C:/Program Files/Common Files/Oracle/Java/javapath/mt.com"
+ - "C:/Program Files/Common Files/Oracle/Java/javapath/mt.exe"
+ - "C:/Program Files/Common Files/Oracle/Java/javapath/mt"
+ - "C:/Windows/System32/mt.com"
+ - "C:/Windows/System32/mt.exe"
+ - "C:/Windows/System32/mt"
+ - "C:/Windows/mt.com"
+ - "C:/Windows/mt.exe"
+ - "C:/Windows/mt"
+ - "C:/Windows/System32/wbem/mt.com"
+ - "C:/Windows/System32/wbem/mt.exe"
+ - "C:/Windows/System32/wbem/mt"
+ - "C:/Windows/System32/WindowsPowerShell/v1.0/mt.com"
+ - "C:/Windows/System32/WindowsPowerShell/v1.0/mt.exe"
+ - "C:/Windows/System32/WindowsPowerShell/v1.0/mt"
+ - "C:/Windows/System32/OpenSSH/mt.com"
+ - "C:/Windows/System32/OpenSSH/mt.exe"
+ - "C:/Windows/System32/OpenSSH/mt"
+ - "C:/Program Files (x86)/HP/HP Performance Advisor/mt.com"
+ - "C:/Program Files (x86)/HP/HP Performance Advisor/mt.exe"
+ - "C:/Program Files (x86)/HP/HP Performance Advisor/mt"
+ - "C:/Program Files/dotnet/mt.com"
+ - "C:/Program Files/dotnet/mt.exe"
+ - "C:/Program Files/dotnet/mt"
+ - "C:/Program Files/Git/cmd/mt.com"
+ - "C:/Program Files/Git/cmd/mt.exe"
+ - "C:/Program Files/Git/cmd/mt"
+ - "C:/Program Files/nodejs/mt.com"
+ - "C:/Program Files/nodejs/mt.exe"
+ - "C:/Program Files/nodejs/mt"
+ - "C:/Program Files/TortoiseGit/bin/mt.com"
+ - "C:/Program Files/TortoiseGit/bin/mt.exe"
+ - "C:/Program Files/TortoiseGit/bin/mt"
+ - "C:/Program Files (x86)/Windows Kits/10/Windows Performance Toolkit/mt.com"
+ - "C:/Program Files (x86)/Windows Kits/10/Windows Performance Toolkit/mt.exe"
+ - "C:/Program Files (x86)/Windows Kits/10/Windows Performance Toolkit/mt"
+ - "C:/Users/simulateur/Downloads/vcpkg/mt.com"
+ - "C:/Users/simulateur/Downloads/vcpkg/mt.exe"
+ - "C:/Users/simulateur/Downloads/vcpkg/mt"
+ - "C:/Users/simulateur/.jdks/valhalla-ea-23-valhalla+1-90/bin/mt.com"
+ - "C:/Users/simulateur/.jdks/valhalla-ea-23-valhalla+1-90/bin/mt.exe"
+ - "C:/Users/simulateur/.jdks/valhalla-ea-23-valhalla+1-90/bin/mt"
+ - "C:/Users/simulateur/AppData/Local/Programs/CLion/bin/cmake/win/x64/bin/mt.com"
+ - "C:/Users/simulateur/AppData/Local/Programs/CLion/bin/cmake/win/x64/bin/mt.exe"
+ - "C:/Users/simulateur/AppData/Local/Programs/CLion/bin/cmake/win/x64/bin/mt"
+ - "C:/Users/simulateur/AppData/Local/Programs/Inno Setup 6/mt.com"
+ - "C:/Users/simulateur/AppData/Local/Programs/Inno Setup 6/mt.exe"
+ - "C:/Users/simulateur/AppData/Local/Programs/Inno Setup 6/mt"
+ - "C:/Program Files/WireGuard/mt.com"
+ - "C:/Program Files/WireGuard/mt.exe"
+ - "C:/Program Files/WireGuard/mt"
+ - "C:/Program Files/Cloudflare/Cloudflare WARP/mt.com"
+ - "C:/Program Files/Cloudflare/Cloudflare WARP/mt.exe"
+ - "C:/Program Files/Cloudflare/Cloudflare WARP/mt"
+ - "C:/Program Files/CMake/bin/mt.com"
+ - "C:/Program Files/CMake/bin/mt.exe"
+ - "C:/Program Files/CMake/bin/mt"
+ - "C:/Users/simulateur/.local/bin/mt.com"
+ - "C:/Users/simulateur/.local/bin/mt.exe"
+ - "C:/Users/simulateur/.local/bin/mt"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python313/Scripts/mt.com"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python313/Scripts/mt.exe"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python313/Scripts/mt"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python313/mt.com"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python313/mt.exe"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python313/mt"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python311/Scripts/mt.com"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python311/Scripts/mt.exe"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python311/Scripts/mt"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python311/mt.com"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python311/mt.exe"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python311/mt"
+ - "C:/Users/simulateur/AppData/Local/Microsoft/WindowsApps/mt.com"
+ - "C:/Users/simulateur/AppData/Local/Microsoft/WindowsApps/mt.exe"
+ - "C:/Users/simulateur/AppData/Local/Microsoft/WindowsApps/mt"
+ - "C:/Users/simulateur/AppData/Local/Programs/Microsoft VS Code/bin/mt.com"
+ - "C:/Users/simulateur/AppData/Local/Programs/Microsoft VS Code/bin/mt.exe"
+ - "C:/Users/simulateur/AppData/Local/Programs/Microsoft VS Code/bin/mt"
+ - "C:/Users/simulateur/AppData/Roaming/npm/mt.com"
+ - "C:/Users/simulateur/AppData/Roaming/npm/mt.exe"
+ - "C:/Users/simulateur/AppData/Roaming/npm/mt"
+ - "C:/Users/simulateur/AppData/Local/JetBrains/Toolbox/scripts/mt.com"
+ - "C:/Users/simulateur/AppData/Local/JetBrains/Toolbox/scripts/mt.exe"
+ - "C:/Users/simulateur/AppData/Local/JetBrains/Toolbox/scripts/mt"
+ - "C:/Users/simulateur/.dotnet/tools/mt.com"
+ - "C:/Users/simulateur/.dotnet/tools/mt.exe"
+ - "C:/Users/simulateur/.dotnet/tools/mt"
+ - "C:/Program Files/Processing/mt.com"
+ - "C:/Program Files/Processing/mt.exe"
+ - "C:/Program Files/Processing/mt"
+ - "C:/Users/simulateur/AppData/Local/Python/bin/mt.com"
+ - "C:/Users/simulateur/AppData/Local/Python/bin/mt.exe"
+ - "C:/Users/simulateur/AppData/Local/Python/bin/mt"
+ - "C:/Users/simulateur/AppData/Local/Programs/cursor/resources/app/bin/mt.com"
+ - "C:/Users/simulateur/AppData/Local/Programs/cursor/resources/app/bin/mt.exe"
+ - "C:/Users/simulateur/AppData/Local/Programs/cursor/resources/app/bin/mt"
+ - "C:/Users/simulateur/AppData/Local/Programs/Ollama/mt.com"
+ - "C:/Users/simulateur/AppData/Local/Programs/Ollama/mt.exe"
+ - "C:/Users/simulateur/AppData/Local/Programs/Ollama/mt"
+ - "C:/Users/simulateur/AppData/Local/Programs/Antigravity/bin/mt.com"
+ - "C:/Users/simulateur/AppData/Local/Programs/Antigravity/bin/mt.exe"
+ - "C:/Users/simulateur/AppData/Local/Programs/Antigravity/bin/mt"
+ found: false
+ search_context:
+ ENV{PATH}:
+ - "c:\\Users\\simulateur\\AppData\\Roaming\\Code\\User\\globalStorage\\github.copilot-chat\\debugCommand"
+ - "c:\\Users\\simulateur\\AppData\\Roaming\\Code\\User\\globalStorage\\github.copilot-chat\\copilotCli"
+ - "C:\\Program Files\\Common Files\\Oracle\\Java\\javapath"
+ - "C:\\WINDOWS\\system32"
+ - "C:\\WINDOWS"
+ - "C:\\WINDOWS\\System32\\Wbem"
+ - "C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\"
+ - "C:\\WINDOWS\\System32\\OpenSSH\\"
+ - "c:\\Program Files (x86)\\HP\\HP Performance Advisor"
+ - "C:\\Program Files\\dotnet\\"
+ - "C:\\Program Files\\Git\\cmd"
+ - "C:\\Program Files\\nodejs\\"
+ - "C:\\Program Files\\TortoiseGit\\bin"
+ - "C:\\Program Files (x86)\\Windows Kits\\10\\Windows Performance Toolkit\\"
+ - "C:\\Users\\simulateur\\Downloads\\vcpkg"
+ - "C:\\Users\\simulateur\\.jdks\\valhalla-ea-23-valhalla+1-90\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\CLion\\bin\\cmake\\win\\x64\\bin\\"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Inno Setup 6"
+ - "C:\\Program Files\\WireGuard\\"
+ - "C:\\Program Files\\Cloudflare\\Cloudflare WARP\\"
+ - "C:\\Program Files\\CMake\\bin"
+ - "C:\\Users\\simulateur\\.local\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Python\\Python313\\Scripts\\"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Python\\Python313\\"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Python\\Python311\\Scripts\\"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Python\\Python311\\"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Microsoft\\WindowsApps"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Microsoft VS Code\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Roaming\\npm"
+ - "C:\\Users\\simulateur\\AppData\\Local\\JetBrains\\Toolbox\\scripts"
+ - "C:\\Users\\simulateur\\.dotnet\\tools"
+ - "C:\\Users\\simulateur\\Downloads\\vcpkg"
+ - "C:\\Users\\simulateur\\.jdks\\valhalla-ea-23-valhalla+1-90\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\CLion\\bin\\cmake\\win\\x64\\bin\\"
+ - "C:\\Program Files\\Processing\\"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Python\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Inno Setup 6"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\cursor\\resources\\app\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Ollama"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Antigravity\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Microsoft\\WindowsApps"
+ -
+ kind: "find-v1"
+ backtrace:
+ - "C:/Program Files/CMake/share/cmake-4.3/Modules/CMakeFindBinUtils.cmake:243 (find_program)"
+ - "C:/Program Files/CMake/share/cmake-4.3/Modules/CMakeDetermineCXXCompiler.cmake:206 (include)"
+ - "CMakeLists.txt:3 (project)"
+ mode: "program"
+ variable: "CMAKE_AR"
+ description: "Path to a program."
+ settings:
+ SearchFramework: "NEVER"
+ SearchAppBundle: "NEVER"
+ CMAKE_FIND_USE_CMAKE_PATH: false
+ CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH: false
+ CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH: true
+ CMAKE_FIND_USE_CMAKE_SYSTEM_PATH: true
+ CMAKE_FIND_USE_INSTALL_PREFIX: true
+ names:
+ - "lib"
+ candidate_directories:
+ - "C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.44.35207/bin/Hostx64/x64/"
+ - "C:/Users/simulateur/AppData/Roaming/Code/User/globalStorage/github.copilot-chat/debugCommand/"
+ - "C:/Users/simulateur/AppData/Roaming/Code/User/globalStorage/github.copilot-chat/copilotCli/"
+ - "C:/Program Files/Common Files/Oracle/Java/javapath/"
+ - "C:/Windows/System32/"
+ - "C:/Windows/"
+ - "C:/Windows/System32/wbem/"
+ - "C:/Windows/System32/WindowsPowerShell/v1.0/"
+ - "C:/Windows/System32/OpenSSH/"
+ - "C:/Program Files (x86)/HP/HP Performance Advisor/"
+ - "C:/Program Files/dotnet/"
+ - "C:/Program Files/Git/cmd/"
+ - "C:/Program Files/nodejs/"
+ - "C:/Program Files/TortoiseGit/bin/"
+ - "C:/Program Files (x86)/Windows Kits/10/Windows Performance Toolkit/"
+ - "C:/Users/simulateur/Downloads/vcpkg/"
+ - "C:/Users/simulateur/.jdks/valhalla-ea-23-valhalla+1-90/bin/"
+ - "C:/Users/simulateur/AppData/Local/Programs/CLion/bin/cmake/win/x64/bin/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Inno Setup 6/"
+ - "C:/Program Files/WireGuard/"
+ - "C:/Program Files/Cloudflare/Cloudflare WARP/"
+ - "C:/Program Files/CMake/bin/"
+ - "C:/Users/simulateur/.local/bin/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python313/Scripts/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python313/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python311/Scripts/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python311/"
+ - "C:/Users/simulateur/AppData/Local/Microsoft/WindowsApps/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Microsoft VS Code/bin/"
+ - "C:/Users/simulateur/AppData/Roaming/npm/"
+ - "C:/Users/simulateur/AppData/Local/JetBrains/Toolbox/scripts/"
+ - "C:/Users/simulateur/.dotnet/tools/"
+ - "C:/Program Files/Processing/"
+ - "C:/Users/simulateur/AppData/Local/Python/bin/"
+ - "C:/Users/simulateur/AppData/Local/Programs/cursor/resources/app/bin/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Ollama/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Antigravity/bin/"
+ searched_directories:
+ - "C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.44.35207/bin/Hostx64/x64/lib.com"
+ found: "C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.44.35207/bin/Hostx64/x64/lib.exe"
+ search_context:
+ ENV{PATH}:
+ - "c:\\Users\\simulateur\\AppData\\Roaming\\Code\\User\\globalStorage\\github.copilot-chat\\debugCommand"
+ - "c:\\Users\\simulateur\\AppData\\Roaming\\Code\\User\\globalStorage\\github.copilot-chat\\copilotCli"
+ - "C:\\Program Files\\Common Files\\Oracle\\Java\\javapath"
+ - "C:\\WINDOWS\\system32"
+ - "C:\\WINDOWS"
+ - "C:\\WINDOWS\\System32\\Wbem"
+ - "C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\"
+ - "C:\\WINDOWS\\System32\\OpenSSH\\"
+ - "c:\\Program Files (x86)\\HP\\HP Performance Advisor"
+ - "C:\\Program Files\\dotnet\\"
+ - "C:\\Program Files\\Git\\cmd"
+ - "C:\\Program Files\\nodejs\\"
+ - "C:\\Program Files\\TortoiseGit\\bin"
+ - "C:\\Program Files (x86)\\Windows Kits\\10\\Windows Performance Toolkit\\"
+ - "C:\\Users\\simulateur\\Downloads\\vcpkg"
+ - "C:\\Users\\simulateur\\.jdks\\valhalla-ea-23-valhalla+1-90\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\CLion\\bin\\cmake\\win\\x64\\bin\\"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Inno Setup 6"
+ - "C:\\Program Files\\WireGuard\\"
+ - "C:\\Program Files\\Cloudflare\\Cloudflare WARP\\"
+ - "C:\\Program Files\\CMake\\bin"
+ - "C:\\Users\\simulateur\\.local\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Python\\Python313\\Scripts\\"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Python\\Python313\\"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Python\\Python311\\Scripts\\"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Python\\Python311\\"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Microsoft\\WindowsApps"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Microsoft VS Code\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Roaming\\npm"
+ - "C:\\Users\\simulateur\\AppData\\Local\\JetBrains\\Toolbox\\scripts"
+ - "C:\\Users\\simulateur\\.dotnet\\tools"
+ - "C:\\Users\\simulateur\\Downloads\\vcpkg"
+ - "C:\\Users\\simulateur\\.jdks\\valhalla-ea-23-valhalla+1-90\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\CLion\\bin\\cmake\\win\\x64\\bin\\"
+ - "C:\\Program Files\\Processing\\"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Python\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Inno Setup 6"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\cursor\\resources\\app\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Ollama"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Antigravity\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Microsoft\\WindowsApps"
+ -
+ kind: "find-v1"
+ backtrace:
+ - "C:/Program Files/CMake/share/cmake-4.3/Modules/CMakeDetermineRCCompiler.cmake:40 (find_program)"
+ - "C:/Program Files/CMake/share/cmake-4.3/Modules/Platform/Windows-MSVC.cmake:592 (enable_language)"
+ - "C:/Program Files/CMake/share/cmake-4.3/Modules/Platform/Windows-MSVC.cmake:565 (__windows_compiler_msvc_enable_rc)"
+ - "C:/Program Files/CMake/share/cmake-4.3/Modules/Platform/Windows-MSVC-CXX.cmake:6 (__windows_compiler_msvc)"
+ - "C:/Program Files/CMake/share/cmake-4.3/Modules/CMakeCXXInformation.cmake:48 (include)"
+ - "CMakeLists.txt:3 (project)"
+ mode: "program"
+ variable: "CMAKE_RC_COMPILER"
+ description: "RC compiler"
+ settings:
+ SearchFramework: "NEVER"
+ SearchAppBundle: "NEVER"
+ CMAKE_FIND_USE_CMAKE_PATH: true
+ CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH: true
+ CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH: true
+ CMAKE_FIND_USE_CMAKE_SYSTEM_PATH: true
+ CMAKE_FIND_USE_INSTALL_PREFIX: true
+ names:
+ - "rc"
+ candidate_directories:
+ - "C:/Users/simulateur/AppData/Roaming/Code/User/globalStorage/github.copilot-chat/debugCommand/"
+ - "C:/Users/simulateur/AppData/Roaming/Code/User/globalStorage/github.copilot-chat/copilotCli/"
+ - "C:/Program Files/Common Files/Oracle/Java/javapath/"
+ - "C:/Windows/System32/"
+ - "C:/Windows/"
+ - "C:/Windows/System32/wbem/"
+ - "C:/Windows/System32/WindowsPowerShell/v1.0/"
+ - "C:/Windows/System32/OpenSSH/"
+ - "C:/Program Files (x86)/HP/HP Performance Advisor/"
+ - "C:/Program Files/dotnet/"
+ - "C:/Program Files/Git/cmd/"
+ - "C:/Program Files/nodejs/"
+ - "C:/Program Files/TortoiseGit/bin/"
+ - "C:/Program Files (x86)/Windows Kits/10/Windows Performance Toolkit/"
+ - "C:/Users/simulateur/Downloads/vcpkg/"
+ - "C:/Users/simulateur/.jdks/valhalla-ea-23-valhalla+1-90/bin/"
+ - "C:/Users/simulateur/AppData/Local/Programs/CLion/bin/cmake/win/x64/bin/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Inno Setup 6/"
+ - "C:/Program Files/WireGuard/"
+ - "C:/Program Files/Cloudflare/Cloudflare WARP/"
+ - "C:/Program Files/CMake/bin/"
+ - "C:/Users/simulateur/.local/bin/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python313/Scripts/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python313/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python311/Scripts/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python311/"
+ - "C:/Users/simulateur/AppData/Local/Microsoft/WindowsApps/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Microsoft VS Code/bin/"
+ - "C:/Users/simulateur/AppData/Roaming/npm/"
+ - "C:/Users/simulateur/AppData/Local/JetBrains/Toolbox/scripts/"
+ - "C:/Users/simulateur/.dotnet/tools/"
+ - "C:/Program Files/Processing/"
+ - "C:/Users/simulateur/AppData/Local/Python/bin/"
+ - "C:/Users/simulateur/AppData/Local/Programs/cursor/resources/app/bin/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Ollama/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Antigravity/bin/"
+ - "C:/Program Files/bin/"
+ - "C:/Program Files/sbin/"
+ - "C:/Program Files/"
+ - "C:/Program Files (x86)/bin/"
+ - "C:/Program Files (x86)/sbin/"
+ - "C:/Program Files (x86)/"
+ - "C:/Program Files/CMake/bin/"
+ - "C:/Program Files/CMake/sbin/"
+ - "C:/Program Files/CMake/"
+ - "C:/Program Files (x86)/webcam/bin/"
+ - "C:/Program Files (x86)/webcam/sbin/"
+ - "C:/Program Files (x86)/webcam/"
+ searched_directories:
+ - "C:/Users/simulateur/AppData/Roaming/Code/User/globalStorage/github.copilot-chat/debugCommand/rc.com"
+ - "C:/Users/simulateur/AppData/Roaming/Code/User/globalStorage/github.copilot-chat/debugCommand/rc.exe"
+ - "C:/Users/simulateur/AppData/Roaming/Code/User/globalStorage/github.copilot-chat/debugCommand/rc"
+ - "C:/Users/simulateur/AppData/Roaming/Code/User/globalStorage/github.copilot-chat/copilotCli/rc.com"
+ - "C:/Users/simulateur/AppData/Roaming/Code/User/globalStorage/github.copilot-chat/copilotCli/rc.exe"
+ - "C:/Users/simulateur/AppData/Roaming/Code/User/globalStorage/github.copilot-chat/copilotCli/rc"
+ - "C:/Program Files/Common Files/Oracle/Java/javapath/rc.com"
+ - "C:/Program Files/Common Files/Oracle/Java/javapath/rc.exe"
+ - "C:/Program Files/Common Files/Oracle/Java/javapath/rc"
+ - "C:/Windows/System32/rc.com"
+ - "C:/Windows/System32/rc.exe"
+ - "C:/Windows/System32/rc"
+ - "C:/Windows/rc.com"
+ - "C:/Windows/rc.exe"
+ - "C:/Windows/rc"
+ - "C:/Windows/System32/wbem/rc.com"
+ - "C:/Windows/System32/wbem/rc.exe"
+ - "C:/Windows/System32/wbem/rc"
+ - "C:/Windows/System32/WindowsPowerShell/v1.0/rc.com"
+ - "C:/Windows/System32/WindowsPowerShell/v1.0/rc.exe"
+ - "C:/Windows/System32/WindowsPowerShell/v1.0/rc"
+ - "C:/Windows/System32/OpenSSH/rc.com"
+ - "C:/Windows/System32/OpenSSH/rc.exe"
+ - "C:/Windows/System32/OpenSSH/rc"
+ - "C:/Program Files (x86)/HP/HP Performance Advisor/rc.com"
+ - "C:/Program Files (x86)/HP/HP Performance Advisor/rc.exe"
+ - "C:/Program Files (x86)/HP/HP Performance Advisor/rc"
+ - "C:/Program Files/dotnet/rc.com"
+ - "C:/Program Files/dotnet/rc.exe"
+ - "C:/Program Files/dotnet/rc"
+ - "C:/Program Files/Git/cmd/rc.com"
+ - "C:/Program Files/Git/cmd/rc.exe"
+ - "C:/Program Files/Git/cmd/rc"
+ - "C:/Program Files/nodejs/rc.com"
+ - "C:/Program Files/nodejs/rc.exe"
+ - "C:/Program Files/nodejs/rc"
+ - "C:/Program Files/TortoiseGit/bin/rc.com"
+ - "C:/Program Files/TortoiseGit/bin/rc.exe"
+ - "C:/Program Files/TortoiseGit/bin/rc"
+ - "C:/Program Files (x86)/Windows Kits/10/Windows Performance Toolkit/rc.com"
+ - "C:/Program Files (x86)/Windows Kits/10/Windows Performance Toolkit/rc.exe"
+ - "C:/Program Files (x86)/Windows Kits/10/Windows Performance Toolkit/rc"
+ - "C:/Users/simulateur/Downloads/vcpkg/rc.com"
+ - "C:/Users/simulateur/Downloads/vcpkg/rc.exe"
+ - "C:/Users/simulateur/Downloads/vcpkg/rc"
+ - "C:/Users/simulateur/.jdks/valhalla-ea-23-valhalla+1-90/bin/rc.com"
+ - "C:/Users/simulateur/.jdks/valhalla-ea-23-valhalla+1-90/bin/rc.exe"
+ - "C:/Users/simulateur/.jdks/valhalla-ea-23-valhalla+1-90/bin/rc"
+ - "C:/Users/simulateur/AppData/Local/Programs/CLion/bin/cmake/win/x64/bin/rc.com"
+ - "C:/Users/simulateur/AppData/Local/Programs/CLion/bin/cmake/win/x64/bin/rc.exe"
+ - "C:/Users/simulateur/AppData/Local/Programs/CLion/bin/cmake/win/x64/bin/rc"
+ - "C:/Users/simulateur/AppData/Local/Programs/Inno Setup 6/rc.com"
+ - "C:/Users/simulateur/AppData/Local/Programs/Inno Setup 6/rc.exe"
+ - "C:/Users/simulateur/AppData/Local/Programs/Inno Setup 6/rc"
+ - "C:/Program Files/WireGuard/rc.com"
+ - "C:/Program Files/WireGuard/rc.exe"
+ - "C:/Program Files/WireGuard/rc"
+ - "C:/Program Files/Cloudflare/Cloudflare WARP/rc.com"
+ - "C:/Program Files/Cloudflare/Cloudflare WARP/rc.exe"
+ - "C:/Program Files/Cloudflare/Cloudflare WARP/rc"
+ - "C:/Program Files/CMake/bin/rc.com"
+ - "C:/Program Files/CMake/bin/rc.exe"
+ - "C:/Program Files/CMake/bin/rc"
+ - "C:/Users/simulateur/.local/bin/rc.com"
+ - "C:/Users/simulateur/.local/bin/rc.exe"
+ - "C:/Users/simulateur/.local/bin/rc"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python313/Scripts/rc.com"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python313/Scripts/rc.exe"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python313/Scripts/rc"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python313/rc.com"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python313/rc.exe"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python313/rc"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python311/Scripts/rc.com"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python311/Scripts/rc.exe"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python311/Scripts/rc"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python311/rc.com"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python311/rc.exe"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python311/rc"
+ - "C:/Users/simulateur/AppData/Local/Microsoft/WindowsApps/rc.com"
+ - "C:/Users/simulateur/AppData/Local/Microsoft/WindowsApps/rc.exe"
+ - "C:/Users/simulateur/AppData/Local/Microsoft/WindowsApps/rc"
+ - "C:/Users/simulateur/AppData/Local/Programs/Microsoft VS Code/bin/rc.com"
+ - "C:/Users/simulateur/AppData/Local/Programs/Microsoft VS Code/bin/rc.exe"
+ - "C:/Users/simulateur/AppData/Local/Programs/Microsoft VS Code/bin/rc"
+ - "C:/Users/simulateur/AppData/Roaming/npm/rc.com"
+ - "C:/Users/simulateur/AppData/Roaming/npm/rc.exe"
+ - "C:/Users/simulateur/AppData/Roaming/npm/rc"
+ - "C:/Users/simulateur/AppData/Local/JetBrains/Toolbox/scripts/rc.com"
+ - "C:/Users/simulateur/AppData/Local/JetBrains/Toolbox/scripts/rc.exe"
+ - "C:/Users/simulateur/AppData/Local/JetBrains/Toolbox/scripts/rc"
+ - "C:/Users/simulateur/.dotnet/tools/rc.com"
+ - "C:/Users/simulateur/.dotnet/tools/rc.exe"
+ - "C:/Users/simulateur/.dotnet/tools/rc"
+ - "C:/Program Files/Processing/rc.com"
+ - "C:/Program Files/Processing/rc.exe"
+ - "C:/Program Files/Processing/rc"
+ - "C:/Users/simulateur/AppData/Local/Python/bin/rc.com"
+ - "C:/Users/simulateur/AppData/Local/Python/bin/rc.exe"
+ - "C:/Users/simulateur/AppData/Local/Python/bin/rc"
+ - "C:/Users/simulateur/AppData/Local/Programs/cursor/resources/app/bin/rc.com"
+ - "C:/Users/simulateur/AppData/Local/Programs/cursor/resources/app/bin/rc.exe"
+ - "C:/Users/simulateur/AppData/Local/Programs/cursor/resources/app/bin/rc"
+ - "C:/Users/simulateur/AppData/Local/Programs/Ollama/rc.com"
+ - "C:/Users/simulateur/AppData/Local/Programs/Ollama/rc.exe"
+ - "C:/Users/simulateur/AppData/Local/Programs/Ollama/rc"
+ - "C:/Users/simulateur/AppData/Local/Programs/Antigravity/bin/rc.com"
+ - "C:/Users/simulateur/AppData/Local/Programs/Antigravity/bin/rc.exe"
+ - "C:/Users/simulateur/AppData/Local/Programs/Antigravity/bin/rc"
+ - "C:/Program Files/bin/rc.com"
+ - "C:/Program Files/bin/rc.exe"
+ - "C:/Program Files/bin/rc"
+ - "C:/Program Files/sbin/rc.com"
+ - "C:/Program Files/sbin/rc.exe"
+ - "C:/Program Files/sbin/rc"
+ - "C:/Program Files/rc.com"
+ - "C:/Program Files/rc.exe"
+ - "C:/Program Files/rc"
+ - "C:/Program Files (x86)/bin/rc.com"
+ - "C:/Program Files (x86)/bin/rc.exe"
+ - "C:/Program Files (x86)/bin/rc"
+ - "C:/Program Files (x86)/sbin/rc.com"
+ - "C:/Program Files (x86)/sbin/rc.exe"
+ - "C:/Program Files (x86)/sbin/rc"
+ - "C:/Program Files (x86)/rc.com"
+ - "C:/Program Files (x86)/rc.exe"
+ - "C:/Program Files (x86)/rc"
+ - "C:/Program Files/CMake/bin/rc.com"
+ - "C:/Program Files/CMake/bin/rc.exe"
+ - "C:/Program Files/CMake/bin/rc"
+ - "C:/Program Files/CMake/sbin/rc.com"
+ - "C:/Program Files/CMake/sbin/rc.exe"
+ - "C:/Program Files/CMake/sbin/rc"
+ - "C:/Program Files/CMake/rc.com"
+ - "C:/Program Files/CMake/rc.exe"
+ - "C:/Program Files/CMake/rc"
+ - "C:/Program Files (x86)/webcam/bin/rc.com"
+ - "C:/Program Files (x86)/webcam/bin/rc.exe"
+ - "C:/Program Files (x86)/webcam/bin/rc"
+ - "C:/Program Files (x86)/webcam/sbin/rc.com"
+ - "C:/Program Files (x86)/webcam/sbin/rc.exe"
+ - "C:/Program Files (x86)/webcam/sbin/rc"
+ - "C:/Program Files (x86)/webcam/rc.com"
+ - "C:/Program Files (x86)/webcam/rc.exe"
+ - "C:/Program Files (x86)/webcam/rc"
+ found: false
+ search_context:
+ ENV{PATH}:
+ - "c:\\Users\\simulateur\\AppData\\Roaming\\Code\\User\\globalStorage\\github.copilot-chat\\debugCommand"
+ - "c:\\Users\\simulateur\\AppData\\Roaming\\Code\\User\\globalStorage\\github.copilot-chat\\copilotCli"
+ - "C:\\Program Files\\Common Files\\Oracle\\Java\\javapath"
+ - "C:\\WINDOWS\\system32"
+ - "C:\\WINDOWS"
+ - "C:\\WINDOWS\\System32\\Wbem"
+ - "C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\"
+ - "C:\\WINDOWS\\System32\\OpenSSH\\"
+ - "c:\\Program Files (x86)\\HP\\HP Performance Advisor"
+ - "C:\\Program Files\\dotnet\\"
+ - "C:\\Program Files\\Git\\cmd"
+ - "C:\\Program Files\\nodejs\\"
+ - "C:\\Program Files\\TortoiseGit\\bin"
+ - "C:\\Program Files (x86)\\Windows Kits\\10\\Windows Performance Toolkit\\"
+ - "C:\\Users\\simulateur\\Downloads\\vcpkg"
+ - "C:\\Users\\simulateur\\.jdks\\valhalla-ea-23-valhalla+1-90\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\CLion\\bin\\cmake\\win\\x64\\bin\\"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Inno Setup 6"
+ - "C:\\Program Files\\WireGuard\\"
+ - "C:\\Program Files\\Cloudflare\\Cloudflare WARP\\"
+ - "C:\\Program Files\\CMake\\bin"
+ - "C:\\Users\\simulateur\\.local\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Python\\Python313\\Scripts\\"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Python\\Python313\\"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Python\\Python311\\Scripts\\"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Python\\Python311\\"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Microsoft\\WindowsApps"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Microsoft VS Code\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Roaming\\npm"
+ - "C:\\Users\\simulateur\\AppData\\Local\\JetBrains\\Toolbox\\scripts"
+ - "C:\\Users\\simulateur\\.dotnet\\tools"
+ - "C:\\Users\\simulateur\\Downloads\\vcpkg"
+ - "C:\\Users\\simulateur\\.jdks\\valhalla-ea-23-valhalla+1-90\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\CLion\\bin\\cmake\\win\\x64\\bin\\"
+ - "C:\\Program Files\\Processing\\"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Python\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Inno Setup 6"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\cursor\\resources\\app\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Ollama"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Antigravity\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Microsoft\\WindowsApps"
+ CMAKE_INSTALL_PREFIX: "C:/Program Files (x86)/webcam"
+ CMAKE_SYSTEM_PREFIX_PATH:
+ - "C:/Program Files"
+ - "C:/Program Files (x86)"
+ - "C:/Program Files/CMake"
+ - "C:/Program Files (x86)/webcam"
+ -
+ kind: "try_compile-v1"
+ backtrace:
+ - "C:/Program Files/CMake/share/cmake-4.3/Modules/CMakeDetermineCompilerABI.cmake:83 (try_compile)"
+ - "C:/Program Files/CMake/share/cmake-4.3/Modules/CMakeTestCXXCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)"
+ - "CMakeLists.txt:3 (project)"
+ checks:
+ - "Detecting CXX compiler ABI info"
+ directories:
+ source: "C:/Users/simulateur/Documents/Webcam/CMakeFiles/CMakeScratch/TryCompile-a66fu6"
+ binary: "C:/Users/simulateur/Documents/Webcam/CMakeFiles/CMakeScratch/TryCompile-a66fu6"
+ cmakeVariables:
+ CMAKE_CXX_FLAGS: "/DWIN32 /D_WINDOWS /EHsc"
+ CMAKE_CXX_FLAGS_DEBUG: "/Zi /Ob0 /Od /RTC1"
+ CMAKE_CXX_SCAN_FOR_MODULES: "OFF"
+ CMAKE_CXX_STDLIB_MODULES_JSON: ""
+ CMAKE_EXE_LINKER_FLAGS: "/machine:x64"
+ buildResult:
+ variable: "CMAKE_CXX_ABI_COMPILED"
+ cached: true
+ stdout: |
+ Change Dir: 'C:/Users/simulateur/Documents/Webcam/CMakeFiles/CMakeScratch/TryCompile-a66fu6'
+
+ Run Build Command(s): "C:/Program Files/Microsoft Visual Studio/2022/Community/MSBuild/Current/Bin/amd64/MSBuild.exe" cmTC_da21c.vcxproj /p:Configuration=Debug /p:Platform=x64 /p:VisualStudioVersion=17.0 /v:n
+ Version MSBuild 17.14.23+b0019275e pour .NET Framework
+ La g├®n├®ration a d├®marr├® 13/07/2026 16:15:21.
+
+ Projet "C:\\Users\\simulateur\\Documents\\Webcam\\CMakeFiles\\CMakeScratch\\TryCompile-a66fu6\\cmTC_da21c.vcxproj" sur le n┼ôud 1 (cibles par d├®faut).
+ PrepareForBuild:
+ La sortie structur├®e est activ├®e. La mise en forme du compilateur diagnostics refl├¿te la hi├®rarchie des erreurs. Pour plus dÔÇÖinformations, consultez https://aka.ms/cpp/structured-output.
+ Cr├®ation du r├®pertoire "C:\\Users\\simulateur\\Documents\\Webcam\\CMakeFiles\\CMakeScratch\\TryCompile-a66fu6\\Debug\\".
+ Cr├®ation du r├®pertoire "cmTC_da21c.dir\\Debug\\cmTC_da21c.tlog\\".
+ InitializeBuildStatus:
+ Cr├®ation de "cmTC_da21c.dir\\Debug\\cmTC_da21c.tlog\\unsuccessfulbuild", car "AlwaysCreate" a ├®t├® sp├®cifi├®.
+ Mise à jour de l'horodatage "cmTC_da21c.dir\\Debug\\cmTC_da21c.tlog\\unsuccessfulbuild".
+ ClCompile:
+ C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.44.35207\\bin\\HostX64\\x64\\CL.exe /c /Zi /W1 /WX- /diagnostics:column /Od /Ob0 /D _MBCS /D WIN32 /D _WINDOWS /D _MBCS /D "CMAKE_INTDIR=\\"Debug\\"" /EHsc /RTC1 /MDd /Fo"cmTC_da21c.dir\\Debug\\\\" /Fd"cmTC_da21c.dir\\Debug\\vc143.pdb" /external:W1 /TP /errorReport:queue "C:\\Program Files\\CMake\\share\\cmake-4.3\\Modules\\CMakeCXXCompilerABI.cpp"
+ Compilateur d'optimisation Microsoft (R) C/C++ version 19.44.35217 pour x64
+ Copyright (C) Microsoft Corporation. Tous droits r├®serv├®s.
+ cl /c /Zi /W1 /WX- /diagnostics:column /Od /Ob0 /D _MBCS /D WIN32 /D _WINDOWS /D _MBCS /D "CMAKE_INTDIR=\\"Debug\\"" /EHsc /RTC1 /MDd /Fo"cmTC_da21c.dir\\Debug\\\\" /Fd"cmTC_da21c.dir\\Debug\\vc143.pdb" /external:W1 /TP /errorReport:queue "C:\\Program Files\\CMake\\share\\cmake-4.3\\Modules\\CMakeCXXCompilerABI.cpp"
+ CMakeCXXCompilerABI.cpp
+ Link:
+ C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.44.35207\\bin\\HostX64\\x64\\link.exe /OUT:"C:\\Users\\simulateur\\Documents\\Webcam\\CMakeFiles\\CMakeScratch\\TryCompile-a66fu6\\Debug\\cmTC_da21c.exe" /INCREMENTAL /ILK:"cmTC_da21c.dir\\Debug\\cmTC_da21c.ilk" /NOLOGO kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib /MANIFEST /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /manifest:embed /DEBUG /PDB:"C:/Users/simulateur/Documents/Webcam/CMakeFiles/CMakeScratch/TryCompile-a66fu6/Debug/cmTC_da21c.pdb" /SUBSYSTEM:CONSOLE /TLBID:1 /IMPLIB:"C:/Users/simulateur/Documents/Webcam/CMakeFiles/CMakeScratch/TryCompile-a66fu6/Debug/cmTC_da21c.lib" /MACHINE:X64 /machine:x64 cmTC_da21c.dir\\Debug\\CMakeCXXCompilerABI.obj
+ cmTC_da21c.vcxproj -> C:\\Users\\simulateur\\Documents\\Webcam\\CMakeFiles\\CMakeScratch\\TryCompile-a66fu6\\Debug\\cmTC_da21c.exe
+ FinalizeBuildStatus:
+ Suppression du fichier "cmTC_da21c.dir\\Debug\\cmTC_da21c.tlog\\unsuccessfulbuild".
+ Mise à jour de l'horodatage "cmTC_da21c.dir\\Debug\\cmTC_da21c.tlog\\cmTC_da21c.lastbuildstate".
+ G├®n├®ration du projet "C:\\Users\\simulateur\\Documents\\Webcam\\CMakeFiles\\CMakeScratch\\TryCompile-a66fu6\\cmTC_da21c.vcxproj" termin├®e (cibles par d├®faut).
+
+ La g├®n├®ration a r├®ussi.
+ 0 Avertissement(s)
+ 0 Erreur(s)
+
+ Temps ├®coul├® 00:00:00.35
+
+ exitCode: 0
+ -
+ kind: "message-v1"
+ backtrace:
+ - "C:/Program Files/CMake/share/cmake-4.3/Modules/CMakeDetermineCompilerABI.cmake:253 (message)"
+ - "C:/Program Files/CMake/share/cmake-4.3/Modules/CMakeTestCXXCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)"
+ - "CMakeLists.txt:3 (project)"
+ message: |
+ Parsed CXX implicit link information:
+ link line regex: [^( *|.*[/\\])(ld[0-9]*(|\\.[a-rt-z][a-z]*|\\.s[a-np-z][a-z]*|\\.so[a-z]+)|link\\.exe|lld-link(\\.exe)?|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\\]+-)?ld|collect2)[^/\\]*( |$)]
+ linker tool regex: [^[ ]*(->|"|[0-9]+>[ -]*Build:[ 0-9]+ ms[ ]*)?[ ]*(([^"]*[/\\])?(ld[0-9]*(|\\.[a-rt-z][a-z]*|\\.s[a-np-z][a-z]*|\\.so[a-z]+)|link\\.exe|lld-link(\\.exe)?))("|,| |$)]
+ linker tool for 'CXX': C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.44.35207/bin/HostX64/x64/link.exe
+ implicit libs: []
+ implicit objs: []
+ implicit dirs: []
+ implicit fwks: []
+
+
+ -
+ kind: "message-v1"
+ backtrace:
+ - "C:/Program Files/CMake/share/cmake-4.3/Modules/Internal/CMakeDetermineLinkerId.cmake:38 (message)"
+ - "C:/Program Files/CMake/share/cmake-4.3/Modules/CMakeDetermineCompilerABI.cmake:299 (cmake_determine_linker_id)"
+ - "C:/Program Files/CMake/share/cmake-4.3/Modules/CMakeTestCXXCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)"
+ - "CMakeLists.txt:3 (project)"
+ message: |
+ Running the CXX compiler's linker: "C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.44.35207/bin/HostX64/x64/link.exe" "-v"
+ Microsoft (R) Incremental Linker Version 14.44.35217.0
+ Copyright (C) Microsoft Corporation. All rights reserved.
+...
diff --git a/CMakeFiles/InstallScripts.json b/CMakeFiles/InstallScripts.json
new file mode 100644
index 0000000..09c3c57
--- /dev/null
+++ b/CMakeFiles/InstallScripts.json
@@ -0,0 +1,7 @@
+{
+ "InstallScripts" :
+ [
+ "C:/Users/simulateur/Documents/Webcam/cmake_install.cmake"
+ ],
+ "Parallel" : false
+}
diff --git a/CMakeFiles/TargetDirectories.txt b/CMakeFiles/TargetDirectories.txt
new file mode 100644
index 0000000..38ebf3f
--- /dev/null
+++ b/CMakeFiles/TargetDirectories.txt
@@ -0,0 +1,3 @@
+C:/Users/simulateur/Documents/Webcam/CMakeFiles/webcam.dir
+C:/Users/simulateur/Documents/Webcam/CMakeFiles/ALL_BUILD.dir
+C:/Users/simulateur/Documents/Webcam/CMakeFiles/ZERO_CHECK.dir
diff --git a/CMakeFiles/bb445f843a98b180cd00becef6c6d482/generate.stamp.rule b/CMakeFiles/bb445f843a98b180cd00becef6c6d482/generate.stamp.rule
new file mode 100644
index 0000000..2d3998c
--- /dev/null
+++ b/CMakeFiles/bb445f843a98b180cd00becef6c6d482/generate.stamp.rule
@@ -0,0 +1 @@
+# generated from CMake
diff --git a/CMakeFiles/cmake.check_cache b/CMakeFiles/cmake.check_cache
new file mode 100644
index 0000000..3dccd73
--- /dev/null
+++ b/CMakeFiles/cmake.check_cache
@@ -0,0 +1 @@
+# This file is generated by cmake for dependency checking of the CMakeCache.txt file
diff --git a/CMakeFiles/generate.stamp b/CMakeFiles/generate.stamp
new file mode 100644
index 0000000..9b5f49f
--- /dev/null
+++ b/CMakeFiles/generate.stamp
@@ -0,0 +1 @@
+# CMake generation timestamp file for this directory.
diff --git a/CMakeFiles/generate.stamp.depend b/CMakeFiles/generate.stamp.depend
new file mode 100644
index 0000000..ae85905
--- /dev/null
+++ b/CMakeFiles/generate.stamp.depend
@@ -0,0 +1,27 @@
+# CMake generation dependency list for this directory.
+C:/Program Files/CMake/share/cmake-4.3/Modules/CMakeCXXInformation.cmake
+C:/Program Files/CMake/share/cmake-4.3/Modules/CMakeCommonLanguageInclude.cmake
+C:/Program Files/CMake/share/cmake-4.3/Modules/CMakeGenericSystem.cmake
+C:/Program Files/CMake/share/cmake-4.3/Modules/CMakeInitializeConfigs.cmake
+C:/Program Files/CMake/share/cmake-4.3/Modules/CMakeLanguageInformation.cmake
+C:/Program Files/CMake/share/cmake-4.3/Modules/CMakeRCInformation.cmake
+C:/Program Files/CMake/share/cmake-4.3/Modules/CMakeSystemSpecificInformation.cmake
+C:/Program Files/CMake/share/cmake-4.3/Modules/CMakeSystemSpecificInitialize.cmake
+C:/Program Files/CMake/share/cmake-4.3/Modules/Compiler/CMakeCommonCompilerMacros.cmake
+C:/Program Files/CMake/share/cmake-4.3/Modules/Compiler/MSVC-CXX.cmake
+C:/Program Files/CMake/share/cmake-4.3/Modules/Compiler/MSVC.cmake
+C:/Program Files/CMake/share/cmake-4.3/Modules/Internal/CMakeCXXLinkerInformation.cmake
+C:/Program Files/CMake/share/cmake-4.3/Modules/Internal/CMakeCommonLinkerInformation.cmake
+C:/Program Files/CMake/share/cmake-4.3/Modules/Linker/MSVC-CXX.cmake
+C:/Program Files/CMake/share/cmake-4.3/Modules/Linker/MSVC.cmake
+C:/Program Files/CMake/share/cmake-4.3/Modules/Platform/Linker/Windows-MSVC-CXX.cmake
+C:/Program Files/CMake/share/cmake-4.3/Modules/Platform/Linker/Windows-MSVC.cmake
+C:/Program Files/CMake/share/cmake-4.3/Modules/Platform/Windows-Initialize.cmake
+C:/Program Files/CMake/share/cmake-4.3/Modules/Platform/Windows-MSVC-CXX.cmake
+C:/Program Files/CMake/share/cmake-4.3/Modules/Platform/Windows-MSVC.cmake
+C:/Program Files/CMake/share/cmake-4.3/Modules/Platform/Windows.cmake
+C:/Program Files/CMake/share/cmake-4.3/Modules/Platform/WindowsPaths.cmake
+C:/Users/simulateur/Documents/Webcam/CMakeFiles/4.3.3/CMakeCXXCompiler.cmake
+C:/Users/simulateur/Documents/Webcam/CMakeFiles/4.3.3/CMakeRCCompiler.cmake
+C:/Users/simulateur/Documents/Webcam/CMakeFiles/4.3.3/CMakeSystem.cmake
+C:/Users/simulateur/Documents/Webcam/CMakeLists.txt
diff --git a/CMakeFiles/generate.stamp.list b/CMakeFiles/generate.stamp.list
new file mode 100644
index 0000000..24e645a
--- /dev/null
+++ b/CMakeFiles/generate.stamp.list
@@ -0,0 +1 @@
+C:/Users/simulateur/Documents/Webcam/CMakeFiles/generate.stamp
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 30195f7..e154ddd 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -42,7 +42,7 @@ target_link_libraries(webcam PRIVATE
platform
engine
framework
- opencv_world300
+ opencv_world345
extern
Ws2_32
diff --git a/ZERO_CHECK.vcxproj b/ZERO_CHECK.vcxproj
new file mode 100644
index 0000000..4e573f5
--- /dev/null
+++ b/ZERO_CHECK.vcxproj
@@ -0,0 +1,179 @@
+
+
+
+ x64
+
+
+ false
+
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+ MinSizeRel
+ x64
+
+
+ RelWithDebInfo
+ x64
+
+
+
+ {DFDD874C-C278-3C91-BA8D-C0D52806D143}
+ Win32Proj
+ 10.0.26100.0
+ x64
+ ZERO_CHECK
+ NoUpgrade
+
+
+
+ Utility
+ MultiByte
+ v143
+
+
+ Utility
+ MultiByte
+ v143
+
+
+ Utility
+ MultiByte
+ v143
+
+
+ Utility
+ MultiByte
+ v143
+
+
+
+
+
+
+
+
+
+ <_ProjectFileVersion>10.0.20506.1
+ $(Platform)\$(Configuration)\$(ProjectName)\
+ $(Platform)\$(Configuration)\$(ProjectName)\
+ $(Platform)\$(Configuration)\$(ProjectName)\
+ $(Platform)\$(Configuration)\$(ProjectName)\
+
+
+
+ %(AdditionalIncludeDirectories)
+ $(ProjectDir)/$(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+
+
+ %(AdditionalIncludeDirectories)
+ $(ProjectDir)/$(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+
+
+ %(AdditionalIncludeDirectories)
+ $(ProjectDir)/$(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+
+
+ %(AdditionalIncludeDirectories)
+ $(ProjectDir)/$(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+
+
+ Always
+ true
+ Checking Build System
+ setlocal
+"C:\Program Files\CMake\bin\cmake.exe" -SC:/Users/simulateur/Documents/Webcam -BC:/Users/simulateur/Documents/Webcam --check-stamp-list CMakeFiles/generate.stamp.list --vs-solution-file C:/Users/simulateur/Documents/Webcam/webcam.sln
+if %errorlevel% neq 0 goto :cmEnd
+:cmEnd
+endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
+:cmErrorLevel
+exit /b %1
+:cmDone
+if %errorlevel% neq 0 goto :VCEnd
+ C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeCXXInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeCommonLanguageInclude.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeGenericSystem.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeInitializeConfigs.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeLanguageInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeRCInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeSystemSpecificInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeSystemSpecificInitialize.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Compiler\CMakeCommonCompilerMacros.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Compiler\MSVC-CXX.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Compiler\MSVC.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Internal\CMakeCXXLinkerInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Internal\CMakeCommonLinkerInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Linker\MSVC-CXX.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Linker\MSVC.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Linker\Windows-MSVC-CXX.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Linker\Windows-MSVC.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Windows-Initialize.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Windows-MSVC-CXX.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Windows-MSVC.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Windows.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\WindowsPaths.cmake;C:\Users\simulateur\Documents\Webcam\CMakeFiles\4.3.3\CMakeCXXCompiler.cmake;C:\Users\simulateur\Documents\Webcam\CMakeFiles\4.3.3\CMakeRCCompiler.cmake;C:\Users\simulateur\Documents\Webcam\CMakeFiles\4.3.3\CMakeSystem.cmake;C:\Users\simulateur\Documents\Webcam\CMakeLists.txt;%(AdditionalInputs)
+ C:\Users\simulateur\Documents\Webcam\CMakeFiles\generate.stamp
+ false
+ true
+ Checking Build System
+ setlocal
+"C:\Program Files\CMake\bin\cmake.exe" -SC:/Users/simulateur/Documents/Webcam -BC:/Users/simulateur/Documents/Webcam --check-stamp-list CMakeFiles/generate.stamp.list --vs-solution-file C:/Users/simulateur/Documents/Webcam/webcam.sln
+if %errorlevel% neq 0 goto :cmEnd
+:cmEnd
+endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
+:cmErrorLevel
+exit /b %1
+:cmDone
+if %errorlevel% neq 0 goto :VCEnd
+ C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeCXXInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeCommonLanguageInclude.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeGenericSystem.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeInitializeConfigs.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeLanguageInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeRCInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeSystemSpecificInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeSystemSpecificInitialize.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Compiler\CMakeCommonCompilerMacros.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Compiler\MSVC-CXX.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Compiler\MSVC.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Internal\CMakeCXXLinkerInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Internal\CMakeCommonLinkerInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Linker\MSVC-CXX.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Linker\MSVC.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Linker\Windows-MSVC-CXX.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Linker\Windows-MSVC.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Windows-Initialize.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Windows-MSVC-CXX.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Windows-MSVC.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Windows.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\WindowsPaths.cmake;C:\Users\simulateur\Documents\Webcam\CMakeFiles\4.3.3\CMakeCXXCompiler.cmake;C:\Users\simulateur\Documents\Webcam\CMakeFiles\4.3.3\CMakeRCCompiler.cmake;C:\Users\simulateur\Documents\Webcam\CMakeFiles\4.3.3\CMakeSystem.cmake;C:\Users\simulateur\Documents\Webcam\CMakeLists.txt;%(AdditionalInputs)
+ C:\Users\simulateur\Documents\Webcam\CMakeFiles\generate.stamp
+ false
+ true
+ Checking Build System
+ setlocal
+"C:\Program Files\CMake\bin\cmake.exe" -SC:/Users/simulateur/Documents/Webcam -BC:/Users/simulateur/Documents/Webcam --check-stamp-list CMakeFiles/generate.stamp.list --vs-solution-file C:/Users/simulateur/Documents/Webcam/webcam.sln
+if %errorlevel% neq 0 goto :cmEnd
+:cmEnd
+endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
+:cmErrorLevel
+exit /b %1
+:cmDone
+if %errorlevel% neq 0 goto :VCEnd
+ C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeCXXInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeCommonLanguageInclude.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeGenericSystem.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeInitializeConfigs.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeLanguageInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeRCInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeSystemSpecificInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeSystemSpecificInitialize.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Compiler\CMakeCommonCompilerMacros.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Compiler\MSVC-CXX.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Compiler\MSVC.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Internal\CMakeCXXLinkerInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Internal\CMakeCommonLinkerInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Linker\MSVC-CXX.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Linker\MSVC.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Linker\Windows-MSVC-CXX.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Linker\Windows-MSVC.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Windows-Initialize.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Windows-MSVC-CXX.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Windows-MSVC.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Windows.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\WindowsPaths.cmake;C:\Users\simulateur\Documents\Webcam\CMakeFiles\4.3.3\CMakeCXXCompiler.cmake;C:\Users\simulateur\Documents\Webcam\CMakeFiles\4.3.3\CMakeRCCompiler.cmake;C:\Users\simulateur\Documents\Webcam\CMakeFiles\4.3.3\CMakeSystem.cmake;C:\Users\simulateur\Documents\Webcam\CMakeLists.txt;%(AdditionalInputs)
+ C:\Users\simulateur\Documents\Webcam\CMakeFiles\generate.stamp
+ false
+ true
+ Checking Build System
+ setlocal
+"C:\Program Files\CMake\bin\cmake.exe" -SC:/Users/simulateur/Documents/Webcam -BC:/Users/simulateur/Documents/Webcam --check-stamp-list CMakeFiles/generate.stamp.list --vs-solution-file C:/Users/simulateur/Documents/Webcam/webcam.sln
+if %errorlevel% neq 0 goto :cmEnd
+:cmEnd
+endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
+:cmErrorLevel
+exit /b %1
+:cmDone
+if %errorlevel% neq 0 goto :VCEnd
+ C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeCXXInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeCommonLanguageInclude.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeGenericSystem.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeInitializeConfigs.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeLanguageInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeRCInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeSystemSpecificInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeSystemSpecificInitialize.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Compiler\CMakeCommonCompilerMacros.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Compiler\MSVC-CXX.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Compiler\MSVC.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Internal\CMakeCXXLinkerInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Internal\CMakeCommonLinkerInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Linker\MSVC-CXX.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Linker\MSVC.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Linker\Windows-MSVC-CXX.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Linker\Windows-MSVC.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Windows-Initialize.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Windows-MSVC-CXX.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Windows-MSVC.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Windows.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\WindowsPaths.cmake;C:\Users\simulateur\Documents\Webcam\CMakeFiles\4.3.3\CMakeCXXCompiler.cmake;C:\Users\simulateur\Documents\Webcam\CMakeFiles\4.3.3\CMakeRCCompiler.cmake;C:\Users\simulateur\Documents\Webcam\CMakeFiles\4.3.3\CMakeSystem.cmake;C:\Users\simulateur\Documents\Webcam\CMakeLists.txt;%(AdditionalInputs)
+ C:\Users\simulateur\Documents\Webcam\CMakeFiles\generate.stamp
+ false
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ZERO_CHECK.vcxproj.filters b/ZERO_CHECK.vcxproj.filters
new file mode 100644
index 0000000..d9b35bb
--- /dev/null
+++ b/ZERO_CHECK.vcxproj.filters
@@ -0,0 +1,13 @@
+
+
+
+
+ CMake Rules
+
+
+
+
+ {1E243714-D713-3899-AEEB-5B3AB4CEEF78}
+
+
+
diff --git a/bin/opencv_ffmpeg345_64.dll b/bin/opencv_ffmpeg345_64.dll
new file mode 100644
index 0000000..eb6f024
Binary files /dev/null and b/bin/opencv_ffmpeg345_64.dll differ
diff --git a/bin/opencv_world345.dll b/bin/opencv_world345.dll
new file mode 100644
index 0000000..03d7a22
Binary files /dev/null and b/bin/opencv_world345.dll differ
diff --git a/build/.cmake/api/v1/query/client-vscode/query.json b/build/.cmake/api/v1/query/client-vscode/query.json
new file mode 100644
index 0000000..82bb964
--- /dev/null
+++ b/build/.cmake/api/v1/query/client-vscode/query.json
@@ -0,0 +1 @@
+{"requests":[{"kind":"cache","version":2},{"kind":"codemodel","version":2},{"kind":"toolchains","version":1},{"kind":"cmakeFiles","version":1}]}
\ No newline at end of file
diff --git a/build/.cmake/api/v1/reply/cache-v2-d6b6971d53a1b3011e36.json b/build/.cmake/api/v1/reply/cache-v2-d6b6971d53a1b3011e36.json
new file mode 100644
index 0000000..b9803b5
--- /dev/null
+++ b/build/.cmake/api/v1/reply/cache-v2-d6b6971d53a1b3011e36.json
@@ -0,0 +1,1015 @@
+{
+ "entries" :
+ [
+ {
+ "name" : "CMAKE_AR",
+ "properties" :
+ [
+ {
+ "name" : "ADVANCED",
+ "value" : "1"
+ },
+ {
+ "name" : "HELPSTRING",
+ "value" : "Path to a program."
+ }
+ ],
+ "type" : "FILEPATH",
+ "value" : "C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.44.35207/bin/Hostx64/x64/lib.exe"
+ },
+ {
+ "name" : "CMAKE_BUILD_TYPE",
+ "properties" :
+ [
+ {
+ "name" : "HELPSTRING",
+ "value" : ""
+ }
+ ],
+ "type" : "STRING",
+ "value" : "Release"
+ },
+ {
+ "name" : "CMAKE_CACHEFILE_DIR",
+ "properties" :
+ [
+ {
+ "name" : "HELPSTRING",
+ "value" : "This is the directory where this CMakeCache.txt was created"
+ }
+ ],
+ "type" : "INTERNAL",
+ "value" : "c:/Users/simulateur/Documents/Webcam/build"
+ },
+ {
+ "name" : "CMAKE_CACHE_MAJOR_VERSION",
+ "properties" :
+ [
+ {
+ "name" : "HELPSTRING",
+ "value" : "Major version of cmake used to create the current loaded cache"
+ }
+ ],
+ "type" : "INTERNAL",
+ "value" : "4"
+ },
+ {
+ "name" : "CMAKE_CACHE_MINOR_VERSION",
+ "properties" :
+ [
+ {
+ "name" : "HELPSTRING",
+ "value" : "Minor version of cmake used to create the current loaded cache"
+ }
+ ],
+ "type" : "INTERNAL",
+ "value" : "3"
+ },
+ {
+ "name" : "CMAKE_CACHE_PATCH_VERSION",
+ "properties" :
+ [
+ {
+ "name" : "HELPSTRING",
+ "value" : "Patch version of cmake used to create the current loaded cache"
+ }
+ ],
+ "type" : "INTERNAL",
+ "value" : "3"
+ },
+ {
+ "name" : "CMAKE_COMMAND",
+ "properties" :
+ [
+ {
+ "name" : "HELPSTRING",
+ "value" : "Path to CMake executable."
+ }
+ ],
+ "type" : "INTERNAL",
+ "value" : "C:/Program Files/CMake/bin/cmake.exe"
+ },
+ {
+ "name" : "CMAKE_CONFIGURATION_TYPES",
+ "properties" :
+ [
+ {
+ "name" : "HELPSTRING",
+ "value" : "Semicolon separated list of supported configuration types, only supports Debug, Release, MinSizeRel, and RelWithDebInfo, anything else will be ignored."
+ }
+ ],
+ "type" : "STRING",
+ "value" : "Debug;Release;MinSizeRel;RelWithDebInfo"
+ },
+ {
+ "name" : "CMAKE_CPACK_COMMAND",
+ "properties" :
+ [
+ {
+ "name" : "HELPSTRING",
+ "value" : "Path to cpack program executable."
+ }
+ ],
+ "type" : "INTERNAL",
+ "value" : "C:/Program Files/CMake/bin/cpack.exe"
+ },
+ {
+ "name" : "CMAKE_CTEST_COMMAND",
+ "properties" :
+ [
+ {
+ "name" : "HELPSTRING",
+ "value" : "Path to ctest program executable."
+ }
+ ],
+ "type" : "INTERNAL",
+ "value" : "C:/Program Files/CMake/bin/ctest.exe"
+ },
+ {
+ "name" : "CMAKE_CXX_FLAGS",
+ "properties" :
+ [
+ {
+ "name" : "ADVANCED",
+ "value" : "1"
+ },
+ {
+ "name" : "HELPSTRING",
+ "value" : "Flags used by the CXX compiler during all build types."
+ }
+ ],
+ "type" : "STRING",
+ "value" : "/DWIN32 /D_WINDOWS /EHsc"
+ },
+ {
+ "name" : "CMAKE_CXX_FLAGS_DEBUG",
+ "properties" :
+ [
+ {
+ "name" : "ADVANCED",
+ "value" : "1"
+ },
+ {
+ "name" : "HELPSTRING",
+ "value" : "Flags used by the CXX compiler during DEBUG builds."
+ }
+ ],
+ "type" : "STRING",
+ "value" : "/Zi /Ob0 /Od /RTC1"
+ },
+ {
+ "name" : "CMAKE_CXX_FLAGS_MINSIZEREL",
+ "properties" :
+ [
+ {
+ "name" : "ADVANCED",
+ "value" : "1"
+ },
+ {
+ "name" : "HELPSTRING",
+ "value" : "Flags used by the CXX compiler during MINSIZEREL builds."
+ }
+ ],
+ "type" : "STRING",
+ "value" : "/O1 /Ob1 /DNDEBUG"
+ },
+ {
+ "name" : "CMAKE_CXX_FLAGS_RELEASE",
+ "properties" :
+ [
+ {
+ "name" : "ADVANCED",
+ "value" : "1"
+ },
+ {
+ "name" : "HELPSTRING",
+ "value" : "Flags used by the CXX compiler during RELEASE builds."
+ }
+ ],
+ "type" : "STRING",
+ "value" : "/O2 /Ob2 /DNDEBUG"
+ },
+ {
+ "name" : "CMAKE_CXX_FLAGS_RELWITHDEBINFO",
+ "properties" :
+ [
+ {
+ "name" : "ADVANCED",
+ "value" : "1"
+ },
+ {
+ "name" : "HELPSTRING",
+ "value" : "Flags used by the CXX compiler during RELWITHDEBINFO builds."
+ }
+ ],
+ "type" : "STRING",
+ "value" : "/Zi /O2 /Ob1 /DNDEBUG"
+ },
+ {
+ "name" : "CMAKE_CXX_STANDARD_LIBRARIES",
+ "properties" :
+ [
+ {
+ "name" : "ADVANCED",
+ "value" : "1"
+ },
+ {
+ "name" : "HELPSTRING",
+ "value" : "Libraries linked by default with all C++ applications."
+ }
+ ],
+ "type" : "STRING",
+ "value" : "kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib"
+ },
+ {
+ "name" : "CMAKE_EXECUTABLE_FORMAT",
+ "properties" :
+ [
+ {
+ "name" : "HELPSTRING",
+ "value" : "Executable file format"
+ }
+ ],
+ "type" : "INTERNAL",
+ "value" : "Unknown"
+ },
+ {
+ "name" : "CMAKE_EXE_LINKER_FLAGS",
+ "properties" :
+ [
+ {
+ "name" : "ADVANCED",
+ "value" : "1"
+ },
+ {
+ "name" : "HELPSTRING",
+ "value" : "Flags used by the linker during all build types."
+ }
+ ],
+ "type" : "STRING",
+ "value" : "/machine:x64"
+ },
+ {
+ "name" : "CMAKE_EXE_LINKER_FLAGS_DEBUG",
+ "properties" :
+ [
+ {
+ "name" : "ADVANCED",
+ "value" : "1"
+ },
+ {
+ "name" : "HELPSTRING",
+ "value" : "Flags used by the linker during DEBUG builds."
+ }
+ ],
+ "type" : "STRING",
+ "value" : "/debug /INCREMENTAL"
+ },
+ {
+ "name" : "CMAKE_EXE_LINKER_FLAGS_MINSIZEREL",
+ "properties" :
+ [
+ {
+ "name" : "ADVANCED",
+ "value" : "1"
+ },
+ {
+ "name" : "HELPSTRING",
+ "value" : "Flags used by the linker during MINSIZEREL builds."
+ }
+ ],
+ "type" : "STRING",
+ "value" : "/INCREMENTAL:NO"
+ },
+ {
+ "name" : "CMAKE_EXE_LINKER_FLAGS_RELEASE",
+ "properties" :
+ [
+ {
+ "name" : "ADVANCED",
+ "value" : "1"
+ },
+ {
+ "name" : "HELPSTRING",
+ "value" : "Flags used by the linker during RELEASE builds."
+ }
+ ],
+ "type" : "STRING",
+ "value" : "/INCREMENTAL:NO"
+ },
+ {
+ "name" : "CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO",
+ "properties" :
+ [
+ {
+ "name" : "ADVANCED",
+ "value" : "1"
+ },
+ {
+ "name" : "HELPSTRING",
+ "value" : "Flags used by the linker during RELWITHDEBINFO builds."
+ }
+ ],
+ "type" : "STRING",
+ "value" : "/debug /INCREMENTAL"
+ },
+ {
+ "name" : "CMAKE_EXPORT_COMPILE_COMMANDS",
+ "properties" :
+ [
+ {
+ "name" : "HELPSTRING",
+ "value" : "No help, variable specified on the command line."
+ }
+ ],
+ "type" : "BOOL",
+ "value" : "TRUE"
+ },
+ {
+ "name" : "CMAKE_EXTRA_GENERATOR",
+ "properties" :
+ [
+ {
+ "name" : "HELPSTRING",
+ "value" : "Name of external makefile project generator."
+ }
+ ],
+ "type" : "INTERNAL",
+ "value" : ""
+ },
+ {
+ "name" : "CMAKE_FIND_PACKAGE_REDIRECTS_DIR",
+ "properties" :
+ [
+ {
+ "name" : "HELPSTRING",
+ "value" : "Value Computed by CMake."
+ }
+ ],
+ "type" : "STATIC",
+ "value" : "C:/Users/simulateur/Documents/Webcam/build/CMakeFiles/pkgRedirects"
+ },
+ {
+ "name" : "CMAKE_GENERATOR",
+ "properties" :
+ [
+ {
+ "name" : "HELPSTRING",
+ "value" : "Name of generator."
+ }
+ ],
+ "type" : "INTERNAL",
+ "value" : "Visual Studio 17 2022"
+ },
+ {
+ "name" : "CMAKE_GENERATOR_INSTANCE",
+ "properties" :
+ [
+ {
+ "name" : "HELPSTRING",
+ "value" : "Generator instance identifier."
+ }
+ ],
+ "type" : "INTERNAL",
+ "value" : "C:/Program Files/Microsoft Visual Studio/2022/Community"
+ },
+ {
+ "name" : "CMAKE_GENERATOR_PLATFORM",
+ "properties" :
+ [
+ {
+ "name" : "HELPSTRING",
+ "value" : "Name of generator platform."
+ }
+ ],
+ "type" : "INTERNAL",
+ "value" : "x64"
+ },
+ {
+ "name" : "CMAKE_GENERATOR_TOOLSET",
+ "properties" :
+ [
+ {
+ "name" : "HELPSTRING",
+ "value" : "Name of generator toolset."
+ }
+ ],
+ "type" : "INTERNAL",
+ "value" : ""
+ },
+ {
+ "name" : "CMAKE_HOME_DIRECTORY",
+ "properties" :
+ [
+ {
+ "name" : "HELPSTRING",
+ "value" : "Source directory with the top level CMakeLists.txt file for this project"
+ }
+ ],
+ "type" : "INTERNAL",
+ "value" : "C:/Users/simulateur/Documents/Webcam"
+ },
+ {
+ "name" : "CMAKE_INSTALL_PREFIX",
+ "properties" :
+ [
+ {
+ "name" : "HELPSTRING",
+ "value" : "Install path prefix, prepended onto install directories."
+ }
+ ],
+ "type" : "PATH",
+ "value" : "C:/Program Files/webcam"
+ },
+ {
+ "name" : "CMAKE_LINKER",
+ "properties" :
+ [
+ {
+ "name" : "ADVANCED",
+ "value" : "1"
+ },
+ {
+ "name" : "HELPSTRING",
+ "value" : "Path to a program."
+ }
+ ],
+ "type" : "FILEPATH",
+ "value" : "C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.44.35207/bin/Hostx64/x64/link.exe"
+ },
+ {
+ "name" : "CMAKE_LIST_FILE_NAME",
+ "properties" :
+ [
+ {
+ "name" : "HELPSTRING",
+ "value" : "Name of CMakeLists files to read"
+ }
+ ],
+ "type" : "INTERNAL",
+ "value" : "CMakeLists.txt"
+ },
+ {
+ "name" : "CMAKE_MODULE_LINKER_FLAGS",
+ "properties" :
+ [
+ {
+ "name" : "ADVANCED",
+ "value" : "1"
+ },
+ {
+ "name" : "HELPSTRING",
+ "value" : "Flags used by the linker during the creation of modules during all build types."
+ }
+ ],
+ "type" : "STRING",
+ "value" : "/machine:x64"
+ },
+ {
+ "name" : "CMAKE_MODULE_LINKER_FLAGS_DEBUG",
+ "properties" :
+ [
+ {
+ "name" : "ADVANCED",
+ "value" : "1"
+ },
+ {
+ "name" : "HELPSTRING",
+ "value" : "Flags used by the linker during the creation of modules during DEBUG builds."
+ }
+ ],
+ "type" : "STRING",
+ "value" : "/debug /INCREMENTAL"
+ },
+ {
+ "name" : "CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL",
+ "properties" :
+ [
+ {
+ "name" : "ADVANCED",
+ "value" : "1"
+ },
+ {
+ "name" : "HELPSTRING",
+ "value" : "Flags used by the linker during the creation of modules during MINSIZEREL builds."
+ }
+ ],
+ "type" : "STRING",
+ "value" : "/INCREMENTAL:NO"
+ },
+ {
+ "name" : "CMAKE_MODULE_LINKER_FLAGS_RELEASE",
+ "properties" :
+ [
+ {
+ "name" : "ADVANCED",
+ "value" : "1"
+ },
+ {
+ "name" : "HELPSTRING",
+ "value" : "Flags used by the linker during the creation of modules during RELEASE builds."
+ }
+ ],
+ "type" : "STRING",
+ "value" : "/INCREMENTAL:NO"
+ },
+ {
+ "name" : "CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO",
+ "properties" :
+ [
+ {
+ "name" : "ADVANCED",
+ "value" : "1"
+ },
+ {
+ "name" : "HELPSTRING",
+ "value" : "Flags used by the linker during the creation of modules during RELWITHDEBINFO builds."
+ }
+ ],
+ "type" : "STRING",
+ "value" : "/debug /INCREMENTAL"
+ },
+ {
+ "name" : "CMAKE_MT",
+ "properties" :
+ [
+ {
+ "name" : "ADVANCED",
+ "value" : "1"
+ },
+ {
+ "name" : "HELPSTRING",
+ "value" : "Path to a program."
+ }
+ ],
+ "type" : "FILEPATH",
+ "value" : "CMAKE_MT-NOTFOUND"
+ },
+ {
+ "name" : "CMAKE_NUMBER_OF_MAKEFILES",
+ "properties" :
+ [
+ {
+ "name" : "HELPSTRING",
+ "value" : "number of local generators"
+ }
+ ],
+ "type" : "INTERNAL",
+ "value" : "1"
+ },
+ {
+ "name" : "CMAKE_PLATFORM_INFO_INITIALIZED",
+ "properties" :
+ [
+ {
+ "name" : "HELPSTRING",
+ "value" : "Platform information initialized"
+ }
+ ],
+ "type" : "INTERNAL",
+ "value" : "1"
+ },
+ {
+ "name" : "CMAKE_PROJECT_COMPAT_VERSION",
+ "properties" :
+ [
+ {
+ "name" : "HELPSTRING",
+ "value" : "Value Computed by CMake"
+ }
+ ],
+ "type" : "STATIC",
+ "value" : ""
+ },
+ {
+ "name" : "CMAKE_PROJECT_DESCRIPTION",
+ "properties" :
+ [
+ {
+ "name" : "HELPSTRING",
+ "value" : "Value Computed by CMake"
+ }
+ ],
+ "type" : "STATIC",
+ "value" : ""
+ },
+ {
+ "name" : "CMAKE_PROJECT_HOMEPAGE_URL",
+ "properties" :
+ [
+ {
+ "name" : "HELPSTRING",
+ "value" : "Value Computed by CMake"
+ }
+ ],
+ "type" : "STATIC",
+ "value" : ""
+ },
+ {
+ "name" : "CMAKE_PROJECT_NAME",
+ "properties" :
+ [
+ {
+ "name" : "HELPSTRING",
+ "value" : "Value Computed by CMake"
+ }
+ ],
+ "type" : "STATIC",
+ "value" : "webcam"
+ },
+ {
+ "name" : "CMAKE_PROJECT_SPDX_LICENSE",
+ "properties" :
+ [
+ {
+ "name" : "HELPSTRING",
+ "value" : "Value Computed by CMake"
+ }
+ ],
+ "type" : "STATIC",
+ "value" : ""
+ },
+ {
+ "name" : "CMAKE_RANLIB",
+ "properties" :
+ [
+ {
+ "name" : "HELPSTRING",
+ "value" : "noop for ranlib"
+ }
+ ],
+ "type" : "INTERNAL",
+ "value" : ":"
+ },
+ {
+ "name" : "CMAKE_RC_COMPILER",
+ "properties" :
+ [
+ {
+ "name" : "ADVANCED",
+ "value" : "1"
+ },
+ {
+ "name" : "HELPSTRING",
+ "value" : "RC compiler"
+ }
+ ],
+ "type" : "FILEPATH",
+ "value" : "rc"
+ },
+ {
+ "name" : "CMAKE_RC_COMPILER_WORKS",
+ "properties" :
+ [
+ {
+ "name" : "HELPSTRING",
+ "value" : ""
+ }
+ ],
+ "type" : "INTERNAL",
+ "value" : "1"
+ },
+ {
+ "name" : "CMAKE_RC_FLAGS",
+ "properties" :
+ [
+ {
+ "name" : "ADVANCED",
+ "value" : "1"
+ },
+ {
+ "name" : "HELPSTRING",
+ "value" : "Flags for Windows Resource Compiler during all build types."
+ }
+ ],
+ "type" : "STRING",
+ "value" : "-DWIN32"
+ },
+ {
+ "name" : "CMAKE_RC_FLAGS_DEBUG",
+ "properties" :
+ [
+ {
+ "name" : "ADVANCED",
+ "value" : "1"
+ },
+ {
+ "name" : "HELPSTRING",
+ "value" : "Flags for Windows Resource Compiler during DEBUG builds."
+ }
+ ],
+ "type" : "STRING",
+ "value" : "-D_DEBUG"
+ },
+ {
+ "name" : "CMAKE_RC_FLAGS_MINSIZEREL",
+ "properties" :
+ [
+ {
+ "name" : "ADVANCED",
+ "value" : "1"
+ },
+ {
+ "name" : "HELPSTRING",
+ "value" : "Flags for Windows Resource Compiler during MINSIZEREL builds."
+ }
+ ],
+ "type" : "STRING",
+ "value" : ""
+ },
+ {
+ "name" : "CMAKE_RC_FLAGS_RELEASE",
+ "properties" :
+ [
+ {
+ "name" : "ADVANCED",
+ "value" : "1"
+ },
+ {
+ "name" : "HELPSTRING",
+ "value" : "Flags for Windows Resource Compiler during RELEASE builds."
+ }
+ ],
+ "type" : "STRING",
+ "value" : ""
+ },
+ {
+ "name" : "CMAKE_RC_FLAGS_RELWITHDEBINFO",
+ "properties" :
+ [
+ {
+ "name" : "ADVANCED",
+ "value" : "1"
+ },
+ {
+ "name" : "HELPSTRING",
+ "value" : "Flags for Windows Resource Compiler during RELWITHDEBINFO builds."
+ }
+ ],
+ "type" : "STRING",
+ "value" : ""
+ },
+ {
+ "name" : "CMAKE_ROOT",
+ "properties" :
+ [
+ {
+ "name" : "HELPSTRING",
+ "value" : "Path to CMake installation."
+ }
+ ],
+ "type" : "INTERNAL",
+ "value" : "C:/Program Files/CMake/share/cmake-4.3"
+ },
+ {
+ "name" : "CMAKE_SHARED_LINKER_FLAGS",
+ "properties" :
+ [
+ {
+ "name" : "ADVANCED",
+ "value" : "1"
+ },
+ {
+ "name" : "HELPSTRING",
+ "value" : "Flags used by the linker during the creation of shared libraries during all build types."
+ }
+ ],
+ "type" : "STRING",
+ "value" : "/machine:x64"
+ },
+ {
+ "name" : "CMAKE_SHARED_LINKER_FLAGS_DEBUG",
+ "properties" :
+ [
+ {
+ "name" : "ADVANCED",
+ "value" : "1"
+ },
+ {
+ "name" : "HELPSTRING",
+ "value" : "Flags used by the linker during the creation of shared libraries during DEBUG builds."
+ }
+ ],
+ "type" : "STRING",
+ "value" : "/debug /INCREMENTAL"
+ },
+ {
+ "name" : "CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL",
+ "properties" :
+ [
+ {
+ "name" : "ADVANCED",
+ "value" : "1"
+ },
+ {
+ "name" : "HELPSTRING",
+ "value" : "Flags used by the linker during the creation of shared libraries during MINSIZEREL builds."
+ }
+ ],
+ "type" : "STRING",
+ "value" : "/INCREMENTAL:NO"
+ },
+ {
+ "name" : "CMAKE_SHARED_LINKER_FLAGS_RELEASE",
+ "properties" :
+ [
+ {
+ "name" : "ADVANCED",
+ "value" : "1"
+ },
+ {
+ "name" : "HELPSTRING",
+ "value" : "Flags used by the linker during the creation of shared libraries during RELEASE builds."
+ }
+ ],
+ "type" : "STRING",
+ "value" : "/INCREMENTAL:NO"
+ },
+ {
+ "name" : "CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO",
+ "properties" :
+ [
+ {
+ "name" : "ADVANCED",
+ "value" : "1"
+ },
+ {
+ "name" : "HELPSTRING",
+ "value" : "Flags used by the linker during the creation of shared libraries during RELWITHDEBINFO builds."
+ }
+ ],
+ "type" : "STRING",
+ "value" : "/debug /INCREMENTAL"
+ },
+ {
+ "name" : "CMAKE_SKIP_INSTALL_RPATH",
+ "properties" :
+ [
+ {
+ "name" : "ADVANCED",
+ "value" : "1"
+ },
+ {
+ "name" : "HELPSTRING",
+ "value" : "If set, runtime paths are not added when installing shared libraries, but are added when building."
+ }
+ ],
+ "type" : "BOOL",
+ "value" : "NO"
+ },
+ {
+ "name" : "CMAKE_SKIP_RPATH",
+ "properties" :
+ [
+ {
+ "name" : "ADVANCED",
+ "value" : "1"
+ },
+ {
+ "name" : "HELPSTRING",
+ "value" : "If set, runtime paths are not added when using shared libraries."
+ }
+ ],
+ "type" : "BOOL",
+ "value" : "NO"
+ },
+ {
+ "name" : "CMAKE_STATIC_LINKER_FLAGS",
+ "properties" :
+ [
+ {
+ "name" : "ADVANCED",
+ "value" : "1"
+ },
+ {
+ "name" : "HELPSTRING",
+ "value" : "Flags used by the archiver during the creation of static libraries during all build types."
+ }
+ ],
+ "type" : "STRING",
+ "value" : "/machine:x64"
+ },
+ {
+ "name" : "CMAKE_STATIC_LINKER_FLAGS_DEBUG",
+ "properties" :
+ [
+ {
+ "name" : "ADVANCED",
+ "value" : "1"
+ },
+ {
+ "name" : "HELPSTRING",
+ "value" : "Flags used by the archiver during the creation of static libraries during DEBUG builds."
+ }
+ ],
+ "type" : "STRING",
+ "value" : ""
+ },
+ {
+ "name" : "CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL",
+ "properties" :
+ [
+ {
+ "name" : "ADVANCED",
+ "value" : "1"
+ },
+ {
+ "name" : "HELPSTRING",
+ "value" : "Flags used by the archiver during the creation of static libraries during MINSIZEREL builds."
+ }
+ ],
+ "type" : "STRING",
+ "value" : ""
+ },
+ {
+ "name" : "CMAKE_STATIC_LINKER_FLAGS_RELEASE",
+ "properties" :
+ [
+ {
+ "name" : "ADVANCED",
+ "value" : "1"
+ },
+ {
+ "name" : "HELPSTRING",
+ "value" : "Flags used by the archiver during the creation of static libraries during RELEASE builds."
+ }
+ ],
+ "type" : "STRING",
+ "value" : ""
+ },
+ {
+ "name" : "CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO",
+ "properties" :
+ [
+ {
+ "name" : "ADVANCED",
+ "value" : "1"
+ },
+ {
+ "name" : "HELPSTRING",
+ "value" : "Flags used by the archiver during the creation of static libraries during RELWITHDEBINFO builds."
+ }
+ ],
+ "type" : "STRING",
+ "value" : ""
+ },
+ {
+ "name" : "CMAKE_VERBOSE_MAKEFILE",
+ "properties" :
+ [
+ {
+ "name" : "ADVANCED",
+ "value" : "1"
+ },
+ {
+ "name" : "HELPSTRING",
+ "value" : "If this value is on, makefiles will be generated without the .SILENT directive, and all commands will be echoed to the console during the make. This is useful for debugging only. With Visual Studio IDE projects all commands are done without /nologo."
+ }
+ ],
+ "type" : "BOOL",
+ "value" : "FALSE"
+ },
+ {
+ "name" : "webcam_BINARY_DIR",
+ "properties" :
+ [
+ {
+ "name" : "HELPSTRING",
+ "value" : "Value Computed by CMake"
+ }
+ ],
+ "type" : "STATIC",
+ "value" : "C:/Users/simulateur/Documents/Webcam/build"
+ },
+ {
+ "name" : "webcam_IS_TOP_LEVEL",
+ "properties" :
+ [
+ {
+ "name" : "HELPSTRING",
+ "value" : "Value Computed by CMake"
+ }
+ ],
+ "type" : "STATIC",
+ "value" : "ON"
+ },
+ {
+ "name" : "webcam_SOURCE_DIR",
+ "properties" :
+ [
+ {
+ "name" : "HELPSTRING",
+ "value" : "Value Computed by CMake"
+ }
+ ],
+ "type" : "STATIC",
+ "value" : "C:/Users/simulateur/Documents/Webcam"
+ }
+ ],
+ "kind" : "cache",
+ "version" :
+ {
+ "major" : 2,
+ "minor" : 0
+ }
+}
diff --git a/build/.cmake/api/v1/reply/cmakeFiles-v1-e1362872fa9c97fa1f84.json b/build/.cmake/api/v1/reply/cmakeFiles-v1-e1362872fa9c97fa1f84.json
new file mode 100644
index 0000000..a50bb69
--- /dev/null
+++ b/build/.cmake/api/v1/reply/cmakeFiles-v1-e1362872fa9c97fa1f84.json
@@ -0,0 +1,141 @@
+{
+ "inputs" :
+ [
+ {
+ "path" : "CMakeLists.txt"
+ },
+ {
+ "isGenerated" : true,
+ "path" : "build/CMakeFiles/4.3.3/CMakeSystem.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "C:/Program Files/CMake/share/cmake-4.3/Modules/CMakeSystemSpecificInitialize.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "C:/Program Files/CMake/share/cmake-4.3/Modules/Platform/Windows-Initialize.cmake"
+ },
+ {
+ "isGenerated" : true,
+ "path" : "build/CMakeFiles/4.3.3/CMakeCXXCompiler.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "C:/Program Files/CMake/share/cmake-4.3/Modules/CMakeSystemSpecificInformation.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "C:/Program Files/CMake/share/cmake-4.3/Modules/CMakeGenericSystem.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "C:/Program Files/CMake/share/cmake-4.3/Modules/CMakeInitializeConfigs.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "C:/Program Files/CMake/share/cmake-4.3/Modules/Platform/Windows.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "C:/Program Files/CMake/share/cmake-4.3/Modules/Platform/WindowsPaths.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "C:/Program Files/CMake/share/cmake-4.3/Modules/CMakeCXXInformation.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "C:/Program Files/CMake/share/cmake-4.3/Modules/CMakeLanguageInformation.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "C:/Program Files/CMake/share/cmake-4.3/Modules/Compiler/MSVC-CXX.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "C:/Program Files/CMake/share/cmake-4.3/Modules/Compiler/MSVC.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "C:/Program Files/CMake/share/cmake-4.3/Modules/Compiler/CMakeCommonCompilerMacros.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "C:/Program Files/CMake/share/cmake-4.3/Modules/Platform/Windows-MSVC-CXX.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "C:/Program Files/CMake/share/cmake-4.3/Modules/Platform/Windows-MSVC.cmake"
+ },
+ {
+ "isGenerated" : true,
+ "path" : "build/CMakeFiles/4.3.3/CMakeRCCompiler.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "C:/Program Files/CMake/share/cmake-4.3/Modules/CMakeRCInformation.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "C:/Program Files/CMake/share/cmake-4.3/Modules/CMakeCommonLanguageInclude.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "C:/Program Files/CMake/share/cmake-4.3/Modules/Internal/CMakeCXXLinkerInformation.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "C:/Program Files/CMake/share/cmake-4.3/Modules/Internal/CMakeCommonLinkerInformation.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "C:/Program Files/CMake/share/cmake-4.3/Modules/Linker/MSVC-CXX.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "C:/Program Files/CMake/share/cmake-4.3/Modules/Linker/MSVC.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "C:/Program Files/CMake/share/cmake-4.3/Modules/Platform/Linker/Windows-MSVC-CXX.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "C:/Program Files/CMake/share/cmake-4.3/Modules/Platform/Linker/Windows-MSVC.cmake"
+ }
+ ],
+ "kind" : "cmakeFiles",
+ "paths" :
+ {
+ "build" : "C:/Users/simulateur/Documents/Webcam/build",
+ "source" : "C:/Users/simulateur/Documents/Webcam"
+ },
+ "version" :
+ {
+ "major" : 1,
+ "minor" : 1
+ }
+}
diff --git a/build/.cmake/api/v1/reply/codemodel-v2-e784b498494ac02db259.json b/build/.cmake/api/v1/reply/codemodel-v2-e784b498494ac02db259.json
new file mode 100644
index 0000000..e9732ea
--- /dev/null
+++ b/build/.cmake/api/v1/reply/codemodel-v2-e784b498494ac02db259.json
@@ -0,0 +1,268 @@
+{
+ "configurations" :
+ [
+ {
+ "abstractTargets" : [],
+ "directories" :
+ [
+ {
+ "build" : ".",
+ "jsonFile" : "directory-.-Debug-f040eec181a89de70dbe.json",
+ "minimumCMakeVersion" :
+ {
+ "string" : "3.20"
+ },
+ "projectIndex" : 0,
+ "source" : ".",
+ "targetIndexes" :
+ [
+ 0,
+ 1,
+ 2
+ ]
+ }
+ ],
+ "name" : "Debug",
+ "projects" :
+ [
+ {
+ "directoryIndexes" :
+ [
+ 0
+ ],
+ "name" : "webcam",
+ "targetIndexes" :
+ [
+ 0,
+ 1,
+ 2
+ ]
+ }
+ ],
+ "targets" :
+ [
+ {
+ "directoryIndex" : 0,
+ "id" : "ALL_BUILD::@6890427a1f51a3e7e1df",
+ "jsonFile" : "target-ALL_BUILD-Debug-622c5e84ed4cb272a5cd.json",
+ "name" : "ALL_BUILD",
+ "projectIndex" : 0
+ },
+ {
+ "directoryIndex" : 0,
+ "id" : "ZERO_CHECK::@6890427a1f51a3e7e1df",
+ "jsonFile" : "target-ZERO_CHECK-Debug-23b40902ed7058435516.json",
+ "name" : "ZERO_CHECK",
+ "projectIndex" : 0
+ },
+ {
+ "directoryIndex" : 0,
+ "id" : "webcam::@6890427a1f51a3e7e1df",
+ "jsonFile" : "target-webcam-Debug-ee0f8ca76c9e6ae676b0.json",
+ "name" : "webcam",
+ "projectIndex" : 0
+ }
+ ]
+ },
+ {
+ "abstractTargets" : [],
+ "directories" :
+ [
+ {
+ "build" : ".",
+ "jsonFile" : "directory-.-Release-f040eec181a89de70dbe.json",
+ "minimumCMakeVersion" :
+ {
+ "string" : "3.20"
+ },
+ "projectIndex" : 0,
+ "source" : ".",
+ "targetIndexes" :
+ [
+ 0,
+ 1,
+ 2
+ ]
+ }
+ ],
+ "name" : "Release",
+ "projects" :
+ [
+ {
+ "directoryIndexes" :
+ [
+ 0
+ ],
+ "name" : "webcam",
+ "targetIndexes" :
+ [
+ 0,
+ 1,
+ 2
+ ]
+ }
+ ],
+ "targets" :
+ [
+ {
+ "directoryIndex" : 0,
+ "id" : "ALL_BUILD::@6890427a1f51a3e7e1df",
+ "jsonFile" : "target-ALL_BUILD-Release-622c5e84ed4cb272a5cd.json",
+ "name" : "ALL_BUILD",
+ "projectIndex" : 0
+ },
+ {
+ "directoryIndex" : 0,
+ "id" : "ZERO_CHECK::@6890427a1f51a3e7e1df",
+ "jsonFile" : "target-ZERO_CHECK-Release-23b40902ed7058435516.json",
+ "name" : "ZERO_CHECK",
+ "projectIndex" : 0
+ },
+ {
+ "directoryIndex" : 0,
+ "id" : "webcam::@6890427a1f51a3e7e1df",
+ "jsonFile" : "target-webcam-Release-dac8440689954eb0bb1b.json",
+ "name" : "webcam",
+ "projectIndex" : 0
+ }
+ ]
+ },
+ {
+ "abstractTargets" : [],
+ "directories" :
+ [
+ {
+ "build" : ".",
+ "jsonFile" : "directory-.-MinSizeRel-f040eec181a89de70dbe.json",
+ "minimumCMakeVersion" :
+ {
+ "string" : "3.20"
+ },
+ "projectIndex" : 0,
+ "source" : ".",
+ "targetIndexes" :
+ [
+ 0,
+ 1,
+ 2
+ ]
+ }
+ ],
+ "name" : "MinSizeRel",
+ "projects" :
+ [
+ {
+ "directoryIndexes" :
+ [
+ 0
+ ],
+ "name" : "webcam",
+ "targetIndexes" :
+ [
+ 0,
+ 1,
+ 2
+ ]
+ }
+ ],
+ "targets" :
+ [
+ {
+ "directoryIndex" : 0,
+ "id" : "ALL_BUILD::@6890427a1f51a3e7e1df",
+ "jsonFile" : "target-ALL_BUILD-MinSizeRel-622c5e84ed4cb272a5cd.json",
+ "name" : "ALL_BUILD",
+ "projectIndex" : 0
+ },
+ {
+ "directoryIndex" : 0,
+ "id" : "ZERO_CHECK::@6890427a1f51a3e7e1df",
+ "jsonFile" : "target-ZERO_CHECK-MinSizeRel-23b40902ed7058435516.json",
+ "name" : "ZERO_CHECK",
+ "projectIndex" : 0
+ },
+ {
+ "directoryIndex" : 0,
+ "id" : "webcam::@6890427a1f51a3e7e1df",
+ "jsonFile" : "target-webcam-MinSizeRel-84c1c7ad096a05a7eb03.json",
+ "name" : "webcam",
+ "projectIndex" : 0
+ }
+ ]
+ },
+ {
+ "abstractTargets" : [],
+ "directories" :
+ [
+ {
+ "build" : ".",
+ "jsonFile" : "directory-.-RelWithDebInfo-f040eec181a89de70dbe.json",
+ "minimumCMakeVersion" :
+ {
+ "string" : "3.20"
+ },
+ "projectIndex" : 0,
+ "source" : ".",
+ "targetIndexes" :
+ [
+ 0,
+ 1,
+ 2
+ ]
+ }
+ ],
+ "name" : "RelWithDebInfo",
+ "projects" :
+ [
+ {
+ "directoryIndexes" :
+ [
+ 0
+ ],
+ "name" : "webcam",
+ "targetIndexes" :
+ [
+ 0,
+ 1,
+ 2
+ ]
+ }
+ ],
+ "targets" :
+ [
+ {
+ "directoryIndex" : 0,
+ "id" : "ALL_BUILD::@6890427a1f51a3e7e1df",
+ "jsonFile" : "target-ALL_BUILD-RelWithDebInfo-622c5e84ed4cb272a5cd.json",
+ "name" : "ALL_BUILD",
+ "projectIndex" : 0
+ },
+ {
+ "directoryIndex" : 0,
+ "id" : "ZERO_CHECK::@6890427a1f51a3e7e1df",
+ "jsonFile" : "target-ZERO_CHECK-RelWithDebInfo-23b40902ed7058435516.json",
+ "name" : "ZERO_CHECK",
+ "projectIndex" : 0
+ },
+ {
+ "directoryIndex" : 0,
+ "id" : "webcam::@6890427a1f51a3e7e1df",
+ "jsonFile" : "target-webcam-RelWithDebInfo-54d7b671d93d545ba277.json",
+ "name" : "webcam",
+ "projectIndex" : 0
+ }
+ ]
+ }
+ ],
+ "kind" : "codemodel",
+ "paths" :
+ {
+ "build" : "C:/Users/simulateur/Documents/Webcam/build",
+ "source" : "C:/Users/simulateur/Documents/Webcam"
+ },
+ "version" :
+ {
+ "major" : 2,
+ "minor" : 10
+ }
+}
diff --git a/build/.cmake/api/v1/reply/directory-.-Debug-f040eec181a89de70dbe.json b/build/.cmake/api/v1/reply/directory-.-Debug-f040eec181a89de70dbe.json
new file mode 100644
index 0000000..bdea32f
--- /dev/null
+++ b/build/.cmake/api/v1/reply/directory-.-Debug-f040eec181a89de70dbe.json
@@ -0,0 +1,19 @@
+{
+ "backtraceGraph" :
+ {
+ "commands" : [],
+ "files" : [],
+ "nodes" : []
+ },
+ "codemodelVersion" :
+ {
+ "major" : 2,
+ "minor" : 10
+ },
+ "installers" : [],
+ "paths" :
+ {
+ "build" : ".",
+ "source" : "."
+ }
+}
diff --git a/build/.cmake/api/v1/reply/directory-.-MinSizeRel-f040eec181a89de70dbe.json b/build/.cmake/api/v1/reply/directory-.-MinSizeRel-f040eec181a89de70dbe.json
new file mode 100644
index 0000000..bdea32f
--- /dev/null
+++ b/build/.cmake/api/v1/reply/directory-.-MinSizeRel-f040eec181a89de70dbe.json
@@ -0,0 +1,19 @@
+{
+ "backtraceGraph" :
+ {
+ "commands" : [],
+ "files" : [],
+ "nodes" : []
+ },
+ "codemodelVersion" :
+ {
+ "major" : 2,
+ "minor" : 10
+ },
+ "installers" : [],
+ "paths" :
+ {
+ "build" : ".",
+ "source" : "."
+ }
+}
diff --git a/build/.cmake/api/v1/reply/directory-.-RelWithDebInfo-f040eec181a89de70dbe.json b/build/.cmake/api/v1/reply/directory-.-RelWithDebInfo-f040eec181a89de70dbe.json
new file mode 100644
index 0000000..bdea32f
--- /dev/null
+++ b/build/.cmake/api/v1/reply/directory-.-RelWithDebInfo-f040eec181a89de70dbe.json
@@ -0,0 +1,19 @@
+{
+ "backtraceGraph" :
+ {
+ "commands" : [],
+ "files" : [],
+ "nodes" : []
+ },
+ "codemodelVersion" :
+ {
+ "major" : 2,
+ "minor" : 10
+ },
+ "installers" : [],
+ "paths" :
+ {
+ "build" : ".",
+ "source" : "."
+ }
+}
diff --git a/build/.cmake/api/v1/reply/directory-.-Release-f040eec181a89de70dbe.json b/build/.cmake/api/v1/reply/directory-.-Release-f040eec181a89de70dbe.json
new file mode 100644
index 0000000..bdea32f
--- /dev/null
+++ b/build/.cmake/api/v1/reply/directory-.-Release-f040eec181a89de70dbe.json
@@ -0,0 +1,19 @@
+{
+ "backtraceGraph" :
+ {
+ "commands" : [],
+ "files" : [],
+ "nodes" : []
+ },
+ "codemodelVersion" :
+ {
+ "major" : 2,
+ "minor" : 10
+ },
+ "installers" : [],
+ "paths" :
+ {
+ "build" : ".",
+ "source" : "."
+ }
+}
diff --git a/build/.cmake/api/v1/reply/index-2026-07-13T14-13-34-0501.json b/build/.cmake/api/v1/reply/index-2026-07-13T14-13-34-0501.json
new file mode 100644
index 0000000..20eb345
--- /dev/null
+++ b/build/.cmake/api/v1/reply/index-2026-07-13T14-13-34-0501.json
@@ -0,0 +1,133 @@
+{
+ "cmake" :
+ {
+ "generator" :
+ {
+ "multiConfig" : true,
+ "name" : "Visual Studio 17 2022",
+ "platform" : "x64"
+ },
+ "paths" :
+ {
+ "cmake" : "C:/Program Files/CMake/bin/cmake.exe",
+ "cpack" : "C:/Program Files/CMake/bin/cpack.exe",
+ "ctest" : "C:/Program Files/CMake/bin/ctest.exe",
+ "root" : "C:/Program Files/CMake/share/cmake-4.3"
+ },
+ "version" :
+ {
+ "isDirty" : false,
+ "major" : 4,
+ "minor" : 3,
+ "patch" : 3,
+ "string" : "4.3.3",
+ "suffix" : ""
+ }
+ },
+ "objects" :
+ [
+ {
+ "jsonFile" : "codemodel-v2-e784b498494ac02db259.json",
+ "kind" : "codemodel",
+ "version" :
+ {
+ "major" : 2,
+ "minor" : 10
+ }
+ },
+ {
+ "jsonFile" : "cache-v2-d6b6971d53a1b3011e36.json",
+ "kind" : "cache",
+ "version" :
+ {
+ "major" : 2,
+ "minor" : 0
+ }
+ },
+ {
+ "jsonFile" : "cmakeFiles-v1-e1362872fa9c97fa1f84.json",
+ "kind" : "cmakeFiles",
+ "version" :
+ {
+ "major" : 1,
+ "minor" : 1
+ }
+ },
+ {
+ "jsonFile" : "toolchains-v1-57a760d05d0002952fab.json",
+ "kind" : "toolchains",
+ "version" :
+ {
+ "major" : 1,
+ "minor" : 1
+ }
+ }
+ ],
+ "reply" :
+ {
+ "client-vscode" :
+ {
+ "query.json" :
+ {
+ "requests" :
+ [
+ {
+ "kind" : "cache",
+ "version" : 2
+ },
+ {
+ "kind" : "codemodel",
+ "version" : 2
+ },
+ {
+ "kind" : "toolchains",
+ "version" : 1
+ },
+ {
+ "kind" : "cmakeFiles",
+ "version" : 1
+ }
+ ],
+ "responses" :
+ [
+ {
+ "jsonFile" : "cache-v2-d6b6971d53a1b3011e36.json",
+ "kind" : "cache",
+ "version" :
+ {
+ "major" : 2,
+ "minor" : 0
+ }
+ },
+ {
+ "jsonFile" : "codemodel-v2-e784b498494ac02db259.json",
+ "kind" : "codemodel",
+ "version" :
+ {
+ "major" : 2,
+ "minor" : 10
+ }
+ },
+ {
+ "jsonFile" : "toolchains-v1-57a760d05d0002952fab.json",
+ "kind" : "toolchains",
+ "version" :
+ {
+ "major" : 1,
+ "minor" : 1
+ }
+ },
+ {
+ "jsonFile" : "cmakeFiles-v1-e1362872fa9c97fa1f84.json",
+ "kind" : "cmakeFiles",
+ "version" :
+ {
+ "major" : 1,
+ "minor" : 1
+ }
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/build/.cmake/api/v1/reply/target-ALL_BUILD-Debug-622c5e84ed4cb272a5cd.json b/build/.cmake/api/v1/reply/target-ALL_BUILD-Debug-622c5e84ed4cb272a5cd.json
new file mode 100644
index 0000000..2e4a69e
--- /dev/null
+++ b/build/.cmake/api/v1/reply/target-ALL_BUILD-Debug-622c5e84ed4cb272a5cd.json
@@ -0,0 +1,47 @@
+{
+ "backtrace" : 0,
+ "backtraceGraph" :
+ {
+ "commands" : [],
+ "files" :
+ [
+ "CMakeLists.txt"
+ ],
+ "nodes" :
+ [
+ {
+ "file" : 0
+ }
+ ]
+ },
+ "codemodelVersion" :
+ {
+ "major" : 2,
+ "minor" : 10
+ },
+ "dependencies" :
+ [
+ {
+ "id" : "webcam::@6890427a1f51a3e7e1df"
+ },
+ {
+ "id" : "ZERO_CHECK::@6890427a1f51a3e7e1df"
+ }
+ ],
+ "id" : "ALL_BUILD::@6890427a1f51a3e7e1df",
+ "isGeneratorProvided" : true,
+ "name" : "ALL_BUILD",
+ "orderDependencies" :
+ [
+ {
+ "id" : "webcam::@6890427a1f51a3e7e1df"
+ }
+ ],
+ "paths" :
+ {
+ "build" : ".",
+ "source" : "."
+ },
+ "sources" : [],
+ "type" : "UTILITY"
+}
diff --git a/build/.cmake/api/v1/reply/target-ALL_BUILD-MinSizeRel-622c5e84ed4cb272a5cd.json b/build/.cmake/api/v1/reply/target-ALL_BUILD-MinSizeRel-622c5e84ed4cb272a5cd.json
new file mode 100644
index 0000000..2e4a69e
--- /dev/null
+++ b/build/.cmake/api/v1/reply/target-ALL_BUILD-MinSizeRel-622c5e84ed4cb272a5cd.json
@@ -0,0 +1,47 @@
+{
+ "backtrace" : 0,
+ "backtraceGraph" :
+ {
+ "commands" : [],
+ "files" :
+ [
+ "CMakeLists.txt"
+ ],
+ "nodes" :
+ [
+ {
+ "file" : 0
+ }
+ ]
+ },
+ "codemodelVersion" :
+ {
+ "major" : 2,
+ "minor" : 10
+ },
+ "dependencies" :
+ [
+ {
+ "id" : "webcam::@6890427a1f51a3e7e1df"
+ },
+ {
+ "id" : "ZERO_CHECK::@6890427a1f51a3e7e1df"
+ }
+ ],
+ "id" : "ALL_BUILD::@6890427a1f51a3e7e1df",
+ "isGeneratorProvided" : true,
+ "name" : "ALL_BUILD",
+ "orderDependencies" :
+ [
+ {
+ "id" : "webcam::@6890427a1f51a3e7e1df"
+ }
+ ],
+ "paths" :
+ {
+ "build" : ".",
+ "source" : "."
+ },
+ "sources" : [],
+ "type" : "UTILITY"
+}
diff --git a/build/.cmake/api/v1/reply/target-ALL_BUILD-RelWithDebInfo-622c5e84ed4cb272a5cd.json b/build/.cmake/api/v1/reply/target-ALL_BUILD-RelWithDebInfo-622c5e84ed4cb272a5cd.json
new file mode 100644
index 0000000..2e4a69e
--- /dev/null
+++ b/build/.cmake/api/v1/reply/target-ALL_BUILD-RelWithDebInfo-622c5e84ed4cb272a5cd.json
@@ -0,0 +1,47 @@
+{
+ "backtrace" : 0,
+ "backtraceGraph" :
+ {
+ "commands" : [],
+ "files" :
+ [
+ "CMakeLists.txt"
+ ],
+ "nodes" :
+ [
+ {
+ "file" : 0
+ }
+ ]
+ },
+ "codemodelVersion" :
+ {
+ "major" : 2,
+ "minor" : 10
+ },
+ "dependencies" :
+ [
+ {
+ "id" : "webcam::@6890427a1f51a3e7e1df"
+ },
+ {
+ "id" : "ZERO_CHECK::@6890427a1f51a3e7e1df"
+ }
+ ],
+ "id" : "ALL_BUILD::@6890427a1f51a3e7e1df",
+ "isGeneratorProvided" : true,
+ "name" : "ALL_BUILD",
+ "orderDependencies" :
+ [
+ {
+ "id" : "webcam::@6890427a1f51a3e7e1df"
+ }
+ ],
+ "paths" :
+ {
+ "build" : ".",
+ "source" : "."
+ },
+ "sources" : [],
+ "type" : "UTILITY"
+}
diff --git a/build/.cmake/api/v1/reply/target-ALL_BUILD-Release-622c5e84ed4cb272a5cd.json b/build/.cmake/api/v1/reply/target-ALL_BUILD-Release-622c5e84ed4cb272a5cd.json
new file mode 100644
index 0000000..2e4a69e
--- /dev/null
+++ b/build/.cmake/api/v1/reply/target-ALL_BUILD-Release-622c5e84ed4cb272a5cd.json
@@ -0,0 +1,47 @@
+{
+ "backtrace" : 0,
+ "backtraceGraph" :
+ {
+ "commands" : [],
+ "files" :
+ [
+ "CMakeLists.txt"
+ ],
+ "nodes" :
+ [
+ {
+ "file" : 0
+ }
+ ]
+ },
+ "codemodelVersion" :
+ {
+ "major" : 2,
+ "minor" : 10
+ },
+ "dependencies" :
+ [
+ {
+ "id" : "webcam::@6890427a1f51a3e7e1df"
+ },
+ {
+ "id" : "ZERO_CHECK::@6890427a1f51a3e7e1df"
+ }
+ ],
+ "id" : "ALL_BUILD::@6890427a1f51a3e7e1df",
+ "isGeneratorProvided" : true,
+ "name" : "ALL_BUILD",
+ "orderDependencies" :
+ [
+ {
+ "id" : "webcam::@6890427a1f51a3e7e1df"
+ }
+ ],
+ "paths" :
+ {
+ "build" : ".",
+ "source" : "."
+ },
+ "sources" : [],
+ "type" : "UTILITY"
+}
diff --git a/build/.cmake/api/v1/reply/target-ZERO_CHECK-Debug-23b40902ed7058435516.json b/build/.cmake/api/v1/reply/target-ZERO_CHECK-Debug-23b40902ed7058435516.json
new file mode 100644
index 0000000..4ca02ff
--- /dev/null
+++ b/build/.cmake/api/v1/reply/target-ZERO_CHECK-Debug-23b40902ed7058435516.json
@@ -0,0 +1,50 @@
+{
+ "backtrace" : 0,
+ "backtraceGraph" :
+ {
+ "commands" : [],
+ "files" :
+ [
+ "CMakeLists.txt"
+ ],
+ "nodes" :
+ [
+ {
+ "file" : 0
+ }
+ ]
+ },
+ "codemodelVersion" :
+ {
+ "major" : 2,
+ "minor" : 10
+ },
+ "id" : "ZERO_CHECK::@6890427a1f51a3e7e1df",
+ "isGeneratorProvided" : true,
+ "name" : "ZERO_CHECK",
+ "paths" :
+ {
+ "build" : ".",
+ "source" : "."
+ },
+ "sourceGroups" :
+ [
+ {
+ "name" : "CMake Rules",
+ "sourceIndexes" :
+ [
+ 0
+ ]
+ }
+ ],
+ "sources" :
+ [
+ {
+ "backtrace" : 0,
+ "isGenerated" : true,
+ "path" : "build/CMakeFiles/10582e4a3a4a0a14bb1a240ec1bb030d/generate.stamp.rule",
+ "sourceGroupIndex" : 0
+ }
+ ],
+ "type" : "UTILITY"
+}
diff --git a/build/.cmake/api/v1/reply/target-ZERO_CHECK-MinSizeRel-23b40902ed7058435516.json b/build/.cmake/api/v1/reply/target-ZERO_CHECK-MinSizeRel-23b40902ed7058435516.json
new file mode 100644
index 0000000..4ca02ff
--- /dev/null
+++ b/build/.cmake/api/v1/reply/target-ZERO_CHECK-MinSizeRel-23b40902ed7058435516.json
@@ -0,0 +1,50 @@
+{
+ "backtrace" : 0,
+ "backtraceGraph" :
+ {
+ "commands" : [],
+ "files" :
+ [
+ "CMakeLists.txt"
+ ],
+ "nodes" :
+ [
+ {
+ "file" : 0
+ }
+ ]
+ },
+ "codemodelVersion" :
+ {
+ "major" : 2,
+ "minor" : 10
+ },
+ "id" : "ZERO_CHECK::@6890427a1f51a3e7e1df",
+ "isGeneratorProvided" : true,
+ "name" : "ZERO_CHECK",
+ "paths" :
+ {
+ "build" : ".",
+ "source" : "."
+ },
+ "sourceGroups" :
+ [
+ {
+ "name" : "CMake Rules",
+ "sourceIndexes" :
+ [
+ 0
+ ]
+ }
+ ],
+ "sources" :
+ [
+ {
+ "backtrace" : 0,
+ "isGenerated" : true,
+ "path" : "build/CMakeFiles/10582e4a3a4a0a14bb1a240ec1bb030d/generate.stamp.rule",
+ "sourceGroupIndex" : 0
+ }
+ ],
+ "type" : "UTILITY"
+}
diff --git a/build/.cmake/api/v1/reply/target-ZERO_CHECK-RelWithDebInfo-23b40902ed7058435516.json b/build/.cmake/api/v1/reply/target-ZERO_CHECK-RelWithDebInfo-23b40902ed7058435516.json
new file mode 100644
index 0000000..4ca02ff
--- /dev/null
+++ b/build/.cmake/api/v1/reply/target-ZERO_CHECK-RelWithDebInfo-23b40902ed7058435516.json
@@ -0,0 +1,50 @@
+{
+ "backtrace" : 0,
+ "backtraceGraph" :
+ {
+ "commands" : [],
+ "files" :
+ [
+ "CMakeLists.txt"
+ ],
+ "nodes" :
+ [
+ {
+ "file" : 0
+ }
+ ]
+ },
+ "codemodelVersion" :
+ {
+ "major" : 2,
+ "minor" : 10
+ },
+ "id" : "ZERO_CHECK::@6890427a1f51a3e7e1df",
+ "isGeneratorProvided" : true,
+ "name" : "ZERO_CHECK",
+ "paths" :
+ {
+ "build" : ".",
+ "source" : "."
+ },
+ "sourceGroups" :
+ [
+ {
+ "name" : "CMake Rules",
+ "sourceIndexes" :
+ [
+ 0
+ ]
+ }
+ ],
+ "sources" :
+ [
+ {
+ "backtrace" : 0,
+ "isGenerated" : true,
+ "path" : "build/CMakeFiles/10582e4a3a4a0a14bb1a240ec1bb030d/generate.stamp.rule",
+ "sourceGroupIndex" : 0
+ }
+ ],
+ "type" : "UTILITY"
+}
diff --git a/build/.cmake/api/v1/reply/target-ZERO_CHECK-Release-23b40902ed7058435516.json b/build/.cmake/api/v1/reply/target-ZERO_CHECK-Release-23b40902ed7058435516.json
new file mode 100644
index 0000000..4ca02ff
--- /dev/null
+++ b/build/.cmake/api/v1/reply/target-ZERO_CHECK-Release-23b40902ed7058435516.json
@@ -0,0 +1,50 @@
+{
+ "backtrace" : 0,
+ "backtraceGraph" :
+ {
+ "commands" : [],
+ "files" :
+ [
+ "CMakeLists.txt"
+ ],
+ "nodes" :
+ [
+ {
+ "file" : 0
+ }
+ ]
+ },
+ "codemodelVersion" :
+ {
+ "major" : 2,
+ "minor" : 10
+ },
+ "id" : "ZERO_CHECK::@6890427a1f51a3e7e1df",
+ "isGeneratorProvided" : true,
+ "name" : "ZERO_CHECK",
+ "paths" :
+ {
+ "build" : ".",
+ "source" : "."
+ },
+ "sourceGroups" :
+ [
+ {
+ "name" : "CMake Rules",
+ "sourceIndexes" :
+ [
+ 0
+ ]
+ }
+ ],
+ "sources" :
+ [
+ {
+ "backtrace" : 0,
+ "isGenerated" : true,
+ "path" : "build/CMakeFiles/10582e4a3a4a0a14bb1a240ec1bb030d/generate.stamp.rule",
+ "sourceGroupIndex" : 0
+ }
+ ],
+ "type" : "UTILITY"
+}
diff --git a/build/.cmake/api/v1/reply/target-webcam-Debug-ee0f8ca76c9e6ae676b0.json b/build/.cmake/api/v1/reply/target-webcam-Debug-ee0f8ca76c9e6ae676b0.json
new file mode 100644
index 0000000..3bec400
--- /dev/null
+++ b/build/.cmake/api/v1/reply/target-webcam-Debug-ee0f8ca76c9e6ae676b0.json
@@ -0,0 +1,325 @@
+{
+ "artifacts" :
+ [
+ {
+ "path" : "Debug/webcam_binding.dll"
+ },
+ {
+ "path" : "Debug/webcam_binding.lib"
+ },
+ {
+ "path" : "Debug/webcam_binding.pdb"
+ }
+ ],
+ "backtrace" : 1,
+ "backtraceGraph" :
+ {
+ "commands" :
+ [
+ "add_library",
+ "target_link_directories",
+ "target_link_libraries",
+ "target_compile_definitions",
+ "target_include_directories"
+ ],
+ "files" :
+ [
+ "CMakeLists.txt"
+ ],
+ "nodes" :
+ [
+ {
+ "file" : 0
+ },
+ {
+ "command" : 0,
+ "file" : 0,
+ "line" : 9,
+ "parent" : 0
+ },
+ {
+ "command" : 1,
+ "file" : 0,
+ "line" : 38,
+ "parent" : 0
+ },
+ {
+ "command" : 2,
+ "file" : 0,
+ "line" : 40,
+ "parent" : 0
+ },
+ {
+ "command" : 3,
+ "file" : 0,
+ "line" : 31,
+ "parent" : 0
+ },
+ {
+ "command" : 4,
+ "file" : 0,
+ "line" : 20,
+ "parent" : 0
+ }
+ ]
+ },
+ "codemodelVersion" :
+ {
+ "major" : 2,
+ "minor" : 10
+ },
+ "compileGroups" :
+ [
+ {
+ "compileCommandFragments" :
+ [
+ {
+ "fragment" : "/DWIN32 /D_WINDOWS /EHsc /Zi /Ob0 /Od /RTC1 -MDd"
+ }
+ ],
+ "defines" :
+ [
+ {
+ "backtrace" : 4,
+ "define" : "WIN32"
+ },
+ {
+ "backtrace" : 4,
+ "define" : "_GS_DLL_EXPORT"
+ },
+ {
+ "backtrace" : 4,
+ "define" : "_USRDLL"
+ },
+ {
+ "backtrace" : 4,
+ "define" : "__PLATFORM_WINDOWS__"
+ },
+ {
+ "define" : "webcam_EXPORTS"
+ }
+ ],
+ "includes" :
+ [
+ {
+ "backtrace" : 5,
+ "path" : "C:/Users/simulateur/Documents/Webcam/./include/modules"
+ },
+ {
+ "backtrace" : 5,
+ "path" : "C:/Users/simulateur/Documents/Webcam/./include/platform"
+ },
+ {
+ "backtrace" : 5,
+ "path" : "C:/Users/simulateur/Documents/Webcam/./include/engine"
+ },
+ {
+ "backtrace" : 5,
+ "path" : "C:/Users/simulateur/Documents/Webcam/./include/framework"
+ },
+ {
+ "backtrace" : 5,
+ "path" : "C:/Users/simulateur/Documents/Webcam/./include"
+ },
+ {
+ "backtrace" : 5,
+ "path" : "C:/Users/simulateur/Documents/Webcam/./include/squirrel"
+ },
+ {
+ "backtrace" : 5,
+ "path" : "C:/Users/simulateur/Documents/Webcam/./include/squirrel/include"
+ },
+ {
+ "backtrace" : 5,
+ "path" : "C:/Users/simulateur/Documents/Webcam/./source"
+ }
+ ],
+ "language" : "CXX",
+ "sourceIndexes" :
+ [
+ 0,
+ 1,
+ 2
+ ]
+ }
+ ],
+ "dependencies" :
+ [
+ {
+ "id" : "ZERO_CHECK::@6890427a1f51a3e7e1df"
+ }
+ ],
+ "id" : "webcam::@6890427a1f51a3e7e1df",
+ "link" :
+ {
+ "commandFragments" :
+ [
+ {
+ "fragment" : "/machine:x64 /debug /INCREMENTAL",
+ "role" : "flags"
+ },
+ {
+ "backtrace" : 2,
+ "fragment" : "-LIBPATH:C:\\Users\\simulateur\\Documents\\Webcam\\.\\lib",
+ "role" : "libraryPath"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "modules.lib",
+ "role" : "libraries"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "platform.lib",
+ "role" : "libraries"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "engine.lib",
+ "role" : "libraries"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "framework.lib",
+ "role" : "libraries"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "opencv_world345.lib",
+ "role" : "libraries"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "extern.lib",
+ "role" : "libraries"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "Ws2_32.lib",
+ "role" : "libraries"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "Winmm.lib",
+ "role" : "libraries"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "dxguid.lib",
+ "role" : "libraries"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "dinput8.lib",
+ "role" : "libraries"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "wininet.lib",
+ "role" : "libraries"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "wldap32.lib",
+ "role" : "libraries"
+ },
+ {
+ "fragment" : "kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib",
+ "role" : "libraries"
+ }
+ ],
+ "language" : "CXX"
+ },
+ "linkLibraries" :
+ [
+ {
+ "backtrace" : 3,
+ "fragment" : "modules"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "platform"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "engine"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "framework"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "opencv_world345"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "extern"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "Ws2_32"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "Winmm"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "dxguid"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "dinput8"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "wininet"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "wldap32"
+ }
+ ],
+ "name" : "webcam",
+ "nameOnDisk" : "webcam_binding.dll",
+ "paths" :
+ {
+ "build" : ".",
+ "source" : "."
+ },
+ "sourceGroups" :
+ [
+ {
+ "name" : "Source Files",
+ "sourceIndexes" :
+ [
+ 0,
+ 1,
+ 2
+ ]
+ }
+ ],
+ "sources" :
+ [
+ {
+ "backtrace" : 1,
+ "compileGroupIndex" : 0,
+ "path" : "source/webcam.cpp",
+ "sourceGroupIndex" : 0
+ },
+ {
+ "backtrace" : 1,
+ "compileGroupIndex" : 0,
+ "path" : "source/webcam_binding.cpp",
+ "sourceGroupIndex" : 0
+ },
+ {
+ "backtrace" : 1,
+ "compileGroupIndex" : 0,
+ "path" : "source/webcam_impl.cpp",
+ "sourceGroupIndex" : 0
+ }
+ ],
+ "type" : "SHARED_LIBRARY"
+}
diff --git a/build/.cmake/api/v1/reply/target-webcam-MinSizeRel-84c1c7ad096a05a7eb03.json b/build/.cmake/api/v1/reply/target-webcam-MinSizeRel-84c1c7ad096a05a7eb03.json
new file mode 100644
index 0000000..4fc7236
--- /dev/null
+++ b/build/.cmake/api/v1/reply/target-webcam-MinSizeRel-84c1c7ad096a05a7eb03.json
@@ -0,0 +1,325 @@
+{
+ "artifacts" :
+ [
+ {
+ "path" : "MinSizeRel/webcam_binding.dll"
+ },
+ {
+ "path" : "MinSizeRel/webcam_binding.lib"
+ },
+ {
+ "path" : "MinSizeRel/webcam_binding.pdb"
+ }
+ ],
+ "backtrace" : 1,
+ "backtraceGraph" :
+ {
+ "commands" :
+ [
+ "add_library",
+ "target_link_directories",
+ "target_link_libraries",
+ "target_compile_definitions",
+ "target_include_directories"
+ ],
+ "files" :
+ [
+ "CMakeLists.txt"
+ ],
+ "nodes" :
+ [
+ {
+ "file" : 0
+ },
+ {
+ "command" : 0,
+ "file" : 0,
+ "line" : 9,
+ "parent" : 0
+ },
+ {
+ "command" : 1,
+ "file" : 0,
+ "line" : 38,
+ "parent" : 0
+ },
+ {
+ "command" : 2,
+ "file" : 0,
+ "line" : 40,
+ "parent" : 0
+ },
+ {
+ "command" : 3,
+ "file" : 0,
+ "line" : 31,
+ "parent" : 0
+ },
+ {
+ "command" : 4,
+ "file" : 0,
+ "line" : 20,
+ "parent" : 0
+ }
+ ]
+ },
+ "codemodelVersion" :
+ {
+ "major" : 2,
+ "minor" : 10
+ },
+ "compileGroups" :
+ [
+ {
+ "compileCommandFragments" :
+ [
+ {
+ "fragment" : "/DWIN32 /D_WINDOWS /EHsc /O1 /Ob1 /DNDEBUG -MD"
+ }
+ ],
+ "defines" :
+ [
+ {
+ "backtrace" : 4,
+ "define" : "WIN32"
+ },
+ {
+ "backtrace" : 4,
+ "define" : "_GS_DLL_EXPORT"
+ },
+ {
+ "backtrace" : 4,
+ "define" : "_USRDLL"
+ },
+ {
+ "backtrace" : 4,
+ "define" : "__PLATFORM_WINDOWS__"
+ },
+ {
+ "define" : "webcam_EXPORTS"
+ }
+ ],
+ "includes" :
+ [
+ {
+ "backtrace" : 5,
+ "path" : "C:/Users/simulateur/Documents/Webcam/./include/modules"
+ },
+ {
+ "backtrace" : 5,
+ "path" : "C:/Users/simulateur/Documents/Webcam/./include/platform"
+ },
+ {
+ "backtrace" : 5,
+ "path" : "C:/Users/simulateur/Documents/Webcam/./include/engine"
+ },
+ {
+ "backtrace" : 5,
+ "path" : "C:/Users/simulateur/Documents/Webcam/./include/framework"
+ },
+ {
+ "backtrace" : 5,
+ "path" : "C:/Users/simulateur/Documents/Webcam/./include"
+ },
+ {
+ "backtrace" : 5,
+ "path" : "C:/Users/simulateur/Documents/Webcam/./include/squirrel"
+ },
+ {
+ "backtrace" : 5,
+ "path" : "C:/Users/simulateur/Documents/Webcam/./include/squirrel/include"
+ },
+ {
+ "backtrace" : 5,
+ "path" : "C:/Users/simulateur/Documents/Webcam/./source"
+ }
+ ],
+ "language" : "CXX",
+ "sourceIndexes" :
+ [
+ 0,
+ 1,
+ 2
+ ]
+ }
+ ],
+ "dependencies" :
+ [
+ {
+ "id" : "ZERO_CHECK::@6890427a1f51a3e7e1df"
+ }
+ ],
+ "id" : "webcam::@6890427a1f51a3e7e1df",
+ "link" :
+ {
+ "commandFragments" :
+ [
+ {
+ "fragment" : "/machine:x64 /INCREMENTAL:NO",
+ "role" : "flags"
+ },
+ {
+ "backtrace" : 2,
+ "fragment" : "-LIBPATH:C:\\Users\\simulateur\\Documents\\Webcam\\.\\lib",
+ "role" : "libraryPath"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "modules.lib",
+ "role" : "libraries"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "platform.lib",
+ "role" : "libraries"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "engine.lib",
+ "role" : "libraries"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "framework.lib",
+ "role" : "libraries"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "opencv_world345.lib",
+ "role" : "libraries"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "extern.lib",
+ "role" : "libraries"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "Ws2_32.lib",
+ "role" : "libraries"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "Winmm.lib",
+ "role" : "libraries"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "dxguid.lib",
+ "role" : "libraries"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "dinput8.lib",
+ "role" : "libraries"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "wininet.lib",
+ "role" : "libraries"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "wldap32.lib",
+ "role" : "libraries"
+ },
+ {
+ "fragment" : "kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib",
+ "role" : "libraries"
+ }
+ ],
+ "language" : "CXX"
+ },
+ "linkLibraries" :
+ [
+ {
+ "backtrace" : 3,
+ "fragment" : "modules"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "platform"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "engine"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "framework"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "opencv_world345"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "extern"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "Ws2_32"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "Winmm"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "dxguid"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "dinput8"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "wininet"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "wldap32"
+ }
+ ],
+ "name" : "webcam",
+ "nameOnDisk" : "webcam_binding.dll",
+ "paths" :
+ {
+ "build" : ".",
+ "source" : "."
+ },
+ "sourceGroups" :
+ [
+ {
+ "name" : "Source Files",
+ "sourceIndexes" :
+ [
+ 0,
+ 1,
+ 2
+ ]
+ }
+ ],
+ "sources" :
+ [
+ {
+ "backtrace" : 1,
+ "compileGroupIndex" : 0,
+ "path" : "source/webcam.cpp",
+ "sourceGroupIndex" : 0
+ },
+ {
+ "backtrace" : 1,
+ "compileGroupIndex" : 0,
+ "path" : "source/webcam_binding.cpp",
+ "sourceGroupIndex" : 0
+ },
+ {
+ "backtrace" : 1,
+ "compileGroupIndex" : 0,
+ "path" : "source/webcam_impl.cpp",
+ "sourceGroupIndex" : 0
+ }
+ ],
+ "type" : "SHARED_LIBRARY"
+}
diff --git a/build/.cmake/api/v1/reply/target-webcam-RelWithDebInfo-54d7b671d93d545ba277.json b/build/.cmake/api/v1/reply/target-webcam-RelWithDebInfo-54d7b671d93d545ba277.json
new file mode 100644
index 0000000..64356c2
--- /dev/null
+++ b/build/.cmake/api/v1/reply/target-webcam-RelWithDebInfo-54d7b671d93d545ba277.json
@@ -0,0 +1,325 @@
+{
+ "artifacts" :
+ [
+ {
+ "path" : "RelWithDebInfo/webcam_binding.dll"
+ },
+ {
+ "path" : "RelWithDebInfo/webcam_binding.lib"
+ },
+ {
+ "path" : "RelWithDebInfo/webcam_binding.pdb"
+ }
+ ],
+ "backtrace" : 1,
+ "backtraceGraph" :
+ {
+ "commands" :
+ [
+ "add_library",
+ "target_link_directories",
+ "target_link_libraries",
+ "target_compile_definitions",
+ "target_include_directories"
+ ],
+ "files" :
+ [
+ "CMakeLists.txt"
+ ],
+ "nodes" :
+ [
+ {
+ "file" : 0
+ },
+ {
+ "command" : 0,
+ "file" : 0,
+ "line" : 9,
+ "parent" : 0
+ },
+ {
+ "command" : 1,
+ "file" : 0,
+ "line" : 38,
+ "parent" : 0
+ },
+ {
+ "command" : 2,
+ "file" : 0,
+ "line" : 40,
+ "parent" : 0
+ },
+ {
+ "command" : 3,
+ "file" : 0,
+ "line" : 31,
+ "parent" : 0
+ },
+ {
+ "command" : 4,
+ "file" : 0,
+ "line" : 20,
+ "parent" : 0
+ }
+ ]
+ },
+ "codemodelVersion" :
+ {
+ "major" : 2,
+ "minor" : 10
+ },
+ "compileGroups" :
+ [
+ {
+ "compileCommandFragments" :
+ [
+ {
+ "fragment" : "/DWIN32 /D_WINDOWS /EHsc /Zi /O2 /Ob1 /DNDEBUG -MD"
+ }
+ ],
+ "defines" :
+ [
+ {
+ "backtrace" : 4,
+ "define" : "WIN32"
+ },
+ {
+ "backtrace" : 4,
+ "define" : "_GS_DLL_EXPORT"
+ },
+ {
+ "backtrace" : 4,
+ "define" : "_USRDLL"
+ },
+ {
+ "backtrace" : 4,
+ "define" : "__PLATFORM_WINDOWS__"
+ },
+ {
+ "define" : "webcam_EXPORTS"
+ }
+ ],
+ "includes" :
+ [
+ {
+ "backtrace" : 5,
+ "path" : "C:/Users/simulateur/Documents/Webcam/./include/modules"
+ },
+ {
+ "backtrace" : 5,
+ "path" : "C:/Users/simulateur/Documents/Webcam/./include/platform"
+ },
+ {
+ "backtrace" : 5,
+ "path" : "C:/Users/simulateur/Documents/Webcam/./include/engine"
+ },
+ {
+ "backtrace" : 5,
+ "path" : "C:/Users/simulateur/Documents/Webcam/./include/framework"
+ },
+ {
+ "backtrace" : 5,
+ "path" : "C:/Users/simulateur/Documents/Webcam/./include"
+ },
+ {
+ "backtrace" : 5,
+ "path" : "C:/Users/simulateur/Documents/Webcam/./include/squirrel"
+ },
+ {
+ "backtrace" : 5,
+ "path" : "C:/Users/simulateur/Documents/Webcam/./include/squirrel/include"
+ },
+ {
+ "backtrace" : 5,
+ "path" : "C:/Users/simulateur/Documents/Webcam/./source"
+ }
+ ],
+ "language" : "CXX",
+ "sourceIndexes" :
+ [
+ 0,
+ 1,
+ 2
+ ]
+ }
+ ],
+ "dependencies" :
+ [
+ {
+ "id" : "ZERO_CHECK::@6890427a1f51a3e7e1df"
+ }
+ ],
+ "id" : "webcam::@6890427a1f51a3e7e1df",
+ "link" :
+ {
+ "commandFragments" :
+ [
+ {
+ "fragment" : "/machine:x64 /debug /INCREMENTAL",
+ "role" : "flags"
+ },
+ {
+ "backtrace" : 2,
+ "fragment" : "-LIBPATH:C:\\Users\\simulateur\\Documents\\Webcam\\.\\lib",
+ "role" : "libraryPath"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "modules.lib",
+ "role" : "libraries"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "platform.lib",
+ "role" : "libraries"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "engine.lib",
+ "role" : "libraries"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "framework.lib",
+ "role" : "libraries"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "opencv_world345.lib",
+ "role" : "libraries"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "extern.lib",
+ "role" : "libraries"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "Ws2_32.lib",
+ "role" : "libraries"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "Winmm.lib",
+ "role" : "libraries"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "dxguid.lib",
+ "role" : "libraries"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "dinput8.lib",
+ "role" : "libraries"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "wininet.lib",
+ "role" : "libraries"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "wldap32.lib",
+ "role" : "libraries"
+ },
+ {
+ "fragment" : "kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib",
+ "role" : "libraries"
+ }
+ ],
+ "language" : "CXX"
+ },
+ "linkLibraries" :
+ [
+ {
+ "backtrace" : 3,
+ "fragment" : "modules"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "platform"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "engine"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "framework"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "opencv_world345"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "extern"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "Ws2_32"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "Winmm"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "dxguid"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "dinput8"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "wininet"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "wldap32"
+ }
+ ],
+ "name" : "webcam",
+ "nameOnDisk" : "webcam_binding.dll",
+ "paths" :
+ {
+ "build" : ".",
+ "source" : "."
+ },
+ "sourceGroups" :
+ [
+ {
+ "name" : "Source Files",
+ "sourceIndexes" :
+ [
+ 0,
+ 1,
+ 2
+ ]
+ }
+ ],
+ "sources" :
+ [
+ {
+ "backtrace" : 1,
+ "compileGroupIndex" : 0,
+ "path" : "source/webcam.cpp",
+ "sourceGroupIndex" : 0
+ },
+ {
+ "backtrace" : 1,
+ "compileGroupIndex" : 0,
+ "path" : "source/webcam_binding.cpp",
+ "sourceGroupIndex" : 0
+ },
+ {
+ "backtrace" : 1,
+ "compileGroupIndex" : 0,
+ "path" : "source/webcam_impl.cpp",
+ "sourceGroupIndex" : 0
+ }
+ ],
+ "type" : "SHARED_LIBRARY"
+}
diff --git a/build/.cmake/api/v1/reply/target-webcam-Release-dac8440689954eb0bb1b.json b/build/.cmake/api/v1/reply/target-webcam-Release-dac8440689954eb0bb1b.json
new file mode 100644
index 0000000..5e7f6e4
--- /dev/null
+++ b/build/.cmake/api/v1/reply/target-webcam-Release-dac8440689954eb0bb1b.json
@@ -0,0 +1,325 @@
+{
+ "artifacts" :
+ [
+ {
+ "path" : "Release/webcam_binding.dll"
+ },
+ {
+ "path" : "Release/webcam_binding.lib"
+ },
+ {
+ "path" : "Release/webcam_binding.pdb"
+ }
+ ],
+ "backtrace" : 1,
+ "backtraceGraph" :
+ {
+ "commands" :
+ [
+ "add_library",
+ "target_link_directories",
+ "target_link_libraries",
+ "target_compile_definitions",
+ "target_include_directories"
+ ],
+ "files" :
+ [
+ "CMakeLists.txt"
+ ],
+ "nodes" :
+ [
+ {
+ "file" : 0
+ },
+ {
+ "command" : 0,
+ "file" : 0,
+ "line" : 9,
+ "parent" : 0
+ },
+ {
+ "command" : 1,
+ "file" : 0,
+ "line" : 38,
+ "parent" : 0
+ },
+ {
+ "command" : 2,
+ "file" : 0,
+ "line" : 40,
+ "parent" : 0
+ },
+ {
+ "command" : 3,
+ "file" : 0,
+ "line" : 31,
+ "parent" : 0
+ },
+ {
+ "command" : 4,
+ "file" : 0,
+ "line" : 20,
+ "parent" : 0
+ }
+ ]
+ },
+ "codemodelVersion" :
+ {
+ "major" : 2,
+ "minor" : 10
+ },
+ "compileGroups" :
+ [
+ {
+ "compileCommandFragments" :
+ [
+ {
+ "fragment" : "/DWIN32 /D_WINDOWS /EHsc /O2 /Ob2 /DNDEBUG -MD"
+ }
+ ],
+ "defines" :
+ [
+ {
+ "backtrace" : 4,
+ "define" : "WIN32"
+ },
+ {
+ "backtrace" : 4,
+ "define" : "_GS_DLL_EXPORT"
+ },
+ {
+ "backtrace" : 4,
+ "define" : "_USRDLL"
+ },
+ {
+ "backtrace" : 4,
+ "define" : "__PLATFORM_WINDOWS__"
+ },
+ {
+ "define" : "webcam_EXPORTS"
+ }
+ ],
+ "includes" :
+ [
+ {
+ "backtrace" : 5,
+ "path" : "C:/Users/simulateur/Documents/Webcam/./include/modules"
+ },
+ {
+ "backtrace" : 5,
+ "path" : "C:/Users/simulateur/Documents/Webcam/./include/platform"
+ },
+ {
+ "backtrace" : 5,
+ "path" : "C:/Users/simulateur/Documents/Webcam/./include/engine"
+ },
+ {
+ "backtrace" : 5,
+ "path" : "C:/Users/simulateur/Documents/Webcam/./include/framework"
+ },
+ {
+ "backtrace" : 5,
+ "path" : "C:/Users/simulateur/Documents/Webcam/./include"
+ },
+ {
+ "backtrace" : 5,
+ "path" : "C:/Users/simulateur/Documents/Webcam/./include/squirrel"
+ },
+ {
+ "backtrace" : 5,
+ "path" : "C:/Users/simulateur/Documents/Webcam/./include/squirrel/include"
+ },
+ {
+ "backtrace" : 5,
+ "path" : "C:/Users/simulateur/Documents/Webcam/./source"
+ }
+ ],
+ "language" : "CXX",
+ "sourceIndexes" :
+ [
+ 0,
+ 1,
+ 2
+ ]
+ }
+ ],
+ "dependencies" :
+ [
+ {
+ "id" : "ZERO_CHECK::@6890427a1f51a3e7e1df"
+ }
+ ],
+ "id" : "webcam::@6890427a1f51a3e7e1df",
+ "link" :
+ {
+ "commandFragments" :
+ [
+ {
+ "fragment" : "/machine:x64 /INCREMENTAL:NO",
+ "role" : "flags"
+ },
+ {
+ "backtrace" : 2,
+ "fragment" : "-LIBPATH:C:\\Users\\simulateur\\Documents\\Webcam\\.\\lib",
+ "role" : "libraryPath"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "modules.lib",
+ "role" : "libraries"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "platform.lib",
+ "role" : "libraries"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "engine.lib",
+ "role" : "libraries"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "framework.lib",
+ "role" : "libraries"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "opencv_world345.lib",
+ "role" : "libraries"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "extern.lib",
+ "role" : "libraries"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "Ws2_32.lib",
+ "role" : "libraries"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "Winmm.lib",
+ "role" : "libraries"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "dxguid.lib",
+ "role" : "libraries"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "dinput8.lib",
+ "role" : "libraries"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "wininet.lib",
+ "role" : "libraries"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "wldap32.lib",
+ "role" : "libraries"
+ },
+ {
+ "fragment" : "kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib",
+ "role" : "libraries"
+ }
+ ],
+ "language" : "CXX"
+ },
+ "linkLibraries" :
+ [
+ {
+ "backtrace" : 3,
+ "fragment" : "modules"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "platform"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "engine"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "framework"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "opencv_world345"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "extern"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "Ws2_32"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "Winmm"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "dxguid"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "dinput8"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "wininet"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "wldap32"
+ }
+ ],
+ "name" : "webcam",
+ "nameOnDisk" : "webcam_binding.dll",
+ "paths" :
+ {
+ "build" : ".",
+ "source" : "."
+ },
+ "sourceGroups" :
+ [
+ {
+ "name" : "Source Files",
+ "sourceIndexes" :
+ [
+ 0,
+ 1,
+ 2
+ ]
+ }
+ ],
+ "sources" :
+ [
+ {
+ "backtrace" : 1,
+ "compileGroupIndex" : 0,
+ "path" : "source/webcam.cpp",
+ "sourceGroupIndex" : 0
+ },
+ {
+ "backtrace" : 1,
+ "compileGroupIndex" : 0,
+ "path" : "source/webcam_binding.cpp",
+ "sourceGroupIndex" : 0
+ },
+ {
+ "backtrace" : 1,
+ "compileGroupIndex" : 0,
+ "path" : "source/webcam_impl.cpp",
+ "sourceGroupIndex" : 0
+ }
+ ],
+ "type" : "SHARED_LIBRARY"
+}
diff --git a/build/.cmake/api/v1/reply/toolchains-v1-57a760d05d0002952fab.json b/build/.cmake/api/v1/reply/toolchains-v1-57a760d05d0002952fab.json
new file mode 100644
index 0000000..8be400f
--- /dev/null
+++ b/build/.cmake/api/v1/reply/toolchains-v1-57a760d05d0002952fab.json
@@ -0,0 +1,58 @@
+{
+ "kind" : "toolchains",
+ "toolchains" :
+ [
+ {
+ "compiler" :
+ {
+ "id" : "MSVC",
+ "implicit" :
+ {
+ "includeDirectories" : [],
+ "linkDirectories" : [],
+ "linkFrameworkDirectories" : [],
+ "linkLibraries" : []
+ },
+ "path" : "C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.44.35207/bin/Hostx64/x64/cl.exe",
+ "version" : "19.44.35217.0"
+ },
+ "language" : "CXX",
+ "sourceFileExtensions" :
+ [
+ "C",
+ "M",
+ "c++",
+ "cc",
+ "cpp",
+ "cxx",
+ "m",
+ "mm",
+ "mpp",
+ "CPP",
+ "ixx",
+ "cppm",
+ "ccm",
+ "cxxm",
+ "c++m"
+ ]
+ },
+ {
+ "compiler" :
+ {
+ "implicit" : {},
+ "path" : "rc"
+ },
+ "language" : "RC",
+ "sourceFileExtensions" :
+ [
+ "rc",
+ "RC"
+ ]
+ }
+ ],
+ "version" :
+ {
+ "major" : 1,
+ "minor" : 1
+ }
+}
diff --git a/build/ALL_BUILD.vcxproj b/build/ALL_BUILD.vcxproj
new file mode 100644
index 0000000..0841173
--- /dev/null
+++ b/build/ALL_BUILD.vcxproj
@@ -0,0 +1,185 @@
+
+
+
+ x64
+
+
+ false
+
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+ MinSizeRel
+ x64
+
+
+ RelWithDebInfo
+ x64
+
+
+
+ {942408C4-6BD6-31E8-BA47-F9E9ED18CA76}
+ Win32Proj
+ 10.0.26100.0
+ x64
+ ALL_BUILD
+ NoUpgrade
+
+
+
+ Utility
+ MultiByte
+ v143
+
+
+ Utility
+ MultiByte
+ v143
+
+
+ Utility
+ MultiByte
+ v143
+
+
+ Utility
+ MultiByte
+ v143
+
+
+
+
+
+
+
+
+
+ <_ProjectFileVersion>10.0.20506.1
+ $(Platform)\$(Configuration)\$(ProjectName)\
+ $(Platform)\$(Configuration)\$(ProjectName)\
+ $(Platform)\$(Configuration)\$(ProjectName)\
+ $(Platform)\$(Configuration)\$(ProjectName)\
+
+
+
+ %(AdditionalIncludeDirectories)
+ $(ProjectDir)/$(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+
+
+ %(AdditionalIncludeDirectories)
+ $(ProjectDir)/$(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+
+
+ %(AdditionalIncludeDirectories)
+ $(ProjectDir)/$(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+
+
+ %(AdditionalIncludeDirectories)
+ $(ProjectDir)/$(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+
+
+ Always
+ Building Custom Rule C:/Users/simulateur/Documents/Webcam/CMakeLists.txt
+ setlocal
+"C:\Program Files\CMake\bin\cmake.exe" -SC:/Users/simulateur/Documents/Webcam -BC:/Users/simulateur/Documents/Webcam/build --check-stamp-file C:/Users/simulateur/Documents/Webcam/build/CMakeFiles/generate.stamp
+if %errorlevel% neq 0 goto :cmEnd
+:cmEnd
+endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
+:cmErrorLevel
+exit /b %1
+:cmDone
+if %errorlevel% neq 0 goto :VCEnd
+ C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeCXXInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeCommonLanguageInclude.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeGenericSystem.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeInitializeConfigs.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeLanguageInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeRCInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeSystemSpecificInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeSystemSpecificInitialize.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Compiler\CMakeCommonCompilerMacros.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Compiler\MSVC-CXX.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Compiler\MSVC.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Internal\CMakeCXXLinkerInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Internal\CMakeCommonLinkerInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Linker\MSVC-CXX.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Linker\MSVC.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Linker\Windows-MSVC-CXX.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Linker\Windows-MSVC.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Windows-Initialize.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Windows-MSVC-CXX.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Windows-MSVC.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Windows.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\WindowsPaths.cmake;C:\Users\simulateur\Documents\Webcam\build\CMakeFiles\4.3.3\CMakeCXXCompiler.cmake;C:\Users\simulateur\Documents\Webcam\build\CMakeFiles\4.3.3\CMakeRCCompiler.cmake;C:\Users\simulateur\Documents\Webcam\build\CMakeFiles\4.3.3\CMakeSystem.cmake;%(AdditionalInputs)
+ C:\Users\simulateur\Documents\Webcam\build\CMakeFiles\generate.stamp
+ false
+ Building Custom Rule C:/Users/simulateur/Documents/Webcam/CMakeLists.txt
+ setlocal
+"C:\Program Files\CMake\bin\cmake.exe" -SC:/Users/simulateur/Documents/Webcam -BC:/Users/simulateur/Documents/Webcam/build --check-stamp-file C:/Users/simulateur/Documents/Webcam/build/CMakeFiles/generate.stamp
+if %errorlevel% neq 0 goto :cmEnd
+:cmEnd
+endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
+:cmErrorLevel
+exit /b %1
+:cmDone
+if %errorlevel% neq 0 goto :VCEnd
+ C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeCXXInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeCommonLanguageInclude.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeGenericSystem.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeInitializeConfigs.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeLanguageInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeRCInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeSystemSpecificInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeSystemSpecificInitialize.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Compiler\CMakeCommonCompilerMacros.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Compiler\MSVC-CXX.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Compiler\MSVC.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Internal\CMakeCXXLinkerInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Internal\CMakeCommonLinkerInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Linker\MSVC-CXX.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Linker\MSVC.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Linker\Windows-MSVC-CXX.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Linker\Windows-MSVC.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Windows-Initialize.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Windows-MSVC-CXX.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Windows-MSVC.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Windows.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\WindowsPaths.cmake;C:\Users\simulateur\Documents\Webcam\build\CMakeFiles\4.3.3\CMakeCXXCompiler.cmake;C:\Users\simulateur\Documents\Webcam\build\CMakeFiles\4.3.3\CMakeRCCompiler.cmake;C:\Users\simulateur\Documents\Webcam\build\CMakeFiles\4.3.3\CMakeSystem.cmake;%(AdditionalInputs)
+ C:\Users\simulateur\Documents\Webcam\build\CMakeFiles\generate.stamp
+ false
+ Building Custom Rule C:/Users/simulateur/Documents/Webcam/CMakeLists.txt
+ setlocal
+"C:\Program Files\CMake\bin\cmake.exe" -SC:/Users/simulateur/Documents/Webcam -BC:/Users/simulateur/Documents/Webcam/build --check-stamp-file C:/Users/simulateur/Documents/Webcam/build/CMakeFiles/generate.stamp
+if %errorlevel% neq 0 goto :cmEnd
+:cmEnd
+endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
+:cmErrorLevel
+exit /b %1
+:cmDone
+if %errorlevel% neq 0 goto :VCEnd
+ C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeCXXInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeCommonLanguageInclude.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeGenericSystem.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeInitializeConfigs.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeLanguageInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeRCInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeSystemSpecificInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeSystemSpecificInitialize.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Compiler\CMakeCommonCompilerMacros.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Compiler\MSVC-CXX.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Compiler\MSVC.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Internal\CMakeCXXLinkerInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Internal\CMakeCommonLinkerInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Linker\MSVC-CXX.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Linker\MSVC.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Linker\Windows-MSVC-CXX.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Linker\Windows-MSVC.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Windows-Initialize.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Windows-MSVC-CXX.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Windows-MSVC.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Windows.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\WindowsPaths.cmake;C:\Users\simulateur\Documents\Webcam\build\CMakeFiles\4.3.3\CMakeCXXCompiler.cmake;C:\Users\simulateur\Documents\Webcam\build\CMakeFiles\4.3.3\CMakeRCCompiler.cmake;C:\Users\simulateur\Documents\Webcam\build\CMakeFiles\4.3.3\CMakeSystem.cmake;%(AdditionalInputs)
+ C:\Users\simulateur\Documents\Webcam\build\CMakeFiles\generate.stamp
+ false
+ Building Custom Rule C:/Users/simulateur/Documents/Webcam/CMakeLists.txt
+ setlocal
+"C:\Program Files\CMake\bin\cmake.exe" -SC:/Users/simulateur/Documents/Webcam -BC:/Users/simulateur/Documents/Webcam/build --check-stamp-file C:/Users/simulateur/Documents/Webcam/build/CMakeFiles/generate.stamp
+if %errorlevel% neq 0 goto :cmEnd
+:cmEnd
+endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
+:cmErrorLevel
+exit /b %1
+:cmDone
+if %errorlevel% neq 0 goto :VCEnd
+ C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeCXXInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeCommonLanguageInclude.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeGenericSystem.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeInitializeConfigs.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeLanguageInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeRCInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeSystemSpecificInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeSystemSpecificInitialize.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Compiler\CMakeCommonCompilerMacros.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Compiler\MSVC-CXX.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Compiler\MSVC.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Internal\CMakeCXXLinkerInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Internal\CMakeCommonLinkerInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Linker\MSVC-CXX.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Linker\MSVC.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Linker\Windows-MSVC-CXX.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Linker\Windows-MSVC.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Windows-Initialize.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Windows-MSVC-CXX.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Windows-MSVC.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Windows.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\WindowsPaths.cmake;C:\Users\simulateur\Documents\Webcam\build\CMakeFiles\4.3.3\CMakeCXXCompiler.cmake;C:\Users\simulateur\Documents\Webcam\build\CMakeFiles\4.3.3\CMakeRCCompiler.cmake;C:\Users\simulateur\Documents\Webcam\build\CMakeFiles\4.3.3\CMakeSystem.cmake;%(AdditionalInputs)
+ C:\Users\simulateur\Documents\Webcam\build\CMakeFiles\generate.stamp
+ false
+
+
+
+
+
+
+
+ {4BC2C1ED-2131-38E4-A11D-92CF0D712898}
+ ZERO_CHECK
+ false
+ Never
+
+
+ {58556804-A3C4-37DF-9628-6EDAAF0A46D6}
+ webcam
+
+
+
+
+
+
\ No newline at end of file
diff --git a/build/ALL_BUILD.vcxproj.filters b/build/ALL_BUILD.vcxproj.filters
new file mode 100644
index 0000000..de8e59d
--- /dev/null
+++ b/build/ALL_BUILD.vcxproj.filters
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
diff --git a/build/CMakeCache.txt b/build/CMakeCache.txt
new file mode 100644
index 0000000..884a800
--- /dev/null
+++ b/build/CMakeCache.txt
@@ -0,0 +1,311 @@
+# This is the CMakeCache file.
+# For build in directory: c:/Users/simulateur/Documents/Webcam/build
+# It was generated by CMake: C:/Program Files/CMake/bin/cmake.exe
+# You can edit this file to change values found and used by cmake.
+# If you do not want to change any of the values, simply exit the editor.
+# If you do want to change a value, simply edit, save, and exit the editor.
+# The syntax for the file is as follows:
+# KEY:TYPE=VALUE
+# KEY is the name of a variable in the cache.
+# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!.
+# VALUE is the current value for the KEY.
+
+########################
+# EXTERNAL cache entries
+########################
+
+//Path to a program.
+CMAKE_AR:FILEPATH=C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.44.35207/bin/Hostx64/x64/lib.exe
+
+CMAKE_BUILD_TYPE:STRING=Release
+
+//Semicolon separated list of supported configuration types, only
+// supports Debug, Release, MinSizeRel, and RelWithDebInfo, anything
+// else will be ignored.
+CMAKE_CONFIGURATION_TYPES:STRING=Debug;Release;MinSizeRel;RelWithDebInfo
+
+//Flags used by the CXX compiler during all build types.
+CMAKE_CXX_FLAGS:STRING=/DWIN32 /D_WINDOWS /EHsc
+
+//Flags used by the CXX compiler during DEBUG builds.
+CMAKE_CXX_FLAGS_DEBUG:STRING=/Zi /Ob0 /Od /RTC1
+
+//Flags used by the CXX compiler during MINSIZEREL builds.
+CMAKE_CXX_FLAGS_MINSIZEREL:STRING=/O1 /Ob1 /DNDEBUG
+
+//Flags used by the CXX compiler during RELEASE builds.
+CMAKE_CXX_FLAGS_RELEASE:STRING=/O2 /Ob2 /DNDEBUG
+
+//Flags used by the CXX compiler during RELWITHDEBINFO builds.
+CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=/Zi /O2 /Ob1 /DNDEBUG
+
+//Libraries linked by default with all C++ applications.
+CMAKE_CXX_STANDARD_LIBRARIES:STRING=kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib
+
+//Flags used by the linker during all build types.
+CMAKE_EXE_LINKER_FLAGS:STRING=/machine:x64
+
+//Flags used by the linker during DEBUG builds.
+CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING=/debug /INCREMENTAL
+
+//Flags used by the linker during MINSIZEREL builds.
+CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING=/INCREMENTAL:NO
+
+//Flags used by the linker during RELEASE builds.
+CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING=/INCREMENTAL:NO
+
+//Flags used by the linker during RELWITHDEBINFO builds.
+CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING=/debug /INCREMENTAL
+
+//No help, variable specified on the command line.
+CMAKE_EXPORT_COMPILE_COMMANDS:BOOL=TRUE
+
+//Value Computed by CMake.
+CMAKE_FIND_PACKAGE_REDIRECTS_DIR:STATIC=C:/Users/simulateur/Documents/Webcam/build/CMakeFiles/pkgRedirects
+
+//Install path prefix, prepended onto install directories.
+CMAKE_INSTALL_PREFIX:PATH=C:/Program Files/webcam
+
+//Path to a program.
+CMAKE_LINKER:FILEPATH=C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.44.35207/bin/Hostx64/x64/link.exe
+
+//Flags used by the linker during the creation of modules during
+// all build types.
+CMAKE_MODULE_LINKER_FLAGS:STRING=/machine:x64
+
+//Flags used by the linker during the creation of modules during
+// DEBUG builds.
+CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING=/debug /INCREMENTAL
+
+//Flags used by the linker during the creation of modules during
+// MINSIZEREL builds.
+CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING=/INCREMENTAL:NO
+
+//Flags used by the linker during the creation of modules during
+// RELEASE builds.
+CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING=/INCREMENTAL:NO
+
+//Flags used by the linker during the creation of modules during
+// RELWITHDEBINFO builds.
+CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING=/debug /INCREMENTAL
+
+//Path to a program.
+CMAKE_MT:FILEPATH=CMAKE_MT-NOTFOUND
+
+//Value Computed by CMake
+CMAKE_PROJECT_COMPAT_VERSION:STATIC=
+
+//Value Computed by CMake
+CMAKE_PROJECT_DESCRIPTION:STATIC=
+
+//Value Computed by CMake
+CMAKE_PROJECT_HOMEPAGE_URL:STATIC=
+
+//Value Computed by CMake
+CMAKE_PROJECT_NAME:STATIC=webcam
+
+//Value Computed by CMake
+CMAKE_PROJECT_SPDX_LICENSE:STATIC=
+
+//RC compiler
+CMAKE_RC_COMPILER:FILEPATH=rc
+
+//Flags for Windows Resource Compiler during all build types.
+CMAKE_RC_FLAGS:STRING=-DWIN32
+
+//Flags for Windows Resource Compiler during DEBUG builds.
+CMAKE_RC_FLAGS_DEBUG:STRING=-D_DEBUG
+
+//Flags for Windows Resource Compiler during MINSIZEREL builds.
+CMAKE_RC_FLAGS_MINSIZEREL:STRING=
+
+//Flags for Windows Resource Compiler during RELEASE builds.
+CMAKE_RC_FLAGS_RELEASE:STRING=
+
+//Flags for Windows Resource Compiler during RELWITHDEBINFO builds.
+CMAKE_RC_FLAGS_RELWITHDEBINFO:STRING=
+
+//Flags used by the linker during the creation of shared libraries
+// during all build types.
+CMAKE_SHARED_LINKER_FLAGS:STRING=/machine:x64
+
+//Flags used by the linker during the creation of shared libraries
+// during DEBUG builds.
+CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING=/debug /INCREMENTAL
+
+//Flags used by the linker during the creation of shared libraries
+// during MINSIZEREL builds.
+CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING=/INCREMENTAL:NO
+
+//Flags used by the linker during the creation of shared libraries
+// during RELEASE builds.
+CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING=/INCREMENTAL:NO
+
+//Flags used by the linker during the creation of shared libraries
+// during RELWITHDEBINFO builds.
+CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING=/debug /INCREMENTAL
+
+//If set, runtime paths are not added when installing shared libraries,
+// but are added when building.
+CMAKE_SKIP_INSTALL_RPATH:BOOL=NO
+
+//If set, runtime paths are not added when using shared libraries.
+CMAKE_SKIP_RPATH:BOOL=NO
+
+//Flags used by the archiver during the creation of static libraries
+// during all build types.
+CMAKE_STATIC_LINKER_FLAGS:STRING=/machine:x64
+
+//Flags used by the archiver during the creation of static libraries
+// during DEBUG builds.
+CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING=
+
+//Flags used by the archiver during the creation of static libraries
+// during MINSIZEREL builds.
+CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING=
+
+//Flags used by the archiver during the creation of static libraries
+// during RELEASE builds.
+CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING=
+
+//Flags used by the archiver during the creation of static libraries
+// during RELWITHDEBINFO builds.
+CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING=
+
+//If this value is on, makefiles will be generated without the
+// .SILENT directive, and all commands will be echoed to the console
+// during the make. This is useful for debugging only. With Visual
+// Studio IDE projects all commands are done without /nologo.
+CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE
+
+//Value Computed by CMake
+webcam_BINARY_DIR:STATIC=C:/Users/simulateur/Documents/Webcam/build
+
+//Value Computed by CMake
+webcam_IS_TOP_LEVEL:STATIC=ON
+
+//Value Computed by CMake
+webcam_SOURCE_DIR:STATIC=C:/Users/simulateur/Documents/Webcam
+
+
+########################
+# INTERNAL cache entries
+########################
+
+//ADVANCED property for variable: CMAKE_AR
+CMAKE_AR-ADVANCED:INTERNAL=1
+//This is the directory where this CMakeCache.txt was created
+CMAKE_CACHEFILE_DIR:INTERNAL=c:/Users/simulateur/Documents/Webcam/build
+//Major version of cmake used to create the current loaded cache
+CMAKE_CACHE_MAJOR_VERSION:INTERNAL=4
+//Minor version of cmake used to create the current loaded cache
+CMAKE_CACHE_MINOR_VERSION:INTERNAL=3
+//Patch version of cmake used to create the current loaded cache
+CMAKE_CACHE_PATCH_VERSION:INTERNAL=3
+//Path to CMake executable.
+CMAKE_COMMAND:INTERNAL=C:/Program Files/CMake/bin/cmake.exe
+//Path to cpack program executable.
+CMAKE_CPACK_COMMAND:INTERNAL=C:/Program Files/CMake/bin/cpack.exe
+//Path to ctest program executable.
+CMAKE_CTEST_COMMAND:INTERNAL=C:/Program Files/CMake/bin/ctest.exe
+//ADVANCED property for variable: CMAKE_CXX_FLAGS
+CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG
+CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL
+CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE
+CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO
+CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_CXX_STANDARD_LIBRARIES
+CMAKE_CXX_STANDARD_LIBRARIES-ADVANCED:INTERNAL=1
+//Executable file format
+CMAKE_EXECUTABLE_FORMAT:INTERNAL=Unknown
+//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS
+CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG
+CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL
+CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE
+CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO
+CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//Name of external makefile project generator.
+CMAKE_EXTRA_GENERATOR:INTERNAL=
+//Name of generator.
+CMAKE_GENERATOR:INTERNAL=Visual Studio 17 2022
+//Generator instance identifier.
+CMAKE_GENERATOR_INSTANCE:INTERNAL=C:/Program Files/Microsoft Visual Studio/2022/Community
+//Name of generator platform.
+CMAKE_GENERATOR_PLATFORM:INTERNAL=x64
+//Name of generator toolset.
+CMAKE_GENERATOR_TOOLSET:INTERNAL=
+//Source directory with the top level CMakeLists.txt file for this
+// project
+CMAKE_HOME_DIRECTORY:INTERNAL=C:/Users/simulateur/Documents/Webcam
+//ADVANCED property for variable: CMAKE_LINKER
+CMAKE_LINKER-ADVANCED:INTERNAL=1
+//Name of CMakeLists files to read
+CMAKE_LIST_FILE_NAME:INTERNAL=CMakeLists.txt
+//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS
+CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG
+CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL
+CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE
+CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO
+CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MT
+CMAKE_MT-ADVANCED:INTERNAL=1
+//number of local generators
+CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=1
+//Platform information initialized
+CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1
+//noop for ranlib
+CMAKE_RANLIB:INTERNAL=:
+//ADVANCED property for variable: CMAKE_RC_COMPILER
+CMAKE_RC_COMPILER-ADVANCED:INTERNAL=1
+CMAKE_RC_COMPILER_WORKS:INTERNAL=1
+//ADVANCED property for variable: CMAKE_RC_FLAGS
+CMAKE_RC_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_RC_FLAGS_DEBUG
+CMAKE_RC_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_RC_FLAGS_MINSIZEREL
+CMAKE_RC_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_RC_FLAGS_RELEASE
+CMAKE_RC_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_RC_FLAGS_RELWITHDEBINFO
+CMAKE_RC_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//Path to CMake installation.
+CMAKE_ROOT:INTERNAL=C:/Program Files/CMake/share/cmake-4.3
+//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS
+CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG
+CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL
+CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE
+CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO
+CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH
+CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SKIP_RPATH
+CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS
+CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG
+CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL
+CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE
+CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO
+CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE
+CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1
+
diff --git a/build/CMakeFiles/10582e4a3a4a0a14bb1a240ec1bb030d/generate.stamp.rule b/build/CMakeFiles/10582e4a3a4a0a14bb1a240ec1bb030d/generate.stamp.rule
new file mode 100644
index 0000000..2d3998c
--- /dev/null
+++ b/build/CMakeFiles/10582e4a3a4a0a14bb1a240ec1bb030d/generate.stamp.rule
@@ -0,0 +1 @@
+# generated from CMake
diff --git a/build/CMakeFiles/4.3.3/CMakeCXXCompiler.cmake b/build/CMakeFiles/4.3.3/CMakeCXXCompiler.cmake
new file mode 100644
index 0000000..6d8e4b7
--- /dev/null
+++ b/build/CMakeFiles/4.3.3/CMakeCXXCompiler.cmake
@@ -0,0 +1,102 @@
+set(CMAKE_CXX_COMPILER "C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.44.35207/bin/Hostx64/x64/cl.exe")
+set(CMAKE_CXX_COMPILER_ARG1 "")
+set(CMAKE_CXX_COMPILER_ID "MSVC")
+set(CMAKE_CXX_COMPILER_VERSION "19.44.35217.0")
+set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "")
+set(CMAKE_CXX_COMPILER_WRAPPER "")
+set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "14")
+set(CMAKE_CXX_EXTENSIONS_COMPUTED_DEFAULT "OFF")
+set(CMAKE_CXX_STANDARD_LATEST "23")
+set(CMAKE_CXX_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters;cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates;cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates;cxx_std_17;cxx_std_20;cxx_std_23")
+set(CMAKE_CXX98_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters")
+set(CMAKE_CXX11_COMPILE_FEATURES "cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates")
+set(CMAKE_CXX14_COMPILE_FEATURES "cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates")
+set(CMAKE_CXX17_COMPILE_FEATURES "cxx_std_17")
+set(CMAKE_CXX20_COMPILE_FEATURES "cxx_std_20")
+set(CMAKE_CXX23_COMPILE_FEATURES "cxx_std_23")
+set(CMAKE_CXX26_COMPILE_FEATURES "")
+
+set(CMAKE_CXX_PLATFORM_ID "Windows")
+set(CMAKE_CXX_SIMULATE_ID "")
+set(CMAKE_CXX_COMPILER_FRONTEND_VARIANT "MSVC")
+set(CMAKE_CXX_COMPILER_APPLE_SYSROOT "")
+set(CMAKE_CXX_SIMULATE_VERSION "")
+set(CMAKE_CXX_COMPILER_ARCHITECTURE_ID "x64")
+
+set(MSVC_CXX_ARCHITECTURE_ID x64)
+
+
+set(CMAKE_AR "C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.44.35207/bin/Hostx64/x64/lib.exe")
+set(CMAKE_CXX_COMPILER_AR "")
+set(CMAKE_RANLIB ":")
+set(CMAKE_CXX_COMPILER_RANLIB "")
+set(CMAKE_LINKER "C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.44.35207/bin/Hostx64/x64/link.exe")
+set(CMAKE_LINKER_LINK "C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.44.35207/bin/Hostx64/x64/link.exe")
+set(CMAKE_LINKER_LLD "lld-link")
+set(CMAKE_CXX_COMPILER_LINKER "C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.44.35207/bin/HostX64/x64/link.exe")
+set(CMAKE_CXX_COMPILER_LINKER_ID "MSVC")
+set(CMAKE_CXX_COMPILER_LINKER_VERSION 14.44.35217.0)
+set(CMAKE_CXX_COMPILER_LINKER_FRONTEND_VARIANT MSVC)
+set(CMAKE_MT "CMAKE_MT-NOTFOUND")
+set(CMAKE_TAPI "")
+set(CMAKE_COMPILER_IS_GNUCXX )
+set(CMAKE_CXX_COMPILER_LOADED 1)
+set(CMAKE_CXX_COMPILER_WORKS TRUE)
+set(CMAKE_CXX_ABI_COMPILED TRUE)
+
+set(CMAKE_CXX_COMPILER_ENV_VAR "CXX")
+
+set(CMAKE_CXX_COMPILER_ID_RUN 1)
+set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;m;mm;mpp;CPP;ixx;cppm;ccm;cxxm;c++m)
+set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC)
+
+foreach (lang IN ITEMS C OBJC OBJCXX)
+ if (CMAKE_${lang}_COMPILER_ID_RUN)
+ foreach(extension IN LISTS CMAKE_${lang}_SOURCE_FILE_EXTENSIONS)
+ list(REMOVE_ITEM CMAKE_CXX_SOURCE_FILE_EXTENSIONS ${extension})
+ endforeach()
+ endif()
+endforeach()
+
+set(CMAKE_CXX_LINKER_PREFERENCE 30)
+set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1)
+set(CMAKE_CXX_LINKER_DEPFILE_SUPPORTED )
+set(CMAKE_LINKER_PUSHPOP_STATE_SUPPORTED )
+set(CMAKE_CXX_LINKER_PUSHPOP_STATE_SUPPORTED )
+
+# Save compiler ABI information.
+set(CMAKE_CXX_SIZEOF_DATA_PTR "8")
+set(CMAKE_CXX_COMPILER_ABI "")
+set(CMAKE_CXX_BYTE_ORDER "LITTLE_ENDIAN")
+set(CMAKE_CXX_LIBRARY_ARCHITECTURE "")
+
+if(CMAKE_CXX_SIZEOF_DATA_PTR)
+ set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}")
+endif()
+
+if(CMAKE_CXX_COMPILER_ABI)
+ set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}")
+endif()
+
+if(CMAKE_CXX_LIBRARY_ARCHITECTURE)
+ set(CMAKE_LIBRARY_ARCHITECTURE "")
+endif()
+
+set(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX "")
+if(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX)
+ set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_CXX_CL_SHOWINCLUDES_PREFIX}")
+endif()
+
+
+
+
+
+set(CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES "")
+set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "")
+set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "")
+set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "")
+set(CMAKE_CXX_COMPILER_CLANG_RESOURCE_DIR "")
+
+set(CMAKE_CXX_COMPILER_IMPORT_STD "")
+set(CMAKE_CXX_COMPILER_IMPORT_STD_ERROR_MESSAGE "Unsupported generator: Visual Studio 17 2022")
+set(CMAKE_CXX_STDLIB_MODULES_JSON "")
diff --git a/build/CMakeFiles/4.3.3/CMakeDetermineCompilerABI_CXX.bin b/build/CMakeFiles/4.3.3/CMakeDetermineCompilerABI_CXX.bin
new file mode 100644
index 0000000..3850acf
Binary files /dev/null and b/build/CMakeFiles/4.3.3/CMakeDetermineCompilerABI_CXX.bin differ
diff --git a/build/CMakeFiles/4.3.3/CMakeRCCompiler.cmake b/build/CMakeFiles/4.3.3/CMakeRCCompiler.cmake
new file mode 100644
index 0000000..0f61961
--- /dev/null
+++ b/build/CMakeFiles/4.3.3/CMakeRCCompiler.cmake
@@ -0,0 +1,6 @@
+set(CMAKE_RC_COMPILER "rc")
+set(CMAKE_RC_COMPILER_ARG1 "")
+set(CMAKE_RC_COMPILER_LOADED 1)
+set(CMAKE_RC_SOURCE_FILE_EXTENSIONS rc;RC)
+set(CMAKE_RC_OUTPUT_EXTENSION .res)
+set(CMAKE_RC_COMPILER_ENV_VAR "RC")
diff --git a/build/CMakeFiles/4.3.3/CMakeSystem.cmake b/build/CMakeFiles/4.3.3/CMakeSystem.cmake
new file mode 100644
index 0000000..88ce365
--- /dev/null
+++ b/build/CMakeFiles/4.3.3/CMakeSystem.cmake
@@ -0,0 +1,15 @@
+set(CMAKE_HOST_SYSTEM "Windows-10.0.26200")
+set(CMAKE_HOST_SYSTEM_NAME "Windows")
+set(CMAKE_HOST_SYSTEM_VERSION "10.0.26200")
+set(CMAKE_HOST_SYSTEM_PROCESSOR "AMD64")
+
+
+
+set(CMAKE_SYSTEM "Windows-10.0.26200")
+set(CMAKE_SYSTEM_NAME "Windows")
+set(CMAKE_SYSTEM_VERSION "10.0.26200")
+set(CMAKE_SYSTEM_PROCESSOR "AMD64")
+
+set(CMAKE_CROSSCOMPILING "FALSE")
+
+set(CMAKE_SYSTEM_LOADED 1)
diff --git a/build/CMakeFiles/4.3.3/CompilerIdCXX/CMakeCXXCompilerId.cpp b/build/CMakeFiles/4.3.3/CompilerIdCXX/CMakeCXXCompilerId.cpp
new file mode 100644
index 0000000..b35f567
--- /dev/null
+++ b/build/CMakeFiles/4.3.3/CompilerIdCXX/CMakeCXXCompilerId.cpp
@@ -0,0 +1,949 @@
+/* This source file must have a .cpp extension so that all C++ compilers
+ recognize the extension without flags. Borland does not know .cxx for
+ example. */
+#ifndef __cplusplus
+# error "A C compiler has been selected for C++."
+#endif
+
+#if !defined(__has_include)
+/* If the compiler does not have __has_include, pretend the answer is
+ always no. */
+# define __has_include(x) 0
+#endif
+
+
+/* Version number components: V=Version, R=Revision, P=Patch
+ Version date components: YYYY=Year, MM=Month, DD=Day */
+
+#if defined(__INTEL_COMPILER) || defined(__ICC)
+# define COMPILER_ID "Intel"
+# if defined(_MSC_VER)
+# define SIMULATE_ID "MSVC"
+# endif
+# if defined(__GNUC__)
+# define SIMULATE_ID "GNU"
+# endif
+ /* __INTEL_COMPILER = VRP prior to 2021, and then VVVV for 2021 and later,
+ except that a few beta releases use the old format with V=2021. */
+# if __INTEL_COMPILER < 2021 || __INTEL_COMPILER == 202110 || __INTEL_COMPILER == 202111
+# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100)
+# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10)
+# if defined(__INTEL_COMPILER_UPDATE)
+# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE)
+# else
+# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10)
+# endif
+# else
+# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER)
+# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER_UPDATE)
+ /* The third version component from --version is an update index,
+ but no macro is provided for it. */
+# define COMPILER_VERSION_PATCH DEC(0)
+# endif
+# if defined(__INTEL_COMPILER_BUILD_DATE)
+ /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */
+# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE)
+# endif
+# if defined(_MSC_VER)
+ /* _MSC_VER = VVRR */
+# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
+# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
+# endif
+# if defined(__GNUC__)
+# define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
+# elif defined(__GNUG__)
+# define SIMULATE_VERSION_MAJOR DEC(__GNUG__)
+# endif
+# if defined(__GNUC_MINOR__)
+# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
+# endif
+# if defined(__GNUC_PATCHLEVEL__)
+# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
+# endif
+
+#elif (defined(__clang__) && defined(__INTEL_CLANG_COMPILER)) || defined(__INTEL_LLVM_COMPILER)
+# define COMPILER_ID "IntelLLVM"
+#if defined(_MSC_VER)
+# define SIMULATE_ID "MSVC"
+#endif
+#if defined(__GNUC__)
+# define SIMULATE_ID "GNU"
+#endif
+/* __INTEL_LLVM_COMPILER = VVVVRP prior to 2021.2.0, VVVVRRPP for 2021.2.0 and
+ * later. Look for 6 digit vs. 8 digit version number to decide encoding.
+ * VVVV is no smaller than the current year when a version is released.
+ */
+#if __INTEL_LLVM_COMPILER < 1000000L
+# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/100)
+# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 10)
+#else
+# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/10000)
+# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/100 % 100)
+# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 100)
+#endif
+#if defined(_MSC_VER)
+ /* _MSC_VER = VVRR */
+# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
+# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
+#endif
+#if defined(__GNUC__)
+# define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
+#elif defined(__GNUG__)
+# define SIMULATE_VERSION_MAJOR DEC(__GNUG__)
+#endif
+#if defined(__GNUC_MINOR__)
+# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
+#endif
+#if defined(__GNUC_PATCHLEVEL__)
+# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
+#endif
+
+#elif defined(__PATHCC__)
+# define COMPILER_ID "PathScale"
+# define COMPILER_VERSION_MAJOR DEC(__PATHCC__)
+# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__)
+# if defined(__PATHCC_PATCHLEVEL__)
+# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__)
+# endif
+
+#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__)
+# define COMPILER_ID "Embarcadero"
+# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF)
+# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF)
+# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF)
+
+#elif defined(__BORLANDC__)
+# define COMPILER_ID "Borland"
+ /* __BORLANDC__ = 0xVRR */
+# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8)
+# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF)
+
+#elif defined(__WATCOMC__) && __WATCOMC__ < 1200
+# define COMPILER_ID "Watcom"
+ /* __WATCOMC__ = VVRR */
+# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100)
+# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
+# if (__WATCOMC__ % 10) > 0
+# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
+# endif
+
+#elif defined(__WATCOMC__)
+# define COMPILER_ID "OpenWatcom"
+ /* __WATCOMC__ = VVRP + 1100 */
+# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100)
+# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
+# if (__WATCOMC__ % 10) > 0
+# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
+# endif
+
+#elif defined(__SUNPRO_CC)
+# define COMPILER_ID "SunPro"
+# if __SUNPRO_CC >= 0x5100
+ /* __SUNPRO_CC = 0xVRRP */
+# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>12)
+# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xFF)
+# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF)
+# else
+ /* __SUNPRO_CC = 0xVRP */
+# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>8)
+# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xF)
+# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF)
+# endif
+
+#elif defined(__HP_aCC)
+# define COMPILER_ID "HP"
+ /* __HP_aCC = VVRRPP */
+# define COMPILER_VERSION_MAJOR DEC(__HP_aCC/10000)
+# define COMPILER_VERSION_MINOR DEC(__HP_aCC/100 % 100)
+# define COMPILER_VERSION_PATCH DEC(__HP_aCC % 100)
+
+#elif defined(__DECCXX)
+# define COMPILER_ID "Compaq"
+ /* __DECCXX_VER = VVRRTPPPP */
+# define COMPILER_VERSION_MAJOR DEC(__DECCXX_VER/10000000)
+# define COMPILER_VERSION_MINOR DEC(__DECCXX_VER/100000 % 100)
+# define COMPILER_VERSION_PATCH DEC(__DECCXX_VER % 10000)
+
+#elif defined(__IBMCPP__) && defined(__COMPILER_VER__)
+# define COMPILER_ID "zOS"
+ /* __IBMCPP__ = VRP */
+# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
+# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10)
+
+#elif defined(__open_xl__) && defined(__clang__)
+# define COMPILER_ID "IBMClang"
+# define COMPILER_VERSION_MAJOR DEC(__open_xl_version__)
+# define COMPILER_VERSION_MINOR DEC(__open_xl_release__)
+# define COMPILER_VERSION_PATCH DEC(__open_xl_modification__)
+# define COMPILER_VERSION_TWEAK DEC(__open_xl_ptf_fix_level__)
+# define COMPILER_VERSION_INTERNAL_STR __clang_version__
+
+
+#elif defined(__ibmxl__) && defined(__clang__)
+# define COMPILER_ID "XLClang"
+# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__)
+# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__)
+# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__)
+# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__)
+
+
+#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ >= 800
+# define COMPILER_ID "XL"
+ /* __IBMCPP__ = VRP */
+# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
+# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10)
+
+#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ < 800
+# define COMPILER_ID "VisualAge"
+ /* __IBMCPP__ = VRP */
+# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
+# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10)
+
+#elif defined(__NVCOMPILER)
+# define COMPILER_ID "NVHPC"
+# define COMPILER_VERSION_MAJOR DEC(__NVCOMPILER_MAJOR__)
+# define COMPILER_VERSION_MINOR DEC(__NVCOMPILER_MINOR__)
+# if defined(__NVCOMPILER_PATCHLEVEL__)
+# define COMPILER_VERSION_PATCH DEC(__NVCOMPILER_PATCHLEVEL__)
+# endif
+
+#elif defined(__PGI)
+# define COMPILER_ID "PGI"
+# define COMPILER_VERSION_MAJOR DEC(__PGIC__)
+# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__)
+# if defined(__PGIC_PATCHLEVEL__)
+# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__)
+# endif
+
+#elif defined(__clang__) && defined(__cray__)
+# define COMPILER_ID "CrayClang"
+# define COMPILER_VERSION_MAJOR DEC(__cray_major__)
+# define COMPILER_VERSION_MINOR DEC(__cray_minor__)
+# define COMPILER_VERSION_PATCH DEC(__cray_patchlevel__)
+# define COMPILER_VERSION_INTERNAL_STR __clang_version__
+
+
+#elif defined(_CRAYC)
+# define COMPILER_ID "Cray"
+# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR)
+# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR)
+
+#elif defined(__TI_COMPILER_VERSION__)
+# define COMPILER_ID "TI"
+ /* __TI_COMPILER_VERSION__ = VVVRRRPPP */
+# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000)
+# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000)
+# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000)
+
+#elif defined(__CLANG_FUJITSU)
+# define COMPILER_ID "FujitsuClang"
+# define COMPILER_VERSION_MAJOR DEC(__FCC_major__)
+# define COMPILER_VERSION_MINOR DEC(__FCC_minor__)
+# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__)
+# define COMPILER_VERSION_INTERNAL_STR __clang_version__
+
+
+#elif defined(__FUJITSU)
+# define COMPILER_ID "Fujitsu"
+# if defined(__FCC_version__)
+# define COMPILER_VERSION __FCC_version__
+# elif defined(__FCC_major__)
+# define COMPILER_VERSION_MAJOR DEC(__FCC_major__)
+# define COMPILER_VERSION_MINOR DEC(__FCC_minor__)
+# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__)
+# endif
+# if defined(__fcc_version)
+# define COMPILER_VERSION_INTERNAL DEC(__fcc_version)
+# elif defined(__FCC_VERSION)
+# define COMPILER_VERSION_INTERNAL DEC(__FCC_VERSION)
+# endif
+
+
+#elif defined(__ghs__)
+# define COMPILER_ID "GHS"
+/* __GHS_VERSION_NUMBER = VVVVRP */
+# ifdef __GHS_VERSION_NUMBER
+# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100)
+# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10)
+# endif
+
+#elif defined(__TASKING__)
+# define COMPILER_ID "Tasking"
+ # define COMPILER_VERSION_MAJOR DEC(__VERSION__/1000)
+ # define COMPILER_VERSION_MINOR DEC(__VERSION__ % 100)
+# define COMPILER_VERSION_INTERNAL DEC(__VERSION__)
+
+#elif defined(__ORANGEC__)
+# define COMPILER_ID "OrangeC"
+# define COMPILER_VERSION_MAJOR DEC(__ORANGEC_MAJOR__)
+# define COMPILER_VERSION_MINOR DEC(__ORANGEC_MINOR__)
+# define COMPILER_VERSION_PATCH DEC(__ORANGEC_PATCHLEVEL__)
+
+#elif defined(__RENESAS__)
+# define COMPILER_ID "Renesas"
+/* __RENESAS_VERSION__ = 0xVVRRPP00 */
+# define COMPILER_VERSION_MAJOR HEX(__RENESAS_VERSION__ >> 24 & 0xFF)
+# define COMPILER_VERSION_MINOR HEX(__RENESAS_VERSION__ >> 16 & 0xFF)
+# define COMPILER_VERSION_PATCH HEX(__RENESAS_VERSION__ >> 8 & 0xFF)
+
+#elif defined(__SCO_VERSION__)
+# define COMPILER_ID "SCO"
+
+#elif defined(__ARMCC_VERSION) && !defined(__clang__)
+# define COMPILER_ID "ARMCC"
+#if __ARMCC_VERSION >= 1000000
+ /* __ARMCC_VERSION = VRRPPPP */
+ # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000)
+ # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100)
+ # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000)
+#else
+ /* __ARMCC_VERSION = VRPPPP */
+ # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000)
+ # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10)
+ # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000)
+#endif
+
+
+#elif defined(__clang__) && defined(__apple_build_version__)
+# define COMPILER_ID "AppleClang"
+# if defined(_MSC_VER)
+# define SIMULATE_ID "MSVC"
+# endif
+# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
+# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
+# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
+# if defined(_MSC_VER)
+ /* _MSC_VER = VVRR */
+# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
+# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
+# endif
+# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__)
+
+#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION)
+# define COMPILER_ID "ARMClang"
+ # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000)
+ # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100)
+ # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION/100 % 100)
+# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION)
+
+#elif defined(__clang__) && defined(__ti__)
+# define COMPILER_ID "TIClang"
+ # define COMPILER_VERSION_MAJOR DEC(__ti_major__)
+ # define COMPILER_VERSION_MINOR DEC(__ti_minor__)
+ # define COMPILER_VERSION_PATCH DEC(__ti_patchlevel__)
+# define COMPILER_VERSION_INTERNAL DEC(__ti_version__)
+
+#elif defined(__clang__)
+# define COMPILER_ID "Clang"
+# if defined(_MSC_VER)
+# define SIMULATE_ID "MSVC"
+# endif
+# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
+# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
+# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
+# if defined(_MSC_VER)
+ /* _MSC_VER = VVRR */
+# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
+# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
+# endif
+
+#elif defined(__LCC__) && (defined(__GNUC__) || defined(__GNUG__) || defined(__MCST__))
+# define COMPILER_ID "LCC"
+# define COMPILER_VERSION_MAJOR DEC(__LCC__ / 100)
+# define COMPILER_VERSION_MINOR DEC(__LCC__ % 100)
+# if defined(__LCC_MINOR__)
+# define COMPILER_VERSION_PATCH DEC(__LCC_MINOR__)
+# endif
+# if defined(__GNUC__) && defined(__GNUC_MINOR__)
+# define SIMULATE_ID "GNU"
+# define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
+# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
+# if defined(__GNUC_PATCHLEVEL__)
+# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
+# endif
+# endif
+
+#elif defined(__GNUC__) || defined(__GNUG__)
+# define COMPILER_ID "GNU"
+# if defined(__GNUC__)
+# define COMPILER_VERSION_MAJOR DEC(__GNUC__)
+# else
+# define COMPILER_VERSION_MAJOR DEC(__GNUG__)
+# endif
+# if defined(__GNUC_MINOR__)
+# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__)
+# endif
+# if defined(__GNUC_PATCHLEVEL__)
+# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
+# endif
+
+#elif defined(_MSC_VER)
+# define COMPILER_ID "MSVC"
+ /* _MSC_VER = VVRR */
+# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100)
+# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100)
+# if defined(_MSC_FULL_VER)
+# if _MSC_VER >= 1400
+ /* _MSC_FULL_VER = VVRRPPPPP */
+# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000)
+# else
+ /* _MSC_FULL_VER = VVRRPPPP */
+# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000)
+# endif
+# endif
+# if defined(_MSC_BUILD)
+# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD)
+# endif
+
+#elif defined(_ADI_COMPILER)
+# define COMPILER_ID "ADSP"
+#if defined(__VERSIONNUM__)
+ /* __VERSIONNUM__ = 0xVVRRPPTT */
+# define COMPILER_VERSION_MAJOR DEC(__VERSIONNUM__ >> 24 & 0xFF)
+# define COMPILER_VERSION_MINOR DEC(__VERSIONNUM__ >> 16 & 0xFF)
+# define COMPILER_VERSION_PATCH DEC(__VERSIONNUM__ >> 8 & 0xFF)
+# define COMPILER_VERSION_TWEAK DEC(__VERSIONNUM__ & 0xFF)
+#endif
+
+#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
+# define COMPILER_ID "IAR"
+# if defined(__VER__) && defined(__ICCARM__)
+# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000)
+# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000)
+# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000)
+# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)
+# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__) || defined(__ICCSTM8__))
+# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100)
+# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100))
+# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__)
+# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)
+# endif
+
+#elif defined(__DCC__) && defined(_DIAB_TOOL)
+# define COMPILER_ID "Diab"
+ # define COMPILER_VERSION_MAJOR DEC(__VERSION_MAJOR_NUMBER__)
+ # define COMPILER_VERSION_MINOR DEC(__VERSION_MINOR_NUMBER__)
+ # define COMPILER_VERSION_PATCH DEC(__VERSION_ARCH_FEATURE_NUMBER__)
+ # define COMPILER_VERSION_TWEAK DEC(__VERSION_BUG_FIX_NUMBER__)
+
+
+
+/* These compilers are either not known or too old to define an
+ identification macro. Try to identify the platform and guess that
+ it is the native compiler. */
+#elif defined(__hpux) || defined(__hpua)
+# define COMPILER_ID "HP"
+
+#else /* unknown compiler */
+# define COMPILER_ID ""
+#endif
+
+/* Construct the string literal in pieces to prevent the source from
+ getting matched. Store it in a pointer rather than an array
+ because some compilers will just produce instructions to fill the
+ array rather than assigning a pointer to a static array. */
+char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]";
+#ifdef SIMULATE_ID
+char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]";
+#endif
+
+#ifdef __QNXNTO__
+char const* qnxnto = "INFO" ":" "qnxnto[]";
+#endif
+
+#if defined(__CRAYXT_COMPUTE_LINUX_TARGET)
+char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]";
+#endif
+
+#define STRINGIFY_HELPER(X) #X
+#define STRINGIFY(X) STRINGIFY_HELPER(X)
+
+/* Identify known platforms by name. */
+#if defined(__linux) || defined(__linux__) || defined(linux)
+# define PLATFORM_ID "Linux"
+
+#elif defined(__MSYS__)
+# define PLATFORM_ID "MSYS"
+
+#elif defined(__CYGWIN__)
+# define PLATFORM_ID "Cygwin"
+
+#elif defined(__MINGW32__)
+# define PLATFORM_ID "MinGW"
+
+#elif defined(__APPLE__)
+# define PLATFORM_ID "Darwin"
+
+#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
+# define PLATFORM_ID "Windows"
+
+#elif defined(__FreeBSD__) || defined(__FreeBSD)
+# define PLATFORM_ID "FreeBSD"
+
+#elif defined(__NetBSD__) || defined(__NetBSD)
+# define PLATFORM_ID "NetBSD"
+
+#elif defined(__OpenBSD__) || defined(__OPENBSD)
+# define PLATFORM_ID "OpenBSD"
+
+#elif defined(__sun) || defined(sun)
+# define PLATFORM_ID "SunOS"
+
+#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__)
+# define PLATFORM_ID "AIX"
+
+#elif defined(__hpux) || defined(__hpux__)
+# define PLATFORM_ID "HP-UX"
+
+#elif defined(__HAIKU__)
+# define PLATFORM_ID "Haiku"
+
+#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS)
+# define PLATFORM_ID "BeOS"
+
+#elif defined(__QNX__) || defined(__QNXNTO__)
+# define PLATFORM_ID "QNX"
+
+#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__)
+# define PLATFORM_ID "Tru64"
+
+#elif defined(__riscos) || defined(__riscos__)
+# define PLATFORM_ID "RISCos"
+
+#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__)
+# define PLATFORM_ID "SINIX"
+
+#elif defined(__UNIX_SV__)
+# define PLATFORM_ID "UNIX_SV"
+
+#elif defined(__bsdos__)
+# define PLATFORM_ID "BSDOS"
+
+#elif defined(_MPRAS) || defined(MPRAS)
+# define PLATFORM_ID "MP-RAS"
+
+#elif defined(__osf) || defined(__osf__)
+# define PLATFORM_ID "OSF1"
+
+#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv)
+# define PLATFORM_ID "SCO_SV"
+
+#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX)
+# define PLATFORM_ID "ULTRIX"
+
+#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX)
+# define PLATFORM_ID "Xenix"
+
+#elif defined(__WATCOMC__)
+# if defined(__LINUX__)
+# define PLATFORM_ID "Linux"
+
+# elif defined(__DOS__)
+# define PLATFORM_ID "DOS"
+
+# elif defined(__OS2__)
+# define PLATFORM_ID "OS2"
+
+# elif defined(__WINDOWS__)
+# define PLATFORM_ID "Windows3x"
+
+# elif defined(__VXWORKS__)
+# define PLATFORM_ID "VxWorks"
+
+# else /* unknown platform */
+# define PLATFORM_ID
+# endif
+
+#elif defined(__INTEGRITY)
+# if defined(INT_178B)
+# define PLATFORM_ID "Integrity178"
+
+# else /* regular Integrity */
+# define PLATFORM_ID "Integrity"
+# endif
+
+# elif defined(_ADI_COMPILER)
+# define PLATFORM_ID "ADSP"
+
+#else /* unknown platform */
+# define PLATFORM_ID
+
+#endif
+
+/* For windows compilers MSVC and Intel we can determine
+ the architecture of the compiler being used. This is because
+ the compilers do not have flags that can change the architecture,
+ but rather depend on which compiler is being used
+*/
+#if defined(_WIN32) && defined(_MSC_VER)
+# if defined(_M_IA64)
+# define ARCHITECTURE_ID "IA64"
+
+# elif defined(_M_ARM64EC)
+# define ARCHITECTURE_ID "ARM64EC"
+
+# elif defined(_M_X64) || defined(_M_AMD64)
+# define ARCHITECTURE_ID "x64"
+
+# elif defined(_M_IX86)
+# define ARCHITECTURE_ID "X86"
+
+# elif defined(_M_ARM64)
+# define ARCHITECTURE_ID "ARM64"
+
+# elif defined(_M_ARM)
+# if _M_ARM == 4
+# define ARCHITECTURE_ID "ARMV4I"
+# elif _M_ARM == 5
+# define ARCHITECTURE_ID "ARMV5I"
+# else
+# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM)
+# endif
+
+# elif defined(_M_MIPS)
+# define ARCHITECTURE_ID "MIPS"
+
+# elif defined(_M_SH)
+# define ARCHITECTURE_ID "SHx"
+
+# else /* unknown architecture */
+# define ARCHITECTURE_ID ""
+# endif
+
+#elif defined(__WATCOMC__)
+# if defined(_M_I86)
+# define ARCHITECTURE_ID "I86"
+
+# elif defined(_M_IX86)
+# define ARCHITECTURE_ID "X86"
+
+# else /* unknown architecture */
+# define ARCHITECTURE_ID ""
+# endif
+
+#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
+# if defined(__ICCARM__)
+# define ARCHITECTURE_ID "ARM"
+
+# elif defined(__ICCRX__)
+# define ARCHITECTURE_ID "RX"
+
+# elif defined(__ICCRH850__)
+# define ARCHITECTURE_ID "RH850"
+
+# elif defined(__ICCRL78__)
+# define ARCHITECTURE_ID "RL78"
+
+# elif defined(__ICCRISCV__)
+# define ARCHITECTURE_ID "RISCV"
+
+# elif defined(__ICCAVR__)
+# define ARCHITECTURE_ID "AVR"
+
+# elif defined(__ICC430__)
+# define ARCHITECTURE_ID "MSP430"
+
+# elif defined(__ICCV850__)
+# define ARCHITECTURE_ID "V850"
+
+# elif defined(__ICC8051__)
+# define ARCHITECTURE_ID "8051"
+
+# elif defined(__ICCSTM8__)
+# define ARCHITECTURE_ID "STM8"
+
+# else /* unknown architecture */
+# define ARCHITECTURE_ID ""
+# endif
+
+#elif defined(__ghs__)
+# if defined(__PPC64__)
+# define ARCHITECTURE_ID "PPC64"
+
+# elif defined(__ppc__)
+# define ARCHITECTURE_ID "PPC"
+
+# elif defined(__ARM__)
+# define ARCHITECTURE_ID "ARM"
+
+# elif defined(__x86_64__)
+# define ARCHITECTURE_ID "x64"
+
+# elif defined(__i386__)
+# define ARCHITECTURE_ID "X86"
+
+# else /* unknown architecture */
+# define ARCHITECTURE_ID ""
+# endif
+
+#elif defined(__clang__) && defined(__ti__)
+# if defined(__ARM_ARCH)
+# define ARCHITECTURE_ID "ARM"
+
+# else /* unknown architecture */
+# define ARCHITECTURE_ID ""
+# endif
+
+#elif defined(__TI_COMPILER_VERSION__)
+# if defined(__TI_ARM__)
+# define ARCHITECTURE_ID "ARM"
+
+# elif defined(__MSP430__)
+# define ARCHITECTURE_ID "MSP430"
+
+# elif defined(__TMS320C28XX__)
+# define ARCHITECTURE_ID "TMS320C28x"
+
+# elif defined(__TMS320C6X__) || defined(_TMS320C6X)
+# define ARCHITECTURE_ID "TMS320C6x"
+
+# else /* unknown architecture */
+# define ARCHITECTURE_ID ""
+# endif
+
+# elif defined(__ADSPSHARC__)
+# define ARCHITECTURE_ID "SHARC"
+
+# elif defined(__ADSPBLACKFIN__)
+# define ARCHITECTURE_ID "Blackfin"
+
+#elif defined(__TASKING__)
+
+# if defined(__CTC__) || defined(__CPTC__)
+# define ARCHITECTURE_ID "TriCore"
+
+# elif defined(__CMCS__)
+# define ARCHITECTURE_ID "MCS"
+
+# elif defined(__CARM__) || defined(__CPARM__)
+# define ARCHITECTURE_ID "ARM"
+
+# elif defined(__CARC__)
+# define ARCHITECTURE_ID "ARC"
+
+# elif defined(__C51__)
+# define ARCHITECTURE_ID "8051"
+
+# elif defined(__CPCP__)
+# define ARCHITECTURE_ID "PCP"
+
+# else
+# define ARCHITECTURE_ID ""
+# endif
+
+#elif defined(__RENESAS__)
+# if defined(__CCRX__)
+# define ARCHITECTURE_ID "RX"
+
+# elif defined(__CCRL__)
+# define ARCHITECTURE_ID "RL78"
+
+# elif defined(__CCRH__)
+# define ARCHITECTURE_ID "RH850"
+
+# else
+# define ARCHITECTURE_ID ""
+# endif
+
+#else
+# define ARCHITECTURE_ID
+#endif
+
+/* Convert integer to decimal digit literals. */
+#define DEC(n) \
+ ('0' + (((n) / 10000000)%10)), \
+ ('0' + (((n) / 1000000)%10)), \
+ ('0' + (((n) / 100000)%10)), \
+ ('0' + (((n) / 10000)%10)), \
+ ('0' + (((n) / 1000)%10)), \
+ ('0' + (((n) / 100)%10)), \
+ ('0' + (((n) / 10)%10)), \
+ ('0' + ((n) % 10))
+
+/* Convert integer to hex digit literals. */
+#define HEX(n) \
+ ('0' + ((n)>>28 & 0xF)), \
+ ('0' + ((n)>>24 & 0xF)), \
+ ('0' + ((n)>>20 & 0xF)), \
+ ('0' + ((n)>>16 & 0xF)), \
+ ('0' + ((n)>>12 & 0xF)), \
+ ('0' + ((n)>>8 & 0xF)), \
+ ('0' + ((n)>>4 & 0xF)), \
+ ('0' + ((n) & 0xF))
+
+/* Construct a string literal encoding the version number. */
+#ifdef COMPILER_VERSION
+char const* info_version = "INFO" ":" "compiler_version[" COMPILER_VERSION "]";
+
+/* Construct a string literal encoding the version number components. */
+#elif defined(COMPILER_VERSION_MAJOR)
+char const info_version[] = {
+ 'I', 'N', 'F', 'O', ':',
+ 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[',
+ COMPILER_VERSION_MAJOR,
+# ifdef COMPILER_VERSION_MINOR
+ '.', COMPILER_VERSION_MINOR,
+# ifdef COMPILER_VERSION_PATCH
+ '.', COMPILER_VERSION_PATCH,
+# ifdef COMPILER_VERSION_TWEAK
+ '.', COMPILER_VERSION_TWEAK,
+# endif
+# endif
+# endif
+ ']','\0'};
+#endif
+
+/* Construct a string literal encoding the internal version number. */
+#ifdef COMPILER_VERSION_INTERNAL
+char const info_version_internal[] = {
+ 'I', 'N', 'F', 'O', ':',
+ 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_',
+ 'i','n','t','e','r','n','a','l','[',
+ COMPILER_VERSION_INTERNAL,']','\0'};
+#elif defined(COMPILER_VERSION_INTERNAL_STR)
+char const* info_version_internal = "INFO" ":" "compiler_version_internal[" COMPILER_VERSION_INTERNAL_STR "]";
+#endif
+
+/* Construct a string literal encoding the version number components. */
+#ifdef SIMULATE_VERSION_MAJOR
+char const info_simulate_version[] = {
+ 'I', 'N', 'F', 'O', ':',
+ 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[',
+ SIMULATE_VERSION_MAJOR,
+# ifdef SIMULATE_VERSION_MINOR
+ '.', SIMULATE_VERSION_MINOR,
+# ifdef SIMULATE_VERSION_PATCH
+ '.', SIMULATE_VERSION_PATCH,
+# ifdef SIMULATE_VERSION_TWEAK
+ '.', SIMULATE_VERSION_TWEAK,
+# endif
+# endif
+# endif
+ ']','\0'};
+#endif
+
+/* Construct the string literal in pieces to prevent the source from
+ getting matched. Store it in a pointer rather than an array
+ because some compilers will just produce instructions to fill the
+ array rather than assigning a pointer to a static array. */
+char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]";
+char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]";
+
+
+
+#define CXX_STD_98 199711L
+#define CXX_STD_11 201103L
+#define CXX_STD_14 201402L
+#define CXX_STD_17 201703L
+#define CXX_STD_20 202002L
+#define CXX_STD_23 202302L
+
+#if defined(__INTEL_COMPILER) && defined(_MSVC_LANG)
+# if _MSVC_LANG > CXX_STD_17
+# define CXX_STD _MSVC_LANG
+# elif _MSVC_LANG == CXX_STD_17 && defined(__cpp_aggregate_paren_init)
+# define CXX_STD CXX_STD_20
+# elif _MSVC_LANG > CXX_STD_14 && __cplusplus > CXX_STD_17
+# define CXX_STD CXX_STD_20
+# elif _MSVC_LANG > CXX_STD_14
+# define CXX_STD CXX_STD_17
+# elif defined(__INTEL_CXX11_MODE__) && defined(__cpp_aggregate_nsdmi)
+# define CXX_STD CXX_STD_14
+# elif defined(__INTEL_CXX11_MODE__)
+# define CXX_STD CXX_STD_11
+# else
+# define CXX_STD CXX_STD_98
+# endif
+#elif defined(_MSC_VER) && defined(_MSVC_LANG)
+# if _MSVC_LANG > __cplusplus
+# define CXX_STD _MSVC_LANG
+# else
+# define CXX_STD __cplusplus
+# endif
+#elif defined(__NVCOMPILER)
+# if __cplusplus == CXX_STD_17 && defined(__cpp_aggregate_paren_init)
+# define CXX_STD CXX_STD_20
+# else
+# define CXX_STD __cplusplus
+# endif
+#elif defined(__INTEL_COMPILER) || defined(__PGI)
+# if __cplusplus == CXX_STD_11 && defined(__cpp_namespace_attributes)
+# define CXX_STD CXX_STD_17
+# elif __cplusplus == CXX_STD_11 && defined(__cpp_aggregate_nsdmi)
+# define CXX_STD CXX_STD_14
+# else
+# define CXX_STD __cplusplus
+# endif
+#elif (defined(__IBMCPP__) || defined(__ibmxl__)) && defined(__linux__)
+# if __cplusplus == CXX_STD_11 && defined(__cpp_aggregate_nsdmi)
+# define CXX_STD CXX_STD_14
+# else
+# define CXX_STD __cplusplus
+# endif
+#elif __cplusplus == 1 && defined(__GXX_EXPERIMENTAL_CXX0X__)
+# define CXX_STD CXX_STD_11
+#else
+# define CXX_STD __cplusplus
+#endif
+
+const char* info_language_standard_default = "INFO" ":" "standard_default["
+#if CXX_STD > CXX_STD_23
+ "26"
+#elif CXX_STD > CXX_STD_20
+ "23"
+#elif CXX_STD > CXX_STD_17
+ "20"
+#elif CXX_STD > CXX_STD_14
+ "17"
+#elif CXX_STD > CXX_STD_11
+ "14"
+#elif CXX_STD >= CXX_STD_11
+ "11"
+#else
+ "98"
+#endif
+"]";
+
+const char* info_language_extensions_default = "INFO" ":" "extensions_default["
+#if (defined(__clang__) || defined(__GNUC__) || defined(__xlC__) || \
+ defined(__TI_COMPILER_VERSION__) || defined(__RENESAS__)) && \
+ !defined(__STRICT_ANSI__)
+ "ON"
+#else
+ "OFF"
+#endif
+"]";
+
+/*--------------------------------------------------------------------------*/
+
+int main(int argc, char* argv[])
+{
+ int require = 0;
+ require += info_compiler[argc];
+ require += info_platform[argc];
+ require += info_arch[argc];
+#ifdef COMPILER_VERSION_MAJOR
+ require += info_version[argc];
+#endif
+#if defined(COMPILER_VERSION_INTERNAL) || defined(COMPILER_VERSION_INTERNAL_STR)
+ require += info_version_internal[argc];
+#endif
+#ifdef SIMULATE_ID
+ require += info_simulate[argc];
+#endif
+#ifdef SIMULATE_VERSION_MAJOR
+ require += info_simulate_version[argc];
+#endif
+#if defined(__CRAYXT_COMPUTE_LINUX_TARGET)
+ require += info_cray[argc];
+#endif
+ require += info_language_standard_default[argc];
+ require += info_language_extensions_default[argc];
+ (void)argv;
+ return require;
+}
diff --git a/build/CMakeFiles/4.3.3/CompilerIdCXX/CompilerIdCXX.exe b/build/CMakeFiles/4.3.3/CompilerIdCXX/CompilerIdCXX.exe
new file mode 100644
index 0000000..cd1608c
Binary files /dev/null and b/build/CMakeFiles/4.3.3/CompilerIdCXX/CompilerIdCXX.exe differ
diff --git a/build/CMakeFiles/4.3.3/CompilerIdCXX/CompilerIdCXX.vcxproj b/build/CMakeFiles/4.3.3/CompilerIdCXX/CompilerIdCXX.vcxproj
new file mode 100644
index 0000000..67e6b4f
--- /dev/null
+++ b/build/CMakeFiles/4.3.3/CompilerIdCXX/CompilerIdCXX.vcxproj
@@ -0,0 +1,72 @@
+
+
+
+
+ Debug
+ x64
+
+
+
+ {CAE07175-D007-4FC3-BFE8-47B392814159}
+ CompilerIdCXX
+ Win32Proj
+
+
+ 10.0.26100.0
+
+
+
+
+
+
+
+
+ x64
+
+
+ Application
+ v143
+
+ MultiByte
+
+
+
+
+
+
+ <_ProjectFileVersion>10.0.30319.1
+ .\
+ $(Configuration)\
+ false
+
+
+
+ Disabled
+ %(PreprocessorDefinitions)
+ false
+ EnableFastChecks
+ MultiThreadedDebugDLL
+
+
+ TurnOffAllWarnings
+
+
+
+
+
+ false
+ Console
+
+
+
+ for %%i in (cl.exe) do %40echo CMAKE_CXX_COMPILER=%%~$PATH:i
+
+
+
+
+
+
+
+
+
+
diff --git a/build/CMakeFiles/4.3.3/CompilerIdCXX/Debug/CMakeCXXCompilerId.obj b/build/CMakeFiles/4.3.3/CompilerIdCXX/Debug/CMakeCXXCompilerId.obj
new file mode 100644
index 0000000..7614355
Binary files /dev/null and b/build/CMakeFiles/4.3.3/CompilerIdCXX/Debug/CMakeCXXCompilerId.obj differ
diff --git a/build/CMakeFiles/4.3.3/CompilerIdCXX/Debug/CompilerIdCXX.exe.recipe b/build/CMakeFiles/4.3.3/CompilerIdCXX/Debug/CompilerIdCXX.exe.recipe
new file mode 100644
index 0000000..ffefd14
--- /dev/null
+++ b/build/CMakeFiles/4.3.3/CompilerIdCXX/Debug/CompilerIdCXX.exe.recipe
@@ -0,0 +1,11 @@
+
+
+
+
+ C:\Users\simulateur\Documents\Webcam\build\CMakeFiles\4.3.3\CompilerIdCXX\CompilerIdCXX.exe
+
+
+
+
+
+
\ No newline at end of file
diff --git a/build/CMakeFiles/4.3.3/CompilerIdCXX/Debug/CompilerIdCXX.tlog/CL.command.1.tlog b/build/CMakeFiles/4.3.3/CompilerIdCXX/Debug/CompilerIdCXX.tlog/CL.command.1.tlog
new file mode 100644
index 0000000..ffa3cbb
Binary files /dev/null and b/build/CMakeFiles/4.3.3/CompilerIdCXX/Debug/CompilerIdCXX.tlog/CL.command.1.tlog differ
diff --git a/build/CMakeFiles/4.3.3/CompilerIdCXX/Debug/CompilerIdCXX.tlog/CL.read.1.tlog b/build/CMakeFiles/4.3.3/CompilerIdCXX/Debug/CompilerIdCXX.tlog/CL.read.1.tlog
new file mode 100644
index 0000000..63716ed
Binary files /dev/null and b/build/CMakeFiles/4.3.3/CompilerIdCXX/Debug/CompilerIdCXX.tlog/CL.read.1.tlog differ
diff --git a/build/CMakeFiles/4.3.3/CompilerIdCXX/Debug/CompilerIdCXX.tlog/CL.write.1.tlog b/build/CMakeFiles/4.3.3/CompilerIdCXX/Debug/CompilerIdCXX.tlog/CL.write.1.tlog
new file mode 100644
index 0000000..a0f9823
Binary files /dev/null and b/build/CMakeFiles/4.3.3/CompilerIdCXX/Debug/CompilerIdCXX.tlog/CL.write.1.tlog differ
diff --git a/build/CMakeFiles/4.3.3/CompilerIdCXX/Debug/CompilerIdCXX.tlog/Cl.items.tlog b/build/CMakeFiles/4.3.3/CompilerIdCXX/Debug/CompilerIdCXX.tlog/Cl.items.tlog
new file mode 100644
index 0000000..da40e05
--- /dev/null
+++ b/build/CMakeFiles/4.3.3/CompilerIdCXX/Debug/CompilerIdCXX.tlog/Cl.items.tlog
@@ -0,0 +1 @@
+C:\Users\simulateur\Documents\Webcam\build\CMakeFiles\4.3.3\CompilerIdCXX\CMakeCXXCompilerId.cpp;C:\Users\simulateur\Documents\Webcam\build\CMakeFiles\4.3.3\CompilerIdCXX\Debug\CMakeCXXCompilerId.obj
diff --git a/build/CMakeFiles/4.3.3/CompilerIdCXX/Debug/CompilerIdCXX.tlog/CompilerIdCXX.lastbuildstate b/build/CMakeFiles/4.3.3/CompilerIdCXX/Debug/CompilerIdCXX.tlog/CompilerIdCXX.lastbuildstate
new file mode 100644
index 0000000..0f0b13f
--- /dev/null
+++ b/build/CMakeFiles/4.3.3/CompilerIdCXX/Debug/CompilerIdCXX.tlog/CompilerIdCXX.lastbuildstate
@@ -0,0 +1,2 @@
+PlatformToolSet=v143:VCToolArchitecture=Native64Bit:VCToolsVersion=14.44.35207:TargetPlatformVersion=10.0.26100.0:
+Debug|x64|C:\Users\simulateur\Documents\Webcam\build\CMakeFiles\4.3.3\CompilerIdCXX\|
diff --git a/build/CMakeFiles/4.3.3/CompilerIdCXX/Debug/CompilerIdCXX.tlog/link.command.1.tlog b/build/CMakeFiles/4.3.3/CompilerIdCXX/Debug/CompilerIdCXX.tlog/link.command.1.tlog
new file mode 100644
index 0000000..277dcfc
Binary files /dev/null and b/build/CMakeFiles/4.3.3/CompilerIdCXX/Debug/CompilerIdCXX.tlog/link.command.1.tlog differ
diff --git a/build/CMakeFiles/4.3.3/CompilerIdCXX/Debug/CompilerIdCXX.tlog/link.read.1.tlog b/build/CMakeFiles/4.3.3/CompilerIdCXX/Debug/CompilerIdCXX.tlog/link.read.1.tlog
new file mode 100644
index 0000000..e82202d
Binary files /dev/null and b/build/CMakeFiles/4.3.3/CompilerIdCXX/Debug/CompilerIdCXX.tlog/link.read.1.tlog differ
diff --git a/build/CMakeFiles/4.3.3/CompilerIdCXX/Debug/CompilerIdCXX.tlog/link.secondary.1.tlog b/build/CMakeFiles/4.3.3/CompilerIdCXX/Debug/CompilerIdCXX.tlog/link.secondary.1.tlog
new file mode 100644
index 0000000..e8ae6e7
--- /dev/null
+++ b/build/CMakeFiles/4.3.3/CompilerIdCXX/Debug/CompilerIdCXX.tlog/link.secondary.1.tlog
@@ -0,0 +1 @@
+^C:\USERS\SIMULATEUR\DOCUMENTS\WEBCAM\BUILD\CMAKEFILES\4.3.3\COMPILERIDCXX\DEBUG\CMAKECXXCOMPILERID.OBJ
diff --git a/build/CMakeFiles/4.3.3/CompilerIdCXX/Debug/CompilerIdCXX.tlog/link.write.1.tlog b/build/CMakeFiles/4.3.3/CompilerIdCXX/Debug/CompilerIdCXX.tlog/link.write.1.tlog
new file mode 100644
index 0000000..4e2fa27
Binary files /dev/null and b/build/CMakeFiles/4.3.3/CompilerIdCXX/Debug/CompilerIdCXX.tlog/link.write.1.tlog differ
diff --git a/build/CMakeFiles/4.3.3/VCTargetsPath.txt b/build/CMakeFiles/4.3.3/VCTargetsPath.txt
new file mode 100644
index 0000000..513c277
--- /dev/null
+++ b/build/CMakeFiles/4.3.3/VCTargetsPath.txt
@@ -0,0 +1 @@
+C:/Program Files/Microsoft Visual Studio/2022/Community/MSBuild/Microsoft/VC/v170
diff --git a/build/CMakeFiles/4.3.3/VCTargetsPath.vcxproj b/build/CMakeFiles/4.3.3/VCTargetsPath.vcxproj
new file mode 100644
index 0000000..a6410c4
--- /dev/null
+++ b/build/CMakeFiles/4.3.3/VCTargetsPath.vcxproj
@@ -0,0 +1,31 @@
+
+
+
+
+ Debug
+ x64
+
+
+
+ {F3FC6D86-508D-3FB1-96D2-995F08B142EC}
+ Win32Proj
+ x64
+ 10.0.26100.0
+
+
+
+ x64
+
+
+ Utility
+ MultiByte
+ v143
+
+
+
+
+ echo VCTargetsPath=$(VCTargetsPath)
+
+
+
+
diff --git a/build/CMakeFiles/4.3.3/VCTargetsPath/x64/Debug/VCTargetsPath.recipe b/build/CMakeFiles/4.3.3/VCTargetsPath/x64/Debug/VCTargetsPath.recipe
new file mode 100644
index 0000000..d449f02
--- /dev/null
+++ b/build/CMakeFiles/4.3.3/VCTargetsPath/x64/Debug/VCTargetsPath.recipe
@@ -0,0 +1,11 @@
+
+
+
+
+ C:\Users\simulateur\Documents\Webcam\build\CMakeFiles\4.3.3\x64\Debug\VCTargetsPath
+
+
+
+
+
+
\ No newline at end of file
diff --git a/build/CMakeFiles/4.3.3/VCTargetsPath/x64/Debug/VCTargetsPath.tlog/VCTargetsPath.lastbuildstate b/build/CMakeFiles/4.3.3/VCTargetsPath/x64/Debug/VCTargetsPath.tlog/VCTargetsPath.lastbuildstate
new file mode 100644
index 0000000..b442d3b
--- /dev/null
+++ b/build/CMakeFiles/4.3.3/VCTargetsPath/x64/Debug/VCTargetsPath.tlog/VCTargetsPath.lastbuildstate
@@ -0,0 +1,2 @@
+PlatformToolSet=v143:VCToolArchitecture=Native64Bit:VCToolsVersion=14.44.35207:TargetPlatformVersion=10.0.26100.0:
+Debug|x64|C:\Users\simulateur\Documents\Webcam\build\CMakeFiles\4.3.3\|
diff --git a/build/CMakeFiles/CMakeConfigureLog.yaml b/build/CMakeFiles/CMakeConfigureLog.yaml
new file mode 100644
index 0000000..cbae84a
--- /dev/null
+++ b/build/CMakeFiles/CMakeConfigureLog.yaml
@@ -0,0 +1,1383 @@
+
+---
+events:
+ -
+ kind: "message-v1"
+ backtrace:
+ - "C:/Program Files/CMake/share/cmake-4.3/Modules/CMakeDetermineSystem.cmake:212 (message)"
+ - "CMakeLists.txt:3 (project)"
+ message: |
+ The system is: Windows - 10.0.26200 - AMD64
+ -
+ kind: "find-v1"
+ backtrace:
+ - "C:/Program Files/CMake/share/cmake-4.3/Modules/CMakeDetermineCompilerId.cmake:468 (find_file)"
+ - "C:/Program Files/CMake/share/cmake-4.3/Modules/CMakeDetermineCompilerId.cmake:506 (CMAKE_DETERMINE_COMPILER_ID_WRITE)"
+ - "C:/Program Files/CMake/share/cmake-4.3/Modules/CMakeDetermineCompilerId.cmake:8 (CMAKE_DETERMINE_COMPILER_ID_BUILD)"
+ - "C:/Program Files/CMake/share/cmake-4.3/Modules/CMakeDetermineCompilerId.cmake:64 (__determine_compiler_id_test)"
+ - "C:/Program Files/CMake/share/cmake-4.3/Modules/CMakeDetermineCXXCompiler.cmake:125 (CMAKE_DETERMINE_COMPILER_ID)"
+ - "CMakeLists.txt:3 (project)"
+ mode: "file"
+ variable: "src_in"
+ description: "Path to a file."
+ settings:
+ SearchFramework: "NEVER"
+ SearchAppBundle: "NEVER"
+ CMAKE_FIND_USE_CMAKE_PATH: true
+ CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH: true
+ CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH: true
+ CMAKE_FIND_USE_CMAKE_SYSTEM_PATH: true
+ CMAKE_FIND_USE_INSTALL_PREFIX: true
+ names:
+ - "CMakeCXXCompilerId.cpp.in"
+ candidate_directories:
+ - "C:/Program Files/CMake/share/cmake-4.3/Modules/"
+ found: "C:/Program Files/CMake/share/cmake-4.3/Modules/CMakeCXXCompilerId.cpp.in"
+ search_context:
+ ENV{PATH}:
+ - "C:\\Users\\simulateur\\bin"
+ - "C:\\Program Files\\Git\\mingw64\\bin"
+ - "C:\\Program Files\\Git\\usr\\local\\bin"
+ - "C:\\Program Files\\Git\\usr\\bin"
+ - "C:\\Program Files\\Git\\usr\\bin"
+ - "C:\\Program Files\\Git\\mingw64\\bin"
+ - "C:\\Program Files\\Git\\usr\\bin"
+ - "C:\\Users\\simulateur\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Roaming\\Code\\User\\globalStorage\\github.copilot-chat\\debugCommand"
+ - "C:\\Users\\simulateur\\AppData\\Roaming\\Code\\User\\globalStorage\\github.copilot-chat\\copilotCli"
+ - "C:\\Program Files\\Common Files\\Oracle\\Java\\javapath"
+ - "C:\\WINDOWS\\system32"
+ - "C:\\WINDOWS"
+ - "C:\\WINDOWS\\System32\\Wbem"
+ - "C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0"
+ - "C:\\WINDOWS\\System32\\OpenSSH"
+ - "C:\\Program Files (x86)\\HP\\HP Performance Advisor"
+ - "C:\\Program Files\\dotnet"
+ - "C:\\Program Files\\Git\\cmd"
+ - "C:\\Program Files\\nodejs"
+ - "C:\\Program Files\\TortoiseGit\\bin"
+ - "C:\\Program Files (x86)\\Windows Kits\\10\\Windows Performance Toolkit"
+ - "C:\\Users\\simulateur\\Downloads\\vcpkg"
+ - "C:\\Users\\simulateur\\.jdks\\valhalla-ea-23-valhalla+1-90\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\CLion\\bin\\cmake\\win\\x64\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Inno Setup 6"
+ - "C:\\Program Files\\WireGuard"
+ - "C:\\Program Files\\Cloudflare\\Cloudflare WARP"
+ - "C:\\Program Files\\CMake\\bin"
+ - "C:\\Users\\simulateur\\.local\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Python\\Python313\\Scripts"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Python\\Python313"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Python\\Python311\\Scripts"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Python\\Python311"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Microsoft\\WindowsApps"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Microsoft VS Code\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Roaming\\npm"
+ - "C:\\Users\\simulateur\\AppData\\Local\\JetBrains\\Toolbox\\scripts"
+ - "C:\\Users\\simulateur\\.dotnet\\tools"
+ - "C:\\Users\\simulateur\\Downloads\\vcpkg"
+ - "C:\\Users\\simulateur\\.jdks\\valhalla-ea-23-valhalla+1-90\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\CLion\\bin\\cmake\\win\\x64\\bin"
+ - "C:\\Program Files\\Processing"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Python\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Inno Setup 6"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\cursor\\resources\\app\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Ollama"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Antigravity\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Microsoft\\WindowsApps"
+ - "C:\\Program Files\\Git\\usr\\bin\\vendor_perl"
+ - "C:\\Program Files\\Git\\usr\\bin\\core_perl"
+ -
+ kind: "message-v1"
+ backtrace:
+ - "C:/Program Files/CMake/share/cmake-4.3/Modules/CMakeDetermineCompilerId.cmake:17 (message)"
+ - "C:/Program Files/CMake/share/cmake-4.3/Modules/CMakeDetermineCompilerId.cmake:64 (__determine_compiler_id_test)"
+ - "C:/Program Files/CMake/share/cmake-4.3/Modules/CMakeDetermineCXXCompiler.cmake:125 (CMAKE_DETERMINE_COMPILER_ID)"
+ - "CMakeLists.txt:3 (project)"
+ message: |
+ Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" succeeded.
+ Compiler:
+ Build flags:
+ Id flags:
+
+ The output was:
+ 0
+ Version MSBuild 17.14.23+b0019275e pour .NET Framework
+ La g├®n├®ration a d├®marr├® 07/07/2026 16:51:55.
+
+ Projet "C:\\Users\\simulateur\\Documents\\Webcam\\build\\CMakeFiles\\4.3.3\\CompilerIdCXX\\CompilerIdCXX.vcxproj" sur le n┼ôud 1 (cibles par d├®faut).
+ PrepareForBuild:
+ Cr├®ation du r├®pertoire "Debug\\".
+ La sortie structur├®e est activ├®e. La mise en forme du compilateur diagnostics refl├¿te la hi├®rarchie des erreurs. Pour plus dÔÇÖinformations, consultez https://aka.ms/cpp/structured-output.
+ Cr├®ation du r├®pertoire "Debug\\CompilerIdCXX.tlog\\".
+ InitializeBuildStatus:
+ Cr├®ation de "Debug\\CompilerIdCXX.tlog\\unsuccessfulbuild", car "AlwaysCreate" a ├®t├® sp├®cifi├®.
+ Mise à jour de l'horodatage "Debug\\CompilerIdCXX.tlog\\unsuccessfulbuild".
+ ClCompile:
+ C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.44.35207\\bin\\HostX64\\x64\\CL.exe /c /nologo /W0 /WX- /diagnostics:column /Od /D _MBCS /Gm- /EHsc /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /Fo"Debug\\\\" /Fd"Debug\\vc143.pdb" /external:W0 /Gd /TP /FC /errorReport:queue CMakeCXXCompilerId.cpp
+ CMakeCXXCompilerId.cpp
+ Link:
+ C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.44.35207\\bin\\HostX64\\x64\\link.exe /ERRORREPORT:QUEUE /OUT:".\\CompilerIdCXX.exe" /INCREMENTAL:NO /NOLOGO kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /MANIFEST /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /manifest:embed /PDB:".\\CompilerIdCXX.pdb" /SUBSYSTEM:CONSOLE /TLBID:1 /DYNAMICBASE /NXCOMPAT /IMPLIB:".\\CompilerIdCXX.lib" /MACHINE:X64 Debug\\CMakeCXXCompilerId.obj
+ CompilerIdCXX.vcxproj -> C:\\Users\\simulateur\\Documents\\Webcam\\build\\CMakeFiles\\4.3.3\\CompilerIdCXX\\CompilerIdCXX.exe
+ PostBuildEvent:
+ for %%i in (cl.exe) do @echo CMAKE_CXX_COMPILER=%%~$PATH:i
+ :VCEnd
+ CMAKE_CXX_COMPILER=C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.44.35207\\bin\\Hostx64\\x64\\cl.exe
+ FinalizeBuildStatus:
+ Suppression du fichier "Debug\\CompilerIdCXX.tlog\\unsuccessfulbuild".
+ Mise à jour de l'horodatage "Debug\\CompilerIdCXX.tlog\\CompilerIdCXX.lastbuildstate".
+ G├®n├®ration du projet "C:\\Users\\simulateur\\Documents\\Webcam\\build\\CMakeFiles\\4.3.3\\CompilerIdCXX\\CompilerIdCXX.vcxproj" termin├®e (cibles par d├®faut).
+
+ La g├®n├®ration a r├®ussi.
+ 0 Avertissement(s)
+ 0 Erreur(s)
+
+ Temps ├®coul├® 00:00:00.90
+
+
+ Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "CompilerIdCXX.exe"
+
+ Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "CompilerIdCXX.vcxproj"
+
+ The CXX compiler identification is MSVC, found in:
+ C:/Users/simulateur/Documents/Webcam/build/CMakeFiles/4.3.3/CompilerIdCXX/CompilerIdCXX.exe
+
+ -
+ kind: "find-v1"
+ backtrace:
+ - "C:/Program Files/CMake/share/cmake-4.3/Modules/CMakeFindBinUtils.cmake:37 (find_program)"
+ - "C:/Program Files/CMake/share/cmake-4.3/Modules/CMakeFindBinUtils.cmake:65 (__resolve_tool_path)"
+ - "C:/Program Files/CMake/share/cmake-4.3/Modules/CMakeFindBinUtils.cmake:103 (__resolve_linker_path)"
+ - "C:/Program Files/CMake/share/cmake-4.3/Modules/CMakeDetermineCXXCompiler.cmake:206 (include)"
+ - "CMakeLists.txt:3 (project)"
+ mode: "program"
+ variable: "_CMAKE_TOOL_WITH_PATH"
+ description: "Path to a program."
+ settings:
+ SearchFramework: "NEVER"
+ SearchAppBundle: "NEVER"
+ CMAKE_FIND_USE_CMAKE_PATH: false
+ CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH: false
+ CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH: true
+ CMAKE_FIND_USE_CMAKE_SYSTEM_PATH: true
+ CMAKE_FIND_USE_INSTALL_PREFIX: true
+ names:
+ - "link"
+ candidate_directories:
+ - "C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.44.35207/bin/Hostx64/x64/"
+ - "C:/Users/simulateur/bin/"
+ - "C:/Program Files/Git/mingw64/bin/"
+ - "C:/Program Files/Git/usr/local/bin/"
+ - "C:/Program Files/Git/usr/bin/"
+ - "C:/Users/simulateur/AppData/Roaming/Code/User/globalStorage/github.copilot-chat/debugCommand/"
+ - "C:/Users/simulateur/AppData/Roaming/Code/User/globalStorage/github.copilot-chat/copilotCli/"
+ - "C:/Program Files/Common Files/Oracle/Java/javapath/"
+ - "C:/Windows/System32/"
+ - "C:/Windows/"
+ - "C:/Windows/System32/wbem/"
+ - "C:/Windows/System32/WindowsPowerShell/v1.0/"
+ - "C:/Windows/System32/OpenSSH/"
+ - "C:/Program Files (x86)/HP/HP Performance Advisor/"
+ - "C:/Program Files/dotnet/"
+ - "C:/Program Files/Git/cmd/"
+ - "C:/Program Files/nodejs/"
+ - "C:/Program Files/TortoiseGit/bin/"
+ - "C:/Program Files (x86)/Windows Kits/10/Windows Performance Toolkit/"
+ - "C:/Users/simulateur/Downloads/vcpkg/"
+ - "C:/Users/simulateur/.jdks/valhalla-ea-23-valhalla+1-90/bin/"
+ - "C:/Users/simulateur/AppData/Local/Programs/CLion/bin/cmake/win/x64/bin/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Inno Setup 6/"
+ - "C:/Program Files/WireGuard/"
+ - "C:/Program Files/Cloudflare/Cloudflare WARP/"
+ - "C:/Program Files/CMake/bin/"
+ - "C:/Users/simulateur/.local/bin/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python313/Scripts/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python313/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python311/Scripts/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python311/"
+ - "C:/Users/simulateur/AppData/Local/Microsoft/WindowsApps/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Microsoft VS Code/bin/"
+ - "C:/Users/simulateur/AppData/Roaming/npm/"
+ - "C:/Users/simulateur/AppData/Local/JetBrains/Toolbox/scripts/"
+ - "C:/Users/simulateur/.dotnet/tools/"
+ - "C:/Program Files/Processing/"
+ - "C:/Users/simulateur/AppData/Local/Python/bin/"
+ - "C:/Users/simulateur/AppData/Local/Programs/cursor/resources/app/bin/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Ollama/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Antigravity/bin/"
+ - "C:/Program Files/Git/usr/bin/vendor_perl/"
+ - "C:/Program Files/Git/usr/bin/core_perl/"
+ searched_directories:
+ - "C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.44.35207/bin/Hostx64/x64/link.com"
+ found: "C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.44.35207/bin/Hostx64/x64/link.exe"
+ search_context:
+ ENV{PATH}:
+ - "C:\\Users\\simulateur\\bin"
+ - "C:\\Program Files\\Git\\mingw64\\bin"
+ - "C:\\Program Files\\Git\\usr\\local\\bin"
+ - "C:\\Program Files\\Git\\usr\\bin"
+ - "C:\\Program Files\\Git\\usr\\bin"
+ - "C:\\Program Files\\Git\\mingw64\\bin"
+ - "C:\\Program Files\\Git\\usr\\bin"
+ - "C:\\Users\\simulateur\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Roaming\\Code\\User\\globalStorage\\github.copilot-chat\\debugCommand"
+ - "C:\\Users\\simulateur\\AppData\\Roaming\\Code\\User\\globalStorage\\github.copilot-chat\\copilotCli"
+ - "C:\\Program Files\\Common Files\\Oracle\\Java\\javapath"
+ - "C:\\WINDOWS\\system32"
+ - "C:\\WINDOWS"
+ - "C:\\WINDOWS\\System32\\Wbem"
+ - "C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0"
+ - "C:\\WINDOWS\\System32\\OpenSSH"
+ - "C:\\Program Files (x86)\\HP\\HP Performance Advisor"
+ - "C:\\Program Files\\dotnet"
+ - "C:\\Program Files\\Git\\cmd"
+ - "C:\\Program Files\\nodejs"
+ - "C:\\Program Files\\TortoiseGit\\bin"
+ - "C:\\Program Files (x86)\\Windows Kits\\10\\Windows Performance Toolkit"
+ - "C:\\Users\\simulateur\\Downloads\\vcpkg"
+ - "C:\\Users\\simulateur\\.jdks\\valhalla-ea-23-valhalla+1-90\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\CLion\\bin\\cmake\\win\\x64\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Inno Setup 6"
+ - "C:\\Program Files\\WireGuard"
+ - "C:\\Program Files\\Cloudflare\\Cloudflare WARP"
+ - "C:\\Program Files\\CMake\\bin"
+ - "C:\\Users\\simulateur\\.local\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Python\\Python313\\Scripts"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Python\\Python313"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Python\\Python311\\Scripts"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Python\\Python311"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Microsoft\\WindowsApps"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Microsoft VS Code\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Roaming\\npm"
+ - "C:\\Users\\simulateur\\AppData\\Local\\JetBrains\\Toolbox\\scripts"
+ - "C:\\Users\\simulateur\\.dotnet\\tools"
+ - "C:\\Users\\simulateur\\Downloads\\vcpkg"
+ - "C:\\Users\\simulateur\\.jdks\\valhalla-ea-23-valhalla+1-90\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\CLion\\bin\\cmake\\win\\x64\\bin"
+ - "C:\\Program Files\\Processing"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Python\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Inno Setup 6"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\cursor\\resources\\app\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Ollama"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Antigravity\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Microsoft\\WindowsApps"
+ - "C:\\Program Files\\Git\\usr\\bin\\vendor_perl"
+ - "C:\\Program Files\\Git\\usr\\bin\\core_perl"
+ -
+ kind: "find-v1"
+ backtrace:
+ - "C:/Program Files/CMake/share/cmake-4.3/Modules/CMakeFindBinUtils.cmake:37 (find_program)"
+ - "C:/Program Files/CMake/share/cmake-4.3/Modules/CMakeFindBinUtils.cmake:65 (__resolve_tool_path)"
+ - "C:/Program Files/CMake/share/cmake-4.3/Modules/CMakeFindBinUtils.cmake:104 (__resolve_linker_path)"
+ - "C:/Program Files/CMake/share/cmake-4.3/Modules/CMakeDetermineCXXCompiler.cmake:206 (include)"
+ - "CMakeLists.txt:3 (project)"
+ mode: "program"
+ variable: "_CMAKE_TOOL_WITH_PATH"
+ description: "Path to a program."
+ settings:
+ SearchFramework: "NEVER"
+ SearchAppBundle: "NEVER"
+ CMAKE_FIND_USE_CMAKE_PATH: false
+ CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH: false
+ CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH: true
+ CMAKE_FIND_USE_CMAKE_SYSTEM_PATH: true
+ CMAKE_FIND_USE_INSTALL_PREFIX: true
+ names:
+ - "lld-link"
+ candidate_directories:
+ - "C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.44.35207/bin/Hostx64/x64/"
+ - "C:/Users/simulateur/bin/"
+ - "C:/Program Files/Git/mingw64/bin/"
+ - "C:/Program Files/Git/usr/local/bin/"
+ - "C:/Program Files/Git/usr/bin/"
+ - "C:/Users/simulateur/AppData/Roaming/Code/User/globalStorage/github.copilot-chat/debugCommand/"
+ - "C:/Users/simulateur/AppData/Roaming/Code/User/globalStorage/github.copilot-chat/copilotCli/"
+ - "C:/Program Files/Common Files/Oracle/Java/javapath/"
+ - "C:/Windows/System32/"
+ - "C:/Windows/"
+ - "C:/Windows/System32/wbem/"
+ - "C:/Windows/System32/WindowsPowerShell/v1.0/"
+ - "C:/Windows/System32/OpenSSH/"
+ - "C:/Program Files (x86)/HP/HP Performance Advisor/"
+ - "C:/Program Files/dotnet/"
+ - "C:/Program Files/Git/cmd/"
+ - "C:/Program Files/nodejs/"
+ - "C:/Program Files/TortoiseGit/bin/"
+ - "C:/Program Files (x86)/Windows Kits/10/Windows Performance Toolkit/"
+ - "C:/Users/simulateur/Downloads/vcpkg/"
+ - "C:/Users/simulateur/.jdks/valhalla-ea-23-valhalla+1-90/bin/"
+ - "C:/Users/simulateur/AppData/Local/Programs/CLion/bin/cmake/win/x64/bin/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Inno Setup 6/"
+ - "C:/Program Files/WireGuard/"
+ - "C:/Program Files/Cloudflare/Cloudflare WARP/"
+ - "C:/Program Files/CMake/bin/"
+ - "C:/Users/simulateur/.local/bin/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python313/Scripts/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python313/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python311/Scripts/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python311/"
+ - "C:/Users/simulateur/AppData/Local/Microsoft/WindowsApps/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Microsoft VS Code/bin/"
+ - "C:/Users/simulateur/AppData/Roaming/npm/"
+ - "C:/Users/simulateur/AppData/Local/JetBrains/Toolbox/scripts/"
+ - "C:/Users/simulateur/.dotnet/tools/"
+ - "C:/Program Files/Processing/"
+ - "C:/Users/simulateur/AppData/Local/Python/bin/"
+ - "C:/Users/simulateur/AppData/Local/Programs/cursor/resources/app/bin/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Ollama/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Antigravity/bin/"
+ - "C:/Program Files/Git/usr/bin/vendor_perl/"
+ - "C:/Program Files/Git/usr/bin/core_perl/"
+ searched_directories:
+ - "C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.44.35207/bin/Hostx64/x64/lld-link.com"
+ - "C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.44.35207/bin/Hostx64/x64/lld-link.exe"
+ - "C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.44.35207/bin/Hostx64/x64/lld-link"
+ - "C:/Users/simulateur/bin/lld-link.com"
+ - "C:/Users/simulateur/bin/lld-link.exe"
+ - "C:/Users/simulateur/bin/lld-link"
+ - "C:/Program Files/Git/mingw64/bin/lld-link.com"
+ - "C:/Program Files/Git/mingw64/bin/lld-link.exe"
+ - "C:/Program Files/Git/mingw64/bin/lld-link"
+ - "C:/Program Files/Git/usr/local/bin/lld-link.com"
+ - "C:/Program Files/Git/usr/local/bin/lld-link.exe"
+ - "C:/Program Files/Git/usr/local/bin/lld-link"
+ - "C:/Program Files/Git/usr/bin/lld-link.com"
+ - "C:/Program Files/Git/usr/bin/lld-link.exe"
+ - "C:/Program Files/Git/usr/bin/lld-link"
+ - "C:/Users/simulateur/AppData/Roaming/Code/User/globalStorage/github.copilot-chat/debugCommand/lld-link.com"
+ - "C:/Users/simulateur/AppData/Roaming/Code/User/globalStorage/github.copilot-chat/debugCommand/lld-link.exe"
+ - "C:/Users/simulateur/AppData/Roaming/Code/User/globalStorage/github.copilot-chat/debugCommand/lld-link"
+ - "C:/Users/simulateur/AppData/Roaming/Code/User/globalStorage/github.copilot-chat/copilotCli/lld-link.com"
+ - "C:/Users/simulateur/AppData/Roaming/Code/User/globalStorage/github.copilot-chat/copilotCli/lld-link.exe"
+ - "C:/Users/simulateur/AppData/Roaming/Code/User/globalStorage/github.copilot-chat/copilotCli/lld-link"
+ - "C:/Program Files/Common Files/Oracle/Java/javapath/lld-link.com"
+ - "C:/Program Files/Common Files/Oracle/Java/javapath/lld-link.exe"
+ - "C:/Program Files/Common Files/Oracle/Java/javapath/lld-link"
+ - "C:/Windows/System32/lld-link.com"
+ - "C:/Windows/System32/lld-link.exe"
+ - "C:/Windows/System32/lld-link"
+ - "C:/Windows/lld-link.com"
+ - "C:/Windows/lld-link.exe"
+ - "C:/Windows/lld-link"
+ - "C:/Windows/System32/wbem/lld-link.com"
+ - "C:/Windows/System32/wbem/lld-link.exe"
+ - "C:/Windows/System32/wbem/lld-link"
+ - "C:/Windows/System32/WindowsPowerShell/v1.0/lld-link.com"
+ - "C:/Windows/System32/WindowsPowerShell/v1.0/lld-link.exe"
+ - "C:/Windows/System32/WindowsPowerShell/v1.0/lld-link"
+ - "C:/Windows/System32/OpenSSH/lld-link.com"
+ - "C:/Windows/System32/OpenSSH/lld-link.exe"
+ - "C:/Windows/System32/OpenSSH/lld-link"
+ - "C:/Program Files (x86)/HP/HP Performance Advisor/lld-link.com"
+ - "C:/Program Files (x86)/HP/HP Performance Advisor/lld-link.exe"
+ - "C:/Program Files (x86)/HP/HP Performance Advisor/lld-link"
+ - "C:/Program Files/dotnet/lld-link.com"
+ - "C:/Program Files/dotnet/lld-link.exe"
+ - "C:/Program Files/dotnet/lld-link"
+ - "C:/Program Files/Git/cmd/lld-link.com"
+ - "C:/Program Files/Git/cmd/lld-link.exe"
+ - "C:/Program Files/Git/cmd/lld-link"
+ - "C:/Program Files/nodejs/lld-link.com"
+ - "C:/Program Files/nodejs/lld-link.exe"
+ - "C:/Program Files/nodejs/lld-link"
+ - "C:/Program Files/TortoiseGit/bin/lld-link.com"
+ - "C:/Program Files/TortoiseGit/bin/lld-link.exe"
+ - "C:/Program Files/TortoiseGit/bin/lld-link"
+ - "C:/Program Files (x86)/Windows Kits/10/Windows Performance Toolkit/lld-link.com"
+ - "C:/Program Files (x86)/Windows Kits/10/Windows Performance Toolkit/lld-link.exe"
+ - "C:/Program Files (x86)/Windows Kits/10/Windows Performance Toolkit/lld-link"
+ - "C:/Users/simulateur/Downloads/vcpkg/lld-link.com"
+ - "C:/Users/simulateur/Downloads/vcpkg/lld-link.exe"
+ - "C:/Users/simulateur/Downloads/vcpkg/lld-link"
+ - "C:/Users/simulateur/.jdks/valhalla-ea-23-valhalla+1-90/bin/lld-link.com"
+ - "C:/Users/simulateur/.jdks/valhalla-ea-23-valhalla+1-90/bin/lld-link.exe"
+ - "C:/Users/simulateur/.jdks/valhalla-ea-23-valhalla+1-90/bin/lld-link"
+ - "C:/Users/simulateur/AppData/Local/Programs/CLion/bin/cmake/win/x64/bin/lld-link.com"
+ - "C:/Users/simulateur/AppData/Local/Programs/CLion/bin/cmake/win/x64/bin/lld-link.exe"
+ - "C:/Users/simulateur/AppData/Local/Programs/CLion/bin/cmake/win/x64/bin/lld-link"
+ - "C:/Users/simulateur/AppData/Local/Programs/Inno Setup 6/lld-link.com"
+ - "C:/Users/simulateur/AppData/Local/Programs/Inno Setup 6/lld-link.exe"
+ - "C:/Users/simulateur/AppData/Local/Programs/Inno Setup 6/lld-link"
+ - "C:/Program Files/WireGuard/lld-link.com"
+ - "C:/Program Files/WireGuard/lld-link.exe"
+ - "C:/Program Files/WireGuard/lld-link"
+ - "C:/Program Files/Cloudflare/Cloudflare WARP/lld-link.com"
+ - "C:/Program Files/Cloudflare/Cloudflare WARP/lld-link.exe"
+ - "C:/Program Files/Cloudflare/Cloudflare WARP/lld-link"
+ - "C:/Program Files/CMake/bin/lld-link.com"
+ - "C:/Program Files/CMake/bin/lld-link.exe"
+ - "C:/Program Files/CMake/bin/lld-link"
+ - "C:/Users/simulateur/.local/bin/lld-link.com"
+ - "C:/Users/simulateur/.local/bin/lld-link.exe"
+ - "C:/Users/simulateur/.local/bin/lld-link"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python313/Scripts/lld-link.com"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python313/Scripts/lld-link.exe"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python313/Scripts/lld-link"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python313/lld-link.com"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python313/lld-link.exe"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python313/lld-link"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python311/Scripts/lld-link.com"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python311/Scripts/lld-link.exe"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python311/Scripts/lld-link"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python311/lld-link.com"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python311/lld-link.exe"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python311/lld-link"
+ - "C:/Users/simulateur/AppData/Local/Microsoft/WindowsApps/lld-link.com"
+ - "C:/Users/simulateur/AppData/Local/Microsoft/WindowsApps/lld-link.exe"
+ - "C:/Users/simulateur/AppData/Local/Microsoft/WindowsApps/lld-link"
+ - "C:/Users/simulateur/AppData/Local/Programs/Microsoft VS Code/bin/lld-link.com"
+ - "C:/Users/simulateur/AppData/Local/Programs/Microsoft VS Code/bin/lld-link.exe"
+ - "C:/Users/simulateur/AppData/Local/Programs/Microsoft VS Code/bin/lld-link"
+ - "C:/Users/simulateur/AppData/Roaming/npm/lld-link.com"
+ - "C:/Users/simulateur/AppData/Roaming/npm/lld-link.exe"
+ - "C:/Users/simulateur/AppData/Roaming/npm/lld-link"
+ - "C:/Users/simulateur/AppData/Local/JetBrains/Toolbox/scripts/lld-link.com"
+ - "C:/Users/simulateur/AppData/Local/JetBrains/Toolbox/scripts/lld-link.exe"
+ - "C:/Users/simulateur/AppData/Local/JetBrains/Toolbox/scripts/lld-link"
+ - "C:/Users/simulateur/.dotnet/tools/lld-link.com"
+ - "C:/Users/simulateur/.dotnet/tools/lld-link.exe"
+ - "C:/Users/simulateur/.dotnet/tools/lld-link"
+ - "C:/Program Files/Processing/lld-link.com"
+ - "C:/Program Files/Processing/lld-link.exe"
+ - "C:/Program Files/Processing/lld-link"
+ - "C:/Users/simulateur/AppData/Local/Python/bin/lld-link.com"
+ - "C:/Users/simulateur/AppData/Local/Python/bin/lld-link.exe"
+ - "C:/Users/simulateur/AppData/Local/Python/bin/lld-link"
+ - "C:/Users/simulateur/AppData/Local/Programs/cursor/resources/app/bin/lld-link.com"
+ - "C:/Users/simulateur/AppData/Local/Programs/cursor/resources/app/bin/lld-link.exe"
+ - "C:/Users/simulateur/AppData/Local/Programs/cursor/resources/app/bin/lld-link"
+ - "C:/Users/simulateur/AppData/Local/Programs/Ollama/lld-link.com"
+ - "C:/Users/simulateur/AppData/Local/Programs/Ollama/lld-link.exe"
+ - "C:/Users/simulateur/AppData/Local/Programs/Ollama/lld-link"
+ - "C:/Users/simulateur/AppData/Local/Programs/Antigravity/bin/lld-link.com"
+ - "C:/Users/simulateur/AppData/Local/Programs/Antigravity/bin/lld-link.exe"
+ - "C:/Users/simulateur/AppData/Local/Programs/Antigravity/bin/lld-link"
+ - "C:/Program Files/Git/usr/bin/vendor_perl/lld-link.com"
+ - "C:/Program Files/Git/usr/bin/vendor_perl/lld-link.exe"
+ - "C:/Program Files/Git/usr/bin/vendor_perl/lld-link"
+ - "C:/Program Files/Git/usr/bin/core_perl/lld-link.com"
+ - "C:/Program Files/Git/usr/bin/core_perl/lld-link.exe"
+ - "C:/Program Files/Git/usr/bin/core_perl/lld-link"
+ found: false
+ search_context:
+ ENV{PATH}:
+ - "C:\\Users\\simulateur\\bin"
+ - "C:\\Program Files\\Git\\mingw64\\bin"
+ - "C:\\Program Files\\Git\\usr\\local\\bin"
+ - "C:\\Program Files\\Git\\usr\\bin"
+ - "C:\\Program Files\\Git\\usr\\bin"
+ - "C:\\Program Files\\Git\\mingw64\\bin"
+ - "C:\\Program Files\\Git\\usr\\bin"
+ - "C:\\Users\\simulateur\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Roaming\\Code\\User\\globalStorage\\github.copilot-chat\\debugCommand"
+ - "C:\\Users\\simulateur\\AppData\\Roaming\\Code\\User\\globalStorage\\github.copilot-chat\\copilotCli"
+ - "C:\\Program Files\\Common Files\\Oracle\\Java\\javapath"
+ - "C:\\WINDOWS\\system32"
+ - "C:\\WINDOWS"
+ - "C:\\WINDOWS\\System32\\Wbem"
+ - "C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0"
+ - "C:\\WINDOWS\\System32\\OpenSSH"
+ - "C:\\Program Files (x86)\\HP\\HP Performance Advisor"
+ - "C:\\Program Files\\dotnet"
+ - "C:\\Program Files\\Git\\cmd"
+ - "C:\\Program Files\\nodejs"
+ - "C:\\Program Files\\TortoiseGit\\bin"
+ - "C:\\Program Files (x86)\\Windows Kits\\10\\Windows Performance Toolkit"
+ - "C:\\Users\\simulateur\\Downloads\\vcpkg"
+ - "C:\\Users\\simulateur\\.jdks\\valhalla-ea-23-valhalla+1-90\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\CLion\\bin\\cmake\\win\\x64\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Inno Setup 6"
+ - "C:\\Program Files\\WireGuard"
+ - "C:\\Program Files\\Cloudflare\\Cloudflare WARP"
+ - "C:\\Program Files\\CMake\\bin"
+ - "C:\\Users\\simulateur\\.local\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Python\\Python313\\Scripts"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Python\\Python313"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Python\\Python311\\Scripts"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Python\\Python311"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Microsoft\\WindowsApps"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Microsoft VS Code\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Roaming\\npm"
+ - "C:\\Users\\simulateur\\AppData\\Local\\JetBrains\\Toolbox\\scripts"
+ - "C:\\Users\\simulateur\\.dotnet\\tools"
+ - "C:\\Users\\simulateur\\Downloads\\vcpkg"
+ - "C:\\Users\\simulateur\\.jdks\\valhalla-ea-23-valhalla+1-90\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\CLion\\bin\\cmake\\win\\x64\\bin"
+ - "C:\\Program Files\\Processing"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Python\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Inno Setup 6"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\cursor\\resources\\app\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Ollama"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Antigravity\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Microsoft\\WindowsApps"
+ - "C:\\Program Files\\Git\\usr\\bin\\vendor_perl"
+ - "C:\\Program Files\\Git\\usr\\bin\\core_perl"
+ -
+ kind: "find-v1"
+ backtrace:
+ - "C:/Program Files/CMake/share/cmake-4.3/Modules/CMakeFindBinUtils.cmake:243 (find_program)"
+ - "C:/Program Files/CMake/share/cmake-4.3/Modules/CMakeDetermineCXXCompiler.cmake:206 (include)"
+ - "CMakeLists.txt:3 (project)"
+ mode: "program"
+ variable: "CMAKE_LINKER"
+ description: "Path to a program."
+ settings:
+ SearchFramework: "NEVER"
+ SearchAppBundle: "NEVER"
+ CMAKE_FIND_USE_CMAKE_PATH: false
+ CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH: false
+ CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH: true
+ CMAKE_FIND_USE_CMAKE_SYSTEM_PATH: true
+ CMAKE_FIND_USE_INSTALL_PREFIX: true
+ names:
+ - "link"
+ candidate_directories:
+ - "C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.44.35207/bin/Hostx64/x64/"
+ - "C:/Users/simulateur/bin/"
+ - "C:/Program Files/Git/mingw64/bin/"
+ - "C:/Program Files/Git/usr/local/bin/"
+ - "C:/Program Files/Git/usr/bin/"
+ - "C:/Users/simulateur/AppData/Roaming/Code/User/globalStorage/github.copilot-chat/debugCommand/"
+ - "C:/Users/simulateur/AppData/Roaming/Code/User/globalStorage/github.copilot-chat/copilotCli/"
+ - "C:/Program Files/Common Files/Oracle/Java/javapath/"
+ - "C:/Windows/System32/"
+ - "C:/Windows/"
+ - "C:/Windows/System32/wbem/"
+ - "C:/Windows/System32/WindowsPowerShell/v1.0/"
+ - "C:/Windows/System32/OpenSSH/"
+ - "C:/Program Files (x86)/HP/HP Performance Advisor/"
+ - "C:/Program Files/dotnet/"
+ - "C:/Program Files/Git/cmd/"
+ - "C:/Program Files/nodejs/"
+ - "C:/Program Files/TortoiseGit/bin/"
+ - "C:/Program Files (x86)/Windows Kits/10/Windows Performance Toolkit/"
+ - "C:/Users/simulateur/Downloads/vcpkg/"
+ - "C:/Users/simulateur/.jdks/valhalla-ea-23-valhalla+1-90/bin/"
+ - "C:/Users/simulateur/AppData/Local/Programs/CLion/bin/cmake/win/x64/bin/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Inno Setup 6/"
+ - "C:/Program Files/WireGuard/"
+ - "C:/Program Files/Cloudflare/Cloudflare WARP/"
+ - "C:/Program Files/CMake/bin/"
+ - "C:/Users/simulateur/.local/bin/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python313/Scripts/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python313/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python311/Scripts/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python311/"
+ - "C:/Users/simulateur/AppData/Local/Microsoft/WindowsApps/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Microsoft VS Code/bin/"
+ - "C:/Users/simulateur/AppData/Roaming/npm/"
+ - "C:/Users/simulateur/AppData/Local/JetBrains/Toolbox/scripts/"
+ - "C:/Users/simulateur/.dotnet/tools/"
+ - "C:/Program Files/Processing/"
+ - "C:/Users/simulateur/AppData/Local/Python/bin/"
+ - "C:/Users/simulateur/AppData/Local/Programs/cursor/resources/app/bin/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Ollama/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Antigravity/bin/"
+ - "C:/Program Files/Git/usr/bin/vendor_perl/"
+ - "C:/Program Files/Git/usr/bin/core_perl/"
+ searched_directories:
+ - "C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.44.35207/bin/Hostx64/x64/link.com"
+ found: "C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.44.35207/bin/Hostx64/x64/link.exe"
+ search_context:
+ ENV{PATH}:
+ - "C:\\Users\\simulateur\\bin"
+ - "C:\\Program Files\\Git\\mingw64\\bin"
+ - "C:\\Program Files\\Git\\usr\\local\\bin"
+ - "C:\\Program Files\\Git\\usr\\bin"
+ - "C:\\Program Files\\Git\\usr\\bin"
+ - "C:\\Program Files\\Git\\mingw64\\bin"
+ - "C:\\Program Files\\Git\\usr\\bin"
+ - "C:\\Users\\simulateur\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Roaming\\Code\\User\\globalStorage\\github.copilot-chat\\debugCommand"
+ - "C:\\Users\\simulateur\\AppData\\Roaming\\Code\\User\\globalStorage\\github.copilot-chat\\copilotCli"
+ - "C:\\Program Files\\Common Files\\Oracle\\Java\\javapath"
+ - "C:\\WINDOWS\\system32"
+ - "C:\\WINDOWS"
+ - "C:\\WINDOWS\\System32\\Wbem"
+ - "C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0"
+ - "C:\\WINDOWS\\System32\\OpenSSH"
+ - "C:\\Program Files (x86)\\HP\\HP Performance Advisor"
+ - "C:\\Program Files\\dotnet"
+ - "C:\\Program Files\\Git\\cmd"
+ - "C:\\Program Files\\nodejs"
+ - "C:\\Program Files\\TortoiseGit\\bin"
+ - "C:\\Program Files (x86)\\Windows Kits\\10\\Windows Performance Toolkit"
+ - "C:\\Users\\simulateur\\Downloads\\vcpkg"
+ - "C:\\Users\\simulateur\\.jdks\\valhalla-ea-23-valhalla+1-90\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\CLion\\bin\\cmake\\win\\x64\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Inno Setup 6"
+ - "C:\\Program Files\\WireGuard"
+ - "C:\\Program Files\\Cloudflare\\Cloudflare WARP"
+ - "C:\\Program Files\\CMake\\bin"
+ - "C:\\Users\\simulateur\\.local\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Python\\Python313\\Scripts"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Python\\Python313"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Python\\Python311\\Scripts"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Python\\Python311"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Microsoft\\WindowsApps"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Microsoft VS Code\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Roaming\\npm"
+ - "C:\\Users\\simulateur\\AppData\\Local\\JetBrains\\Toolbox\\scripts"
+ - "C:\\Users\\simulateur\\.dotnet\\tools"
+ - "C:\\Users\\simulateur\\Downloads\\vcpkg"
+ - "C:\\Users\\simulateur\\.jdks\\valhalla-ea-23-valhalla+1-90\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\CLion\\bin\\cmake\\win\\x64\\bin"
+ - "C:\\Program Files\\Processing"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Python\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Inno Setup 6"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\cursor\\resources\\app\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Ollama"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Antigravity\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Microsoft\\WindowsApps"
+ - "C:\\Program Files\\Git\\usr\\bin\\vendor_perl"
+ - "C:\\Program Files\\Git\\usr\\bin\\core_perl"
+ -
+ kind: "find-v1"
+ backtrace:
+ - "C:/Program Files/CMake/share/cmake-4.3/Modules/CMakeFindBinUtils.cmake:243 (find_program)"
+ - "C:/Program Files/CMake/share/cmake-4.3/Modules/CMakeDetermineCXXCompiler.cmake:206 (include)"
+ - "CMakeLists.txt:3 (project)"
+ mode: "program"
+ variable: "CMAKE_MT"
+ description: "Path to a program."
+ settings:
+ SearchFramework: "NEVER"
+ SearchAppBundle: "NEVER"
+ CMAKE_FIND_USE_CMAKE_PATH: false
+ CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH: false
+ CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH: true
+ CMAKE_FIND_USE_CMAKE_SYSTEM_PATH: true
+ CMAKE_FIND_USE_INSTALL_PREFIX: true
+ names:
+ - "mt"
+ candidate_directories:
+ - "C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.44.35207/bin/Hostx64/x64/"
+ - "C:/Users/simulateur/bin/"
+ - "C:/Program Files/Git/mingw64/bin/"
+ - "C:/Program Files/Git/usr/local/bin/"
+ - "C:/Program Files/Git/usr/bin/"
+ - "C:/Users/simulateur/AppData/Roaming/Code/User/globalStorage/github.copilot-chat/debugCommand/"
+ - "C:/Users/simulateur/AppData/Roaming/Code/User/globalStorage/github.copilot-chat/copilotCli/"
+ - "C:/Program Files/Common Files/Oracle/Java/javapath/"
+ - "C:/Windows/System32/"
+ - "C:/Windows/"
+ - "C:/Windows/System32/wbem/"
+ - "C:/Windows/System32/WindowsPowerShell/v1.0/"
+ - "C:/Windows/System32/OpenSSH/"
+ - "C:/Program Files (x86)/HP/HP Performance Advisor/"
+ - "C:/Program Files/dotnet/"
+ - "C:/Program Files/Git/cmd/"
+ - "C:/Program Files/nodejs/"
+ - "C:/Program Files/TortoiseGit/bin/"
+ - "C:/Program Files (x86)/Windows Kits/10/Windows Performance Toolkit/"
+ - "C:/Users/simulateur/Downloads/vcpkg/"
+ - "C:/Users/simulateur/.jdks/valhalla-ea-23-valhalla+1-90/bin/"
+ - "C:/Users/simulateur/AppData/Local/Programs/CLion/bin/cmake/win/x64/bin/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Inno Setup 6/"
+ - "C:/Program Files/WireGuard/"
+ - "C:/Program Files/Cloudflare/Cloudflare WARP/"
+ - "C:/Program Files/CMake/bin/"
+ - "C:/Users/simulateur/.local/bin/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python313/Scripts/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python313/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python311/Scripts/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python311/"
+ - "C:/Users/simulateur/AppData/Local/Microsoft/WindowsApps/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Microsoft VS Code/bin/"
+ - "C:/Users/simulateur/AppData/Roaming/npm/"
+ - "C:/Users/simulateur/AppData/Local/JetBrains/Toolbox/scripts/"
+ - "C:/Users/simulateur/.dotnet/tools/"
+ - "C:/Program Files/Processing/"
+ - "C:/Users/simulateur/AppData/Local/Python/bin/"
+ - "C:/Users/simulateur/AppData/Local/Programs/cursor/resources/app/bin/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Ollama/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Antigravity/bin/"
+ - "C:/Program Files/Git/usr/bin/vendor_perl/"
+ - "C:/Program Files/Git/usr/bin/core_perl/"
+ searched_directories:
+ - "C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.44.35207/bin/Hostx64/x64/mt.com"
+ - "C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.44.35207/bin/Hostx64/x64/mt.exe"
+ - "C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.44.35207/bin/Hostx64/x64/mt"
+ - "C:/Users/simulateur/bin/mt.com"
+ - "C:/Users/simulateur/bin/mt.exe"
+ - "C:/Users/simulateur/bin/mt"
+ - "C:/Program Files/Git/mingw64/bin/mt.com"
+ - "C:/Program Files/Git/mingw64/bin/mt.exe"
+ - "C:/Program Files/Git/mingw64/bin/mt"
+ - "C:/Program Files/Git/usr/local/bin/mt.com"
+ - "C:/Program Files/Git/usr/local/bin/mt.exe"
+ - "C:/Program Files/Git/usr/local/bin/mt"
+ - "C:/Program Files/Git/usr/bin/mt.com"
+ - "C:/Program Files/Git/usr/bin/mt.exe"
+ - "C:/Program Files/Git/usr/bin/mt"
+ - "C:/Users/simulateur/AppData/Roaming/Code/User/globalStorage/github.copilot-chat/debugCommand/mt.com"
+ - "C:/Users/simulateur/AppData/Roaming/Code/User/globalStorage/github.copilot-chat/debugCommand/mt.exe"
+ - "C:/Users/simulateur/AppData/Roaming/Code/User/globalStorage/github.copilot-chat/debugCommand/mt"
+ - "C:/Users/simulateur/AppData/Roaming/Code/User/globalStorage/github.copilot-chat/copilotCli/mt.com"
+ - "C:/Users/simulateur/AppData/Roaming/Code/User/globalStorage/github.copilot-chat/copilotCli/mt.exe"
+ - "C:/Users/simulateur/AppData/Roaming/Code/User/globalStorage/github.copilot-chat/copilotCli/mt"
+ - "C:/Program Files/Common Files/Oracle/Java/javapath/mt.com"
+ - "C:/Program Files/Common Files/Oracle/Java/javapath/mt.exe"
+ - "C:/Program Files/Common Files/Oracle/Java/javapath/mt"
+ - "C:/Windows/System32/mt.com"
+ - "C:/Windows/System32/mt.exe"
+ - "C:/Windows/System32/mt"
+ - "C:/Windows/mt.com"
+ - "C:/Windows/mt.exe"
+ - "C:/Windows/mt"
+ - "C:/Windows/System32/wbem/mt.com"
+ - "C:/Windows/System32/wbem/mt.exe"
+ - "C:/Windows/System32/wbem/mt"
+ - "C:/Windows/System32/WindowsPowerShell/v1.0/mt.com"
+ - "C:/Windows/System32/WindowsPowerShell/v1.0/mt.exe"
+ - "C:/Windows/System32/WindowsPowerShell/v1.0/mt"
+ - "C:/Windows/System32/OpenSSH/mt.com"
+ - "C:/Windows/System32/OpenSSH/mt.exe"
+ - "C:/Windows/System32/OpenSSH/mt"
+ - "C:/Program Files (x86)/HP/HP Performance Advisor/mt.com"
+ - "C:/Program Files (x86)/HP/HP Performance Advisor/mt.exe"
+ - "C:/Program Files (x86)/HP/HP Performance Advisor/mt"
+ - "C:/Program Files/dotnet/mt.com"
+ - "C:/Program Files/dotnet/mt.exe"
+ - "C:/Program Files/dotnet/mt"
+ - "C:/Program Files/Git/cmd/mt.com"
+ - "C:/Program Files/Git/cmd/mt.exe"
+ - "C:/Program Files/Git/cmd/mt"
+ - "C:/Program Files/nodejs/mt.com"
+ - "C:/Program Files/nodejs/mt.exe"
+ - "C:/Program Files/nodejs/mt"
+ - "C:/Program Files/TortoiseGit/bin/mt.com"
+ - "C:/Program Files/TortoiseGit/bin/mt.exe"
+ - "C:/Program Files/TortoiseGit/bin/mt"
+ - "C:/Program Files (x86)/Windows Kits/10/Windows Performance Toolkit/mt.com"
+ - "C:/Program Files (x86)/Windows Kits/10/Windows Performance Toolkit/mt.exe"
+ - "C:/Program Files (x86)/Windows Kits/10/Windows Performance Toolkit/mt"
+ - "C:/Users/simulateur/Downloads/vcpkg/mt.com"
+ - "C:/Users/simulateur/Downloads/vcpkg/mt.exe"
+ - "C:/Users/simulateur/Downloads/vcpkg/mt"
+ - "C:/Users/simulateur/.jdks/valhalla-ea-23-valhalla+1-90/bin/mt.com"
+ - "C:/Users/simulateur/.jdks/valhalla-ea-23-valhalla+1-90/bin/mt.exe"
+ - "C:/Users/simulateur/.jdks/valhalla-ea-23-valhalla+1-90/bin/mt"
+ - "C:/Users/simulateur/AppData/Local/Programs/CLion/bin/cmake/win/x64/bin/mt.com"
+ - "C:/Users/simulateur/AppData/Local/Programs/CLion/bin/cmake/win/x64/bin/mt.exe"
+ - "C:/Users/simulateur/AppData/Local/Programs/CLion/bin/cmake/win/x64/bin/mt"
+ - "C:/Users/simulateur/AppData/Local/Programs/Inno Setup 6/mt.com"
+ - "C:/Users/simulateur/AppData/Local/Programs/Inno Setup 6/mt.exe"
+ - "C:/Users/simulateur/AppData/Local/Programs/Inno Setup 6/mt"
+ - "C:/Program Files/WireGuard/mt.com"
+ - "C:/Program Files/WireGuard/mt.exe"
+ - "C:/Program Files/WireGuard/mt"
+ - "C:/Program Files/Cloudflare/Cloudflare WARP/mt.com"
+ - "C:/Program Files/Cloudflare/Cloudflare WARP/mt.exe"
+ - "C:/Program Files/Cloudflare/Cloudflare WARP/mt"
+ - "C:/Program Files/CMake/bin/mt.com"
+ - "C:/Program Files/CMake/bin/mt.exe"
+ - "C:/Program Files/CMake/bin/mt"
+ - "C:/Users/simulateur/.local/bin/mt.com"
+ - "C:/Users/simulateur/.local/bin/mt.exe"
+ - "C:/Users/simulateur/.local/bin/mt"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python313/Scripts/mt.com"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python313/Scripts/mt.exe"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python313/Scripts/mt"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python313/mt.com"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python313/mt.exe"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python313/mt"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python311/Scripts/mt.com"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python311/Scripts/mt.exe"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python311/Scripts/mt"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python311/mt.com"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python311/mt.exe"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python311/mt"
+ - "C:/Users/simulateur/AppData/Local/Microsoft/WindowsApps/mt.com"
+ - "C:/Users/simulateur/AppData/Local/Microsoft/WindowsApps/mt.exe"
+ - "C:/Users/simulateur/AppData/Local/Microsoft/WindowsApps/mt"
+ - "C:/Users/simulateur/AppData/Local/Programs/Microsoft VS Code/bin/mt.com"
+ - "C:/Users/simulateur/AppData/Local/Programs/Microsoft VS Code/bin/mt.exe"
+ - "C:/Users/simulateur/AppData/Local/Programs/Microsoft VS Code/bin/mt"
+ - "C:/Users/simulateur/AppData/Roaming/npm/mt.com"
+ - "C:/Users/simulateur/AppData/Roaming/npm/mt.exe"
+ - "C:/Users/simulateur/AppData/Roaming/npm/mt"
+ - "C:/Users/simulateur/AppData/Local/JetBrains/Toolbox/scripts/mt.com"
+ - "C:/Users/simulateur/AppData/Local/JetBrains/Toolbox/scripts/mt.exe"
+ - "C:/Users/simulateur/AppData/Local/JetBrains/Toolbox/scripts/mt"
+ - "C:/Users/simulateur/.dotnet/tools/mt.com"
+ - "C:/Users/simulateur/.dotnet/tools/mt.exe"
+ - "C:/Users/simulateur/.dotnet/tools/mt"
+ - "C:/Program Files/Processing/mt.com"
+ - "C:/Program Files/Processing/mt.exe"
+ - "C:/Program Files/Processing/mt"
+ - "C:/Users/simulateur/AppData/Local/Python/bin/mt.com"
+ - "C:/Users/simulateur/AppData/Local/Python/bin/mt.exe"
+ - "C:/Users/simulateur/AppData/Local/Python/bin/mt"
+ - "C:/Users/simulateur/AppData/Local/Programs/cursor/resources/app/bin/mt.com"
+ - "C:/Users/simulateur/AppData/Local/Programs/cursor/resources/app/bin/mt.exe"
+ - "C:/Users/simulateur/AppData/Local/Programs/cursor/resources/app/bin/mt"
+ - "C:/Users/simulateur/AppData/Local/Programs/Ollama/mt.com"
+ - "C:/Users/simulateur/AppData/Local/Programs/Ollama/mt.exe"
+ - "C:/Users/simulateur/AppData/Local/Programs/Ollama/mt"
+ - "C:/Users/simulateur/AppData/Local/Programs/Antigravity/bin/mt.com"
+ - "C:/Users/simulateur/AppData/Local/Programs/Antigravity/bin/mt.exe"
+ - "C:/Users/simulateur/AppData/Local/Programs/Antigravity/bin/mt"
+ - "C:/Program Files/Git/usr/bin/vendor_perl/mt.com"
+ - "C:/Program Files/Git/usr/bin/vendor_perl/mt.exe"
+ - "C:/Program Files/Git/usr/bin/vendor_perl/mt"
+ - "C:/Program Files/Git/usr/bin/core_perl/mt.com"
+ - "C:/Program Files/Git/usr/bin/core_perl/mt.exe"
+ - "C:/Program Files/Git/usr/bin/core_perl/mt"
+ found: false
+ search_context:
+ ENV{PATH}:
+ - "C:\\Users\\simulateur\\bin"
+ - "C:\\Program Files\\Git\\mingw64\\bin"
+ - "C:\\Program Files\\Git\\usr\\local\\bin"
+ - "C:\\Program Files\\Git\\usr\\bin"
+ - "C:\\Program Files\\Git\\usr\\bin"
+ - "C:\\Program Files\\Git\\mingw64\\bin"
+ - "C:\\Program Files\\Git\\usr\\bin"
+ - "C:\\Users\\simulateur\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Roaming\\Code\\User\\globalStorage\\github.copilot-chat\\debugCommand"
+ - "C:\\Users\\simulateur\\AppData\\Roaming\\Code\\User\\globalStorage\\github.copilot-chat\\copilotCli"
+ - "C:\\Program Files\\Common Files\\Oracle\\Java\\javapath"
+ - "C:\\WINDOWS\\system32"
+ - "C:\\WINDOWS"
+ - "C:\\WINDOWS\\System32\\Wbem"
+ - "C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0"
+ - "C:\\WINDOWS\\System32\\OpenSSH"
+ - "C:\\Program Files (x86)\\HP\\HP Performance Advisor"
+ - "C:\\Program Files\\dotnet"
+ - "C:\\Program Files\\Git\\cmd"
+ - "C:\\Program Files\\nodejs"
+ - "C:\\Program Files\\TortoiseGit\\bin"
+ - "C:\\Program Files (x86)\\Windows Kits\\10\\Windows Performance Toolkit"
+ - "C:\\Users\\simulateur\\Downloads\\vcpkg"
+ - "C:\\Users\\simulateur\\.jdks\\valhalla-ea-23-valhalla+1-90\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\CLion\\bin\\cmake\\win\\x64\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Inno Setup 6"
+ - "C:\\Program Files\\WireGuard"
+ - "C:\\Program Files\\Cloudflare\\Cloudflare WARP"
+ - "C:\\Program Files\\CMake\\bin"
+ - "C:\\Users\\simulateur\\.local\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Python\\Python313\\Scripts"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Python\\Python313"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Python\\Python311\\Scripts"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Python\\Python311"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Microsoft\\WindowsApps"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Microsoft VS Code\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Roaming\\npm"
+ - "C:\\Users\\simulateur\\AppData\\Local\\JetBrains\\Toolbox\\scripts"
+ - "C:\\Users\\simulateur\\.dotnet\\tools"
+ - "C:\\Users\\simulateur\\Downloads\\vcpkg"
+ - "C:\\Users\\simulateur\\.jdks\\valhalla-ea-23-valhalla+1-90\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\CLion\\bin\\cmake\\win\\x64\\bin"
+ - "C:\\Program Files\\Processing"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Python\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Inno Setup 6"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\cursor\\resources\\app\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Ollama"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Antigravity\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Microsoft\\WindowsApps"
+ - "C:\\Program Files\\Git\\usr\\bin\\vendor_perl"
+ - "C:\\Program Files\\Git\\usr\\bin\\core_perl"
+ -
+ kind: "find-v1"
+ backtrace:
+ - "C:/Program Files/CMake/share/cmake-4.3/Modules/CMakeFindBinUtils.cmake:243 (find_program)"
+ - "C:/Program Files/CMake/share/cmake-4.3/Modules/CMakeDetermineCXXCompiler.cmake:206 (include)"
+ - "CMakeLists.txt:3 (project)"
+ mode: "program"
+ variable: "CMAKE_AR"
+ description: "Path to a program."
+ settings:
+ SearchFramework: "NEVER"
+ SearchAppBundle: "NEVER"
+ CMAKE_FIND_USE_CMAKE_PATH: false
+ CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH: false
+ CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH: true
+ CMAKE_FIND_USE_CMAKE_SYSTEM_PATH: true
+ CMAKE_FIND_USE_INSTALL_PREFIX: true
+ names:
+ - "lib"
+ candidate_directories:
+ - "C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.44.35207/bin/Hostx64/x64/"
+ - "C:/Users/simulateur/bin/"
+ - "C:/Program Files/Git/mingw64/bin/"
+ - "C:/Program Files/Git/usr/local/bin/"
+ - "C:/Program Files/Git/usr/bin/"
+ - "C:/Users/simulateur/AppData/Roaming/Code/User/globalStorage/github.copilot-chat/debugCommand/"
+ - "C:/Users/simulateur/AppData/Roaming/Code/User/globalStorage/github.copilot-chat/copilotCli/"
+ - "C:/Program Files/Common Files/Oracle/Java/javapath/"
+ - "C:/Windows/System32/"
+ - "C:/Windows/"
+ - "C:/Windows/System32/wbem/"
+ - "C:/Windows/System32/WindowsPowerShell/v1.0/"
+ - "C:/Windows/System32/OpenSSH/"
+ - "C:/Program Files (x86)/HP/HP Performance Advisor/"
+ - "C:/Program Files/dotnet/"
+ - "C:/Program Files/Git/cmd/"
+ - "C:/Program Files/nodejs/"
+ - "C:/Program Files/TortoiseGit/bin/"
+ - "C:/Program Files (x86)/Windows Kits/10/Windows Performance Toolkit/"
+ - "C:/Users/simulateur/Downloads/vcpkg/"
+ - "C:/Users/simulateur/.jdks/valhalla-ea-23-valhalla+1-90/bin/"
+ - "C:/Users/simulateur/AppData/Local/Programs/CLion/bin/cmake/win/x64/bin/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Inno Setup 6/"
+ - "C:/Program Files/WireGuard/"
+ - "C:/Program Files/Cloudflare/Cloudflare WARP/"
+ - "C:/Program Files/CMake/bin/"
+ - "C:/Users/simulateur/.local/bin/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python313/Scripts/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python313/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python311/Scripts/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python311/"
+ - "C:/Users/simulateur/AppData/Local/Microsoft/WindowsApps/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Microsoft VS Code/bin/"
+ - "C:/Users/simulateur/AppData/Roaming/npm/"
+ - "C:/Users/simulateur/AppData/Local/JetBrains/Toolbox/scripts/"
+ - "C:/Users/simulateur/.dotnet/tools/"
+ - "C:/Program Files/Processing/"
+ - "C:/Users/simulateur/AppData/Local/Python/bin/"
+ - "C:/Users/simulateur/AppData/Local/Programs/cursor/resources/app/bin/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Ollama/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Antigravity/bin/"
+ - "C:/Program Files/Git/usr/bin/vendor_perl/"
+ - "C:/Program Files/Git/usr/bin/core_perl/"
+ searched_directories:
+ - "C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.44.35207/bin/Hostx64/x64/lib.com"
+ found: "C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.44.35207/bin/Hostx64/x64/lib.exe"
+ search_context:
+ ENV{PATH}:
+ - "C:\\Users\\simulateur\\bin"
+ - "C:\\Program Files\\Git\\mingw64\\bin"
+ - "C:\\Program Files\\Git\\usr\\local\\bin"
+ - "C:\\Program Files\\Git\\usr\\bin"
+ - "C:\\Program Files\\Git\\usr\\bin"
+ - "C:\\Program Files\\Git\\mingw64\\bin"
+ - "C:\\Program Files\\Git\\usr\\bin"
+ - "C:\\Users\\simulateur\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Roaming\\Code\\User\\globalStorage\\github.copilot-chat\\debugCommand"
+ - "C:\\Users\\simulateur\\AppData\\Roaming\\Code\\User\\globalStorage\\github.copilot-chat\\copilotCli"
+ - "C:\\Program Files\\Common Files\\Oracle\\Java\\javapath"
+ - "C:\\WINDOWS\\system32"
+ - "C:\\WINDOWS"
+ - "C:\\WINDOWS\\System32\\Wbem"
+ - "C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0"
+ - "C:\\WINDOWS\\System32\\OpenSSH"
+ - "C:\\Program Files (x86)\\HP\\HP Performance Advisor"
+ - "C:\\Program Files\\dotnet"
+ - "C:\\Program Files\\Git\\cmd"
+ - "C:\\Program Files\\nodejs"
+ - "C:\\Program Files\\TortoiseGit\\bin"
+ - "C:\\Program Files (x86)\\Windows Kits\\10\\Windows Performance Toolkit"
+ - "C:\\Users\\simulateur\\Downloads\\vcpkg"
+ - "C:\\Users\\simulateur\\.jdks\\valhalla-ea-23-valhalla+1-90\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\CLion\\bin\\cmake\\win\\x64\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Inno Setup 6"
+ - "C:\\Program Files\\WireGuard"
+ - "C:\\Program Files\\Cloudflare\\Cloudflare WARP"
+ - "C:\\Program Files\\CMake\\bin"
+ - "C:\\Users\\simulateur\\.local\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Python\\Python313\\Scripts"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Python\\Python313"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Python\\Python311\\Scripts"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Python\\Python311"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Microsoft\\WindowsApps"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Microsoft VS Code\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Roaming\\npm"
+ - "C:\\Users\\simulateur\\AppData\\Local\\JetBrains\\Toolbox\\scripts"
+ - "C:\\Users\\simulateur\\.dotnet\\tools"
+ - "C:\\Users\\simulateur\\Downloads\\vcpkg"
+ - "C:\\Users\\simulateur\\.jdks\\valhalla-ea-23-valhalla+1-90\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\CLion\\bin\\cmake\\win\\x64\\bin"
+ - "C:\\Program Files\\Processing"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Python\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Inno Setup 6"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\cursor\\resources\\app\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Ollama"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Antigravity\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Microsoft\\WindowsApps"
+ - "C:\\Program Files\\Git\\usr\\bin\\vendor_perl"
+ - "C:\\Program Files\\Git\\usr\\bin\\core_perl"
+ -
+ kind: "find-v1"
+ backtrace:
+ - "C:/Program Files/CMake/share/cmake-4.3/Modules/CMakeDetermineRCCompiler.cmake:40 (find_program)"
+ - "C:/Program Files/CMake/share/cmake-4.3/Modules/Platform/Windows-MSVC.cmake:592 (enable_language)"
+ - "C:/Program Files/CMake/share/cmake-4.3/Modules/Platform/Windows-MSVC.cmake:565 (__windows_compiler_msvc_enable_rc)"
+ - "C:/Program Files/CMake/share/cmake-4.3/Modules/Platform/Windows-MSVC-CXX.cmake:6 (__windows_compiler_msvc)"
+ - "C:/Program Files/CMake/share/cmake-4.3/Modules/CMakeCXXInformation.cmake:48 (include)"
+ - "CMakeLists.txt:3 (project)"
+ mode: "program"
+ variable: "CMAKE_RC_COMPILER"
+ description: "RC compiler"
+ settings:
+ SearchFramework: "NEVER"
+ SearchAppBundle: "NEVER"
+ CMAKE_FIND_USE_CMAKE_PATH: true
+ CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH: true
+ CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH: true
+ CMAKE_FIND_USE_CMAKE_SYSTEM_PATH: true
+ CMAKE_FIND_USE_INSTALL_PREFIX: true
+ names:
+ - "rc"
+ candidate_directories:
+ - "C:/Users/simulateur/bin/"
+ - "C:/Program Files/Git/mingw64/bin/"
+ - "C:/Program Files/Git/usr/local/bin/"
+ - "C:/Program Files/Git/usr/bin/"
+ - "C:/Users/simulateur/AppData/Roaming/Code/User/globalStorage/github.copilot-chat/debugCommand/"
+ - "C:/Users/simulateur/AppData/Roaming/Code/User/globalStorage/github.copilot-chat/copilotCli/"
+ - "C:/Program Files/Common Files/Oracle/Java/javapath/"
+ - "C:/Windows/System32/"
+ - "C:/Windows/"
+ - "C:/Windows/System32/wbem/"
+ - "C:/Windows/System32/WindowsPowerShell/v1.0/"
+ - "C:/Windows/System32/OpenSSH/"
+ - "C:/Program Files (x86)/HP/HP Performance Advisor/"
+ - "C:/Program Files/dotnet/"
+ - "C:/Program Files/Git/cmd/"
+ - "C:/Program Files/nodejs/"
+ - "C:/Program Files/TortoiseGit/bin/"
+ - "C:/Program Files (x86)/Windows Kits/10/Windows Performance Toolkit/"
+ - "C:/Users/simulateur/Downloads/vcpkg/"
+ - "C:/Users/simulateur/.jdks/valhalla-ea-23-valhalla+1-90/bin/"
+ - "C:/Users/simulateur/AppData/Local/Programs/CLion/bin/cmake/win/x64/bin/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Inno Setup 6/"
+ - "C:/Program Files/WireGuard/"
+ - "C:/Program Files/Cloudflare/Cloudflare WARP/"
+ - "C:/Program Files/CMake/bin/"
+ - "C:/Users/simulateur/.local/bin/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python313/Scripts/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python313/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python311/Scripts/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python311/"
+ - "C:/Users/simulateur/AppData/Local/Microsoft/WindowsApps/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Microsoft VS Code/bin/"
+ - "C:/Users/simulateur/AppData/Roaming/npm/"
+ - "C:/Users/simulateur/AppData/Local/JetBrains/Toolbox/scripts/"
+ - "C:/Users/simulateur/.dotnet/tools/"
+ - "C:/Program Files/Processing/"
+ - "C:/Users/simulateur/AppData/Local/Python/bin/"
+ - "C:/Users/simulateur/AppData/Local/Programs/cursor/resources/app/bin/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Ollama/"
+ - "C:/Users/simulateur/AppData/Local/Programs/Antigravity/bin/"
+ - "C:/Program Files/Git/usr/bin/vendor_perl/"
+ - "C:/Program Files/Git/usr/bin/core_perl/"
+ - "C:/Program Files/bin/"
+ - "C:/Program Files/sbin/"
+ - "C:/Program Files/"
+ - "C:/Program Files (x86)/bin/"
+ - "C:/Program Files (x86)/sbin/"
+ - "C:/Program Files (x86)/"
+ - "C:/Program Files/CMake/bin/"
+ - "C:/Program Files/CMake/sbin/"
+ - "C:/Program Files/CMake/"
+ - "C:/Program Files/webcam/bin/"
+ - "C:/Program Files/webcam/sbin/"
+ - "C:/Program Files/webcam/"
+ searched_directories:
+ - "C:/Users/simulateur/bin/rc.com"
+ - "C:/Users/simulateur/bin/rc.exe"
+ - "C:/Users/simulateur/bin/rc"
+ - "C:/Program Files/Git/mingw64/bin/rc.com"
+ - "C:/Program Files/Git/mingw64/bin/rc.exe"
+ - "C:/Program Files/Git/mingw64/bin/rc"
+ - "C:/Program Files/Git/usr/local/bin/rc.com"
+ - "C:/Program Files/Git/usr/local/bin/rc.exe"
+ - "C:/Program Files/Git/usr/local/bin/rc"
+ - "C:/Program Files/Git/usr/bin/rc.com"
+ - "C:/Program Files/Git/usr/bin/rc.exe"
+ - "C:/Program Files/Git/usr/bin/rc"
+ - "C:/Users/simulateur/AppData/Roaming/Code/User/globalStorage/github.copilot-chat/debugCommand/rc.com"
+ - "C:/Users/simulateur/AppData/Roaming/Code/User/globalStorage/github.copilot-chat/debugCommand/rc.exe"
+ - "C:/Users/simulateur/AppData/Roaming/Code/User/globalStorage/github.copilot-chat/debugCommand/rc"
+ - "C:/Users/simulateur/AppData/Roaming/Code/User/globalStorage/github.copilot-chat/copilotCli/rc.com"
+ - "C:/Users/simulateur/AppData/Roaming/Code/User/globalStorage/github.copilot-chat/copilotCli/rc.exe"
+ - "C:/Users/simulateur/AppData/Roaming/Code/User/globalStorage/github.copilot-chat/copilotCli/rc"
+ - "C:/Program Files/Common Files/Oracle/Java/javapath/rc.com"
+ - "C:/Program Files/Common Files/Oracle/Java/javapath/rc.exe"
+ - "C:/Program Files/Common Files/Oracle/Java/javapath/rc"
+ - "C:/Windows/System32/rc.com"
+ - "C:/Windows/System32/rc.exe"
+ - "C:/Windows/System32/rc"
+ - "C:/Windows/rc.com"
+ - "C:/Windows/rc.exe"
+ - "C:/Windows/rc"
+ - "C:/Windows/System32/wbem/rc.com"
+ - "C:/Windows/System32/wbem/rc.exe"
+ - "C:/Windows/System32/wbem/rc"
+ - "C:/Windows/System32/WindowsPowerShell/v1.0/rc.com"
+ - "C:/Windows/System32/WindowsPowerShell/v1.0/rc.exe"
+ - "C:/Windows/System32/WindowsPowerShell/v1.0/rc"
+ - "C:/Windows/System32/OpenSSH/rc.com"
+ - "C:/Windows/System32/OpenSSH/rc.exe"
+ - "C:/Windows/System32/OpenSSH/rc"
+ - "C:/Program Files (x86)/HP/HP Performance Advisor/rc.com"
+ - "C:/Program Files (x86)/HP/HP Performance Advisor/rc.exe"
+ - "C:/Program Files (x86)/HP/HP Performance Advisor/rc"
+ - "C:/Program Files/dotnet/rc.com"
+ - "C:/Program Files/dotnet/rc.exe"
+ - "C:/Program Files/dotnet/rc"
+ - "C:/Program Files/Git/cmd/rc.com"
+ - "C:/Program Files/Git/cmd/rc.exe"
+ - "C:/Program Files/Git/cmd/rc"
+ - "C:/Program Files/nodejs/rc.com"
+ - "C:/Program Files/nodejs/rc.exe"
+ - "C:/Program Files/nodejs/rc"
+ - "C:/Program Files/TortoiseGit/bin/rc.com"
+ - "C:/Program Files/TortoiseGit/bin/rc.exe"
+ - "C:/Program Files/TortoiseGit/bin/rc"
+ - "C:/Program Files (x86)/Windows Kits/10/Windows Performance Toolkit/rc.com"
+ - "C:/Program Files (x86)/Windows Kits/10/Windows Performance Toolkit/rc.exe"
+ - "C:/Program Files (x86)/Windows Kits/10/Windows Performance Toolkit/rc"
+ - "C:/Users/simulateur/Downloads/vcpkg/rc.com"
+ - "C:/Users/simulateur/Downloads/vcpkg/rc.exe"
+ - "C:/Users/simulateur/Downloads/vcpkg/rc"
+ - "C:/Users/simulateur/.jdks/valhalla-ea-23-valhalla+1-90/bin/rc.com"
+ - "C:/Users/simulateur/.jdks/valhalla-ea-23-valhalla+1-90/bin/rc.exe"
+ - "C:/Users/simulateur/.jdks/valhalla-ea-23-valhalla+1-90/bin/rc"
+ - "C:/Users/simulateur/AppData/Local/Programs/CLion/bin/cmake/win/x64/bin/rc.com"
+ - "C:/Users/simulateur/AppData/Local/Programs/CLion/bin/cmake/win/x64/bin/rc.exe"
+ - "C:/Users/simulateur/AppData/Local/Programs/CLion/bin/cmake/win/x64/bin/rc"
+ - "C:/Users/simulateur/AppData/Local/Programs/Inno Setup 6/rc.com"
+ - "C:/Users/simulateur/AppData/Local/Programs/Inno Setup 6/rc.exe"
+ - "C:/Users/simulateur/AppData/Local/Programs/Inno Setup 6/rc"
+ - "C:/Program Files/WireGuard/rc.com"
+ - "C:/Program Files/WireGuard/rc.exe"
+ - "C:/Program Files/WireGuard/rc"
+ - "C:/Program Files/Cloudflare/Cloudflare WARP/rc.com"
+ - "C:/Program Files/Cloudflare/Cloudflare WARP/rc.exe"
+ - "C:/Program Files/Cloudflare/Cloudflare WARP/rc"
+ - "C:/Program Files/CMake/bin/rc.com"
+ - "C:/Program Files/CMake/bin/rc.exe"
+ - "C:/Program Files/CMake/bin/rc"
+ - "C:/Users/simulateur/.local/bin/rc.com"
+ - "C:/Users/simulateur/.local/bin/rc.exe"
+ - "C:/Users/simulateur/.local/bin/rc"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python313/Scripts/rc.com"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python313/Scripts/rc.exe"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python313/Scripts/rc"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python313/rc.com"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python313/rc.exe"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python313/rc"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python311/Scripts/rc.com"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python311/Scripts/rc.exe"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python311/Scripts/rc"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python311/rc.com"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python311/rc.exe"
+ - "C:/Users/simulateur/AppData/Local/Programs/Python/Python311/rc"
+ - "C:/Users/simulateur/AppData/Local/Microsoft/WindowsApps/rc.com"
+ - "C:/Users/simulateur/AppData/Local/Microsoft/WindowsApps/rc.exe"
+ - "C:/Users/simulateur/AppData/Local/Microsoft/WindowsApps/rc"
+ - "C:/Users/simulateur/AppData/Local/Programs/Microsoft VS Code/bin/rc.com"
+ - "C:/Users/simulateur/AppData/Local/Programs/Microsoft VS Code/bin/rc.exe"
+ - "C:/Users/simulateur/AppData/Local/Programs/Microsoft VS Code/bin/rc"
+ - "C:/Users/simulateur/AppData/Roaming/npm/rc.com"
+ - "C:/Users/simulateur/AppData/Roaming/npm/rc.exe"
+ - "C:/Users/simulateur/AppData/Roaming/npm/rc"
+ - "C:/Users/simulateur/AppData/Local/JetBrains/Toolbox/scripts/rc.com"
+ - "C:/Users/simulateur/AppData/Local/JetBrains/Toolbox/scripts/rc.exe"
+ - "C:/Users/simulateur/AppData/Local/JetBrains/Toolbox/scripts/rc"
+ - "C:/Users/simulateur/.dotnet/tools/rc.com"
+ - "C:/Users/simulateur/.dotnet/tools/rc.exe"
+ - "C:/Users/simulateur/.dotnet/tools/rc"
+ - "C:/Program Files/Processing/rc.com"
+ - "C:/Program Files/Processing/rc.exe"
+ - "C:/Program Files/Processing/rc"
+ - "C:/Users/simulateur/AppData/Local/Python/bin/rc.com"
+ - "C:/Users/simulateur/AppData/Local/Python/bin/rc.exe"
+ - "C:/Users/simulateur/AppData/Local/Python/bin/rc"
+ - "C:/Users/simulateur/AppData/Local/Programs/cursor/resources/app/bin/rc.com"
+ - "C:/Users/simulateur/AppData/Local/Programs/cursor/resources/app/bin/rc.exe"
+ - "C:/Users/simulateur/AppData/Local/Programs/cursor/resources/app/bin/rc"
+ - "C:/Users/simulateur/AppData/Local/Programs/Ollama/rc.com"
+ - "C:/Users/simulateur/AppData/Local/Programs/Ollama/rc.exe"
+ - "C:/Users/simulateur/AppData/Local/Programs/Ollama/rc"
+ - "C:/Users/simulateur/AppData/Local/Programs/Antigravity/bin/rc.com"
+ - "C:/Users/simulateur/AppData/Local/Programs/Antigravity/bin/rc.exe"
+ - "C:/Users/simulateur/AppData/Local/Programs/Antigravity/bin/rc"
+ - "C:/Program Files/Git/usr/bin/vendor_perl/rc.com"
+ - "C:/Program Files/Git/usr/bin/vendor_perl/rc.exe"
+ - "C:/Program Files/Git/usr/bin/vendor_perl/rc"
+ - "C:/Program Files/Git/usr/bin/core_perl/rc.com"
+ - "C:/Program Files/Git/usr/bin/core_perl/rc.exe"
+ - "C:/Program Files/Git/usr/bin/core_perl/rc"
+ - "C:/Program Files/bin/rc.com"
+ - "C:/Program Files/bin/rc.exe"
+ - "C:/Program Files/bin/rc"
+ - "C:/Program Files/sbin/rc.com"
+ - "C:/Program Files/sbin/rc.exe"
+ - "C:/Program Files/sbin/rc"
+ - "C:/Program Files/rc.com"
+ - "C:/Program Files/rc.exe"
+ - "C:/Program Files/rc"
+ - "C:/Program Files (x86)/bin/rc.com"
+ - "C:/Program Files (x86)/bin/rc.exe"
+ - "C:/Program Files (x86)/bin/rc"
+ - "C:/Program Files (x86)/sbin/rc.com"
+ - "C:/Program Files (x86)/sbin/rc.exe"
+ - "C:/Program Files (x86)/sbin/rc"
+ - "C:/Program Files (x86)/rc.com"
+ - "C:/Program Files (x86)/rc.exe"
+ - "C:/Program Files (x86)/rc"
+ - "C:/Program Files/CMake/bin/rc.com"
+ - "C:/Program Files/CMake/bin/rc.exe"
+ - "C:/Program Files/CMake/bin/rc"
+ - "C:/Program Files/CMake/sbin/rc.com"
+ - "C:/Program Files/CMake/sbin/rc.exe"
+ - "C:/Program Files/CMake/sbin/rc"
+ - "C:/Program Files/CMake/rc.com"
+ - "C:/Program Files/CMake/rc.exe"
+ - "C:/Program Files/CMake/rc"
+ - "C:/Program Files/webcam/bin/rc.com"
+ - "C:/Program Files/webcam/bin/rc.exe"
+ - "C:/Program Files/webcam/bin/rc"
+ - "C:/Program Files/webcam/sbin/rc.com"
+ - "C:/Program Files/webcam/sbin/rc.exe"
+ - "C:/Program Files/webcam/sbin/rc"
+ - "C:/Program Files/webcam/rc.com"
+ - "C:/Program Files/webcam/rc.exe"
+ - "C:/Program Files/webcam/rc"
+ found: false
+ search_context:
+ ENV{PATH}:
+ - "C:\\Users\\simulateur\\bin"
+ - "C:\\Program Files\\Git\\mingw64\\bin"
+ - "C:\\Program Files\\Git\\usr\\local\\bin"
+ - "C:\\Program Files\\Git\\usr\\bin"
+ - "C:\\Program Files\\Git\\usr\\bin"
+ - "C:\\Program Files\\Git\\mingw64\\bin"
+ - "C:\\Program Files\\Git\\usr\\bin"
+ - "C:\\Users\\simulateur\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Roaming\\Code\\User\\globalStorage\\github.copilot-chat\\debugCommand"
+ - "C:\\Users\\simulateur\\AppData\\Roaming\\Code\\User\\globalStorage\\github.copilot-chat\\copilotCli"
+ - "C:\\Program Files\\Common Files\\Oracle\\Java\\javapath"
+ - "C:\\WINDOWS\\system32"
+ - "C:\\WINDOWS"
+ - "C:\\WINDOWS\\System32\\Wbem"
+ - "C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0"
+ - "C:\\WINDOWS\\System32\\OpenSSH"
+ - "C:\\Program Files (x86)\\HP\\HP Performance Advisor"
+ - "C:\\Program Files\\dotnet"
+ - "C:\\Program Files\\Git\\cmd"
+ - "C:\\Program Files\\nodejs"
+ - "C:\\Program Files\\TortoiseGit\\bin"
+ - "C:\\Program Files (x86)\\Windows Kits\\10\\Windows Performance Toolkit"
+ - "C:\\Users\\simulateur\\Downloads\\vcpkg"
+ - "C:\\Users\\simulateur\\.jdks\\valhalla-ea-23-valhalla+1-90\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\CLion\\bin\\cmake\\win\\x64\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Inno Setup 6"
+ - "C:\\Program Files\\WireGuard"
+ - "C:\\Program Files\\Cloudflare\\Cloudflare WARP"
+ - "C:\\Program Files\\CMake\\bin"
+ - "C:\\Users\\simulateur\\.local\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Python\\Python313\\Scripts"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Python\\Python313"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Python\\Python311\\Scripts"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Python\\Python311"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Microsoft\\WindowsApps"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Microsoft VS Code\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Roaming\\npm"
+ - "C:\\Users\\simulateur\\AppData\\Local\\JetBrains\\Toolbox\\scripts"
+ - "C:\\Users\\simulateur\\.dotnet\\tools"
+ - "C:\\Users\\simulateur\\Downloads\\vcpkg"
+ - "C:\\Users\\simulateur\\.jdks\\valhalla-ea-23-valhalla+1-90\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\CLion\\bin\\cmake\\win\\x64\\bin"
+ - "C:\\Program Files\\Processing"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Python\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Inno Setup 6"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\cursor\\resources\\app\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Ollama"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Programs\\Antigravity\\bin"
+ - "C:\\Users\\simulateur\\AppData\\Local\\Microsoft\\WindowsApps"
+ - "C:\\Program Files\\Git\\usr\\bin\\vendor_perl"
+ - "C:\\Program Files\\Git\\usr\\bin\\core_perl"
+ CMAKE_INSTALL_PREFIX: "C:/Program Files/webcam"
+ CMAKE_SYSTEM_PREFIX_PATH:
+ - "C:/Program Files"
+ - "C:/Program Files (x86)"
+ - "C:/Program Files/CMake"
+ - "C:/Program Files/webcam"
+ -
+ kind: "try_compile-v1"
+ backtrace:
+ - "C:/Program Files/CMake/share/cmake-4.3/Modules/CMakeDetermineCompilerABI.cmake:83 (try_compile)"
+ - "C:/Program Files/CMake/share/cmake-4.3/Modules/CMakeTestCXXCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)"
+ - "CMakeLists.txt:3 (project)"
+ checks:
+ - "Detecting CXX compiler ABI info"
+ directories:
+ source: "C:/Users/simulateur/Documents/Webcam/build/CMakeFiles/CMakeScratch/TryCompile-gii50f"
+ binary: "C:/Users/simulateur/Documents/Webcam/build/CMakeFiles/CMakeScratch/TryCompile-gii50f"
+ cmakeVariables:
+ CMAKE_CXX_FLAGS: "/DWIN32 /D_WINDOWS /EHsc"
+ CMAKE_CXX_FLAGS_DEBUG: "/Zi /Ob0 /Od /RTC1"
+ CMAKE_CXX_SCAN_FOR_MODULES: "OFF"
+ CMAKE_CXX_STDLIB_MODULES_JSON: ""
+ CMAKE_EXE_LINKER_FLAGS: "/machine:x64"
+ buildResult:
+ variable: "CMAKE_CXX_ABI_COMPILED"
+ cached: true
+ stdout: |
+ Change Dir: 'C:/Users/simulateur/Documents/Webcam/build/CMakeFiles/CMakeScratch/TryCompile-gii50f'
+
+ Run Build Command(s): "C:/Program Files/Microsoft Visual Studio/2022/Community/MSBuild/Current/Bin/amd64/MSBuild.exe" cmTC_3622b.vcxproj /p:Configuration=Debug /p:Platform=x64 /p:VisualStudioVersion=17.0 /v:n
+ Version MSBuild 17.14.23+b0019275e pour .NET Framework
+ La g├®n├®ration a d├®marr├® 07/07/2026 16:51:56.
+
+ Projet "C:\\Users\\simulateur\\Documents\\Webcam\\build\\CMakeFiles\\CMakeScratch\\TryCompile-gii50f\\cmTC_3622b.vcxproj" sur le n┼ôud 1 (cibles par d├®faut).
+ PrepareForBuild:
+ La sortie structur├®e est activ├®e. La mise en forme du compilateur diagnostics refl├¿te la hi├®rarchie des erreurs. Pour plus dÔÇÖinformations, consultez https://aka.ms/cpp/structured-output.
+ Cr├®ation du r├®pertoire "C:\\Users\\simulateur\\Documents\\Webcam\\build\\CMakeFiles\\CMakeScratch\\TryCompile-gii50f\\Debug\\".
+ Cr├®ation du r├®pertoire "cmTC_3622b.dir\\Debug\\cmTC_3622b.tlog\\".
+ InitializeBuildStatus:
+ Cr├®ation de "cmTC_3622b.dir\\Debug\\cmTC_3622b.tlog\\unsuccessfulbuild", car "AlwaysCreate" a ├®t├® sp├®cifi├®.
+ Mise à jour de l'horodatage "cmTC_3622b.dir\\Debug\\cmTC_3622b.tlog\\unsuccessfulbuild".
+ ClCompile:
+ C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.44.35207\\bin\\HostX64\\x64\\CL.exe /c /Zi /W1 /WX- /diagnostics:column /Od /Ob0 /D _MBCS /D WIN32 /D _WINDOWS /D _MBCS /D "CMAKE_INTDIR=\\"Debug\\"" /EHsc /RTC1 /MDd /Fo"cmTC_3622b.dir\\Debug\\\\" /Fd"cmTC_3622b.dir\\Debug\\vc143.pdb" /external:W1 /TP /errorReport:queue "C:\\Program Files\\CMake\\share\\cmake-4.3\\Modules\\CMakeCXXCompilerABI.cpp"
+ Compilateur d'optimisation Microsoft (R) C/C++ version 19.44.35217 pour x64
+ Copyright (C) Microsoft Corporation. Tous droits r├®serv├®s.
+ cl /c /Zi /W1 /WX- /diagnostics:column /Od /Ob0 /D _MBCS /D WIN32 /D _WINDOWS /D _MBCS /D "CMAKE_INTDIR=\\"Debug\\"" /EHsc /RTC1 /MDd /Fo"cmTC_3622b.dir\\Debug\\\\" /Fd"cmTC_3622b.dir\\Debug\\vc143.pdb" /external:W1 /TP /errorReport:queue "C:\\Program Files\\CMake\\share\\cmake-4.3\\Modules\\CMakeCXXCompilerABI.cpp"
+ CMakeCXXCompilerABI.cpp
+ Link:
+ C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.44.35207\\bin\\HostX64\\x64\\link.exe /OUT:"C:\\Users\\simulateur\\Documents\\Webcam\\build\\CMakeFiles\\CMakeScratch\\TryCompile-gii50f\\Debug\\cmTC_3622b.exe" /INCREMENTAL /ILK:"cmTC_3622b.dir\\Debug\\cmTC_3622b.ilk" /NOLOGO kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib /MANIFEST /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /manifest:embed /DEBUG /PDB:"C:/Users/simulateur/Documents/Webcam/build/CMakeFiles/CMakeScratch/TryCompile-gii50f/Debug/cmTC_3622b.pdb" /SUBSYSTEM:CONSOLE /TLBID:1 /IMPLIB:"C:/Users/simulateur/Documents/Webcam/build/CMakeFiles/CMakeScratch/TryCompile-gii50f/Debug/cmTC_3622b.lib" /MACHINE:X64 /machine:x64 cmTC_3622b.dir\\Debug\\CMakeCXXCompilerABI.obj
+ cmTC_3622b.vcxproj -> C:\\Users\\simulateur\\Documents\\Webcam\\build\\CMakeFiles\\CMakeScratch\\TryCompile-gii50f\\Debug\\cmTC_3622b.exe
+ FinalizeBuildStatus:
+ Suppression du fichier "cmTC_3622b.dir\\Debug\\cmTC_3622b.tlog\\unsuccessfulbuild".
+ Mise à jour de l'horodatage "cmTC_3622b.dir\\Debug\\cmTC_3622b.tlog\\cmTC_3622b.lastbuildstate".
+ G├®n├®ration du projet "C:\\Users\\simulateur\\Documents\\Webcam\\build\\CMakeFiles\\CMakeScratch\\TryCompile-gii50f\\cmTC_3622b.vcxproj" termin├®e (cibles par d├®faut).
+
+ La g├®n├®ration a r├®ussi.
+ 0 Avertissement(s)
+ 0 Erreur(s)
+
+ Temps ├®coul├® 00:00:00.57
+
+ exitCode: 0
+ -
+ kind: "message-v1"
+ backtrace:
+ - "C:/Program Files/CMake/share/cmake-4.3/Modules/CMakeDetermineCompilerABI.cmake:253 (message)"
+ - "C:/Program Files/CMake/share/cmake-4.3/Modules/CMakeTestCXXCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)"
+ - "CMakeLists.txt:3 (project)"
+ message: |
+ Parsed CXX implicit link information:
+ link line regex: [^( *|.*[/\\])(ld[0-9]*(|\\.[a-rt-z][a-z]*|\\.s[a-np-z][a-z]*|\\.so[a-z]+)|link\\.exe|lld-link(\\.exe)?|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\\]+-)?ld|collect2)[^/\\]*( |$)]
+ linker tool regex: [^[ ]*(->|"|[0-9]+>[ -]*Build:[ 0-9]+ ms[ ]*)?[ ]*(([^"]*[/\\])?(ld[0-9]*(|\\.[a-rt-z][a-z]*|\\.s[a-np-z][a-z]*|\\.so[a-z]+)|link\\.exe|lld-link(\\.exe)?))("|,| |$)]
+ linker tool for 'CXX': C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.44.35207/bin/HostX64/x64/link.exe
+ implicit libs: []
+ implicit objs: []
+ implicit dirs: []
+ implicit fwks: []
+
+
+ -
+ kind: "message-v1"
+ backtrace:
+ - "C:/Program Files/CMake/share/cmake-4.3/Modules/Internal/CMakeDetermineLinkerId.cmake:38 (message)"
+ - "C:/Program Files/CMake/share/cmake-4.3/Modules/CMakeDetermineCompilerABI.cmake:299 (cmake_determine_linker_id)"
+ - "C:/Program Files/CMake/share/cmake-4.3/Modules/CMakeTestCXXCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)"
+ - "CMakeLists.txt:3 (project)"
+ message: |
+ Running the CXX compiler's linker: "C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.44.35207/bin/HostX64/x64/link.exe" "-v"
+ Microsoft (R) Incremental Linker Version 14.44.35217.0
+ Copyright (C) Microsoft Corporation. All rights reserved.
+...
diff --git a/build/CMakeFiles/InstallScripts.json b/build/CMakeFiles/InstallScripts.json
new file mode 100644
index 0000000..b71a8c1
--- /dev/null
+++ b/build/CMakeFiles/InstallScripts.json
@@ -0,0 +1,7 @@
+{
+ "InstallScripts" :
+ [
+ "C:/Users/simulateur/Documents/Webcam/build/cmake_install.cmake"
+ ],
+ "Parallel" : false
+}
diff --git a/build/CMakeFiles/TargetDirectories.txt b/build/CMakeFiles/TargetDirectories.txt
new file mode 100644
index 0000000..76ea3e5
--- /dev/null
+++ b/build/CMakeFiles/TargetDirectories.txt
@@ -0,0 +1,3 @@
+C:/Users/simulateur/Documents/Webcam/build/CMakeFiles/webcam.dir
+C:/Users/simulateur/Documents/Webcam/build/CMakeFiles/ALL_BUILD.dir
+C:/Users/simulateur/Documents/Webcam/build/CMakeFiles/ZERO_CHECK.dir
diff --git a/build/CMakeFiles/cmake.check_cache b/build/CMakeFiles/cmake.check_cache
new file mode 100644
index 0000000..3dccd73
--- /dev/null
+++ b/build/CMakeFiles/cmake.check_cache
@@ -0,0 +1 @@
+# This file is generated by cmake for dependency checking of the CMakeCache.txt file
diff --git a/build/CMakeFiles/generate.stamp b/build/CMakeFiles/generate.stamp
new file mode 100644
index 0000000..9b5f49f
--- /dev/null
+++ b/build/CMakeFiles/generate.stamp
@@ -0,0 +1 @@
+# CMake generation timestamp file for this directory.
diff --git a/build/CMakeFiles/generate.stamp.depend b/build/CMakeFiles/generate.stamp.depend
new file mode 100644
index 0000000..bb8b7a4
--- /dev/null
+++ b/build/CMakeFiles/generate.stamp.depend
@@ -0,0 +1,27 @@
+# CMake generation dependency list for this directory.
+C:/Program Files/CMake/share/cmake-4.3/Modules/CMakeCXXInformation.cmake
+C:/Program Files/CMake/share/cmake-4.3/Modules/CMakeCommonLanguageInclude.cmake
+C:/Program Files/CMake/share/cmake-4.3/Modules/CMakeGenericSystem.cmake
+C:/Program Files/CMake/share/cmake-4.3/Modules/CMakeInitializeConfigs.cmake
+C:/Program Files/CMake/share/cmake-4.3/Modules/CMakeLanguageInformation.cmake
+C:/Program Files/CMake/share/cmake-4.3/Modules/CMakeRCInformation.cmake
+C:/Program Files/CMake/share/cmake-4.3/Modules/CMakeSystemSpecificInformation.cmake
+C:/Program Files/CMake/share/cmake-4.3/Modules/CMakeSystemSpecificInitialize.cmake
+C:/Program Files/CMake/share/cmake-4.3/Modules/Compiler/CMakeCommonCompilerMacros.cmake
+C:/Program Files/CMake/share/cmake-4.3/Modules/Compiler/MSVC-CXX.cmake
+C:/Program Files/CMake/share/cmake-4.3/Modules/Compiler/MSVC.cmake
+C:/Program Files/CMake/share/cmake-4.3/Modules/Internal/CMakeCXXLinkerInformation.cmake
+C:/Program Files/CMake/share/cmake-4.3/Modules/Internal/CMakeCommonLinkerInformation.cmake
+C:/Program Files/CMake/share/cmake-4.3/Modules/Linker/MSVC-CXX.cmake
+C:/Program Files/CMake/share/cmake-4.3/Modules/Linker/MSVC.cmake
+C:/Program Files/CMake/share/cmake-4.3/Modules/Platform/Linker/Windows-MSVC-CXX.cmake
+C:/Program Files/CMake/share/cmake-4.3/Modules/Platform/Linker/Windows-MSVC.cmake
+C:/Program Files/CMake/share/cmake-4.3/Modules/Platform/Windows-Initialize.cmake
+C:/Program Files/CMake/share/cmake-4.3/Modules/Platform/Windows-MSVC-CXX.cmake
+C:/Program Files/CMake/share/cmake-4.3/Modules/Platform/Windows-MSVC.cmake
+C:/Program Files/CMake/share/cmake-4.3/Modules/Platform/Windows.cmake
+C:/Program Files/CMake/share/cmake-4.3/Modules/Platform/WindowsPaths.cmake
+C:/Users/simulateur/Documents/Webcam/CMakeLists.txt
+C:/Users/simulateur/Documents/Webcam/build/CMakeFiles/4.3.3/CMakeCXXCompiler.cmake
+C:/Users/simulateur/Documents/Webcam/build/CMakeFiles/4.3.3/CMakeRCCompiler.cmake
+C:/Users/simulateur/Documents/Webcam/build/CMakeFiles/4.3.3/CMakeSystem.cmake
diff --git a/build/CMakeFiles/generate.stamp.list b/build/CMakeFiles/generate.stamp.list
new file mode 100644
index 0000000..1de9fe4
--- /dev/null
+++ b/build/CMakeFiles/generate.stamp.list
@@ -0,0 +1 @@
+C:/Users/simulateur/Documents/Webcam/build/CMakeFiles/generate.stamp
diff --git a/build/Release/webcam_binding.dll b/build/Release/webcam_binding.dll
new file mode 100644
index 0000000..ce060a1
Binary files /dev/null and b/build/Release/webcam_binding.dll differ
diff --git a/build/Release/webcam_binding.exp b/build/Release/webcam_binding.exp
new file mode 100644
index 0000000..38cd261
Binary files /dev/null and b/build/Release/webcam_binding.exp differ
diff --git a/build/Release/webcam_binding.lib b/build/Release/webcam_binding.lib
new file mode 100644
index 0000000..a57050c
Binary files /dev/null and b/build/Release/webcam_binding.lib differ
diff --git a/build/ZERO_CHECK.vcxproj b/build/ZERO_CHECK.vcxproj
new file mode 100644
index 0000000..b6b76d0
--- /dev/null
+++ b/build/ZERO_CHECK.vcxproj
@@ -0,0 +1,179 @@
+
+
+
+ x64
+
+
+ false
+
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+ MinSizeRel
+ x64
+
+
+ RelWithDebInfo
+ x64
+
+
+
+ {4BC2C1ED-2131-38E4-A11D-92CF0D712898}
+ Win32Proj
+ 10.0.26100.0
+ x64
+ ZERO_CHECK
+ NoUpgrade
+
+
+
+ Utility
+ MultiByte
+ v143
+
+
+ Utility
+ MultiByte
+ v143
+
+
+ Utility
+ MultiByte
+ v143
+
+
+ Utility
+ MultiByte
+ v143
+
+
+
+
+
+
+
+
+
+ <_ProjectFileVersion>10.0.20506.1
+ $(Platform)\$(Configuration)\$(ProjectName)\
+ $(Platform)\$(Configuration)\$(ProjectName)\
+ $(Platform)\$(Configuration)\$(ProjectName)\
+ $(Platform)\$(Configuration)\$(ProjectName)\
+
+
+
+ %(AdditionalIncludeDirectories)
+ $(ProjectDir)/$(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+
+
+ %(AdditionalIncludeDirectories)
+ $(ProjectDir)/$(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+
+
+ %(AdditionalIncludeDirectories)
+ $(ProjectDir)/$(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+
+
+ %(AdditionalIncludeDirectories)
+ $(ProjectDir)/$(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+
+
+ Always
+ true
+ Checking Build System
+ setlocal
+"C:\Program Files\CMake\bin\cmake.exe" -SC:/Users/simulateur/Documents/Webcam -BC:/Users/simulateur/Documents/Webcam/build --check-stamp-list CMakeFiles/generate.stamp.list --vs-solution-file C:/Users/simulateur/Documents/Webcam/build/webcam.sln
+if %errorlevel% neq 0 goto :cmEnd
+:cmEnd
+endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
+:cmErrorLevel
+exit /b %1
+:cmDone
+if %errorlevel% neq 0 goto :VCEnd
+ C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeCXXInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeCommonLanguageInclude.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeGenericSystem.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeInitializeConfigs.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeLanguageInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeRCInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeSystemSpecificInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeSystemSpecificInitialize.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Compiler\CMakeCommonCompilerMacros.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Compiler\MSVC-CXX.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Compiler\MSVC.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Internal\CMakeCXXLinkerInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Internal\CMakeCommonLinkerInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Linker\MSVC-CXX.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Linker\MSVC.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Linker\Windows-MSVC-CXX.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Linker\Windows-MSVC.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Windows-Initialize.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Windows-MSVC-CXX.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Windows-MSVC.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Windows.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\WindowsPaths.cmake;C:\Users\simulateur\Documents\Webcam\CMakeLists.txt;C:\Users\simulateur\Documents\Webcam\build\CMakeFiles\4.3.3\CMakeCXXCompiler.cmake;C:\Users\simulateur\Documents\Webcam\build\CMakeFiles\4.3.3\CMakeRCCompiler.cmake;C:\Users\simulateur\Documents\Webcam\build\CMakeFiles\4.3.3\CMakeSystem.cmake;%(AdditionalInputs)
+ C:\Users\simulateur\Documents\Webcam\build\CMakeFiles\generate.stamp
+ false
+ true
+ Checking Build System
+ setlocal
+"C:\Program Files\CMake\bin\cmake.exe" -SC:/Users/simulateur/Documents/Webcam -BC:/Users/simulateur/Documents/Webcam/build --check-stamp-list CMakeFiles/generate.stamp.list --vs-solution-file C:/Users/simulateur/Documents/Webcam/build/webcam.sln
+if %errorlevel% neq 0 goto :cmEnd
+:cmEnd
+endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
+:cmErrorLevel
+exit /b %1
+:cmDone
+if %errorlevel% neq 0 goto :VCEnd
+ C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeCXXInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeCommonLanguageInclude.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeGenericSystem.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeInitializeConfigs.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeLanguageInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeRCInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeSystemSpecificInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeSystemSpecificInitialize.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Compiler\CMakeCommonCompilerMacros.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Compiler\MSVC-CXX.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Compiler\MSVC.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Internal\CMakeCXXLinkerInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Internal\CMakeCommonLinkerInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Linker\MSVC-CXX.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Linker\MSVC.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Linker\Windows-MSVC-CXX.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Linker\Windows-MSVC.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Windows-Initialize.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Windows-MSVC-CXX.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Windows-MSVC.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Windows.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\WindowsPaths.cmake;C:\Users\simulateur\Documents\Webcam\CMakeLists.txt;C:\Users\simulateur\Documents\Webcam\build\CMakeFiles\4.3.3\CMakeCXXCompiler.cmake;C:\Users\simulateur\Documents\Webcam\build\CMakeFiles\4.3.3\CMakeRCCompiler.cmake;C:\Users\simulateur\Documents\Webcam\build\CMakeFiles\4.3.3\CMakeSystem.cmake;%(AdditionalInputs)
+ C:\Users\simulateur\Documents\Webcam\build\CMakeFiles\generate.stamp
+ false
+ true
+ Checking Build System
+ setlocal
+"C:\Program Files\CMake\bin\cmake.exe" -SC:/Users/simulateur/Documents/Webcam -BC:/Users/simulateur/Documents/Webcam/build --check-stamp-list CMakeFiles/generate.stamp.list --vs-solution-file C:/Users/simulateur/Documents/Webcam/build/webcam.sln
+if %errorlevel% neq 0 goto :cmEnd
+:cmEnd
+endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
+:cmErrorLevel
+exit /b %1
+:cmDone
+if %errorlevel% neq 0 goto :VCEnd
+ C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeCXXInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeCommonLanguageInclude.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeGenericSystem.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeInitializeConfigs.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeLanguageInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeRCInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeSystemSpecificInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeSystemSpecificInitialize.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Compiler\CMakeCommonCompilerMacros.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Compiler\MSVC-CXX.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Compiler\MSVC.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Internal\CMakeCXXLinkerInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Internal\CMakeCommonLinkerInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Linker\MSVC-CXX.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Linker\MSVC.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Linker\Windows-MSVC-CXX.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Linker\Windows-MSVC.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Windows-Initialize.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Windows-MSVC-CXX.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Windows-MSVC.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Windows.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\WindowsPaths.cmake;C:\Users\simulateur\Documents\Webcam\CMakeLists.txt;C:\Users\simulateur\Documents\Webcam\build\CMakeFiles\4.3.3\CMakeCXXCompiler.cmake;C:\Users\simulateur\Documents\Webcam\build\CMakeFiles\4.3.3\CMakeRCCompiler.cmake;C:\Users\simulateur\Documents\Webcam\build\CMakeFiles\4.3.3\CMakeSystem.cmake;%(AdditionalInputs)
+ C:\Users\simulateur\Documents\Webcam\build\CMakeFiles\generate.stamp
+ false
+ true
+ Checking Build System
+ setlocal
+"C:\Program Files\CMake\bin\cmake.exe" -SC:/Users/simulateur/Documents/Webcam -BC:/Users/simulateur/Documents/Webcam/build --check-stamp-list CMakeFiles/generate.stamp.list --vs-solution-file C:/Users/simulateur/Documents/Webcam/build/webcam.sln
+if %errorlevel% neq 0 goto :cmEnd
+:cmEnd
+endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
+:cmErrorLevel
+exit /b %1
+:cmDone
+if %errorlevel% neq 0 goto :VCEnd
+ C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeCXXInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeCommonLanguageInclude.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeGenericSystem.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeInitializeConfigs.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeLanguageInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeRCInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeSystemSpecificInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeSystemSpecificInitialize.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Compiler\CMakeCommonCompilerMacros.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Compiler\MSVC-CXX.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Compiler\MSVC.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Internal\CMakeCXXLinkerInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Internal\CMakeCommonLinkerInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Linker\MSVC-CXX.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Linker\MSVC.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Linker\Windows-MSVC-CXX.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Linker\Windows-MSVC.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Windows-Initialize.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Windows-MSVC-CXX.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Windows-MSVC.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Windows.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\WindowsPaths.cmake;C:\Users\simulateur\Documents\Webcam\CMakeLists.txt;C:\Users\simulateur\Documents\Webcam\build\CMakeFiles\4.3.3\CMakeCXXCompiler.cmake;C:\Users\simulateur\Documents\Webcam\build\CMakeFiles\4.3.3\CMakeRCCompiler.cmake;C:\Users\simulateur\Documents\Webcam\build\CMakeFiles\4.3.3\CMakeSystem.cmake;%(AdditionalInputs)
+ C:\Users\simulateur\Documents\Webcam\build\CMakeFiles\generate.stamp
+ false
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/build/ZERO_CHECK.vcxproj.filters b/build/ZERO_CHECK.vcxproj.filters
new file mode 100644
index 0000000..7cbdf17
--- /dev/null
+++ b/build/ZERO_CHECK.vcxproj.filters
@@ -0,0 +1,13 @@
+
+
+
+
+ CMake Rules
+
+
+
+
+ {93EF4448-038D-3951-9AAA-7ADABD3ADA50}
+
+
+
diff --git a/build/cmake_install.cmake b/build/cmake_install.cmake
new file mode 100644
index 0000000..25d5cba
--- /dev/null
+++ b/build/cmake_install.cmake
@@ -0,0 +1,56 @@
+# Install script for directory: C:/Users/simulateur/Documents/Webcam
+
+# Set the install prefix
+if(NOT DEFINED CMAKE_INSTALL_PREFIX)
+ set(CMAKE_INSTALL_PREFIX "C:/Program Files/webcam")
+endif()
+string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
+
+# Set the install configuration name.
+if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
+ if(BUILD_TYPE)
+ string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
+ CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
+ else()
+ set(CMAKE_INSTALL_CONFIG_NAME "Release")
+ endif()
+ message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
+endif()
+
+# Set the component getting installed.
+if(NOT CMAKE_INSTALL_COMPONENT)
+ if(COMPONENT)
+ message(STATUS "Install component: \"${COMPONENT}\"")
+ set(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
+ else()
+ set(CMAKE_INSTALL_COMPONENT)
+ endif()
+endif()
+
+# Is this installation the result of a crosscompile?
+if(NOT DEFINED CMAKE_CROSSCOMPILING)
+ set(CMAKE_CROSSCOMPILING "FALSE")
+endif()
+
+string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT
+ "${CMAKE_INSTALL_MANIFEST_FILES}")
+if(CMAKE_INSTALL_LOCAL_ONLY)
+ file(WRITE "C:/Users/simulateur/Documents/Webcam/build/install_local_manifest.txt"
+ "${CMAKE_INSTALL_MANIFEST_CONTENT}")
+endif()
+if(CMAKE_INSTALL_COMPONENT)
+ if(CMAKE_INSTALL_COMPONENT MATCHES "^[a-zA-Z0-9_.+-]+$")
+ set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt")
+ else()
+ string(MD5 CMAKE_INST_COMP_HASH "${CMAKE_INSTALL_COMPONENT}")
+ set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INST_COMP_HASH}.txt")
+ unset(CMAKE_INST_COMP_HASH)
+ endif()
+else()
+ set(CMAKE_INSTALL_MANIFEST "install_manifest.txt")
+endif()
+
+if(NOT CMAKE_INSTALL_LOCAL_ONLY)
+ file(WRITE "C:/Users/simulateur/Documents/Webcam/build/${CMAKE_INSTALL_MANIFEST}"
+ "${CMAKE_INSTALL_MANIFEST_CONTENT}")
+endif()
diff --git a/build/webcam.dir/Debug/vc143.pdb b/build/webcam.dir/Debug/vc143.pdb
new file mode 100644
index 0000000..4a49a31
Binary files /dev/null and b/build/webcam.dir/Debug/vc143.pdb differ
diff --git a/build/webcam.dir/Debug/webcam.tlog/CL.command.1.tlog b/build/webcam.dir/Debug/webcam.tlog/CL.command.1.tlog
new file mode 100644
index 0000000..6a4d9af
Binary files /dev/null and b/build/webcam.dir/Debug/webcam.tlog/CL.command.1.tlog differ
diff --git a/build/webcam.dir/Debug/webcam.tlog/CL.read.1.tlog b/build/webcam.dir/Debug/webcam.tlog/CL.read.1.tlog
new file mode 100644
index 0000000..4eeac53
Binary files /dev/null and b/build/webcam.dir/Debug/webcam.tlog/CL.read.1.tlog differ
diff --git a/build/webcam.dir/Debug/webcam.tlog/CL.write.1.tlog b/build/webcam.dir/Debug/webcam.tlog/CL.write.1.tlog
new file mode 100644
index 0000000..32952f2
Binary files /dev/null and b/build/webcam.dir/Debug/webcam.tlog/CL.write.1.tlog differ
diff --git a/build/webcam.dir/Debug/webcam.tlog/CustomBuild.command.1.tlog b/build/webcam.dir/Debug/webcam.tlog/CustomBuild.command.1.tlog
new file mode 100644
index 0000000..eaf6f36
--- /dev/null
+++ b/build/webcam.dir/Debug/webcam.tlog/CustomBuild.command.1.tlog
@@ -0,0 +1,10 @@
+^C:\USERS\SIMULATEUR\DOCUMENTS\WEBCAM\CMAKELISTS.TXT
+setlocal
+"C:\Program Files\CMake\bin\cmake.exe" -SC:/Users/simulateur/Documents/Webcam -BC:/Users/simulateur/Documents/Webcam/build --check-stamp-file C:/Users/simulateur/Documents/Webcam/build/CMakeFiles/generate.stamp
+if %errorlevel% neq 0 goto :cmEnd
+:cmEnd
+endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
+:cmErrorLevel
+exit /b %1
+:cmDone
+if %errorlevel% neq 0 goto :VCEnd
diff --git a/build/webcam.dir/Debug/webcam.tlog/CustomBuild.read.1.tlog b/build/webcam.dir/Debug/webcam.tlog/CustomBuild.read.1.tlog
new file mode 100644
index 0000000..10737b9
--- /dev/null
+++ b/build/webcam.dir/Debug/webcam.tlog/CustomBuild.read.1.tlog
@@ -0,0 +1,26 @@
+^C:\USERS\SIMULATEUR\DOCUMENTS\WEBCAM\CMAKELISTS.TXT
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\CMAKECXXINFORMATION.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\CMAKECOMMONLANGUAGEINCLUDE.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\CMAKEGENERICSYSTEM.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\CMAKEINITIALIZECONFIGS.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\CMAKELANGUAGEINFORMATION.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\CMAKERCINFORMATION.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\CMAKESYSTEMSPECIFICINFORMATION.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\CMAKESYSTEMSPECIFICINITIALIZE.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\COMPILER\CMAKECOMMONCOMPILERMACROS.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\COMPILER\MSVC-CXX.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\COMPILER\MSVC.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\INTERNAL\CMAKECXXLINKERINFORMATION.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\INTERNAL\CMAKECOMMONLINKERINFORMATION.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\LINKER\MSVC-CXX.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\LINKER\MSVC.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\PLATFORM\LINKER\WINDOWS-MSVC-CXX.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\PLATFORM\LINKER\WINDOWS-MSVC.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\PLATFORM\WINDOWS-INITIALIZE.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\PLATFORM\WINDOWS-MSVC-CXX.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\PLATFORM\WINDOWS-MSVC.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\PLATFORM\WINDOWS.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\PLATFORM\WINDOWSPATHS.CMAKE
+C:\USERS\SIMULATEUR\DOCUMENTS\WEBCAM\BUILD\CMAKEFILES\4.3.3\CMAKECXXCOMPILER.CMAKE
+C:\USERS\SIMULATEUR\DOCUMENTS\WEBCAM\BUILD\CMAKEFILES\4.3.3\CMAKERCCOMPILER.CMAKE
+C:\USERS\SIMULATEUR\DOCUMENTS\WEBCAM\BUILD\CMAKEFILES\4.3.3\CMAKESYSTEM.CMAKE
diff --git a/build/webcam.dir/Debug/webcam.tlog/CustomBuild.write.1.tlog b/build/webcam.dir/Debug/webcam.tlog/CustomBuild.write.1.tlog
new file mode 100644
index 0000000..998170b
--- /dev/null
+++ b/build/webcam.dir/Debug/webcam.tlog/CustomBuild.write.1.tlog
@@ -0,0 +1,2 @@
+^C:\USERS\SIMULATEUR\DOCUMENTS\WEBCAM\CMAKELISTS.TXT
+C:\USERS\SIMULATEUR\DOCUMENTS\WEBCAM\BUILD\CMAKEFILES\GENERATE.STAMP
diff --git a/build/webcam.dir/Debug/webcam.tlog/unsuccessfulbuild b/build/webcam.dir/Debug/webcam.tlog/unsuccessfulbuild
new file mode 100644
index 0000000..e69de29
diff --git a/build/webcam.dir/Debug/webcam.tlog/webcam.lastbuildstate b/build/webcam.dir/Debug/webcam.tlog/webcam.lastbuildstate
new file mode 100644
index 0000000..9073e36
--- /dev/null
+++ b/build/webcam.dir/Debug/webcam.tlog/webcam.lastbuildstate
@@ -0,0 +1,2 @@
+PlatformToolSet=v143:VCToolArchitecture=Native64Bit:VCToolsVersion=14.44.35207:TargetPlatformVersion=10.0.26100.0:
+Debug|x64|C:\Users\simulateur\Documents\Webcam\build\|
diff --git a/build/webcam.dir/Debug/webcam_binding.obj b/build/webcam.dir/Debug/webcam_binding.obj
new file mode 100644
index 0000000..6253b99
Binary files /dev/null and b/build/webcam.dir/Debug/webcam_binding.obj differ
diff --git a/build/webcam.dir/Debug/webcam_impl.obj b/build/webcam.dir/Debug/webcam_impl.obj
new file mode 100644
index 0000000..0598322
Binary files /dev/null and b/build/webcam.dir/Debug/webcam_impl.obj differ
diff --git a/build/webcam.dir/Release/webcam.obj b/build/webcam.dir/Release/webcam.obj
new file mode 100644
index 0000000..abbdb34
Binary files /dev/null and b/build/webcam.dir/Release/webcam.obj differ
diff --git a/build/webcam.dir/Release/webcam.tlog/CL.command.1.tlog b/build/webcam.dir/Release/webcam.tlog/CL.command.1.tlog
new file mode 100644
index 0000000..2c3e9e6
Binary files /dev/null and b/build/webcam.dir/Release/webcam.tlog/CL.command.1.tlog differ
diff --git a/build/webcam.dir/Release/webcam.tlog/CL.read.1.tlog b/build/webcam.dir/Release/webcam.tlog/CL.read.1.tlog
new file mode 100644
index 0000000..8115954
Binary files /dev/null and b/build/webcam.dir/Release/webcam.tlog/CL.read.1.tlog differ
diff --git a/build/webcam.dir/Release/webcam.tlog/CL.write.1.tlog b/build/webcam.dir/Release/webcam.tlog/CL.write.1.tlog
new file mode 100644
index 0000000..8eb76ec
Binary files /dev/null and b/build/webcam.dir/Release/webcam.tlog/CL.write.1.tlog differ
diff --git a/build/webcam.dir/Release/webcam.tlog/Cl.items.tlog b/build/webcam.dir/Release/webcam.tlog/Cl.items.tlog
new file mode 100644
index 0000000..f970ee2
--- /dev/null
+++ b/build/webcam.dir/Release/webcam.tlog/Cl.items.tlog
@@ -0,0 +1,3 @@
+C:\Users\simulateur\Documents\Webcam\source\webcam.cpp;C:\Users\simulateur\Documents\Webcam\build\webcam.dir\Release\webcam.obj
+C:\Users\simulateur\Documents\Webcam\source\webcam_binding.cpp;C:\Users\simulateur\Documents\Webcam\build\webcam.dir\Release\webcam_binding.obj
+C:\Users\simulateur\Documents\Webcam\source\webcam_impl.cpp;C:\Users\simulateur\Documents\Webcam\build\webcam.dir\Release\webcam_impl.obj
diff --git a/build/webcam.dir/Release/webcam.tlog/CustomBuild.command.1.tlog b/build/webcam.dir/Release/webcam.tlog/CustomBuild.command.1.tlog
new file mode 100644
index 0000000..eaf6f36
--- /dev/null
+++ b/build/webcam.dir/Release/webcam.tlog/CustomBuild.command.1.tlog
@@ -0,0 +1,10 @@
+^C:\USERS\SIMULATEUR\DOCUMENTS\WEBCAM\CMAKELISTS.TXT
+setlocal
+"C:\Program Files\CMake\bin\cmake.exe" -SC:/Users/simulateur/Documents/Webcam -BC:/Users/simulateur/Documents/Webcam/build --check-stamp-file C:/Users/simulateur/Documents/Webcam/build/CMakeFiles/generate.stamp
+if %errorlevel% neq 0 goto :cmEnd
+:cmEnd
+endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
+:cmErrorLevel
+exit /b %1
+:cmDone
+if %errorlevel% neq 0 goto :VCEnd
diff --git a/build/webcam.dir/Release/webcam.tlog/CustomBuild.read.1.tlog b/build/webcam.dir/Release/webcam.tlog/CustomBuild.read.1.tlog
new file mode 100644
index 0000000..10737b9
--- /dev/null
+++ b/build/webcam.dir/Release/webcam.tlog/CustomBuild.read.1.tlog
@@ -0,0 +1,26 @@
+^C:\USERS\SIMULATEUR\DOCUMENTS\WEBCAM\CMAKELISTS.TXT
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\CMAKECXXINFORMATION.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\CMAKECOMMONLANGUAGEINCLUDE.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\CMAKEGENERICSYSTEM.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\CMAKEINITIALIZECONFIGS.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\CMAKELANGUAGEINFORMATION.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\CMAKERCINFORMATION.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\CMAKESYSTEMSPECIFICINFORMATION.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\CMAKESYSTEMSPECIFICINITIALIZE.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\COMPILER\CMAKECOMMONCOMPILERMACROS.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\COMPILER\MSVC-CXX.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\COMPILER\MSVC.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\INTERNAL\CMAKECXXLINKERINFORMATION.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\INTERNAL\CMAKECOMMONLINKERINFORMATION.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\LINKER\MSVC-CXX.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\LINKER\MSVC.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\PLATFORM\LINKER\WINDOWS-MSVC-CXX.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\PLATFORM\LINKER\WINDOWS-MSVC.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\PLATFORM\WINDOWS-INITIALIZE.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\PLATFORM\WINDOWS-MSVC-CXX.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\PLATFORM\WINDOWS-MSVC.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\PLATFORM\WINDOWS.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\PLATFORM\WINDOWSPATHS.CMAKE
+C:\USERS\SIMULATEUR\DOCUMENTS\WEBCAM\BUILD\CMAKEFILES\4.3.3\CMAKECXXCOMPILER.CMAKE
+C:\USERS\SIMULATEUR\DOCUMENTS\WEBCAM\BUILD\CMAKEFILES\4.3.3\CMAKERCCOMPILER.CMAKE
+C:\USERS\SIMULATEUR\DOCUMENTS\WEBCAM\BUILD\CMAKEFILES\4.3.3\CMAKESYSTEM.CMAKE
diff --git a/build/webcam.dir/Release/webcam.tlog/CustomBuild.write.1.tlog b/build/webcam.dir/Release/webcam.tlog/CustomBuild.write.1.tlog
new file mode 100644
index 0000000..998170b
--- /dev/null
+++ b/build/webcam.dir/Release/webcam.tlog/CustomBuild.write.1.tlog
@@ -0,0 +1,2 @@
+^C:\USERS\SIMULATEUR\DOCUMENTS\WEBCAM\CMAKELISTS.TXT
+C:\USERS\SIMULATEUR\DOCUMENTS\WEBCAM\BUILD\CMAKEFILES\GENERATE.STAMP
diff --git a/build/webcam.dir/Release/webcam.tlog/link.command.1.tlog b/build/webcam.dir/Release/webcam.tlog/link.command.1.tlog
new file mode 100644
index 0000000..f63ed36
Binary files /dev/null and b/build/webcam.dir/Release/webcam.tlog/link.command.1.tlog differ
diff --git a/build/webcam.dir/Release/webcam.tlog/link.read.1.tlog b/build/webcam.dir/Release/webcam.tlog/link.read.1.tlog
new file mode 100644
index 0000000..87ed928
Binary files /dev/null and b/build/webcam.dir/Release/webcam.tlog/link.read.1.tlog differ
diff --git a/build/webcam.dir/Release/webcam.tlog/link.secondary.1.tlog b/build/webcam.dir/Release/webcam.tlog/link.secondary.1.tlog
new file mode 100644
index 0000000..d1dc3dc
--- /dev/null
+++ b/build/webcam.dir/Release/webcam.tlog/link.secondary.1.tlog
@@ -0,0 +1,3 @@
+^C:\USERS\SIMULATEUR\DOCUMENTS\WEBCAM\BUILD\WEBCAM.DIR\RELEASE\WEBCAM.OBJ|C:\USERS\SIMULATEUR\DOCUMENTS\WEBCAM\BUILD\WEBCAM.DIR\RELEASE\WEBCAM_BINDING.OBJ|C:\USERS\SIMULATEUR\DOCUMENTS\WEBCAM\BUILD\WEBCAM.DIR\RELEASE\WEBCAM_IMPL.OBJ
+C:\Users\simulateur\Documents\Webcam\build\Release\webcam_binding.lib
+C:\Users\simulateur\Documents\Webcam\build\Release\webcam_binding.EXP
diff --git a/build/webcam.dir/Release/webcam.tlog/link.write.1.tlog b/build/webcam.dir/Release/webcam.tlog/link.write.1.tlog
new file mode 100644
index 0000000..1e53ba3
Binary files /dev/null and b/build/webcam.dir/Release/webcam.tlog/link.write.1.tlog differ
diff --git a/build/webcam.dir/Release/webcam.tlog/webcam.lastbuildstate b/build/webcam.dir/Release/webcam.tlog/webcam.lastbuildstate
new file mode 100644
index 0000000..6981f45
--- /dev/null
+++ b/build/webcam.dir/Release/webcam.tlog/webcam.lastbuildstate
@@ -0,0 +1,2 @@
+PlatformToolSet=v143:VCToolArchitecture=Native64Bit:VCToolsVersion=14.44.35207:TargetPlatformVersion=10.0.26100.0:
+Release|x64|C:\Users\simulateur\Documents\Webcam\build\|
diff --git a/build/webcam.dir/Release/webcam_binding.dll.recipe b/build/webcam.dir/Release/webcam_binding.dll.recipe
new file mode 100644
index 0000000..4196078
--- /dev/null
+++ b/build/webcam.dir/Release/webcam_binding.dll.recipe
@@ -0,0 +1,14 @@
+
+
+
+
+ C:\Users\simulateur\Documents\Webcam\build\x64\Release\ZERO_CHECK
+
+
+ C:\Users\simulateur\Documents\Webcam\build\Release\webcam_binding.dll
+
+
+
+
+
+
\ No newline at end of file
diff --git a/build/webcam.dir/Release/webcam_binding.obj b/build/webcam.dir/Release/webcam_binding.obj
new file mode 100644
index 0000000..1305e31
Binary files /dev/null and b/build/webcam.dir/Release/webcam_binding.obj differ
diff --git a/build/webcam.dir/Release/webcam_impl.obj b/build/webcam.dir/Release/webcam_impl.obj
new file mode 100644
index 0000000..7f94706
Binary files /dev/null and b/build/webcam.dir/Release/webcam_impl.obj differ
diff --git a/build/webcam.sln b/build/webcam.sln
new file mode 100644
index 0000000..1e441cc
--- /dev/null
+++ b/build/webcam.sln
@@ -0,0 +1,53 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ALL_BUILD", "ALL_BUILD.vcxproj", "{942408C4-6BD6-31E8-BA47-F9E9ED18CA76}"
+ ProjectSection(ProjectDependencies) = postProject
+ {4BC2C1ED-2131-38E4-A11D-92CF0D712898} = {4BC2C1ED-2131-38E4-A11D-92CF0D712898}
+ {58556804-A3C4-37DF-9628-6EDAAF0A46D6} = {58556804-A3C4-37DF-9628-6EDAAF0A46D6}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ZERO_CHECK", "ZERO_CHECK.vcxproj", "{4BC2C1ED-2131-38E4-A11D-92CF0D712898}"
+ ProjectSection(ProjectDependencies) = postProject
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "webcam", "webcam.vcxproj", "{58556804-A3C4-37DF-9628-6EDAAF0A46D6}"
+ ProjectSection(ProjectDependencies) = postProject
+ {4BC2C1ED-2131-38E4-A11D-92CF0D712898} = {4BC2C1ED-2131-38E4-A11D-92CF0D712898}
+ EndProjectSection
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|x64 = Debug|x64
+ Release|x64 = Release|x64
+ MinSizeRel|x64 = MinSizeRel|x64
+ RelWithDebInfo|x64 = RelWithDebInfo|x64
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {942408C4-6BD6-31E8-BA47-F9E9ED18CA76}.Debug|x64.ActiveCfg = Debug|x64
+ {942408C4-6BD6-31E8-BA47-F9E9ED18CA76}.Release|x64.ActiveCfg = Release|x64
+ {942408C4-6BD6-31E8-BA47-F9E9ED18CA76}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64
+ {942408C4-6BD6-31E8-BA47-F9E9ED18CA76}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64
+ {4BC2C1ED-2131-38E4-A11D-92CF0D712898}.Debug|x64.ActiveCfg = Debug|x64
+ {4BC2C1ED-2131-38E4-A11D-92CF0D712898}.Debug|x64.Build.0 = Debug|x64
+ {4BC2C1ED-2131-38E4-A11D-92CF0D712898}.Release|x64.ActiveCfg = Release|x64
+ {4BC2C1ED-2131-38E4-A11D-92CF0D712898}.Release|x64.Build.0 = Release|x64
+ {4BC2C1ED-2131-38E4-A11D-92CF0D712898}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64
+ {4BC2C1ED-2131-38E4-A11D-92CF0D712898}.MinSizeRel|x64.Build.0 = MinSizeRel|x64
+ {4BC2C1ED-2131-38E4-A11D-92CF0D712898}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64
+ {4BC2C1ED-2131-38E4-A11D-92CF0D712898}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64
+ {58556804-A3C4-37DF-9628-6EDAAF0A46D6}.Debug|x64.ActiveCfg = Debug|x64
+ {58556804-A3C4-37DF-9628-6EDAAF0A46D6}.Debug|x64.Build.0 = Debug|x64
+ {58556804-A3C4-37DF-9628-6EDAAF0A46D6}.Release|x64.ActiveCfg = Release|x64
+ {58556804-A3C4-37DF-9628-6EDAAF0A46D6}.Release|x64.Build.0 = Release|x64
+ {58556804-A3C4-37DF-9628-6EDAAF0A46D6}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64
+ {58556804-A3C4-37DF-9628-6EDAAF0A46D6}.MinSizeRel|x64.Build.0 = MinSizeRel|x64
+ {58556804-A3C4-37DF-9628-6EDAAF0A46D6}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64
+ {58556804-A3C4-37DF-9628-6EDAAF0A46D6}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {0EE4D70B-975E-31E1-9766-4484F05805CE}
+ EndGlobalSection
+ GlobalSection(ExtensibilityAddIns) = postSolution
+ EndGlobalSection
+EndGlobal
diff --git a/build/webcam.vcxproj b/build/webcam.vcxproj
new file mode 100644
index 0000000..cf6c08a
--- /dev/null
+++ b/build/webcam.vcxproj
@@ -0,0 +1,380 @@
+
+
+
+ x64
+
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+ MinSizeRel
+ x64
+
+
+ RelWithDebInfo
+ x64
+
+
+
+ {58556804-A3C4-37DF-9628-6EDAAF0A46D6}
+ Win32Proj
+ 10.0.26100.0
+ x64
+ webcam
+ NoUpgrade
+
+
+
+ DynamicLibrary
+ MultiByte
+ v143
+
+
+ DynamicLibrary
+ MultiByte
+ v143
+
+
+ DynamicLibrary
+ MultiByte
+ v143
+
+
+ DynamicLibrary
+ MultiByte
+ v143
+
+
+
+
+
+
+
+
+
+ <_ProjectFileVersion>10.0.20506.1
+ C:\Users\simulateur\Documents\Webcam\build\Debug\
+ webcam.dir\Debug\
+ webcam_binding
+ .dll
+ true
+ true
+ C:\Users\simulateur\Documents\Webcam\build\Release\
+ webcam.dir\Release\
+ webcam_binding
+ .dll
+ false
+ true
+ C:\Users\simulateur\Documents\Webcam\build\MinSizeRel\
+ webcam.dir\MinSizeRel\
+ webcam_binding
+ .dll
+ false
+ true
+ C:\Users\simulateur\Documents\Webcam\build\RelWithDebInfo\
+ webcam.dir\RelWithDebInfo\
+ webcam_binding
+ .dll
+ true
+ true
+
+
+
+
+ C:\Users\simulateur\Documents\Webcam\.\include\modules;C:\Users\simulateur\Documents\Webcam\.\include\platform;C:\Users\simulateur\Documents\Webcam\.\include\engine;C:\Users\simulateur\Documents\Webcam\.\include\framework;C:\Users\simulateur\Documents\Webcam\.\include;C:\Users\simulateur\Documents\Webcam\.\include\squirrel;C:\Users\simulateur\Documents\Webcam\.\include\squirrel\include;C:\Users\simulateur\Documents\Webcam\.\source;%(AdditionalIncludeDirectories)
+ $(IntDir)
+ EnableFastChecks
+
+
+ ProgramDatabase
+ Sync
+
+
+ Disabled
+
+ Disabled
+ NotUsing
+
+ MultiThreadedDebugDLL
+
+
+ false
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;__PLATFORM_WINDOWS__;_USRDLL;_GS_DLL_EXPORT;CMAKE_INTDIR="Debug";webcam_EXPORTS
+ $(IntDir)
+ false
+
+
+ %(PreprocessorDefinitions);WIN32;_DEBUG;_WINDOWS;__PLATFORM_WINDOWS__;_USRDLL;_GS_DLL_EXPORT;CMAKE_INTDIR=\"Debug\";webcam_EXPORTS
+ C:\Users\simulateur\Documents\Webcam\.\include\modules;C:\Users\simulateur\Documents\Webcam\.\include\platform;C:\Users\simulateur\Documents\Webcam\.\include\engine;C:\Users\simulateur\Documents\Webcam\.\include\framework;C:\Users\simulateur\Documents\Webcam\.\include;C:\Users\simulateur\Documents\Webcam\.\include\squirrel;C:\Users\simulateur\Documents\Webcam\.\include\squirrel\include;C:\Users\simulateur\Documents\Webcam\.\source;%(AdditionalIncludeDirectories)
+
+
+ C:\Users\simulateur\Documents\Webcam\.\include\modules;C:\Users\simulateur\Documents\Webcam\.\include\platform;C:\Users\simulateur\Documents\Webcam\.\include\engine;C:\Users\simulateur\Documents\Webcam\.\include\framework;C:\Users\simulateur\Documents\Webcam\.\include;C:\Users\simulateur\Documents\Webcam\.\include\squirrel;C:\Users\simulateur\Documents\Webcam\.\include\squirrel\include;C:\Users\simulateur\Documents\Webcam\.\source;%(AdditionalIncludeDirectories)
+ $(ProjectDir)/$(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+ modules.lib;platform.lib;engine.lib;framework.lib;opencv_world345.lib;extern.lib;Ws2_32.lib;Winmm.lib;dxguid.lib;dinput8.lib;wininet.lib;wldap32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib
+ C:/Users/simulateur/Documents/Webcam/./lib;C:/Users/simulateur/Documents/Webcam/./lib/$(Configuration);%(AdditionalLibraryDirectories)
+ %(AdditionalOptions) /machine:x64
+
+ true
+ %(IgnoreSpecificDefaultLibraries)
+
+ C:/Users/simulateur/Documents/Webcam/build/Debug/webcam_binding.lib
+
+ C:/Users/simulateur/Documents/Webcam/build/Debug/webcam_binding.pdb
+
+ Console
+
+
+ false
+
+
+
+
+ C:\Users\simulateur\Documents\Webcam\.\include\modules;C:\Users\simulateur\Documents\Webcam\.\include\platform;C:\Users\simulateur\Documents\Webcam\.\include\engine;C:\Users\simulateur\Documents\Webcam\.\include\framework;C:\Users\simulateur\Documents\Webcam\.\include;C:\Users\simulateur\Documents\Webcam\.\include\squirrel;C:\Users\simulateur\Documents\Webcam\.\include\squirrel\include;C:\Users\simulateur\Documents\Webcam\.\source;%(AdditionalIncludeDirectories)
+ $(IntDir)
+ Default
+
+
+ Sync
+
+
+ AnySuitable
+
+ MaxSpeed
+ NotUsing
+
+ MultiThreadedDLL
+
+
+ false
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;__PLATFORM_WINDOWS__;_USRDLL;_GS_DLL_EXPORT;CMAKE_INTDIR="Release";webcam_EXPORTS
+ $(IntDir)
+
+
+ false
+
+
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;__PLATFORM_WINDOWS__;_USRDLL;_GS_DLL_EXPORT;CMAKE_INTDIR=\"Release\";webcam_EXPORTS
+ C:\Users\simulateur\Documents\Webcam\.\include\modules;C:\Users\simulateur\Documents\Webcam\.\include\platform;C:\Users\simulateur\Documents\Webcam\.\include\engine;C:\Users\simulateur\Documents\Webcam\.\include\framework;C:\Users\simulateur\Documents\Webcam\.\include;C:\Users\simulateur\Documents\Webcam\.\include\squirrel;C:\Users\simulateur\Documents\Webcam\.\include\squirrel\include;C:\Users\simulateur\Documents\Webcam\.\source;%(AdditionalIncludeDirectories)
+
+
+ C:\Users\simulateur\Documents\Webcam\.\include\modules;C:\Users\simulateur\Documents\Webcam\.\include\platform;C:\Users\simulateur\Documents\Webcam\.\include\engine;C:\Users\simulateur\Documents\Webcam\.\include\framework;C:\Users\simulateur\Documents\Webcam\.\include;C:\Users\simulateur\Documents\Webcam\.\include\squirrel;C:\Users\simulateur\Documents\Webcam\.\include\squirrel\include;C:\Users\simulateur\Documents\Webcam\.\source;%(AdditionalIncludeDirectories)
+ $(ProjectDir)/$(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+ modules.lib;platform.lib;engine.lib;framework.lib;opencv_world345.lib;extern.lib;Ws2_32.lib;Winmm.lib;dxguid.lib;dinput8.lib;wininet.lib;wldap32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib
+ C:/Users/simulateur/Documents/Webcam/./lib;C:/Users/simulateur/Documents/Webcam/./lib/$(Configuration);%(AdditionalLibraryDirectories)
+ %(AdditionalOptions) /machine:x64
+
+ false
+ %(IgnoreSpecificDefaultLibraries)
+
+ C:/Users/simulateur/Documents/Webcam/build/Release/webcam_binding.lib
+
+ C:/Users/simulateur/Documents/Webcam/build/Release/webcam_binding.pdb
+
+ Console
+
+
+ false
+
+
+
+
+ C:\Users\simulateur\Documents\Webcam\.\include\modules;C:\Users\simulateur\Documents\Webcam\.\include\platform;C:\Users\simulateur\Documents\Webcam\.\include\engine;C:\Users\simulateur\Documents\Webcam\.\include\framework;C:\Users\simulateur\Documents\Webcam\.\include;C:\Users\simulateur\Documents\Webcam\.\include\squirrel;C:\Users\simulateur\Documents\Webcam\.\include\squirrel\include;C:\Users\simulateur\Documents\Webcam\.\source;%(AdditionalIncludeDirectories)
+ $(IntDir)
+ Default
+
+
+ Sync
+
+
+ OnlyExplicitInline
+
+ MinSpace
+ NotUsing
+
+ MultiThreadedDLL
+
+
+ false
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;__PLATFORM_WINDOWS__;_USRDLL;_GS_DLL_EXPORT;CMAKE_INTDIR="MinSizeRel";webcam_EXPORTS
+ $(IntDir)
+
+
+ false
+
+
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;__PLATFORM_WINDOWS__;_USRDLL;_GS_DLL_EXPORT;CMAKE_INTDIR=\"MinSizeRel\";webcam_EXPORTS
+ C:\Users\simulateur\Documents\Webcam\.\include\modules;C:\Users\simulateur\Documents\Webcam\.\include\platform;C:\Users\simulateur\Documents\Webcam\.\include\engine;C:\Users\simulateur\Documents\Webcam\.\include\framework;C:\Users\simulateur\Documents\Webcam\.\include;C:\Users\simulateur\Documents\Webcam\.\include\squirrel;C:\Users\simulateur\Documents\Webcam\.\include\squirrel\include;C:\Users\simulateur\Documents\Webcam\.\source;%(AdditionalIncludeDirectories)
+
+
+ C:\Users\simulateur\Documents\Webcam\.\include\modules;C:\Users\simulateur\Documents\Webcam\.\include\platform;C:\Users\simulateur\Documents\Webcam\.\include\engine;C:\Users\simulateur\Documents\Webcam\.\include\framework;C:\Users\simulateur\Documents\Webcam\.\include;C:\Users\simulateur\Documents\Webcam\.\include\squirrel;C:\Users\simulateur\Documents\Webcam\.\include\squirrel\include;C:\Users\simulateur\Documents\Webcam\.\source;%(AdditionalIncludeDirectories)
+ $(ProjectDir)/$(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+ modules.lib;platform.lib;engine.lib;framework.lib;opencv_world345.lib;extern.lib;Ws2_32.lib;Winmm.lib;dxguid.lib;dinput8.lib;wininet.lib;wldap32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib
+ C:/Users/simulateur/Documents/Webcam/./lib;C:/Users/simulateur/Documents/Webcam/./lib/$(Configuration);%(AdditionalLibraryDirectories)
+ %(AdditionalOptions) /machine:x64
+
+ false
+ %(IgnoreSpecificDefaultLibraries)
+
+ C:/Users/simulateur/Documents/Webcam/build/MinSizeRel/webcam_binding.lib
+
+ C:/Users/simulateur/Documents/Webcam/build/MinSizeRel/webcam_binding.pdb
+
+ Console
+
+
+ false
+
+
+
+
+ C:\Users\simulateur\Documents\Webcam\.\include\modules;C:\Users\simulateur\Documents\Webcam\.\include\platform;C:\Users\simulateur\Documents\Webcam\.\include\engine;C:\Users\simulateur\Documents\Webcam\.\include\framework;C:\Users\simulateur\Documents\Webcam\.\include;C:\Users\simulateur\Documents\Webcam\.\include\squirrel;C:\Users\simulateur\Documents\Webcam\.\include\squirrel\include;C:\Users\simulateur\Documents\Webcam\.\source;%(AdditionalIncludeDirectories)
+ $(IntDir)
+ Default
+
+
+ ProgramDatabase
+ Sync
+
+
+ OnlyExplicitInline
+
+ MaxSpeed
+ NotUsing
+
+ MultiThreadedDLL
+
+
+ false
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;__PLATFORM_WINDOWS__;_USRDLL;_GS_DLL_EXPORT;CMAKE_INTDIR="RelWithDebInfo";webcam_EXPORTS
+ $(IntDir)
+ false
+
+
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;__PLATFORM_WINDOWS__;_USRDLL;_GS_DLL_EXPORT;CMAKE_INTDIR=\"RelWithDebInfo\";webcam_EXPORTS
+ C:\Users\simulateur\Documents\Webcam\.\include\modules;C:\Users\simulateur\Documents\Webcam\.\include\platform;C:\Users\simulateur\Documents\Webcam\.\include\engine;C:\Users\simulateur\Documents\Webcam\.\include\framework;C:\Users\simulateur\Documents\Webcam\.\include;C:\Users\simulateur\Documents\Webcam\.\include\squirrel;C:\Users\simulateur\Documents\Webcam\.\include\squirrel\include;C:\Users\simulateur\Documents\Webcam\.\source;%(AdditionalIncludeDirectories)
+
+
+ C:\Users\simulateur\Documents\Webcam\.\include\modules;C:\Users\simulateur\Documents\Webcam\.\include\platform;C:\Users\simulateur\Documents\Webcam\.\include\engine;C:\Users\simulateur\Documents\Webcam\.\include\framework;C:\Users\simulateur\Documents\Webcam\.\include;C:\Users\simulateur\Documents\Webcam\.\include\squirrel;C:\Users\simulateur\Documents\Webcam\.\include\squirrel\include;C:\Users\simulateur\Documents\Webcam\.\source;%(AdditionalIncludeDirectories)
+ $(ProjectDir)/$(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+ modules.lib;platform.lib;engine.lib;framework.lib;opencv_world345.lib;extern.lib;Ws2_32.lib;Winmm.lib;dxguid.lib;dinput8.lib;wininet.lib;wldap32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib
+ C:/Users/simulateur/Documents/Webcam/./lib;C:/Users/simulateur/Documents/Webcam/./lib/$(Configuration);%(AdditionalLibraryDirectories)
+ %(AdditionalOptions) /machine:x64
+
+ true
+ %(IgnoreSpecificDefaultLibraries)
+
+ C:/Users/simulateur/Documents/Webcam/build/RelWithDebInfo/webcam_binding.lib
+
+ C:/Users/simulateur/Documents/Webcam/build/RelWithDebInfo/webcam_binding.pdb
+
+ Console
+
+
+ false
+
+
+
+
+ Always
+ Building Custom Rule C:/Users/simulateur/Documents/Webcam/CMakeLists.txt
+ setlocal
+"C:\Program Files\CMake\bin\cmake.exe" -SC:/Users/simulateur/Documents/Webcam -BC:/Users/simulateur/Documents/Webcam/build --check-stamp-file C:/Users/simulateur/Documents/Webcam/build/CMakeFiles/generate.stamp
+if %errorlevel% neq 0 goto :cmEnd
+:cmEnd
+endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
+:cmErrorLevel
+exit /b %1
+:cmDone
+if %errorlevel% neq 0 goto :VCEnd
+ C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeCXXInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeCommonLanguageInclude.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeGenericSystem.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeInitializeConfigs.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeLanguageInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeRCInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeSystemSpecificInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeSystemSpecificInitialize.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Compiler\CMakeCommonCompilerMacros.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Compiler\MSVC-CXX.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Compiler\MSVC.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Internal\CMakeCXXLinkerInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Internal\CMakeCommonLinkerInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Linker\MSVC-CXX.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Linker\MSVC.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Linker\Windows-MSVC-CXX.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Linker\Windows-MSVC.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Windows-Initialize.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Windows-MSVC-CXX.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Windows-MSVC.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Windows.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\WindowsPaths.cmake;C:\Users\simulateur\Documents\Webcam\build\CMakeFiles\4.3.3\CMakeCXXCompiler.cmake;C:\Users\simulateur\Documents\Webcam\build\CMakeFiles\4.3.3\CMakeRCCompiler.cmake;C:\Users\simulateur\Documents\Webcam\build\CMakeFiles\4.3.3\CMakeSystem.cmake;%(AdditionalInputs)
+ C:\Users\simulateur\Documents\Webcam\build\CMakeFiles\generate.stamp
+ false
+ Building Custom Rule C:/Users/simulateur/Documents/Webcam/CMakeLists.txt
+ setlocal
+"C:\Program Files\CMake\bin\cmake.exe" -SC:/Users/simulateur/Documents/Webcam -BC:/Users/simulateur/Documents/Webcam/build --check-stamp-file C:/Users/simulateur/Documents/Webcam/build/CMakeFiles/generate.stamp
+if %errorlevel% neq 0 goto :cmEnd
+:cmEnd
+endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
+:cmErrorLevel
+exit /b %1
+:cmDone
+if %errorlevel% neq 0 goto :VCEnd
+ C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeCXXInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeCommonLanguageInclude.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeGenericSystem.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeInitializeConfigs.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeLanguageInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeRCInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeSystemSpecificInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeSystemSpecificInitialize.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Compiler\CMakeCommonCompilerMacros.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Compiler\MSVC-CXX.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Compiler\MSVC.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Internal\CMakeCXXLinkerInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Internal\CMakeCommonLinkerInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Linker\MSVC-CXX.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Linker\MSVC.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Linker\Windows-MSVC-CXX.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Linker\Windows-MSVC.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Windows-Initialize.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Windows-MSVC-CXX.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Windows-MSVC.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Windows.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\WindowsPaths.cmake;C:\Users\simulateur\Documents\Webcam\build\CMakeFiles\4.3.3\CMakeCXXCompiler.cmake;C:\Users\simulateur\Documents\Webcam\build\CMakeFiles\4.3.3\CMakeRCCompiler.cmake;C:\Users\simulateur\Documents\Webcam\build\CMakeFiles\4.3.3\CMakeSystem.cmake;%(AdditionalInputs)
+ C:\Users\simulateur\Documents\Webcam\build\CMakeFiles\generate.stamp
+ false
+ Building Custom Rule C:/Users/simulateur/Documents/Webcam/CMakeLists.txt
+ setlocal
+"C:\Program Files\CMake\bin\cmake.exe" -SC:/Users/simulateur/Documents/Webcam -BC:/Users/simulateur/Documents/Webcam/build --check-stamp-file C:/Users/simulateur/Documents/Webcam/build/CMakeFiles/generate.stamp
+if %errorlevel% neq 0 goto :cmEnd
+:cmEnd
+endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
+:cmErrorLevel
+exit /b %1
+:cmDone
+if %errorlevel% neq 0 goto :VCEnd
+ C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeCXXInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeCommonLanguageInclude.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeGenericSystem.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeInitializeConfigs.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeLanguageInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeRCInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeSystemSpecificInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeSystemSpecificInitialize.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Compiler\CMakeCommonCompilerMacros.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Compiler\MSVC-CXX.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Compiler\MSVC.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Internal\CMakeCXXLinkerInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Internal\CMakeCommonLinkerInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Linker\MSVC-CXX.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Linker\MSVC.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Linker\Windows-MSVC-CXX.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Linker\Windows-MSVC.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Windows-Initialize.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Windows-MSVC-CXX.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Windows-MSVC.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Windows.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\WindowsPaths.cmake;C:\Users\simulateur\Documents\Webcam\build\CMakeFiles\4.3.3\CMakeCXXCompiler.cmake;C:\Users\simulateur\Documents\Webcam\build\CMakeFiles\4.3.3\CMakeRCCompiler.cmake;C:\Users\simulateur\Documents\Webcam\build\CMakeFiles\4.3.3\CMakeSystem.cmake;%(AdditionalInputs)
+ C:\Users\simulateur\Documents\Webcam\build\CMakeFiles\generate.stamp
+ false
+ Building Custom Rule C:/Users/simulateur/Documents/Webcam/CMakeLists.txt
+ setlocal
+"C:\Program Files\CMake\bin\cmake.exe" -SC:/Users/simulateur/Documents/Webcam -BC:/Users/simulateur/Documents/Webcam/build --check-stamp-file C:/Users/simulateur/Documents/Webcam/build/CMakeFiles/generate.stamp
+if %errorlevel% neq 0 goto :cmEnd
+:cmEnd
+endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
+:cmErrorLevel
+exit /b %1
+:cmDone
+if %errorlevel% neq 0 goto :VCEnd
+ C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeCXXInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeCommonLanguageInclude.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeGenericSystem.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeInitializeConfigs.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeLanguageInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeRCInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeSystemSpecificInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\CMakeSystemSpecificInitialize.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Compiler\CMakeCommonCompilerMacros.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Compiler\MSVC-CXX.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Compiler\MSVC.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Internal\CMakeCXXLinkerInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Internal\CMakeCommonLinkerInformation.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Linker\MSVC-CXX.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Linker\MSVC.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Linker\Windows-MSVC-CXX.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Linker\Windows-MSVC.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Windows-Initialize.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Windows-MSVC-CXX.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Windows-MSVC.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\Windows.cmake;C:\Program Files\CMake\share\cmake-4.3\Modules\Platform\WindowsPaths.cmake;C:\Users\simulateur\Documents\Webcam\build\CMakeFiles\4.3.3\CMakeCXXCompiler.cmake;C:\Users\simulateur\Documents\Webcam\build\CMakeFiles\4.3.3\CMakeRCCompiler.cmake;C:\Users\simulateur\Documents\Webcam\build\CMakeFiles\4.3.3\CMakeSystem.cmake;%(AdditionalInputs)
+ C:\Users\simulateur\Documents\Webcam\build\CMakeFiles\generate.stamp
+ false
+
+
+
+
+
+
+
+
+
+
+ {4BC2C1ED-2131-38E4-A11D-92CF0D712898}
+ ZERO_CHECK
+ false
+ Never
+
+
+
+
+
+
\ No newline at end of file
diff --git a/build/webcam.vcxproj.filters b/build/webcam.vcxproj.filters
new file mode 100644
index 0000000..75623de
--- /dev/null
+++ b/build/webcam.vcxproj.filters
@@ -0,0 +1,22 @@
+
+
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+
+
+
+
+
+ {4A42EFF6-6975-36BF-8F93-9124FAE98766}
+
+
+
diff --git a/build/x64/Debug/ZERO_CHECK/ZERO_CHECK.recipe b/build/x64/Debug/ZERO_CHECK/ZERO_CHECK.recipe
new file mode 100644
index 0000000..753231a
--- /dev/null
+++ b/build/x64/Debug/ZERO_CHECK/ZERO_CHECK.recipe
@@ -0,0 +1,11 @@
+
+
+
+
+ C:\Users\simulateur\Documents\Webcam\build\x64\Debug\ZERO_CHECK
+
+
+
+
+
+
\ No newline at end of file
diff --git a/build/x64/Debug/ZERO_CHECK/ZERO_CHECK.tlog/CustomBuild.command.1.tlog b/build/x64/Debug/ZERO_CHECK/ZERO_CHECK.tlog/CustomBuild.command.1.tlog
new file mode 100644
index 0000000..a224964
--- /dev/null
+++ b/build/x64/Debug/ZERO_CHECK/ZERO_CHECK.tlog/CustomBuild.command.1.tlog
@@ -0,0 +1,10 @@
+^C:\USERS\SIMULATEUR\DOCUMENTS\WEBCAM\BUILD\CMAKEFILES\10582E4A3A4A0A14BB1A240EC1BB030D\GENERATE.STAMP.RULE
+setlocal
+"C:\Program Files\CMake\bin\cmake.exe" -SC:/Users/simulateur/Documents/Webcam -BC:/Users/simulateur/Documents/Webcam/build --check-stamp-list CMakeFiles/generate.stamp.list --vs-solution-file C:/Users/simulateur/Documents/Webcam/build/webcam.sln
+if %errorlevel% neq 0 goto :cmEnd
+:cmEnd
+endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
+:cmErrorLevel
+exit /b %1
+:cmDone
+if %errorlevel% neq 0 goto :VCEnd
diff --git a/build/x64/Debug/ZERO_CHECK/ZERO_CHECK.tlog/CustomBuild.read.1.tlog b/build/x64/Debug/ZERO_CHECK/ZERO_CHECK.tlog/CustomBuild.read.1.tlog
new file mode 100644
index 0000000..aa8c322
--- /dev/null
+++ b/build/x64/Debug/ZERO_CHECK/ZERO_CHECK.tlog/CustomBuild.read.1.tlog
@@ -0,0 +1,27 @@
+^C:\USERS\SIMULATEUR\DOCUMENTS\WEBCAM\BUILD\CMAKEFILES\10582E4A3A4A0A14BB1A240EC1BB030D\GENERATE.STAMP.RULE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\CMAKECXXINFORMATION.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\CMAKECOMMONLANGUAGEINCLUDE.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\CMAKEGENERICSYSTEM.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\CMAKEINITIALIZECONFIGS.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\CMAKELANGUAGEINFORMATION.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\CMAKERCINFORMATION.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\CMAKESYSTEMSPECIFICINFORMATION.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\CMAKESYSTEMSPECIFICINITIALIZE.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\COMPILER\CMAKECOMMONCOMPILERMACROS.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\COMPILER\MSVC-CXX.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\COMPILER\MSVC.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\INTERNAL\CMAKECXXLINKERINFORMATION.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\INTERNAL\CMAKECOMMONLINKERINFORMATION.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\LINKER\MSVC-CXX.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\LINKER\MSVC.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\PLATFORM\LINKER\WINDOWS-MSVC-CXX.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\PLATFORM\LINKER\WINDOWS-MSVC.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\PLATFORM\WINDOWS-INITIALIZE.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\PLATFORM\WINDOWS-MSVC-CXX.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\PLATFORM\WINDOWS-MSVC.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\PLATFORM\WINDOWS.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\PLATFORM\WINDOWSPATHS.CMAKE
+C:\USERS\SIMULATEUR\DOCUMENTS\WEBCAM\CMAKELISTS.TXT
+C:\USERS\SIMULATEUR\DOCUMENTS\WEBCAM\BUILD\CMAKEFILES\4.3.3\CMAKECXXCOMPILER.CMAKE
+C:\USERS\SIMULATEUR\DOCUMENTS\WEBCAM\BUILD\CMAKEFILES\4.3.3\CMAKERCCOMPILER.CMAKE
+C:\USERS\SIMULATEUR\DOCUMENTS\WEBCAM\BUILD\CMAKEFILES\4.3.3\CMAKESYSTEM.CMAKE
diff --git a/build/x64/Debug/ZERO_CHECK/ZERO_CHECK.tlog/CustomBuild.write.1.tlog b/build/x64/Debug/ZERO_CHECK/ZERO_CHECK.tlog/CustomBuild.write.1.tlog
new file mode 100644
index 0000000..ce5ad30
--- /dev/null
+++ b/build/x64/Debug/ZERO_CHECK/ZERO_CHECK.tlog/CustomBuild.write.1.tlog
@@ -0,0 +1,2 @@
+^C:\USERS\SIMULATEUR\DOCUMENTS\WEBCAM\BUILD\CMAKEFILES\10582E4A3A4A0A14BB1A240EC1BB030D\GENERATE.STAMP.RULE
+C:\USERS\SIMULATEUR\DOCUMENTS\WEBCAM\BUILD\CMAKEFILES\GENERATE.STAMP
diff --git a/build/x64/Debug/ZERO_CHECK/ZERO_CHECK.tlog/ZERO_CHECK.lastbuildstate b/build/x64/Debug/ZERO_CHECK/ZERO_CHECK.tlog/ZERO_CHECK.lastbuildstate
new file mode 100644
index 0000000..9073e36
--- /dev/null
+++ b/build/x64/Debug/ZERO_CHECK/ZERO_CHECK.tlog/ZERO_CHECK.lastbuildstate
@@ -0,0 +1,2 @@
+PlatformToolSet=v143:VCToolArchitecture=Native64Bit:VCToolsVersion=14.44.35207:TargetPlatformVersion=10.0.26100.0:
+Debug|x64|C:\Users\simulateur\Documents\Webcam\build\|
diff --git a/build/x64/Release/ALL_BUILD/ALL_BUILD.recipe b/build/x64/Release/ALL_BUILD/ALL_BUILD.recipe
new file mode 100644
index 0000000..00fc3ed
--- /dev/null
+++ b/build/x64/Release/ALL_BUILD/ALL_BUILD.recipe
@@ -0,0 +1,17 @@
+
+
+
+
+ C:\Users\simulateur\Documents\Webcam\build\x64\Release\ZERO_CHECK
+
+
+ C:\Users\simulateur\Documents\Webcam\build\Release\webcam_binding.dll
+
+
+ C:\Users\simulateur\Documents\Webcam\build\x64\Release\ALL_BUILD
+
+
+
+
+
+
\ No newline at end of file
diff --git a/build/x64/Release/ALL_BUILD/ALL_BUILD.tlog/ALL_BUILD.lastbuildstate b/build/x64/Release/ALL_BUILD/ALL_BUILD.tlog/ALL_BUILD.lastbuildstate
new file mode 100644
index 0000000..6981f45
--- /dev/null
+++ b/build/x64/Release/ALL_BUILD/ALL_BUILD.tlog/ALL_BUILD.lastbuildstate
@@ -0,0 +1,2 @@
+PlatformToolSet=v143:VCToolArchitecture=Native64Bit:VCToolsVersion=14.44.35207:TargetPlatformVersion=10.0.26100.0:
+Release|x64|C:\Users\simulateur\Documents\Webcam\build\|
diff --git a/build/x64/Release/ALL_BUILD/ALL_BUILD.tlog/CustomBuild.command.1.tlog b/build/x64/Release/ALL_BUILD/ALL_BUILD.tlog/CustomBuild.command.1.tlog
new file mode 100644
index 0000000..eaf6f36
--- /dev/null
+++ b/build/x64/Release/ALL_BUILD/ALL_BUILD.tlog/CustomBuild.command.1.tlog
@@ -0,0 +1,10 @@
+^C:\USERS\SIMULATEUR\DOCUMENTS\WEBCAM\CMAKELISTS.TXT
+setlocal
+"C:\Program Files\CMake\bin\cmake.exe" -SC:/Users/simulateur/Documents/Webcam -BC:/Users/simulateur/Documents/Webcam/build --check-stamp-file C:/Users/simulateur/Documents/Webcam/build/CMakeFiles/generate.stamp
+if %errorlevel% neq 0 goto :cmEnd
+:cmEnd
+endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
+:cmErrorLevel
+exit /b %1
+:cmDone
+if %errorlevel% neq 0 goto :VCEnd
diff --git a/build/x64/Release/ALL_BUILD/ALL_BUILD.tlog/CustomBuild.read.1.tlog b/build/x64/Release/ALL_BUILD/ALL_BUILD.tlog/CustomBuild.read.1.tlog
new file mode 100644
index 0000000..10737b9
--- /dev/null
+++ b/build/x64/Release/ALL_BUILD/ALL_BUILD.tlog/CustomBuild.read.1.tlog
@@ -0,0 +1,26 @@
+^C:\USERS\SIMULATEUR\DOCUMENTS\WEBCAM\CMAKELISTS.TXT
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\CMAKECXXINFORMATION.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\CMAKECOMMONLANGUAGEINCLUDE.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\CMAKEGENERICSYSTEM.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\CMAKEINITIALIZECONFIGS.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\CMAKELANGUAGEINFORMATION.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\CMAKERCINFORMATION.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\CMAKESYSTEMSPECIFICINFORMATION.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\CMAKESYSTEMSPECIFICINITIALIZE.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\COMPILER\CMAKECOMMONCOMPILERMACROS.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\COMPILER\MSVC-CXX.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\COMPILER\MSVC.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\INTERNAL\CMAKECXXLINKERINFORMATION.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\INTERNAL\CMAKECOMMONLINKERINFORMATION.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\LINKER\MSVC-CXX.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\LINKER\MSVC.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\PLATFORM\LINKER\WINDOWS-MSVC-CXX.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\PLATFORM\LINKER\WINDOWS-MSVC.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\PLATFORM\WINDOWS-INITIALIZE.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\PLATFORM\WINDOWS-MSVC-CXX.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\PLATFORM\WINDOWS-MSVC.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\PLATFORM\WINDOWS.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\PLATFORM\WINDOWSPATHS.CMAKE
+C:\USERS\SIMULATEUR\DOCUMENTS\WEBCAM\BUILD\CMAKEFILES\4.3.3\CMAKECXXCOMPILER.CMAKE
+C:\USERS\SIMULATEUR\DOCUMENTS\WEBCAM\BUILD\CMAKEFILES\4.3.3\CMAKERCCOMPILER.CMAKE
+C:\USERS\SIMULATEUR\DOCUMENTS\WEBCAM\BUILD\CMAKEFILES\4.3.3\CMAKESYSTEM.CMAKE
diff --git a/build/x64/Release/ALL_BUILD/ALL_BUILD.tlog/CustomBuild.write.1.tlog b/build/x64/Release/ALL_BUILD/ALL_BUILD.tlog/CustomBuild.write.1.tlog
new file mode 100644
index 0000000..998170b
--- /dev/null
+++ b/build/x64/Release/ALL_BUILD/ALL_BUILD.tlog/CustomBuild.write.1.tlog
@@ -0,0 +1,2 @@
+^C:\USERS\SIMULATEUR\DOCUMENTS\WEBCAM\CMAKELISTS.TXT
+C:\USERS\SIMULATEUR\DOCUMENTS\WEBCAM\BUILD\CMAKEFILES\GENERATE.STAMP
diff --git a/build/x64/Release/ZERO_CHECK/ZERO_CHECK.recipe b/build/x64/Release/ZERO_CHECK/ZERO_CHECK.recipe
new file mode 100644
index 0000000..64284f8
--- /dev/null
+++ b/build/x64/Release/ZERO_CHECK/ZERO_CHECK.recipe
@@ -0,0 +1,11 @@
+
+
+
+
+ C:\Users\simulateur\Documents\Webcam\build\x64\Release\ZERO_CHECK
+
+
+
+
+
+
\ No newline at end of file
diff --git a/build/x64/Release/ZERO_CHECK/ZERO_CHECK.tlog/CustomBuild.command.1.tlog b/build/x64/Release/ZERO_CHECK/ZERO_CHECK.tlog/CustomBuild.command.1.tlog
new file mode 100644
index 0000000..a224964
--- /dev/null
+++ b/build/x64/Release/ZERO_CHECK/ZERO_CHECK.tlog/CustomBuild.command.1.tlog
@@ -0,0 +1,10 @@
+^C:\USERS\SIMULATEUR\DOCUMENTS\WEBCAM\BUILD\CMAKEFILES\10582E4A3A4A0A14BB1A240EC1BB030D\GENERATE.STAMP.RULE
+setlocal
+"C:\Program Files\CMake\bin\cmake.exe" -SC:/Users/simulateur/Documents/Webcam -BC:/Users/simulateur/Documents/Webcam/build --check-stamp-list CMakeFiles/generate.stamp.list --vs-solution-file C:/Users/simulateur/Documents/Webcam/build/webcam.sln
+if %errorlevel% neq 0 goto :cmEnd
+:cmEnd
+endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
+:cmErrorLevel
+exit /b %1
+:cmDone
+if %errorlevel% neq 0 goto :VCEnd
diff --git a/build/x64/Release/ZERO_CHECK/ZERO_CHECK.tlog/CustomBuild.read.1.tlog b/build/x64/Release/ZERO_CHECK/ZERO_CHECK.tlog/CustomBuild.read.1.tlog
new file mode 100644
index 0000000..aa8c322
--- /dev/null
+++ b/build/x64/Release/ZERO_CHECK/ZERO_CHECK.tlog/CustomBuild.read.1.tlog
@@ -0,0 +1,27 @@
+^C:\USERS\SIMULATEUR\DOCUMENTS\WEBCAM\BUILD\CMAKEFILES\10582E4A3A4A0A14BB1A240EC1BB030D\GENERATE.STAMP.RULE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\CMAKECXXINFORMATION.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\CMAKECOMMONLANGUAGEINCLUDE.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\CMAKEGENERICSYSTEM.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\CMAKEINITIALIZECONFIGS.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\CMAKELANGUAGEINFORMATION.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\CMAKERCINFORMATION.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\CMAKESYSTEMSPECIFICINFORMATION.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\CMAKESYSTEMSPECIFICINITIALIZE.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\COMPILER\CMAKECOMMONCOMPILERMACROS.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\COMPILER\MSVC-CXX.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\COMPILER\MSVC.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\INTERNAL\CMAKECXXLINKERINFORMATION.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\INTERNAL\CMAKECOMMONLINKERINFORMATION.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\LINKER\MSVC-CXX.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\LINKER\MSVC.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\PLATFORM\LINKER\WINDOWS-MSVC-CXX.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\PLATFORM\LINKER\WINDOWS-MSVC.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\PLATFORM\WINDOWS-INITIALIZE.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\PLATFORM\WINDOWS-MSVC-CXX.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\PLATFORM\WINDOWS-MSVC.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\PLATFORM\WINDOWS.CMAKE
+C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-4.3\MODULES\PLATFORM\WINDOWSPATHS.CMAKE
+C:\USERS\SIMULATEUR\DOCUMENTS\WEBCAM\CMAKELISTS.TXT
+C:\USERS\SIMULATEUR\DOCUMENTS\WEBCAM\BUILD\CMAKEFILES\4.3.3\CMAKECXXCOMPILER.CMAKE
+C:\USERS\SIMULATEUR\DOCUMENTS\WEBCAM\BUILD\CMAKEFILES\4.3.3\CMAKERCCOMPILER.CMAKE
+C:\USERS\SIMULATEUR\DOCUMENTS\WEBCAM\BUILD\CMAKEFILES\4.3.3\CMAKESYSTEM.CMAKE
diff --git a/build/x64/Release/ZERO_CHECK/ZERO_CHECK.tlog/CustomBuild.write.1.tlog b/build/x64/Release/ZERO_CHECK/ZERO_CHECK.tlog/CustomBuild.write.1.tlog
new file mode 100644
index 0000000..ce5ad30
--- /dev/null
+++ b/build/x64/Release/ZERO_CHECK/ZERO_CHECK.tlog/CustomBuild.write.1.tlog
@@ -0,0 +1,2 @@
+^C:\USERS\SIMULATEUR\DOCUMENTS\WEBCAM\BUILD\CMAKEFILES\10582E4A3A4A0A14BB1A240EC1BB030D\GENERATE.STAMP.RULE
+C:\USERS\SIMULATEUR\DOCUMENTS\WEBCAM\BUILD\CMAKEFILES\GENERATE.STAMP
diff --git a/build/x64/Release/ZERO_CHECK/ZERO_CHECK.tlog/ZERO_CHECK.lastbuildstate b/build/x64/Release/ZERO_CHECK/ZERO_CHECK.tlog/ZERO_CHECK.lastbuildstate
new file mode 100644
index 0000000..6981f45
--- /dev/null
+++ b/build/x64/Release/ZERO_CHECK/ZERO_CHECK.tlog/ZERO_CHECK.lastbuildstate
@@ -0,0 +1,2 @@
+PlatformToolSet=v143:VCToolArchitecture=Native64Bit:VCToolsVersion=14.44.35207:TargetPlatformVersion=10.0.26100.0:
+Release|x64|C:\Users\simulateur\Documents\Webcam\build\|
diff --git a/cmake_install.cmake b/cmake_install.cmake
new file mode 100644
index 0000000..7d08162
--- /dev/null
+++ b/cmake_install.cmake
@@ -0,0 +1,56 @@
+# Install script for directory: C:/Users/simulateur/Documents/Webcam
+
+# Set the install prefix
+if(NOT DEFINED CMAKE_INSTALL_PREFIX)
+ set(CMAKE_INSTALL_PREFIX "C:/Program Files (x86)/webcam")
+endif()
+string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
+
+# Set the install configuration name.
+if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
+ if(BUILD_TYPE)
+ string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
+ CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
+ else()
+ set(CMAKE_INSTALL_CONFIG_NAME "Release")
+ endif()
+ message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
+endif()
+
+# Set the component getting installed.
+if(NOT CMAKE_INSTALL_COMPONENT)
+ if(COMPONENT)
+ message(STATUS "Install component: \"${COMPONENT}\"")
+ set(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
+ else()
+ set(CMAKE_INSTALL_COMPONENT)
+ endif()
+endif()
+
+# Is this installation the result of a crosscompile?
+if(NOT DEFINED CMAKE_CROSSCOMPILING)
+ set(CMAKE_CROSSCOMPILING "FALSE")
+endif()
+
+string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT
+ "${CMAKE_INSTALL_MANIFEST_FILES}")
+if(CMAKE_INSTALL_LOCAL_ONLY)
+ file(WRITE "C:/Users/simulateur/Documents/Webcam/install_local_manifest.txt"
+ "${CMAKE_INSTALL_MANIFEST_CONTENT}")
+endif()
+if(CMAKE_INSTALL_COMPONENT)
+ if(CMAKE_INSTALL_COMPONENT MATCHES "^[a-zA-Z0-9_.+-]+$")
+ set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt")
+ else()
+ string(MD5 CMAKE_INST_COMP_HASH "${CMAKE_INSTALL_COMPONENT}")
+ set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INST_COMP_HASH}.txt")
+ unset(CMAKE_INST_COMP_HASH)
+ endif()
+else()
+ set(CMAKE_INSTALL_MANIFEST "install_manifest.txt")
+endif()
+
+if(NOT CMAKE_INSTALL_LOCAL_ONLY)
+ file(WRITE "C:/Users/simulateur/Documents/Webcam/${CMAKE_INSTALL_MANIFEST}"
+ "${CMAKE_INSTALL_MANIFEST_CONTENT}")
+endif()
diff --git a/include/opencv/cv.h b/include/opencv/cv.h
new file mode 100644
index 0000000..19a74e2
--- /dev/null
+++ b/include/opencv/cv.h
@@ -0,0 +1,73 @@
+/*M///////////////////////////////////////////////////////////////////////////////////////
+//
+// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
+//
+// By downloading, copying, installing or using the software you agree to this license.
+// If you do not agree to this license, do not download, install,
+// copy or use the software.
+//
+//
+// License Agreement
+// For Open Source Computer Vision Library
+//
+// Copyright (C) 2000-2008, Intel Corporation, all rights reserved.
+// Copyright (C) 2009, Willow Garage Inc., all rights reserved.
+// Third party copyrights are property of their respective owners.
+//
+// Redistribution and use in source and binary forms, with or without modification,
+// are permitted provided that the following conditions are met:
+//
+// * Redistribution's of source code must retain the above copyright notice,
+// this list of conditions and the following disclaimer.
+//
+// * Redistribution's in binary form must reproduce the above copyright notice,
+// this list of conditions and the following disclaimer in the documentation
+// and/or other materials provided with the distribution.
+//
+// * The name of the copyright holders may not be used to endorse or promote products
+// derived from this software without specific prior written permission.
+//
+// This software is provided by the copyright holders and contributors "as is" and
+// any express or implied warranties, including, but not limited to, the implied
+// warranties of merchantability and fitness for a particular purpose are disclaimed.
+// In no event shall the Intel Corporation or contributors be liable for any direct,
+// indirect, incidental, special, exemplary, or consequential damages
+// (including, but not limited to, procurement of substitute goods or services;
+// loss of use, data, or profits; or business interruption) however caused
+// and on any theory of liability, whether in contract, strict liability,
+// or tort (including negligence or otherwise) arising in any way out of
+// the use of this software, even if advised of the possibility of such damage.
+//
+//M*/
+
+#ifndef OPENCV_OLD_CV_H
+#define OPENCV_OLD_CV_H
+
+#if defined(_MSC_VER)
+ #define CV_DO_PRAGMA(x) __pragma(x)
+ #define __CVSTR2__(x) #x
+ #define __CVSTR1__(x) __CVSTR2__(x)
+ #define __CVMSVCLOC__ __FILE__ "("__CVSTR1__(__LINE__)") : "
+ #define CV_MSG_PRAGMA(_msg) CV_DO_PRAGMA(message (__CVMSVCLOC__ _msg))
+#elif defined(__GNUC__)
+ #define CV_DO_PRAGMA(x) _Pragma (#x)
+ #define CV_MSG_PRAGMA(_msg) CV_DO_PRAGMA(message (_msg))
+#else
+ #define CV_DO_PRAGMA(x)
+ #define CV_MSG_PRAGMA(_msg)
+#endif
+#define CV_WARNING(x) CV_MSG_PRAGMA("Warning: " #x)
+
+//CV_WARNING("This is a deprecated opencv header provided for compatibility. Please include a header from a corresponding opencv module")
+
+#include "opencv2/core/core_c.h"
+#include "opencv2/imgproc/imgproc_c.h"
+#include "opencv2/photo/photo_c.h"
+#include "opencv2/video/tracking_c.h"
+#include "opencv2/objdetect/objdetect_c.h"
+
+#if !defined(CV_IMPL)
+#define CV_IMPL extern "C"
+#endif //CV_IMPL
+
+#endif // __OPENCV_OLD_CV_H_
diff --git a/include/opencv/cv.hpp b/include/opencv/cv.hpp
new file mode 100644
index 0000000..8673956
--- /dev/null
+++ b/include/opencv/cv.hpp
@@ -0,0 +1,60 @@
+/*M///////////////////////////////////////////////////////////////////////////////////////
+//
+// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
+//
+// By downloading, copying, installing or using the software you agree to this license.
+// If you do not agree to this license, do not download, install,
+// copy or use the software.
+//
+//
+// License Agreement
+// For Open Source Computer Vision Library
+//
+// Copyright (C) 2000-2008, Intel Corporation, all rights reserved.
+// Copyright (C) 2009, Willow Garage Inc., all rights reserved.
+// Third party copyrights are property of their respective owners.
+//
+// Redistribution and use in source and binary forms, with or without modification,
+// are permitted provided that the following conditions are met:
+//
+// * Redistribution's of source code must retain the above copyright notice,
+// this list of conditions and the following disclaimer.
+//
+// * Redistribution's in binary form must reproduce the above copyright notice,
+// this list of conditions and the following disclaimer in the documentation
+// and/or other materials provided with the distribution.
+//
+// * The name of the copyright holders may not be used to endorse or promote products
+// derived from this software without specific prior written permission.
+//
+// This software is provided by the copyright holders and contributors "as is" and
+// any express or implied warranties, including, but not limited to, the implied
+// warranties of merchantability and fitness for a particular purpose are disclaimed.
+// In no event shall the Intel Corporation or contributors be liable for any direct,
+// indirect, incidental, special, exemplary, or consequential damages
+// (including, but not limited to, procurement of substitute goods or services;
+// loss of use, data, or profits; or business interruption) however caused
+// and on any theory of liability, whether in contract, strict liability,
+// or tort (including negligence or otherwise) arising in any way out of
+// the use of this software, even if advised of the possibility of such damage.
+//
+//M*/
+
+#ifndef OPENCV_OLD_CV_HPP
+#define OPENCV_OLD_CV_HPP
+
+//#if defined(__GNUC__)
+//#warning "This is a deprecated opencv header provided for compatibility. Please include a header from a corresponding opencv module"
+//#endif
+
+#include "cv.h"
+#include "opencv2/core.hpp"
+#include "opencv2/imgproc.hpp"
+#include "opencv2/photo.hpp"
+#include "opencv2/video.hpp"
+#include "opencv2/highgui.hpp"
+#include "opencv2/features2d.hpp"
+#include "opencv2/calib3d.hpp"
+#include "opencv2/objdetect.hpp"
+
+#endif
diff --git a/include/opencv/cvaux.h b/include/opencv/cvaux.h
new file mode 100644
index 0000000..c0367cc
--- /dev/null
+++ b/include/opencv/cvaux.h
@@ -0,0 +1,57 @@
+/*M///////////////////////////////////////////////////////////////////////////////////////
+//
+// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
+//
+// By downloading, copying, installing or using the software you agree to this license.
+// If you do not agree to this license, do not download, install,
+// copy or use the software.
+//
+//
+// Intel License Agreement
+// For Open Source Computer Vision Library
+//
+// Copyright (C) 2000, Intel Corporation, all rights reserved.
+// Third party copyrights are property of their respective owners.
+//
+// Redistribution and use in source and binary forms, with or without modification,
+// are permitted provided that the following conditions are met:
+//
+// * Redistribution's of source code must retain the above copyright notice,
+// this list of conditions and the following disclaimer.
+//
+// * Redistribution's in binary form must reproduce the above copyright notice,
+// this list of conditions and the following disclaimer in the documentation
+// and/or other materials provided with the distribution.
+//
+// * The name of Intel Corporation may not be used to endorse or promote products
+// derived from this software without specific prior written permission.
+//
+// This software is provided by the copyright holders and contributors "as is" and
+// any express or implied warranties, including, but not limited to, the implied
+// warranties of merchantability and fitness for a particular purpose are disclaimed.
+// In no event shall the Intel Corporation or contributors be liable for any direct,
+// indirect, incidental, special, exemplary, or consequential damages
+// (including, but not limited to, procurement of substitute goods or services;
+// loss of use, data, or profits; or business interruption) however caused
+// and on any theory of liability, whether in contract, strict liability,
+// or tort (including negligence or otherwise) arising in any way out of
+// the use of this software, even if advised of the possibility of such damage.
+//
+//M*/
+
+#ifndef OPENCV_OLD_AUX_H
+#define OPENCV_OLD_AUX_H
+
+//#if defined(__GNUC__)
+//#warning "This is a deprecated opencv header provided for compatibility. Please include a header from a corresponding opencv module"
+//#endif
+
+#include "opencv2/core/core_c.h"
+#include "opencv2/imgproc/imgproc_c.h"
+#include "opencv2/photo/photo_c.h"
+#include "opencv2/video/tracking_c.h"
+#include "opencv2/objdetect/objdetect_c.h"
+
+#endif
+
+/* End of file. */
diff --git a/include/opencv/cvaux.hpp b/include/opencv/cvaux.hpp
new file mode 100644
index 0000000..4888eef
--- /dev/null
+++ b/include/opencv/cvaux.hpp
@@ -0,0 +1,52 @@
+/*M///////////////////////////////////////////////////////////////////////////////////////
+//
+// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
+//
+// By downloading, copying, installing or using the software you agree to this license.
+// If you do not agree to this license, do not download, install,
+// copy or use the software.
+//
+//
+// Intel License Agreement
+// For Open Source Computer Vision Library
+//
+// Copyright (C) 2000, Intel Corporation, all rights reserved.
+// Third party copyrights are property of their respective owners.
+//
+// Redistribution and use in source and binary forms, with or without modification,
+// are permitted provided that the following conditions are met:
+//
+// * Redistribution's of source code must retain the above copyright notice,
+// this list of conditions and the following disclaimer.
+//
+// * Redistribution's in binary form must reproduce the above copyright notice,
+// this list of conditions and the following disclaimer in the documentation
+// and/or other materials provided with the distribution.
+//
+// * The name of Intel Corporation may not be used to endorse or promote products
+// derived from this software without specific prior written permission.
+//
+// This software is provided by the copyright holders and contributors "as is" and
+// any express or implied warranties, including, but not limited to, the implied
+// warranties of merchantability and fitness for a particular purpose are disclaimed.
+// In no event shall the Intel Corporation or contributors be liable for any direct,
+// indirect, incidental, special, exemplary, or consequential damages
+// (including, but not limited to, procurement of substitute goods or services;
+// loss of use, data, or profits; or business interruption) however caused
+// and on any theory of liability, whether in contract, strict liability,
+// or tort (including negligence or otherwise) arising in any way out of
+// the use of this software, even if advised of the possibility of such damage.
+//
+//M*/
+
+#ifndef OPENCV_OLD_AUX_HPP
+#define OPENCV_OLD_AUX_HPP
+
+//#if defined(__GNUC__)
+//#warning "This is a deprecated opencv header provided for compatibility. Please include a header from a corresponding opencv module"
+//#endif
+
+#include "cvaux.h"
+#include "opencv2/core/utility.hpp"
+
+#endif
diff --git a/include/opencv/cvwimage.h b/include/opencv/cvwimage.h
new file mode 100644
index 0000000..ec0ab14
--- /dev/null
+++ b/include/opencv/cvwimage.h
@@ -0,0 +1,46 @@
+///////////////////////////////////////////////////////////////////////////////
+// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
+//
+// By downloading, copying, installing or using the software you agree to
+// this license. If you do not agree to this license, do not download,
+// install, copy or use the software.
+//
+// License Agreement
+// For Open Source Computer Vision Library
+//
+// Copyright (C) 2008, Google, all rights reserved.
+// Third party copyrights are property of their respective owners.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// * Redistribution's of source code must retain the above copyright notice,
+// this list of conditions and the following disclaimer.
+//
+// * Redistribution's in binary form must reproduce the above copyright notice,
+// this list of conditions and the following disclaimer in the documentation
+// and/or other materials provided with the distribution.
+//
+// * The name of Intel Corporation or contributors may not be used to endorse
+// or promote products derived from this software without specific
+// prior written permission.
+//
+// This software is provided by the copyright holders and contributors "as is"
+// and any express or implied warranties, including, but not limited to, the
+// implied warranties of merchantability and fitness for a particular purpose
+// are disclaimed. In no event shall the Intel Corporation or contributors be
+// liable for any direct, indirect, incidental, special, exemplary, or
+// consequential damages
+// (including, but not limited to, procurement of substitute goods or services;
+// loss of use, data, or profits; or business interruption) however caused
+// and on any theory of liability, whether in contract, strict liability,
+// or tort (including negligence or otherwise) arising in any way out of
+// the use of this software, even if advised of the possibility of such damage.
+
+
+#ifndef OPENCV_OLD_WIMAGE_HPP
+#define OPENCV_OLD_WIMAGE_HPP
+
+#include "opencv2/core/wimage.hpp"
+
+#endif
diff --git a/include/opencv/cxcore.h b/include/opencv/cxcore.h
new file mode 100644
index 0000000..dc070c7
--- /dev/null
+++ b/include/opencv/cxcore.h
@@ -0,0 +1,52 @@
+/*M///////////////////////////////////////////////////////////////////////////////////////
+//
+// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
+//
+// By downloading, copying, installing or using the software you agree to this license.
+// If you do not agree to this license, do not download, install,
+// copy or use the software.
+//
+//
+// License Agreement
+// For Open Source Computer Vision Library
+//
+// Copyright (C) 2000-2008, Intel Corporation, all rights reserved.
+// Copyright (C) 2009, Willow Garage Inc., all rights reserved.
+// Third party copyrights are property of their respective owners.
+//
+// Redistribution and use in source and binary forms, with or without modification,
+// are permitted provided that the following conditions are met:
+//
+// * Redistribution's of source code must retain the above copyright notice,
+// this list of conditions and the following disclaimer.
+//
+// * Redistribution's in binary form must reproduce the above copyright notice,
+// this list of conditions and the following disclaimer in the documentation
+// and/or other materials provided with the distribution.
+//
+// * The name of the copyright holders may not be used to endorse or promote products
+// derived from this software without specific prior written permission.
+//
+// This software is provided by the copyright holders and contributors "as is" and
+// any express or implied warranties, including, but not limited to, the implied
+// warranties of merchantability and fitness for a particular purpose are disclaimed.
+// In no event shall the Intel Corporation or contributors be liable for any direct,
+// indirect, incidental, special, exemplary, or consequential damages
+// (including, but not limited to, procurement of substitute goods or services;
+// loss of use, data, or profits; or business interruption) however caused
+// and on any theory of liability, whether in contract, strict liability,
+// or tort (including negligence or otherwise) arising in any way out of
+// the use of this software, even if advised of the possibility of such damage.
+//
+//M*/
+
+#ifndef OPENCV_OLD_CXCORE_H
+#define OPENCV_OLD_CXCORE_H
+
+//#if defined(__GNUC__)
+//#warning "This is a deprecated opencv header provided for compatibility. Please include a header from a corresponding opencv module"
+//#endif
+
+#include "opencv2/core/core_c.h"
+
+#endif
diff --git a/include/opencv/cxcore.hpp b/include/opencv/cxcore.hpp
new file mode 100644
index 0000000..c371677
--- /dev/null
+++ b/include/opencv/cxcore.hpp
@@ -0,0 +1,53 @@
+/*M///////////////////////////////////////////////////////////////////////////////////////
+//
+// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
+//
+// By downloading, copying, installing or using the software you agree to this license.
+// If you do not agree to this license, do not download, install,
+// copy or use the software.
+//
+//
+// License Agreement
+// For Open Source Computer Vision Library
+//
+// Copyright (C) 2000-2008, Intel Corporation, all rights reserved.
+// Copyright (C) 2009, Willow Garage Inc., all rights reserved.
+// Third party copyrights are property of their respective owners.
+//
+// Redistribution and use in source and binary forms, with or without modification,
+// are permitted provided that the following conditions are met:
+//
+// * Redistribution's of source code must retain the above copyright notice,
+// this list of conditions and the following disclaimer.
+//
+// * Redistribution's in binary form must reproduce the above copyright notice,
+// this list of conditions and the following disclaimer in the documentation
+// and/or other materials provided with the distribution.
+//
+// * The name of the copyright holders may not be used to endorse or promote products
+// derived from this software without specific prior written permission.
+//
+// This software is provided by the copyright holders and contributors "as is" and
+// any express or implied warranties, including, but not limited to, the implied
+// warranties of merchantability and fitness for a particular purpose are disclaimed.
+// In no event shall the Intel Corporation or contributors be liable for any direct,
+// indirect, incidental, special, exemplary, or consequential damages
+// (including, but not limited to, procurement of substitute goods or services;
+// loss of use, data, or profits; or business interruption) however caused
+// and on any theory of liability, whether in contract, strict liability,
+// or tort (including negligence or otherwise) arising in any way out of
+// the use of this software, even if advised of the possibility of such damage.
+//
+//M*/
+
+#ifndef OPENCV_OLD_CXCORE_HPP
+#define OPENCV_OLD_CXCORE_HPP
+
+//#if defined(__GNUC__)
+//#warning "This is a deprecated opencv header provided for compatibility. Please include a header from a corresponding opencv module"
+//#endif
+
+#include "cxcore.h"
+#include "opencv2/core.hpp"
+
+#endif
diff --git a/include/opencv2/hal.hpp b/include/opencv/cxeigen.hpp
similarity index 54%
rename from include/opencv2/hal.hpp
rename to include/opencv/cxeigen.hpp
index 95d1ac6..1d3df91 100644
--- a/include/opencv2/hal.hpp
+++ b/include/opencv/cxeigen.hpp
@@ -12,8 +12,6 @@
//
// Copyright (C) 2000-2008, Intel Corporation, all rights reserved.
// Copyright (C) 2009, Willow Garage Inc., all rights reserved.
-// Copyright (C) 2013, OpenCV Foundation, all rights reserved.
-// Copyright (C) 2015, Itseez Inc., all rights reserved.
// Third party copyrights are property of their respective owners.
//
// Redistribution and use in source and binary forms, with or without modification,
@@ -42,57 +40,9 @@
//
//M*/
-#ifndef __OPENCV_HAL_HPP__
-#define __OPENCV_HAL_HPP__
+#ifndef OPENCV_OLD_EIGEN_HPP
+#define OPENCV_OLD_EIGEN_HPP
-#include "opencv2/hal/defs.h"
+#include "opencv2/core/eigen.hpp"
-/**
- @defgroup hal Hardware Acceleration Layer
-*/
-
-namespace cv { namespace hal {
-
-namespace Error {
-
-enum
-{
- Ok = 0,
- Unknown = -1
-};
-
-}
-
-int normHamming(const uchar* a, int n);
-int normHamming(const uchar* a, const uchar* b, int n);
-
-int normHamming(const uchar* a, int n, int cellSize);
-int normHamming(const uchar* a, const uchar* b, int n, int cellSize);
-
-//////////////////////////////// low-level functions ////////////////////////////////
-
-int LU(float* A, size_t astep, int m, float* b, size_t bstep, int n);
-int LU(double* A, size_t astep, int m, double* b, size_t bstep, int n);
-bool Cholesky(float* A, size_t astep, int m, float* b, size_t bstep, int n);
-bool Cholesky(double* A, size_t astep, int m, double* b, size_t bstep, int n);
-
-int normL1_(const uchar* a, const uchar* b, int n);
-float normL1_(const float* a, const float* b, int n);
-float normL2Sqr_(const float* a, const float* b, int n);
-
-void exp(const float* src, float* dst, int n);
-void exp(const double* src, double* dst, int n);
-void log(const float* src, float* dst, int n);
-void log(const double* src, double* dst, int n);
-
-void fastAtan2(const float* y, const float* x, float* dst, int n, bool angleInDegrees);
-void magnitude(const float* x, const float* y, float* dst, int n);
-void magnitude(const double* x, const double* y, double* dst, int n);
-void sqrt(const float* src, float* dst, int len);
-void sqrt(const double* src, double* dst, int len);
-void invSqrt(const float* src, float* dst, int len);
-void invSqrt(const double* src, double* dst, int len);
-
-}} //cv::hal
-
-#endif //__OPENCV_HAL_HPP__
+#endif
diff --git a/include/opencv/cxmisc.h b/include/opencv/cxmisc.h
new file mode 100644
index 0000000..9b9bc82
--- /dev/null
+++ b/include/opencv/cxmisc.h
@@ -0,0 +1,8 @@
+#ifndef OPENCV_OLD_CXMISC_H
+#define OPENCV_OLD_CXMISC_H
+
+#ifdef __cplusplus
+# include "opencv2/core/utility.hpp"
+#endif
+
+#endif
diff --git a/include/opencv/highgui.h b/include/opencv/highgui.h
new file mode 100644
index 0000000..69b394e
--- /dev/null
+++ b/include/opencv/highgui.h
@@ -0,0 +1,48 @@
+/*M///////////////////////////////////////////////////////////////////////////////////////
+//
+// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
+//
+// By downloading, copying, installing or using the software you agree to this license.
+// If you do not agree to this license, do not download, install,
+// copy or use the software.
+//
+//
+// Intel License Agreement
+// For Open Source Computer Vision Library
+//
+// Copyright (C) 2000, Intel Corporation, all rights reserved.
+// Third party copyrights are property of their respective owners.
+//
+// Redistribution and use in source and binary forms, with or without modification,
+// are permitted provided that the following conditions are met:
+//
+// * Redistribution's of source code must retain the above copyright notice,
+// this list of conditions and the following disclaimer.
+//
+// * Redistribution's in binary form must reproduce the above copyright notice,
+// this list of conditions and the following disclaimer in the documentation
+// and/or other materials provided with the distribution.
+//
+// * The name of Intel Corporation may not be used to endorse or promote products
+// derived from this software without specific prior written permission.
+//
+// This software is provided by the copyright holders and contributors "as is" and
+// any express or implied warranties, including, but not limited to, the implied
+// warranties of merchantability and fitness for a particular purpose are disclaimed.
+// In no event shall the Intel Corporation or contributors be liable for any direct,
+// indirect, incidental, special, exemplary, or consequential damages
+// (including, but not limited to, procurement of substitute goods or services;
+// loss of use, data, or profits; or business interruption) however caused
+// and on any theory of liability, whether in contract, strict liability,
+// or tort (including negligence or otherwise) arising in any way out of
+// the use of this software, even if advised of the possibility of such damage.
+//
+//M*/
+
+#ifndef OPENCV_OLD_HIGHGUI_H
+#define OPENCV_OLD_HIGHGUI_H
+
+#include "opencv2/core/core_c.h"
+#include "opencv2/highgui/highgui_c.h"
+
+#endif
diff --git a/include/opencv/ml.h b/include/opencv/ml.h
new file mode 100644
index 0000000..0c376ba
--- /dev/null
+++ b/include/opencv/ml.h
@@ -0,0 +1,47 @@
+/*M///////////////////////////////////////////////////////////////////////////////////////
+//
+// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
+//
+// By downloading, copying, installing or using the software you agree to this license.
+// If you do not agree to this license, do not download, install,
+// copy or use the software.
+//
+//
+// Intel License Agreement
+//
+// Copyright (C) 2000, Intel Corporation, all rights reserved.
+// Third party copyrights are property of their respective owners.
+//
+// Redistribution and use in source and binary forms, with or without modification,
+// are permitted provided that the following conditions are met:
+//
+// * Redistribution's of source code must retain the above copyright notice,
+// this list of conditions and the following disclaimer.
+//
+// * Redistribution's in binary form must reproduce the above copyright notice,
+// this list of conditions and the following disclaimer in the documentation
+// and/or other materials provided with the distribution.
+//
+// * The name of Intel Corporation may not be used to endorse or promote products
+// derived from this software without specific prior written permission.
+//
+// This software is provided by the copyright holders and contributors "as is" and
+// any express or implied warranties, including, but not limited to, the implied
+// warranties of merchantability and fitness for a particular purpose are disclaimed.
+// In no event shall the Intel Corporation or contributors be liable for any direct,
+// indirect, incidental, special, exemplary, or consequential damages
+// (including, but not limited to, procurement of substitute goods or services;
+// loss of use, data, or profits; or business interruption) however caused
+// and on any theory of liability, whether in contract, strict liability,
+// or tort (including negligence or otherwise) arising in any way out of
+// the use of this software, even if advised of the possibility of such damage.
+//
+//M*/
+
+#ifndef OPENCV_OLD_ML_H
+#define OPENCV_OLD_ML_H
+
+#include "opencv2/core/core_c.h"
+#include "opencv2/ml.hpp"
+
+#endif
diff --git a/include/opencv2/calib3d.hpp b/include/opencv2/calib3d.hpp
index 66ffe2c..c5b3ffd 100644
--- a/include/opencv2/calib3d.hpp
+++ b/include/opencv2/calib3d.hpp
@@ -41,8 +41,8 @@
//
//M*/
-#ifndef __OPENCV_CALIB3D_HPP__
-#define __OPENCV_CALIB3D_HPP__
+#ifndef OPENCV_CALIB3D_HPP
+#define OPENCV_CALIB3D_HPP
#include "opencv2/core.hpp"
#include "opencv2/features2d.hpp"
@@ -96,17 +96,62 @@ u = f_x*x' + c_x \\
v = f_y*y' + c_y
\end{array}\f]
+The following figure illustrates the pinhole camera model.
+
+
+
Real lenses usually have some distortion, mostly radial distortion and slight tangential distortion.
So, the above model is extended as:
-\f[\begin{array}{l} \vecthree{x}{y}{z} = R \vecthree{X}{Y}{Z} + t \\ x' = x/z \\ y' = y/z \\ x'' = x' \frac{1 + k_1 r^2 + k_2 r^4 + k_3 r^6}{1 + k_4 r^2 + k_5 r^4 + k_6 r^6} + 2 p_1 x' y' + p_2(r^2 + 2 x'^2) + s_1 r^2 + s_2 r^4 \\ y'' = y' \frac{1 + k_1 r^2 + k_2 r^4 + k_3 r^6}{1 + k_4 r^2 + k_5 r^4 + k_6 r^6} + p_1 (r^2 + 2 y'^2) + 2 p_2 x' y' + s_1 r^2 + s_2 r^4 \\ \text{where} \quad r^2 = x'^2 + y'^2 \\ u = f_x*x'' + c_x \\ v = f_y*y'' + c_y \end{array}\f]
+\f[\begin{array}{l}
+\vecthree{x}{y}{z} = R \vecthree{X}{Y}{Z} + t \\
+x' = x/z \\
+y' = y/z \\
+x'' = x' \frac{1 + k_1 r^2 + k_2 r^4 + k_3 r^6}{1 + k_4 r^2 + k_5 r^4 + k_6 r^6} + 2 p_1 x' y' + p_2(r^2 + 2 x'^2) + s_1 r^2 + s_2 r^4 \\
+y'' = y' \frac{1 + k_1 r^2 + k_2 r^4 + k_3 r^6}{1 + k_4 r^2 + k_5 r^4 + k_6 r^6} + p_1 (r^2 + 2 y'^2) + 2 p_2 x' y' + s_3 r^2 + s_4 r^4 \\
+\text{where} \quad r^2 = x'^2 + y'^2 \\
+u = f_x*x'' + c_x \\
+v = f_y*y'' + c_y
+\end{array}\f]
\f$k_1\f$, \f$k_2\f$, \f$k_3\f$, \f$k_4\f$, \f$k_5\f$, and \f$k_6\f$ are radial distortion coefficients. \f$p_1\f$ and \f$p_2\f$ are
tangential distortion coefficients. \f$s_1\f$, \f$s_2\f$, \f$s_3\f$, and \f$s_4\f$, are the thin prism distortion
-coefficients. Higher-order coefficients are not considered in OpenCV. In the functions below the
-coefficients are passed or returned as
+coefficients. Higher-order coefficients are not considered in OpenCV.
-\f[(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6],[s_1, s_2, s_3, s_4]])\f]
+The next figures show two common types of radial distortion: barrel distortion (typically \f$ k_1 < 0 \f$) and pincushion distortion (typically \f$ k_1 > 0 \f$).
+
+
+
+
+In some cases the image sensor may be tilted in order to focus an oblique plane in front of the
+camera (Scheimpfug condition). This can be useful for particle image velocimetry (PIV) or
+triangulation with a laser fan. The tilt causes a perspective distortion of \f$x''\f$ and
+\f$y''\f$. This distortion can be modelled in the following way, see e.g. @cite Louhichi07.
+
+\f[\begin{array}{l}
+s\vecthree{x'''}{y'''}{1} =
+\vecthreethree{R_{33}(\tau_x, \tau_y)}{0}{-R_{13}(\tau_x, \tau_y)}
+{0}{R_{33}(\tau_x, \tau_y)}{-R_{23}(\tau_x, \tau_y)}
+{0}{0}{1} R(\tau_x, \tau_y) \vecthree{x''}{y''}{1}\\
+u = f_x*x''' + c_x \\
+v = f_y*y''' + c_y
+\end{array}\f]
+
+where the matrix \f$R(\tau_x, \tau_y)\f$ is defined by two rotations with angular parameter \f$\tau_x\f$
+and \f$\tau_y\f$, respectively,
+
+\f[
+R(\tau_x, \tau_y) =
+\vecthreethree{\cos(\tau_y)}{0}{-\sin(\tau_y)}{0}{1}{0}{\sin(\tau_y)}{0}{\cos(\tau_y)}
+\vecthreethree{1}{0}{0}{0}{\cos(\tau_x)}{\sin(\tau_x)}{0}{-\sin(\tau_x)}{\cos(\tau_x)} =
+\vecthreethree{\cos(\tau_y)}{\sin(\tau_y)\sin(\tau_x)}{-\sin(\tau_y)\cos(\tau_x)}
+{0}{\cos(\tau_x)}{\sin(\tau_x)}
+{\sin(\tau_y)}{-\cos(\tau_y)\sin(\tau_x)}{\cos(\tau_y)\cos(\tau_x)}.
+\f]
+
+In the functions below the coefficients are passed or returned as
+
+\f[(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6 [, s_1, s_2, s_3, s_4[, \tau_x, \tau_y]]]])\f]
vector. That is, if the vector contains four elements, it means that \f$k_3=0\f$ . The distortion
coefficients do not depend on the scene viewed. Thus, they also belong to the intrinsic camera
@@ -139,7 +184,7 @@ pattern (every view is described by several 3D-2D point correspondences).
- A calibration example on stereo matching can be found at
opencv_source_code/samples/cpp/stereo_match.cpp
- (Python) A camera calibration sample can be found at
- opencv_source_code/samples/python2/calibrate.py
+ opencv_source_code/samples/python/calibrate.py
@{
@defgroup calib3d_fisheye Fisheye camera model
@@ -154,7 +199,7 @@ pattern (every view is described by several 3D-2D point correspondences).
\f[x = Xc_1 \\ y = Xc_2 \\ z = Xc_3\f]
- The pinehole projection coordinates of P is [a; b] where
+ The pinhole projection coordinates of P is [a; b] where
\f[a = x / z \ and \ b = y / z \\ r^2 = a^2 + b^2 \\ \theta = atan(r)\f]
@@ -164,12 +209,12 @@ pattern (every view is described by several 3D-2D point correspondences).
The distorted point coordinates are [x'; y'] where
- \f[x' = (\theta_d / r) x \\ y' = (\theta_d / r) y \f]
+ \f[x' = (\theta_d / r) a \\ y' = (\theta_d / r) b \f]
Finally, conversion into pixel coordinates: The final pixel coordinates vector [u; v] where:
\f[u = f_x (x' + \alpha y') + c_x \\
- v = f_y yy + c_y\f]
+ v = f_y y' + c_y\f]
@defgroup calib3d_c C API
@@ -183,17 +228,18 @@ namespace cv
//! @{
//! type of the robust estimation algorithm
-enum { LMEDS = 4, //!< least-median algorithm
+enum { LMEDS = 4, //!< least-median of squares algorithm
RANSAC = 8, //!< RANSAC algorithm
RHO = 16 //!< RHO algorithm
};
enum { SOLVEPNP_ITERATIVE = 0,
- SOLVEPNP_EPNP = 1, // F.Moreno-Noguer, V.Lepetit and P.Fua "EPnP: Efficient Perspective-n-Point Camera Pose Estimation"
- SOLVEPNP_P3P = 2, // X.S. Gao, X.-R. Hou, J. Tang, H.-F. Chang; "Complete Solution Classification for the Perspective-Three-Point Problem"
- SOLVEPNP_DLS = 3, // Joel A. Hesch and Stergios I. Roumeliotis. "A Direct Least-Squares (DLS) Method for PnP"
- SOLVEPNP_UPNP = 4 // A.Penate-Sanchez, J.Andrade-Cetto, F.Moreno-Noguer. "Exhaustive Linearization for Robust Camera Pose and Focal Length Estimation"
-
+ SOLVEPNP_EPNP = 1, //!< EPnP: Efficient Perspective-n-Point Camera Pose Estimation @cite lepetit2009epnp
+ SOLVEPNP_P3P = 2, //!< Complete Solution Classification for the Perspective-Three-Point Problem @cite gao2003complete
+ SOLVEPNP_DLS = 3, //!< A Direct Least-Squares (DLS) Method for PnP @cite hesch2011direct
+ SOLVEPNP_UPNP = 4, //!< Exhaustive Linearization for Robust Camera Pose and Focal Length Estimation @cite penate2013exhaustive
+ SOLVEPNP_AP3P = 5, //!< An Efficient Algebraic Solution to the Perspective-Three-Point Problem @cite Ke17
+ SOLVEPNP_MAX_COUNT //!< Used for count
};
enum { CALIB_CB_ADAPTIVE_THRESH = 1,
@@ -221,18 +267,24 @@ enum { CALIB_USE_INTRINSIC_GUESS = 0x00001,
CALIB_RATIONAL_MODEL = 0x04000,
CALIB_THIN_PRISM_MODEL = 0x08000,
CALIB_FIX_S1_S2_S3_S4 = 0x10000,
+ CALIB_TILTED_MODEL = 0x40000,
+ CALIB_FIX_TAUX_TAUY = 0x80000,
+ CALIB_USE_QR = 0x100000, //!< use QR instead of SVD decomposition for solving. Faster but potentially less precise
+ CALIB_FIX_TANGENT_DIST = 0x200000,
// only for stereo
CALIB_FIX_INTRINSIC = 0x00100,
CALIB_SAME_FOCAL_LENGTH = 0x00200,
// for stereo rectification
- CALIB_ZERO_DISPARITY = 0x00400
+ CALIB_ZERO_DISPARITY = 0x00400,
+ CALIB_USE_LU = (1 << 17), //!< use LU instead of SVD decomposition for solving. much faster but potentially less precise
+ CALIB_USE_EXTRINSIC_GUESS = (1 << 22), //!< for stereoCalibrate
};
//! the algorithm for finding fundamental matrix
enum { FM_7POINT = 1, //!< 7-point algorithm
FM_8POINT = 2, //!< 8-point algorithm
- FM_LMEDS = 4, //!< least-median algorithm
- FM_RANSAC = 8 //!< RANSAC algorithm
+ FM_LMEDS = 4, //!< least-median algorithm. 7-point algorithm is used.
+ FM_RANSAC = 8 //!< RANSAC algorithm. It needs at least 15 points. 7-point algorithm is used.
};
@@ -256,28 +308,34 @@ optimization procedures like calibrateCamera, stereoCalibrate, or solvePnP .
*/
CV_EXPORTS_W void Rodrigues( InputArray src, OutputArray dst, OutputArray jacobian = noArray() );
+/** @example samples/cpp/tutorial_code/features2D/Homography/pose_from_homography.cpp
+An example program about pose estimation from coplanar points
+
+Check @ref tutorial_homography "the corresponding tutorial" for more details
+*/
+
/** @brief Finds a perspective transformation between two planes.
@param srcPoints Coordinates of the points in the original plane, a matrix of the type CV_32FC2
or vector\ .
@param dstPoints Coordinates of the points in the target plane, a matrix of the type CV_32FC2 or
a vector\ .
-@param method Method used to computed a homography matrix. The following methods are possible:
-- **0** - a regular method using all the points
+@param method Method used to compute a homography matrix. The following methods are possible:
+- **0** - a regular method using all the points, i.e., the least squares method
- **RANSAC** - RANSAC-based robust method
- **LMEDS** - Least-Median robust method
-- **RHO** - PROSAC-based robust method
+- **RHO** - PROSAC-based robust method
@param ransacReprojThreshold Maximum allowed reprojection error to treat a point pair as an inlier
(used in the RANSAC and RHO methods only). That is, if
-\f[\| \texttt{dstPoints} _i - \texttt{convertPointsHomogeneous} ( \texttt{H} * \texttt{srcPoints} _i) \| > \texttt{ransacReprojThreshold}\f]
-then the point \f$i\f$ is considered an outlier. If srcPoints and dstPoints are measured in pixels,
+\f[\| \texttt{dstPoints} _i - \texttt{convertPointsHomogeneous} ( \texttt{H} * \texttt{srcPoints} _i) \|_2 > \texttt{ransacReprojThreshold}\f]
+then the point \f$i\f$ is considered as an outlier. If srcPoints and dstPoints are measured in pixels,
it usually makes sense to set this parameter somewhere in the range of 1 to 10.
@param mask Optional output mask set by a robust method ( RANSAC or LMEDS ). Note that the input
mask values are ignored.
-@param maxIters The maximum number of RANSAC iterations, 2000 is the maximum it can be.
+@param maxIters The maximum number of RANSAC iterations.
@param confidence Confidence level, between 0 and 1.
-The functions find and return the perspective transformation \f$H\f$ between the source and the
+The function finds and returns the perspective transformation \f$H\f$ between the source and the
destination planes:
\f[s_i \vecthree{x'_i}{y'_i}{1} \sim H \vecthree{x_i}{y_i}{1}\f]
@@ -292,10 +350,10 @@ pairs to compute an initial homography estimate with a simple least-squares sche
However, if not all of the point pairs ( \f$srcPoints_i\f$, \f$dstPoints_i\f$ ) fit the rigid perspective
transformation (that is, there are some outliers), this initial estimate will be poor. In this case,
you can use one of the three robust methods. The methods RANSAC, LMeDS and RHO try many different
-random subsets of the corresponding point pairs (of four pairs each), estimate the homography matrix
-using this subset and a simple least-square algorithm, and then compute the quality/goodness of the
-computed homography (which is the number of inliers for RANSAC or the median re-projection error for
-LMeDs). The best subset is then used to produce the initial estimate of the homography matrix and
+random subsets of the corresponding point pairs (of four pairs each, collinear pairs are discarded), estimate the homography matrix
+using this subset and a simple least-squares algorithm, and then compute the quality/goodness of the
+computed homography (which is the number of inliers for RANSAC or the least median re-projection error for
+LMeDS). The best subset is then used to produce the initial estimate of the homography matrix and
the mask of inliers/outliers.
Regardless of the method, robust or not, the computed homography matrix is refined further (using
@@ -308,17 +366,12 @@ correctly only when there are more than 50% of inliers. Finally, if there are no
noise is rather small, use the default method (method=0).
The function is used to find initial intrinsic and extrinsic matrices. Homography matrix is
-determined up to a scale. Thus, it is normalized so that \f$h_{33}=1\f$. Note that whenever an H matrix
+determined up to a scale. Thus, it is normalized so that \f$h_{33}=1\f$. Note that whenever an \f$H\f$ matrix
cannot be estimated, an empty one will be returned.
@sa
- getAffineTransform, getPerspectiveTransform, estimateRigidTransform, warpPerspective,
- perspectiveTransform
-
-@note
- - A example on calculating a homography for image matching can be found at
- opencv_source_code/samples/cpp/video_homography.cpp
-
+getAffineTransform, estimateAffine2D, estimateAffinePartial2D, getPerspectiveTransform, warpPerspective,
+perspectiveTransform
*/
CV_EXPORTS_W Mat findHomography( InputArray srcPoints, InputArray dstPoints,
int method = 0, double ransacReprojThreshold = 3,
@@ -344,8 +397,8 @@ and a rotation matrix.
It optionally returns three rotation matrices, one for each axis, and the three Euler angles in
degrees (as the return value) that could be used in OpenGL. Note, there is always more than one
-sequence of rotations about the three principle axes that results in the same orientation of an
-object, eg. see @cite Slabaugh . Returned tree rotation matrices and corresponding three Euler angules
+sequence of rotations about the three principal axes that results in the same orientation of an
+object, e.g. see @cite Slabaugh . Returned tree rotation matrices and corresponding three Euler angles
are only one of the possible solutions.
*/
CV_EXPORTS_W Vec3d RQDecomp3x3( InputArray src, OutputArray mtxR, OutputArray mtxQ,
@@ -370,8 +423,8 @@ matrix and the position of a camera.
It optionally returns three rotation matrices, one for each axis, and three Euler angles that could
be used in OpenGL. Note, there is always more than one sequence of rotations about the three
-principle axes that results in the same orientation of an object, eg. see @cite Slabaugh . Returned
-tree rotation matrices and corresponding three Euler angules are only one of the possible solutions.
+principal axes that results in the same orientation of an object, e.g. see @cite Slabaugh . Returned
+tree rotation matrices and corresponding three Euler angles are only one of the possible solutions.
The function is based on RQDecomp3x3 .
*/
@@ -443,8 +496,8 @@ vector\ ), where N is the number of points in the view.
@param tvec Translation vector.
@param cameraMatrix Camera matrix \f$A = \vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{_1}\f$ .
@param distCoeffs Input vector of distortion coefficients
-\f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6],[s_1, s_2, s_3, s_4]])\f$ of 4, 5, 8 or 12 elements. If
-the vector is NULL/empty, the zero distortion coefficients are assumed.
+\f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6 [, s_1, s_2, s_3, s_4[, \tau_x, \tau_y]]]])\f$ of
+4, 5, 8, 12 or 14 elements. If the vector is empty, the zero distortion coefficients are assumed.
@param imagePoints Output array of image points, 2xN/Nx2 1-channel or 1xN/Nx1 2-channel, or
vector\ .
@param jacobian Optional output 2Nx(10+\) jacobian matrix of derivatives of image
@@ -474,20 +527,27 @@ CV_EXPORTS_W void projectPoints( InputArray objectPoints,
OutputArray jacobian = noArray(),
double aspectRatio = 0 );
+/** @example samples/cpp/tutorial_code/features2D/Homography/homography_from_camera_displacement.cpp
+An example program about homography from the camera displacement
+
+Check @ref tutorial_homography "the corresponding tutorial" for more details
+*/
+
/** @brief Finds an object pose from 3D-2D point correspondences.
-@param objectPoints Array of object points in the object coordinate space, 3xN/Nx3 1-channel or
+@param objectPoints Array of object points in the object coordinate space, Nx3 1-channel or
1xN/Nx1 3-channel, where N is the number of points. vector\ can be also passed here.
-@param imagePoints Array of corresponding image points, 2xN/Nx2 1-channel or 1xN/Nx1 2-channel,
+@param imagePoints Array of corresponding image points, Nx2 1-channel or 1xN/Nx1 2-channel,
where N is the number of points. vector\ can be also passed here.
@param cameraMatrix Input camera matrix \f$A = \vecthreethree{fx}{0}{cx}{0}{fy}{cy}{0}{0}{1}\f$ .
@param distCoeffs Input vector of distortion coefficients
-\f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6],[s_1, s_2, s_3, s_4]])\f$ of 4, 5, 8 or 12 elements. If
-the vector is NULL/empty, the zero distortion coefficients are assumed.
-@param rvec Output rotation vector (see Rodrigues ) that, together with tvec , brings points from
+\f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6 [, s_1, s_2, s_3, s_4[, \tau_x, \tau_y]]]])\f$ of
+4, 5, 8, 12 or 14 elements. If the vector is NULL/empty, the zero distortion coefficients are
+assumed.
+@param rvec Output rotation vector (see @ref Rodrigues ) that, together with tvec , brings points from
the model coordinate system to the camera coordinate system.
@param tvec Output translation vector.
-@param useExtrinsicGuess Parameter used for SOLVEPNP_ITERATIVE. If true (1), the function uses
+@param useExtrinsicGuess Parameter used for #SOLVEPNP_ITERATIVE. If true (1), the function uses
the provided rvec and tvec values as initial approximations of the rotation and translation
vectors, respectively, and further optimizes them.
@param flags Method for solving a PnP problem:
@@ -496,24 +556,120 @@ this case the function finds such a pose that minimizes reprojection error, that
of squared distances between the observed projections imagePoints and the projected (using
projectPoints ) objectPoints .
- **SOLVEPNP_P3P** Method is based on the paper of X.S. Gao, X.-R. Hou, J. Tang, H.-F. Chang
-"Complete Solution Classification for the Perspective-Three-Point Problem". In this case the
-function requires exactly four object and image points.
+"Complete Solution Classification for the Perspective-Three-Point Problem" (@cite gao2003complete).
+In this case the function requires exactly four object and image points.
+- **SOLVEPNP_AP3P** Method is based on the paper of T. Ke, S. Roumeliotis
+"An Efficient Algebraic Solution to the Perspective-Three-Point Problem" (@cite Ke17).
+In this case the function requires exactly four object and image points.
- **SOLVEPNP_EPNP** Method has been introduced by F.Moreno-Noguer, V.Lepetit and P.Fua in the
-paper "EPnP: Efficient Perspective-n-Point Camera Pose Estimation".
+paper "EPnP: Efficient Perspective-n-Point Camera Pose Estimation" (@cite lepetit2009epnp).
- **SOLVEPNP_DLS** Method is based on the paper of Joel A. Hesch and Stergios I. Roumeliotis.
-"A Direct Least-Squares (DLS) Method for PnP".
+"A Direct Least-Squares (DLS) Method for PnP" (@cite hesch2011direct).
- **SOLVEPNP_UPNP** Method is based on the paper of A.Penate-Sanchez, J.Andrade-Cetto,
F.Moreno-Noguer. "Exhaustive Linearization for Robust Camera Pose and Focal Length
-Estimation". In this case the function also estimates the parameters \f$f_x\f$ and \f$f_y\f$
+Estimation" (@cite penate2013exhaustive). In this case the function also estimates the parameters \f$f_x\f$ and \f$f_y\f$
assuming that both have the same value. Then the cameraMatrix is updated with the estimated
focal length.
+- **SOLVEPNP_AP3P** Method is based on the paper of Tong Ke and Stergios I. Roumeliotis.
+"An Efficient Algebraic Solution to the Perspective-Three-Point Problem" (@cite Ke17). In this case the
+function requires exactly four object and image points.
The function estimates the object pose given a set of object points, their corresponding image
-projections, as well as the camera matrix and the distortion coefficients.
+projections, as well as the camera matrix and the distortion coefficients, see the figure below
+(more precisely, the X-axis of the camera frame is pointing to the right, the Y-axis downward
+and the Z-axis forward).
+
+
+
+Points expressed in the world frame \f$ \bf{X}_w \f$ are projected into the image plane \f$ \left[ u, v \right] \f$
+using the perspective projection model \f$ \Pi \f$ and the camera intrinsic parameters matrix \f$ \bf{A} \f$:
+
+\f[
+ \begin{align*}
+ \begin{bmatrix}
+ u \\
+ v \\
+ 1
+ \end{bmatrix} &=
+ \bf{A} \hspace{0.1em} \Pi \hspace{0.2em} ^{c}\bf{M}_w
+ \begin{bmatrix}
+ X_{w} \\
+ Y_{w} \\
+ Z_{w} \\
+ 1
+ \end{bmatrix} \\
+ \begin{bmatrix}
+ u \\
+ v \\
+ 1
+ \end{bmatrix} &=
+ \begin{bmatrix}
+ f_x & 0 & c_x \\
+ 0 & f_y & c_y \\
+ 0 & 0 & 1
+ \end{bmatrix}
+ \begin{bmatrix}
+ 1 & 0 & 0 & 0 \\
+ 0 & 1 & 0 & 0 \\
+ 0 & 0 & 1 & 0
+ \end{bmatrix}
+ \begin{bmatrix}
+ r_{11} & r_{12} & r_{13} & t_x \\
+ r_{21} & r_{22} & r_{23} & t_y \\
+ r_{31} & r_{32} & r_{33} & t_z \\
+ 0 & 0 & 0 & 1
+ \end{bmatrix}
+ \begin{bmatrix}
+ X_{w} \\
+ Y_{w} \\
+ Z_{w} \\
+ 1
+ \end{bmatrix}
+ \end{align*}
+\f]
+
+The estimated pose is thus the rotation (`rvec`) and the translation (`tvec`) vectors that allow to transform
+a 3D point expressed in the world frame into the camera frame:
+
+\f[
+ \begin{align*}
+ \begin{bmatrix}
+ X_c \\
+ Y_c \\
+ Z_c \\
+ 1
+ \end{bmatrix} &=
+ \hspace{0.2em} ^{c}\bf{M}_w
+ \begin{bmatrix}
+ X_{w} \\
+ Y_{w} \\
+ Z_{w} \\
+ 1
+ \end{bmatrix} \\
+ \begin{bmatrix}
+ X_c \\
+ Y_c \\
+ Z_c \\
+ 1
+ \end{bmatrix} &=
+ \begin{bmatrix}
+ r_{11} & r_{12} & r_{13} & t_x \\
+ r_{21} & r_{22} & r_{23} & t_y \\
+ r_{31} & r_{32} & r_{33} & t_z \\
+ 0 & 0 & 0 & 1
+ \end{bmatrix}
+ \begin{bmatrix}
+ X_{w} \\
+ Y_{w} \\
+ Z_{w} \\
+ 1
+ \end{bmatrix}
+ \end{align*}
+\f]
@note
- An example of how to use solvePnP for planar augmented reality can be found at
- opencv_source_code/samples/python2/plane_ar.py
+ opencv_source_code/samples/python/plane_ar.py
- If you are using Python:
- Numpy array slices won't work as input because solvePnP requires contiguous
arrays (enforced by the assertion using cv::Mat::checkVector() around line 55 of
@@ -524,6 +680,15 @@ projections, as well as the camera matrix and the distortion coefficients.
- Thus, given some data D = np.array(...) where D.shape = (N,M), in order to use a subset of
it as, e.g., imagePoints, one must effectively copy it into a new array: imagePoints =
np.ascontiguousarray(D[:,:2]).reshape((N,1,2))
+ - The methods **SOLVEPNP_DLS** and **SOLVEPNP_UPNP** cannot be used as the current implementations are
+ unstable and sometimes give completely wrong results. If you pass one of these two
+ flags, **SOLVEPNP_EPNP** method will be used instead.
+ - The minimum number of points is 4 in the general case. In the case of **SOLVEPNP_P3P** and **SOLVEPNP_AP3P**
+ methods, it is required to use exactly 4 points (the first 3 points are used to estimate all the solutions
+ of the P3P problem, the last one is used to retain the best solution that minimizes the reprojection error).
+ - With **SOLVEPNP_ITERATIVE** method and `useExtrinsicGuess=true`, the minimum number of points is 3 (3 points
+ are sufficient to compute a pose but there are up to 4 solutions). The initial solution should be close to the
+ global solution to converge.
*/
CV_EXPORTS_W bool solvePnP( InputArray objectPoints, InputArray imagePoints,
InputArray cameraMatrix, InputArray distCoeffs,
@@ -532,14 +697,15 @@ CV_EXPORTS_W bool solvePnP( InputArray objectPoints, InputArray imagePoints,
/** @brief Finds an object pose from 3D-2D point correspondences using the RANSAC scheme.
-@param objectPoints Array of object points in the object coordinate space, 3xN/Nx3 1-channel or
+@param objectPoints Array of object points in the object coordinate space, Nx3 1-channel or
1xN/Nx1 3-channel, where N is the number of points. vector\ can be also passed here.
-@param imagePoints Array of corresponding image points, 2xN/Nx2 1-channel or 1xN/Nx1 2-channel,
+@param imagePoints Array of corresponding image points, Nx2 1-channel or 1xN/Nx1 2-channel,
where N is the number of points. vector\ can be also passed here.
@param cameraMatrix Input camera matrix \f$A = \vecthreethree{fx}{0}{cx}{0}{fy}{cy}{0}{0}{1}\f$ .
@param distCoeffs Input vector of distortion coefficients
-\f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6],[s_1, s_2, s_3, s_4]])\f$ of 4, 5, 8 or 12 elements. If
-the vector is NULL/empty, the zero distortion coefficients are assumed.
+\f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6 [, s_1, s_2, s_3, s_4[, \tau_x, \tau_y]]]])\f$ of
+4, 5, 8, 12 or 14 elements. If the vector is NULL/empty, the zero distortion coefficients are
+assumed.
@param rvec Output rotation vector (see Rodrigues ) that, together with tvec , brings points from
the model coordinate system to the camera coordinate system.
@param tvec Output translation vector.
@@ -563,6 +729,13 @@ makes the function resistant to outliers.
@note
- An example of how to use solvePNPRansac for object detection can be found at
opencv_source_code/samples/cpp/tutorial_code/calib3d/real_time_pose_estimation/
+ - The default method used to estimate the camera pose for the Minimal Sample Sets step
+ is #SOLVEPNP_EPNP. Exceptions are:
+ - if you choose #SOLVEPNP_P3P or #SOLVEPNP_AP3P, these methods will be used.
+ - if the number of input points is equal to 4, #SOLVEPNP_P3P is used.
+ - The method used to estimate the camera pose using all the inliers is defined by the
+ flags parameters unless it is equal to #SOLVEPNP_P3P or #SOLVEPNP_AP3P. In this case,
+ the method #SOLVEPNP_EPNP will be used instead.
*/
CV_EXPORTS_W bool solvePnPRansac( InputArray objectPoints, InputArray imagePoints,
InputArray cameraMatrix, InputArray distCoeffs,
@@ -570,6 +743,33 @@ CV_EXPORTS_W bool solvePnPRansac( InputArray objectPoints, InputArray imagePoint
bool useExtrinsicGuess = false, int iterationsCount = 100,
float reprojectionError = 8.0, double confidence = 0.99,
OutputArray inliers = noArray(), int flags = SOLVEPNP_ITERATIVE );
+/** @brief Finds an object pose from 3 3D-2D point correspondences.
+
+@param objectPoints Array of object points in the object coordinate space, 3x3 1-channel or
+1x3/3x1 3-channel. vector\ can be also passed here.
+@param imagePoints Array of corresponding image points, 3x2 1-channel or 1x3/3x1 2-channel.
+ vector\ can be also passed here.
+@param cameraMatrix Input camera matrix \f$A = \vecthreethree{fx}{0}{cx}{0}{fy}{cy}{0}{0}{1}\f$ .
+@param distCoeffs Input vector of distortion coefficients
+\f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6 [, s_1, s_2, s_3, s_4[, \tau_x, \tau_y]]]])\f$ of
+4, 5, 8, 12 or 14 elements. If the vector is NULL/empty, the zero distortion coefficients are
+assumed.
+@param rvecs Output rotation vectors (see Rodrigues ) that, together with tvecs , brings points from
+the model coordinate system to the camera coordinate system. A P3P problem has up to 4 solutions.
+@param tvecs Output translation vectors.
+@param flags Method for solving a P3P problem:
+- **SOLVEPNP_P3P** Method is based on the paper of X.S. Gao, X.-R. Hou, J. Tang, H.-F. Chang
+"Complete Solution Classification for the Perspective-Three-Point Problem" (@cite gao2003complete).
+- **SOLVEPNP_AP3P** Method is based on the paper of Tong Ke and Stergios I. Roumeliotis.
+"An Efficient Algebraic Solution to the Perspective-Three-Point Problem" (@cite Ke17).
+
+The function estimates the object pose given 3 object points, their corresponding image
+projections, as well as the camera matrix and the distortion coefficients.
+ */
+CV_EXPORTS_W int solveP3P( InputArray objectPoints, InputArray imagePoints,
+ InputArray cameraMatrix, InputArray distCoeffs,
+ OutputArrayOfArrays rvecs, OutputArrayOfArrays tvecs,
+ int flags );
/** @brief Finds an initial camera matrix from 3D-2D point correspondences.
@@ -597,11 +797,11 @@ CV_EXPORTS_W Mat initCameraMatrix2D( InputArrayOfArrays objectPoints,
( patternSize = cvSize(points_per_row,points_per_colum) = cvSize(columns,rows) ).
@param corners Output array of detected corners.
@param flags Various operation flags that can be zero or a combination of the following values:
-- **CV_CALIB_CB_ADAPTIVE_THRESH** Use adaptive thresholding to convert the image to black
+- **CALIB_CB_ADAPTIVE_THRESH** Use adaptive thresholding to convert the image to black
and white, rather than a fixed threshold level (computed from the average image brightness).
-- **CV_CALIB_CB_NORMALIZE_IMAGE** Normalize the image gamma with equalizeHist before
+- **CALIB_CB_NORMALIZE_IMAGE** Normalize the image gamma with equalizeHist before
applying fixed or adaptive thresholding.
-- **CV_CALIB_CB_FILTER_QUADS** Use additional criteria (like contour area, perimeter,
+- **CALIB_CB_FILTER_QUADS** Use additional criteria (like contour area, perimeter,
square-like shape) to filter out false quads extracted at the contour retrieval stage.
- **CALIB_CB_FAST_CHECK** Run a fast check on the image that looks for chessboard corners,
and shortcut the call if none is found. This can drastically speed up the call in the
@@ -660,6 +860,58 @@ found, or as colored corners connected with lines if the board was found.
CV_EXPORTS_W void drawChessboardCorners( InputOutputArray image, Size patternSize,
InputArray corners, bool patternWasFound );
+/** @brief Draw axes of the world/object coordinate system from pose estimation. @sa solvePnP
+
+@param image Input/output image. It must have 1 or 3 channels. The number of channels is not altered.
+@param cameraMatrix Input 3x3 floating-point matrix of camera intrinsic parameters.
+\f$A = \vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\f$
+@param distCoeffs Input vector of distortion coefficients
+\f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6 [, s_1, s_2, s_3, s_4[, \tau_x, \tau_y]]]])\f$ of
+4, 5, 8, 12 or 14 elements. If the vector is empty, the zero distortion coefficients are assumed.
+@param rvec Rotation vector (see @ref Rodrigues ) that, together with tvec , brings points from
+the model coordinate system to the camera coordinate system.
+@param tvec Translation vector.
+@param length Length of the painted axes in the same unit than tvec (usually in meters).
+@param thickness Line thickness of the painted axes.
+
+This function draws the axes of the world/object coordinate system w.r.t. to the camera frame.
+OX is drawn in red, OY in green and OZ in blue.
+ */
+CV_EXPORTS_W void drawFrameAxes(InputOutputArray image, InputArray cameraMatrix, InputArray distCoeffs,
+ InputArray rvec, InputArray tvec, float length, int thickness=3);
+
+struct CV_EXPORTS_W_SIMPLE CirclesGridFinderParameters
+{
+ CV_WRAP CirclesGridFinderParameters();
+ CV_PROP_RW cv::Size2f densityNeighborhoodSize;
+ CV_PROP_RW float minDensity;
+ CV_PROP_RW int kmeansAttempts;
+ CV_PROP_RW int minDistanceToAddKeypoint;
+ CV_PROP_RW int keypointScale;
+ CV_PROP_RW float minGraphConfidence;
+ CV_PROP_RW float vertexGain;
+ CV_PROP_RW float vertexPenalty;
+ CV_PROP_RW float existingVertexGain;
+ CV_PROP_RW float edgeGain;
+ CV_PROP_RW float edgePenalty;
+ CV_PROP_RW float convexHullFactor;
+ CV_PROP_RW float minRNGEdgeSwitchDist;
+
+ enum GridType
+ {
+ SYMMETRIC_GRID, ASYMMETRIC_GRID
+ };
+ GridType gridType;
+};
+
+struct CV_EXPORTS_W_SIMPLE CirclesGridFinderParameters2 : public CirclesGridFinderParameters
+{
+ CV_WRAP CirclesGridFinderParameters2();
+
+ CV_PROP_RW float squareSize; //!< Distance between two adjacent points. Used by CALIB_CB_CLUSTERING.
+ CV_PROP_RW float maxRectifiedDistance; //!< Max deviation from predicion. Used by CALIB_CB_CLUSTERING.
+};
+
/** @brief Finds centers in the grid of circles.
@param image grid view of input circles; it must be an 8-bit grayscale or color image.
@@ -672,6 +924,7 @@ CV_EXPORTS_W void drawChessboardCorners( InputOutputArray image, Size patternSiz
- **CALIB_CB_CLUSTERING** uses a special algorithm for grid detection. It is more robust to
perspective distortions but much more sensitive to background clutter.
@param blobDetector feature detector that finds blobs like dark circles on light background.
+@param parameters struct for finding circles in a grid pattern.
The function attempts to determine whether the input image contains a grid of circles. If it is, the
function locates centers of the circles. The function returns a non-zero value if all of the centers
@@ -691,6 +944,18 @@ Sample usage of detecting and drawing the centers of circles: :
@note The function requires white space (like a square-thick border, the wider the better) around
the board to make the detection more robust in various environments.
*/
+CV_EXPORTS_W bool findCirclesGrid( InputArray image, Size patternSize,
+ OutputArray centers, int flags,
+ const Ptr &blobDetector,
+ CirclesGridFinderParameters parameters);
+
+/** @overload */
+CV_EXPORTS_W bool findCirclesGrid2( InputArray image, Size patternSize,
+ OutputArray centers, int flags,
+ const Ptr &blobDetector,
+ CirclesGridFinderParameters2 parameters);
+
+/** @overload */
CV_EXPORTS_W bool findCirclesGrid( InputArray image, Size patternSize,
OutputArray centers, int flags = CALIB_CB_SYMMETRIC_GRID,
const Ptr &blobDetector = SimpleBlobDetector::create());
@@ -715,35 +980,44 @@ together.
@param imageSize Size of the image used only to initialize the intrinsic camera matrix.
@param cameraMatrix Output 3x3 floating-point camera matrix
\f$A = \vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\f$ . If CV\_CALIB\_USE\_INTRINSIC\_GUESS
-and/or CV_CALIB_FIX_ASPECT_RATIO are specified, some or all of fx, fy, cx, cy must be
+and/or CALIB_FIX_ASPECT_RATIO are specified, some or all of fx, fy, cx, cy must be
initialized before calling the function.
@param distCoeffs Output vector of distortion coefficients
-\f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6],[s_1, s_2, s_3, s_4]])\f$ of 4, 5, 8 or 12 elements.
+\f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6 [, s_1, s_2, s_3, s_4[, \tau_x, \tau_y]]]])\f$ of
+4, 5, 8, 12 or 14 elements.
@param rvecs Output vector of rotation vectors (see Rodrigues ) estimated for each pattern view
(e.g. std::vector>). That is, each k-th rotation vector together with the corresponding
k-th translation vector (see the next output parameter description) brings the calibration pattern
from the model coordinate space (in which object points are specified) to the world coordinate
space, that is, a real position of the calibration pattern in the k-th pattern view (k=0.. *M* -1).
@param tvecs Output vector of translation vectors estimated for each pattern view.
+@param stdDeviationsIntrinsics Output vector of standard deviations estimated for intrinsic parameters.
+ Order of deviations values:
+\f$(f_x, f_y, c_x, c_y, k_1, k_2, p_1, p_2, k_3, k_4, k_5, k_6 , s_1, s_2, s_3,
+ s_4, \tau_x, \tau_y)\f$ If one of parameters is not estimated, it's deviation is equals to zero.
+@param stdDeviationsExtrinsics Output vector of standard deviations estimated for extrinsic parameters.
+ Order of deviations values: \f$(R_1, T_1, \dotsc , R_M, T_M)\f$ where M is number of pattern views,
+ \f$R_i, T_i\f$ are concatenated 1x3 vectors.
+ @param perViewErrors Output vector of the RMS re-projection error estimated for each pattern view.
@param flags Different flags that may be zero or a combination of the following values:
-- **CV_CALIB_USE_INTRINSIC_GUESS** cameraMatrix contains valid initial values of
+- **CALIB_USE_INTRINSIC_GUESS** cameraMatrix contains valid initial values of
fx, fy, cx, cy that are optimized further. Otherwise, (cx, cy) is initially set to the image
center ( imageSize is used), and focal distances are computed in a least-squares fashion.
Note, that if intrinsic parameters are known, there is no need to use this function just to
estimate extrinsic parameters. Use solvePnP instead.
-- **CV_CALIB_FIX_PRINCIPAL_POINT** The principal point is not changed during the global
+- **CALIB_FIX_PRINCIPAL_POINT** The principal point is not changed during the global
optimization. It stays at the center or at a different location specified when
-CV_CALIB_USE_INTRINSIC_GUESS is set too.
-- **CV_CALIB_FIX_ASPECT_RATIO** The functions considers only fy as a free parameter. The
+CALIB_USE_INTRINSIC_GUESS is set too.
+- **CALIB_FIX_ASPECT_RATIO** The functions considers only fy as a free parameter. The
ratio fx/fy stays the same as in the input cameraMatrix . When
-CV_CALIB_USE_INTRINSIC_GUESS is not set, the actual input values of fx and fy are
+CALIB_USE_INTRINSIC_GUESS is not set, the actual input values of fx and fy are
ignored, only their ratio is computed and used further.
-- **CV_CALIB_ZERO_TANGENT_DIST** Tangential distortion coefficients \f$(p_1, p_2)\f$ are set
+- **CALIB_ZERO_TANGENT_DIST** Tangential distortion coefficients \f$(p_1, p_2)\f$ are set
to zeros and stay zero.
-- **CV_CALIB_FIX_K1,...,CV_CALIB_FIX_K6** The corresponding radial distortion
-coefficient is not changed during the optimization. If CV_CALIB_USE_INTRINSIC_GUESS is
+- **CALIB_FIX_K1,...,CALIB_FIX_K6** The corresponding radial distortion
+coefficient is not changed during the optimization. If CALIB_USE_INTRINSIC_GUESS is
set, the coefficient from the supplied distCoeffs matrix is used. Otherwise, it is set to 0.
-- **CV_CALIB_RATIONAL_MODEL** Coefficients k4, k5, and k6 are enabled. To provide the
+- **CALIB_RATIONAL_MODEL** Coefficients k4, k5, and k6 are enabled. To provide the
backward compatibility, this extra flag should be explicitly specified to make the
calibration function use the rational model and return 8 coefficients. If the flag is not
set, the function computes and returns only 5 distortion coefficients.
@@ -752,17 +1026,26 @@ backward compatibility, this extra flag should be explicitly specified to make t
calibration function use the thin prism model and return 12 coefficients. If the flag is not
set, the function computes and returns only 5 distortion coefficients.
- **CALIB_FIX_S1_S2_S3_S4** The thin prism distortion coefficients are not changed during
-the optimization. If CV_CALIB_USE_INTRINSIC_GUESS is set, the coefficient from the
+the optimization. If CALIB_USE_INTRINSIC_GUESS is set, the coefficient from the
+supplied distCoeffs matrix is used. Otherwise, it is set to 0.
+- **CALIB_TILTED_MODEL** Coefficients tauX and tauY are enabled. To provide the
+backward compatibility, this extra flag should be explicitly specified to make the
+calibration function use the tilted sensor model and return 14 coefficients. If the flag is not
+set, the function computes and returns only 5 distortion coefficients.
+- **CALIB_FIX_TAUX_TAUY** The coefficients of the tilted sensor model are not changed during
+the optimization. If CALIB_USE_INTRINSIC_GUESS is set, the coefficient from the
supplied distCoeffs matrix is used. Otherwise, it is set to 0.
@param criteria Termination criteria for the iterative optimization algorithm.
+@return the overall RMS re-projection error.
+
The function estimates the intrinsic camera parameters and extrinsic parameters for each of the
views. The algorithm is based on @cite Zhang2000 and @cite BouguetMCT . The coordinates of 3D object
points and their corresponding 2D projections in each view must be specified. That may be achieved
by using an object with a known geometry and easily detectable feature points. Such an object is
called a calibration rig or calibration pattern, and OpenCV has built-in support for a chessboard as
a calibration rig (see findChessboardCorners ). Currently, initialization of intrinsic parameters
-(when CV_CALIB_USE_INTRINSIC_GUESS is not set) is only implemented for planar calibration
+(when CALIB_USE_INTRINSIC_GUESS is not set) is only implemented for planar calibration
patterns (where Z-coordinates of the object points must be all zeros). 3D calibration rigs can also
be used as long as initial cameraMatrix is provided.
@@ -770,7 +1053,7 @@ The algorithm performs the following steps:
- Compute the initial intrinsic parameters (the option only available for planar calibration
patterns) or read them from the input parameters. The distortion coefficients are all set to
- zeros initially unless some of CV_CALIB_FIX_K? are specified.
+ zeros initially unless some of CALIB_FIX_K? are specified.
- Estimate the initial camera pose as if the intrinsic parameters have been already known. This is
done using solvePnP .
@@ -780,8 +1063,6 @@ The algorithm performs the following steps:
the projected (using the current estimates for camera parameters and the poses) object points
objectPoints. See projectPoints for details.
-The function returns the final re-projection error.
-
@note
If you use a non-square (=non-NxN) grid and findChessboardCorners for calibration, and
calibrateCamera returns bad values (zero distortion coefficients, an image center very far from
@@ -792,6 +1073,24 @@ The function returns the final re-projection error.
@sa
findChessboardCorners, solvePnP, initCameraMatrix2D, stereoCalibrate, undistort
*/
+CV_EXPORTS_AS(calibrateCameraExtended) double calibrateCamera( InputArrayOfArrays objectPoints,
+ InputArrayOfArrays imagePoints, Size imageSize,
+ InputOutputArray cameraMatrix, InputOutputArray distCoeffs,
+ OutputArrayOfArrays rvecs, OutputArrayOfArrays tvecs,
+ OutputArray stdDeviationsIntrinsics,
+ OutputArray stdDeviationsExtrinsics,
+ OutputArray perViewErrors,
+ int flags = 0, TermCriteria criteria = TermCriteria(
+ TermCriteria::COUNT + TermCriteria::EPS, 30, DBL_EPSILON) );
+
+/** @overload double calibrateCamera( InputArrayOfArrays objectPoints,
+ InputArrayOfArrays imagePoints, Size imageSize,
+ InputOutputArray cameraMatrix, InputOutputArray distCoeffs,
+ OutputArrayOfArrays rvecs, OutputArrayOfArrays tvecs,
+ OutputArray stdDeviations, OutputArray perViewErrors,
+ int flags = 0, TermCriteria criteria = TermCriteria(
+ TermCriteria::COUNT + TermCriteria::EPS, 30, DBL_EPSILON) )
+ */
CV_EXPORTS_W double calibrateCamera( InputArrayOfArrays objectPoints,
InputArrayOfArrays imagePoints, Size imageSize,
InputOutputArray cameraMatrix, InputOutputArray distCoeffs,
@@ -834,12 +1133,12 @@ observed by the first camera.
observed by the second camera.
@param cameraMatrix1 Input/output first camera matrix:
\f$\vecthreethree{f_x^{(j)}}{0}{c_x^{(j)}}{0}{f_y^{(j)}}{c_y^{(j)}}{0}{0}{1}\f$ , \f$j = 0,\, 1\f$ . If
-any of CV_CALIB_USE_INTRINSIC_GUESS , CV_CALIB_FIX_ASPECT_RATIO ,
-CV_CALIB_FIX_INTRINSIC , or CV_CALIB_FIX_FOCAL_LENGTH are specified, some or all of the
+any of CALIB_USE_INTRINSIC_GUESS , CALIB_FIX_ASPECT_RATIO ,
+CALIB_FIX_INTRINSIC , or CALIB_FIX_FOCAL_LENGTH are specified, some or all of the
matrix components must be initialized. See the flags description for details.
@param distCoeffs1 Input/output vector of distortion coefficients
-\f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6],[s_1, s_2, s_3, s_4]])\f$ of 4, 5, 8 ot 12 elements. The
-output vector length depends on the flags.
+\f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6 [, s_1, s_2, s_3, s_4[, \tau_x, \tau_y]]]])\f$ of
+4, 5, 8, 12 or 14 elements. The output vector length depends on the flags.
@param cameraMatrix2 Input/output second camera matrix. The parameter is similar to cameraMatrix1
@param distCoeffs2 Input/output lens distortion coefficients for the second camera. The parameter
is similar to distCoeffs1 .
@@ -848,22 +1147,25 @@ is similar to distCoeffs1 .
@param T Output translation vector between the coordinate systems of the cameras.
@param E Output essential matrix.
@param F Output fundamental matrix.
+@param perViewErrors Output vector of the RMS re-projection error estimated for each pattern view.
@param flags Different flags that may be zero or a combination of the following values:
-- **CV_CALIB_FIX_INTRINSIC** Fix cameraMatrix? and distCoeffs? so that only R, T, E , and F
+- **CALIB_FIX_INTRINSIC** Fix cameraMatrix? and distCoeffs? so that only R, T, E , and F
matrices are estimated.
-- **CV_CALIB_USE_INTRINSIC_GUESS** Optimize some or all of the intrinsic parameters
+- **CALIB_USE_INTRINSIC_GUESS** Optimize some or all of the intrinsic parameters
according to the specified flags. Initial values are provided by the user.
-- **CV_CALIB_FIX_PRINCIPAL_POINT** Fix the principal points during the optimization.
-- **CV_CALIB_FIX_FOCAL_LENGTH** Fix \f$f^{(j)}_x\f$ and \f$f^{(j)}_y\f$ .
-- **CV_CALIB_FIX_ASPECT_RATIO** Optimize \f$f^{(j)}_y\f$ . Fix the ratio \f$f^{(j)}_x/f^{(j)}_y\f$
+- **CALIB_USE_EXTRINSIC_GUESS** R, T contain valid initial values that are optimized further.
+Otherwise R, T are initialized to the median value of the pattern views (each dimension separately).
+- **CALIB_FIX_PRINCIPAL_POINT** Fix the principal points during the optimization.
+- **CALIB_FIX_FOCAL_LENGTH** Fix \f$f^{(j)}_x\f$ and \f$f^{(j)}_y\f$ .
+- **CALIB_FIX_ASPECT_RATIO** Optimize \f$f^{(j)}_y\f$ . Fix the ratio \f$f^{(j)}_x/f^{(j)}_y\f$
.
-- **CV_CALIB_SAME_FOCAL_LENGTH** Enforce \f$f^{(0)}_x=f^{(1)}_x\f$ and \f$f^{(0)}_y=f^{(1)}_y\f$ .
-- **CV_CALIB_ZERO_TANGENT_DIST** Set tangential distortion coefficients for each camera to
+- **CALIB_SAME_FOCAL_LENGTH** Enforce \f$f^{(0)}_x=f^{(1)}_x\f$ and \f$f^{(0)}_y=f^{(1)}_y\f$ .
+- **CALIB_ZERO_TANGENT_DIST** Set tangential distortion coefficients for each camera to
zeros and fix there.
-- **CV_CALIB_FIX_K1,...,CV_CALIB_FIX_K6** Do not change the corresponding radial
-distortion coefficient during the optimization. If CV_CALIB_USE_INTRINSIC_GUESS is set,
+- **CALIB_FIX_K1,...,CALIB_FIX_K6** Do not change the corresponding radial
+distortion coefficient during the optimization. If CALIB_USE_INTRINSIC_GUESS is set,
the coefficient from the supplied distCoeffs matrix is used. Otherwise, it is set to 0.
-- **CV_CALIB_RATIONAL_MODEL** Enable coefficients k4, k5, and k6. To provide the backward
+- **CALIB_RATIONAL_MODEL** Enable coefficients k4, k5, and k6. To provide the backward
compatibility, this extra flag should be explicitly specified to make the calibration
function use the rational model and return 8 coefficients. If the flag is not set, the
function computes and returns only 5 distortion coefficients.
@@ -872,7 +1174,14 @@ backward compatibility, this extra flag should be explicitly specified to make t
calibration function use the thin prism model and return 12 coefficients. If the flag is not
set, the function computes and returns only 5 distortion coefficients.
- **CALIB_FIX_S1_S2_S3_S4** The thin prism distortion coefficients are not changed during
-the optimization. If CV_CALIB_USE_INTRINSIC_GUESS is set, the coefficient from the
+the optimization. If CALIB_USE_INTRINSIC_GUESS is set, the coefficient from the
+supplied distCoeffs matrix is used. Otherwise, it is set to 0.
+- **CALIB_TILTED_MODEL** Coefficients tauX and tauY are enabled. To provide the
+backward compatibility, this extra flag should be explicitly specified to make the
+calibration function use the tilted sensor model and return 14 coefficients. If the flag is not
+set, the function computes and returns only 5 distortion coefficients.
+- **CALIB_FIX_TAUX_TAUY** The coefficients of the tilted sensor model are not changed during
+the optimization. If CALIB_USE_INTRINSIC_GUESS is set, the coefficient from the
supplied distCoeffs matrix is used. Otherwise, it is set to 0.
@param criteria Termination criteria for the iterative optimization algorithm.
@@ -884,8 +1193,8 @@ This means that, given ( \f$R_1\f$,\f$T_1\f$ ), it should be possible to compute
need to know the position and orientation of the second camera relative to the first camera. This is
what the described function does. It computes ( \f$R\f$,\f$T\f$ ) so that:
-\f[R_2=R*R_1
-T_2=R*T_1 + T,\f]
+\f[R_2=R*R_1\f]
+\f[T_2=R*T_1 + T,\f]
Optionally, it computes the essential matrix E:
@@ -900,16 +1209,25 @@ Besides the stereo-related information, the function can also perform a full cal
two cameras. However, due to the high dimensionality of the parameter space and noise in the input
data, the function can diverge from the correct solution. If the intrinsic parameters can be
estimated with high accuracy for each of the cameras individually (for example, using
-calibrateCamera ), you are recommended to do so and then pass CV_CALIB_FIX_INTRINSIC flag to the
+calibrateCamera ), you are recommended to do so and then pass CALIB_FIX_INTRINSIC flag to the
function along with the computed intrinsic parameters. Otherwise, if all the parameters are
estimated at once, it makes sense to restrict some parameters, for example, pass
-CV_CALIB_SAME_FOCAL_LENGTH and CV_CALIB_ZERO_TANGENT_DIST flags, which is usually a
+CALIB_SAME_FOCAL_LENGTH and CALIB_ZERO_TANGENT_DIST flags, which is usually a
reasonable assumption.
Similarly to calibrateCamera , the function minimizes the total re-projection error for all the
points in all the available views from both cameras. The function returns the final value of the
re-projection error.
*/
+CV_EXPORTS_AS(stereoCalibrateExtended) double stereoCalibrate( InputArrayOfArrays objectPoints,
+ InputArrayOfArrays imagePoints1, InputArrayOfArrays imagePoints2,
+ InputOutputArray cameraMatrix1, InputOutputArray distCoeffs1,
+ InputOutputArray cameraMatrix2, InputOutputArray distCoeffs2,
+ Size imageSize, InputOutputArray R,InputOutputArray T, OutputArray E, OutputArray F,
+ OutputArray perViewErrors, int flags = CALIB_FIX_INTRINSIC,
+ TermCriteria criteria = TermCriteria(TermCriteria::COUNT+TermCriteria::EPS, 30, 1e-6) );
+
+/// @overload
CV_EXPORTS_W double stereoCalibrate( InputArrayOfArrays objectPoints,
InputArrayOfArrays imagePoints1, InputArrayOfArrays imagePoints2,
InputOutputArray cameraMatrix1, InputOutputArray distCoeffs1,
@@ -918,12 +1236,11 @@ CV_EXPORTS_W double stereoCalibrate( InputArrayOfArrays objectPoints,
int flags = CALIB_FIX_INTRINSIC,
TermCriteria criteria = TermCriteria(TermCriteria::COUNT+TermCriteria::EPS, 30, 1e-6) );
-
/** @brief Computes rectification transforms for each head of a calibrated stereo camera.
@param cameraMatrix1 First camera matrix.
-@param cameraMatrix2 Second camera matrix.
@param distCoeffs1 First camera distortion parameters.
+@param cameraMatrix2 Second camera matrix.
@param distCoeffs2 Second camera distortion parameters.
@param imageSize Size of the image used for stereo calibration.
@param R Rotation matrix between the coordinate systems of the first and the second cameras.
@@ -935,7 +1252,7 @@ camera.
@param P2 Output 3x4 projection matrix in the new (rectified) coordinate systems for the second
camera.
@param Q Output \f$4 \times 4\f$ disparity-to-depth mapping matrix (see reprojectImageTo3D ).
-@param flags Operation flags that may be zero or CV_CALIB_ZERO_DISPARITY . If the flag is set,
+@param flags Operation flags that may be zero or CALIB_ZERO_DISPARITY . If the flag is set,
the function makes the principal points of each camera have the same pixel coordinates in the
rectified views. And if the flag is not set, the function may still shift the images in the
horizontal or vertical direction (depending on the orientation of epipolar lines) to maximize the
@@ -974,7 +1291,7 @@ coordinates. The function distinguishes the following two cases:
\f[\texttt{P2} = \begin{bmatrix} f & 0 & cx_2 & T_x*f \\ 0 & f & cy & 0 \\ 0 & 0 & 1 & 0 \end{bmatrix} ,\f]
where \f$T_x\f$ is a horizontal shift between the cameras and \f$cx_1=cx_2\f$ if
- CV_CALIB_ZERO_DISPARITY is set.
+ CALIB_ZERO_DISPARITY is set.
- **Vertical stereo**: the first and the second camera views are shifted relative to each other
mainly in vertical direction (and probably a bit in the horizontal direction too). The epipolar
@@ -1020,7 +1337,7 @@ findFundamentalMat .
@param threshold Optional threshold used to filter out the outliers. If the parameter is greater
than zero, all the point pairs that do not comply with the epipolar geometry (that is, the points
for which \f$|\texttt{points2[i]}^T*\texttt{F}*\texttt{points1[i]}|>\texttt{threshold}\f$ ) are
-rejected prior to computing the homographies. Otherwise,all the points are considered inliers.
+rejected prior to computing the homographies. Otherwise, all the points are considered inliers.
The function computes the rectification transformations without knowing intrinsic parameters of the
cameras and their relative position in the space, which explains the suffix "uncalibrated". Another
@@ -1057,13 +1374,14 @@ CV_EXPORTS_W float rectify3Collinear( InputArray cameraMatrix1, InputArray distC
@param cameraMatrix Input camera matrix.
@param distCoeffs Input vector of distortion coefficients
-\f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6],[s_1, s_2, s_3, s_4]])\f$ of 4, 5, 8 or 12 elements. If
-the vector is NULL/empty, the zero distortion coefficients are assumed.
+\f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6 [, s_1, s_2, s_3, s_4[, \tau_x, \tau_y]]]])\f$ of
+4, 5, 8, 12 or 14 elements. If the vector is NULL/empty, the zero distortion coefficients are
+assumed.
@param imageSize Original image size.
@param alpha Free scaling parameter between 0 (when all the pixels in the undistorted image are
valid) and 1 (when all the source image pixels are retained in the undistorted image). See
stereoRectify for details.
-@param newImgSize Image size after rectification. By default,it is set to imageSize .
+@param newImgSize Image size after rectification. By default, it is set to imageSize .
@param validPixROI Optional output rectangle that outlines all-good-pixels region in the
undistorted image. See roi1, roi2 description in stereoRectify .
@param centerPrincipalPoint Optional flag that indicates whether in the new camera matrix the
@@ -1074,7 +1392,7 @@ best fit a subset of the source image (determined by alpha) to the corrected ima
The function computes and returns the optimal new camera matrix based on the free scaling parameter.
By varying this parameter, you may retrieve only sensible pixels alpha=0 , keep all the original
image pixels if there is valuable information in the corners alpha=1 , or get something in between.
-When alpha\>0 , the undistortion result is likely to have some black pixels corresponding to
+When alpha\>0 , the undistorted result is likely to have some black pixels corresponding to
"virtual" pixels outside of the captured distorted image. The original camera matrix, distortion
coefficients, the computed new camera matrix, and newImageSize should be passed to
initUndistortRectifyMap to produce the maps for remap .
@@ -1127,11 +1445,11 @@ floating-point (single or double precision).
- **CV_FM_8POINT** for an 8-point algorithm. \f$N \ge 8\f$
- **CV_FM_RANSAC** for the RANSAC algorithm. \f$N \ge 8\f$
- **CV_FM_LMEDS** for the LMedS algorithm. \f$N \ge 8\f$
-@param param1 Parameter used for RANSAC. It is the maximum distance from a point to an epipolar
+@param ransacReprojThreshold Parameter used only for RANSAC. It is the maximum distance from a point to an epipolar
line in pixels, beyond which the point is considered an outlier and is not used for computing the
final fundamental matrix. It can be set to something like 1-3, depending on the accuracy of the
point localization, image resolution, and the image noise.
-@param param2 Parameter used for the RANSAC or LMedS methods only. It specifies a desirable level
+@param confidence Parameter used for the RANSAC and LMedS methods only. It specifies a desirable level
of confidence (probability) that the estimated matrix is correct.
@param mask
@@ -1169,25 +1487,58 @@ stereoRectifyUncalibrated to compute the rectification transformation. :
*/
CV_EXPORTS_W Mat findFundamentalMat( InputArray points1, InputArray points2,
int method = FM_RANSAC,
- double param1 = 3., double param2 = 0.99,
+ double ransacReprojThreshold = 3., double confidence = 0.99,
OutputArray mask = noArray() );
/** @overload */
CV_EXPORTS Mat findFundamentalMat( InputArray points1, InputArray points2,
OutputArray mask, int method = FM_RANSAC,
- double param1 = 3., double param2 = 0.99 );
+ double ransacReprojThreshold = 3., double confidence = 0.99 );
/** @brief Calculates an essential matrix from the corresponding points in two images.
+@param points1 Array of N (N \>= 5) 2D points from the first image. The point coordinates should
+be floating-point (single or double precision).
+@param points2 Array of the second image points of the same size and format as points1 .
+@param cameraMatrix Camera matrix \f$K = \vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\f$ .
+Note that this function assumes that points1 and points2 are feature points from cameras with the
+same camera matrix.
+@param method Method for computing an essential matrix.
+- **RANSAC** for the RANSAC algorithm.
+- **LMEDS** for the LMedS algorithm.
+@param prob Parameter used for the RANSAC or LMedS methods only. It specifies a desirable level of
+confidence (probability) that the estimated matrix is correct.
+@param threshold Parameter used for RANSAC. It is the maximum distance from a point to an epipolar
+line in pixels, beyond which the point is considered an outlier and is not used for computing the
+final fundamental matrix. It can be set to something like 1-3, depending on the accuracy of the
+point localization, image resolution, and the image noise.
+@param mask Output array of N elements, every element of which is set to 0 for outliers and to 1
+for the other points. The array is computed only in the RANSAC and LMedS methods.
+
+This function estimates essential matrix based on the five-point algorithm solver in @cite Nister03 .
+@cite SteweniusCFS is also a related. The epipolar geometry is described by the following equation:
+
+\f[[p_2; 1]^T K^{-T} E K^{-1} [p_1; 1] = 0\f]
+
+where \f$E\f$ is an essential matrix, \f$p_1\f$ and \f$p_2\f$ are corresponding points in the first and the
+second images, respectively. The result of this function may be passed further to
+decomposeEssentialMat or recoverPose to recover the relative pose between cameras.
+ */
+CV_EXPORTS_W Mat findEssentialMat( InputArray points1, InputArray points2,
+ InputArray cameraMatrix, int method = RANSAC,
+ double prob = 0.999, double threshold = 1.0,
+ OutputArray mask = noArray() );
+
+/** @overload
@param points1 Array of N (N \>= 5) 2D points from the first image. The point coordinates should
be floating-point (single or double precision).
@param points2 Array of the second image points of the same size and format as points1 .
@param focal focal length of the camera. Note that this function assumes that points1 and points2
-are feature points from cameras with same focal length and principle point.
-@param pp principle point of the camera.
+are feature points from cameras with same focal length and principal point.
+@param pp principal point of the camera.
@param method Method for computing a fundamental matrix.
- **RANSAC** for the RANSAC algorithm.
-- **MEDS** for the LMedS algorithm.
+- **LMEDS** for the LMedS algorithm.
@param threshold Parameter used for RANSAC. It is the maximum distance from a point to an epipolar
line in pixels, beyond which the point is considered an outlier and is not used for computing the
final fundamental matrix. It can be set to something like 1-3, depending on the accuracy of the
@@ -1197,19 +1548,15 @@ confidence (probability) that the estimated matrix is correct.
@param mask Output array of N elements, every element of which is set to 0 for outliers and to 1
for the other points. The array is computed only in the RANSAC and LMedS methods.
-This function estimates essential matrix based on the five-point algorithm solver in @cite Nister03 .
-@cite SteweniusCFS is also a related. The epipolar geometry is described by the following equation:
+This function differs from the one above that it computes camera matrix from focal length and
+principal point:
-\f[[p_2; 1]^T K^{-T} E K^{-1} [p_1; 1] = 0 \\\f]\f[K =
+\f[K =
\begin{bmatrix}
f & 0 & x_{pp} \\
0 & f & y_{pp} \\
0 & 0 & 1
\end{bmatrix}\f]
-
-where \f$E\f$ is an essential matrix, \f$p_1\f$ and \f$p_2\f$ are corresponding points in the first and the
-second images, respectively. The result of this function may be passed further to
-decomposeEssentialMat or recoverPose to recover the relative pose between cameras.
*/
CV_EXPORTS_W Mat findEssentialMat( InputArray points1, InputArray points2,
double focal = 1.0, Point2d pp = Point2d(0, 0),
@@ -1237,11 +1584,11 @@ the check.
@param points1 Array of N 2D points from the first image. The point coordinates should be
floating-point (single or double precision).
@param points2 Array of the second image points of the same size and format as points1 .
+@param cameraMatrix Camera matrix \f$K = \vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\f$ .
+Note that this function assumes that points1 and points2 are feature points from cameras with the
+same camera matrix.
@param R Recovered relative rotation.
-@param t Recoverd relative translation.
-@param focal Focal length of the camera. Note that this function assumes that points1 and points2
-are feature points from cameras with same focal length and principle point.
-@param pp Principle point of the camera.
+@param t Recovered relative translation.
@param mask Input/output mask for inliers in points1 and points2.
: If it is not empty, then it marks inliers in points1 and points2 for then given essential
matrix E. Only these inliers will be used to recover pose. In the output mask only inliers
@@ -1265,19 +1612,70 @@ points1 and points2 are the same input for findEssentialMat. :
points2[i] = ...;
}
- double focal = 1.0;
- cv::Point2d pp(0.0, 0.0);
+ // cametra matrix with both focal lengths = 1, and principal point = (0, 0)
+ Mat cameraMatrix = Mat::eye(3, 3, CV_64F);
+
Mat E, R, t, mask;
- E = findEssentialMat(points1, points2, focal, pp, RANSAC, 0.999, 1.0, mask);
- recoverPose(E, points1, points2, R, t, focal, pp, mask);
+ E = findEssentialMat(points1, points2, cameraMatrix, RANSAC, 0.999, 1.0, mask);
+ recoverPose(E, points1, points2, cameraMatrix, R, t, mask);
@endcode
*/
+CV_EXPORTS_W int recoverPose( InputArray E, InputArray points1, InputArray points2,
+ InputArray cameraMatrix, OutputArray R, OutputArray t,
+ InputOutputArray mask = noArray() );
+
+/** @overload
+@param E The input essential matrix.
+@param points1 Array of N 2D points from the first image. The point coordinates should be
+floating-point (single or double precision).
+@param points2 Array of the second image points of the same size and format as points1 .
+@param R Recovered relative rotation.
+@param t Recovered relative translation.
+@param focal Focal length of the camera. Note that this function assumes that points1 and points2
+are feature points from cameras with same focal length and principal point.
+@param pp principal point of the camera.
+@param mask Input/output mask for inliers in points1 and points2.
+: If it is not empty, then it marks inliers in points1 and points2 for then given essential
+matrix E. Only these inliers will be used to recover pose. In the output mask only inliers
+which pass the cheirality check.
+
+This function differs from the one above that it computes camera matrix from focal length and
+principal point:
+
+\f[K =
+\begin{bmatrix}
+f & 0 & x_{pp} \\
+0 & f & y_{pp} \\
+0 & 0 & 1
+\end{bmatrix}\f]
+ */
CV_EXPORTS_W int recoverPose( InputArray E, InputArray points1, InputArray points2,
OutputArray R, OutputArray t,
double focal = 1.0, Point2d pp = Point2d(0, 0),
InputOutputArray mask = noArray() );
+/** @overload
+@param E The input essential matrix.
+@param points1 Array of N 2D points from the first image. The point coordinates should be
+floating-point (single or double precision).
+@param points2 Array of the second image points of the same size and format as points1.
+@param cameraMatrix Camera matrix \f$K = \vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\f$ .
+Note that this function assumes that points1 and points2 are feature points from cameras with the
+same camera matrix.
+@param R Recovered relative rotation.
+@param t Recovered relative translation.
+@param distanceThresh threshold distance which is used to filter out far away points (i.e. infinite points).
+@param mask Input/output mask for inliers in points1 and points2.
+: If it is not empty, then it marks inliers in points1 and points2 for then given essential
+matrix E. Only these inliers will be used to recover pose. In the output mask only inliers
+which pass the cheirality check.
+@param triangulatedPoints 3d points which were reconstructed by triangulation.
+ */
+
+CV_EXPORTS_W int recoverPose( InputArray E, InputArray points1, InputArray points2,
+ InputArray cameraMatrix, OutputArray R, OutputArray t, double distanceThresh, InputOutputArray mask = noArray(),
+ OutputArray triangulatedPoints = noArray());
/** @brief For points in an image of a stereo pair, computes the corresponding epilines in the other image.
@@ -1375,7 +1773,8 @@ CV_EXPORTS_W void validateDisparity( InputOutputArray disparity, InputArray cost
/** @brief Reprojects a disparity image to 3D space.
@param disparity Input single-channel 8-bit unsigned, 16-bit signed, 32-bit signed or 32-bit
-floating-point disparity image.
+floating-point disparity image. If 16-bit signed format is used, the values are assumed to have no
+fractional bits.
@param _3dImage Output 3-channel floating-point image of the same size as disparity . Each
element of _3dImage(x,y) contains 3D coordinates of the point (x,y) computed from the disparity
map.
@@ -1388,7 +1787,7 @@ to 3D points with a very large Z value (currently set to 10000).
depth. ddepth can also be set to CV_16S, CV_32S or CV_32F.
The function transforms a single-channel disparity map to a 3-channel image representing a 3D
-surface. That is, for each pixel (x,y) andthe corresponding disparity d=disparity(x,y) , it
+surface. That is, for each pixel (x,y) and the corresponding disparity d=disparity(x,y) , it
computes:
\f[\begin{array}{l} [X \; Y \; Z \; W]^T = \texttt{Q} *[x \; y \; \texttt{disparity} (x,y) \; 1]^T \\ \texttt{\_3dImage} (x,y) = (X/W, \; Y/W, \; Z/W) \end{array}\f]
@@ -1402,12 +1801,64 @@ CV_EXPORTS_W void reprojectImageTo3D( InputArray disparity,
bool handleMissingValues = false,
int ddepth = -1 );
+/** @brief Calculates the Sampson Distance between two points.
+
+The function cv::sampsonDistance calculates and returns the first order approximation of the geometric error as:
+\f[
+sd( \texttt{pt1} , \texttt{pt2} )=
+\frac{(\texttt{pt2}^t \cdot \texttt{F} \cdot \texttt{pt1})^2}
+{((\texttt{F} \cdot \texttt{pt1})(0))^2 +
+((\texttt{F} \cdot \texttt{pt1})(1))^2 +
+((\texttt{F}^t \cdot \texttt{pt2})(0))^2 +
+((\texttt{F}^t \cdot \texttt{pt2})(1))^2}
+\f]
+The fundamental matrix may be calculated using the cv::findFundamentalMat function. See @cite HartleyZ00 11.4.3 for details.
+@param pt1 first homogeneous 2d point
+@param pt2 second homogeneous 2d point
+@param F fundamental matrix
+@return The computed Sampson distance.
+*/
+CV_EXPORTS_W double sampsonDistance(InputArray pt1, InputArray pt2, InputArray F);
+
/** @brief Computes an optimal affine transformation between two 3D point sets.
-@param src First input 3D point set.
-@param dst Second input 3D point set.
-@param out Output 3D affine transformation matrix \f$3 \times 4\f$ .
-@param inliers Output vector indicating which points are inliers.
+It computes
+\f[
+\begin{bmatrix}
+x\\
+y\\
+z\\
+\end{bmatrix}
+=
+\begin{bmatrix}
+a_{11} & a_{12} & a_{13}\\
+a_{21} & a_{22} & a_{23}\\
+a_{31} & a_{32} & a_{33}\\
+\end{bmatrix}
+\begin{bmatrix}
+X\\
+Y\\
+Z\\
+\end{bmatrix}
++
+\begin{bmatrix}
+b_1\\
+b_2\\
+b_3\\
+\end{bmatrix}
+\f]
+
+@param src First input 3D point set containing \f$(X,Y,Z)\f$.
+@param dst Second input 3D point set containing \f$(x,y,z)\f$.
+@param out Output 3D affine transformation matrix \f$3 \times 4\f$ of the form
+\f[
+\begin{bmatrix}
+a_{11} & a_{12} & a_{13} & b_1\\
+a_{21} & a_{22} & a_{23} & b_2\\
+a_{31} & a_{32} & a_{33} & b_3\\
+\end{bmatrix}
+\f]
+@param inliers Output vector indicating which points are inliers (1-inlier, 0-outlier).
@param ransacThreshold Maximum reprojection error in the RANSAC algorithm to consider a point as
an inlier.
@param confidence Confidence level, between 0 and 1, for the estimated transformation. Anything
@@ -1421,6 +1872,127 @@ CV_EXPORTS_W int estimateAffine3D(InputArray src, InputArray dst,
OutputArray out, OutputArray inliers,
double ransacThreshold = 3, double confidence = 0.99);
+/** @brief Computes an optimal affine transformation between two 2D point sets.
+
+It computes
+\f[
+\begin{bmatrix}
+x\\
+y\\
+\end{bmatrix}
+=
+\begin{bmatrix}
+a_{11} & a_{12}\\
+a_{21} & a_{22}\\
+\end{bmatrix}
+\begin{bmatrix}
+X\\
+Y\\
+\end{bmatrix}
++
+\begin{bmatrix}
+b_1\\
+b_2\\
+\end{bmatrix}
+\f]
+
+@param from First input 2D point set containing \f$(X,Y)\f$.
+@param to Second input 2D point set containing \f$(x,y)\f$.
+@param inliers Output vector indicating which points are inliers (1-inlier, 0-outlier).
+@param method Robust method used to compute transformation. The following methods are possible:
+- cv::RANSAC - RANSAC-based robust method
+- cv::LMEDS - Least-Median robust method
+RANSAC is the default method.
+@param ransacReprojThreshold Maximum reprojection error in the RANSAC algorithm to consider
+a point as an inlier. Applies only to RANSAC.
+@param maxIters The maximum number of robust method iterations.
+@param confidence Confidence level, between 0 and 1, for the estimated transformation. Anything
+between 0.95 and 0.99 is usually good enough. Values too close to 1 can slow down the estimation
+significantly. Values lower than 0.8-0.9 can result in an incorrectly estimated transformation.
+@param refineIters Maximum number of iterations of refining algorithm (Levenberg-Marquardt).
+Passing 0 will disable refining, so the output matrix will be output of robust method.
+
+@return Output 2D affine transformation matrix \f$2 \times 3\f$ or empty matrix if transformation
+could not be estimated. The returned matrix has the following form:
+\f[
+\begin{bmatrix}
+a_{11} & a_{12} & b_1\\
+a_{21} & a_{22} & b_2\\
+\end{bmatrix}
+\f]
+
+The function estimates an optimal 2D affine transformation between two 2D point sets using the
+selected robust algorithm.
+
+The computed transformation is then refined further (using only inliers) with the
+Levenberg-Marquardt method to reduce the re-projection error even more.
+
+@note
+The RANSAC method can handle practically any ratio of outliers but needs a threshold to
+distinguish inliers from outliers. The method LMeDS does not need any threshold but it works
+correctly only when there are more than 50% of inliers.
+
+@sa estimateAffinePartial2D, getAffineTransform
+*/
+CV_EXPORTS_W cv::Mat estimateAffine2D(InputArray from, InputArray to, OutputArray inliers = noArray(),
+ int method = RANSAC, double ransacReprojThreshold = 3,
+ size_t maxIters = 2000, double confidence = 0.99,
+ size_t refineIters = 10);
+
+/** @brief Computes an optimal limited affine transformation with 4 degrees of freedom between
+two 2D point sets.
+
+@param from First input 2D point set.
+@param to Second input 2D point set.
+@param inliers Output vector indicating which points are inliers.
+@param method Robust method used to compute transformation. The following methods are possible:
+- cv::RANSAC - RANSAC-based robust method
+- cv::LMEDS - Least-Median robust method
+RANSAC is the default method.
+@param ransacReprojThreshold Maximum reprojection error in the RANSAC algorithm to consider
+a point as an inlier. Applies only to RANSAC.
+@param maxIters The maximum number of robust method iterations.
+@param confidence Confidence level, between 0 and 1, for the estimated transformation. Anything
+between 0.95 and 0.99 is usually good enough. Values too close to 1 can slow down the estimation
+significantly. Values lower than 0.8-0.9 can result in an incorrectly estimated transformation.
+@param refineIters Maximum number of iterations of refining algorithm (Levenberg-Marquardt).
+Passing 0 will disable refining, so the output matrix will be output of robust method.
+
+@return Output 2D affine transformation (4 degrees of freedom) matrix \f$2 \times 3\f$ or
+empty matrix if transformation could not be estimated.
+
+The function estimates an optimal 2D affine transformation with 4 degrees of freedom limited to
+combinations of translation, rotation, and uniform scaling. Uses the selected algorithm for robust
+estimation.
+
+The computed transformation is then refined further (using only inliers) with the
+Levenberg-Marquardt method to reduce the re-projection error even more.
+
+Estimated transformation matrix is:
+\f[ \begin{bmatrix} \cos(\theta) \cdot s & -\sin(\theta) \cdot s & t_x \\
+ \sin(\theta) \cdot s & \cos(\theta) \cdot s & t_y
+\end{bmatrix} \f]
+Where \f$ \theta \f$ is the rotation angle, \f$ s \f$ the scaling factor and \f$ t_x, t_y \f$ are
+translations in \f$ x, y \f$ axes respectively.
+
+@note
+The RANSAC method can handle practically any ratio of outliers but need a threshold to
+distinguish inliers from outliers. The method LMeDS does not need any threshold but it works
+correctly only when there are more than 50% of inliers.
+
+@sa estimateAffine2D, getAffineTransform
+*/
+CV_EXPORTS_W cv::Mat estimateAffinePartial2D(InputArray from, InputArray to, OutputArray inliers = noArray(),
+ int method = RANSAC, double ransacReprojThreshold = 3,
+ size_t maxIters = 2000, double confidence = 0.99,
+ size_t refineIters = 10);
+
+/** @example samples/cpp/tutorial_code/features2D/Homography/decompose_homography.cpp
+An example program with homography decomposition.
+
+Check @ref tutorial_homography "the corresponding tutorial" for more details.
+*/
+
/** @brief Decompose a homography matrix to rotation(s), translation(s) and plane normal(s).
@param H The input homography matrix between two images.
@@ -1441,6 +2013,31 @@ CV_EXPORTS_W int decomposeHomographyMat(InputArray H,
OutputArrayOfArrays translations,
OutputArrayOfArrays normals);
+/** @brief Filters homography decompositions based on additional information.
+
+@param rotations Vector of rotation matrices.
+@param normals Vector of plane normal matrices.
+@param beforePoints Vector of (rectified) visible reference points before the homography is applied
+@param afterPoints Vector of (rectified) visible reference points after the homography is applied
+@param possibleSolutions Vector of int indices representing the viable solution set after filtering
+@param pointsMask optional Mat/Vector of 8u type representing the mask for the inliers as given by the findHomography function
+
+This function is intended to filter the output of the decomposeHomographyMat based on additional
+information as described in @cite Malis . The summary of the method: the decomposeHomographyMat function
+returns 2 unique solutions and their "opposites" for a total of 4 solutions. If we have access to the
+sets of points visible in the camera frame before and after the homography transformation is applied,
+we can determine which are the true potential solutions and which are the opposites by verifying which
+homographies are consistent with all visible reference points being in front of the camera. The inputs
+are left unchanged; the filtered solution set is returned as indices into the existing one.
+
+*/
+CV_EXPORTS_W void filterHomographyDecompByVisibleRefpoints(InputArrayOfArrays rotations,
+ InputArrayOfArrays normals,
+ InputArray beforePoints,
+ InputArray afterPoints,
+ OutputArray possibleSolutions,
+ InputArray pointsMask = noArray());
+
/** @brief The base class for stereo correspondence algorithms.
*/
class CV_EXPORTS_W StereoMatcher : public Algorithm
@@ -1547,7 +2144,7 @@ check, quadratic interpolation and speckle filtering).
@note
- (Python) An example illustrating the use of the StereoSGBM matching algorithm can be found
- at opencv_source_code/samples/python2/stereo_match.py
+ at opencv_source_code/samples/python/stereo_match.py
*/
class CV_EXPORTS_W StereoSGBM : public StereoMatcher
{
@@ -1555,7 +2152,9 @@ public:
enum
{
MODE_SGBM = 0,
- MODE_HH = 1
+ MODE_HH = 1,
+ MODE_SGBM_3WAY = 2,
+ MODE_HH4 = 3
};
CV_WRAP virtual int getPreFilterCap() const = 0;
@@ -1610,7 +2209,7 @@ public:
set StereoSGBM::numDisparities at minimum. The second constructor enables you to set each parameter
to a custom value.
*/
- CV_WRAP static Ptr create(int minDisparity, int numDisparities, int blockSize,
+ CV_WRAP static Ptr create(int minDisparity = 0, int numDisparities = 16, int blockSize = 3,
int P1 = 0, int P2 = 0, int disp12MaxDiff = 0,
int preFilterCap = 0, int uniquenessRatio = 0,
int speckleWindowSize = 0, int speckleRange = 0,
@@ -1628,15 +2227,16 @@ namespace fisheye
//! @{
enum{
- CALIB_USE_INTRINSIC_GUESS = 1,
- CALIB_RECOMPUTE_EXTRINSIC = 2,
- CALIB_CHECK_COND = 4,
- CALIB_FIX_SKEW = 8,
- CALIB_FIX_K1 = 16,
- CALIB_FIX_K2 = 32,
- CALIB_FIX_K3 = 64,
- CALIB_FIX_K4 = 128,
- CALIB_FIX_INTRINSIC = 256
+ CALIB_USE_INTRINSIC_GUESS = 1 << 0,
+ CALIB_RECOMPUTE_EXTRINSIC = 1 << 1,
+ CALIB_CHECK_COND = 1 << 2,
+ CALIB_FIX_SKEW = 1 << 3,
+ CALIB_FIX_K1 = 1 << 4,
+ CALIB_FIX_K2 = 1 << 5,
+ CALIB_FIX_K3 = 1 << 6,
+ CALIB_FIX_K4 = 1 << 7,
+ CALIB_FIX_INTRINSIC = 1 << 8,
+ CALIB_FIX_PRINCIPAL_POINT = 1 << 9
};
/** @brief Projects points using fisheye model
@@ -1674,6 +2274,10 @@ namespace fisheye
@param D Input vector of distortion coefficients \f$(k_1, k_2, k_3, k_4)\f$.
@param alpha The skew coefficient.
@param distorted Output array of image points, 1xN/Nx1 2-channel, or vector\ .
+
+ Note that the function assumes the camera matrix of the undistorted points to be identity.
+ This means if you want to transform back points undistorted with undistortPoints() you have to
+ multiply them with \f$P^{-1}\f$.
*/
CV_EXPORTS_W void distortPoints(InputArray undistorted, OutputArray distorted, InputArray K, InputArray D, double alpha = 0);
@@ -1782,8 +2386,10 @@ namespace fisheye
of intrinsic optimization.
- **fisheye::CALIB_CHECK_COND** The functions will check validity of condition number.
- **fisheye::CALIB_FIX_SKEW** Skew coefficient (alpha) is set to zero and stay zero.
- - **fisheye::CALIB_FIX_K1..4** Selected distortion coefficients are set to zeros and stay
- zero.
+ - **fisheye::CALIB_FIX_K1..fisheye::CALIB_FIX_K4** Selected distortion coefficients
+ are set to zeros and stay zero.
+ - **fisheye::CALIB_FIX_PRINCIPAL_POINT** The principal point is not changed during the global
+optimization. It stays at the center or at a different location specified when CALIB_USE_INTRINSIC_GUESS is set too.
@param criteria Termination criteria for the iterative optimization algorithm.
*/
CV_EXPORTS_W double calibrate(InputArrayOfArrays objectPoints, InputArrayOfArrays imagePoints, const Size& image_size,
@@ -1807,7 +2413,7 @@ namespace fisheye
@param P2 Output 3x4 projection matrix in the new (rectified) coordinate systems for the second
camera.
@param Q Output \f$4 \times 4\f$ disparity-to-depth mapping matrix (see reprojectImageTo3D ).
- @param flags Operation flags that may be zero or CV_CALIB_ZERO_DISPARITY . If the flag is set,
+ @param flags Operation flags that may be zero or CALIB_ZERO_DISPARITY . If the flag is set,
the function makes the principal points of each camera have the same pixel coordinates in the
rectified views. And if the flag is not set, the function may still shift the images in the
horizontal or vertical direction (depending on the orientation of epipolar lines) to maximize the
@@ -1833,7 +2439,7 @@ namespace fisheye
observed by the second camera.
@param K1 Input/output first camera matrix:
\f$\vecthreethree{f_x^{(j)}}{0}{c_x^{(j)}}{0}{f_y^{(j)}}{c_y^{(j)}}{0}{0}{1}\f$ , \f$j = 0,\, 1\f$ . If
- any of fisheye::CALIB_USE_INTRINSIC_GUESS , fisheye::CV_CALIB_FIX_INTRINSIC are specified,
+ any of fisheye::CALIB_USE_INTRINSIC_GUESS , fisheye::CALIB_FIX_INTRINSIC are specified,
some or all of the matrix components must be initialized.
@param D1 Input/output vector of distortion coefficients \f$(k_1, k_2, k_3, k_4)\f$ of 4 elements.
@param K2 Input/output second camera matrix. The parameter is similar to K1 .
@@ -1843,7 +2449,7 @@ namespace fisheye
@param R Output rotation matrix between the 1st and the 2nd camera coordinate systems.
@param T Output translation vector between the coordinate systems of the cameras.
@param flags Different flags that may be zero or a combination of the following values:
- - **fisheye::CV_CALIB_FIX_INTRINSIC** Fix K1, K2? and D1, D2? so that only R, T matrices
+ - **fisheye::CALIB_FIX_INTRINSIC** Fix K1, K2? and D1, D2? so that only R, T matrices
are estimated.
- **fisheye::CALIB_USE_INTRINSIC_GUESS** K1, K2 contains valid initial values of
fx, fy, cx, cy that are optimized further. Otherwise, (cx, cy) is initially set to the image
@@ -1862,9 +2468,9 @@ namespace fisheye
TermCriteria criteria = TermCriteria(TermCriteria::COUNT + TermCriteria::EPS, 100, DBL_EPSILON));
//! @} calib3d_fisheye
-}
+} // end namespace fisheye
-} // cv
+} //end namespace cv
#ifndef DISABLE_OPENCV_24_COMPATIBILITY
#include "opencv2/calib3d/calib3d_c.h"
diff --git a/include/opencv2/calib3d/calib3d_c.h b/include/opencv2/calib3d/calib3d_c.h
index 2392692..8ec6390 100644
--- a/include/opencv2/calib3d/calib3d_c.h
+++ b/include/opencv2/calib3d/calib3d_c.h
@@ -41,8 +41,8 @@
//
//M*/
-#ifndef __OPENCV_CALIB3D_C_H__
-#define __OPENCV_CALIB3D_C_H__
+#ifndef OPENCV_CALIB3D_C_H
+#define OPENCV_CALIB3D_C_H
#include "opencv2/core/core_c.h"
@@ -243,7 +243,11 @@ CVAPI(void) cvDrawChessboardCorners( CvArr* image, CvSize pattern_size,
#define CV_CALIB_RATIONAL_MODEL 16384
#define CV_CALIB_THIN_PRISM_MODEL 32768
#define CV_CALIB_FIX_S1_S2_S3_S4 65536
+#define CV_CALIB_TILTED_MODEL 262144
+#define CV_CALIB_FIX_TAUX_TAUY 524288
+#define CV_CALIB_FIX_TANGENT_DIST 2097152
+#define CV_CALIB_NINTRINSIC 18
/* Finds intrinsic and extrinsic camera parameters
from a few views of known calibration pattern */
@@ -415,8 +419,9 @@ public:
int state;
int iters;
bool completeSymmFlag;
+ int solveMethod;
};
#endif
-#endif /* __OPENCV_CALIB3D_C_H__ */
+#endif /* OPENCV_CALIB3D_C_H */
diff --git a/include/opencv2/core.hpp b/include/opencv2/core.hpp
index 6594476..089c0db 100644
--- a/include/opencv2/core.hpp
+++ b/include/opencv2/core.hpp
@@ -42,8 +42,8 @@
//
//M*/
-#ifndef __OPENCV_CORE_HPP__
-#define __OPENCV_CORE_HPP__
+#ifndef OPENCV_CORE_HPP
+#define OPENCV_CORE_HPP
#ifndef __cplusplus
# error core.hpp header must be compiled as C++
@@ -72,7 +72,10 @@
@defgroup core_cluster Clustering
@defgroup core_utils Utility and system functions and macros
@{
+ @defgroup core_utils_sse SSE utilities
@defgroup core_utils_neon NEON utilities
+ @defgroup core_utils_softfloat Softfloat support
+ @defgroup core_utils_samples Utility functions for OpenCV samples
@}
@defgroup core_opengl OpenGL interoperability
@defgroup core_ipp Intel IPP Asynchronous C/C++ Converters
@@ -80,6 +83,16 @@
@defgroup core_directx DirectX interoperability
@defgroup core_eigen Eigen support
@defgroup core_opencl OpenCL support
+ @defgroup core_va_intel Intel VA-API/OpenCL (CL-VA) interoperability
+ @defgroup core_hal Hardware Acceleration Layer
+ @{
+ @defgroup core_hal_functions Functions
+ @defgroup core_hal_interface Interface
+ @defgroup core_hal_intrin Universal intrinsics
+ @{
+ @defgroup core_hal_intrin_impl Private implementation helpers
+ @}
+ @}
@}
*/
@@ -103,7 +116,7 @@ public:
*/
Exception();
/*!
- Full constructor. Normally the constuctor is not called explicitly.
+ Full constructor. Normally the constructor is not called explicitly.
Instead, the macros CV_Error(), CV_Error_() and CV_Assert() are used.
*/
Exception(int _code, const String& _err, const String& _func, const String& _file, int _line);
@@ -112,7 +125,7 @@ public:
/*!
\return the error description and the context as a text string.
*/
- virtual const char *what() const throw();
+ virtual const char *what() const throw() CV_OVERRIDE;
void formatMessage();
String msg; ///< the formatted error message
@@ -120,15 +133,15 @@ public:
int code; ///< error code @see CVStatus
String err; ///< error description
String func; ///< function name. Available only when the compiler supports getting it
- String file; ///< source file name where the error has occured
- int line; ///< line number in the source file where the error has occured
+ String file; ///< source file name where the error has occurred
+ int line; ///< line number in the source file where the error has occurred
};
/*! @brief Signals an error and raises the exception.
By default the function prints information about the error to stderr,
then it either stops if cv::setBreakOnError() had been called before or raises the exception.
-It is possible to alternate error processing by using cv::redirectError().
+It is possible to alternate error processing by using #redirectError().
@param exc the exception raisen.
@deprecated drop this version
*/
@@ -163,7 +176,7 @@ enum CovarFlags {
/**The output covariance matrix is calculated as:
\f[\texttt{scale} \cdot [ \texttt{vects} [0]- \texttt{mean} , \texttt{vects} [1]- \texttt{mean} ,...] \cdot [ \texttt{vects} [0]- \texttt{mean} , \texttt{vects} [1]- \texttt{mean} ,...]^T,\f]
covar will be a square matrix of the same size as the total number of elements in each input
- vector. One and only one of COVAR_SCRAMBLED and COVAR_NORMAL must be specified.*/
+ vector. One and only one of #COVAR_SCRAMBLED and #COVAR_NORMAL must be specified.*/
COVAR_NORMAL = 1,
/** If the flag is specified, the function does not calculate mean from
the input vectors but, instead, uses the passed mean vector. This is useful if mean has been
@@ -207,8 +220,7 @@ enum LineTypes {
LINE_AA = 16 //!< antialiased line
};
-//! Only a subset of Hershey fonts
-//! are supported
+//! Only a subset of Hershey fonts are supported
enum HersheyFonts {
FONT_HERSHEY_SIMPLEX = 0, //!< normal size sans-serif font
FONT_HERSHEY_PLAIN = 1, //!< small size sans-serif font
@@ -254,14 +266,19 @@ Normally, the function is not called directly. It is used inside filtering funct
copyMakeBorder.
@param p 0-based coordinate of the extrapolated pixel along one of the axes, likely \<0 or \>= len
@param len Length of the array along the corresponding axis.
-@param borderType Border type, one of the cv::BorderTypes, except for cv::BORDER_TRANSPARENT and
-cv::BORDER_ISOLATED . When borderType==cv::BORDER_CONSTANT , the function always returns -1, regardless
+@param borderType Border type, one of the #BorderTypes, except for #BORDER_TRANSPARENT and
+#BORDER_ISOLATED . When borderType==#BORDER_CONSTANT , the function always returns -1, regardless
of p and len.
@sa copyMakeBorder
*/
CV_EXPORTS_W int borderInterpolate(int p, int len, int borderType);
+/** @example samples/cpp/tutorial_code/ImgTrans/copyMakeBorder_demo.cpp
+An example using copyMakeBorder function.
+Check @ref tutorial_copyMakeBorder "the corresponding tutorial" for more details
+*/
+
/** @brief Forms a border around an image.
The function copies the source image into the middle of the destination image. The areas to the
@@ -289,7 +306,7 @@ function does not copy src itself but simply constructs the border, for example:
@endcode
@note When the source image is a part (ROI) of a bigger image, the function will try to use the
pixels outside of the ROI to form a border. To disable this feature and always do extrapolation, as
-if src was not a ROI, use borderType | BORDER_ISOLATED.
+if src was not a ROI, use borderType | #BORDER_ISOLATED.
@param src Source image.
@param dst Destination image of the same type as src and the size Size(src.cols+left+right,
@@ -415,7 +432,7 @@ CV_EXPORTS_W void multiply(InputArray src1, InputArray src2,
/** @brief Performs per-element division of two arrays or a scalar by an array.
-The functions divide divide one array by another:
+The function cv::divide divides one array by another:
\f[\texttt{dst(I) = saturate(src1(I)*scale/src2(I))}\f]
or a scalar by an array when there is no src1 :
\f[\texttt{dst(I) = saturate(scale/src2(I))}\f]
@@ -460,6 +477,10 @@ The function can also be emulated with a matrix expression, for example:
*/
CV_EXPORTS_W void scaleAdd(InputArray src1, double alpha, InputArray src2, OutputArray dst);
+/** @example samples/cpp/tutorial_code/HighGUI/AddingImagesTrackbar.cpp
+Check @ref tutorial_trackbar "the corresponding tutorial" for more details
+*/
+
/** @brief Calculates the weighted sum of two arrays.
The function addWeighted calculates the weighted sum of two arrays as follows:
@@ -513,13 +534,25 @@ For example:
CV_EXPORTS_W void convertScaleAbs(InputArray src, OutputArray dst,
double alpha = 1, double beta = 0);
+/** @brief Converts an array to half precision floating number.
+
+This function converts FP32 (single precision floating point) from/to FP16 (half precision floating point). CV_16S format is used to represent FP16 data.
+There are two use modes (src -> dst): CV_32F -> CV_16S and CV_16S -> CV_32F. The input array has to have type of CV_32F or
+CV_16S to represent the bit depth. If the input array is neither of them, the function will raise an error.
+The format of half precision floating point is defined in IEEE 754-2008.
+
+@param src input array.
+@param dst output array.
+*/
+CV_EXPORTS_W void convertFp16(InputArray src, OutputArray dst);
+
/** @brief Performs a look-up table transform of an array.
The function LUT fills the output array with values from the look-up table. Indices of the entries
are taken from the input array. That is, the function processes each element of src as follows:
\f[\texttt{dst} (I) \leftarrow \texttt{lut(src(I) + d)}\f]
where
-\f[d = \fork{0}{if \texttt{src} has depth \texttt{CV\_8U}}{128}{if \texttt{src} has depth \texttt{CV\_8S}}\f]
+\f[d = \fork{0}{if \(\texttt{src}\) has depth \(\texttt{CV_8U}\)}{128}{if \(\texttt{src}\) has depth \(\texttt{CV_8S}\)}\f]
@param src input array of 8-bit elements.
@param lut look-up table of 256 elements; in case of multi-channel input array, the table should
either have a single channel (in this case the same table is used for all channels) or the same
@@ -531,7 +564,7 @@ CV_EXPORTS_W void LUT(InputArray src, InputArray lut, OutputArray dst);
/** @brief Calculates the sum of array elements.
-The functions sum calculate and return the sum of array elements,
+The function cv::sum calculates and returns the sum of array elements,
independently for each channel.
@param src input array that must have from 1 to 4 channels.
@sa countNonZero, mean, meanStdDev, norm, minMaxLoc, reduce
@@ -577,10 +610,10 @@ CV_EXPORTS_W void findNonZero( InputArray src, OutputArray idx );
/** @brief Calculates an average (mean) of array elements.
-The function mean calculates the mean value M of array elements,
+The function cv::mean calculates the mean value M of array elements,
independently for each channel, and return it:
\f[\begin{array}{l} N = \sum _{I: \; \texttt{mask} (I) \ne 0} 1 \\ M_c = \left ( \sum _{I: \; \texttt{mask} (I) \ne 0}{ \texttt{mtx} (I)_c} \right )/N \end{array}\f]
-When all the mask elements are 0's, the functions return Scalar::all(0)
+When all the mask elements are 0's, the function returns Scalar::all(0)
@param src input array that should have from 1 to 4 channels so that the result can be stored in
Scalar_ .
@param mask optional operation mask.
@@ -590,11 +623,11 @@ CV_EXPORTS_W Scalar mean(InputArray src, InputArray mask = noArray());
/** Calculates a mean and standard deviation of array elements.
-The function meanStdDev calculates the mean and the standard deviation M
+The function cv::meanStdDev calculates the mean and the standard deviation M
of array elements independently for each channel and returns it via the
output parameters:
\f[\begin{array}{l} N = \sum _{I, \texttt{mask} (I) \ne 0} 1 \\ \texttt{mean} _c = \frac{\sum_{ I: \; \texttt{mask}(I) \ne 0} \texttt{src} (I)_c}{N} \\ \texttt{stddev} _c = \sqrt{\frac{\sum_{ I: \; \texttt{mask}(I) \ne 0} \left ( \texttt{src} (I)_c - \texttt{mean} _c \right )^2}{N}} \end{array}\f]
-When all the mask elements are 0's, the functions return
+When all the mask elements are 0's, the function returns
mean=stddev=Scalar::all(0).
@note The calculated standard deviation is only the diagonal of the
complete normalized covariance matrix. If the full matrix is needed, you
@@ -604,67 +637,85 @@ then pass the matrix to calcCovarMatrix .
@param src input array that should have from 1 to 4 channels so that the results can be stored in
Scalar_ 's.
@param mean output parameter: calculated mean value.
-@param stddev output parameter: calculateded standard deviation.
+@param stddev output parameter: calculated standard deviation.
@param mask optional operation mask.
@sa countNonZero, mean, norm, minMaxLoc, calcCovarMatrix
*/
CV_EXPORTS_W void meanStdDev(InputArray src, OutputArray mean, OutputArray stddev,
InputArray mask=noArray());
-/** @brief Calculates an absolute array norm, an absolute difference norm, or a
-relative difference norm.
+/** @brief Calculates the absolute norm of an array.
-The functions norm calculate an absolute norm of src1 (when there is no
-src2 ):
+This version of #norm calculates the absolute norm of src1. The type of norm to calculate is specified using #NormTypes.
-\f[norm = \forkthree{\|\texttt{src1}\|_{L_{\infty}} = \max _I | \texttt{src1} (I)|}{if \(\texttt{normType} = \texttt{NORM\_INF}\) }
-{ \| \texttt{src1} \| _{L_1} = \sum _I | \texttt{src1} (I)|}{if \(\texttt{normType} = \texttt{NORM\_L1}\) }
-{ \| \texttt{src1} \| _{L_2} = \sqrt{\sum_I \texttt{src1}(I)^2} }{if \(\texttt{normType} = \texttt{NORM\_L2}\) }\f]
-
-or an absolute or relative difference norm if src2 is there:
-
-\f[norm = \forkthree{\|\texttt{src1}-\texttt{src2}\|_{L_{\infty}} = \max _I | \texttt{src1} (I) - \texttt{src2} (I)|}{if \(\texttt{normType} = \texttt{NORM\_INF}\) }
-{ \| \texttt{src1} - \texttt{src2} \| _{L_1} = \sum _I | \texttt{src1} (I) - \texttt{src2} (I)|}{if \(\texttt{normType} = \texttt{NORM\_L1}\) }
-{ \| \texttt{src1} - \texttt{src2} \| _{L_2} = \sqrt{\sum_I (\texttt{src1}(I) - \texttt{src2}(I))^2} }{if \(\texttt{normType} = \texttt{NORM\_L2}\) }\f]
-
-or
-
-\f[norm = \forkthree{\frac{\|\texttt{src1}-\texttt{src2}\|_{L_{\infty}} }{\|\texttt{src2}\|_{L_{\infty}} }}{if \(\texttt{normType} = \texttt{NORM\_RELATIVE\_INF}\) }
-{ \frac{\|\texttt{src1}-\texttt{src2}\|_{L_1} }{\|\texttt{src2}\|_{L_1}} }{if \(\texttt{normType} = \texttt{NORM\_RELATIVE\_L1}\) }
-{ \frac{\|\texttt{src1}-\texttt{src2}\|_{L_2} }{\|\texttt{src2}\|_{L_2}} }{if \(\texttt{normType} = \texttt{NORM\_RELATIVE\_L2}\) }\f]
-
-The functions norm return the calculated norm.
+As example for one array consider the function \f$r(x)= \begin{pmatrix} x \\ 1-x \end{pmatrix}, x \in [-1;1]\f$.
+The \f$ L_{1}, L_{2} \f$ and \f$ L_{\infty} \f$ norm for the sample value \f$r(-1) = \begin{pmatrix} -1 \\ 2 \end{pmatrix}\f$
+is calculated as follows
+\f{align*}
+ \| r(-1) \|_{L_1} &= |-1| + |2| = 3 \\
+ \| r(-1) \|_{L_2} &= \sqrt{(-1)^{2} + (2)^{2}} = \sqrt{5} \\
+ \| r(-1) \|_{L_\infty} &= \max(|-1|,|2|) = 2
+\f}
+and for \f$r(0.5) = \begin{pmatrix} 0.5 \\ 0.5 \end{pmatrix}\f$ the calculation is
+\f{align*}
+ \| r(0.5) \|_{L_1} &= |0.5| + |0.5| = 1 \\
+ \| r(0.5) \|_{L_2} &= \sqrt{(0.5)^{2} + (0.5)^{2}} = \sqrt{0.5} \\
+ \| r(0.5) \|_{L_\infty} &= \max(|0.5|,|0.5|) = 0.5.
+\f}
+The following graphic shows all values for the three norm functions \f$\| r(x) \|_{L_1}, \| r(x) \|_{L_2}\f$ and \f$\| r(x) \|_{L_\infty}\f$.
+It is notable that the \f$ L_{1} \f$ norm forms the upper and the \f$ L_{\infty} \f$ norm forms the lower border for the example function \f$ r(x) \f$.
+
When the mask parameter is specified and it is not empty, the norm is
+
+If normType is not specified, #NORM_L2 is used.
calculated only over the region specified by the mask.
-A multi-channel input arrays are treated as a single-channel, that is,
+Multi-channel input arrays are treated as single-channel arrays, that is,
the results for all channels are combined.
+Hamming norms can only be calculated with CV_8U depth arrays.
+
@param src1 first input array.
-@param normType type of the norm (see cv::NormTypes).
+@param normType type of the norm (see #NormTypes).
@param mask optional operation mask; it must have the same size as src1 and CV_8UC1 type.
*/
CV_EXPORTS_W double norm(InputArray src1, int normType = NORM_L2, InputArray mask = noArray());
-/** @overload
+/** @brief Calculates an absolute difference norm or a relative difference norm.
+
+This version of cv::norm calculates the absolute difference norm
+or the relative difference norm of arrays src1 and src2.
+The type of norm to calculate is specified using #NormTypes.
+
@param src1 first input array.
@param src2 second input array of the same size and the same type as src1.
-@param normType type of the norm (cv::NormTypes).
+@param normType type of the norm (see #NormTypes).
@param mask optional operation mask; it must have the same size as src1 and CV_8UC1 type.
*/
CV_EXPORTS_W double norm(InputArray src1, InputArray src2,
int normType = NORM_L2, InputArray mask = noArray());
/** @overload
@param src first input array.
-@param normType type of the norm (see cv::NormTypes).
+@param normType type of the norm (see #NormTypes).
*/
CV_EXPORTS double norm( const SparseMat& src, int normType );
-/** @brief computes PSNR image/video quality metric
+/** @brief Computes the Peak Signal-to-Noise Ratio (PSNR) image quality metric.
+
+This function calculates the Peak Signal-to-Noise Ratio (PSNR) image quality metric in decibels (dB), between two input arrays src1 and src2. Arrays must have depth CV_8U.
+
+The PSNR is calculated as follows:
+
+\f[
+\texttt{PSNR} = 10 \cdot \log_{10}{\left( \frac{R^2}{MSE} \right) }
+\f]
+
+where R is the maximum integer value of depth CV_8U (255) and MSE is the mean squared error between the two arrays.
+
+@param src1 first input array.
+@param src2 second input array of the same size as src1.
-see http://en.wikipedia.org/wiki/Peak_signal-to-noise_ratio for details
-@todo document
*/
CV_EXPORTS_W double PSNR(InputArray src1, InputArray src2);
@@ -681,7 +732,7 @@ CV_EXPORTS_W void batchDistance(InputArray src1, InputArray src2,
/** @brief Normalizes the norm or value range of an array.
-The functions normalize scale and shift the input array elements so that
+The function cv::normalize normalizes scale and shift the input array elements so that
\f[\| \texttt{dst} \| _{L_p}= \texttt{alpha}\f]
(where p=Inf, 1 or 2) when normType=NORM_INF, NORM_L1, or NORM_L2, respectively; or so that
\f[\min _I \texttt{dst} (I)= \texttt{alpha} , \, \, \max _I \texttt{dst} (I)= \texttt{beta}\f]
@@ -694,6 +745,37 @@ min-max but modify the whole array, you can use norm and Mat::convertTo.
In case of sparse matrices, only the non-zero values are analyzed and transformed. Because of this,
the range transformation for sparse matrices is not allowed since it can shift the zero level.
+Possible usage with some positive example data:
+@code{.cpp}
+ vector positiveData = { 2.0, 8.0, 10.0 };
+ vector normalizedData_l1, normalizedData_l2, normalizedData_inf, normalizedData_minmax;
+
+ // Norm to probability (total count)
+ // sum(numbers) = 20.0
+ // 2.0 0.1 (2.0/20.0)
+ // 8.0 0.4 (8.0/20.0)
+ // 10.0 0.5 (10.0/20.0)
+ normalize(positiveData, normalizedData_l1, 1.0, 0.0, NORM_L1);
+
+ // Norm to unit vector: ||positiveData|| = 1.0
+ // 2.0 0.15
+ // 8.0 0.62
+ // 10.0 0.77
+ normalize(positiveData, normalizedData_l2, 1.0, 0.0, NORM_L2);
+
+ // Norm to max element
+ // 2.0 0.2 (2.0/10.0)
+ // 8.0 0.8 (8.0/10.0)
+ // 10.0 1.0 (10.0/10.0)
+ normalize(positiveData, normalizedData_inf, 1.0, 0.0, NORM_INF);
+
+ // Norm to range [0.0;1.0]
+ // 2.0 0.0 (shift to left border)
+ // 8.0 0.75 (6.0/8.0)
+ // 10.0 1.0 (shift to right border)
+ normalize(positiveData, normalizedData_minmax, 1.0, 0.0, NORM_MINMAX);
+@endcode
+
@param src input array.
@param dst output array of the same size as src .
@param alpha norm value to normalize to or the lower range boundary in case of the range
@@ -720,11 +802,11 @@ CV_EXPORTS void normalize( const SparseMat& src, SparseMat& dst, double alpha, i
/** @brief Finds the global minimum and maximum in an array.
-The functions minMaxLoc find the minimum and maximum element values and their positions. The
+The function cv::minMaxLoc finds the minimum and maximum element values and their positions. The
extremums are searched across the whole array or, if mask is not an empty array, in the specified
array region.
-The functions do not work with multi-channel arrays. If you need to find minimum or maximum
+The function do not work with multi-channel arrays. If you need to find minimum or maximum
elements across all the channels, use Mat::reshape first to reinterpret the array as
single-channel. Or you may extract the particular channel using either extractImageCOI , or
mixChannels , or split .
@@ -743,7 +825,7 @@ CV_EXPORTS_W void minMaxLoc(InputArray src, CV_OUT double* minVal,
/** @brief Finds the global minimum and maximum in an array
-The function minMaxIdx finds the minimum and maximum element values and their positions. The
+The function cv::minMaxIdx finds the minimum and maximum element values and their positions. The
extremums are searched across the whole array or, if mask is not an empty array, in the specified
array region. The function does not work with multi-channel arrays. If you need to find minimum or
maximum elements across all the channels, use Mat::reshape first to reinterpret the array as
@@ -781,36 +863,47 @@ CV_EXPORTS void minMaxLoc(const SparseMat& a, double* minVal,
/** @brief Reduces a matrix to a vector.
-The function reduce reduces the matrix to a vector by treating the matrix rows/columns as a set of
+The function #reduce reduces the matrix to a vector by treating the matrix rows/columns as a set of
1D vectors and performing the specified operation on the vectors until a single row/column is
obtained. For example, the function can be used to compute horizontal and vertical projections of a
-raster image. In case of REDUCE_SUM and REDUCE_AVG , the output may have a larger element
-bit-depth to preserve accuracy. And multi-channel arrays are also supported in these two reduction
-modes.
+raster image. In case of #REDUCE_MAX and #REDUCE_MIN , the output image should have the same type as the source one.
+In case of #REDUCE_SUM and #REDUCE_AVG , the output may have a larger element bit-depth to preserve accuracy.
+And multi-channel arrays are also supported in these two reduction modes.
+
+The following code demonstrates its usage for a single channel matrix.
+@snippet snippets/core_reduce.cpp example
+
+And the following code demonstrates its usage for a two-channel matrix.
+@snippet snippets/core_reduce.cpp example2
+
@param src input 2D matrix.
@param dst output vector. Its size and type is defined by dim and dtype parameters.
@param dim dimension index along which the matrix is reduced. 0 means that the matrix is reduced to
a single row. 1 means that the matrix is reduced to a single column.
-@param rtype reduction operation that could be one of cv::ReduceTypes
+@param rtype reduction operation that could be one of #ReduceTypes
@param dtype when negative, the output vector will have the same type as the input matrix,
otherwise, its type will be CV_MAKE_TYPE(CV_MAT_DEPTH(dtype), src.channels()).
@sa repeat
*/
CV_EXPORTS_W void reduce(InputArray src, OutputArray dst, int dim, int rtype, int dtype = -1);
-/** @brief Creates one multichannel array out of several single-channel ones.
+/** @brief Creates one multi-channel array out of several single-channel ones.
-The functions merge merge several arrays to make a single multi-channel array. That is, each
+The function cv::merge merges several arrays to make a single multi-channel array. That is, each
element of the output array will be a concatenation of the elements of the input arrays, where
elements of i-th input array are treated as mv[i].channels()-element vectors.
-The function split does the reverse operation. If you need to shuffle channels in some other
-advanced way, use mixChannels .
+The function cv::split does the reverse operation. If you need to shuffle channels in some other
+advanced way, use cv::mixChannels.
+
+The following example shows how to merge 3 single channel matrices into a single 3-channel matrix.
+@snippet snippets/core_merge.cpp example
+
@param mv input array of matrices to be merged; all the matrices in mv must have the same
size and the same depth.
@param count number of input matrices when mv is a plain C array; it must be greater than zero.
@param dst output array of the same size and the same depth as mv[0]; The number of channels will
-be the total number of channels in the matrix array.
+be equal to the parameter count.
@sa mixChannels, split, Mat::reshape
*/
CV_EXPORTS void merge(const Mat* mv, size_t count, OutputArray dst);
@@ -825,10 +918,14 @@ CV_EXPORTS_W void merge(InputArrayOfArrays mv, OutputArray dst);
/** @brief Divides a multi-channel array into several single-channel arrays.
-The functions split split a multi-channel array into separate single-channel arrays:
+The function cv::split splits a multi-channel array into separate single-channel arrays:
\f[\texttt{mv} [c](I) = \texttt{src} (I)_c\f]
If you need to extract a single channel or do some other sophisticated channel permutation, use
mixChannels .
+
+The following example demonstrates how to split a 3-channel matrix into 3 single channel matrices.
+@snippet snippets/core_split.cpp example
+
@param src input multi-channel array.
@param mvbegin output array; the number of arrays must match src.channels(); the arrays themselves are
reallocated, if needed.
@@ -845,34 +942,34 @@ CV_EXPORTS_W void split(InputArray m, OutputArrayOfArrays mv);
/** @brief Copies specified channels from input arrays to the specified channels of
output arrays.
-The functions mixChannels provide an advanced mechanism for shuffling image channels.
+The function cv::mixChannels provides an advanced mechanism for shuffling image channels.
-split and merge and some forms of cvtColor are partial cases of mixChannels .
+cv::split,cv::merge,cv::extractChannel,cv::insertChannel and some forms of cv::cvtColor are partial cases of cv::mixChannels.
-In the example below, the code splits a 4-channel RGBA image into a 3-channel BGR (with R and B
+In the example below, the code splits a 4-channel BGRA image into a 3-channel BGR (with B and R
channels swapped) and a separate alpha-channel image:
@code{.cpp}
- Mat rgba( 100, 100, CV_8UC4, Scalar(1,2,3,4) );
- Mat bgr( rgba.rows, rgba.cols, CV_8UC3 );
- Mat alpha( rgba.rows, rgba.cols, CV_8UC1 );
+ Mat bgra( 100, 100, CV_8UC4, Scalar(255,0,0,255) );
+ Mat bgr( bgra.rows, bgra.cols, CV_8UC3 );
+ Mat alpha( bgra.rows, bgra.cols, CV_8UC1 );
// forming an array of matrices is a quite efficient operation,
// because the matrix data is not copied, only the headers
Mat out[] = { bgr, alpha };
- // rgba[0] -> bgr[2], rgba[1] -> bgr[1],
- // rgba[2] -> bgr[0], rgba[3] -> alpha[0]
+ // bgra[0] -> bgr[2], bgra[1] -> bgr[1],
+ // bgra[2] -> bgr[0], bgra[3] -> alpha[0]
int from_to[] = { 0,2, 1,1, 2,0, 3,3 };
- mixChannels( &rgba, 1, out, 2, from_to, 4 );
+ mixChannels( &bgra, 1, out, 2, from_to, 4 );
@endcode
@note Unlike many other new-style C++ functions in OpenCV (see the introduction section and
-Mat::create ), mixChannels requires the output arrays to be pre-allocated before calling the
+Mat::create ), cv::mixChannels requires the output arrays to be pre-allocated before calling the
function.
-@param src input array or vector of matricesl; all of the matrices must have the same size and the
+@param src input array or vector of matrices; all of the matrices must have the same size and the
same depth.
-@param nsrcs number of matrices in src.
-@param dst output array or vector of matrices; all the matrices *must be allocated*; their size and
-depth must be the same as in src[0].
-@param ndsts number of matrices in dst.
+@param nsrcs number of matrices in `src`.
+@param dst output array or vector of matrices; all the matrices **must be allocated**; their size and
+depth must be the same as in `src[0]`.
+@param ndsts number of matrices in `dst`.
@param fromTo array of index pairs specifying which channels are copied and where; fromTo[k\*2] is
a 0-based index of the input channel in src, fromTo[k\*2+1] is an index of the output channel in
dst; the continuous channel numbering is used: the first input image channels are indexed from 0 to
@@ -880,16 +977,16 @@ src[0].channels()-1, the second input image channels are indexed from src[0].cha
src[0].channels() + src[1].channels()-1, and so on, the same scheme is used for the output image
channels; as a special case, when fromTo[k\*2] is negative, the corresponding output channel is
filled with zero .
-@param npairs number of index pairs in fromTo.
-@sa split, merge, cvtColor
+@param npairs number of index pairs in `fromTo`.
+@sa split, merge, extractChannel, insertChannel, cvtColor
*/
CV_EXPORTS void mixChannels(const Mat* src, size_t nsrcs, Mat* dst, size_t ndsts,
const int* fromTo, size_t npairs);
/** @overload
-@param src input array or vector of matricesl; all of the matrices must have the same size and the
+@param src input array or vector of matrices; all of the matrices must have the same size and the
same depth.
-@param dst output array or vector of matrices; all the matrices *must be allocated*; their size and
+@param dst output array or vector of matrices; all the matrices **must be allocated**; their size and
depth must be the same as in src[0].
@param fromTo array of index pairs specifying which channels are copied and where; fromTo[k\*2] is
a 0-based index of the input channel in src, fromTo[k\*2+1] is an index of the output channel in
@@ -904,9 +1001,9 @@ CV_EXPORTS void mixChannels(InputArrayOfArrays src, InputOutputArrayOfArrays dst
const int* fromTo, size_t npairs);
/** @overload
-@param src input array or vector of matricesl; all of the matrices must have the same size and the
+@param src input array or vector of matrices; all of the matrices must have the same size and the
same depth.
-@param dst output array or vector of matrices; all the matrices *must be allocated*; their size and
+@param dst output array or vector of matrices; all the matrices **must be allocated**; their size and
depth must be the same as in src[0].
@param fromTo array of index pairs specifying which channels are copied and where; fromTo[k\*2] is
a 0-based index of the input channel in src, fromTo[k\*2+1] is an index of the output channel in
@@ -919,19 +1016,25 @@ filled with zero .
CV_EXPORTS_W void mixChannels(InputArrayOfArrays src, InputOutputArrayOfArrays dst,
const std::vector& fromTo);
-/** @brief extracts a single channel from src (coi is 0-based index)
-@todo document
+/** @brief Extracts a single channel from src (coi is 0-based index)
+@param src input array
+@param dst output array
+@param coi index of channel to extract
+@sa mixChannels, split
*/
CV_EXPORTS_W void extractChannel(InputArray src, OutputArray dst, int coi);
-/** @brief inserts a single channel to dst (coi is 0-based index)
-@todo document
+/** @brief Inserts a single channel to dst (coi is 0-based index)
+@param src input array
+@param dst output array
+@param coi index of channel for insertion
+@sa mixChannels, merge
*/
CV_EXPORTS_W void insertChannel(InputArray src, InputOutputArray dst, int coi);
/** @brief Flips a 2D array around vertical, horizontal, or both axes.
-The function flip flips the array in one of three different ways (row
+The function cv::flip flips the array in one of three different ways (row
and column indices are 0-based):
\f[\texttt{dst} _{ij} =
\left\{
@@ -963,26 +1066,44 @@ around both axes.
*/
CV_EXPORTS_W void flip(InputArray src, OutputArray dst, int flipCode);
+enum RotateFlags {
+ ROTATE_90_CLOCKWISE = 0, //!
+-DBL_MAX and maxVal \< DBL_MAX, the function also checks that each value is between minVal and
maxVal. In case of multi-channel arrays, each channel is processed independently. If some values
are out of range, position of the first outlier is stored in pos (when pos != NULL). Then, the
-functions either return false (when quiet=true) or throw an exception.
+function either returns false (when quiet=true) or throws an exception.
@param a input array.
@param quiet a flag, indicating whether the functions quietly return false when the array elements
are out of range or they throw an exception.
@@ -1500,7 +1618,7 @@ CV_EXPORTS_W void patchNaNs(InputOutputArray a, double val = 0);
/** @brief Performs generalized matrix multiplication.
-The function performs generalized matrix multiplication similar to the
+The function cv::gemm performs generalized matrix multiplication similar to the
gemm functions in BLAS level 3. For example,
`gemm(src1, src2, alpha, src3, beta, dst, GEMM_1_T + GEMM_3_T)`
corresponds to
@@ -1531,7 +1649,7 @@ CV_EXPORTS_W void gemm(InputArray src1, InputArray src2, double alpha,
/** @brief Calculates the product of a matrix and its transposition.
-The function mulTransposed calculates the product of src and its
+The function cv::mulTransposed calculates the product of src and its
transposition:
\f[\texttt{dst} = \texttt{scale} ( \texttt{src} - \texttt{delta} )^T ( \texttt{src} - \texttt{delta} )\f]
if aTa=true , and
@@ -1563,9 +1681,9 @@ CV_EXPORTS_W void mulTransposed( InputArray src, OutputArray dst, bool aTa,
/** @brief Transposes a matrix.
-The function transpose transposes the matrix src :
+The function cv::transpose transposes the matrix src :
\f[\texttt{dst} (i,j) = \texttt{src} (j,i)\f]
-@note No complex conjugation is done in case of a complex matrix. It it
+@note No complex conjugation is done in case of a complex matrix. It
should be done separately if needed.
@param src input array.
@param dst output array of the same type as src.
@@ -1574,7 +1692,7 @@ CV_EXPORTS_W void transpose(InputArray src, OutputArray dst);
/** @brief Performs the matrix transformation of every array element.
-The function transform performs the matrix transformation of every
+The function cv::transform performs the matrix transformation of every
element of the array src and stores the results in dst :
\f[\texttt{dst} (I) = \texttt{m} \cdot \texttt{src} (I)\f]
(when m.cols=src.channels() ), or
@@ -1594,13 +1712,13 @@ m.cols or m.cols-1.
@param dst output array of the same size and depth as src; it has as
many channels as m.rows.
@param m transformation 2x2 or 2x3 floating-point matrix.
-@sa perspectiveTransform, getAffineTransform, estimateRigidTransform, warpAffine, warpPerspective
+@sa perspectiveTransform, getAffineTransform, estimateAffine2D, warpAffine, warpPerspective
*/
CV_EXPORTS_W void transform(InputArray src, OutputArray dst, InputArray m );
/** @brief Performs the perspective matrix transformation of vectors.
-The function perspectiveTransform transforms every element of src by
+The function cv::perspectiveTransform transforms every element of src by
treating it as a 2D or 3D vector, in the following way:
\f[(x, y, z) \rightarrow (x'/w, y'/w, z'/w)\f]
where
@@ -1625,24 +1743,25 @@ element is a 2D/3D vector to be transformed.
*/
CV_EXPORTS_W void perspectiveTransform(InputArray src, OutputArray dst, InputArray m );
-/** @brief Copies the lower or the upper half of a square matrix to another half.
+/** @brief Copies the lower or the upper half of a square matrix to its another half.
-The function completeSymm copies the lower half of a square matrix to
+The function cv::completeSymm copies the lower or the upper half of a square matrix to
its another half. The matrix diagonal remains unchanged:
-* \f$\texttt{mtx}_{ij}=\texttt{mtx}_{ji}\f$ for \f$i > j\f$ if
+ - \f$\texttt{m}_{ij}=\texttt{m}_{ji}\f$ for \f$i > j\f$ if
lowerToUpper=false
-* \f$\texttt{mtx}_{ij}=\texttt{mtx}_{ji}\f$ for \f$i < j\f$ if
+ - \f$\texttt{m}_{ij}=\texttt{m}_{ji}\f$ for \f$i < j\f$ if
lowerToUpper=true
-@param mtx input-output floating-point square matrix.
+
+@param m input-output floating-point square matrix.
@param lowerToUpper operation flag; if true, the lower half is copied to
the upper half. Otherwise, the upper half is copied to the lower half.
@sa flip, transpose
*/
-CV_EXPORTS_W void completeSymm(InputOutputArray mtx, bool lowerToUpper = false);
+CV_EXPORTS_W void completeSymm(InputOutputArray m, bool lowerToUpper = false);
/** @brief Initializes a scaled identity matrix.
-The function setIdentity initializes a scaled identity matrix:
+The function cv::setIdentity initializes a scaled identity matrix:
\f[\texttt{mtx} (i,j)= \fork{\texttt{value}}{ if \(i=j\)}{0}{otherwise}\f]
The function can also be emulated using the matrix initializers and the
@@ -1659,7 +1778,7 @@ CV_EXPORTS_W void setIdentity(InputOutputArray mtx, const Scalar& s = Scalar(1))
/** @brief Returns the determinant of a square floating-point matrix.
-The function determinant calculates and returns the determinant of the
+The function cv::determinant calculates and returns the determinant of the
specified matrix. For small matrices ( mtx.cols=mtx.rows\<=3 ), the
direct method is used. For larger matrices, the function uses LU
factorization with partial pivoting.
@@ -1674,7 +1793,7 @@ CV_EXPORTS_W double determinant(InputArray mtx);
/** @brief Returns the trace of a matrix.
-The function trace returns the sum of the diagonal elements of the
+The function cv::trace returns the sum of the diagonal elements of the
matrix mtx .
\f[\mathrm{tr} ( \texttt{mtx} ) = \sum _i \texttt{mtx} (i,i)\f]
@param mtx input matrix.
@@ -1683,20 +1802,20 @@ CV_EXPORTS_W Scalar trace(InputArray mtx);
/** @brief Finds the inverse or pseudo-inverse of a matrix.
-The function invert inverts the matrix src and stores the result in dst
+The function cv::invert inverts the matrix src and stores the result in dst
. When the matrix src is singular or non-square, the function calculates
the pseudo-inverse matrix (the dst matrix) so that norm(src\*dst - I) is
minimal, where I is an identity matrix.
-In case of the DECOMP_LU method, the function returns non-zero value if
+In case of the #DECOMP_LU method, the function returns non-zero value if
the inverse has been successfully calculated and 0 if src is singular.
-In case of the DECOMP_SVD method, the function returns the inverse
+In case of the #DECOMP_SVD method, the function returns the inverse
condition number of src (the ratio of the smallest singular value to the
largest singular value) and 0 if src is singular. The SVD method
calculates a pseudo-inverse matrix if src is singular.
-Similarly to DECOMP_LU, the method DECOMP_CHOLESKY works only with
+Similarly to #DECOMP_LU, the method #DECOMP_CHOLESKY works only with
non-singular square matrices that should also be symmetrical and
positively defined. In this case, the function stores the inverted
matrix in dst and returns non-zero. Otherwise, it returns 0.
@@ -1710,12 +1829,12 @@ CV_EXPORTS_W double invert(InputArray src, OutputArray dst, int flags = DECOMP_L
/** @brief Solves one or more linear systems or least-squares problems.
-The function solve solves a linear system or least-squares problem (the
+The function cv::solve solves a linear system or least-squares problem (the
latter is possible with SVD or QR methods, or by specifying the flag
-DECOMP_NORMAL ):
+#DECOMP_NORMAL ):
\f[\texttt{dst} = \arg \min _X \| \texttt{src1} \cdot \texttt{X} - \texttt{src2} \|\f]
-If DECOMP_LU or DECOMP_CHOLESKY method is used, the function returns 1
+If #DECOMP_LU or #DECOMP_CHOLESKY method is used, the function returns 1
if src1 (or \f$\texttt{src1}^T\texttt{src1}\f$ ) is non-singular. Otherwise,
it returns 0. In the latter case, dst is not valid. Other methods find a
pseudo-solution in case of a singular left-hand side part.
@@ -1727,7 +1846,7 @@ will not do the work. Use SVD::solveZ instead.
@param src1 input matrix on the left-hand side of the system.
@param src2 input matrix on the right-hand side of the system.
@param dst output solution.
-@param flags solution (matrix inversion) method (cv::DecompTypes)
+@param flags solution (matrix inversion) method (#DecompTypes)
@sa invert, SVD, eigen
*/
CV_EXPORTS_W bool solve(InputArray src1, InputArray src2,
@@ -1735,7 +1854,7 @@ CV_EXPORTS_W bool solve(InputArray src1, InputArray src2,
/** @brief Sorts each row or each column of a matrix.
-The function sort sorts each matrix row or each matrix column in
+The function cv::sort sorts each matrix row or each matrix column in
ascending or descending order. So you should pass two operation flags to
get desired behaviour. If you want to sort matrix rows or columns
lexicographically, you can use STL std::sort generic function with the
@@ -1743,14 +1862,14 @@ proper comparison predicate.
@param src input single-channel array.
@param dst output array of the same size and type as src.
-@param flags operation flags, a combination of cv::SortFlags
+@param flags operation flags, a combination of #SortFlags
@sa sortIdx, randShuffle
*/
CV_EXPORTS_W void sort(InputArray src, OutputArray dst, int flags);
/** @brief Sorts each row or each column of a matrix.
-The function sortIdx sorts each matrix row or each matrix column in the
+The function cv::sortIdx sorts each matrix row or each matrix column in the
ascending or descending order. So you should pass two operation flags to
get desired behaviour. Instead of reordering the elements themselves, it
stores the indices of sorted elements in the output array. For example:
@@ -1779,12 +1898,13 @@ The function solveCubic finds the real roots of a cubic equation:
The roots are stored in the roots array.
@param coeffs equation coefficients, an array of 3 or 4 elements.
@param roots output array of real roots that has 1 or 3 elements.
+@return number of real roots. It can be 0, 1 or 2.
*/
CV_EXPORTS_W int solveCubic(InputArray coeffs, OutputArray roots);
/** @brief Finds the real or complex roots of a polynomial equation.
-The function solvePoly finds real and complex roots of a polynomial equation:
+The function cv::solvePoly finds real and complex roots of a polynomial equation:
\f[\texttt{coeffs} [n] x^{n} + \texttt{coeffs} [n-1] x^{n-1} + ... + \texttt{coeffs} [1] x + \texttt{coeffs} [0] = 0\f]
@param coeffs array of polynomial coefficients.
@param roots output (complex) array of roots.
@@ -1794,13 +1914,14 @@ CV_EXPORTS_W double solvePoly(InputArray coeffs, OutputArray roots, int maxIters
/** @brief Calculates eigenvalues and eigenvectors of a symmetric matrix.
-The functions eigen calculate just eigenvalues, or eigenvalues and eigenvectors of the symmetric
+The function cv::eigen calculates just eigenvalues, or eigenvalues and eigenvectors of the symmetric
matrix src:
@code
src*eigenvectors.row(i).t() = eigenvalues.at(i)*eigenvectors.row(i).t()
@endcode
-@note in the new and the old interfaces different ordering of eigenvalues and eigenvectors
-parameters is used.
+
+@note Use cv::eigenNonSymmetric for calculation of real eigenvalues and eigenvectors of non-symmetric matrix.
+
@param src input matrix that must have CV_32FC1 or CV_64FC1 type, square size and be symmetrical
(src ^T^ == src).
@param eigenvalues output vector of eigenvalues of the same type as src; the eigenvalues are stored
@@ -1808,20 +1929,37 @@ in the descending order.
@param eigenvectors output matrix of eigenvectors; it has the same size and type as src; the
eigenvectors are stored as subsequent matrix rows, in the same order as the corresponding
eigenvalues.
-@sa completeSymm , PCA
+@sa eigenNonSymmetric, completeSymm , PCA
*/
CV_EXPORTS_W bool eigen(InputArray src, OutputArray eigenvalues,
OutputArray eigenvectors = noArray());
+/** @brief Calculates eigenvalues and eigenvectors of a non-symmetric matrix (real eigenvalues only).
+
+@note Assumes real eigenvalues.
+
+The function calculates eigenvalues and eigenvectors (optional) of the square matrix src:
+@code
+ src*eigenvectors.row(i).t() = eigenvalues.at(i)*eigenvectors.row(i).t()
+@endcode
+
+@param src input matrix (CV_32FC1 or CV_64FC1 type).
+@param eigenvalues output vector of eigenvalues (type is the same type as src).
+@param eigenvectors output matrix of eigenvectors (type is the same type as src). The eigenvectors are stored as subsequent matrix rows, in the same order as the corresponding eigenvalues.
+@sa eigen
+*/
+CV_EXPORTS_W void eigenNonSymmetric(InputArray src, OutputArray eigenvalues,
+ OutputArray eigenvectors);
+
/** @brief Calculates the covariance matrix of a set of vectors.
-The functions calcCovarMatrix calculate the covariance matrix and, optionally, the mean vector of
+The function cv::calcCovarMatrix calculates the covariance matrix and, optionally, the mean vector of
the set of input vectors.
@param samples samples stored as separate matrices
@param nsamples number of samples
@param covar output covariance matrix of the type ctype and square size.
@param mean input or output (depending on the flags) array as the average value of the input vectors.
-@param flags operation flags as a combination of cv::CovarFlags
+@param flags operation flags as a combination of #CovarFlags
@param ctype type of the matrixl; it equals 'CV_64F' by default.
@sa PCA, mulTransposed, Mahalanobis
@todo InputArrayOfArrays
@@ -1830,11 +1968,11 @@ CV_EXPORTS void calcCovarMatrix( const Mat* samples, int nsamples, Mat& covar, M
int flags, int ctype = CV_64F);
/** @overload
-@note use cv::COVAR_ROWS or cv::COVAR_COLS flag
+@note use #COVAR_ROWS or #COVAR_COLS flag
@param samples samples stored as rows/columns of a single matrix.
@param covar output covariance matrix of the type ctype and square size.
@param mean input or output (depending on the flags) array as the average value of the input vectors.
-@param flags operation flags as a combination of cv::CovarFlags
+@param flags operation flags as a combination of #CovarFlags
@param ctype type of the matrixl; it equals 'CV_64F' by default.
*/
CV_EXPORTS_W void calcCovarMatrix( InputArray samples, OutputArray covar,
@@ -1844,10 +1982,20 @@ CV_EXPORTS_W void calcCovarMatrix( InputArray samples, OutputArray covar,
CV_EXPORTS_W void PCACompute(InputArray data, InputOutputArray mean,
OutputArray eigenvectors, int maxComponents = 0);
+/** wrap PCA::operator() and add eigenvalues output parameter */
+CV_EXPORTS_AS(PCACompute2) void PCACompute(InputArray data, InputOutputArray mean,
+ OutputArray eigenvectors, OutputArray eigenvalues,
+ int maxComponents = 0);
+
/** wrap PCA::operator() */
CV_EXPORTS_W void PCACompute(InputArray data, InputOutputArray mean,
OutputArray eigenvectors, double retainedVariance);
+/** wrap PCA::operator() and add eigenvalues output parameter */
+CV_EXPORTS_AS(PCACompute2) void PCACompute(InputArray data, InputOutputArray mean,
+ OutputArray eigenvectors, OutputArray eigenvalues,
+ double retainedVariance);
+
/** wrap PCA::project */
CV_EXPORTS_W void PCAProject(InputArray data, InputArray mean,
InputArray eigenvectors, OutputArray result);
@@ -1865,10 +2013,10 @@ CV_EXPORTS_W void SVBackSubst( InputArray w, InputArray u, InputArray vt,
/** @brief Calculates the Mahalanobis distance between two vectors.
-The function Mahalanobis calculates and returns the weighted distance between two vectors:
+The function cv::Mahalanobis calculates and returns the weighted distance between two vectors:
\f[d( \texttt{vec1} , \texttt{vec2} )= \sqrt{\sum_{i,j}{\texttt{icovar(i,j)}\cdot(\texttt{vec1}(I)-\texttt{vec2}(I))\cdot(\texttt{vec1(j)}-\texttt{vec2(j)})} }\f]
-The covariance matrix may be calculated using the cv::calcCovarMatrix function and then inverted using
-the invert function (preferably using the cv::DECOMP_SVD method, as the most accurate).
+The covariance matrix may be calculated using the #calcCovarMatrix function and then inverted using
+the invert function (preferably using the #DECOMP_SVD method, as the most accurate).
@param v1 first 1D input vector.
@param v2 second 1D input vector.
@param icovar inverse covariance matrix.
@@ -1877,7 +2025,7 @@ CV_EXPORTS_W double Mahalanobis(InputArray v1, InputArray v2, InputArray icovar)
/** @brief Performs a forward or inverse Discrete Fourier transform of a 1D or 2D floating-point array.
-The function performs one of the following:
+The function cv::dft performs one of the following:
- Forward the Fourier transform of a 1D vector of N elements:
\f[Y = F^{(N)} \cdot X,\f]
where \f$F^{(N)}_{jk}=\exp(-2\pi i j k/N)\f$ and \f$i=\sqrt{-1}\f$
@@ -1898,28 +2046,28 @@ is how 2D *CCS* spectrum looks:
In case of 1D transform of a real vector, the output looks like the first row of the matrix above.
So, the function chooses an operation mode depending on the flags and size of the input array:
-- If DFT_ROWS is set or the input array has a single row or single column, the function
- performs a 1D forward or inverse transform of each row of a matrix when DFT_ROWS is set.
+- If #DFT_ROWS is set or the input array has a single row or single column, the function
+ performs a 1D forward or inverse transform of each row of a matrix when #DFT_ROWS is set.
Otherwise, it performs a 2D transform.
-- If the input array is real and DFT_INVERSE is not set, the function performs a forward 1D or
+- If the input array is real and #DFT_INVERSE is not set, the function performs a forward 1D or
2D transform:
- - When DFT_COMPLEX_OUTPUT is set, the output is a complex matrix of the same size as
+ - When #DFT_COMPLEX_OUTPUT is set, the output is a complex matrix of the same size as
input.
- - When DFT_COMPLEX_OUTPUT is not set, the output is a real matrix of the same size as
+ - When #DFT_COMPLEX_OUTPUT is not set, the output is a real matrix of the same size as
input. In case of 2D transform, it uses the packed format as shown above. In case of a
single 1D transform, it looks like the first row of the matrix above. In case of
- multiple 1D transforms (when using the DFT_ROWS flag), each row of the output matrix
+ multiple 1D transforms (when using the #DFT_ROWS flag), each row of the output matrix
looks like the first row of the matrix above.
-- If the input array is complex and either DFT_INVERSE or DFT_REAL_OUTPUT are not set, the
+- If the input array is complex and either #DFT_INVERSE or #DFT_REAL_OUTPUT are not set, the
output is a complex array of the same size as input. The function performs a forward or
inverse 1D or 2D transform of the whole input array or each row of the input array
independently, depending on the flags DFT_INVERSE and DFT_ROWS.
-- When DFT_INVERSE is set and the input array is real, or it is complex but DFT_REAL_OUTPUT
+- When #DFT_INVERSE is set and the input array is real, or it is complex but #DFT_REAL_OUTPUT
is set, the output is a real array of the same size as input. The function performs a 1D or 2D
inverse transformation of the whole input array or each individual row, depending on the flags
- DFT_INVERSE and DFT_ROWS.
+ #DFT_INVERSE and #DFT_ROWS.
-If DFT_SCALE is set, the scaling is done after the transformation.
+If #DFT_SCALE is set, the scaling is done after the transformation.
Unlike dct , the function supports arrays of arbitrary size. But only those arrays are processed
efficiently, whose sizes can be factorized in a product of small prime numbers (2, 3, and 5 in the
@@ -1985,7 +2133,7 @@ To optimize this sample, consider the following approaches:
- If different tiles in C can be calculated in parallel and, thus, the convolution is done by
parts, the loop can be threaded.
-All of the above improvements have been implemented in matchTemplate and filter2D . Therefore, by
+All of the above improvements have been implemented in #matchTemplate and #filter2D . Therefore, by
using them, you can get the performance even better than with the above theoretically optimal
implementation. Though, those two functions actually calculate cross-correlation, not convolution,
so you need to "flip" the second convolution operand B vertically and horizontally using flip .
@@ -1993,15 +2141,15 @@ so you need to "flip" the second convolution operand B vertically and horizontal
- An example using the discrete fourier transform can be found at
opencv_source_code/samples/cpp/dft.cpp
- (Python) An example using the dft functionality to perform Wiener deconvolution can be found
- at opencv_source/samples/python2/deconvolution.py
+ at opencv_source/samples/python/deconvolution.py
- (Python) An example rearranging the quadrants of a Fourier image can be found at
- opencv_source/samples/python2/dft.py
+ opencv_source/samples/python/dft.py
@param src input array that could be real or complex.
@param dst output array whose size and type depends on the flags .
-@param flags transformation flags, representing a combination of the cv::DftFlags
+@param flags transformation flags, representing a combination of the #DftFlags
@param nonzeroRows when the parameter is not zero, the function assumes that only the first
-nonzeroRows rows of the input array (DFT_INVERSE is not set) or only the first nonzeroRows of the
-output array (DFT_INVERSE is set) contain non-zeros, thus, the function can handle the rest of the
+nonzeroRows rows of the input array (#DFT_INVERSE is not set) or only the first nonzeroRows of the
+output array (#DFT_INVERSE is set) contain non-zeros, thus, the function can handle the rest of the
rows more efficiently and save some time; this technique is very useful for calculating array
cross-correlation or convolution using DFT.
@sa dct , getOptimalDFTSize , mulSpectrums, filter2D , matchTemplate , flip , cartToPolar ,
@@ -2011,13 +2159,13 @@ CV_EXPORTS_W void dft(InputArray src, OutputArray dst, int flags = 0, int nonzer
/** @brief Calculates the inverse Discrete Fourier Transform of a 1D or 2D array.
-idft(src, dst, flags) is equivalent to dft(src, dst, flags | DFT_INVERSE) .
-@note None of dft and idft scales the result by default. So, you should pass DFT_SCALE to one of
+idft(src, dst, flags) is equivalent to dft(src, dst, flags | #DFT_INVERSE) .
+@note None of dft and idft scales the result by default. So, you should pass #DFT_SCALE to one of
dft or idft explicitly to make these transforms mutually inverse.
@sa dft, dct, idct, mulSpectrums, getOptimalDFTSize
@param src input floating-point real or complex array.
@param dst output array whose size and type depend on the flags.
-@param flags operation flags (see dft and cv::DftFlags).
+@param flags operation flags (see dft and #DftFlags).
@param nonzeroRows number of dst rows to process; the rest of the rows have undefined content (see
the convolution sample in dft description.
*/
@@ -2025,7 +2173,7 @@ CV_EXPORTS_W void idft(InputArray src, OutputArray dst, int flags = 0, int nonze
/** @brief Performs a forward or inverse discrete Cosine transform of 1D or 2D array.
-The function dct performs a forward or inverse discrete Cosine transform (DCT) of a 1D or 2D
+The function cv::dct performs a forward or inverse discrete Cosine transform (DCT) of a 1D or 2D
floating-point array:
- Forward Cosine transform of a 1D vector of N elements:
\f[Y = C^{(N)} \cdot X\f]
@@ -2042,9 +2190,9 @@ floating-point array:
\f[X = \left (C^{(N)} \right )^T \cdot X \cdot C^{(N)}\f]
The function chooses the mode of operation by looking at the flags and size of the input array:
-- If (flags & DCT_INVERSE) == 0 , the function does a forward 1D or 2D transform. Otherwise, it
+- If (flags & #DCT_INVERSE) == 0 , the function does a forward 1D or 2D transform. Otherwise, it
is an inverse 1D or 2D transform.
-- If (flags & DCT_ROWS) != 0 , the function performs a 1D transform of each row.
+- If (flags & #DCT_ROWS) != 0 , the function performs a 1D transform of each row.
- If the array is a single column or a single row, the function performs a 1D transform.
- If none of the above is true, the function performs a 2D transform.
@@ -2076,7 +2224,7 @@ CV_EXPORTS_W void idct(InputArray src, OutputArray dst, int flags = 0);
/** @brief Performs the per-element multiplication of two Fourier spectrums.
-The function mulSpectrums performs the per-element multiplication of the two CCS-packed or complex
+The function cv::mulSpectrums performs the per-element multiplication of the two CCS-packed or complex
matrices that are results of a real or complex Fourier transform.
The function, together with dft and idft , may be used to calculate convolution (pass conjB=false )
@@ -2103,7 +2251,7 @@ original one. Arrays whose size is a power-of-two (2, 4, 8, 16, 32, ...) are the
Though, the arrays whose size is a product of 2's, 3's, and 5's (for example, 300 = 5\*5\*3\*2\*2)
are also processed quite efficiently.
-The function getOptimalDFTSize returns the minimum number N that is greater than or equal to vecsize
+The function cv::getOptimalDFTSize returns the minimum number N that is greater than or equal to vecsize
so that the DFT of a vector of size N can be processed efficiently. In the current implementation N
= 2 ^p^ \* 3 ^q^ \* 5 ^r^ for some integer p, q, r.
@@ -2119,7 +2267,7 @@ CV_EXPORTS_W int getOptimalDFTSize(int vecsize);
/** @brief Returns the default random number generator.
-The function theRNG returns the default random number generator. For each thread, there is a
+The function cv::theRNG returns the default random number generator. For each thread, there is a
separate random number generator, so you can use the function safely in multi-thread environments.
If you just need to get a single random number using this generator or initialize an array, you can
use randu or randn instead. But if you are going to generate many random numbers inside a loop, it
@@ -2128,6 +2276,14 @@ is much faster to use this function to retrieve the generator and then use RNG::
*/
CV_EXPORTS RNG& theRNG();
+/** @brief Sets state of default random number generator.
+
+The function cv::setRNGSeed sets state of default random number generator to custom value.
+@param seed new state for default random number generator
+@sa RNG, randu, randn
+*/
+CV_EXPORTS_W void setRNGSeed(int seed);
+
/** @brief Generates a single uniformly-distributed random number or an array of random numbers.
Non-template variant of the function fills the matrix dst with uniformly-distributed
@@ -2142,7 +2298,7 @@ CV_EXPORTS_W void randu(InputOutputArray dst, InputArray low, InputArray high);
/** @brief Fills the array with normally distributed random numbers.
-The function randn fills the matrix dst with normally distributed random numbers with the specified
+The function cv::randn fills the matrix dst with normally distributed random numbers with the specified
mean vector and the standard deviation matrix. The generated random numbers are clipped to fit the
value range of the output array data type.
@param dst output array of random numbers; the array must be pre-allocated and have 1 to 4 channels.
@@ -2155,7 +2311,7 @@ CV_EXPORTS_W void randn(InputOutputArray dst, InputArray mean, InputArray stddev
/** @brief Shuffles the array elements randomly.
-The function randShuffle shuffles the specified 1D array by randomly choosing pairs of elements and
+The function cv::randShuffle shuffles the specified 1D array by randomly choosing pairs of elements and
swapping them. The number of such swap operations will be dst.rows\*dst.cols\*iterFactor .
@param dst input/output numerical 1D array.
@param iterFactor scale factor that determines the number of random swap operations (see the details
@@ -2274,11 +2430,11 @@ public:
The operator performs %PCA of the supplied dataset. It is safe to reuse
the same PCA structure for multiple datasets. That is, if the structure
has been previously used with another dataset, the existing internal
- data is reclaimed and the new eigenvalues, @ref eigenvectors , and @ref
+ data is reclaimed and the new @ref eigenvalues, @ref eigenvectors and @ref
mean are allocated and computed.
- The computed eigenvalues are sorted from the largest to the smallest and
- the corresponding eigenvectors are stored as eigenvectors rows.
+ The computed @ref eigenvalues are sorted from the largest to the smallest and
+ the corresponding @ref eigenvectors are stored as eigenvectors rows.
@param data input samples stored as the matrix rows or as the matrix
columns.
@@ -2358,31 +2514,40 @@ public:
*/
void backProject(InputArray vec, OutputArray result) const;
- /** @brief write and load PCA matrix
+ /** @brief write PCA objects
-*/
- void write(FileStorage& fs ) const;
- void read(const FileNode& fs);
+ Writes @ref eigenvalues @ref eigenvectors and @ref mean to specified FileStorage
+ */
+ void write(FileStorage& fs) const;
+
+ /** @brief load PCA objects
+
+ Loads @ref eigenvalues @ref eigenvectors and @ref mean from specified FileNode
+ */
+ void read(const FileNode& fn);
Mat eigenvectors; //!< eigenvectors of the covariation matrix
Mat eigenvalues; //!< eigenvalues of the covariation matrix
Mat mean; //!< mean value subtracted before the projection and added after the back projection
};
-/** @example pca.cpp
- An example using %PCA for dimensionality reduction while maintaining an amount of variance
- */
+/** @example samples/cpp/pca.cpp
+An example using %PCA for dimensionality reduction while maintaining an amount of variance
+*/
+
+/** @example samples/cpp/tutorial_code/ml/introduction_to_pca/introduction_to_pca.cpp
+Check @ref tutorial_introduction_to_pca "the corresponding tutorial" for more details
+*/
/**
- @brief Linear Discriminant Analysis
- @todo document this class
- */
+@brief Linear Discriminant Analysis
+@todo document this class
+*/
class CV_EXPORTS LDA
{
public:
/** @brief constructor
- Initializes a LDA with num_components (default 0) and specifies how
- samples are aligned (default dataAsRow=true).
+ Initializes a LDA with num_components (default 0).
*/
explicit LDA(int num_components = 0);
@@ -2413,15 +2578,17 @@ public:
*/
~LDA();
- /** Compute the discriminants for data in src and labels.
+ /** Compute the discriminants for data in src (row aligned) and labels.
*/
void compute(InputArrayOfArrays src, InputArray labels);
/** Projects samples into the LDA subspace.
+ src may be one or more row aligned samples.
*/
Mat project(InputArray src);
/** Reconstructs projections from the LDA subspace.
+ src may be one or more row aligned projections.
*/
Mat reconstruct(InputArray src);
@@ -2437,11 +2604,10 @@ public:
static Mat subspaceReconstruct(InputArray W, InputArray mean, InputArray src);
protected:
- bool _dataAsRow;
+ bool _dataAsRow; // unused, but needed for 3.0 ABI compatibility.
int _num_components;
Mat _eigenvectors;
Mat _eigenvalues;
-
void lda(InputArrayOfArrays src, InputArray labels);
};
@@ -2483,7 +2649,7 @@ public:
/** @overload
initializes an empty SVD structure and then calls SVD::operator()
- @param src decomposed matrix.
+ @param src decomposed matrix. The depth has to be CV_32F or CV_64F.
@param flags operation flags (SVD::Flags)
*/
SVD( InputArray src, int flags = 0 );
@@ -2496,7 +2662,7 @@ public:
different matrices. Each time, if needed, the previous u,`vt` , and w
are reclaimed and the new matrices are created, which is all handled by
Mat::create.
- @param src decomposed matrix.
+ @param src decomposed matrix. The depth has to be CV_32F or CV_64F.
@param flags operation flags (SVD::Flags)
*/
SVD& operator ()( InputArray src, int flags = 0 );
@@ -2512,18 +2678,18 @@ public:
SVD::compute(A, w, u, vt);
@endcode
- @param src decomposed matrix
+ @param src decomposed matrix. The depth has to be CV_32F or CV_64F.
@param w calculated singular values
@param u calculated left singular vectors
- @param vt transposed matrix of right singular values
- @param flags operation flags - see SVD::SVD.
+ @param vt transposed matrix of right singular vectors
+ @param flags operation flags - see SVD::Flags.
*/
static void compute( InputArray src, OutputArray w,
OutputArray u, OutputArray vt, int flags = 0 );
/** @overload
computes singular values of a matrix
- @param src decomposed matrix
+ @param src decomposed matrix. The depth has to be CV_32F or CV_64F.
@param w calculated singular values
@param flags operation flags - see SVD::Flags.
*/
@@ -2567,7 +2733,7 @@ public:
if you need to solve many linear systems with the same left-hand side
(for example, src ). If all you need is to solve a single system
(possibly with multiple rhs immediately available), simply call solve
- add pass DECOMP_SVD there. It does absolutely the same thing.
+ add pass #DECOMP_SVD there. It does absolutely the same thing.
*/
void backSubst( InputArray rhs, OutputArray dst ) const;
@@ -2674,7 +2840,7 @@ public:
double a1 = rng.uniform((double)0, (double)1);
// produces float from [0, 1)
- double b = rng.uniform(0.f, 1.f);
+ float b = rng.uniform(0.f, 1.f);
// produces double from [0, 1)
double c = rng.uniform(0., 1.);
@@ -2690,9 +2856,9 @@ public:
want a floating-point random number, but the range boundaries are
integer numbers, either put dots in the end, if they are constants, or
use explicit type cast operators, as in the a1 initialization above.
- @param a lower inclusive boundary of the returned random numbers.
- @param b upper non-inclusive boundary of the returned random numbers.
- */
+ @param a lower inclusive boundary of the returned random number.
+ @param b upper non-inclusive boundary of the returned random number.
+ */
int uniform(int a, int b);
/** @overload */
float uniform(float a, float b);
@@ -2746,13 +2912,15 @@ public:
double gaussian(double sigma);
uint64 state;
+
+ bool operator ==(const RNG& other) const;
};
/** @brief Mersenne Twister random number generator
Inspired by http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/MT2002/CODES/mt19937ar.c
@todo document
- */
+*/
class CV_EXPORTS RNG_MT19937
{
public:
@@ -2770,17 +2938,11 @@ public:
unsigned operator ()(unsigned N);
unsigned operator ()();
- /** @brief returns uniformly distributed integer random number from [a,b) range
-
-*/
+ /** @brief returns uniformly distributed integer random number from [a,b) range*/
int uniform(int a, int b);
- /** @brief returns uniformly distributed floating-point random number from [a,b) range
-
-*/
+ /** @brief returns uniformly distributed floating-point random number from [a,b) range*/
float uniform(float a, float b);
- /** @brief returns uniformly distributed double-precision floating-point random number from [a,b) range
-
-*/
+ /** @brief returns uniformly distributed double-precision floating-point random number from [a,b) range*/
double uniform(double a, double b);
private:
@@ -2794,19 +2956,19 @@ private:
//! @addtogroup core_cluster
//! @{
-/** @example kmeans.cpp
- An example on K-means clustering
+/** @example samples/cpp/kmeans.cpp
+An example on K-means clustering
*/
/** @brief Finds centers of clusters and groups input samples around the clusters.
The function kmeans implements a k-means algorithm that finds the centers of cluster_count clusters
-and groups the input samples around the clusters. As an output, \f$\texttt{labels}_i\f$ contains a
+and groups the input samples around the clusters. As an output, \f$\texttt{bestLabels}_i\f$ contains a
0-based cluster index for the sample stored in the \f$i^{th}\f$ row of the samples matrix.
@note
- (Python) An example on K-means clustering can be found at
- opencv_source_code/samples/python2/kmeans.py
+ opencv_source_code/samples/python/kmeans.py
@param data Data for clustering. An array of N-Dimensional points with float coordinates is needed.
Examples of this array can be:
- Mat points(count, 2, CV_32F);
@@ -2828,7 +2990,7 @@ function parameter).
after every attempt. The best (minimum) value is chosen and the corresponding labels and the
compactness value are returned by the function. Basically, you can use only the core of the
function, set the number of attempts to 1, initialize labels each time using a custom algorithm,
-pass them with the ( flags = KMEANS_USE_INITIAL_LABELS ) flag, and then choose the best
+pass them with the ( flags = #KMEANS_USE_INITIAL_LABELS ) flag, and then choose the best
(most-compact) clustering.
*/
CV_EXPORTS_W double kmeans( InputArray data, int K, InputOutputArray bestLabels,
@@ -2875,6 +3037,21 @@ public:
};
+static inline
+String& operator << (String& out, Ptr fmtd)
+{
+ fmtd->reset();
+ for(const char* str = fmtd->next(); str; str = fmtd->next())
+ out += cv::String(str);
+ return out;
+}
+
+static inline
+String& operator << (String& out, const Mat& mtx)
+{
+ return out << Formatter::get()->format(mtx);
+}
+
//////////////////////////////////////// Algorithm ////////////////////////////////////
class CV_EXPORTS Algorithm;
@@ -2890,32 +3067,9 @@ matching, graph-cut etc.), background subtraction (which can be done using mixtu
models, codebook-based algorithm etc.), optical flow (block matching, Lucas-Kanade, Horn-Schunck
etc.).
-Here is example of SIFT use in your application via Algorithm interface:
-@code
- #include "opencv2/opencv.hpp"
- #include "opencv2/xfeatures2d.hpp"
- using namespace cv::xfeatures2d;
-
- Ptr sift = SIFT::create();
- FileStorage fs("sift_params.xml", FileStorage::READ);
- if( fs.isOpened() ) // if we have file with parameters, read them
- {
- sift->read(fs["sift_params"]);
- fs.release();
- }
- else // else modify the parameters and store them; user can later edit the file to use different parameters
- {
- sift->setContrastThreshold(0.01f); // lower the contrast threshold, compared to the default value
- {
- WriteStructContext ws(fs, "sift_params", CV_NODE_MAP);
- sift->write(fs);
- }
- }
- Mat image = imread("myimage.png", 0), descriptors;
- vector keypoints;
- sift->detectAndCompute(image, noArray(), keypoints, descriptors);
-@endcode
- */
+Here is example of SimpleBlobDetector use in your application via Algorithm interface:
+@snippet snippets/core_various.cpp Algorithm
+*/
class CV_EXPORTS_W Algorithm
{
public:
@@ -2928,26 +3082,32 @@ public:
/** @brief Stores algorithm parameters in a file storage
*/
- virtual void write(FileStorage& fs) const { (void)fs; }
+ virtual void write(FileStorage& fs) const { CV_UNUSED(fs); }
+
+ /** @brief simplified API for language bindings
+ * @overload
+ */
+ CV_WRAP void write(const Ptr& fs, const String& name = String()) const;
/** @brief Reads algorithm parameters from a file storage
*/
- virtual void read(const FileNode& fn) { (void)fn; }
+ CV_WRAP virtual void read(const FileNode& fn) { CV_UNUSED(fn); }
/** @brief Returns true if the Algorithm is empty (e.g. in the very beginning or after unsuccessful read
- */
- virtual bool empty() const { return false; }
+ */
+ CV_WRAP virtual bool empty() const { return false; }
/** @brief Reads algorithm from the file node
- This is static template method of Algorithm. It's usage is following (in the case of SVM):
- @code
- Ptr svm = Algorithm::read(fn);
- @endcode
- In order to make this method work, the derived class must overwrite Algorithm::read(const
- FileNode& fn) and also have static create() method without parameters
- (or with all the optional parameters)
- */
+ This is static template method of Algorithm. It's usage is following (in the case of SVM):
+ @code
+ cv::FileStorage fsRead("example.xml", FileStorage::READ);
+ Ptr svm = Algorithm::read(fsRead.root());
+ @endcode
+ In order to make this method work, the derived class must overwrite Algorithm::read(const
+ FileNode& fn) and also have static create() method without parameters
+ (or with all the optional parameters)
+ */
template static Ptr<_Tp> read(const FileNode& fn)
{
Ptr<_Tp> obj = _Tp::create();
@@ -2957,20 +3117,22 @@ public:
/** @brief Loads algorithm from the file
- @param filename Name of the file to read.
- @param objname The optional name of the node to read (if empty, the first top-level node will be used)
+ @param filename Name of the file to read.
+ @param objname The optional name of the node to read (if empty, the first top-level node will be used)
- This is static template method of Algorithm. It's usage is following (in the case of SVM):
- @code
- Ptr svm = Algorithm::load("my_svm_model.xml");
- @endcode
- In order to make this method work, the derived class must overwrite Algorithm::read(const
- FileNode& fn).
- */
+ This is static template method of Algorithm. It's usage is following (in the case of SVM):
+ @code
+ Ptr svm = Algorithm::load("my_svm_model.xml");
+ @endcode
+ In order to make this method work, the derived class must overwrite Algorithm::read(const
+ FileNode& fn).
+ */
template static Ptr<_Tp> load(const String& filename, const String& objname=String())
{
FileStorage fs(filename, FileStorage::READ);
+ CV_Assert(fs.isOpened());
FileNode fn = objname.empty() ? fs.getFirstTopLevelNode() : fs[objname];
+ if (fn.empty()) return Ptr<_Tp>();
Ptr<_Tp> obj = _Tp::create();
obj->read(fn);
return !obj->empty() ? obj : Ptr<_Tp>();
@@ -2978,14 +3140,14 @@ public:
/** @brief Loads algorithm from a String
- @param strModel The string variable containing the model you want to load.
- @param objname The optional name of the node to read (if empty, the first top-level node will be used)
+ @param strModel The string variable containing the model you want to load.
+ @param objname The optional name of the node to read (if empty, the first top-level node will be used)
- This is static template method of Algorithm. It's usage is following (in the case of SVM):
- @code
- Ptr svm = Algorithm::loadFromString(myStringModel);
- @endcode
- */
+ This is static template method of Algorithm. It's usage is following (in the case of SVM):
+ @code
+ Ptr svm = Algorithm::loadFromString(myStringModel);
+ @endcode
+ */
template static Ptr<_Tp> loadFromString(const String& strModel, const String& objname=String())
{
FileStorage fs(strModel, FileStorage::READ + FileStorage::MEMORY);
@@ -2996,17 +3158,20 @@ public:
}
/** Saves the algorithm to a file.
- In order to make this method work, the derived class must implement Algorithm::write(FileStorage& fs). */
+ In order to make this method work, the derived class must implement Algorithm::write(FileStorage& fs). */
CV_WRAP virtual void save(const String& filename) const;
/** Returns the algorithm string identifier.
- This string is used as top level xml/yml node tag when the object is saved to a file or string. */
+ This string is used as top level xml/yml node tag when the object is saved to a file or string. */
CV_WRAP virtual String getDefaultName() const;
+
+protected:
+ void writeFormat(FileStorage& fs) const;
};
struct Param {
enum { INT=0, BOOLEAN=1, REAL=2, STRING=3, MAT=4, MAT_VECTOR=5, ALGORITHM=6, FLOAT=7,
- UNSIGNED_INT=8, UINT64=9, UCHAR=11 };
+ UNSIGNED_INT=8, UINT64=9, UCHAR=11, SCALAR=12 };
};
@@ -3099,6 +3264,14 @@ template<> struct ParamType
enum { type = Param::UCHAR };
};
+template<> struct ParamType
+{
+ typedef const Scalar& const_param_type;
+ typedef Scalar member_type;
+
+ enum { type = Param::SCALAR };
+};
+
//! @} core_basic
} //namespace cv
@@ -3107,5 +3280,6 @@ template<> struct ParamType
#include "opencv2/core/cvstd.inl.hpp"
#include "opencv2/core/utility.hpp"
#include "opencv2/core/optim.hpp"
+#include "opencv2/core/ovx.hpp"
-#endif /*__OPENCV_CORE_HPP__*/
+#endif /*OPENCV_CORE_HPP*/
diff --git a/include/opencv2/core/affine.hpp b/include/opencv2/core/affine.hpp
index 3b527cd..7e2ed30 100644
--- a/include/opencv2/core/affine.hpp
+++ b/include/opencv2/core/affine.hpp
@@ -41,8 +41,8 @@
//
//M*/
-#ifndef __OPENCV_CORE_AFFINE3_HPP__
-#define __OPENCV_CORE_AFFINE3_HPP__
+#ifndef OPENCV_CORE_AFFINE3_HPP
+#define OPENCV_CORE_AFFINE3_HPP
#ifdef __cplusplus
@@ -55,7 +55,72 @@ namespace cv
//! @{
/** @brief Affine transform
- @todo document
+ *
+ * It represents a 4x4 homogeneous transformation matrix \f$T\f$
+ *
+ * \f[T =
+ * \begin{bmatrix}
+ * R & t\\
+ * 0 & 1\\
+ * \end{bmatrix}
+ * \f]
+ *
+ * where \f$R\f$ is a 3x3 rotation matrix and \f$t\f$ is a 3x1 translation vector.
+ *
+ * You can specify \f$R\f$ either by a 3x3 rotation matrix or by a 3x1 rotation vector,
+ * which is converted to a 3x3 rotation matrix by the Rodrigues formula.
+ *
+ * To construct a matrix \f$T\f$ representing first rotation around the axis \f$r\f$ with rotation
+ * angle \f$|r|\f$ in radian (right hand rule) and then translation by the vector \f$t\f$, you can use
+ *
+ * @code
+ * cv::Vec3f r, t;
+ * cv::Affine3f T(r, t);
+ * @endcode
+ *
+ * If you already have the rotation matrix \f$R\f$, then you can use
+ *
+ * @code
+ * cv::Matx33f R;
+ * cv::Affine3f T(R, t);
+ * @endcode
+ *
+ * To extract the rotation matrix \f$R\f$ from \f$T\f$, use
+ *
+ * @code
+ * cv::Matx33f R = T.rotation();
+ * @endcode
+ *
+ * To extract the translation vector \f$t\f$ from \f$T\f$, use
+ *
+ * @code
+ * cv::Vec3f t = T.translation();
+ * @endcode
+ *
+ * To extract the rotation vector \f$r\f$ from \f$T\f$, use
+ *
+ * @code
+ * cv::Vec3f r = T.rvec();
+ * @endcode
+ *
+ * Note that since the mapping from rotation vectors to rotation matrices
+ * is many to one. The returned rotation vector is not necessarily the one
+ * you used before to set the matrix.
+ *
+ * If you have two transformations \f$T = T_1 * T_2\f$, use
+ *
+ * @code
+ * cv::Affine3f T, T1, T2;
+ * T = T2.concatenate(T1);
+ * @endcode
+ *
+ * To get the inverse transform of \f$T\f$, use
+ *
+ * @code
+ * cv::Affine3f T, T_inv;
+ * T_inv = T.inv();
+ * @endcode
+ *
*/
template
class Affine3
@@ -66,54 +131,136 @@ namespace cv
typedef Matx Mat4;
typedef Vec Vec3;
+ //! Default constructor. It represents a 4x4 identity matrix.
Affine3();
//! Augmented affine matrix
Affine3(const Mat4& affine);
- //! Rotation matrix
+ /**
+ * The resulting 4x4 matrix is
+ *
+ * \f[
+ * \begin{bmatrix}
+ * R & t\\
+ * 0 & 1\\
+ * \end{bmatrix}
+ * \f]
+ *
+ * @param R 3x3 rotation matrix.
+ * @param t 3x1 translation vector.
+ */
Affine3(const Mat3& R, const Vec3& t = Vec3::all(0));
- //! Rodrigues vector
+ /**
+ * Rodrigues vector.
+ *
+ * The last row of the current matrix is set to [0,0,0,1].
+ *
+ * @param rvec 3x1 rotation vector. Its direction indicates the rotation axis and its length
+ * indicates the rotation angle in radian (using right hand rule).
+ * @param t 3x1 translation vector.
+ */
Affine3(const Vec3& rvec, const Vec3& t = Vec3::all(0));
- //! Combines all contructors above. Supports 4x4, 4x3, 3x3, 1x3, 3x1 sizes of data matrix
+ /**
+ * Combines all constructors above. Supports 4x4, 3x4, 3x3, 1x3, 3x1 sizes of data matrix.
+ *
+ * The last row of the current matrix is set to [0,0,0,1] when data is not 4x4.
+ *
+ * @param data 1-channel matrix.
+ * when it is 4x4, it is copied to the current matrix and t is not used.
+ * When it is 3x4, it is copied to the upper part 3x4 of the current matrix and t is not used.
+ * When it is 3x3, it is copied to the upper left 3x3 part of the current matrix.
+ * When it is 3x1 or 1x3, it is treated as a rotation vector and the Rodrigues formula is used
+ * to compute a 3x3 rotation matrix.
+ * @param t 3x1 translation vector. It is used only when data is neither 4x4 nor 3x4.
+ */
explicit Affine3(const Mat& data, const Vec3& t = Vec3::all(0));
- //! From 16th element array
+ //! From 16-element array
explicit Affine3(const float_type* vals);
- //! Create identity transform
+ //! Create an 4x4 identity transform
static Affine3 Identity();
- //! Rotation matrix
+ /**
+ * Rotation matrix.
+ *
+ * Copy the rotation matrix to the upper left 3x3 part of the current matrix.
+ * The remaining elements of the current matrix are not changed.
+ *
+ * @param R 3x3 rotation matrix.
+ *
+ */
void rotation(const Mat3& R);
- //! Rodrigues vector
+ /**
+ * Rodrigues vector.
+ *
+ * It sets the upper left 3x3 part of the matrix. The remaining part is unaffected.
+ *
+ * @param rvec 3x1 rotation vector. The direction indicates the rotation axis and
+ * its length indicates the rotation angle in radian (using the right thumb convention).
+ */
void rotation(const Vec3& rvec);
- //! Combines rotation methods above. Suports 3x3, 1x3, 3x1 sizes of data matrix;
+ /**
+ * Combines rotation methods above. Supports 3x3, 1x3, 3x1 sizes of data matrix.
+ *
+ * It sets the upper left 3x3 part of the matrix. The remaining part is unaffected.
+ *
+ * @param data 1-channel matrix.
+ * When it is a 3x3 matrix, it sets the upper left 3x3 part of the current matrix.
+ * When it is a 1x3 or 3x1 matrix, it is used as a rotation vector. The Rodrigues formula
+ * is used to compute the rotation matrix and sets the upper left 3x3 part of the current matrix.
+ */
void rotation(const Mat& data);
+ /**
+ * Copy the 3x3 matrix L to the upper left part of the current matrix
+ *
+ * It sets the upper left 3x3 part of the matrix. The remaining part is unaffected.
+ *
+ * @param L 3x3 matrix.
+ */
void linear(const Mat3& L);
+
+ /**
+ * Copy t to the first three elements of the last column of the current matrix
+ *
+ * It sets the upper right 3x1 part of the matrix. The remaining part is unaffected.
+ *
+ * @param t 3x1 translation vector.
+ */
void translation(const Vec3& t);
+ //! @return the upper left 3x3 part
Mat3 rotation() const;
+
+ //! @return the upper left 3x3 part
Mat3 linear() const;
+
+ //! @return the upper right 3x1 part
Vec3 translation() const;
- //! Rodrigues vector
+ //! Rodrigues vector.
+ //! @return a vector representing the upper left 3x3 rotation matrix of the current matrix.
+ //! @warning Since the mapping between rotation vectors and rotation matrices is many to one,
+ //! this function returns only one rotation vector that represents the current rotation matrix,
+ //! which is not necessarily the same one set by `rotation(const Vec3& rvec)`.
Vec3 rvec() const;
+ //! @return the inverse of the current matrix.
Affine3 inv(int method = cv::DECOMP_SVD) const;
//! a.rotate(R) is equivalent to Affine(R, 0) * a;
Affine3 rotate(const Mat3& R) const;
- //! a.rotate(R) is equivalent to Affine(rvec, 0) * a;
+ //! a.rotate(rvec) is equivalent to Affine(rvec, 0) * a;
Affine3 rotate(const Vec3& rvec) const;
- //! a.translate(t) is equivalent to Affine(E, t) * a;
+ //! a.translate(t) is equivalent to Affine(E, t) * a, where E is an identity matrix
Affine3 translate(const Vec3& t) const;
//! a.concatenate(affine) is equivalent to affine * a;
@@ -136,6 +283,7 @@ namespace cv
template static
Affine3 operator*(const Affine3& affine1, const Affine3& affine2);
+ //! V is a 3-element vector with member fields x, y and z
template static
V operator*(const Affine3& affine, const V& vector);
@@ -153,15 +301,24 @@ namespace cv
typedef _Tp channel_type;
enum { generic_type = 0,
- depth = DataType::depth,
channels = 16,
- fmt = DataType::fmt + ((channels - 1) << 8),
- type = CV_MAKETYPE(depth, channels)
+ fmt = traits::SafeFmt::fmt + ((channels - 1) << 8)
+#ifdef OPENCV_TRAITS_ENABLE_DEPRECATED
+ ,depth = DataType::depth
+ ,type = CV_MAKETYPE(depth, channels)
+#endif
};
typedef Vec vec_type;
};
+ namespace traits {
+ template
+ struct Depth< Affine3<_Tp> > { enum { value = Depth<_Tp>::value }; };
+ template
+ struct Type< Affine3<_Tp> > { enum { value = CV_MAKETYPE(Depth<_Tp>::value, 16) }; };
+ } // namespace
+
//! @} core
}
@@ -169,7 +326,7 @@ namespace cv
//! @cond IGNORED
///////////////////////////////////////////////////////////////////////////////////
-// Implementaiton
+// Implementation
template inline
cv::Affine3::Affine3()
@@ -202,7 +359,8 @@ cv::Affine3::Affine3(const Vec3& _rvec, const Vec3& t)
template inline
cv::Affine3::Affine3(const cv::Mat& data, const Vec3& t)
{
- CV_Assert(data.type() == cv::DataType::type);
+ CV_Assert(data.type() == cv::traits::Type::value);
+ CV_Assert(data.channels() == 1);
if (data.cols == 4 && data.rows == 4)
{
@@ -213,11 +371,13 @@ cv::Affine3::Affine3(const cv::Mat& data, const Vec3& t)
{
rotation(data(Rect(0, 0, 3, 3)));
translation(data(Rect(3, 0, 1, 3)));
- return;
+ }
+ else
+ {
+ rotation(data);
+ translation(t);
}
- rotation(data);
- translation(t);
matrix.val[12] = matrix.val[13] = matrix.val[14] = 0;
matrix.val[15] = 1;
}
@@ -241,40 +401,36 @@ void cv::Affine3::rotation(const Mat3& R)
template inline
void cv::Affine3::rotation(const Vec3& _rvec)
{
- double rx = _rvec[0], ry = _rvec[1], rz = _rvec[2];
- double theta = std::sqrt(rx*rx + ry*ry + rz*rz);
+ double theta = norm(_rvec);
if (theta < DBL_EPSILON)
rotation(Mat3::eye());
else
{
- const double I[] = { 1, 0, 0, 0, 1, 0, 0, 0, 1 };
-
double c = std::cos(theta);
double s = std::sin(theta);
double c1 = 1. - c;
double itheta = (theta != 0) ? 1./theta : 0.;
- rx *= itheta; ry *= itheta; rz *= itheta;
+ Point3_ r = _rvec*itheta;
- double rrt[] = { rx*rx, rx*ry, rx*rz, rx*ry, ry*ry, ry*rz, rx*rz, ry*rz, rz*rz };
- double _r_x_[] = { 0, -rz, ry, rz, 0, -rx, -ry, rx, 0 };
- Mat3 R;
+ Mat3 rrt( r.x*r.x, r.x*r.y, r.x*r.z, r.x*r.y, r.y*r.y, r.y*r.z, r.x*r.z, r.y*r.z, r.z*r.z );
+ Mat3 r_x( 0, -r.z, r.y, r.z, 0, -r.x, -r.y, r.x, 0 );
// R = cos(theta)*I + (1 - cos(theta))*r*rT + sin(theta)*[r_x]
// where [r_x] is [0 -rz ry; rz 0 -rx; -ry rx 0]
- for(int k = 0; k < 9; ++k)
- R.val[k] = static_cast(c*I[k] + c1*rrt[k] + s*_r_x_[k]);
+ Mat3 R = c*Mat3::eye() + c1*rrt + s*r_x;
rotation(R);
}
}
-//Combines rotation methods above. Suports 3x3, 1x3, 3x1 sizes of data matrix;
+//Combines rotation methods above. Supports 3x3, 1x3, 3x1 sizes of data matrix;
template inline
void cv::Affine3::rotation(const cv::Mat& data)
{
- CV_Assert(data.type() == cv::DataType::type);
+ CV_Assert(data.type() == cv::traits::Type::value);
+ CV_Assert(data.channels() == 1);
if (data.cols == 3 && data.rows == 3)
{
@@ -289,7 +445,7 @@ void cv::Affine3::rotation(const cv::Mat& data)
rotation(_rvec);
}
else
- CV_Assert(!"Input marix can be 3x3, 1x3 or 3x1");
+ CV_Error(Error::StsError, "Input matrix can only be 3x3, 1x3 or 3x1");
}
template inline
@@ -488,21 +644,21 @@ cv::Vec3d cv::operator*(const cv::Affine3d& affine, const cv::Vec3d& v)
template inline
cv::Affine3::Affine3(const Eigen::Transform& affine)
{
- cv::Mat(4, 4, cv::DataType::type, affine.matrix().data()).copyTo(matrix);
+ cv::Mat(4, 4, cv::traits::Type::value, affine.matrix().data()).copyTo(matrix);
}
template inline
cv::Affine3::Affine3(const Eigen::Transform& affine)
{
Eigen::Transform a = affine;
- cv::Mat(4, 4, cv::DataType::type, a.matrix().data()).copyTo(matrix);
+ cv::Mat(4, 4, cv::traits::Type::value, a.matrix().data()).copyTo(matrix);
}
template inline
cv::Affine3::operator Eigen::Transform() const
{
Eigen::Transform r;
- cv::Mat hdr(4, 4, cv::DataType::type, r.matrix().data());
+ cv::Mat hdr(4, 4, cv::traits::Type::value, r.matrix().data());
cv::Mat(matrix, false).copyTo(hdr);
return r;
}
@@ -519,4 +675,4 @@ cv::Affine3::operator Eigen::Transform() const
#endif /* __cplusplus */
-#endif /* __OPENCV_CORE_AFFINE3_HPP__ */
+#endif /* OPENCV_CORE_AFFINE3_HPP */
diff --git a/include/opencv2/core/base.hpp b/include/opencv2/core/base.hpp
index 83cc311..31cd7a8 100644
--- a/include/opencv2/core/base.hpp
+++ b/include/opencv2/core/base.hpp
@@ -42,18 +42,20 @@
//
//M*/
-#ifndef __OPENCV_CORE_BASE_HPP__
-#define __OPENCV_CORE_BASE_HPP__
+#ifndef OPENCV_CORE_BASE_HPP
+#define OPENCV_CORE_BASE_HPP
#ifndef __cplusplus
# error base.hpp header must be compiled as C++
#endif
+#include "opencv2/opencv_modules.hpp"
+
#include
+#include
#include "opencv2/core/cvdef.h"
#include "opencv2/core/cvstd.hpp"
-#include "opencv2/hal.hpp"
namespace cv
{
@@ -64,38 +66,38 @@ namespace cv
namespace Error {
//! error codes
enum Code {
- StsOk= 0, //!< everithing is ok
+ StsOk= 0, //!< everything is ok
StsBackTrace= -1, //!< pseudo error for back trace
StsError= -2, //!< unknown /unspecified error
StsInternal= -3, //!< internal error (bad state)
StsNoMem= -4, //!< insufficient memory
StsBadArg= -5, //!< function arg/param is bad
StsBadFunc= -6, //!< unsupported function
- StsNoConv= -7, //!< iter. didn't converge
+ StsNoConv= -7, //!< iteration didn't converge
StsAutoTrace= -8, //!< tracing
HeaderIsNull= -9, //!< image header is NULL
BadImageSize= -10, //!< image size is invalid
BadOffset= -11, //!< offset is invalid
BadDataPtr= -12, //!<
- BadStep= -13, //!<
+ BadStep= -13, //!< image step is wrong, this may happen for a non-continuous matrix.
BadModelOrChSeq= -14, //!<
- BadNumChannels= -15, //!<
+ BadNumChannels= -15, //!< bad number of channels, for example, some functions accept only single channel matrices.
BadNumChannel1U= -16, //!<
- BadDepth= -17, //!<
+ BadDepth= -17, //!< input image depth is not supported by the function
BadAlphaChannel= -18, //!<
- BadOrder= -19, //!<
- BadOrigin= -20, //!<
- BadAlign= -21, //!<
+ BadOrder= -19, //!< number of dimensions is out of range
+ BadOrigin= -20, //!< incorrect input origin
+ BadAlign= -21, //!< incorrect input align
BadCallBack= -22, //!<
BadTileSize= -23, //!<
- BadCOI= -24, //!<
- BadROISize= -25, //!<
+ BadCOI= -24, //!< input COI is not supported
+ BadROISize= -25, //!< incorrect input roi
MaskIsTiled= -26, //!<
StsNullPtr= -27, //!< null pointer
StsVecLengthErr= -28, //!< incorrect vector length
- StsFilterStructContentErr= -29, //!< incorr. filter structure content
- StsKernelStructContentErr= -30, //!< incorr. transform kernel content
- StsFilterOffsetErr= -31, //!< incorrect filter ofset value
+ StsFilterStructContentErr= -29, //!< incorrect filter structure content
+ StsKernelStructContentErr= -30, //!< incorrect transform kernel content
+ StsFilterOffsetErr= -31, //!< incorrect filter offset value
StsBadSize= -201, //!< the input/output structure size is incorrect
StsDivByZero= -202, //!< division by zero
StsInplaceNotSupported= -203, //!< in-place operation is not supported
@@ -111,13 +113,13 @@ enum Code {
StsNotImplemented= -213, //!< the requested function/feature is not implemented
StsBadMemBlock= -214, //!< an allocated block has been corrupted
StsAssert= -215, //!< assertion failed
- GpuNotSupported= -216,
- GpuApiCallError= -217,
- OpenGlNotSupported= -218,
- OpenGlApiCallError= -219,
- OpenCLApiCallError= -220,
+ GpuNotSupported= -216, //!< no CUDA support
+ GpuApiCallError= -217, //!< GPU API call error
+ OpenGlNotSupported= -218, //!< no OpenGL support
+ OpenGlApiCallError= -219, //!< OpenGL API call error
+ OpenCLApiCallError= -220, //!< OpenCL API call error
OpenCLDoubleNotSupported= -221,
- OpenCLInitError= -222,
+ OpenCLInitError= -222, //!< OpenCL initialization error
OpenCLNoAMDBlasFft= -223
};
} //Error
@@ -150,28 +152,57 @@ enum DecompTypes {
};
/** norm types
-- For one array:
-\f[norm = \forkthree{\|\texttt{src1}\|_{L_{\infty}} = \max _I | \texttt{src1} (I)|}{if \(\texttt{normType} = \texttt{NORM\_INF}\) }
-{ \| \texttt{src1} \| _{L_1} = \sum _I | \texttt{src1} (I)|}{if \(\texttt{normType} = \texttt{NORM\_L1}\) }
-{ \| \texttt{src1} \| _{L_2} = \sqrt{\sum_I \texttt{src1}(I)^2} }{if \(\texttt{normType} = \texttt{NORM\_L2}\) }\f]
-- Absolute norm for two arrays
-\f[norm = \forkthree{\|\texttt{src1}-\texttt{src2}\|_{L_{\infty}} = \max _I | \texttt{src1} (I) - \texttt{src2} (I)|}{if \(\texttt{normType} = \texttt{NORM\_INF}\) }
-{ \| \texttt{src1} - \texttt{src2} \| _{L_1} = \sum _I | \texttt{src1} (I) - \texttt{src2} (I)|}{if \(\texttt{normType} = \texttt{NORM\_L1}\) }
-{ \| \texttt{src1} - \texttt{src2} \| _{L_2} = \sqrt{\sum_I (\texttt{src1}(I) - \texttt{src2}(I))^2} }{if \(\texttt{normType} = \texttt{NORM\_L2}\) }\f]
+src1 and src2 denote input arrays.
+*/
-- Relative norm for two arrays
-\f[norm = \forkthree{\frac{\|\texttt{src1}-\texttt{src2}\|_{L_{\infty}} }{\|\texttt{src2}\|_{L_{\infty}} }}{if \(\texttt{normType} = \texttt{NORM\_RELATIVE\_INF}\) }
-{ \frac{\|\texttt{src1}-\texttt{src2}\|_{L_1} }{\|\texttt{src2}\|_{L_1}} }{if \(\texttt{normType} = \texttt{NORM\_RELATIVE\_L1}\) }
-{ \frac{\|\texttt{src1}-\texttt{src2}\|_{L_2} }{\|\texttt{src2}\|_{L_2}} }{if \(\texttt{normType} = \texttt{NORM\_RELATIVE\_L2}\) }\f]
- */
-enum NormTypes { NORM_INF = 1,
+enum NormTypes {
+ /**
+ \f[
+ norm = \forkthree
+ {\|\texttt{src1}\|_{L_{\infty}} = \max _I | \texttt{src1} (I)|}{if \(\texttt{normType} = \texttt{NORM_INF}\) }
+ {\|\texttt{src1}-\texttt{src2}\|_{L_{\infty}} = \max _I | \texttt{src1} (I) - \texttt{src2} (I)|}{if \(\texttt{normType} = \texttt{NORM_INF}\) }
+ {\frac{\|\texttt{src1}-\texttt{src2}\|_{L_{\infty}} }{\|\texttt{src2}\|_{L_{\infty}} }}{if \(\texttt{normType} = \texttt{NORM_RELATIVE | NORM_INF}\) }
+ \f]
+ */
+ NORM_INF = 1,
+ /**
+ \f[
+ norm = \forkthree
+ {\| \texttt{src1} \| _{L_1} = \sum _I | \texttt{src1} (I)|}{if \(\texttt{normType} = \texttt{NORM_L1}\)}
+ { \| \texttt{src1} - \texttt{src2} \| _{L_1} = \sum _I | \texttt{src1} (I) - \texttt{src2} (I)|}{if \(\texttt{normType} = \texttt{NORM_L1}\) }
+ { \frac{\|\texttt{src1}-\texttt{src2}\|_{L_1} }{\|\texttt{src2}\|_{L_1}} }{if \(\texttt{normType} = \texttt{NORM_RELATIVE | NORM_L1}\) }
+ \f]*/
NORM_L1 = 2,
+ /**
+ \f[
+ norm = \forkthree
+ { \| \texttt{src1} \| _{L_2} = \sqrt{\sum_I \texttt{src1}(I)^2} }{if \(\texttt{normType} = \texttt{NORM_L2}\) }
+ { \| \texttt{src1} - \texttt{src2} \| _{L_2} = \sqrt{\sum_I (\texttt{src1}(I) - \texttt{src2}(I))^2} }{if \(\texttt{normType} = \texttt{NORM_L2}\) }
+ { \frac{\|\texttt{src1}-\texttt{src2}\|_{L_2} }{\|\texttt{src2}\|_{L_2}} }{if \(\texttt{normType} = \texttt{NORM_RELATIVE | NORM_L2}\) }
+ \f]
+ */
NORM_L2 = 4,
+ /**
+ \f[
+ norm = \forkthree
+ { \| \texttt{src1} \| _{L_2} ^{2} = \sum_I \texttt{src1}(I)^2} {if \(\texttt{normType} = \texttt{NORM_L2SQR}\)}
+ { \| \texttt{src1} - \texttt{src2} \| _{L_2} ^{2} = \sum_I (\texttt{src1}(I) - \texttt{src2}(I))^2 }{if \(\texttt{normType} = \texttt{NORM_L2SQR}\) }
+ { \left(\frac{\|\texttt{src1}-\texttt{src2}\|_{L_2} }{\|\texttt{src2}\|_{L_2}}\right)^2 }{if \(\texttt{normType} = \texttt{NORM_RELATIVE | NORM_L2}\) }
+ \f]
+ */
NORM_L2SQR = 5,
+ /**
+ In the case of one input array, calculates the Hamming distance of the array from zero,
+ In the case of two input arrays, calculates the Hamming distance between the arrays.
+ */
NORM_HAMMING = 6,
+ /**
+ Similar to NORM_HAMMING, but in the calculation, each two bits of the input sequence will
+ be added and treated as a single bit to be used in the same calculation as NORM_HAMMING.
+ */
NORM_HAMMING2 = 7,
- NORM_TYPE_MASK = 7,
+ NORM_TYPE_MASK = 7, //!< bit-mask which can be used to separate norm type from norm flags
NORM_RELATIVE = 8, //!< flag
NORM_MINMAX = 32 //!< flag
};
@@ -219,6 +250,10 @@ enum DftFlags {
into a real array and inverse transformation is executed, the function treats the input as a
packed complex-conjugate symmetrical array, and the output will also be a real array). */
DFT_REAL_OUTPUT = 32,
+ /** specifies that input is complex input. If this flag is set, the input must have 2 channels.
+ On the other hand, for backwards compatibility reason, if input has 2 channels, input is
+ already considered complex. */
+ DFT_COMPLEX_INPUT = 64,
/** performs an inverse 1D or 2D transform instead of the default forward transform. */
DCT_INVERSE = DFT_INVERSE,
/** performs a forward or inverse transform of every individual row of the input
@@ -236,7 +271,7 @@ enum BorderTypes {
BORDER_REFLECT = 2, //!< `fedcba|abcdefgh|hgfedcb`
BORDER_WRAP = 3, //!< `cdefgh|abcdefgh|abcdefg`
BORDER_REFLECT_101 = 4, //!< `gfedcb|abcdefgh|gfedcba`
- BORDER_TRANSPARENT = 5, //!< `uvwxyz|absdefgh|ijklmno`
+ BORDER_TRANSPARENT = 5, //!< `uvwxyz|abcdefgh|ijklmno`
BORDER_REFLECT101 = BORDER_REFLECT_101, //!< same as BORDER_REFLECT_101
BORDER_DEFAULT = BORDER_REFLECT_101, //!< same as BORDER_REFLECT_101
@@ -248,65 +283,6 @@ enum BorderTypes {
//! @addtogroup core_utils
//! @{
-//! @cond IGNORED
-
-//////////////// static assert /////////////////
-#define CVAUX_CONCAT_EXP(a, b) a##b
-#define CVAUX_CONCAT(a, b) CVAUX_CONCAT_EXP(a,b)
-
-#if defined(__clang__)
-# ifndef __has_extension
-# define __has_extension __has_feature /* compatibility, for older versions of clang */
-# endif
-# if __has_extension(cxx_static_assert)
-# define CV_StaticAssert(condition, reason) static_assert((condition), reason " " #condition)
-# endif
-#elif defined(__GNUC__)
-# if (defined(__GXX_EXPERIMENTAL_CXX0X__) || __cplusplus >= 201103L)
-# define CV_StaticAssert(condition, reason) static_assert((condition), reason " " #condition)
-# endif
-#elif defined(_MSC_VER)
-# if _MSC_VER >= 1600 /* MSVC 10 */
-# define CV_StaticAssert(condition, reason) static_assert((condition), reason " " #condition)
-# endif
-#endif
-#ifndef CV_StaticAssert
-# if defined(__GNUC__) && (__GNUC__ > 3) && (__GNUC_MINOR__ > 2)
-# define CV_StaticAssert(condition, reason) ({ extern int __attribute__((error("CV_StaticAssert: " reason " " #condition))) CV_StaticAssert(); ((condition) ? 0 : CV_StaticAssert()); })
-# else
- template struct CV_StaticAssert_failed;
- template <> struct CV_StaticAssert_failed { enum { val = 1 }; };
- template struct CV_StaticAssert_test {};
-# define CV_StaticAssert(condition, reason)\
- typedef cv::CV_StaticAssert_test< sizeof(cv::CV_StaticAssert_failed< static_cast(condition) >) > CVAUX_CONCAT(CV_StaticAssert_failed_at_, __LINE__)
-# endif
-#endif
-
-// Suppress warning "-Wdeprecated-declarations" / C4996
-#if defined(_MSC_VER)
- #define CV_DO_PRAGMA(x) __pragma(x)
-#elif defined(__GNUC__)
- #define CV_DO_PRAGMA(x) _Pragma (#x)
-#else
- #define CV_DO_PRAGMA(x)
-#endif
-
-#ifdef _MSC_VER
-#define CV_SUPPRESS_DEPRECATED_START \
- CV_DO_PRAGMA(warning(push)) \
- CV_DO_PRAGMA(warning(disable: 4996))
-#define CV_SUPPRESS_DEPRECATED_END CV_DO_PRAGMA(warning(pop))
-#elif defined (__clang__) || ((__GNUC__) && ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ > 5))))
-#define CV_SUPPRESS_DEPRECATED_START \
- CV_DO_PRAGMA(GCC diagnostic push) \
- CV_DO_PRAGMA(GCC diagnostic ignored "-Wdeprecated-declarations")
-#define CV_SUPPRESS_DEPRECATED_END CV_DO_PRAGMA(GCC diagnostic pop)
-#else
-#define CV_SUPPRESS_DEPRECATED_START
-#define CV_SUPPRESS_DEPRECATED_END
-#endif
-//! @endcond
-
/*! @brief Signals an error and raises the exception.
By default the function prints information about the error to stderr,
@@ -315,9 +291,9 @@ It is possible to alternate error processing by using redirectError().
@param _code - error code (Error::Code)
@param _err - error description
@param _func - function name. Available only when the compiler supports getting it
-@param _file - source file name where the error has occured
-@param _line - line number in the source file where the error has occured
-@see CV_Error, CV_Error_, CV_ErrorNoReturn, CV_ErrorNoReturn_, CV_Assert, CV_DbgAssert
+@param _file - source file name where the error has occurred
+@param _line - line number in the source file where the error has occurred
+@see CV_Error, CV_Error_, CV_Assert, CV_DbgAssert
*/
CV_EXPORTS void error(int _code, const String& _err, const char* _func, const char* _file, int _line);
@@ -346,13 +322,17 @@ CV_INLINE CV_NORETURN void errorNoReturn(int _code, const String& _err, const ch
# endif
#endif
-#if defined __GNUC__
-#define CV_Func __func__
-#elif defined _MSC_VER
-#define CV_Func __FUNCTION__
-#else
-#define CV_Func ""
-#endif
+#ifdef CV_STATIC_ANALYSIS
+
+// In practice, some macro are not processed correctly (noreturn is not detected).
+// We need to use simplified definition for them.
+#define CV_Error(...) do { abort(); } while (0)
+#define CV_Error_( code, args ) do { cv::format args; abort(); } while (0)
+#define CV_Assert( expr ) do { if (!(expr)) abort(); } while (0)
+#define CV_ErrorNoReturn CV_Error
+#define CV_ErrorNoReturn_ CV_Error_
+
+#else // CV_STATIC_ANALYSIS
/** @brief Call the error handler.
@@ -372,7 +352,7 @@ This macro can be used to construct an error message on-fly to include some dyna
for example:
@code
// note the extra parentheses around the formatted text message
- CV_Error_( CV_StsOutOfRange,
+ CV_Error_(Error::StsOutOfRange,
("the value at (%d, %d)=%g is out of range", badPt.x, badPt.y, badValue));
@endcode
@param code one of Error::Code
@@ -386,18 +366,61 @@ The macros CV_Assert (and CV_DbgAssert(expr)) evaluate the specified expression.
raise an error (see cv::error). The macro CV_Assert checks the condition in both Debug and Release
configurations while CV_DbgAssert is only retained in the Debug configuration.
*/
-#define CV_Assert( expr ) if(!!(expr)) ; else cv::error( cv::Error::StsAssert, #expr, CV_Func, __FILE__, __LINE__ )
+#define CV_Assert( expr ) do { if(!!(expr)) ; else cv::error( cv::Error::StsAssert, #expr, CV_Func, __FILE__, __LINE__ ); } while(0)
-/** same as CV_Error(code,msg), but does not return */
-#define CV_ErrorNoReturn( code, msg ) cv::errorNoReturn( code, msg, CV_Func, __FILE__, __LINE__ )
+//! @cond IGNORED
+#define CV__ErrorNoReturn( code, msg ) cv::errorNoReturn( code, msg, CV_Func, __FILE__, __LINE__ )
+#define CV__ErrorNoReturn_( code, args ) cv::errorNoReturn( code, cv::format args, CV_Func, __FILE__, __LINE__ )
+#ifdef __OPENCV_BUILD
+#undef CV_Error
+#define CV_Error CV__ErrorNoReturn
+#undef CV_Error_
+#define CV_Error_ CV__ErrorNoReturn_
+#undef CV_Assert
+#define CV_Assert( expr ) do { if(!!(expr)) ; else cv::errorNoReturn( cv::Error::StsAssert, #expr, CV_Func, __FILE__, __LINE__ ); } while(0)
+#else
+// backward compatibility
+#define CV_ErrorNoReturn CV__ErrorNoReturn
+#define CV_ErrorNoReturn_ CV__ErrorNoReturn_
+#endif
+//! @endcond
-/** same as CV_Error_(code,args), but does not return */
-#define CV_ErrorNoReturn_( code, args ) cv::errorNoReturn( code, cv::format args, CV_Func, __FILE__, __LINE__ )
+#endif // CV_STATIC_ANALYSIS
-/** replaced with CV_Assert(expr) in Debug configuration */
-#ifdef _DEBUG
+//! @cond IGNORED
+
+#if defined OPENCV_FORCE_MULTIARG_ASSERT_CHECK && defined CV_STATIC_ANALYSIS
+#warning "OPENCV_FORCE_MULTIARG_ASSERT_CHECK can't be used with CV_STATIC_ANALYSIS"
+#undef OPENCV_FORCE_MULTIARG_ASSERT_CHECK
+#endif
+
+#ifdef OPENCV_FORCE_MULTIARG_ASSERT_CHECK
+#define CV_Assert_1( expr ) do { if(!!(expr)) ; else cv::error( cv::Error::StsAssert, #expr, CV_Func, __FILE__, __LINE__ ); } while(0)
+#else
+#define CV_Assert_1 CV_Assert
+#endif
+#define CV_Assert_2( expr1, expr2 ) CV_Assert_1(expr1); CV_Assert_1(expr2)
+#define CV_Assert_3( expr1, expr2, expr3 ) CV_Assert_2(expr1, expr2); CV_Assert_1(expr3)
+#define CV_Assert_4( expr1, expr2, expr3, expr4 ) CV_Assert_3(expr1, expr2, expr3); CV_Assert_1(expr4)
+#define CV_Assert_5( expr1, expr2, expr3, expr4, expr5 ) CV_Assert_4(expr1, expr2, expr3, expr4); CV_Assert_1(expr5)
+#define CV_Assert_6( expr1, expr2, expr3, expr4, expr5, expr6 ) CV_Assert_5(expr1, expr2, expr3, expr4, expr5); CV_Assert_1(expr6)
+#define CV_Assert_7( expr1, expr2, expr3, expr4, expr5, expr6, expr7 ) CV_Assert_6(expr1, expr2, expr3, expr4, expr5, expr6 ); CV_Assert_1(expr7)
+#define CV_Assert_8( expr1, expr2, expr3, expr4, expr5, expr6, expr7, expr8 ) CV_Assert_7(expr1, expr2, expr3, expr4, expr5, expr6, expr7 ); CV_Assert_1(expr8)
+#define CV_Assert_9( expr1, expr2, expr3, expr4, expr5, expr6, expr7, expr8, expr9 ) CV_Assert_8(expr1, expr2, expr3, expr4, expr5, expr6, expr7, expr8 ); CV_Assert_1(expr9)
+#define CV_Assert_10( expr1, expr2, expr3, expr4, expr5, expr6, expr7, expr8, expr9, expr10 ) CV_Assert_9(expr1, expr2, expr3, expr4, expr5, expr6, expr7, expr8, expr9 ); CV_Assert_1(expr10)
+
+#define CV_Assert_N(...) do { __CV_CAT(CV_Assert_, __CV_VA_NUM_ARGS(__VA_ARGS__)) (__VA_ARGS__); } while(0)
+
+#ifdef OPENCV_FORCE_MULTIARG_ASSERT_CHECK
+#undef CV_Assert
+#define CV_Assert CV_Assert_N
+#endif
+//! @endcond
+
+#if defined _DEBUG || defined CV_STATIC_ANALYSIS
# define CV_DbgAssert(expr) CV_Assert(expr)
#else
+/** replaced with CV_Assert(expr) in Debug configuration */
# define CV_DbgAssert(expr)
#endif
@@ -644,12 +667,27 @@ namespace cudev
namespace ipp
{
-CV_EXPORTS void setIppStatus(int status, const char * const funcname = NULL, const char * const filename = NULL,
+#if OPENCV_ABI_COMPATIBILITY > 300
+CV_EXPORTS unsigned long long getIppFeatures();
+#else
+CV_EXPORTS int getIppFeatures();
+#endif
+CV_EXPORTS void setIppStatus(int status, const char * const funcname = NULL, const char * const filename = NULL,
int line = 0);
-CV_EXPORTS int getIppStatus();
-CV_EXPORTS String getIppErrorLocation();
-CV_EXPORTS bool useIPP();
-CV_EXPORTS void setUseIPP(bool flag);
+CV_EXPORTS int getIppStatus();
+CV_EXPORTS String getIppErrorLocation();
+CV_EXPORTS_W bool useIPP();
+CV_EXPORTS_W void setUseIPP(bool flag);
+CV_EXPORTS_W String getIppVersion();
+
+// IPP Not-Exact mode. This function may force use of IPP then both IPP and OpenCV provide proper results
+// but have internal accuracy differences which have too much direct or indirect impact on accuracy tests.
+CV_EXPORTS_W bool useIPP_NotExact();
+CV_EXPORTS_W void setUseIPP_NotExact(bool flag);
+#if OPENCV_ABI_COMPATIBILITY < 400
+CV_EXPORTS_W bool useIPP_NE();
+CV_EXPORTS_W void setUseIPP_NE(bool flag);
+#endif
} // ipp
@@ -657,89 +695,13 @@ CV_EXPORTS void setUseIPP(bool flag);
//! @} core_utils
-//! @addtogroup core_utils_neon
-//! @{
-#if CV_NEON
-inline int32x2_t cv_vrnd_s32_f32(float32x2_t v)
-{
- static int32x2_t v_sign = vdup_n_s32(1 << 31),
- v_05 = vreinterpret_s32_f32(vdup_n_f32(0.5f));
-
- int32x2_t v_addition = vorr_s32(v_05, vand_s32(v_sign, vreinterpret_s32_f32(v)));
- return vcvt_s32_f32(vadd_f32(v, vreinterpret_f32_s32(v_addition)));
-}
-
-inline int32x4_t cv_vrndq_s32_f32(float32x4_t v)
-{
- static int32x4_t v_sign = vdupq_n_s32(1 << 31),
- v_05 = vreinterpretq_s32_f32(vdupq_n_f32(0.5f));
-
- int32x4_t v_addition = vorrq_s32(v_05, vandq_s32(v_sign, vreinterpretq_s32_f32(v)));
- return vcvtq_s32_f32(vaddq_f32(v, vreinterpretq_f32_s32(v_addition)));
-}
-
-inline uint32x2_t cv_vrnd_u32_f32(float32x2_t v)
-{
- static float32x2_t v_05 = vdup_n_f32(0.5f);
- return vcvt_u32_f32(vadd_f32(v, v_05));
-}
-
-inline uint32x4_t cv_vrndq_u32_f32(float32x4_t v)
-{
- static float32x4_t v_05 = vdupq_n_f32(0.5f);
- return vcvtq_u32_f32(vaddq_f32(v, v_05));
-}
-
-inline float32x4_t cv_vrecpq_f32(float32x4_t val)
-{
- float32x4_t reciprocal = vrecpeq_f32(val);
- reciprocal = vmulq_f32(vrecpsq_f32(val, reciprocal), reciprocal);
- reciprocal = vmulq_f32(vrecpsq_f32(val, reciprocal), reciprocal);
- return reciprocal;
-}
-
-inline float32x2_t cv_vrecp_f32(float32x2_t val)
-{
- float32x2_t reciprocal = vrecpe_f32(val);
- reciprocal = vmul_f32(vrecps_f32(val, reciprocal), reciprocal);
- reciprocal = vmul_f32(vrecps_f32(val, reciprocal), reciprocal);
- return reciprocal;
-}
-
-inline float32x4_t cv_vrsqrtq_f32(float32x4_t val)
-{
- float32x4_t e = vrsqrteq_f32(val);
- e = vmulq_f32(vrsqrtsq_f32(vmulq_f32(e, e), val), e);
- e = vmulq_f32(vrsqrtsq_f32(vmulq_f32(e, e), val), e);
- return e;
-}
-
-inline float32x2_t cv_vrsqrt_f32(float32x2_t val)
-{
- float32x2_t e = vrsqrte_f32(val);
- e = vmul_f32(vrsqrts_f32(vmul_f32(e, e), val), e);
- e = vmul_f32(vrsqrts_f32(vmul_f32(e, e), val), e);
- return e;
-}
-
-inline float32x4_t cv_vsqrtq_f32(float32x4_t val)
-{
- return cv_vrecpq_f32(cv_vrsqrtq_f32(val));
-}
-
-inline float32x2_t cv_vsqrt_f32(float32x2_t val)
-{
- return cv_vrecp_f32(cv_vrsqrt_f32(val));
-}
-
-#endif
-
-//! @} core_utils_neon
} // cv
-#include "sse_utils.hpp"
+#include "opencv2/core/neon_utils.hpp"
+#include "opencv2/core/vsx_utils.hpp"
+#include "opencv2/core/check.hpp"
-#endif //__OPENCV_CORE_BASE_HPP__
+#endif //OPENCV_CORE_BASE_HPP
diff --git a/include/opencv2/core/bindings_utils.hpp b/include/opencv2/core/bindings_utils.hpp
new file mode 100644
index 0000000..c1123f2
--- /dev/null
+++ b/include/opencv2/core/bindings_utils.hpp
@@ -0,0 +1,23 @@
+// This file is part of OpenCV project.
+// It is subject to the license terms in the LICENSE file found in the top-level directory
+// of this distribution and at http://opencv.org/license.html.
+
+#ifndef OPENCV_CORE_BINDINGS_UTILS_HPP
+#define OPENCV_CORE_BINDINGS_UTILS_HPP
+
+namespace cv { namespace utils {
+//! @addtogroup core_utils
+//! @{
+
+CV_EXPORTS_W String dumpInputArray(InputArray argument);
+
+CV_EXPORTS_W String dumpInputArrayOfArrays(InputArrayOfArrays argument);
+
+CV_EXPORTS_W String dumpInputOutputArray(InputOutputArray argument);
+
+CV_EXPORTS_W String dumpInputOutputArrayOfArrays(InputOutputArrayOfArrays argument);
+
+//! @}
+}} // namespace
+
+#endif // OPENCV_CORE_BINDINGS_UTILS_HPP
diff --git a/include/opencv2/core/bufferpool.hpp b/include/opencv2/core/bufferpool.hpp
index 76df2d2..4698e5d 100644
--- a/include/opencv2/core/bufferpool.hpp
+++ b/include/opencv2/core/bufferpool.hpp
@@ -4,8 +4,13 @@
//
// Copyright (C) 2014, Advanced Micro Devices, Inc., all rights reserved.
-#ifndef __OPENCV_CORE_BUFFER_POOL_HPP__
-#define __OPENCV_CORE_BUFFER_POOL_HPP__
+#ifndef OPENCV_CORE_BUFFER_POOL_HPP
+#define OPENCV_CORE_BUFFER_POOL_HPP
+
+#ifdef _MSC_VER
+#pragma warning(push)
+#pragma warning(disable: 4265)
+#endif
namespace cv
{
@@ -28,4 +33,8 @@ public:
}
-#endif // __OPENCV_CORE_BUFFER_POOL_HPP__
+#ifdef _MSC_VER
+#pragma warning(pop)
+#endif
+
+#endif // OPENCV_CORE_BUFFER_POOL_HPP
diff --git a/include/opencv2/core/check.hpp b/include/opencv2/core/check.hpp
new file mode 100644
index 0000000..bf44138
--- /dev/null
+++ b/include/opencv2/core/check.hpp
@@ -0,0 +1,157 @@
+// This file is part of OpenCV project.
+// It is subject to the license terms in the LICENSE file found in the top-level directory
+// of this distribution and at http://opencv.org/license.html.
+
+#ifndef OPENCV_CORE_CHECK_HPP
+#define OPENCV_CORE_CHECK_HPP
+
+#include
+
+namespace cv {
+
+/** Returns string of cv::Mat depth value: CV_8U -> "CV_8U" or "" */
+CV_EXPORTS const char* depthToString(int depth);
+
+/** Returns string of cv::Mat depth value: CV_8UC3 -> "CV_8UC3" or "" */
+CV_EXPORTS const String typeToString(int type);
+
+
+//! @cond IGNORED
+namespace detail {
+
+/** Returns string of cv::Mat depth value: CV_8U -> "CV_8U" or NULL */
+CV_EXPORTS const char* depthToString_(int depth);
+
+/** Returns string of cv::Mat depth value: CV_8UC3 -> "CV_8UC3" or cv::String() */
+CV_EXPORTS const cv::String typeToString_(int type);
+
+enum TestOp {
+ TEST_CUSTOM = 0,
+ TEST_EQ = 1,
+ TEST_NE = 2,
+ TEST_LE = 3,
+ TEST_LT = 4,
+ TEST_GE = 5,
+ TEST_GT = 6,
+ CV__LAST_TEST_OP
+};
+
+struct CheckContext {
+ const char* func;
+ const char* file;
+ int line;
+ enum TestOp testOp;
+ const char* message;
+ const char* p1_str;
+ const char* p2_str;
+};
+
+#ifndef CV__CHECK_FILENAME
+# define CV__CHECK_FILENAME __FILE__
+#endif
+
+#ifndef CV__CHECK_FUNCTION
+# if defined _MSC_VER
+# define CV__CHECK_FUNCTION __FUNCSIG__
+# elif defined __GNUC__
+# define CV__CHECK_FUNCTION __PRETTY_FUNCTION__
+# else
+# define CV__CHECK_FUNCTION ""
+# endif
+#endif
+
+#define CV__CHECK_LOCATION_VARNAME(id) CVAUX_CONCAT(CVAUX_CONCAT(__cv_check_, id), __LINE__)
+#define CV__DEFINE_CHECK_CONTEXT(id, message, testOp, p1_str, p2_str) \
+ static const cv::detail::CheckContext CV__CHECK_LOCATION_VARNAME(id) = \
+ { CV__CHECK_FUNCTION, CV__CHECK_FILENAME, __LINE__, testOp, message, p1_str, p2_str }
+
+CV_EXPORTS void CV_NORETURN check_failed_auto(const int v1, const int v2, const CheckContext& ctx);
+CV_EXPORTS void CV_NORETURN check_failed_auto(const size_t v1, const size_t v2, const CheckContext& ctx);
+CV_EXPORTS void CV_NORETURN check_failed_auto(const float v1, const float v2, const CheckContext& ctx);
+CV_EXPORTS void CV_NORETURN check_failed_auto(const double v1, const double v2, const CheckContext& ctx);
+CV_EXPORTS void CV_NORETURN check_failed_MatDepth(const int v1, const int v2, const CheckContext& ctx);
+CV_EXPORTS void CV_NORETURN check_failed_MatType(const int v1, const int v2, const CheckContext& ctx);
+CV_EXPORTS void CV_NORETURN check_failed_MatChannels(const int v1, const int v2, const CheckContext& ctx);
+
+CV_EXPORTS void CV_NORETURN check_failed_auto(const int v, const CheckContext& ctx);
+CV_EXPORTS void CV_NORETURN check_failed_auto(const size_t v, const CheckContext& ctx);
+CV_EXPORTS void CV_NORETURN check_failed_auto(const float v, const CheckContext& ctx);
+CV_EXPORTS void CV_NORETURN check_failed_auto(const double v, const CheckContext& ctx);
+CV_EXPORTS void CV_NORETURN check_failed_MatDepth(const int v, const CheckContext& ctx);
+CV_EXPORTS void CV_NORETURN check_failed_MatType(const int v, const CheckContext& ctx);
+CV_EXPORTS void CV_NORETURN check_failed_MatChannels(const int v, const CheckContext& ctx);
+
+
+#define CV__TEST_EQ(v1, v2) ((v1) == (v2))
+#define CV__TEST_NE(v1, v2) ((v1) != (v2))
+#define CV__TEST_LE(v1, v2) ((v1) <= (v2))
+#define CV__TEST_LT(v1, v2) ((v1) < (v2))
+#define CV__TEST_GE(v1, v2) ((v1) >= (v2))
+#define CV__TEST_GT(v1, v2) ((v1) > (v2))
+
+#define CV__CHECK(id, op, type, v1, v2, v1_str, v2_str, msg_str) do { \
+ if(CV__TEST_##op((v1), (v2))) ; else { \
+ CV__DEFINE_CHECK_CONTEXT(id, msg_str, cv::detail::TEST_ ## op, v1_str, v2_str); \
+ cv::detail::check_failed_ ## type((v1), (v2), CV__CHECK_LOCATION_VARNAME(id)); \
+ } \
+} while (0)
+
+#define CV__CHECK_CUSTOM_TEST(id, type, v, test_expr, v_str, test_expr_str, msg_str) do { \
+ if(!!(test_expr)) ; else { \
+ CV__DEFINE_CHECK_CONTEXT(id, msg_str, cv::detail::TEST_CUSTOM, v_str, test_expr_str); \
+ cv::detail::check_failed_ ## type((v), CV__CHECK_LOCATION_VARNAME(id)); \
+ } \
+} while (0)
+
+} // namespace
+//! @endcond
+
+
+/// Supported values of these types: int, float, double
+#define CV_CheckEQ(v1, v2, msg) CV__CHECK(_, EQ, auto, v1, v2, #v1, #v2, msg)
+#define CV_CheckNE(v1, v2, msg) CV__CHECK(_, NE, auto, v1, v2, #v1, #v2, msg)
+#define CV_CheckLE(v1, v2, msg) CV__CHECK(_, LE, auto, v1, v2, #v1, #v2, msg)
+#define CV_CheckLT(v1, v2, msg) CV__CHECK(_, LT, auto, v1, v2, #v1, #v2, msg)
+#define CV_CheckGE(v1, v2, msg) CV__CHECK(_, GE, auto, v1, v2, #v1, #v2, msg)
+#define CV_CheckGT(v1, v2, msg) CV__CHECK(_, GT, auto, v1, v2, #v1, #v2, msg)
+
+/// Check with additional "decoding" of type values in error message
+#define CV_CheckTypeEQ(t1, t2, msg) CV__CHECK(_, EQ, MatType, t1, t2, #t1, #t2, msg)
+/// Check with additional "decoding" of depth values in error message
+#define CV_CheckDepthEQ(d1, d2, msg) CV__CHECK(_, EQ, MatDepth, d1, d2, #d1, #d2, msg)
+
+#define CV_CheckChannelsEQ(c1, c2, msg) CV__CHECK(_, EQ, MatChannels, c1, c2, #c1, #c2, msg)
+
+/// Example: type == CV_8UC1 || type == CV_8UC3
+#define CV_CheckType(t, test_expr, msg) CV__CHECK_CUSTOM_TEST(_, MatType, t, (test_expr), #t, #test_expr, msg)
+
+/// Example: depth == CV_32F || depth == CV_64F
+#define CV_CheckDepth(t, test_expr, msg) CV__CHECK_CUSTOM_TEST(_, MatDepth, t, (test_expr), #t, #test_expr, msg)
+
+/// Example: v == A || v == B
+#define CV_Check(v, test_expr, msg) CV__CHECK_CUSTOM_TEST(_, auto, v, (test_expr), #v, #test_expr, msg)
+
+/// Some complex conditions: CV_Check(src2, src2.empty() || (src2.type() == src1.type() && src2.size() == src1.size()), "src2 should have same size/type as src1")
+// TODO define pretty-printers
+
+#ifndef NDEBUG
+#define CV_DbgCheck(v, test_expr, msg) CV__CHECK_CUSTOM_TEST(_, auto, v, (test_expr), #v, #test_expr, msg)
+#define CV_DbgCheckEQ(v1, v2, msg) CV__CHECK(_, EQ, auto, v1, v2, #v1, #v2, msg)
+#define CV_DbgCheckNE(v1, v2, msg) CV__CHECK(_, NE, auto, v1, v2, #v1, #v2, msg)
+#define CV_DbgCheckLE(v1, v2, msg) CV__CHECK(_, LE, auto, v1, v2, #v1, #v2, msg)
+#define CV_DbgCheckLT(v1, v2, msg) CV__CHECK(_, LT, auto, v1, v2, #v1, #v2, msg)
+#define CV_DbgCheckGE(v1, v2, msg) CV__CHECK(_, GE, auto, v1, v2, #v1, #v2, msg)
+#define CV_DbgCheckGT(v1, v2, msg) CV__CHECK(_, GT, auto, v1, v2, #v1, #v2, msg)
+#else
+#define CV_DbgCheck(v, test_expr, msg) do { } while (0)
+#define CV_DbgCheckEQ(v1, v2, msg) do { } while (0)
+#define CV_DbgCheckNE(v1, v2, msg) do { } while (0)
+#define CV_DbgCheckLE(v1, v2, msg) do { } while (0)
+#define CV_DbgCheckLT(v1, v2, msg) do { } while (0)
+#define CV_DbgCheckGE(v1, v2, msg) do { } while (0)
+#define CV_DbgCheckGT(v1, v2, msg) do { } while (0)
+#endif
+
+} // namespace
+
+#endif // OPENCV_CORE_CHECK_HPP
diff --git a/include/opencv2/core/core_c.h b/include/opencv2/core/core_c.h
index a0ed632..e5fe516 100644
--- a/include/opencv2/core/core_c.h
+++ b/include/opencv2/core/core_c.h
@@ -42,8 +42,8 @@
//M*/
-#ifndef __OPENCV_CORE_C_H__
-#define __OPENCV_CORE_C_H__
+#ifndef OPENCV_CORE_C_H
+#define OPENCV_CORE_C_H
#include "opencv2/core/types_c.h"
@@ -359,7 +359,7 @@ CVAPI(CvMat*) cvGetSubRect( const CvArr* arr, CvMat* submat, CvRect rect );
/** @brief Returns array row or row span.
-The functions return the header, corresponding to a specified row/row span of the input array.
+The function returns the header, corresponding to a specified row/row span of the input array.
cvGetRow(arr, submat, row) is a shortcut for cvGetRows(arr, submat, row, row+1).
@param arr Input array
@param submat Pointer to the resulting sub-array header
@@ -385,7 +385,7 @@ CV_INLINE CvMat* cvGetRow( const CvArr* arr, CvMat* submat, int row )
/** @brief Returns one of more array columns.
-The functions return the header, corresponding to a specified column span of the input array. That
+The function returns the header, corresponding to a specified column span of the input array. That
is, no data is copied. Therefore, any modifications of the submatrix will affect the original array.
If you need to copy the columns, use cvCloneMat. cvGetCol(arr, submat, col) is a shortcut for
@@ -1788,7 +1788,7 @@ CVAPI(int) cvGraphRemoveVtx( CvGraph* graph, int index );
CVAPI(int) cvGraphRemoveVtxByPtr( CvGraph* graph, CvGraphVtx* vtx );
-/** Link two vertices specifed by indices or pointers if they
+/** Link two vertices specified by indices or pointers if they
are not connected or return pointer to already existing edge
connecting the vertices.
Functions return 1 if a new edge was created, 0 otherwise */
@@ -1976,8 +1976,12 @@ CVAPI(void) cvSetIPLAllocators( Cv_iplCreateImageHeader create_header,
The function opens file storage for reading or writing data. In the latter case, a new file is
created or an existing file is rewritten. The type of the read or written file is determined by the
-filename extension: .xml for XML and .yml or .yaml for YAML. The function returns a pointer to the
-CvFileStorage structure. If the file cannot be opened then the function returns NULL.
+filename extension: .xml for XML, .yml or .yaml for YAML and .json for JSON.
+
+At the same time, it also supports adding parameters like "example.xml?base64".
+
+The function returns a pointer to the CvFileStorage structure.
+If the file cannot be opened then the function returns NULL.
@param filename Name of the file associated with the storage
@param memstorage Memory storage used for temporary data and for
: storing dynamic structures, such as CvSeq or CvGraph . If it is NULL, a temporary memory
@@ -1985,6 +1989,7 @@ CvFileStorage structure. If the file cannot be opened then the function returns
@param flags Can be one of the following:
> - **CV_STORAGE_READ** the storage is open for reading
> - **CV_STORAGE_WRITE** the storage is open for writing
+ (use **CV_STORAGE_WRITE | CV_STORAGE_WRITE_BASE64** to write rawdata in Base64)
@param encoding
*/
CVAPI(CvFileStorage*) cvOpenFileStorage( const char* filename, CvMemStorage* memstorage,
@@ -2022,7 +2027,8 @@ One and only one of the two above flags must be specified
@param type_name Optional parameter - the object type name. In
case of XML it is written as a type_id attribute of the structure opening tag. In the case of
YAML it is written after a colon following the structure name (see the example in
- CvFileStorage description). Mainly it is used with user objects. When the storage is read, the
+ CvFileStorage description). In case of JSON it is written as a name/value pair.
+ Mainly it is used with user objects. When the storage is read, the
encoded type name is used to determine the object type (see CvTypeInfo and cvFindType ).
@param attributes This parameter is not used in the current implementation
*/
@@ -2162,7 +2168,7 @@ the file with multiple streams looks like this:
@endcode
The YAML file will look like this:
@code{.yaml}
- %YAML:1.0
+ %YAML 1.0
# stream #1 data
...
---
@@ -2187,6 +2193,23 @@ to a sequence rather than a map.
CVAPI(void) cvWriteRawData( CvFileStorage* fs, const void* src,
int len, const char* dt );
+/** @brief Writes multiple numbers in Base64.
+
+If either CV_STORAGE_WRITE_BASE64 or cv::FileStorage::WRITE_BASE64 is used,
+this function will be the same as cvWriteRawData. If neither, the main
+difference is that it outputs a sequence in Base64 encoding rather than
+in plain text.
+
+This function can only be used to write a sequence with a type "binary".
+
+@param fs File storage
+@param src Pointer to the written array
+@param len Number of the array elements to write
+@param dt Specification of each array element, see @ref format_spec "format specification"
+*/
+CVAPI(void) cvWriteRawDataBase64( CvFileStorage* fs, const void* src,
+ int len, const char* dt );
+
/** @brief Returns a unique pointer for a given name.
The function returns a unique pointer for each particular file node name. This pointer can be then
@@ -2468,7 +2491,7 @@ CVAPI(void) cvReadRawData( const CvFileStorage* fs, const CvFileNode* src,
/** @brief Writes a file node to another file storage.
The function writes a copy of a file node to file storage. Possible applications of the function are
-merging several file storages into one and conversion between XML and YAML formats.
+merging several file storages into one and conversion between XML, YAML and JSON formats.
@param fs Destination file storage
@param new_node_name New name of the file node in the destination file storage. To keep the
existing name, use cvcvGetFileNodeName
@@ -2616,13 +2639,13 @@ CVAPI(void) cvSetErrStatus( int status );
#define CV_ErrModeParent 1 /* Print error and continue */
#define CV_ErrModeSilent 2 /* Don't print and continue */
-/** Retrives current error processing mode */
+/** Retrieves current error processing mode */
CVAPI(int) cvGetErrMode( void );
/** Sets error processing mode, returns previously used mode */
CVAPI(int) cvSetErrMode( int mode );
-/** Sets error status and performs some additonal actions (displaying message box,
+/** Sets error status and performs some additional actions (displaying message box,
writing message to stderr, terminating application etc.)
depending on the current error mode */
CVAPI(void) cvError( int status, const char* func_name,
@@ -2631,7 +2654,7 @@ CVAPI(void) cvError( int status, const char* func_name,
/** Retrieves textual description of the error given its code */
CVAPI(const char*) cvErrorStr( int status );
-/** Retrieves detailed information about the last error occured */
+/** Retrieves detailed information about the last error occurred */
CVAPI(int) cvGetErrInfo( const char** errcode_desc, const char** description,
const char** filename, int* line );
@@ -2706,7 +2729,7 @@ static char cvFuncName[] = Name
/**
CV_CALL macro calls CV (or IPL) function, checks error status and
signals a error if the function failed. Useful in "parent node"
- error procesing mode
+ error processing mode
*/
#define CV_CALL( Func ) \
{ \
@@ -3041,7 +3064,7 @@ template inline void Seq<_Tp>::copyTo(std::vector<_Tp>& vec, const
size_t len = !seq ? 0 : range == Range::all() ? seq->total : range.end - range.start;
vec.resize(len);
if( seq && len )
- cvCvtSeqToArray(seq, &vec[0], range);
+ cvCvtSeqToArray(seq, &vec[0], cvSlice(range));
}
template inline Seq<_Tp>::operator std::vector<_Tp>() const
diff --git a/include/opencv2/core/cuda.hpp b/include/opencv2/core/cuda.hpp
index a9c7a39..820aba7 100644
--- a/include/opencv2/core/cuda.hpp
+++ b/include/opencv2/core/cuda.hpp
@@ -41,8 +41,8 @@
//
//M*/
-#ifndef __OPENCV_CORE_CUDA_HPP__
-#define __OPENCV_CORE_CUDA_HPP__
+#ifndef OPENCV_CORE_CUDA_HPP
+#define OPENCV_CORE_CUDA_HPP
#ifndef __cplusplus
# error cuda.hpp header must be compiled as C++
@@ -56,7 +56,7 @@
@{
@defgroup cudacore Core part
@{
- @defgroup cudacore_init Initalization and Information
+ @defgroup cudacore_init Initialization and Information
@defgroup cudacore_struct Data Structures
@}
@}
@@ -91,6 +91,15 @@ aligned to a size depending on the hardware. Single-row GpuMat is always a conti
on its destructor. The destruction order of such variables and CUDA context is undefined. GPU memory
release function returns error if the CUDA context has been destroyed before.
+Some member functions are described as a "Blocking Call" while some are described as a
+"Non-Blocking Call". Blocking functions are synchronous to host. It is guaranteed that the GPU
+operation is finished when the function returns. However, non-blocking functions are asynchronous to
+host. Those functions may return even if the GPU operation is not finished.
+
+Compared to their blocking counterpart, non-blocking functions accept Stream as an additional
+argument. If a non-default stream is passed, the GPU operation may overlap with operations in other
+streams.
+
@sa Mat
*/
class CV_EXPORTS GpuMat
@@ -151,16 +160,38 @@ public:
//! swaps with other smart pointer
void swap(GpuMat& mat);
- //! pefroms upload data to GpuMat (Blocking call)
+ /** @brief Performs data upload to GpuMat (Blocking call)
+
+ This function copies data from host memory to device memory. As being a blocking call, it is
+ guaranteed that the copy operation is finished when this function returns.
+ */
void upload(InputArray arr);
- //! pefroms upload data to GpuMat (Non-Blocking call)
+ /** @brief Performs data upload to GpuMat (Non-Blocking call)
+
+ This function copies data from host memory to device memory. As being a non-blocking call, this
+ function may return even if the copy operation is not finished.
+
+ The copy operation may be overlapped with operations in other non-default streams if \p stream is
+ not the default stream and \p dst is HostMem allocated with HostMem::PAGE_LOCKED option.
+ */
void upload(InputArray arr, Stream& stream);
- //! pefroms download data from device to host memory (Blocking call)
+ /** @brief Performs data download from GpuMat (Blocking call)
+
+ This function copies data from device memory to host memory. As being a blocking call, it is
+ guaranteed that the copy operation is finished when this function returns.
+ */
void download(OutputArray dst) const;
- //! pefroms download data from device to host memory (Non-Blocking call)
+ /** @brief Performs data download from GpuMat (Non-Blocking call)
+
+ This function copies data from device memory to host memory. As being a non-blocking call, this
+ function may return even if the copy operation is not finished.
+
+ The copy operation may be overlapped with operations in other non-default streams if \p stream is
+ not the default stream and \p dst is HostMem allocated with HostMem::PAGE_LOCKED option.
+ */
void download(OutputArray dst, Stream& stream) const;
//! returns deep copy of the GpuMat, i.e. the data is copied
@@ -274,6 +305,9 @@ public:
//! returns true if GpuMat data is NULL
bool empty() const;
+ //! internal use method: updates the continuity flag
+ void updateContinuityFlag();
+
/*! includes several bit-fields:
- the magic signature
- continuity flag
@@ -327,6 +361,143 @@ The function does not reallocate memory if the matrix has proper attributes alre
*/
CV_EXPORTS void ensureSizeIsEnough(int rows, int cols, int type, OutputArray arr);
+/** @brief BufferPool for use with CUDA streams
+
+BufferPool utilizes Stream's allocator to create new buffers for GpuMat's. It is
+only useful when enabled with #setBufferPoolUsage.
+
+@code
+ setBufferPoolUsage(true);
+@endcode
+
+@note #setBufferPoolUsage must be called \em before any Stream declaration.
+
+Users may specify custom allocator for Stream and may implement their own stream based
+functions utilizing the same underlying GPU memory management.
+
+If custom allocator is not specified, BufferPool utilizes StackAllocator by
+default. StackAllocator allocates a chunk of GPU device memory beforehand,
+and when GpuMat is declared later on, it is given the pre-allocated memory.
+This kind of strategy reduces the number of calls for memory allocating APIs
+such as cudaMalloc or cudaMallocPitch.
+
+Below is an example that utilizes BufferPool with StackAllocator:
+
+@code
+ #include
+
+ using namespace cv;
+ using namespace cv::cuda
+
+ int main()
+ {
+ setBufferPoolUsage(true); // Tell OpenCV that we are going to utilize BufferPool
+ setBufferPoolConfig(getDevice(), 1024 * 1024 * 64, 2); // Allocate 64 MB, 2 stacks (default is 10 MB, 5 stacks)
+
+ Stream stream1, stream2; // Each stream uses 1 stack
+ BufferPool pool1(stream1), pool2(stream2);
+
+ GpuMat d_src1 = pool1.getBuffer(4096, 4096, CV_8UC1); // 16MB
+ GpuMat d_dst1 = pool1.getBuffer(4096, 4096, CV_8UC3); // 48MB, pool1 is now full
+
+ GpuMat d_src2 = pool2.getBuffer(1024, 1024, CV_8UC1); // 1MB
+ GpuMat d_dst2 = pool2.getBuffer(1024, 1024, CV_8UC3); // 3MB
+
+ cvtColor(d_src1, d_dst1, CV_GRAY2BGR, 0, stream1);
+ cvtColor(d_src2, d_dst2, CV_GRAY2BGR, 0, stream2);
+ }
+@endcode
+
+If we allocate another GpuMat on pool1 in the above example, it will be carried out by
+the DefaultAllocator since the stack for pool1 is full.
+
+@code
+ GpuMat d_add1 = pool1.getBuffer(1024, 1024, CV_8UC1); // Stack for pool1 is full, memory is allocated with DefaultAllocator
+@endcode
+
+If a third stream is declared in the above example, allocating with #getBuffer
+within that stream will also be carried out by the DefaultAllocator because we've run out of
+stacks.
+
+@code
+ Stream stream3; // Only 2 stacks were allocated, we've run out of stacks
+ BufferPool pool3(stream3);
+ GpuMat d_src3 = pool3.getBuffer(1024, 1024, CV_8UC1); // Memory is allocated with DefaultAllocator
+@endcode
+
+@warning When utilizing StackAllocator, deallocation order is important.
+
+Just like a stack, deallocation must be done in LIFO order. Below is an example of
+erroneous usage that violates LIFO rule. If OpenCV is compiled in Debug mode, this
+sample code will emit CV_Assert error.
+
+@code
+ int main()
+ {
+ setBufferPoolUsage(true); // Tell OpenCV that we are going to utilize BufferPool
+ Stream stream; // A default size (10 MB) stack is allocated to this stream
+ BufferPool pool(stream);
+
+ GpuMat mat1 = pool.getBuffer(1024, 1024, CV_8UC1); // Allocate mat1 (1MB)
+ GpuMat mat2 = pool.getBuffer(1024, 1024, CV_8UC1); // Allocate mat2 (1MB)
+
+ mat1.release(); // erroneous usage : mat2 must be deallocated before mat1
+ }
+@endcode
+
+Since C++ local variables are destroyed in the reverse order of construction,
+the code sample below satisfies the LIFO rule. Local GpuMat's are deallocated
+and the corresponding memory is automatically returned to the pool for later usage.
+
+@code
+ int main()
+ {
+ setBufferPoolUsage(true); // Tell OpenCV that we are going to utilize BufferPool
+ setBufferPoolConfig(getDevice(), 1024 * 1024 * 64, 2); // Allocate 64 MB, 2 stacks (default is 10 MB, 5 stacks)
+
+ Stream stream1, stream2; // Each stream uses 1 stack
+ BufferPool pool1(stream1), pool2(stream2);
+
+ for (int i = 0; i < 10; i++)
+ {
+ GpuMat d_src1 = pool1.getBuffer(4096, 4096, CV_8UC1); // 16MB
+ GpuMat d_dst1 = pool1.getBuffer(4096, 4096, CV_8UC3); // 48MB, pool1 is now full
+
+ GpuMat d_src2 = pool2.getBuffer(1024, 1024, CV_8UC1); // 1MB
+ GpuMat d_dst2 = pool2.getBuffer(1024, 1024, CV_8UC3); // 3MB
+
+ d_src1.setTo(Scalar(i), stream1);
+ d_src2.setTo(Scalar(i), stream2);
+
+ cvtColor(d_src1, d_dst1, CV_GRAY2BGR, 0, stream1);
+ cvtColor(d_src2, d_dst2, CV_GRAY2BGR, 0, stream2);
+ // The order of destruction of the local variables is:
+ // d_dst2 => d_src2 => d_dst1 => d_src1
+ // LIFO rule is satisfied, this code runs without error
+ }
+ }
+@endcode
+ */
+class CV_EXPORTS BufferPool
+{
+public:
+
+ //! Gets the BufferPool for the given stream.
+ explicit BufferPool(Stream& stream);
+
+ //! Allocates a new GpuMat of given size and type.
+ GpuMat getBuffer(int rows, int cols, int type);
+
+ //! Allocates a new GpuMat of given size and type.
+ GpuMat getBuffer(Size size, int type) { return getBuffer(size.height, size.width, type); }
+
+ //! Returns the allocator associated with the stream.
+ Ptr getAllocator() const { return allocator_; }
+
+private:
+ Ptr allocator_;
+};
+
//! BufferPool management (must be called before Stream creation)
CV_EXPORTS void setBufferPoolUsage(bool on);
CV_EXPORTS void setBufferPoolConfig(int deviceId, size_t stackSize, int stackCount);
@@ -447,7 +618,26 @@ CV_EXPORTS void unregisterPageLocked(Mat& m);
functions use the constant GPU memory, and next call may update the memory before the previous one
has been finished. But calling different operations asynchronously is safe because each operation
has its own constant buffer. Memory copy/upload/download/set operations to the buffers you hold are
-also safe. :
+also safe.
+
+@note The Stream class is not thread-safe. Please use different Stream objects for different CPU threads.
+
+@code
+void thread1()
+{
+ cv::cuda::Stream stream1;
+ cv::cuda::func1(..., stream1);
+}
+
+void thread2()
+{
+ cv::cuda::Stream stream2;
+ cv::cuda::func2(..., stream2);
+}
+@endcode
+
+@note By default all CUDA routines are launched in Stream::Null() object, if the stream is not specified by user.
+In multi-threading environment the stream objects must be passed explicitly (see previous note).
*/
class CV_EXPORTS Stream
{
@@ -460,6 +650,9 @@ public:
//! creates a new asynchronous stream
Stream();
+ //! creates a new asynchronous stream with custom allocator
+ Stream(const Ptr& allocator);
+
/** @brief Returns true if the current stream queue is finished. Otherwise, it returns false.
*/
bool queryIfComplete() const;
@@ -528,6 +721,7 @@ public:
private:
Ptr impl_;
+ Event(const Ptr& impl);
friend struct EventAccessor;
};
@@ -544,7 +738,8 @@ private:
/** @brief Returns the number of installed CUDA-enabled devices.
Use this function before any other CUDA functions calls. If OpenCV is compiled without CUDA support,
-this function returns 0.
+this function returns 0. If the CUDA driver is not installed, or is incompatible, this function
+returns -1.
*/
CV_EXPORTS int getCudaEnabledDeviceCount();
@@ -835,6 +1030,15 @@ private:
CV_EXPORTS void printCudaDeviceInfo(int device);
CV_EXPORTS void printShortCudaDeviceInfo(int device);
+/** @brief Converts an array to half precision floating number.
+
+@param _src input array.
+@param _dst output array.
+@param stream Stream for the asynchronous version.
+@sa convertFp16
+*/
+CV_EXPORTS void convertFp16(InputArray _src, OutputArray _dst, Stream& stream = Stream::Null());
+
//! @} cudacore_init
}} // namespace cv { namespace cuda {
@@ -842,4 +1046,4 @@ CV_EXPORTS void printShortCudaDeviceInfo(int device);
#include "opencv2/core/cuda.inl.hpp"
-#endif /* __OPENCV_CORE_CUDA_HPP__ */
+#endif /* OPENCV_CORE_CUDA_HPP */
diff --git a/include/opencv2/core/cuda.inl.hpp b/include/opencv2/core/cuda.inl.hpp
index 1285b1a..35ae2e4 100644
--- a/include/opencv2/core/cuda.inl.hpp
+++ b/include/opencv2/core/cuda.inl.hpp
@@ -41,8 +41,8 @@
//
//M*/
-#ifndef __OPENCV_CORE_CUDAINL_HPP__
-#define __OPENCV_CORE_CUDAINL_HPP__
+#ifndef OPENCV_CORE_CUDAINL_HPP
+#define OPENCV_CORE_CUDAINL_HPP
#include "opencv2/core/cuda.hpp"
@@ -540,6 +540,16 @@ Stream::Stream(const Ptr& impl)
{
}
+//===================================================================================
+// Event
+//===================================================================================
+
+inline
+Event::Event(const Ptr& impl)
+ : impl_(impl)
+{
+}
+
//===================================================================================
// Initialization & Info
//===================================================================================
@@ -578,7 +588,7 @@ int DeviceInfo::deviceID() const
inline
size_t DeviceInfo::freeMemory() const
{
- size_t _totalMemory, _freeMemory;
+ size_t _totalMemory = 0, _freeMemory = 0;
queryMemory(_totalMemory, _freeMemory);
return _freeMemory;
}
@@ -586,7 +596,7 @@ size_t DeviceInfo::freeMemory() const
inline
size_t DeviceInfo::totalMemory() const
{
- size_t _totalMemory, _freeMemory;
+ size_t _totalMemory = 0, _freeMemory = 0;
queryMemory(_totalMemory, _freeMemory);
return _totalMemory;
}
@@ -618,4 +628,4 @@ Mat::Mat(const cuda::GpuMat& m)
//! @endcond
-#endif // __OPENCV_CORE_CUDAINL_HPP__
+#endif // OPENCV_CORE_CUDAINL_HPP
diff --git a/include/opencv2/core/cuda/block.hpp b/include/opencv2/core/cuda/block.hpp
index 0c6f063..c277f0e 100644
--- a/include/opencv2/core/cuda/block.hpp
+++ b/include/opencv2/core/cuda/block.hpp
@@ -40,8 +40,8 @@
//
//M*/
-#ifndef __OPENCV_CUDA_DEVICE_BLOCK_HPP__
-#define __OPENCV_CUDA_DEVICE_BLOCK_HPP__
+#ifndef OPENCV_CUDA_DEVICE_BLOCK_HPP
+#define OPENCV_CUDA_DEVICE_BLOCK_HPP
/** @file
* @deprecated Use @ref cudev instead.
@@ -106,7 +106,7 @@ namespace cv { namespace cuda { namespace device
}
template
- static __device__ __forceinline__ void transfrom(InIt beg, InIt end, OutIt out, UnOp op)
+ static __device__ __forceinline__ void transform(InIt beg, InIt end, OutIt out, UnOp op)
{
int STRIDE = stride();
InIt t = beg + flattenedThreadId();
@@ -117,7 +117,7 @@ namespace cv { namespace cuda { namespace device
}
template
- static __device__ __forceinline__ void transfrom(InIt1 beg1, InIt1 end1, InIt2 beg2, OutIt out, BinOp op)
+ static __device__ __forceinline__ void transform(InIt1 beg1, InIt1 end1, InIt2 beg2, OutIt out, BinOp op)
{
int STRIDE = stride();
InIt1 t1 = beg1 + flattenedThreadId();
@@ -208,4 +208,4 @@ namespace cv { namespace cuda { namespace device
//! @endcond
-#endif /* __OPENCV_CUDA_DEVICE_BLOCK_HPP__ */
+#endif /* OPENCV_CUDA_DEVICE_BLOCK_HPP */
diff --git a/include/opencv2/core/cuda/border_interpolate.hpp b/include/opencv2/core/cuda/border_interpolate.hpp
index ba72669..874f705 100644
--- a/include/opencv2/core/cuda/border_interpolate.hpp
+++ b/include/opencv2/core/cuda/border_interpolate.hpp
@@ -40,8 +40,8 @@
//
//M*/
-#ifndef __OPENCV_CUDA_BORDER_INTERPOLATE_HPP__
-#define __OPENCV_CUDA_BORDER_INTERPOLATE_HPP__
+#ifndef OPENCV_CUDA_BORDER_INTERPOLATE_HPP
+#define OPENCV_CUDA_BORDER_INTERPOLATE_HPP
#include "saturate_cast.hpp"
#include "vec_traits.hpp"
@@ -632,12 +632,12 @@ namespace cv { namespace cuda { namespace device
__device__ __forceinline__ int idx_row_low(int y) const
{
- return (y >= 0) * y + (y < 0) * (y - ((y - height + 1) / height) * height);
+ return (y >= 0) ? y : (y - ((y - height + 1) / height) * height);
}
__device__ __forceinline__ int idx_row_high(int y) const
{
- return (y < height) * y + (y >= height) * (y % height);
+ return (y < height) ? y : (y % height);
}
__device__ __forceinline__ int idx_row(int y) const
@@ -647,12 +647,12 @@ namespace cv { namespace cuda { namespace device
__device__ __forceinline__ int idx_col_low(int x) const
{
- return (x >= 0) * x + (x < 0) * (x - ((x - width + 1) / width) * width);
+ return (x >= 0) ? x : (x - ((x - width + 1) / width) * width);
}
__device__ __forceinline__ int idx_col_high(int x) const
{
- return (x < width) * x + (x >= width) * (x % width);
+ return (x < width) ? x : (x % width);
}
__device__ __forceinline__ int idx_col(int x) const
@@ -719,4 +719,4 @@ namespace cv { namespace cuda { namespace device
//! @endcond
-#endif // __OPENCV_CUDA_BORDER_INTERPOLATE_HPP__
+#endif // OPENCV_CUDA_BORDER_INTERPOLATE_HPP
diff --git a/include/opencv2/core/cuda/color.hpp b/include/opencv2/core/cuda/color.hpp
index 6faf8c9..dcce280 100644
--- a/include/opencv2/core/cuda/color.hpp
+++ b/include/opencv2/core/cuda/color.hpp
@@ -40,8 +40,8 @@
//
//M*/
-#ifndef __OPENCV_CUDA_COLOR_HPP__
-#define __OPENCV_CUDA_COLOR_HPP__
+#ifndef OPENCV_CUDA_COLOR_HPP
+#define OPENCV_CUDA_COLOR_HPP
#include "detail/color_detail.hpp"
@@ -306,4 +306,4 @@ namespace cv { namespace cuda { namespace device
//! @endcond
-#endif // __OPENCV_CUDA_BORDER_INTERPOLATE_HPP__
+#endif // OPENCV_CUDA_COLOR_HPP
diff --git a/include/opencv2/core/cuda/common.hpp b/include/opencv2/core/cuda/common.hpp
index b93c3ef..14b1f3f 100644
--- a/include/opencv2/core/cuda/common.hpp
+++ b/include/opencv2/core/cuda/common.hpp
@@ -40,8 +40,8 @@
//
//M*/
-#ifndef __OPENCV_CUDA_COMMON_HPP__
-#define __OPENCV_CUDA_COMMON_HPP__
+#ifndef OPENCV_CUDA_COMMON_HPP
+#define OPENCV_CUDA_COMMON_HPP
#include
#include "opencv2/core/cuda_types.hpp"
@@ -106,4 +106,4 @@ namespace cv { namespace cuda
//! @endcond
-#endif // __OPENCV_CUDA_COMMON_HPP__
+#endif // OPENCV_CUDA_COMMON_HPP
diff --git a/include/opencv2/core/cuda/datamov_utils.hpp b/include/opencv2/core/cuda/datamov_utils.hpp
index bb02cf9..6820d0f 100644
--- a/include/opencv2/core/cuda/datamov_utils.hpp
+++ b/include/opencv2/core/cuda/datamov_utils.hpp
@@ -40,8 +40,8 @@
//
//M*/
-#ifndef __OPENCV_CUDA_DATAMOV_UTILS_HPP__
-#define __OPENCV_CUDA_DATAMOV_UTILS_HPP__
+#ifndef OPENCV_CUDA_DATAMOV_UTILS_HPP
+#define OPENCV_CUDA_DATAMOV_UTILS_HPP
#include "common.hpp"
@@ -110,4 +110,4 @@ namespace cv { namespace cuda { namespace device
//! @endcond
-#endif // __OPENCV_CUDA_DATAMOV_UTILS_HPP__
+#endif // OPENCV_CUDA_DATAMOV_UTILS_HPP
diff --git a/include/opencv2/core/cuda/detail/color_detail.hpp b/include/opencv2/core/cuda/detail/color_detail.hpp
index 1151806..bfb4055 100644
--- a/include/opencv2/core/cuda/detail/color_detail.hpp
+++ b/include/opencv2/core/cuda/detail/color_detail.hpp
@@ -40,8 +40,8 @@
//
//M*/
-#ifndef __OPENCV_CUDA_COLOR_DETAIL_HPP__
-#define __OPENCV_CUDA_COLOR_DETAIL_HPP__
+#ifndef OPENCV_CUDA_COLOR_DETAIL_HPP
+#define OPENCV_CUDA_COLOR_DETAIL_HPP
#include "../common.hpp"
#include "../vec_traits.hpp"
@@ -1977,4 +1977,4 @@ namespace cv { namespace cuda { namespace device
//! @endcond
-#endif // __OPENCV_CUDA_COLOR_DETAIL_HPP__
+#endif // OPENCV_CUDA_COLOR_DETAIL_HPP
diff --git a/include/opencv2/core/cuda/detail/reduce.hpp b/include/opencv2/core/cuda/detail/reduce.hpp
index 0c35eab..8af20b0 100644
--- a/include/opencv2/core/cuda/detail/reduce.hpp
+++ b/include/opencv2/core/cuda/detail/reduce.hpp
@@ -40,8 +40,8 @@
//
//M*/
-#ifndef __OPENCV_CUDA_REDUCE_DETAIL_HPP__
-#define __OPENCV_CUDA_REDUCE_DETAIL_HPP__
+#ifndef OPENCV_CUDA_REDUCE_DETAIL_HPP
+#define OPENCV_CUDA_REDUCE_DETAIL_HPP
#include
#include "../warp.hpp"
@@ -275,9 +275,9 @@ namespace cv { namespace cuda { namespace device
template
static __device__ void reduce(Pointer smem, Reference val, unsigned int tid, Op op)
{
- #if __CUDA_ARCH__ >= 300
- (void) smem;
- (void) tid;
+ #if defined __CUDA_ARCH__ && __CUDA_ARCH__ >= 300
+ CV_UNUSED(smem);
+ CV_UNUSED(tid);
Unroll::loopShfl(val, op, N);
#else
@@ -298,7 +298,7 @@ namespace cv { namespace cuda { namespace device
{
const unsigned int laneId = Warp::laneId();
- #if __CUDA_ARCH__ >= 300
+ #if defined __CUDA_ARCH__ && __CUDA_ARCH__ >= 300
Unroll<16, Pointer, Reference, Op>::loopShfl(val, op, warpSize);
if (laneId == 0)
@@ -321,7 +321,7 @@ namespace cv { namespace cuda { namespace device
if (tid < 32)
{
- #if __CUDA_ARCH__ >= 300
+ #if defined __CUDA_ARCH__ && __CUDA_ARCH__ >= 300
Unroll::loopShfl(val, op, M);
#else
Unroll::loop(smem, val, tid, op);
@@ -362,4 +362,4 @@ namespace cv { namespace cuda { namespace device
//! @endcond
-#endif // __OPENCV_CUDA_REDUCE_DETAIL_HPP__
+#endif // OPENCV_CUDA_REDUCE_DETAIL_HPP
diff --git a/include/opencv2/core/cuda/detail/reduce_key_val.hpp b/include/opencv2/core/cuda/detail/reduce_key_val.hpp
index bab85d7..df37c17 100644
--- a/include/opencv2/core/cuda/detail/reduce_key_val.hpp
+++ b/include/opencv2/core/cuda/detail/reduce_key_val.hpp
@@ -40,8 +40,8 @@
//
//M*/
-#ifndef __OPENCV_CUDA_PRED_VAL_REDUCE_DETAIL_HPP__
-#define __OPENCV_CUDA_PRED_VAL_REDUCE_DETAIL_HPP__
+#ifndef OPENCV_CUDA_PRED_VAL_REDUCE_DETAIL_HPP
+#define OPENCV_CUDA_PRED_VAL_REDUCE_DETAIL_HPP
#include
#include "../warp.hpp"
@@ -402,9 +402,9 @@ namespace cv { namespace cuda { namespace device
static __device__ void reduce(KP skeys, KR key, VP svals, VR val, unsigned int tid, Cmp cmp)
{
#if 0 // __CUDA_ARCH__ >= 300
- (void) skeys;
- (void) svals;
- (void) tid;
+ CV_UNUSED(skeys);
+ CV_UNUSED(svals);
+ CV_UNUSED(tid);
Unroll::loopShfl(key, val, cmp, N);
#else
@@ -499,4 +499,4 @@ namespace cv { namespace cuda { namespace device
//! @endcond
-#endif // __OPENCV_CUDA_PRED_VAL_REDUCE_DETAIL_HPP__
+#endif // OPENCV_CUDA_PRED_VAL_REDUCE_DETAIL_HPP
diff --git a/include/opencv2/core/cuda/detail/transform_detail.hpp b/include/opencv2/core/cuda/detail/transform_detail.hpp
index 96031c8..1919848 100644
--- a/include/opencv2/core/cuda/detail/transform_detail.hpp
+++ b/include/opencv2/core/cuda/detail/transform_detail.hpp
@@ -40,8 +40,8 @@
//
//M*/
-#ifndef __OPENCV_CUDA_TRANSFORM_DETAIL_HPP__
-#define __OPENCV_CUDA_TRANSFORM_DETAIL_HPP__
+#ifndef OPENCV_CUDA_TRANSFORM_DETAIL_HPP
+#define OPENCV_CUDA_TRANSFORM_DETAIL_HPP
#include "../common.hpp"
#include "../vec_traits.hpp"
@@ -223,11 +223,7 @@ namespace cv { namespace cuda { namespace device
if (x_shifted + ft::smart_shift - 1 < src_.cols)
{
const read_type src_n_el = ((const read_type*)src)[x];
- write_type dst_n_el = ((const write_type*)dst)[x];
-
- OpUnroller::unroll(src_n_el, dst_n_el, mask, op, x_shifted, y);
-
- ((write_type*)dst)[x] = dst_n_el;
+ OpUnroller::unroll(src_n_el, ((write_type*)dst)[x], mask, op, x_shifted, y);
}
else
{
@@ -275,11 +271,8 @@ namespace cv { namespace cuda { namespace device
{
const read_type1 src1_n_el = ((const read_type1*)src1)[x];
const read_type2 src2_n_el = ((const read_type2*)src2)[x];
- write_type dst_n_el = ((const write_type*)dst)[x];
- OpUnroller::unroll(src1_n_el, src2_n_el, dst_n_el, mask, op, x_shifted, y);
-
- ((write_type*)dst)[x] = dst_n_el;
+ OpUnroller::unroll(src1_n_el, src2_n_el, ((write_type*)dst)[x], mask, op, x_shifted, y);
}
else
{
@@ -396,4 +389,4 @@ namespace cv { namespace cuda { namespace device
//! @endcond
-#endif // __OPENCV_CUDA_TRANSFORM_DETAIL_HPP__
+#endif // OPENCV_CUDA_TRANSFORM_DETAIL_HPP
diff --git a/include/opencv2/core/cuda/detail/type_traits_detail.hpp b/include/opencv2/core/cuda/detail/type_traits_detail.hpp
index 3463c78..a78bd2c 100644
--- a/include/opencv2/core/cuda/detail/type_traits_detail.hpp
+++ b/include/opencv2/core/cuda/detail/type_traits_detail.hpp
@@ -40,8 +40,8 @@
//
//M*/
-#ifndef __OPENCV_CUDA_TYPE_TRAITS_DETAIL_HPP__
-#define __OPENCV_CUDA_TYPE_TRAITS_DETAIL_HPP__
+#ifndef OPENCV_CUDA_TYPE_TRAITS_DETAIL_HPP
+#define OPENCV_CUDA_TYPE_TRAITS_DETAIL_HPP
#include "../common.hpp"
#include "../vec_traits.hpp"
@@ -188,4 +188,4 @@ namespace cv { namespace cuda { namespace device
//! @endcond
-#endif // __OPENCV_CUDA_TYPE_TRAITS_DETAIL_HPP__
+#endif // OPENCV_CUDA_TYPE_TRAITS_DETAIL_HPP
diff --git a/include/opencv2/core/cuda/detail/vec_distance_detail.hpp b/include/opencv2/core/cuda/detail/vec_distance_detail.hpp
index 9ca85a5..8283a99 100644
--- a/include/opencv2/core/cuda/detail/vec_distance_detail.hpp
+++ b/include/opencv2/core/cuda/detail/vec_distance_detail.hpp
@@ -40,8 +40,8 @@
//
//M*/
-#ifndef __OPENCV_CUDA_VEC_DISTANCE_DETAIL_HPP__
-#define __OPENCV_CUDA_VEC_DISTANCE_DETAIL_HPP__
+#ifndef OPENCV_CUDA_VEC_DISTANCE_DETAIL_HPP
+#define OPENCV_CUDA_VEC_DISTANCE_DETAIL_HPP
#include "../datamov_utils.hpp"
@@ -118,4 +118,4 @@ namespace cv { namespace cuda { namespace device
//! @endcond
-#endif // __OPENCV_CUDA_VEC_DISTANCE_DETAIL_HPP__
+#endif // OPENCV_CUDA_VEC_DISTANCE_DETAIL_HPP
diff --git a/include/opencv2/core/cuda/dynamic_smem.hpp b/include/opencv2/core/cuda/dynamic_smem.hpp
index 3488463..42570c6 100644
--- a/include/opencv2/core/cuda/dynamic_smem.hpp
+++ b/include/opencv2/core/cuda/dynamic_smem.hpp
@@ -40,8 +40,8 @@
//
//M*/
-#ifndef __OPENCV_CUDA_DYNAMIC_SMEM_HPP__
-#define __OPENCV_CUDA_DYNAMIC_SMEM_HPP__
+#ifndef OPENCV_CUDA_DYNAMIC_SMEM_HPP
+#define OPENCV_CUDA_DYNAMIC_SMEM_HPP
/** @file
* @deprecated Use @ref cudev instead.
@@ -85,4 +85,4 @@ namespace cv { namespace cuda { namespace device
//! @endcond
-#endif // __OPENCV_CUDA_DYNAMIC_SMEM_HPP__
+#endif // OPENCV_CUDA_DYNAMIC_SMEM_HPP
diff --git a/include/opencv2/core/cuda/emulation.hpp b/include/opencv2/core/cuda/emulation.hpp
index d346865..17dc117 100644
--- a/include/opencv2/core/cuda/emulation.hpp
+++ b/include/opencv2/core/cuda/emulation.hpp
@@ -177,8 +177,8 @@ namespace cv { namespace cuda { namespace device
} while (assumed != old);
return __longlong_as_double(old);
#else
- (void) address;
- (void) val;
+ CV_UNUSED(address);
+ CV_UNUSED(val);
return 0.0;
#endif
}
@@ -199,8 +199,8 @@ namespace cv { namespace cuda { namespace device
} while (assumed != old);
return __int_as_float(old);
#else
- (void) address;
- (void) val;
+ CV_UNUSED(address);
+ CV_UNUSED(val);
return 0.0f;
#endif
}
@@ -216,8 +216,8 @@ namespace cv { namespace cuda { namespace device
} while (assumed != old);
return __longlong_as_double(old);
#else
- (void) address;
- (void) val;
+ CV_UNUSED(address);
+ CV_UNUSED(val);
return 0.0;
#endif
}
@@ -238,8 +238,8 @@ namespace cv { namespace cuda { namespace device
} while (assumed != old);
return __int_as_float(old);
#else
- (void) address;
- (void) val;
+ CV_UNUSED(address);
+ CV_UNUSED(val);
return 0.0f;
#endif
}
@@ -255,8 +255,8 @@ namespace cv { namespace cuda { namespace device
} while (assumed != old);
return __longlong_as_double(old);
#else
- (void) address;
- (void) val;
+ CV_UNUSED(address);
+ CV_UNUSED(val);
return 0.0;
#endif
}
diff --git a/include/opencv2/core/cuda/filters.hpp b/include/opencv2/core/cuda/filters.hpp
index 9adc00c..bb94212 100644
--- a/include/opencv2/core/cuda/filters.hpp
+++ b/include/opencv2/core/cuda/filters.hpp
@@ -40,8 +40,8 @@
//
//M*/
-#ifndef __OPENCV_CUDA_FILTERS_HPP__
-#define __OPENCV_CUDA_FILTERS_HPP__
+#ifndef OPENCV_CUDA_FILTERS_HPP
+#define OPENCV_CUDA_FILTERS_HPP
#include "saturate_cast.hpp"
#include "vec_traits.hpp"
@@ -64,8 +64,8 @@ namespace cv { namespace cuda { namespace device
explicit __host__ __device__ __forceinline__ PointFilter(const Ptr2D& src_, float fx = 0.f, float fy = 0.f)
: src(src_)
{
- (void)fx;
- (void)fy;
+ CV_UNUSED(fx);
+ CV_UNUSED(fy);
}
__device__ __forceinline__ elem_type operator ()(float y, float x) const
@@ -84,8 +84,8 @@ namespace cv { namespace cuda { namespace device
explicit __host__ __device__ __forceinline__ LinearFilter(const Ptr2D& src_, float fx = 0.f, float fy = 0.f)
: src(src_)
{
- (void)fx;
- (void)fy;
+ CV_UNUSED(fx);
+ CV_UNUSED(fy);
}
__device__ __forceinline__ elem_type operator ()(float y, float x) const
{
@@ -125,8 +125,8 @@ namespace cv { namespace cuda { namespace device
explicit __host__ __device__ __forceinline__ CubicFilter(const Ptr2D& src_, float fx = 0.f, float fy = 0.f)
: src(src_)
{
- (void)fx;
- (void)fy;
+ CV_UNUSED(fx);
+ CV_UNUSED(fy);
}
static __device__ __forceinline__ float bicubicCoeff(float x_)
@@ -283,4 +283,4 @@ namespace cv { namespace cuda { namespace device
//! @endcond
-#endif // __OPENCV_CUDA_FILTERS_HPP__
+#endif // OPENCV_CUDA_FILTERS_HPP
diff --git a/include/opencv2/core/cuda/funcattrib.hpp b/include/opencv2/core/cuda/funcattrib.hpp
index fbb236b..f582080 100644
--- a/include/opencv2/core/cuda/funcattrib.hpp
+++ b/include/opencv2/core/cuda/funcattrib.hpp
@@ -40,8 +40,8 @@
//
//M*/
-#ifndef __OPENCV_CUDA_DEVICE_FUNCATTRIB_HPP_
-#define __OPENCV_CUDA_DEVICE_FUNCATTRIB_HPP_
+#ifndef OPENCV_CUDA_DEVICE_FUNCATTRIB_HPP
+#define OPENCV_CUDA_DEVICE_FUNCATTRIB_HPP
#include
@@ -76,4 +76,4 @@ namespace cv { namespace cuda { namespace device
//! @endcond
-#endif /* __OPENCV_CUDA_DEVICE_FUNCATTRIB_HPP_ */
+#endif /* OPENCV_CUDA_DEVICE_FUNCATTRIB_HPP */
diff --git a/include/opencv2/core/cuda/functional.hpp b/include/opencv2/core/cuda/functional.hpp
index ed3943d..4944381 100644
--- a/include/opencv2/core/cuda/functional.hpp
+++ b/include/opencv2/core/cuda/functional.hpp
@@ -40,8 +40,8 @@
//
//M*/
-#ifndef __OPENCV_CUDA_FUNCTIONAL_HPP__
-#define __OPENCV_CUDA_FUNCTIONAL_HPP__
+#ifndef OPENCV_CUDA_FUNCTIONAL_HPP
+#define OPENCV_CUDA_FUNCTIONAL_HPP
#include
#include "saturate_cast.hpp"
@@ -58,8 +58,22 @@
namespace cv { namespace cuda { namespace device
{
// Function Objects
+#ifdef CV_CXX11
+ template struct unary_function
+ {
+ typedef Argument argument_type;
+ typedef Result result_type;
+ };
+ template struct binary_function
+ {
+ typedef Argument1 first_argument_type;
+ typedef Argument2 second_argument_type;
+ typedef Result result_type;
+ };
+#else
template struct unary_function : public std::unary_function {};
template struct binary_function : public std::binary_function {};
+#endif
// Arithmetic Operations
template struct plus : binary_function
@@ -583,7 +597,7 @@ namespace cv { namespace cuda { namespace device
template struct thresh_trunc_func : unary_function
{
- explicit __host__ __device__ __forceinline__ thresh_trunc_func(T thresh_, T maxVal_ = 0) : thresh(thresh_) {(void)maxVal_;}
+ explicit __host__ __device__ __forceinline__ thresh_trunc_func(T thresh_, T maxVal_ = 0) : thresh(thresh_) {CV_UNUSED(maxVal_);}
__device__ __forceinline__ T operator()(typename TypeTraits::ParameterType src) const
{
@@ -599,7 +613,7 @@ namespace cv { namespace cuda { namespace device
template struct thresh_to_zero_func : unary_function
{
- explicit __host__ __device__ __forceinline__ thresh_to_zero_func(T thresh_, T maxVal_ = 0) : thresh(thresh_) {(void)maxVal_;}
+ explicit __host__ __device__ __forceinline__ thresh_to_zero_func(T thresh_, T maxVal_ = 0) : thresh(thresh_) {CV_UNUSED(maxVal_);}
__device__ __forceinline__ T operator()(typename TypeTraits::ParameterType src) const
{
@@ -615,7 +629,7 @@ namespace cv { namespace cuda { namespace device
template struct thresh_to_zero_inv_func : unary_function
{
- explicit __host__ __device__ __forceinline__ thresh_to_zero_inv_func(T thresh_, T maxVal_ = 0) : thresh(thresh_) {(void)maxVal_;}
+ explicit __host__ __device__ __forceinline__ thresh_to_zero_inv_func(T thresh_, T maxVal_ = 0) : thresh(thresh_) {CV_UNUSED(maxVal_);}
__device__ __forceinline__ T operator()(typename TypeTraits::ParameterType src) const
{
@@ -794,4 +808,4 @@ namespace cv { namespace cuda { namespace device
//! @endcond
-#endif // __OPENCV_CUDA_FUNCTIONAL_HPP__
+#endif // OPENCV_CUDA_FUNCTIONAL_HPP
diff --git a/include/opencv2/core/cuda/limits.hpp b/include/opencv2/core/cuda/limits.hpp
index b98bdf2..7e15ed6 100644
--- a/include/opencv2/core/cuda/limits.hpp
+++ b/include/opencv2/core/cuda/limits.hpp
@@ -40,8 +40,8 @@
//
//M*/
-#ifndef __OPENCV_CUDA_LIMITS_HPP__
-#define __OPENCV_CUDA_LIMITS_HPP__
+#ifndef OPENCV_CUDA_LIMITS_HPP
+#define OPENCV_CUDA_LIMITS_HPP
#include
#include
@@ -125,4 +125,4 @@ template <> struct numeric_limits
//! @endcond
-#endif // __OPENCV_CUDA_LIMITS_HPP__
+#endif // OPENCV_CUDA_LIMITS_HPP
diff --git a/include/opencv2/core/cuda/reduce.hpp b/include/opencv2/core/cuda/reduce.hpp
index 3133c9a..5de3650 100644
--- a/include/opencv2/core/cuda/reduce.hpp
+++ b/include/opencv2/core/cuda/reduce.hpp
@@ -40,8 +40,12 @@
//
//M*/
-#ifndef __OPENCV_CUDA_REDUCE_HPP__
-#define __OPENCV_CUDA_REDUCE_HPP__
+#ifndef OPENCV_CUDA_REDUCE_HPP
+#define OPENCV_CUDA_REDUCE_HPP
+
+#ifndef THRUST_DEBUG // eliminate -Wundef warning
+#define THRUST_DEBUG 0
+#endif
#include
#include "detail/reduce.hpp"
@@ -202,4 +206,4 @@ namespace cv { namespace cuda { namespace device
//! @endcond
-#endif // __OPENCV_CUDA_UTILITY_HPP__
+#endif // OPENCV_CUDA_REDUCE_HPP
diff --git a/include/opencv2/core/cuda/saturate_cast.hpp b/include/opencv2/core/cuda/saturate_cast.hpp
index e7633c7..c3a3d1c 100644
--- a/include/opencv2/core/cuda/saturate_cast.hpp
+++ b/include/opencv2/core/cuda/saturate_cast.hpp
@@ -40,8 +40,8 @@
//
//M*/
-#ifndef __OPENCV_CUDA_SATURATE_CAST_HPP__
-#define __OPENCV_CUDA_SATURATE_CAST_HPP__
+#ifndef OPENCV_CUDA_SATURATE_CAST_HPP
+#define OPENCV_CUDA_SATURATE_CAST_HPP
#include "common.hpp"
@@ -101,7 +101,7 @@ namespace cv { namespace cuda { namespace device
}
template<> __device__ __forceinline__ uchar saturate_cast(double v)
{
- #if __CUDA_ARCH__ >= 130
+ #if defined __CUDA_ARCH__ && __CUDA_ARCH__ >= 130
uint res = 0;
asm("cvt.rni.sat.u8.f64 %0, %1;" : "=r"(res) : "d"(v));
return res;
@@ -149,7 +149,7 @@ namespace cv { namespace cuda { namespace device
}
template<> __device__ __forceinline__ schar saturate_cast(double v)
{
- #if __CUDA_ARCH__ >= 130
+ #if defined __CUDA_ARCH__ && __CUDA_ARCH__ >= 130
uint res = 0;
asm("cvt.rni.sat.s8.f64 %0, %1;" : "=r"(res) : "d"(v));
return res;
@@ -191,7 +191,7 @@ namespace cv { namespace cuda { namespace device
}
template<> __device__ __forceinline__ ushort saturate_cast(double v)
{
- #if __CUDA_ARCH__ >= 130
+ #if defined __CUDA_ARCH__ && __CUDA_ARCH__ >= 130
ushort res = 0;
asm("cvt.rni.sat.u16.f64 %0, %1;" : "=h"(res) : "d"(v));
return res;
@@ -226,7 +226,7 @@ namespace cv { namespace cuda { namespace device
}
template<> __device__ __forceinline__ short saturate_cast(double v)
{
- #if __CUDA_ARCH__ >= 130
+ #if defined __CUDA_ARCH__ && __CUDA_ARCH__ >= 130
short res = 0;
asm("cvt.rni.sat.s16.f64 %0, %1;" : "=h"(res) : "d"(v));
return res;
@@ -289,4 +289,4 @@ namespace cv { namespace cuda { namespace device
//! @endcond
-#endif /* __OPENCV_CUDA_SATURATE_CAST_HPP__ */
+#endif /* OPENCV_CUDA_SATURATE_CAST_HPP */
diff --git a/include/opencv2/core/cuda/scan.hpp b/include/opencv2/core/cuda/scan.hpp
index 687abb5..e128fb0 100644
--- a/include/opencv2/core/cuda/scan.hpp
+++ b/include/opencv2/core/cuda/scan.hpp
@@ -40,8 +40,8 @@
//
//M*/
-#ifndef __OPENCV_CUDA_SCAN_HPP__
-#define __OPENCV_CUDA_SCAN_HPP__
+#ifndef OPENCV_CUDA_SCAN_HPP
+#define OPENCV_CUDA_SCAN_HPP
#include "opencv2/core/cuda/common.hpp"
#include "opencv2/core/cuda/utility.hpp"
@@ -61,7 +61,7 @@ namespace cv { namespace cuda { namespace device
template struct WarpScan
{
__device__ __forceinline__ WarpScan() {}
- __device__ __forceinline__ WarpScan(const WarpScan& other) { (void)other; }
+ __device__ __forceinline__ WarpScan(const WarpScan& other) { CV_UNUSED(other); }
__device__ __forceinline__ T operator()( volatile T *ptr , const unsigned int idx)
{
@@ -95,7 +95,7 @@ namespace cv { namespace cuda { namespace device
template struct WarpScanNoComp
{
__device__ __forceinline__ WarpScanNoComp() {}
- __device__ __forceinline__ WarpScanNoComp(const WarpScanNoComp& other) { (void)other; }
+ __device__ __forceinline__ WarpScanNoComp(const WarpScanNoComp& other) { CV_UNUSED(other); }
__device__ __forceinline__ T operator()( volatile T *ptr , const unsigned int idx)
{
@@ -135,7 +135,7 @@ namespace cv { namespace cuda { namespace device
template struct BlockScan
{
__device__ __forceinline__ BlockScan() {}
- __device__ __forceinline__ BlockScan(const BlockScan& other) { (void)other; }
+ __device__ __forceinline__ BlockScan(const BlockScan& other) { CV_UNUSED(other); }
__device__ __forceinline__ T operator()(volatile T *ptr)
{
@@ -255,4 +255,4 @@ namespace cv { namespace cuda { namespace device
//! @endcond
-#endif // __OPENCV_CUDA_SCAN_HPP__
+#endif // OPENCV_CUDA_SCAN_HPP
diff --git a/include/opencv2/core/cuda/simd_functions.hpp b/include/opencv2/core/cuda/simd_functions.hpp
index b9e0041..3d8c2e0 100644
--- a/include/opencv2/core/cuda/simd_functions.hpp
+++ b/include/opencv2/core/cuda/simd_functions.hpp
@@ -70,8 +70,8 @@
* POSSIBILITY OF SUCH DAMAGE.
*/
-#ifndef __OPENCV_CUDA_SIMD_FUNCTIONS_HPP__
-#define __OPENCV_CUDA_SIMD_FUNCTIONS_HPP__
+#ifndef OPENCV_CUDA_SIMD_FUNCTIONS_HPP
+#define OPENCV_CUDA_SIMD_FUNCTIONS_HPP
#include "common.hpp"
@@ -866,4 +866,4 @@ namespace cv { namespace cuda { namespace device
//! @endcond
-#endif // __OPENCV_CUDA_SIMD_FUNCTIONS_HPP__
+#endif // OPENCV_CUDA_SIMD_FUNCTIONS_HPP
diff --git a/include/opencv2/core/cuda/transform.hpp b/include/opencv2/core/cuda/transform.hpp
index 08a313d..42aa6ea 100644
--- a/include/opencv2/core/cuda/transform.hpp
+++ b/include/opencv2/core/cuda/transform.hpp
@@ -40,8 +40,8 @@
//
//M*/
-#ifndef __OPENCV_CUDA_TRANSFORM_HPP__
-#define __OPENCV_CUDA_TRANSFORM_HPP__
+#ifndef OPENCV_CUDA_TRANSFORM_HPP
+#define OPENCV_CUDA_TRANSFORM_HPP
#include "common.hpp"
#include "utility.hpp"
@@ -72,4 +72,4 @@ namespace cv { namespace cuda { namespace device
//! @endcond
-#endif // __OPENCV_CUDA_TRANSFORM_HPP__
+#endif // OPENCV_CUDA_TRANSFORM_HPP
diff --git a/include/opencv2/core/cuda/type_traits.hpp b/include/opencv2/core/cuda/type_traits.hpp
index f2471eb..8b7a3fd 100644
--- a/include/opencv2/core/cuda/type_traits.hpp
+++ b/include/opencv2/core/cuda/type_traits.hpp
@@ -40,8 +40,8 @@
//
//M*/
-#ifndef __OPENCV_CUDA_TYPE_TRAITS_HPP__
-#define __OPENCV_CUDA_TYPE_TRAITS_HPP__
+#ifndef OPENCV_CUDA_TYPE_TRAITS_HPP
+#define OPENCV_CUDA_TYPE_TRAITS_HPP
#include "detail/type_traits_detail.hpp"
@@ -87,4 +87,4 @@ namespace cv { namespace cuda { namespace device
//! @endcond
-#endif // __OPENCV_CUDA_TYPE_TRAITS_HPP__
+#endif // OPENCV_CUDA_TYPE_TRAITS_HPP
diff --git a/include/opencv2/core/cuda/utility.hpp b/include/opencv2/core/cuda/utility.hpp
index ed60471..7f5db48 100644
--- a/include/opencv2/core/cuda/utility.hpp
+++ b/include/opencv2/core/cuda/utility.hpp
@@ -40,8 +40,8 @@
//
//M*/
-#ifndef __OPENCV_CUDA_UTILITY_HPP__
-#define __OPENCV_CUDA_UTILITY_HPP__
+#ifndef OPENCV_CUDA_UTILITY_HPP
+#define OPENCV_CUDA_UTILITY_HPP
#include "saturate_cast.hpp"
#include "datamov_utils.hpp"
@@ -54,6 +54,15 @@
namespace cv { namespace cuda { namespace device
{
+ struct CV_EXPORTS ThrustAllocator
+ {
+ typedef uchar value_type;
+ virtual ~ThrustAllocator();
+ virtual __device__ __host__ uchar* allocate(size_t numBytes) = 0;
+ virtual __device__ __host__ void deallocate(uchar* ptr, size_t numBytes) = 0;
+ static ThrustAllocator& getAllocator();
+ static void setAllocator(ThrustAllocator* allocator);
+ };
#define OPENCV_CUDA_LOG_WARP_SIZE (5)
#define OPENCV_CUDA_WARP_SIZE (1 << OPENCV_CUDA_LOG_WARP_SIZE)
#define OPENCV_CUDA_LOG_MEM_BANKS ((__CUDA_ARCH__ >= 200) ? 5 : 4) // 32 banks on fermi, 16 on tesla
@@ -218,4 +227,4 @@ namespace cv { namespace cuda { namespace device
//! @endcond
-#endif // __OPENCV_CUDA_UTILITY_HPP__
+#endif // OPENCV_CUDA_UTILITY_HPP
diff --git a/include/opencv2/core/cuda/vec_distance.hpp b/include/opencv2/core/cuda/vec_distance.hpp
index 013b747..ef6e510 100644
--- a/include/opencv2/core/cuda/vec_distance.hpp
+++ b/include/opencv2/core/cuda/vec_distance.hpp
@@ -40,8 +40,8 @@
//
//M*/
-#ifndef __OPENCV_CUDA_VEC_DISTANCE_HPP__
-#define __OPENCV_CUDA_VEC_DISTANCE_HPP__
+#ifndef OPENCV_CUDA_VEC_DISTANCE_HPP
+#define OPENCV_CUDA_VEC_DISTANCE_HPP
#include "reduce.hpp"
#include "functional.hpp"
@@ -229,4 +229,4 @@ namespace cv { namespace cuda { namespace device
//! @endcond
-#endif // __OPENCV_CUDA_VEC_DISTANCE_HPP__
+#endif // OPENCV_CUDA_VEC_DISTANCE_HPP
diff --git a/include/opencv2/core/cuda/vec_math.hpp b/include/opencv2/core/cuda/vec_math.hpp
index 8595fb8..9085b92 100644
--- a/include/opencv2/core/cuda/vec_math.hpp
+++ b/include/opencv2/core/cuda/vec_math.hpp
@@ -40,8 +40,8 @@
//
//M*/
-#ifndef __OPENCV_CUDA_VECMATH_HPP__
-#define __OPENCV_CUDA_VECMATH_HPP__
+#ifndef OPENCV_CUDA_VECMATH_HPP
+#define OPENCV_CUDA_VECMATH_HPP
#include "vec_traits.hpp"
#include "saturate_cast.hpp"
@@ -927,4 +927,4 @@ CV_CUDEV_IMPLEMENT_SCALAR_BINARY_FUNC(atan2, ::atan2, double, double, double)
//! @endcond
-#endif // __OPENCV_CUDA_VECMATH_HPP__
+#endif // OPENCV_CUDA_VECMATH_HPP
diff --git a/include/opencv2/core/cuda/vec_traits.hpp b/include/opencv2/core/cuda/vec_traits.hpp
index 905e37f..b5ff281 100644
--- a/include/opencv2/core/cuda/vec_traits.hpp
+++ b/include/opencv2/core/cuda/vec_traits.hpp
@@ -40,8 +40,8 @@
//
//M*/
-#ifndef __OPENCV_CUDA_VEC_TRAITS_HPP__
-#define __OPENCV_CUDA_VEC_TRAITS_HPP__
+#ifndef OPENCV_CUDA_VEC_TRAITS_HPP
+#define OPENCV_CUDA_VEC_TRAITS_HPP
#include "common.hpp"
@@ -285,4 +285,4 @@ namespace cv { namespace cuda { namespace device
//! @endcond
-#endif // __OPENCV_CUDA_VEC_TRAITS_HPP__
+#endif // OPENCV_CUDA_VEC_TRAITS_HPP
diff --git a/include/opencv2/core/cuda/warp.hpp b/include/opencv2/core/cuda/warp.hpp
index d93afe7..8af7e6a 100644
--- a/include/opencv2/core/cuda/warp.hpp
+++ b/include/opencv2/core/cuda/warp.hpp
@@ -40,8 +40,8 @@
//
//M*/
-#ifndef __OPENCV_CUDA_DEVICE_WARP_HPP__
-#define __OPENCV_CUDA_DEVICE_WARP_HPP__
+#ifndef OPENCV_CUDA_DEVICE_WARP_HPP
+#define OPENCV_CUDA_DEVICE_WARP_HPP
/** @file
* @deprecated Use @ref cudev instead.
@@ -64,7 +64,7 @@ namespace cv { namespace cuda { namespace device
static __device__ __forceinline__ unsigned int laneId()
{
unsigned int ret;
- asm("mov.u32 %0, %laneid;" : "=r"(ret) );
+ asm("mov.u32 %0, %%laneid;" : "=r"(ret) );
return ret;
}
@@ -136,4 +136,4 @@ namespace cv { namespace cuda { namespace device
//! @endcond
-#endif /* __OPENCV_CUDA_DEVICE_WARP_HPP__ */
+#endif /* OPENCV_CUDA_DEVICE_WARP_HPP */
diff --git a/include/opencv2/core/cuda/warp_shuffle.hpp b/include/opencv2/core/cuda/warp_shuffle.hpp
index 5cf42ec..0da54ae 100644
--- a/include/opencv2/core/cuda/warp_shuffle.hpp
+++ b/include/opencv2/core/cuda/warp_shuffle.hpp
@@ -40,8 +40,8 @@
//
//M*/
-#ifndef __OPENCV_CUDA_WARP_SHUFFLE_HPP__
-#define __OPENCV_CUDA_WARP_SHUFFLE_HPP__
+#ifndef OPENCV_CUDA_WARP_SHUFFLE_HPP
+#define OPENCV_CUDA_WARP_SHUFFLE_HPP
/** @file
* @deprecated Use @ref cudev instead.
@@ -51,10 +51,15 @@
namespace cv { namespace cuda { namespace device
{
+#if __CUDACC_VER_MAJOR__ >= 9
+# define __shfl(x, y, z) __shfl_sync(0xFFFFFFFFU, x, y, z)
+# define __shfl_up(x, y, z) __shfl_up_sync(0xFFFFFFFFU, x, y, z)
+# define __shfl_down(x, y, z) __shfl_down_sync(0xFFFFFFFFU, x, y, z)
+#endif
template
__device__ __forceinline__ T shfl(T val, int srcLane, int width = warpSize)
{
- #if __CUDA_ARCH__ >= 300
+ #if defined __CUDA_ARCH__ && __CUDA_ARCH__ >= 300
return __shfl(val, srcLane, width);
#else
return T();
@@ -62,7 +67,7 @@ namespace cv { namespace cuda { namespace device
}
__device__ __forceinline__ unsigned int shfl(unsigned int val, int srcLane, int width = warpSize)
{
- #if __CUDA_ARCH__ >= 300
+ #if defined __CUDA_ARCH__ && __CUDA_ARCH__ >= 300
return (unsigned int) __shfl((int) val, srcLane, width);
#else
return 0;
@@ -70,7 +75,7 @@ namespace cv { namespace cuda { namespace device
}
__device__ __forceinline__ double shfl(double val, int srcLane, int width = warpSize)
{
- #if __CUDA_ARCH__ >= 300
+ #if defined __CUDA_ARCH__ && __CUDA_ARCH__ >= 300
int lo = __double2loint(val);
int hi = __double2hiint(val);
@@ -86,7 +91,7 @@ namespace cv { namespace cuda { namespace device
template
__device__ __forceinline__ T shfl_down(T val, unsigned int delta, int width = warpSize)
{
- #if __CUDA_ARCH__ >= 300
+ #if defined __CUDA_ARCH__ && __CUDA_ARCH__ >= 300
return __shfl_down(val, delta, width);
#else
return T();
@@ -94,7 +99,7 @@ namespace cv { namespace cuda { namespace device
}
__device__ __forceinline__ unsigned int shfl_down(unsigned int val, unsigned int delta, int width = warpSize)
{
- #if __CUDA_ARCH__ >= 300
+ #if defined __CUDA_ARCH__ && __CUDA_ARCH__ >= 300
return (unsigned int) __shfl_down((int) val, delta, width);
#else
return 0;
@@ -102,7 +107,7 @@ namespace cv { namespace cuda { namespace device
}
__device__ __forceinline__ double shfl_down(double val, unsigned int delta, int width = warpSize)
{
- #if __CUDA_ARCH__ >= 300
+ #if defined __CUDA_ARCH__ && __CUDA_ARCH__ >= 300
int lo = __double2loint(val);
int hi = __double2hiint(val);
@@ -118,7 +123,7 @@ namespace cv { namespace cuda { namespace device
template
__device__ __forceinline__ T shfl_up(T val, unsigned int delta, int width = warpSize)
{
- #if __CUDA_ARCH__ >= 300
+ #if defined __CUDA_ARCH__ && __CUDA_ARCH__ >= 300
return __shfl_up(val, delta, width);
#else
return T();
@@ -126,7 +131,7 @@ namespace cv { namespace cuda { namespace device
}
__device__ __forceinline__ unsigned int shfl_up(unsigned int val, unsigned int delta, int width = warpSize)
{
- #if __CUDA_ARCH__ >= 300
+ #if defined __CUDA_ARCH__ && __CUDA_ARCH__ >= 300
return (unsigned int) __shfl_up((int) val, delta, width);
#else
return 0;
@@ -134,7 +139,7 @@ namespace cv { namespace cuda { namespace device
}
__device__ __forceinline__ double shfl_up(double val, unsigned int delta, int width = warpSize)
{
- #if __CUDA_ARCH__ >= 300
+ #if defined __CUDA_ARCH__ && __CUDA_ARCH__ >= 300
int lo = __double2loint(val);
int hi = __double2hiint(val);
@@ -148,6 +153,10 @@ namespace cv { namespace cuda { namespace device
}
}}}
+# undef __shfl
+# undef __shfl_up
+# undef __shfl_down
+
//! @endcond
-#endif // __OPENCV_CUDA_WARP_SHUFFLE_HPP__
+#endif // OPENCV_CUDA_WARP_SHUFFLE_HPP
diff --git a/include/opencv2/core/cuda_stream_accessor.hpp b/include/opencv2/core/cuda_stream_accessor.hpp
index dd6589b..deaf356 100644
--- a/include/opencv2/core/cuda_stream_accessor.hpp
+++ b/include/opencv2/core/cuda_stream_accessor.hpp
@@ -40,8 +40,8 @@
//
//M*/
-#ifndef __OPENCV_CORE_CUDA_STREAM_ACCESSOR_HPP__
-#define __OPENCV_CORE_CUDA_STREAM_ACCESSOR_HPP__
+#ifndef OPENCV_CORE_CUDA_STREAM_ACCESSOR_HPP
+#define OPENCV_CORE_CUDA_STREAM_ACCESSOR_HPP
#ifndef __cplusplus
# error cuda_stream_accessor.hpp header must be compiled as C++
@@ -52,7 +52,7 @@
*/
#include
-#include "opencv2/core/cvdef.h"
+#include "opencv2/core/cuda.hpp"
namespace cv
{
@@ -62,14 +62,12 @@ namespace cv
//! @addtogroup cudacore_struct
//! @{
- class Stream;
- class Event;
-
/** @brief Class that enables getting cudaStream_t from cuda::Stream
*/
struct StreamAccessor
{
CV_EXPORTS static cudaStream_t getStream(const Stream& stream);
+ CV_EXPORTS static Stream wrapStream(cudaStream_t stream);
};
/** @brief Class that enables getting cudaEvent_t from cuda::Event
@@ -77,6 +75,7 @@ namespace cv
struct EventAccessor
{
CV_EXPORTS static cudaEvent_t getEvent(const Event& event);
+ CV_EXPORTS static Event wrapEvent(cudaEvent_t event);
};
//! @}
@@ -84,4 +83,4 @@ namespace cv
}
}
-#endif /* __OPENCV_CORE_CUDA_STREAM_ACCESSOR_HPP__ */
+#endif /* OPENCV_CORE_CUDA_STREAM_ACCESSOR_HPP */
diff --git a/include/opencv2/core/cuda_types.hpp b/include/opencv2/core/cuda_types.hpp
index 8df816e..e2647c0 100644
--- a/include/opencv2/core/cuda_types.hpp
+++ b/include/opencv2/core/cuda_types.hpp
@@ -40,13 +40,20 @@
//
//M*/
-#ifndef __OPENCV_CORE_CUDA_TYPES_HPP__
-#define __OPENCV_CORE_CUDA_TYPES_HPP__
+#ifndef OPENCV_CORE_CUDA_TYPES_HPP
+#define OPENCV_CORE_CUDA_TYPES_HPP
#ifndef __cplusplus
# error cuda_types.hpp header must be compiled as C++
#endif
+#if defined(__OPENCV_BUILD) && defined(__clang__)
+#pragma clang diagnostic ignored "-Winconsistent-missing-override"
+#endif
+#if defined(__OPENCV_BUILD) && defined(__GNUC__) && __GNUC__ >= 5
+#pragma GCC diagnostic ignored "-Wsuggest-override"
+#endif
+
/** @file
* @deprecated Use @ref cudev instead.
*/
@@ -132,4 +139,4 @@ namespace cv
//! @endcond
-#endif /* __OPENCV_CORE_CUDA_TYPES_HPP__ */
+#endif /* OPENCV_CORE_CUDA_TYPES_HPP */
diff --git a/include/opencv2/core/cv_cpu_dispatch.h b/include/opencv2/core/cv_cpu_dispatch.h
new file mode 100644
index 0000000..57aa0ce
--- /dev/null
+++ b/include/opencv2/core/cv_cpu_dispatch.h
@@ -0,0 +1,247 @@
+// This file is part of OpenCV project.
+// It is subject to the license terms in the LICENSE file found in the top-level directory
+// of this distribution and at http://opencv.org/license.html.
+
+#if defined __OPENCV_BUILD \
+
+#include "cv_cpu_config.h"
+#include "cv_cpu_helper.h"
+
+#ifdef CV_CPU_DISPATCH_MODE
+#define CV_CPU_OPTIMIZATION_NAMESPACE __CV_CAT(opt_, CV_CPU_DISPATCH_MODE)
+#define CV_CPU_OPTIMIZATION_NAMESPACE_BEGIN namespace __CV_CAT(opt_, CV_CPU_DISPATCH_MODE) {
+#define CV_CPU_OPTIMIZATION_NAMESPACE_END }
+#else
+#define CV_CPU_OPTIMIZATION_NAMESPACE cpu_baseline
+#define CV_CPU_OPTIMIZATION_NAMESPACE_BEGIN namespace cpu_baseline {
+#define CV_CPU_OPTIMIZATION_NAMESPACE_END }
+#endif
+
+
+#define __CV_CPU_DISPATCH_CHAIN_END(fn, args, mode, ...) /* done */
+#define __CV_CPU_DISPATCH(fn, args, mode, ...) __CV_EXPAND(__CV_CPU_DISPATCH_CHAIN_ ## mode(fn, args, __VA_ARGS__))
+#define __CV_CPU_DISPATCH_EXPAND(fn, args, ...) __CV_EXPAND(__CV_CPU_DISPATCH(fn, args, __VA_ARGS__))
+#define CV_CPU_DISPATCH(fn, args, ...) __CV_CPU_DISPATCH_EXPAND(fn, args, __VA_ARGS__, END) // expand macros
+
+
+#if defined CV_ENABLE_INTRINSICS \
+ && !defined CV_DISABLE_OPTIMIZATION \
+ && !defined __CUDACC__ /* do not include SSE/AVX/NEON headers for NVCC compiler */ \
+
+#ifdef CV_CPU_COMPILE_SSE2
+# include
+# define CV_MMX 1
+# define CV_SSE 1
+# define CV_SSE2 1
+#endif
+#ifdef CV_CPU_COMPILE_SSE3
+# include
+# define CV_SSE3 1
+#endif
+#ifdef CV_CPU_COMPILE_SSSE3
+# include
+# define CV_SSSE3 1
+#endif
+#ifdef CV_CPU_COMPILE_SSE4_1
+# include
+# define CV_SSE4_1 1
+#endif
+#ifdef CV_CPU_COMPILE_SSE4_2
+# include
+# define CV_SSE4_2 1
+#endif
+#ifdef CV_CPU_COMPILE_POPCNT
+# ifdef _MSC_VER
+# include
+# if defined(_M_X64)
+# define CV_POPCNT_U64 _mm_popcnt_u64
+# endif
+# define CV_POPCNT_U32 _mm_popcnt_u32
+# else
+# include
+# if defined(__x86_64__)
+# define CV_POPCNT_U64 __builtin_popcountll
+# endif
+# define CV_POPCNT_U32 __builtin_popcount
+# endif
+# define CV_POPCNT 1
+#endif
+#ifdef CV_CPU_COMPILE_AVX
+# include
+# define CV_AVX 1
+#endif
+#ifdef CV_CPU_COMPILE_FP16
+# if defined(__arm__) || defined(__aarch64__) || defined(_M_ARM)
+# include
+# else
+# include
+# endif
+# define CV_FP16 1
+#endif
+#ifdef CV_CPU_COMPILE_AVX2
+# include
+# define CV_AVX2 1
+#endif
+#ifdef CV_CPU_COMPILE_AVX_512F
+# include
+# define CV_AVX_512F 1
+#endif
+#ifdef CV_CPU_COMPILE_AVX512_SKX
+# include
+# define CV_AVX512_SKX 1
+#endif
+#ifdef CV_CPU_COMPILE_FMA3
+# define CV_FMA3 1
+#endif
+
+#if defined _WIN32 && defined(_M_ARM)
+# include
+# include
+# define CV_NEON 1
+#elif defined(__ARM_NEON__) || (defined (__ARM_NEON) && defined(__aarch64__))
+# include
+# define CV_NEON 1
+#endif
+
+#if defined(__ARM_NEON__) || defined(__aarch64__)
+# include
+#endif
+
+#ifdef CV_CPU_COMPILE_VSX
+# include
+# undef vector
+# undef pixel
+# undef bool
+# define CV_VSX 1
+#endif
+
+#ifdef CV_CPU_COMPILE_VSX3
+# define CV_VSX3 1
+#endif
+
+#endif // CV_ENABLE_INTRINSICS && !CV_DISABLE_OPTIMIZATION && !__CUDACC__
+
+#if defined CV_CPU_COMPILE_AVX && !defined CV_CPU_BASELINE_COMPILE_AVX
+struct VZeroUpperGuard {
+#ifdef __GNUC__
+ __attribute__((always_inline))
+#endif
+ inline ~VZeroUpperGuard() { _mm256_zeroupper(); }
+};
+#define __CV_AVX_GUARD VZeroUpperGuard __vzeroupper_guard; CV_UNUSED(__vzeroupper_guard);
+#endif
+
+#ifdef __CV_AVX_GUARD
+#define CV_AVX_GUARD __CV_AVX_GUARD
+#else
+#define CV_AVX_GUARD
+#endif
+
+#endif // __OPENCV_BUILD
+
+
+
+#if !defined __OPENCV_BUILD /* Compatibility code */ \
+ && !defined __CUDACC__ /* do not include SSE/AVX/NEON headers for NVCC compiler */
+#if defined __SSE2__ || defined _M_X64 || (defined _M_IX86_FP && _M_IX86_FP >= 2)
+# include
+# define CV_MMX 1
+# define CV_SSE 1
+# define CV_SSE2 1
+#elif defined _WIN32 && defined(_M_ARM)
+# include
+# include
+# define CV_NEON 1
+#elif defined(__ARM_NEON__) || (defined (__ARM_NEON) && defined(__aarch64__))
+# include
+# define CV_NEON 1
+#elif defined(__VSX__) && defined(__PPC64__) && defined(__LITTLE_ENDIAN__)
+# include
+# undef vector
+# undef pixel
+# undef bool
+# define CV_VSX 1
+#endif
+
+#endif // !__OPENCV_BUILD && !__CUDACC (Compatibility code)
+
+
+
+#ifndef CV_MMX
+# define CV_MMX 0
+#endif
+#ifndef CV_SSE
+# define CV_SSE 0
+#endif
+#ifndef CV_SSE2
+# define CV_SSE2 0
+#endif
+#ifndef CV_SSE3
+# define CV_SSE3 0
+#endif
+#ifndef CV_SSSE3
+# define CV_SSSE3 0
+#endif
+#ifndef CV_SSE4_1
+# define CV_SSE4_1 0
+#endif
+#ifndef CV_SSE4_2
+# define CV_SSE4_2 0
+#endif
+#ifndef CV_POPCNT
+# define CV_POPCNT 0
+#endif
+#ifndef CV_AVX
+# define CV_AVX 0
+#endif
+#ifndef CV_FP16
+# define CV_FP16 0
+#endif
+#ifndef CV_AVX2
+# define CV_AVX2 0
+#endif
+#ifndef CV_FMA3
+# define CV_FMA3 0
+#endif
+#ifndef CV_AVX_512F
+# define CV_AVX_512F 0
+#endif
+#ifndef CV_AVX_512BW
+# define CV_AVX_512BW 0
+#endif
+#ifndef CV_AVX_512CD
+# define CV_AVX_512CD 0
+#endif
+#ifndef CV_AVX_512DQ
+# define CV_AVX_512DQ 0
+#endif
+#ifndef CV_AVX_512ER
+# define CV_AVX_512ER 0
+#endif
+#ifndef CV_AVX_512IFMA512
+# define CV_AVX_512IFMA512 0
+#endif
+#ifndef CV_AVX_512PF
+# define CV_AVX_512PF 0
+#endif
+#ifndef CV_AVX_512VBMI
+# define CV_AVX_512VBMI 0
+#endif
+#ifndef CV_AVX_512VL
+# define CV_AVX_512VL 0
+#endif
+#ifndef CV_AVX512_SKX
+# define CV_AVX512_SKX 0
+#endif
+
+#ifndef CV_NEON
+# define CV_NEON 0
+#endif
+
+#ifndef CV_VSX
+# define CV_VSX 0
+#endif
+
+#ifndef CV_VSX3
+# define CV_VSX3 0
+#endif
diff --git a/include/opencv2/core/cv_cpu_helper.h b/include/opencv2/core/cv_cpu_helper.h
new file mode 100644
index 0000000..ad13397
--- /dev/null
+++ b/include/opencv2/core/cv_cpu_helper.h
@@ -0,0 +1,340 @@
+// AUTOGENERATED, DO NOT EDIT
+
+#if !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_COMPILE_SSE
+# define CV_TRY_SSE 1
+# define CV_CPU_FORCE_SSE 1
+# define CV_CPU_HAS_SUPPORT_SSE 1
+# define CV_CPU_CALL_SSE(fn, args) return (cpu_baseline::fn args)
+# define CV_CPU_CALL_SSE_(fn, args) return (opt_SSE::fn args)
+#elif !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_DISPATCH_COMPILE_SSE
+# define CV_TRY_SSE 1
+# define CV_CPU_FORCE_SSE 0
+# define CV_CPU_HAS_SUPPORT_SSE (cv::checkHardwareSupport(CV_CPU_SSE))
+# define CV_CPU_CALL_SSE(fn, args) if (CV_CPU_HAS_SUPPORT_SSE) return (opt_SSE::fn args)
+# define CV_CPU_CALL_SSE_(fn, args) if (CV_CPU_HAS_SUPPORT_SSE) return (opt_SSE::fn args)
+#else
+# define CV_TRY_SSE 0
+# define CV_CPU_FORCE_SSE 0
+# define CV_CPU_HAS_SUPPORT_SSE 0
+# define CV_CPU_CALL_SSE(fn, args)
+# define CV_CPU_CALL_SSE_(fn, args)
+#endif
+#define __CV_CPU_DISPATCH_CHAIN_SSE(fn, args, mode, ...) CV_CPU_CALL_SSE(fn, args); __CV_EXPAND(__CV_CPU_DISPATCH_CHAIN_ ## mode(fn, args, __VA_ARGS__))
+
+#if !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_COMPILE_SSE2
+# define CV_TRY_SSE2 1
+# define CV_CPU_FORCE_SSE2 1
+# define CV_CPU_HAS_SUPPORT_SSE2 1
+# define CV_CPU_CALL_SSE2(fn, args) return (cpu_baseline::fn args)
+# define CV_CPU_CALL_SSE2_(fn, args) return (opt_SSE2::fn args)
+#elif !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_DISPATCH_COMPILE_SSE2
+# define CV_TRY_SSE2 1
+# define CV_CPU_FORCE_SSE2 0
+# define CV_CPU_HAS_SUPPORT_SSE2 (cv::checkHardwareSupport(CV_CPU_SSE2))
+# define CV_CPU_CALL_SSE2(fn, args) if (CV_CPU_HAS_SUPPORT_SSE2) return (opt_SSE2::fn args)
+# define CV_CPU_CALL_SSE2_(fn, args) if (CV_CPU_HAS_SUPPORT_SSE2) return (opt_SSE2::fn args)
+#else
+# define CV_TRY_SSE2 0
+# define CV_CPU_FORCE_SSE2 0
+# define CV_CPU_HAS_SUPPORT_SSE2 0
+# define CV_CPU_CALL_SSE2(fn, args)
+# define CV_CPU_CALL_SSE2_(fn, args)
+#endif
+#define __CV_CPU_DISPATCH_CHAIN_SSE2(fn, args, mode, ...) CV_CPU_CALL_SSE2(fn, args); __CV_EXPAND(__CV_CPU_DISPATCH_CHAIN_ ## mode(fn, args, __VA_ARGS__))
+
+#if !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_COMPILE_SSE3
+# define CV_TRY_SSE3 1
+# define CV_CPU_FORCE_SSE3 1
+# define CV_CPU_HAS_SUPPORT_SSE3 1
+# define CV_CPU_CALL_SSE3(fn, args) return (cpu_baseline::fn args)
+# define CV_CPU_CALL_SSE3_(fn, args) return (opt_SSE3::fn args)
+#elif !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_DISPATCH_COMPILE_SSE3
+# define CV_TRY_SSE3 1
+# define CV_CPU_FORCE_SSE3 0
+# define CV_CPU_HAS_SUPPORT_SSE3 (cv::checkHardwareSupport(CV_CPU_SSE3))
+# define CV_CPU_CALL_SSE3(fn, args) if (CV_CPU_HAS_SUPPORT_SSE3) return (opt_SSE3::fn args)
+# define CV_CPU_CALL_SSE3_(fn, args) if (CV_CPU_HAS_SUPPORT_SSE3) return (opt_SSE3::fn args)
+#else
+# define CV_TRY_SSE3 0
+# define CV_CPU_FORCE_SSE3 0
+# define CV_CPU_HAS_SUPPORT_SSE3 0
+# define CV_CPU_CALL_SSE3(fn, args)
+# define CV_CPU_CALL_SSE3_(fn, args)
+#endif
+#define __CV_CPU_DISPATCH_CHAIN_SSE3(fn, args, mode, ...) CV_CPU_CALL_SSE3(fn, args); __CV_EXPAND(__CV_CPU_DISPATCH_CHAIN_ ## mode(fn, args, __VA_ARGS__))
+
+#if !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_COMPILE_SSSE3
+# define CV_TRY_SSSE3 1
+# define CV_CPU_FORCE_SSSE3 1
+# define CV_CPU_HAS_SUPPORT_SSSE3 1
+# define CV_CPU_CALL_SSSE3(fn, args) return (cpu_baseline::fn args)
+# define CV_CPU_CALL_SSSE3_(fn, args) return (opt_SSSE3::fn args)
+#elif !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_DISPATCH_COMPILE_SSSE3
+# define CV_TRY_SSSE3 1
+# define CV_CPU_FORCE_SSSE3 0
+# define CV_CPU_HAS_SUPPORT_SSSE3 (cv::checkHardwareSupport(CV_CPU_SSSE3))
+# define CV_CPU_CALL_SSSE3(fn, args) if (CV_CPU_HAS_SUPPORT_SSSE3) return (opt_SSSE3::fn args)
+# define CV_CPU_CALL_SSSE3_(fn, args) if (CV_CPU_HAS_SUPPORT_SSSE3) return (opt_SSSE3::fn args)
+#else
+# define CV_TRY_SSSE3 0
+# define CV_CPU_FORCE_SSSE3 0
+# define CV_CPU_HAS_SUPPORT_SSSE3 0
+# define CV_CPU_CALL_SSSE3(fn, args)
+# define CV_CPU_CALL_SSSE3_(fn, args)
+#endif
+#define __CV_CPU_DISPATCH_CHAIN_SSSE3(fn, args, mode, ...) CV_CPU_CALL_SSSE3(fn, args); __CV_EXPAND(__CV_CPU_DISPATCH_CHAIN_ ## mode(fn, args, __VA_ARGS__))
+
+#if !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_COMPILE_SSE4_1
+# define CV_TRY_SSE4_1 1
+# define CV_CPU_FORCE_SSE4_1 1
+# define CV_CPU_HAS_SUPPORT_SSE4_1 1
+# define CV_CPU_CALL_SSE4_1(fn, args) return (cpu_baseline::fn args)
+# define CV_CPU_CALL_SSE4_1_(fn, args) return (opt_SSE4_1::fn args)
+#elif !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_DISPATCH_COMPILE_SSE4_1
+# define CV_TRY_SSE4_1 1
+# define CV_CPU_FORCE_SSE4_1 0
+# define CV_CPU_HAS_SUPPORT_SSE4_1 (cv::checkHardwareSupport(CV_CPU_SSE4_1))
+# define CV_CPU_CALL_SSE4_1(fn, args) if (CV_CPU_HAS_SUPPORT_SSE4_1) return (opt_SSE4_1::fn args)
+# define CV_CPU_CALL_SSE4_1_(fn, args) if (CV_CPU_HAS_SUPPORT_SSE4_1) return (opt_SSE4_1::fn args)
+#else
+# define CV_TRY_SSE4_1 0
+# define CV_CPU_FORCE_SSE4_1 0
+# define CV_CPU_HAS_SUPPORT_SSE4_1 0
+# define CV_CPU_CALL_SSE4_1(fn, args)
+# define CV_CPU_CALL_SSE4_1_(fn, args)
+#endif
+#define __CV_CPU_DISPATCH_CHAIN_SSE4_1(fn, args, mode, ...) CV_CPU_CALL_SSE4_1(fn, args); __CV_EXPAND(__CV_CPU_DISPATCH_CHAIN_ ## mode(fn, args, __VA_ARGS__))
+
+#if !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_COMPILE_SSE4_2
+# define CV_TRY_SSE4_2 1
+# define CV_CPU_FORCE_SSE4_2 1
+# define CV_CPU_HAS_SUPPORT_SSE4_2 1
+# define CV_CPU_CALL_SSE4_2(fn, args) return (cpu_baseline::fn args)
+# define CV_CPU_CALL_SSE4_2_(fn, args) return (opt_SSE4_2::fn args)
+#elif !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_DISPATCH_COMPILE_SSE4_2
+# define CV_TRY_SSE4_2 1
+# define CV_CPU_FORCE_SSE4_2 0
+# define CV_CPU_HAS_SUPPORT_SSE4_2 (cv::checkHardwareSupport(CV_CPU_SSE4_2))
+# define CV_CPU_CALL_SSE4_2(fn, args) if (CV_CPU_HAS_SUPPORT_SSE4_2) return (opt_SSE4_2::fn args)
+# define CV_CPU_CALL_SSE4_2_(fn, args) if (CV_CPU_HAS_SUPPORT_SSE4_2) return (opt_SSE4_2::fn args)
+#else
+# define CV_TRY_SSE4_2 0
+# define CV_CPU_FORCE_SSE4_2 0
+# define CV_CPU_HAS_SUPPORT_SSE4_2 0
+# define CV_CPU_CALL_SSE4_2(fn, args)
+# define CV_CPU_CALL_SSE4_2_(fn, args)
+#endif
+#define __CV_CPU_DISPATCH_CHAIN_SSE4_2(fn, args, mode, ...) CV_CPU_CALL_SSE4_2(fn, args); __CV_EXPAND(__CV_CPU_DISPATCH_CHAIN_ ## mode(fn, args, __VA_ARGS__))
+
+#if !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_COMPILE_POPCNT
+# define CV_TRY_POPCNT 1
+# define CV_CPU_FORCE_POPCNT 1
+# define CV_CPU_HAS_SUPPORT_POPCNT 1
+# define CV_CPU_CALL_POPCNT(fn, args) return (cpu_baseline::fn args)
+# define CV_CPU_CALL_POPCNT_(fn, args) return (opt_POPCNT::fn args)
+#elif !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_DISPATCH_COMPILE_POPCNT
+# define CV_TRY_POPCNT 1
+# define CV_CPU_FORCE_POPCNT 0
+# define CV_CPU_HAS_SUPPORT_POPCNT (cv::checkHardwareSupport(CV_CPU_POPCNT))
+# define CV_CPU_CALL_POPCNT(fn, args) if (CV_CPU_HAS_SUPPORT_POPCNT) return (opt_POPCNT::fn args)
+# define CV_CPU_CALL_POPCNT_(fn, args) if (CV_CPU_HAS_SUPPORT_POPCNT) return (opt_POPCNT::fn args)
+#else
+# define CV_TRY_POPCNT 0
+# define CV_CPU_FORCE_POPCNT 0
+# define CV_CPU_HAS_SUPPORT_POPCNT 0
+# define CV_CPU_CALL_POPCNT(fn, args)
+# define CV_CPU_CALL_POPCNT_(fn, args)
+#endif
+#define __CV_CPU_DISPATCH_CHAIN_POPCNT(fn, args, mode, ...) CV_CPU_CALL_POPCNT(fn, args); __CV_EXPAND(__CV_CPU_DISPATCH_CHAIN_ ## mode(fn, args, __VA_ARGS__))
+
+#if !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_COMPILE_AVX
+# define CV_TRY_AVX 1
+# define CV_CPU_FORCE_AVX 1
+# define CV_CPU_HAS_SUPPORT_AVX 1
+# define CV_CPU_CALL_AVX(fn, args) return (cpu_baseline::fn args)
+# define CV_CPU_CALL_AVX_(fn, args) return (opt_AVX::fn args)
+#elif !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_DISPATCH_COMPILE_AVX
+# define CV_TRY_AVX 1
+# define CV_CPU_FORCE_AVX 0
+# define CV_CPU_HAS_SUPPORT_AVX (cv::checkHardwareSupport(CV_CPU_AVX))
+# define CV_CPU_CALL_AVX(fn, args) if (CV_CPU_HAS_SUPPORT_AVX) return (opt_AVX::fn args)
+# define CV_CPU_CALL_AVX_(fn, args) if (CV_CPU_HAS_SUPPORT_AVX) return (opt_AVX::fn args)
+#else
+# define CV_TRY_AVX 0
+# define CV_CPU_FORCE_AVX 0
+# define CV_CPU_HAS_SUPPORT_AVX 0
+# define CV_CPU_CALL_AVX(fn, args)
+# define CV_CPU_CALL_AVX_(fn, args)
+#endif
+#define __CV_CPU_DISPATCH_CHAIN_AVX(fn, args, mode, ...) CV_CPU_CALL_AVX(fn, args); __CV_EXPAND(__CV_CPU_DISPATCH_CHAIN_ ## mode(fn, args, __VA_ARGS__))
+
+#if !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_COMPILE_FP16
+# define CV_TRY_FP16 1
+# define CV_CPU_FORCE_FP16 1
+# define CV_CPU_HAS_SUPPORT_FP16 1
+# define CV_CPU_CALL_FP16(fn, args) return (cpu_baseline::fn args)
+# define CV_CPU_CALL_FP16_(fn, args) return (opt_FP16::fn args)
+#elif !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_DISPATCH_COMPILE_FP16
+# define CV_TRY_FP16 1
+# define CV_CPU_FORCE_FP16 0
+# define CV_CPU_HAS_SUPPORT_FP16 (cv::checkHardwareSupport(CV_CPU_FP16))
+# define CV_CPU_CALL_FP16(fn, args) if (CV_CPU_HAS_SUPPORT_FP16) return (opt_FP16::fn args)
+# define CV_CPU_CALL_FP16_(fn, args) if (CV_CPU_HAS_SUPPORT_FP16) return (opt_FP16::fn args)
+#else
+# define CV_TRY_FP16 0
+# define CV_CPU_FORCE_FP16 0
+# define CV_CPU_HAS_SUPPORT_FP16 0
+# define CV_CPU_CALL_FP16(fn, args)
+# define CV_CPU_CALL_FP16_(fn, args)
+#endif
+#define __CV_CPU_DISPATCH_CHAIN_FP16(fn, args, mode, ...) CV_CPU_CALL_FP16(fn, args); __CV_EXPAND(__CV_CPU_DISPATCH_CHAIN_ ## mode(fn, args, __VA_ARGS__))
+
+#if !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_COMPILE_AVX2
+# define CV_TRY_AVX2 1
+# define CV_CPU_FORCE_AVX2 1
+# define CV_CPU_HAS_SUPPORT_AVX2 1
+# define CV_CPU_CALL_AVX2(fn, args) return (cpu_baseline::fn args)
+# define CV_CPU_CALL_AVX2_(fn, args) return (opt_AVX2::fn args)
+#elif !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_DISPATCH_COMPILE_AVX2
+# define CV_TRY_AVX2 1
+# define CV_CPU_FORCE_AVX2 0
+# define CV_CPU_HAS_SUPPORT_AVX2 (cv::checkHardwareSupport(CV_CPU_AVX2))
+# define CV_CPU_CALL_AVX2(fn, args) if (CV_CPU_HAS_SUPPORT_AVX2) return (opt_AVX2::fn args)
+# define CV_CPU_CALL_AVX2_(fn, args) if (CV_CPU_HAS_SUPPORT_AVX2) return (opt_AVX2::fn args)
+#else
+# define CV_TRY_AVX2 0
+# define CV_CPU_FORCE_AVX2 0
+# define CV_CPU_HAS_SUPPORT_AVX2 0
+# define CV_CPU_CALL_AVX2(fn, args)
+# define CV_CPU_CALL_AVX2_(fn, args)
+#endif
+#define __CV_CPU_DISPATCH_CHAIN_AVX2(fn, args, mode, ...) CV_CPU_CALL_AVX2(fn, args); __CV_EXPAND(__CV_CPU_DISPATCH_CHAIN_ ## mode(fn, args, __VA_ARGS__))
+
+#if !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_COMPILE_FMA3
+# define CV_TRY_FMA3 1
+# define CV_CPU_FORCE_FMA3 1
+# define CV_CPU_HAS_SUPPORT_FMA3 1
+# define CV_CPU_CALL_FMA3(fn, args) return (cpu_baseline::fn args)
+# define CV_CPU_CALL_FMA3_(fn, args) return (opt_FMA3::fn args)
+#elif !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_DISPATCH_COMPILE_FMA3
+# define CV_TRY_FMA3 1
+# define CV_CPU_FORCE_FMA3 0
+# define CV_CPU_HAS_SUPPORT_FMA3 (cv::checkHardwareSupport(CV_CPU_FMA3))
+# define CV_CPU_CALL_FMA3(fn, args) if (CV_CPU_HAS_SUPPORT_FMA3) return (opt_FMA3::fn args)
+# define CV_CPU_CALL_FMA3_(fn, args) if (CV_CPU_HAS_SUPPORT_FMA3) return (opt_FMA3::fn args)
+#else
+# define CV_TRY_FMA3 0
+# define CV_CPU_FORCE_FMA3 0
+# define CV_CPU_HAS_SUPPORT_FMA3 0
+# define CV_CPU_CALL_FMA3(fn, args)
+# define CV_CPU_CALL_FMA3_(fn, args)
+#endif
+#define __CV_CPU_DISPATCH_CHAIN_FMA3(fn, args, mode, ...) CV_CPU_CALL_FMA3(fn, args); __CV_EXPAND(__CV_CPU_DISPATCH_CHAIN_ ## mode(fn, args, __VA_ARGS__))
+
+#if !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_COMPILE_AVX_512F
+# define CV_TRY_AVX_512F 1
+# define CV_CPU_FORCE_AVX_512F 1
+# define CV_CPU_HAS_SUPPORT_AVX_512F 1
+# define CV_CPU_CALL_AVX_512F(fn, args) return (cpu_baseline::fn args)
+# define CV_CPU_CALL_AVX_512F_(fn, args) return (opt_AVX_512F::fn args)
+#elif !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_DISPATCH_COMPILE_AVX_512F
+# define CV_TRY_AVX_512F 1
+# define CV_CPU_FORCE_AVX_512F 0
+# define CV_CPU_HAS_SUPPORT_AVX_512F (cv::checkHardwareSupport(CV_CPU_AVX_512F))
+# define CV_CPU_CALL_AVX_512F(fn, args) if (CV_CPU_HAS_SUPPORT_AVX_512F) return (opt_AVX_512F::fn args)
+# define CV_CPU_CALL_AVX_512F_(fn, args) if (CV_CPU_HAS_SUPPORT_AVX_512F) return (opt_AVX_512F::fn args)
+#else
+# define CV_TRY_AVX_512F 0
+# define CV_CPU_FORCE_AVX_512F 0
+# define CV_CPU_HAS_SUPPORT_AVX_512F 0
+# define CV_CPU_CALL_AVX_512F(fn, args)
+# define CV_CPU_CALL_AVX_512F_(fn, args)
+#endif
+#define __CV_CPU_DISPATCH_CHAIN_AVX_512F(fn, args, mode, ...) CV_CPU_CALL_AVX_512F(fn, args); __CV_EXPAND(__CV_CPU_DISPATCH_CHAIN_ ## mode(fn, args, __VA_ARGS__))
+
+#if !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_COMPILE_AVX512_SKX
+# define CV_TRY_AVX512_SKX 1
+# define CV_CPU_FORCE_AVX512_SKX 1
+# define CV_CPU_HAS_SUPPORT_AVX512_SKX 1
+# define CV_CPU_CALL_AVX512_SKX(fn, args) return (cpu_baseline::fn args)
+# define CV_CPU_CALL_AVX512_SKX_(fn, args) return (opt_AVX512_SKX::fn args)
+#elif !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_DISPATCH_COMPILE_AVX512_SKX
+# define CV_TRY_AVX512_SKX 1
+# define CV_CPU_FORCE_AVX512_SKX 0
+# define CV_CPU_HAS_SUPPORT_AVX512_SKX (cv::checkHardwareSupport(CV_CPU_AVX512_SKX))
+# define CV_CPU_CALL_AVX512_SKX(fn, args) if (CV_CPU_HAS_SUPPORT_AVX512_SKX) return (opt_AVX512_SKX::fn args)
+# define CV_CPU_CALL_AVX512_SKX_(fn, args) if (CV_CPU_HAS_SUPPORT_AVX512_SKX) return (opt_AVX512_SKX::fn args)
+#else
+# define CV_TRY_AVX512_SKX 0
+# define CV_CPU_FORCE_AVX512_SKX 0
+# define CV_CPU_HAS_SUPPORT_AVX512_SKX 0
+# define CV_CPU_CALL_AVX512_SKX(fn, args)
+# define CV_CPU_CALL_AVX512_SKX_(fn, args)
+#endif
+#define __CV_CPU_DISPATCH_CHAIN_AVX512_SKX(fn, args, mode, ...) CV_CPU_CALL_AVX512_SKX(fn, args); __CV_EXPAND(__CV_CPU_DISPATCH_CHAIN_ ## mode(fn, args, __VA_ARGS__))
+
+#if !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_COMPILE_NEON
+# define CV_TRY_NEON 1
+# define CV_CPU_FORCE_NEON 1
+# define CV_CPU_HAS_SUPPORT_NEON 1
+# define CV_CPU_CALL_NEON(fn, args) return (cpu_baseline::fn args)
+# define CV_CPU_CALL_NEON_(fn, args) return (opt_NEON::fn args)
+#elif !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_DISPATCH_COMPILE_NEON
+# define CV_TRY_NEON 1
+# define CV_CPU_FORCE_NEON 0
+# define CV_CPU_HAS_SUPPORT_NEON (cv::checkHardwareSupport(CV_CPU_NEON))
+# define CV_CPU_CALL_NEON(fn, args) if (CV_CPU_HAS_SUPPORT_NEON) return (opt_NEON::fn args)
+# define CV_CPU_CALL_NEON_(fn, args) if (CV_CPU_HAS_SUPPORT_NEON) return (opt_NEON::fn args)
+#else
+# define CV_TRY_NEON 0
+# define CV_CPU_FORCE_NEON 0
+# define CV_CPU_HAS_SUPPORT_NEON 0
+# define CV_CPU_CALL_NEON(fn, args)
+# define CV_CPU_CALL_NEON_(fn, args)
+#endif
+#define __CV_CPU_DISPATCH_CHAIN_NEON(fn, args, mode, ...) CV_CPU_CALL_NEON(fn, args); __CV_EXPAND(__CV_CPU_DISPATCH_CHAIN_ ## mode(fn, args, __VA_ARGS__))
+
+#if !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_COMPILE_VSX
+# define CV_TRY_VSX 1
+# define CV_CPU_FORCE_VSX 1
+# define CV_CPU_HAS_SUPPORT_VSX 1
+# define CV_CPU_CALL_VSX(fn, args) return (cpu_baseline::fn args)
+# define CV_CPU_CALL_VSX_(fn, args) return (opt_VSX::fn args)
+#elif !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_DISPATCH_COMPILE_VSX
+# define CV_TRY_VSX 1
+# define CV_CPU_FORCE_VSX 0
+# define CV_CPU_HAS_SUPPORT_VSX (cv::checkHardwareSupport(CV_CPU_VSX))
+# define CV_CPU_CALL_VSX(fn, args) if (CV_CPU_HAS_SUPPORT_VSX) return (opt_VSX::fn args)
+# define CV_CPU_CALL_VSX_(fn, args) if (CV_CPU_HAS_SUPPORT_VSX) return (opt_VSX::fn args)
+#else
+# define CV_TRY_VSX 0
+# define CV_CPU_FORCE_VSX 0
+# define CV_CPU_HAS_SUPPORT_VSX 0
+# define CV_CPU_CALL_VSX(fn, args)
+# define CV_CPU_CALL_VSX_(fn, args)
+#endif
+#define __CV_CPU_DISPATCH_CHAIN_VSX(fn, args, mode, ...) CV_CPU_CALL_VSX(fn, args); __CV_EXPAND(__CV_CPU_DISPATCH_CHAIN_ ## mode(fn, args, __VA_ARGS__))
+
+#if !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_COMPILE_VSX3
+# define CV_TRY_VSX3 1
+# define CV_CPU_FORCE_VSX3 1
+# define CV_CPU_HAS_SUPPORT_VSX3 1
+# define CV_CPU_CALL_VSX3(fn, args) return (cpu_baseline::fn args)
+# define CV_CPU_CALL_VSX3_(fn, args) return (opt_VSX3::fn args)
+#elif !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_DISPATCH_COMPILE_VSX3
+# define CV_TRY_VSX3 1
+# define CV_CPU_FORCE_VSX3 0
+# define CV_CPU_HAS_SUPPORT_VSX3 (cv::checkHardwareSupport(CV_CPU_VSX3))
+# define CV_CPU_CALL_VSX3(fn, args) if (CV_CPU_HAS_SUPPORT_VSX3) return (opt_VSX3::fn args)
+# define CV_CPU_CALL_VSX3_(fn, args) if (CV_CPU_HAS_SUPPORT_VSX3) return (opt_VSX3::fn args)
+#else
+# define CV_TRY_VSX3 0
+# define CV_CPU_FORCE_VSX3 0
+# define CV_CPU_HAS_SUPPORT_VSX3 0
+# define CV_CPU_CALL_VSX3(fn, args)
+# define CV_CPU_CALL_VSX3_(fn, args)
+#endif
+#define __CV_CPU_DISPATCH_CHAIN_VSX3(fn, args, mode, ...) CV_CPU_CALL_VSX3(fn, args); __CV_EXPAND(__CV_CPU_DISPATCH_CHAIN_ ## mode(fn, args, __VA_ARGS__))
+
+#define CV_CPU_CALL_BASELINE(fn, args) return (cpu_baseline::fn args)
+#define __CV_CPU_DISPATCH_CHAIN_BASELINE(fn, args, mode, ...) CV_CPU_CALL_BASELINE(fn, args) /* last in sequence */
diff --git a/include/opencv2/core/cvdef.h b/include/opencv2/core/cvdef.h
index 1d933b5..1e8a697 100644
--- a/include/opencv2/core/cvdef.h
+++ b/include/opencv2/core/cvdef.h
@@ -42,12 +42,131 @@
//
//M*/
-#ifndef __OPENCV_CORE_CVDEF_H__
-#define __OPENCV_CORE_CVDEF_H__
+#ifndef OPENCV_CORE_CVDEF_H
+#define OPENCV_CORE_CVDEF_H
-#if !defined _CRT_SECURE_NO_DEPRECATE && defined _MSC_VER && _MSC_VER > 1300
-# define _CRT_SECURE_NO_DEPRECATE /* to avoid multiple Visual Studio warnings */
+//! @addtogroup core_utils
+//! @{
+
+#if !defined CV_DOXYGEN && !defined CV_IGNORE_DEBUG_BUILD_GUARD
+#if (defined(_MSC_VER) && (defined(DEBUG) || defined(_DEBUG))) || \
+ (defined(_GLIBCXX_DEBUG) || defined(_GLIBCXX_DEBUG_PEDANTIC))
+// Guard to prevent using of binary incompatible binaries / runtimes
+// https://github.com/opencv/opencv/pull/9161
+#define CV__DEBUG_NS_BEGIN namespace debug_build_guard {
+#define CV__DEBUG_NS_END }
+namespace cv { namespace debug_build_guard { } using namespace debug_build_guard; }
#endif
+#endif
+
+#ifndef CV__DEBUG_NS_BEGIN
+#define CV__DEBUG_NS_BEGIN
+#define CV__DEBUG_NS_END
+#endif
+
+
+#ifdef __OPENCV_BUILD
+#include "cvconfig.h"
+#endif
+
+#ifndef __CV_EXPAND
+#define __CV_EXPAND(x) x
+#endif
+
+#ifndef __CV_CAT
+#define __CV_CAT__(x, y) x ## y
+#define __CV_CAT_(x, y) __CV_CAT__(x, y)
+#define __CV_CAT(x, y) __CV_CAT_(x, y)
+#endif
+
+#define __CV_VA_NUM_ARGS_HELPER(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, N, ...) N
+#define __CV_VA_NUM_ARGS(...) __CV_VA_NUM_ARGS_HELPER(__VA_ARGS__, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0)
+
+#if defined __GNUC__
+#define CV_Func __func__
+#elif defined _MSC_VER
+#define CV_Func __FUNCTION__
+#else
+#define CV_Func ""
+#endif
+
+//! @cond IGNORED
+
+//////////////// static assert /////////////////
+#define CVAUX_CONCAT_EXP(a, b) a##b
+#define CVAUX_CONCAT(a, b) CVAUX_CONCAT_EXP(a,b)
+
+#if defined(__clang__)
+# ifndef __has_extension
+# define __has_extension __has_feature /* compatibility, for older versions of clang */
+# endif
+# if __has_extension(cxx_static_assert)
+# define CV_StaticAssert(condition, reason) static_assert((condition), reason " " #condition)
+# elif __has_extension(c_static_assert)
+# define CV_StaticAssert(condition, reason) _Static_assert((condition), reason " " #condition)
+# endif
+#elif defined(__GNUC__)
+# if (defined(__GXX_EXPERIMENTAL_CXX0X__) || __cplusplus >= 201103L)
+# define CV_StaticAssert(condition, reason) static_assert((condition), reason " " #condition)
+# endif
+#elif defined(_MSC_VER)
+# if _MSC_VER >= 1600 /* MSVC 10 */
+# define CV_StaticAssert(condition, reason) static_assert((condition), reason " " #condition)
+# endif
+#endif
+#ifndef CV_StaticAssert
+# if !defined(__clang__) && defined(__GNUC__) && (__GNUC__*100 + __GNUC_MINOR__ > 302)
+# define CV_StaticAssert(condition, reason) ({ extern int __attribute__((error("CV_StaticAssert: " reason " " #condition))) CV_StaticAssert(); ((condition) ? 0 : CV_StaticAssert()); })
+# else
+ template struct CV_StaticAssert_failed;
+ template <> struct CV_StaticAssert_failed { enum { val = 1 }; };
+ template struct CV_StaticAssert_test {};
+# define CV_StaticAssert(condition, reason)\
+ typedef cv::CV_StaticAssert_test< sizeof(cv::CV_StaticAssert_failed< static_cast(condition) >) > CVAUX_CONCAT(CV_StaticAssert_failed_at_, __LINE__)
+# endif
+#endif
+
+// Suppress warning "-Wdeprecated-declarations" / C4996
+#if defined(_MSC_VER)
+ #define CV_DO_PRAGMA(x) __pragma(x)
+#elif defined(__GNUC__)
+ #define CV_DO_PRAGMA(x) _Pragma (#x)
+#else
+ #define CV_DO_PRAGMA(x)
+#endif
+
+#ifdef _MSC_VER
+#define CV_SUPPRESS_DEPRECATED_START \
+ CV_DO_PRAGMA(warning(push)) \
+ CV_DO_PRAGMA(warning(disable: 4996))
+#define CV_SUPPRESS_DEPRECATED_END CV_DO_PRAGMA(warning(pop))
+#elif defined (__clang__) || ((__GNUC__) && (__GNUC__*100 + __GNUC_MINOR__ > 405))
+#define CV_SUPPRESS_DEPRECATED_START \
+ CV_DO_PRAGMA(GCC diagnostic push) \
+ CV_DO_PRAGMA(GCC diagnostic ignored "-Wdeprecated-declarations")
+#define CV_SUPPRESS_DEPRECATED_END CV_DO_PRAGMA(GCC diagnostic pop)
+#else
+#define CV_SUPPRESS_DEPRECATED_START
+#define CV_SUPPRESS_DEPRECATED_END
+#endif
+
+#define CV_UNUSED(name) (void)name
+
+#if defined __GNUC__ && !defined __EXCEPTIONS
+#define CV_TRY
+#define CV_CATCH(A, B) for (A B; false; )
+#define CV_CATCH_ALL if (false)
+#define CV_THROW(A) abort()
+#define CV_RETHROW() abort()
+#else
+#define CV_TRY try
+#define CV_CATCH(A, B) catch(const A & B)
+#define CV_CATCH_ALL catch(...)
+#define CV_THROW(A) throw A
+#define CV_RETHROW() throw
+#endif
+
+//! @endcond
// undef problematic defines sometimes defined by system headers (windows.h in particular)
#undef small
@@ -56,20 +175,205 @@
#undef abs
#undef Complex
-#include "opencv2/hal/defs.h"
+#include
+#include "opencv2/core/hal/interface.h"
+
+#if defined __ICL
+# define CV_ICC __ICL
+#elif defined __ICC
+# define CV_ICC __ICC
+#elif defined __ECL
+# define CV_ICC __ECL
+#elif defined __ECC
+# define CV_ICC __ECC
+#elif defined __INTEL_COMPILER
+# define CV_ICC __INTEL_COMPILER
+#endif
+
+#ifndef CV_INLINE
+# if defined __cplusplus
+# define CV_INLINE static inline
+# elif defined _MSC_VER
+# define CV_INLINE __inline
+# else
+# define CV_INLINE static
+# endif
+#endif
+
+#if defined CV_DISABLE_OPTIMIZATION || (defined CV_ICC && !defined CV_ENABLE_UNROLLED)
+# define CV_ENABLE_UNROLLED 0
+#else
+# define CV_ENABLE_UNROLLED 1
+#endif
+
+#ifdef __GNUC__
+# define CV_DECL_ALIGNED(x) __attribute__ ((aligned (x)))
+#elif defined _MSC_VER
+# define CV_DECL_ALIGNED(x) __declspec(align(x))
+#else
+# define CV_DECL_ALIGNED(x)
+#endif
+
+/* CPU features and intrinsics support */
+#define CV_CPU_NONE 0
+#define CV_CPU_MMX 1
+#define CV_CPU_SSE 2
+#define CV_CPU_SSE2 3
+#define CV_CPU_SSE3 4
+#define CV_CPU_SSSE3 5
+#define CV_CPU_SSE4_1 6
+#define CV_CPU_SSE4_2 7
+#define CV_CPU_POPCNT 8
+#define CV_CPU_FP16 9
+#define CV_CPU_AVX 10
+#define CV_CPU_AVX2 11
+#define CV_CPU_FMA3 12
+
+#define CV_CPU_AVX_512F 13
+#define CV_CPU_AVX_512BW 14
+#define CV_CPU_AVX_512CD 15
+#define CV_CPU_AVX_512DQ 16
+#define CV_CPU_AVX_512ER 17
+#define CV_CPU_AVX_512IFMA512 18 // deprecated
+#define CV_CPU_AVX_512IFMA 18
+#define CV_CPU_AVX_512PF 19
+#define CV_CPU_AVX_512VBMI 20
+#define CV_CPU_AVX_512VL 21
+
+#define CV_CPU_NEON 100
+
+#define CV_CPU_VSX 200
+#define CV_CPU_VSX3 201
+
+// CPU features groups
+#define CV_CPU_AVX512_SKX 256
+
+// when adding to this list remember to update the following enum
+#define CV_HARDWARE_MAX_FEATURE 512
+
+/** @brief Available CPU features.
+*/
+enum CpuFeatures {
+ CPU_MMX = 1,
+ CPU_SSE = 2,
+ CPU_SSE2 = 3,
+ CPU_SSE3 = 4,
+ CPU_SSSE3 = 5,
+ CPU_SSE4_1 = 6,
+ CPU_SSE4_2 = 7,
+ CPU_POPCNT = 8,
+ CPU_FP16 = 9,
+ CPU_AVX = 10,
+ CPU_AVX2 = 11,
+ CPU_FMA3 = 12,
+
+ CPU_AVX_512F = 13,
+ CPU_AVX_512BW = 14,
+ CPU_AVX_512CD = 15,
+ CPU_AVX_512DQ = 16,
+ CPU_AVX_512ER = 17,
+ CPU_AVX_512IFMA512 = 18, // deprecated
+ CPU_AVX_512IFMA = 18,
+ CPU_AVX_512PF = 19,
+ CPU_AVX_512VBMI = 20,
+ CPU_AVX_512VL = 21,
+
+ CPU_NEON = 100,
+
+ CPU_VSX = 200,
+ CPU_VSX3 = 201,
+
+ CPU_AVX512_SKX = 256, //!< Skylake-X with AVX-512F/CD/BW/DQ/VL
+
+ CPU_MAX_FEATURE = 512 // see CV_HARDWARE_MAX_FEATURE
+};
+
+
+#include "cv_cpu_dispatch.h"
+
+
+/* fundamental constants */
+#define CV_PI 3.1415926535897932384626433832795
+#define CV_2PI 6.283185307179586476925286766559
+#define CV_LOG2 0.69314718055994530941723212145818
+
+#if defined __ARM_FP16_FORMAT_IEEE \
+ && !defined __CUDACC__
+# define CV_FP16_TYPE 1
+#else
+# define CV_FP16_TYPE 0
+#endif
+
+typedef union Cv16suf
+{
+ short i;
+ ushort u;
+#if CV_FP16_TYPE
+ __fp16 h;
+#endif
+}
+Cv16suf;
+
+typedef union Cv32suf
+{
+ int i;
+ unsigned u;
+ float f;
+}
+Cv32suf;
+
+typedef union Cv64suf
+{
+ int64 i;
+ uint64 u;
+ double f;
+}
+Cv64suf;
+
+#define OPENCV_ABI_COMPATIBILITY 300
#ifdef __OPENCV_BUILD
# define DISABLE_OPENCV_24_COMPATIBILITY
+# define OPENCV_DISABLE_DEPRECATED_COMPATIBILITY
#endif
-#if (defined WIN32 || defined _WIN32 || defined WINCE || defined __CYGWIN__) && defined CVAPI_EXPORTS
-# define CV_EXPORTS __declspec(dllexport)
-#elif defined __GNUC__ && __GNUC__ >= 4
-# define CV_EXPORTS __attribute__ ((visibility ("default")))
-#else
-# define CV_EXPORTS
+#ifdef CVAPI_EXPORTS
+# if (defined _WIN32 || defined WINCE || defined __CYGWIN__)
+# define CV_EXPORTS __declspec(dllexport)
+# elif defined __GNUC__ && __GNUC__ >= 4
+# define CV_EXPORTS __attribute__ ((visibility ("default")))
+# endif
#endif
+#ifndef CV_EXPORTS
+# define CV_EXPORTS
+#endif
+
+#ifdef _MSC_VER
+# define CV_EXPORTS_TEMPLATE
+#else
+# define CV_EXPORTS_TEMPLATE CV_EXPORTS
+#endif
+
+#ifndef CV_DEPRECATED
+# if defined(__GNUC__)
+# define CV_DEPRECATED __attribute__ ((deprecated))
+# elif defined(_MSC_VER)
+# define CV_DEPRECATED __declspec(deprecated)
+# else
+# define CV_DEPRECATED
+# endif
+#endif
+
+#ifndef CV_DEPRECATED_EXTERNAL
+# if defined(__OPENCV_BUILD)
+# define CV_DEPRECATED_EXTERNAL /* nothing */
+# else
+# define CV_DEPRECATED_EXTERNAL CV_DEPRECATED
+# endif
+#endif
+
+
#ifndef CV_EXTERN_C
# ifdef __cplusplus
# define CV_EXTERN_C extern "C"
@@ -94,67 +398,6 @@
* Matrix type (Mat) *
\****************************************************************************************/
-#define CV_CN_MAX 512
-#define CV_CN_SHIFT 3
-#define CV_DEPTH_MAX (1 << CV_CN_SHIFT)
-
-#define CV_8U 0
-#define CV_8S 1
-#define CV_16U 2
-#define CV_16S 3
-#define CV_32S 4
-#define CV_32F 5
-#define CV_64F 6
-#define CV_USRTYPE1 7
-
-#define CV_MAT_DEPTH_MASK (CV_DEPTH_MAX - 1)
-#define CV_MAT_DEPTH(flags) ((flags) & CV_MAT_DEPTH_MASK)
-
-#define CV_MAKETYPE(depth,cn) (CV_MAT_DEPTH(depth) + (((cn)-1) << CV_CN_SHIFT))
-#define CV_MAKE_TYPE CV_MAKETYPE
-
-#define CV_8UC1 CV_MAKETYPE(CV_8U,1)
-#define CV_8UC2 CV_MAKETYPE(CV_8U,2)
-#define CV_8UC3 CV_MAKETYPE(CV_8U,3)
-#define CV_8UC4 CV_MAKETYPE(CV_8U,4)
-#define CV_8UC(n) CV_MAKETYPE(CV_8U,(n))
-
-#define CV_8SC1 CV_MAKETYPE(CV_8S,1)
-#define CV_8SC2 CV_MAKETYPE(CV_8S,2)
-#define CV_8SC3 CV_MAKETYPE(CV_8S,3)
-#define CV_8SC4 CV_MAKETYPE(CV_8S,4)
-#define CV_8SC(n) CV_MAKETYPE(CV_8S,(n))
-
-#define CV_16UC1 CV_MAKETYPE(CV_16U,1)
-#define CV_16UC2 CV_MAKETYPE(CV_16U,2)
-#define CV_16UC3 CV_MAKETYPE(CV_16U,3)
-#define CV_16UC4 CV_MAKETYPE(CV_16U,4)
-#define CV_16UC(n) CV_MAKETYPE(CV_16U,(n))
-
-#define CV_16SC1 CV_MAKETYPE(CV_16S,1)
-#define CV_16SC2 CV_MAKETYPE(CV_16S,2)
-#define CV_16SC3 CV_MAKETYPE(CV_16S,3)
-#define CV_16SC4 CV_MAKETYPE(CV_16S,4)
-#define CV_16SC(n) CV_MAKETYPE(CV_16S,(n))
-
-#define CV_32SC1 CV_MAKETYPE(CV_32S,1)
-#define CV_32SC2 CV_MAKETYPE(CV_32S,2)
-#define CV_32SC3 CV_MAKETYPE(CV_32S,3)
-#define CV_32SC4 CV_MAKETYPE(CV_32S,4)
-#define CV_32SC(n) CV_MAKETYPE(CV_32S,(n))
-
-#define CV_32FC1 CV_MAKETYPE(CV_32F,1)
-#define CV_32FC2 CV_MAKETYPE(CV_32F,2)
-#define CV_32FC3 CV_MAKETYPE(CV_32F,3)
-#define CV_32FC4 CV_MAKETYPE(CV_32F,4)
-#define CV_32FC(n) CV_MAKETYPE(CV_32F,(n))
-
-#define CV_64FC1 CV_MAKETYPE(CV_64F,1)
-#define CV_64FC2 CV_MAKETYPE(CV_64F,2)
-#define CV_64FC3 CV_MAKETYPE(CV_64F,3)
-#define CV_64FC4 CV_MAKETYPE(CV_64F,4)
-#define CV_64FC(n) CV_MAKETYPE(CV_64F,(n))
-
#define CV_MAT_CN_MASK ((CV_CN_MAX - 1) << CV_CN_SHIFT)
#define CV_MAT_CN(flags) ((((flags) & CV_MAT_CN_MASK) >> CV_CN_SHIFT) + 1)
#define CV_MAT_TYPE_MASK (CV_DEPTH_MAX*CV_CN_MAX - 1)
@@ -167,12 +410,12 @@
#define CV_SUBMAT_FLAG (1 << CV_SUBMAT_FLAG_SHIFT)
#define CV_IS_SUBMAT(flags) ((flags) & CV_MAT_SUBMAT_FLAG)
-/* Size of each channel item,
- 0x124489 = 1000 0100 0100 0010 0010 0001 0001 ~ array of sizeof(arr_type_elem) */
+/** Size of each channel item,
+ 0x8442211 = 1000 0100 0100 0010 0010 0001 0001 ~ array of sizeof(arr_type_elem) */
#define CV_ELEM_SIZE1(type) \
((((sizeof(size_t)<<28)|0x8442211) >> CV_MAT_DEPTH(type)*4) & 15)
-/* 0x3a50 = 11 10 10 01 01 00 00 ~ array of log2(sizeof(arr_type_elem)) */
+/** 0x3a50 = 11 10 10 01 01 00 00 ~ array of log2(sizeof(arr_type_elem)) */
#define CV_ELEM_SIZE(type) \
(CV_MAT_CN(type) << ((((sizeof(size_t)/4+1)*16384|0x3a50) >> CV_MAT_DEPTH(type)*2) & 3))
@@ -184,14 +427,42 @@
# define MAX(a,b) ((a) < (b) ? (b) : (a))
#endif
+/****************************************************************************************\
+* static analysys *
+\****************************************************************************************/
+
+// In practice, some macro are not processed correctly (noreturn is not detected).
+// We need to use simplified definition for them.
+#ifndef CV_STATIC_ANALYSIS
+# if defined(__KLOCWORK__) || defined(__clang_analyzer__) || defined(__COVERITY__)
+# define CV_STATIC_ANALYSIS 1
+# endif
+#else
+# if defined(CV_STATIC_ANALYSIS) && !(__CV_CAT(1, CV_STATIC_ANALYSIS) == 1) // defined and not empty
+# if 0 == CV_STATIC_ANALYSIS
+# undef CV_STATIC_ANALYSIS
+# endif
+# endif
+#endif
+
+/****************************************************************************************\
+* Thread sanitizer *
+\****************************************************************************************/
+#ifndef CV_THREAD_SANITIZER
+# if defined(__has_feature)
+# if __has_feature(thread_sanitizer)
+# define CV_THREAD_SANITIZER
+# endif
+# endif
+#endif
+
/****************************************************************************************\
* exchange-add operation for atomic operations on reference counters *
\****************************************************************************************/
-#if defined __INTEL_COMPILER && !(defined WIN32 || defined _WIN32)
- // atomic increment on the linux version of the Intel(tm) compiler
-# define CV_XADD(addr, delta) (int)_InterlockedExchangeAdd(const_cast(reinterpret_cast(addr)), delta)
-#elif defined __GNUC__
+#ifdef CV_XADD
+ // allow to use user-defined macro
+#elif defined __GNUC__ || defined __clang__
# if defined __clang__ && __clang_major__ >= 3 && !defined __ANDROID__ && !defined __EMSCRIPTEN__ && !defined(__CUDACC__)
# ifdef __ATOMIC_ACQ_REL
# define CV_XADD(addr, delta) __c11_atomic_fetch_add((_Atomic(int)*)(addr), delta, __ATOMIC_ACQ_REL)
@@ -228,4 +499,255 @@
# endif
#endif
-#endif // __OPENCV_CORE_CVDEF_H__
+
+/****************************************************************************************\
+* CV_NODISCARD attribute *
+* encourages the compiler to issue a warning if the return value is discarded (C++17) *
+\****************************************************************************************/
+#ifndef CV_NODISCARD
+# if defined(__GNUC__)
+# define CV_NODISCARD __attribute__((__warn_unused_result__)) // at least available with GCC 3.4
+# elif defined(__clang__) && defined(__has_attribute)
+# if __has_attribute(__warn_unused_result__)
+# define CV_NODISCARD __attribute__((__warn_unused_result__))
+# endif
+# endif
+#endif
+#ifndef CV_NODISCARD
+# define CV_NODISCARD /* nothing by default */
+#endif
+
+
+/****************************************************************************************\
+* C++ 11 *
+\****************************************************************************************/
+#ifndef CV_CXX11
+# if __cplusplus >= 201103L || (defined(_MSC_VER) && _MSC_VER >= 1800)
+# define CV_CXX11 1
+# endif
+#else
+# if CV_CXX11 == 0
+# undef CV_CXX11
+# endif
+#endif
+
+
+/****************************************************************************************\
+* C++ Move semantics *
+\****************************************************************************************/
+
+#ifndef CV_CXX_MOVE_SEMANTICS
+# if __cplusplus >= 201103L || defined(__GXX_EXPERIMENTAL_CXX0X__) || (defined(_MSC_VER) && _MSC_VER >= 1600)
+# define CV_CXX_MOVE_SEMANTICS 1
+# elif defined(__clang)
+# if __has_feature(cxx_rvalue_references)
+# define CV_CXX_MOVE_SEMANTICS 1
+# endif
+# endif
+#else
+# if CV_CXX_MOVE_SEMANTICS == 0
+# undef CV_CXX_MOVE_SEMANTICS
+# endif
+#endif
+
+/****************************************************************************************\
+* C++11 std::array *
+\****************************************************************************************/
+
+#ifndef CV_CXX_STD_ARRAY
+# if __cplusplus >= 201103L || (defined(_MSC_VER) && _MSC_VER >= 1900/*MSVS 2015*/)
+# define CV_CXX_STD_ARRAY 1
+# include
+# endif
+#else
+# if CV_CXX_STD_ARRAY == 0
+# undef CV_CXX_STD_ARRAY
+# endif
+#endif
+
+
+/****************************************************************************************\
+* C++11 override / final *
+\****************************************************************************************/
+
+#ifndef CV_OVERRIDE
+# ifdef CV_CXX11
+# define CV_OVERRIDE override
+# endif
+#endif
+#ifndef CV_OVERRIDE
+# define CV_OVERRIDE
+#endif
+
+#ifndef CV_FINAL
+# ifdef CV_CXX11
+# define CV_FINAL final
+# endif
+#endif
+#ifndef CV_FINAL
+# define CV_FINAL
+#endif
+
+
+
+// Integer types portatibility
+#ifdef OPENCV_STDINT_HEADER
+#include OPENCV_STDINT_HEADER
+#elif defined(__cplusplus)
+#if defined(_MSC_VER) && _MSC_VER < 1600 /* MSVS 2010 */
+namespace cv {
+typedef signed char int8_t;
+typedef unsigned char uint8_t;
+typedef signed short int16_t;
+typedef unsigned short uint16_t;
+typedef signed int int32_t;
+typedef unsigned int uint32_t;
+typedef signed __int64 int64_t;
+typedef unsigned __int64 uint64_t;
+}
+#elif defined(_MSC_VER) || __cplusplus >= 201103L
+#include
+namespace cv {
+using std::int8_t;
+using std::uint8_t;
+using std::int16_t;
+using std::uint16_t;
+using std::int32_t;
+using std::uint32_t;
+using std::int64_t;
+using std::uint64_t;
+}
+#else
+#include
+namespace cv {
+typedef ::int8_t int8_t;
+typedef ::uint8_t uint8_t;
+typedef ::int16_t int16_t;
+typedef ::uint16_t uint16_t;
+typedef ::int32_t int32_t;
+typedef ::uint32_t uint32_t;
+typedef ::int64_t int64_t;
+typedef ::uint64_t uint64_t;
+}
+#endif
+#else // pure C
+#include
+#endif
+
+#ifdef __cplusplus
+namespace cv
+{
+
+class float16_t
+{
+public:
+#if CV_FP16_TYPE
+
+ float16_t() {}
+ explicit float16_t(float x) { h = (__fp16)x; }
+ operator float() const { return (float)h; }
+ static float16_t fromBits(ushort w)
+ {
+ Cv16suf u;
+ u.u = w;
+ float16_t result;
+ result.h = u.h;
+ return result;
+ }
+ static float16_t zero()
+ {
+ float16_t result;
+ result.h = (__fp16)0;
+ return result;
+ }
+ ushort bits() const
+ {
+ Cv16suf u;
+ u.h = h;
+ return u.u;
+ }
+protected:
+ __fp16 h;
+
+#else
+ float16_t() {}
+ explicit float16_t(float x)
+ {
+ #if CV_AVX2
+ __m128 v = _mm_load_ss(&x);
+ w = (ushort)_mm_cvtsi128_si32(_mm_cvtps_ph(v, 0));
+ #else
+ Cv32suf in;
+ in.f = x;
+ unsigned sign = in.u & 0x80000000;
+ in.u ^= sign;
+
+ if( in.u >= 0x47800000 )
+ w = (ushort)(in.u > 0x7f800000 ? 0x7e00 : 0x7c00);
+ else
+ {
+ if (in.u < 0x38800000)
+ {
+ in.f += 0.5f;
+ w = (ushort)(in.u - 0x3f000000);
+ }
+ else
+ {
+ unsigned t = in.u + 0xc8000fff;
+ w = (ushort)((t + ((in.u >> 13) & 1)) >> 13);
+ }
+ }
+
+ w = (ushort)(w | (sign >> 16));
+ #endif
+ }
+
+ operator float() const
+ {
+ #if CV_AVX2
+ float f;
+ _mm_store_ss(&f, _mm_cvtph_ps(_mm_cvtsi32_si128(w)));
+ return f;
+ #else
+ Cv32suf out;
+
+ unsigned t = ((w & 0x7fff) << 13) + 0x38000000;
+ unsigned sign = (w & 0x8000) << 16;
+ unsigned e = w & 0x7c00;
+
+ out.u = t + (1 << 23);
+ out.u = (e >= 0x7c00 ? t + 0x38000000 :
+ e == 0 ? (out.f -= 6.103515625e-05f, out.u) : t) | sign;
+ return out.f;
+ #endif
+ }
+
+ static float16_t fromBits(ushort b)
+ {
+ float16_t result;
+ result.w = b;
+ return result;
+ }
+ static float16_t zero()
+ {
+ float16_t result;
+ result.w = (ushort)0;
+ return result;
+ }
+ ushort bits() const { return w; }
+protected:
+ ushort w;
+
+#endif
+};
+
+}
+#endif
+
+//! @}
+
+#ifndef __cplusplus
+#include "opencv2/core/fast_math.hpp" // define cvRound(double)
+#endif
+
+#endif // OPENCV_CORE_CVDEF_H
diff --git a/include/opencv2/core/cvstd.hpp b/include/opencv2/core/cvstd.hpp
index a229f53..0a3f553 100644
--- a/include/opencv2/core/cvstd.hpp
+++ b/include/opencv2/core/cvstd.hpp
@@ -41,25 +41,21 @@
//
//M*/
-#ifndef __OPENCV_CORE_CVSTD_HPP__
-#define __OPENCV_CORE_CVSTD_HPP__
+#ifndef OPENCV_CORE_CVSTD_HPP
+#define OPENCV_CORE_CVSTD_HPP
#ifndef __cplusplus
# error cvstd.hpp header must be compiled as C++
#endif
#include "opencv2/core/cvdef.h"
-
#include
#include
#include
-#ifndef OPENCV_NOSTL
-# include
-#endif
+#include
// import useful primitives from stl
-#ifndef OPENCV_NOSTL_TRANSITIONAL
# include
# include
# include //for abs(int)
@@ -67,6 +63,11 @@
namespace cv
{
+ static inline uchar abs(uchar a) { return a; }
+ static inline ushort abs(ushort a) { return a; }
+ static inline unsigned abs(unsigned a) { return a; }
+ static inline uint64 abs(uint64 a) { return a; }
+
using std::min;
using std::max;
using std::abs;
@@ -77,29 +78,6 @@ namespace cv
using std::log;
}
-namespace std
-{
- static inline uchar abs(uchar a) { return a; }
- static inline ushort abs(ushort a) { return a; }
- static inline unsigned abs(unsigned a) { return a; }
- static inline uint64 abs(uint64 a) { return a; }
-}
-
-#else
-namespace cv
-{
- template static inline T min(T a, T b) { return a < b ? a : b; }
- template static inline T max(T a, T b) { return a > b ? a : b; }
- template static inline T abs(T a) { return a < 0 ? -a : a; }
- template static inline void swap(T& a, T& b) { T tmp = a; a = b; b = tmp; }
-
- template<> inline uchar abs(uchar a) { return a; }
- template<> inline ushort abs(ushort a) { return a; }
- template<> inline unsigned abs(unsigned a) { return a; }
- template<> inline uint64 abs(uint64 a) { return a; }
-}
-#endif
-
namespace cv {
//! @addtogroup core_utils
@@ -411,6 +389,11 @@ struct Ptr
template
Ptr dynamicCast() const;
+#ifdef CV_CXX_MOVE_SEMANTICS
+ Ptr(Ptr&& o);
+ Ptr& operator = (Ptr&& o);
+#endif
+
private:
detail::PtrOwner* owner;
T* stored;
@@ -487,7 +470,7 @@ public:
static const size_t npos = size_t(-1);
- explicit String();
+ String();
String(const String& str);
String(const String& str, size_t pos, size_t len = npos);
String(const char* s);
@@ -554,7 +537,6 @@ public:
String toLowerCase() const;
-#ifndef OPENCV_NOSTL
String(const std::string& str);
String(const std::string& str, size_t pos, size_t len = npos);
String& operator=(const std::string& str);
@@ -563,7 +545,6 @@ public:
friend String operator+ (const String& lhs, const std::string& rhs);
friend String operator+ (const std::string& lhs, const String& rhs);
-#endif
private:
char* cstr_;
@@ -571,6 +552,8 @@ private:
char* allocate(size_t len); // len without trailing 0
void deallocate();
+
+ String(int); // disabled and invalid. Catch invalid usages like, commandLineParser.has(0) problem
};
//! @} core_basic
@@ -615,6 +598,7 @@ String::String(const char* s)
{
if (!s) return;
size_t len = strlen(s);
+ if (!len) return;
memcpy(allocate(len), s, len);
}
@@ -623,6 +607,7 @@ String::String(const char* s, size_t n)
: cstr_(0), len_(0)
{
if (!n) return;
+ if (!s) return;
memcpy(allocate(n), s, n);
}
@@ -630,6 +615,7 @@ inline
String::String(size_t n, char c)
: cstr_(0), len_(0)
{
+ if (!n) return;
memset(allocate(n), c, n);
}
@@ -638,6 +624,7 @@ String::String(const char* first, const char* last)
: cstr_(0), len_(0)
{
size_t len = (size_t)(last - first);
+ if (!len) return;
memcpy(allocate(len), first, len);
}
@@ -646,6 +633,7 @@ String::String(Iterator first, Iterator last)
: cstr_(0), len_(0)
{
size_t len = (size_t)(last - first);
+ if (!len) return;
char* str = allocate(len);
while (first != last)
{
@@ -678,7 +666,7 @@ String& String::operator=(const char* s)
deallocate();
if (!s) return *this;
size_t len = strlen(s);
- memcpy(allocate(len), s, len);
+ if (len) memcpy(allocate(len), s, len);
return *this;
}
@@ -744,7 +732,7 @@ const char* String::begin() const
inline
const char* String::end() const
{
- return len_ ? cstr_ + 1 : 0;
+ return len_ ? cstr_ + len_ : NULL;
}
inline
@@ -896,6 +884,7 @@ size_t String::find_first_of(const String& str, size_t pos) const
inline
size_t String::find_first_of(const char* s, size_t pos) const
{
+ if (len_ == 0) return npos;
if (pos >= len_ || !s[0]) return npos;
const char* lmax = cstr_ + len_;
for (const char* i = cstr_ + pos; i < lmax; ++i)
@@ -910,6 +899,7 @@ size_t String::find_first_of(const char* s, size_t pos) const
inline
size_t String::find_last_of(const char* s, size_t pos, size_t n) const
{
+ if (len_ == 0) return npos;
if (pos >= len_) pos = len_ - 1;
for (const char* i = cstr_ + pos; i >= cstr_; --i)
{
@@ -935,6 +925,7 @@ size_t String::find_last_of(const String& str, size_t pos) const
inline
size_t String::find_last_of(const char* s, size_t pos) const
{
+ if (len_ == 0) return npos;
if (pos >= len_) pos = len_ - 1;
for (const char* i = cstr_ + pos; i >= cstr_; --i)
{
@@ -948,8 +939,9 @@ size_t String::find_last_of(const char* s, size_t pos) const
inline
String String::toLowerCase() const
{
+ if (!cstr_)
+ return String();
String res(cstr_, len_);
-
for (size_t i = 0; i < len_; ++i)
res.cstr_[i] = (char) ::tolower(cstr_[i]);
@@ -968,8 +960,8 @@ String operator + (const String& lhs, const String& rhs)
{
String s;
s.allocate(lhs.len_ + rhs.len_);
- memcpy(s.cstr_, lhs.cstr_, lhs.len_);
- memcpy(s.cstr_ + lhs.len_, rhs.cstr_, rhs.len_);
+ if (lhs.len_) memcpy(s.cstr_, lhs.cstr_, lhs.len_);
+ if (rhs.len_) memcpy(s.cstr_ + lhs.len_, rhs.cstr_, rhs.len_);
return s;
}
@@ -979,8 +971,8 @@ String operator + (const String& lhs, const char* rhs)
String s;
size_t rhslen = strlen(rhs);
s.allocate(lhs.len_ + rhslen);
- memcpy(s.cstr_, lhs.cstr_, lhs.len_);
- memcpy(s.cstr_ + lhs.len_, rhs, rhslen);
+ if (lhs.len_) memcpy(s.cstr_, lhs.cstr_, lhs.len_);
+ if (rhslen) memcpy(s.cstr_ + lhs.len_, rhs, rhslen);
return s;
}
@@ -990,8 +982,8 @@ String operator + (const char* lhs, const String& rhs)
String s;
size_t lhslen = strlen(lhs);
s.allocate(lhslen + rhs.len_);
- memcpy(s.cstr_, lhs, lhslen);
- memcpy(s.cstr_ + lhslen, rhs.cstr_, rhs.len_);
+ if (lhslen) memcpy(s.cstr_, lhs, lhslen);
+ if (rhs.len_) memcpy(s.cstr_ + lhslen, rhs.cstr_, rhs.len_);
return s;
}
@@ -1000,7 +992,7 @@ String operator + (const String& lhs, char rhs)
{
String s;
s.allocate(lhs.len_ + 1);
- memcpy(s.cstr_, lhs.cstr_, lhs.len_);
+ if (lhs.len_) memcpy(s.cstr_, lhs.cstr_, lhs.len_);
s.cstr_[lhs.len_] = rhs;
return s;
}
@@ -1011,7 +1003,7 @@ String operator + (char lhs, const String& rhs)
String s;
s.allocate(rhs.len_ + 1);
s.cstr_[0] = lhs;
- memcpy(s.cstr_ + 1, rhs.cstr_, rhs.len_);
+ if (rhs.len_) memcpy(s.cstr_ + 1, rhs.cstr_, rhs.len_);
return s;
}
@@ -1038,22 +1030,11 @@ static inline bool operator>= (const String& lhs, const char* rhs) { return lh
} // cv
-#ifndef OPENCV_NOSTL_TRANSITIONAL
namespace std
{
static inline void swap(cv::String& a, cv::String& b) { a.swap(b); }
}
-#else
-namespace cv
-{
- template<> inline
- void swap(cv::String& a, cv::String& b)
- {
- a.swap(b);
- }
-}
-#endif
#include "opencv2/core/ptr.inl.hpp"
-#endif //__OPENCV_CORE_CVSTD_HPP__
+#endif //OPENCV_CORE_CVSTD_HPP
diff --git a/include/opencv2/core/cvstd.inl.hpp b/include/opencv2/core/cvstd.inl.hpp
index 03bac37..ed37cac 100644
--- a/include/opencv2/core/cvstd.inl.hpp
+++ b/include/opencv2/core/cvstd.inl.hpp
@@ -41,19 +41,21 @@
//
//M*/
-#ifndef __OPENCV_CORE_CVSTDINL_HPP__
-#define __OPENCV_CORE_CVSTDINL_HPP__
+#ifndef OPENCV_CORE_CVSTDINL_HPP
+#define OPENCV_CORE_CVSTDINL_HPP
-#ifndef OPENCV_NOSTL
-# include
-# include
-#endif
+#include
+#include
//! @cond IGNORED
+#ifdef _MSC_VER
+#pragma warning( push )
+#pragma warning( disable: 4127 )
+#endif
+
namespace cv
{
-#ifndef OPENCV_NOSTL
template class DataType< std::complex<_Tp> >
{
@@ -75,11 +77,8 @@ inline
String::String(const std::string& str)
: cstr_(0), len_(0)
{
- if (!str.empty())
- {
- size_t len = str.size();
- memcpy(allocate(len), str.c_str(), len);
- }
+ size_t len = str.size();
+ if (len) memcpy(allocate(len), str.c_str(), len);
}
inline
@@ -87,7 +86,7 @@ String::String(const std::string& str, size_t pos, size_t len)
: cstr_(0), len_(0)
{
size_t strlen = str.size();
- pos = max(pos, strlen);
+ pos = min(pos, strlen);
len = min(strlen - pos, len);
if (!len) return;
memcpy(allocate(len), str.c_str() + pos, len);
@@ -97,11 +96,8 @@ inline
String& String::operator = (const std::string& str)
{
deallocate();
- if (!str.empty())
- {
- size_t len = str.size();
- memcpy(allocate(len), str.c_str(), len);
- }
+ size_t len = str.size();
+ if (len) memcpy(allocate(len), str.c_str(), len);
return *this;
}
@@ -124,8 +120,8 @@ String operator + (const String& lhs, const std::string& rhs)
String s;
size_t rhslen = rhs.size();
s.allocate(lhs.len_ + rhslen);
- memcpy(s.cstr_, lhs.cstr_, lhs.len_);
- memcpy(s.cstr_ + lhs.len_, rhs.c_str(), rhslen);
+ if (lhs.len_) memcpy(s.cstr_, lhs.cstr_, lhs.len_);
+ if (rhslen) memcpy(s.cstr_ + lhs.len_, rhs.c_str(), rhslen);
return s;
}
@@ -135,8 +131,8 @@ String operator + (const std::string& lhs, const String& rhs)
String s;
size_t lhslen = lhs.size();
s.allocate(lhslen + rhs.len_);
- memcpy(s.cstr_, lhs.c_str(), lhslen);
- memcpy(s.cstr_ + lhslen, rhs.cstr_, rhs.len_);
+ if (lhslen) memcpy(s.cstr_, lhs.c_str(), lhslen);
+ if (rhs.len_) memcpy(s.cstr_ + lhslen, rhs.cstr_, rhs.len_);
return s;
}
@@ -151,9 +147,7 @@ FileNode::operator std::string() const
template<> inline
void operator >> (const FileNode& n, std::string& value)
{
- String val;
- read(n, val, val);
- value = val;
+ read(n, value, std::string());
}
template<> inline
@@ -183,6 +177,18 @@ std::ostream& operator << (std::ostream& out, const Mat& mtx)
return out << Formatter::get()->format(mtx);
}
+static inline
+std::ostream& operator << (std::ostream& out, const UMat& m)
+{
+ return out << m.getMat(ACCESS_READ);
+}
+
+template static inline
+std::ostream& operator << (std::ostream& out, const Complex<_Tp>& c)
+{
+ return out << "(" << c.re << "," << c.im << ")";
+}
+
template static inline
std::ostream& operator << (std::ostream& out, const std::vector >& vec)
{
@@ -221,14 +227,7 @@ template static inline
std::ostream& operator << (std::ostream& out, const Vec<_Tp, n>& vec)
{
out << "[";
-#ifdef _MSC_VER
-#pragma warning( push )
-#pragma warning( disable: 4127 )
-#endif
- if(Vec<_Tp, n>::depth < CV_32F)
-#ifdef _MSC_VER
-#pragma warning( pop )
-#endif
+ if (cv::traits::Depth<_Tp>::value <= CV_32S)
{
for (int i = 0; i < n - 1; ++i) {
out << (int)vec[i] << ", ";
@@ -258,10 +257,29 @@ std::ostream& operator << (std::ostream& out, const Rect_<_Tp>& rect)
return out << "[" << rect.width << " x " << rect.height << " from (" << rect.x << ", " << rect.y << ")]";
}
+static inline std::ostream& operator << (std::ostream& out, const MatSize& msize)
+{
+ int i, dims = msize.dims();
+ for( i = 0; i < dims; i++ )
+ {
+ out << msize[i];
+ if( i < dims-1 )
+ out << " x ";
+ }
+ return out;
+}
+
+static inline std::ostream &operator<< (std::ostream &s, cv::Range &r)
+{
+ return s << "[" << r.start << " : " << r.end << ")";
+}
-#endif // OPENCV_NOSTL
} // cv
+#ifdef _MSC_VER
+#pragma warning( pop )
+#endif
+
//! @endcond
-#endif // __OPENCV_CORE_CVSTDINL_HPP__
+#endif // OPENCV_CORE_CVSTDINL_HPP
diff --git a/include/opencv2/core/directx.hpp b/include/opencv2/core/directx.hpp
index 837548e..056a85a 100644
--- a/include/opencv2/core/directx.hpp
+++ b/include/opencv2/core/directx.hpp
@@ -39,8 +39,8 @@
//
//M*/
-#ifndef __OPENCV_CORE_DIRECTX_HPP__
-#define __OPENCV_CORE_DIRECTX_HPP__
+#ifndef OPENCV_CORE_DIRECTX_HPP
+#define OPENCV_CORE_DIRECTX_HPP
#include "mat.hpp"
#include "ocl.hpp"
@@ -68,12 +68,38 @@ namespace ocl {
using namespace cv::ocl;
//! @addtogroup core_directx
+// This section describes OpenCL and DirectX interoperability.
+//
+// To enable DirectX support, configure OpenCV using CMake with WITH_DIRECTX=ON . Note, DirectX is
+// supported only on Windows.
+//
+// To use OpenCL functionality you should first initialize OpenCL context from DirectX resource.
+//
//! @{
// TODO static functions in the Context class
+//! @brief Creates OpenCL context from D3D11 device
+//
+//! @param pD3D11Device - pointer to D3D11 device
+//! @return Returns reference to OpenCL Context
CV_EXPORTS Context& initializeContextFromD3D11Device(ID3D11Device* pD3D11Device);
+
+//! @brief Creates OpenCL context from D3D10 device
+//
+//! @param pD3D10Device - pointer to D3D10 device
+//! @return Returns reference to OpenCL Context
CV_EXPORTS Context& initializeContextFromD3D10Device(ID3D10Device* pD3D10Device);
+
+//! @brief Creates OpenCL context from Direct3DDevice9Ex device
+//
+//! @param pDirect3DDevice9Ex - pointer to Direct3DDevice9Ex device
+//! @return Returns reference to OpenCL Context
CV_EXPORTS Context& initializeContextFromDirect3DDevice9Ex(IDirect3DDevice9Ex* pDirect3DDevice9Ex);
+
+//! @brief Creates OpenCL context from Direct3DDevice9 device
+//
+//! @param pDirect3DDevice9 - pointer to Direct3Device9 device
+//! @return Returns reference to OpenCL Context
CV_EXPORTS Context& initializeContextFromDirect3DDevice9(IDirect3DDevice9* pDirect3DDevice9);
//! @}
@@ -83,23 +109,76 @@ CV_EXPORTS Context& initializeContextFromDirect3DDevice9(IDirect3DDevice9* pDire
//! @addtogroup core_directx
//! @{
+//! @brief Converts InputArray to ID3D11Texture2D. If destination texture format is DXGI_FORMAT_NV12 then
+//! input UMat expected to be in BGR format and data will be downsampled and color-converted to NV12.
+//
+//! @note Note: Destination texture must be allocated by application. Function does memory copy from src to
+//! pD3D11Texture2D
+//
+//! @param src - source InputArray
+//! @param pD3D11Texture2D - destination D3D11 texture
CV_EXPORTS void convertToD3D11Texture2D(InputArray src, ID3D11Texture2D* pD3D11Texture2D);
+
+//! @brief Converts ID3D11Texture2D to OutputArray. If input texture format is DXGI_FORMAT_NV12 then
+//! data will be upsampled and color-converted to BGR format.
+//
+//! @note Note: Destination matrix will be re-allocated if it has not enough memory to match texture size.
+//! function does memory copy from pD3D11Texture2D to dst
+//
+//! @param pD3D11Texture2D - source D3D11 texture
+//! @param dst - destination OutputArray
CV_EXPORTS void convertFromD3D11Texture2D(ID3D11Texture2D* pD3D11Texture2D, OutputArray dst);
+//! @brief Converts InputArray to ID3D10Texture2D
+//
+//! @note Note: function does memory copy from src to
+//! pD3D10Texture2D
+//
+//! @param src - source InputArray
+//! @param pD3D10Texture2D - destination D3D10 texture
CV_EXPORTS void convertToD3D10Texture2D(InputArray src, ID3D10Texture2D* pD3D10Texture2D);
+
+//! @brief Converts ID3D10Texture2D to OutputArray
+//
+//! @note Note: function does memory copy from pD3D10Texture2D
+//! to dst
+//
+//! @param pD3D10Texture2D - source D3D10 texture
+//! @param dst - destination OutputArray
CV_EXPORTS void convertFromD3D10Texture2D(ID3D10Texture2D* pD3D10Texture2D, OutputArray dst);
+//! @brief Converts InputArray to IDirect3DSurface9
+//
+//! @note Note: function does memory copy from src to
+//! pDirect3DSurface9
+//
+//! @param src - source InputArray
+//! @param pDirect3DSurface9 - destination D3D10 texture
+//! @param surfaceSharedHandle - shared handle
CV_EXPORTS void convertToDirect3DSurface9(InputArray src, IDirect3DSurface9* pDirect3DSurface9, void* surfaceSharedHandle = NULL);
+
+//! @brief Converts IDirect3DSurface9 to OutputArray
+//
+//! @note Note: function does memory copy from pDirect3DSurface9
+//! to dst
+//
+//! @param pDirect3DSurface9 - source D3D10 texture
+//! @param dst - destination OutputArray
+//! @param surfaceSharedHandle - shared handle
CV_EXPORTS void convertFromDirect3DSurface9(IDirect3DSurface9* pDirect3DSurface9, OutputArray dst, void* surfaceSharedHandle = NULL);
-// Get OpenCV type from DirectX type, return -1 if there is no equivalent
+//! @brief Get OpenCV type from DirectX type
+//! @param iDXGI_FORMAT - enum DXGI_FORMAT for D3D10/D3D11
+//! @return OpenCV type or -1 if there is no equivalent
CV_EXPORTS int getTypeFromDXGI_FORMAT(const int iDXGI_FORMAT); // enum DXGI_FORMAT for D3D10/D3D11
-// Get OpenCV type from DirectX type, return -1 if there is no equivalent
+//! @brief Get OpenCV type from DirectX type
+//! @param iD3DFORMAT - enum D3DTYPE for D3D9
+//! @return OpenCV type or -1 if there is no equivalent
CV_EXPORTS int getTypeFromD3DFORMAT(const int iD3DFORMAT); // enum D3DTYPE for D3D9
//! @}
} } // namespace cv::directx
-#endif // __OPENCV_CORE_DIRECTX_HPP__
+#endif // OPENCV_CORE_DIRECTX_HPP
diff --git a/include/opencv2/core/eigen.hpp b/include/opencv2/core/eigen.hpp
index 44df04c..741648e 100644
--- a/include/opencv2/core/eigen.hpp
+++ b/include/opencv2/core/eigen.hpp
@@ -42,8 +42,8 @@
//M*/
-#ifndef __OPENCV_CORE_EIGEN_HPP__
-#define __OPENCV_CORE_EIGEN_HPP__
+#ifndef OPENCV_CORE_EIGEN_HPP
+#define OPENCV_CORE_EIGEN_HPP
#include "opencv2/core.hpp"
@@ -60,18 +60,18 @@ namespace cv
//! @{
template static inline
-void eigen2cv( const Eigen::Matrix<_Tp, _rows, _cols, _options, _maxRows, _maxCols>& src, Mat& dst )
+void eigen2cv( const Eigen::Matrix<_Tp, _rows, _cols, _options, _maxRows, _maxCols>& src, OutputArray dst )
{
if( !(src.Flags & Eigen::RowMajorBit) )
{
- Mat _src(src.cols(), src.rows(), DataType<_Tp>::type,
- (void*)src.data(), src.stride()*sizeof(_Tp));
+ Mat _src(src.cols(), src.rows(), traits::Type<_Tp>::value,
+ (void*)src.data(), src.outerStride()*sizeof(_Tp));
transpose(_src, dst);
}
else
{
- Mat _src(src.rows(), src.cols(), DataType<_Tp>::type,
- (void*)src.data(), src.stride()*sizeof(_Tp));
+ Mat _src(src.rows(), src.cols(), traits::Type<_Tp>::value,
+ (void*)src.data(), src.outerStride()*sizeof(_Tp));
_src.copyTo(dst);
}
}
@@ -98,8 +98,8 @@ void cv2eigen( const Mat& src,
CV_DbgAssert(src.rows == _rows && src.cols == _cols);
if( !(dst.Flags & Eigen::RowMajorBit) )
{
- const Mat _dst(src.cols, src.rows, DataType<_Tp>::type,
- dst.data(), (size_t)(dst.stride()*sizeof(_Tp)));
+ const Mat _dst(src.cols, src.rows, traits::Type<_Tp>::value,
+ dst.data(), (size_t)(dst.outerStride()*sizeof(_Tp)));
if( src.type() == _dst.type() )
transpose(src, _dst);
else if( src.cols == src.rows )
@@ -112,8 +112,8 @@ void cv2eigen( const Mat& src,
}
else
{
- const Mat _dst(src.rows, src.cols, DataType<_Tp>::type,
- dst.data(), (size_t)(dst.stride()*sizeof(_Tp)));
+ const Mat _dst(src.rows, src.cols, traits::Type<_Tp>::value,
+ dst.data(), (size_t)(dst.outerStride()*sizeof(_Tp)));
src.convertTo(_dst, _dst.type());
}
}
@@ -125,14 +125,14 @@ void cv2eigen( const Matx<_Tp, _rows, _cols>& src,
{
if( !(dst.Flags & Eigen::RowMajorBit) )
{
- const Mat _dst(_cols, _rows, DataType<_Tp>::type,
- dst.data(), (size_t)(dst.stride()*sizeof(_Tp)));
+ const Mat _dst(_cols, _rows, traits::Type<_Tp>::value,
+ dst.data(), (size_t)(dst.outerStride()*sizeof(_Tp)));
transpose(src, _dst);
}
else
{
- const Mat _dst(_rows, _cols, DataType<_Tp>::type,
- dst.data(), (size_t)(dst.stride()*sizeof(_Tp)));
+ const Mat _dst(_rows, _cols, traits::Type<_Tp>::value,
+ dst.data(), (size_t)(dst.outerStride()*sizeof(_Tp)));
Mat(src).copyTo(_dst);
}
}
@@ -144,8 +144,8 @@ void cv2eigen( const Mat& src,
dst.resize(src.rows, src.cols);
if( !(dst.Flags & Eigen::RowMajorBit) )
{
- const Mat _dst(src.cols, src.rows, DataType<_Tp>::type,
- dst.data(), (size_t)(dst.stride()*sizeof(_Tp)));
+ const Mat _dst(src.cols, src.rows, traits::Type<_Tp>::value,
+ dst.data(), (size_t)(dst.outerStride()*sizeof(_Tp)));
if( src.type() == _dst.type() )
transpose(src, _dst);
else if( src.cols == src.rows )
@@ -158,8 +158,8 @@ void cv2eigen( const Mat& src,
}
else
{
- const Mat _dst(src.rows, src.cols, DataType<_Tp>::type,
- dst.data(), (size_t)(dst.stride()*sizeof(_Tp)));
+ const Mat _dst(src.rows, src.cols, traits::Type<_Tp>::value,
+ dst.data(), (size_t)(dst.outerStride()*sizeof(_Tp)));
src.convertTo(_dst, _dst.type());
}
}
@@ -172,14 +172,14 @@ void cv2eigen( const Matx<_Tp, _rows, _cols>& src,
dst.resize(_rows, _cols);
if( !(dst.Flags & Eigen::RowMajorBit) )
{
- const Mat _dst(_cols, _rows, DataType<_Tp>::type,
- dst.data(), (size_t)(dst.stride()*sizeof(_Tp)));
+ const Mat _dst(_cols, _rows, traits::Type<_Tp>::value,
+ dst.data(), (size_t)(dst.outerStride()*sizeof(_Tp)));
transpose(src, _dst);
}
else
{
- const Mat _dst(_rows, _cols, DataType<_Tp>::type,
- dst.data(), (size_t)(dst.stride()*sizeof(_Tp)));
+ const Mat _dst(_rows, _cols, traits::Type<_Tp>::value,
+ dst.data(), (size_t)(dst.outerStride()*sizeof(_Tp)));
Mat(src).copyTo(_dst);
}
}
@@ -193,8 +193,8 @@ void cv2eigen( const Mat& src,
if( !(dst.Flags & Eigen::RowMajorBit) )
{
- const Mat _dst(src.cols, src.rows, DataType<_Tp>::type,
- dst.data(), (size_t)(dst.stride()*sizeof(_Tp)));
+ const Mat _dst(src.cols, src.rows, traits::Type<_Tp>::value,
+ dst.data(), (size_t)(dst.outerStride()*sizeof(_Tp)));
if( src.type() == _dst.type() )
transpose(src, _dst);
else
@@ -202,8 +202,8 @@ void cv2eigen( const Mat& src,
}
else
{
- const Mat _dst(src.rows, src.cols, DataType<_Tp>::type,
- dst.data(), (size_t)(dst.stride()*sizeof(_Tp)));
+ const Mat _dst(src.rows, src.cols, traits::Type<_Tp>::value,
+ dst.data(), (size_t)(dst.outerStride()*sizeof(_Tp)));
src.convertTo(_dst, _dst.type());
}
}
@@ -217,14 +217,14 @@ void cv2eigen( const Matx<_Tp, _rows, 1>& src,
if( !(dst.Flags & Eigen::RowMajorBit) )
{
- const Mat _dst(1, _rows, DataType<_Tp>::type,
- dst.data(), (size_t)(dst.stride()*sizeof(_Tp)));
+ const Mat _dst(1, _rows, traits::Type<_Tp>::value,
+ dst.data(), (size_t)(dst.outerStride()*sizeof(_Tp)));
transpose(src, _dst);
}
else
{
- const Mat _dst(_rows, 1, DataType<_Tp>::type,
- dst.data(), (size_t)(dst.stride()*sizeof(_Tp)));
+ const Mat _dst(_rows, 1, traits::Type<_Tp>::value,
+ dst.data(), (size_t)(dst.outerStride()*sizeof(_Tp)));
src.copyTo(_dst);
}
}
@@ -238,8 +238,8 @@ void cv2eigen( const Mat& src,
dst.resize(src.cols);
if( !(dst.Flags & Eigen::RowMajorBit) )
{
- const Mat _dst(src.cols, src.rows, DataType<_Tp>::type,
- dst.data(), (size_t)(dst.stride()*sizeof(_Tp)));
+ const Mat _dst(src.cols, src.rows, traits::Type<_Tp>::value,
+ dst.data(), (size_t)(dst.outerStride()*sizeof(_Tp)));
if( src.type() == _dst.type() )
transpose(src, _dst);
else
@@ -247,8 +247,8 @@ void cv2eigen( const Mat& src,
}
else
{
- const Mat _dst(src.rows, src.cols, DataType<_Tp>::type,
- dst.data(), (size_t)(dst.stride()*sizeof(_Tp)));
+ const Mat _dst(src.rows, src.cols, traits::Type<_Tp>::value,
+ dst.data(), (size_t)(dst.outerStride()*sizeof(_Tp)));
src.convertTo(_dst, _dst.type());
}
}
@@ -261,14 +261,14 @@ void cv2eigen( const Matx<_Tp, 1, _cols>& src,
dst.resize(_cols);
if( !(dst.Flags & Eigen::RowMajorBit) )
{
- const Mat _dst(_cols, 1, DataType<_Tp>::type,
- dst.data(), (size_t)(dst.stride()*sizeof(_Tp)));
+ const Mat _dst(_cols, 1, traits::Type<_Tp>::value,
+ dst.data(), (size_t)(dst.outerStride()*sizeof(_Tp)));
transpose(src, _dst);
}
else
{
- const Mat _dst(1, _cols, DataType<_Tp>::type,
- dst.data(), (size_t)(dst.stride()*sizeof(_Tp)));
+ const Mat _dst(1, _cols, traits::Type<_Tp>::value,
+ dst.data(), (size_t)(dst.outerStride()*sizeof(_Tp)));
Mat(src).copyTo(_dst);
}
}
diff --git a/include/opencv2/core/fast_math.hpp b/include/opencv2/core/fast_math.hpp
new file mode 100644
index 0000000..d9ea28e
--- /dev/null
+++ b/include/opencv2/core/fast_math.hpp
@@ -0,0 +1,271 @@
+/*M///////////////////////////////////////////////////////////////////////////////////////
+//
+// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
+//
+// By downloading, copying, installing or using the software you agree to this license.
+// If you do not agree to this license, do not download, install,
+// copy or use the software.
+//
+//
+// License Agreement
+// For Open Source Computer Vision Library
+//
+// Copyright (C) 2000-2008, Intel Corporation, all rights reserved.
+// Copyright (C) 2009, Willow Garage Inc., all rights reserved.
+// Copyright (C) 2013, OpenCV Foundation, all rights reserved.
+// Copyright (C) 2015, Itseez Inc., all rights reserved.
+// Third party copyrights are property of their respective owners.
+//
+// Redistribution and use in source and binary forms, with or without modification,
+// are permitted provided that the following conditions are met:
+//
+// * Redistribution's of source code must retain the above copyright notice,
+// this list of conditions and the following disclaimer.
+//
+// * Redistribution's in binary form must reproduce the above copyright notice,
+// this list of conditions and the following disclaimer in the documentation
+// and/or other materials provided with the distribution.
+//
+// * The name of the copyright holders may not be used to endorse or promote products
+// derived from this software without specific prior written permission.
+//
+// This software is provided by the copyright holders and contributors "as is" and
+// any express or implied warranties, including, but not limited to, the implied
+// warranties of merchantability and fitness for a particular purpose are disclaimed.
+// In no event shall the Intel Corporation or contributors be liable for any direct,
+// indirect, incidental, special, exemplary, or consequential damages
+// (including, but not limited to, procurement of substitute goods or services;
+// loss of use, data, or profits; or business interruption) however caused
+// and on any theory of liability, whether in contract, strict liability,
+// or tort (including negligence or otherwise) arising in any way out of
+// the use of this software, even if advised of the possibility of such damage.
+//
+//M*/
+
+#ifndef OPENCV_CORE_FAST_MATH_HPP
+#define OPENCV_CORE_FAST_MATH_HPP
+
+#include "opencv2/core/cvdef.h"
+
+#if ((defined _MSC_VER && defined _M_X64) || (defined __GNUC__ && defined __x86_64__ \
+ && defined __SSE2__ && !defined __APPLE__)) && !defined(__CUDACC__)
+#include
+#endif
+
+
+//! @addtogroup core_utils
+//! @{
+
+/****************************************************************************************\
+* fast math *
+\****************************************************************************************/
+
+#ifdef __cplusplus
+# include
+#else
+# ifdef __BORLANDC__
+# include
+# else
+# include
+# endif
+#endif
+
+#ifdef HAVE_TEGRA_OPTIMIZATION
+# include "tegra_round.hpp"
+#endif
+
+#if defined __GNUC__ && defined __arm__ && (defined __ARM_PCS_VFP || defined __ARM_VFPV3__ || defined __ARM_NEON__) && !defined __SOFTFP__ && !defined(__CUDACC__)
+ // 1. general scheme
+ #define ARM_ROUND(_value, _asm_string) \
+ int res; \
+ float temp; \
+ CV_UNUSED(temp); \
+ __asm__(_asm_string : [res] "=r" (res), [temp] "=w" (temp) : [value] "w" (_value)); \
+ return res
+ // 2. version for double
+ #ifdef __clang__
+ #define ARM_ROUND_DBL(value) ARM_ROUND(value, "vcvtr.s32.f64 %[temp], %[value] \n vmov %[res], %[temp]")
+ #else
+ #define ARM_ROUND_DBL(value) ARM_ROUND(value, "vcvtr.s32.f64 %[temp], %P[value] \n vmov %[res], %[temp]")
+ #endif
+ // 3. version for float
+ #define ARM_ROUND_FLT(value) ARM_ROUND(value, "vcvtr.s32.f32 %[temp], %[value]\n vmov %[res], %[temp]")
+#endif
+
+/** @brief Rounds floating-point number to the nearest integer
+
+ @param value floating-point number. If the value is outside of INT_MIN ... INT_MAX range, the
+ result is not defined.
+ */
+CV_INLINE int
+cvRound( double value )
+{
+#if ((defined _MSC_VER && defined _M_X64) || (defined __GNUC__ && defined __x86_64__ \
+ && defined __SSE2__ && !defined __APPLE__) || CV_SSE2) && !defined(__CUDACC__)
+ __m128d t = _mm_set_sd( value );
+ return _mm_cvtsd_si32(t);
+#elif defined _MSC_VER && defined _M_IX86
+ int t;
+ __asm
+ {
+ fld value;
+ fistp t;
+ }
+ return t;
+#elif ((defined _MSC_VER && defined _M_ARM) || defined CV_ICC || \
+ defined __GNUC__) && defined HAVE_TEGRA_OPTIMIZATION
+ TEGRA_ROUND_DBL(value);
+#elif defined CV_ICC || defined __GNUC__
+# if defined ARM_ROUND_DBL
+ ARM_ROUND_DBL(value);
+# else
+ return (int)lrint(value);
+# endif
+#else
+ /* it's ok if round does not comply with IEEE754 standard;
+ the tests should allow +/-1 difference when the tested functions use round */
+ return (int)(value + (value >= 0 ? 0.5 : -0.5));
+#endif
+}
+
+
+/** @brief Rounds floating-point number to the nearest integer not larger than the original.
+
+ The function computes an integer i such that:
+ \f[i \le \texttt{value} < i+1\f]
+ @param value floating-point number. If the value is outside of INT_MIN ... INT_MAX range, the
+ result is not defined.
+ */
+CV_INLINE int cvFloor( double value )
+{
+ int i = (int)value;
+ return i - (i > value);
+}
+
+/** @brief Rounds floating-point number to the nearest integer not smaller than the original.
+
+ The function computes an integer i such that:
+ \f[i \le \texttt{value} < i+1\f]
+ @param value floating-point number. If the value is outside of INT_MIN ... INT_MAX range, the
+ result is not defined.
+ */
+CV_INLINE int cvCeil( double value )
+{
+ int i = (int)value;
+ return i + (i < value);
+}
+
+/** @brief Determines if the argument is Not A Number.
+
+ @param value The input floating-point value
+
+ The function returns 1 if the argument is Not A Number (as defined by IEEE754 standard), 0
+ otherwise. */
+CV_INLINE int cvIsNaN( double value )
+{
+ Cv64suf ieee754;
+ ieee754.f = value;
+ return ((unsigned)(ieee754.u >> 32) & 0x7fffffff) +
+ ((unsigned)ieee754.u != 0) > 0x7ff00000;
+}
+
+/** @brief Determines if the argument is Infinity.
+
+ @param value The input floating-point value
+
+ The function returns 1 if the argument is a plus or minus infinity (as defined by IEEE754 standard)
+ and 0 otherwise. */
+CV_INLINE int cvIsInf( double value )
+{
+ Cv64suf ieee754;
+ ieee754.f = value;
+ return ((unsigned)(ieee754.u >> 32) & 0x7fffffff) == 0x7ff00000 &&
+ (unsigned)ieee754.u == 0;
+}
+
+#ifdef __cplusplus
+
+/** @overload */
+CV_INLINE int cvRound(float value)
+{
+#if ((defined _MSC_VER && defined _M_X64) || (defined __GNUC__ && defined __x86_64__ \
+ && defined __SSE2__ && !defined __APPLE__) || CV_SSE2) && !defined(__CUDACC__)
+ __m128 t = _mm_set_ss( value );
+ return _mm_cvtss_si32(t);
+#elif defined _MSC_VER && defined _M_IX86
+ int t;
+ __asm
+ {
+ fld value;
+ fistp t;
+ }
+ return t;
+#elif ((defined _MSC_VER && defined _M_ARM) || defined CV_ICC || \
+ defined __GNUC__) && defined HAVE_TEGRA_OPTIMIZATION
+ TEGRA_ROUND_FLT(value);
+#elif defined CV_ICC || defined __GNUC__
+# if defined ARM_ROUND_FLT
+ ARM_ROUND_FLT(value);
+# else
+ return (int)lrintf(value);
+# endif
+#else
+ /* it's ok if round does not comply with IEEE754 standard;
+ the tests should allow +/-1 difference when the tested functions use round */
+ return (int)(value + (value >= 0 ? 0.5f : -0.5f));
+#endif
+}
+
+/** @overload */
+CV_INLINE int cvRound( int value )
+{
+ return value;
+}
+
+/** @overload */
+CV_INLINE int cvFloor( float value )
+{
+ int i = (int)value;
+ return i - (i > value);
+}
+
+/** @overload */
+CV_INLINE int cvFloor( int value )
+{
+ return value;
+}
+
+/** @overload */
+CV_INLINE int cvCeil( float value )
+{
+ int i = (int)value;
+ return i + (i < value);
+}
+
+/** @overload */
+CV_INLINE int cvCeil( int value )
+{
+ return value;
+}
+
+/** @overload */
+CV_INLINE int cvIsNaN( float value )
+{
+ Cv32suf ieee754;
+ ieee754.f = value;
+ return (ieee754.u & 0x7fffffff) > 0x7f800000;
+}
+
+/** @overload */
+CV_INLINE int cvIsInf( float value )
+{
+ Cv32suf ieee754;
+ ieee754.f = value;
+ return (ieee754.u & 0x7fffffff) == 0x7f800000;
+}
+
+#endif // __cplusplus
+
+//! @} core_utils
+
+#endif
diff --git a/include/opencv2/core/hal/hal.hpp b/include/opencv2/core/hal/hal.hpp
new file mode 100644
index 0000000..68900ec
--- /dev/null
+++ b/include/opencv2/core/hal/hal.hpp
@@ -0,0 +1,250 @@
+/*M///////////////////////////////////////////////////////////////////////////////////////
+//
+// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
+//
+// By downloading, copying, installing or using the software you agree to this license.
+// If you do not agree to this license, do not download, install,
+// copy or use the software.
+//
+//
+// License Agreement
+// For Open Source Computer Vision Library
+//
+// Copyright (C) 2000-2008, Intel Corporation, all rights reserved.
+// Copyright (C) 2009, Willow Garage Inc., all rights reserved.
+// Copyright (C) 2013, OpenCV Foundation, all rights reserved.
+// Copyright (C) 2015, Itseez Inc., all rights reserved.
+// Third party copyrights are property of their respective owners.
+//
+// Redistribution and use in source and binary forms, with or without modification,
+// are permitted provided that the following conditions are met:
+//
+// * Redistribution's of source code must retain the above copyright notice,
+// this list of conditions and the following disclaimer.
+//
+// * Redistribution's in binary form must reproduce the above copyright notice,
+// this list of conditions and the following disclaimer in the documentation
+// and/or other materials provided with the distribution.
+//
+// * The name of the copyright holders may not be used to endorse or promote products
+// derived from this software without specific prior written permission.
+//
+// This software is provided by the copyright holders and contributors "as is" and
+// any express or implied warranties, including, but not limited to, the implied
+// warranties of merchantability and fitness for a particular purpose are disclaimed.
+// In no event shall the Intel Corporation or contributors be liable for any direct,
+// indirect, incidental, special, exemplary, or consequential damages
+// (including, but not limited to, procurement of substitute goods or services;
+// loss of use, data, or profits; or business interruption) however caused
+// and on any theory of liability, whether in contract, strict liability,
+// or tort (including negligence or otherwise) arising in any way out of
+// the use of this software, even if advised of the possibility of such damage.
+//
+//M*/
+
+#ifndef OPENCV_HAL_HPP
+#define OPENCV_HAL_HPP
+
+#include "opencv2/core/cvdef.h"
+#include "opencv2/core/cvstd.hpp"
+#include "opencv2/core/hal/interface.h"
+
+namespace cv { namespace hal {
+
+//! @addtogroup core_hal_functions
+//! @{
+
+CV_EXPORTS int normHamming(const uchar* a, int n);
+CV_EXPORTS int normHamming(const uchar* a, const uchar* b, int n);
+
+CV_EXPORTS int normHamming(const uchar* a, int n, int cellSize);
+CV_EXPORTS int normHamming(const uchar* a, const uchar* b, int n, int cellSize);
+
+CV_EXPORTS int LU32f(float* A, size_t astep, int m, float* b, size_t bstep, int n);
+CV_EXPORTS int LU64f(double* A, size_t astep, int m, double* b, size_t bstep, int n);
+CV_EXPORTS bool Cholesky32f(float* A, size_t astep, int m, float* b, size_t bstep, int n);
+CV_EXPORTS bool Cholesky64f(double* A, size_t astep, int m, double* b, size_t bstep, int n);
+CV_EXPORTS void SVD32f(float* At, size_t astep, float* W, float* U, size_t ustep, float* Vt, size_t vstep, int m, int n, int flags);
+CV_EXPORTS void SVD64f(double* At, size_t astep, double* W, double* U, size_t ustep, double* Vt, size_t vstep, int m, int n, int flags);
+CV_EXPORTS int QR32f(float* A, size_t astep, int m, int n, int k, float* b, size_t bstep, float* hFactors);
+CV_EXPORTS int QR64f(double* A, size_t astep, int m, int n, int k, double* b, size_t bstep, double* hFactors);
+
+CV_EXPORTS void gemm32f(const float* src1, size_t src1_step, const float* src2, size_t src2_step,
+ float alpha, const float* src3, size_t src3_step, float beta, float* dst, size_t dst_step,
+ int m_a, int n_a, int n_d, int flags);
+CV_EXPORTS void gemm64f(const double* src1, size_t src1_step, const double* src2, size_t src2_step,
+ double alpha, const double* src3, size_t src3_step, double beta, double* dst, size_t dst_step,
+ int m_a, int n_a, int n_d, int flags);
+CV_EXPORTS void gemm32fc(const float* src1, size_t src1_step, const float* src2, size_t src2_step,
+ float alpha, const float* src3, size_t src3_step, float beta, float* dst, size_t dst_step,
+ int m_a, int n_a, int n_d, int flags);
+CV_EXPORTS void gemm64fc(const double* src1, size_t src1_step, const double* src2, size_t src2_step,
+ double alpha, const double* src3, size_t src3_step, double beta, double* dst, size_t dst_step,
+ int m_a, int n_a, int n_d, int flags);
+
+CV_EXPORTS int normL1_(const uchar* a, const uchar* b, int n);
+CV_EXPORTS float normL1_(const float* a, const float* b, int n);
+CV_EXPORTS float normL2Sqr_(const float* a, const float* b, int n);
+
+CV_EXPORTS void exp32f(const float* src, float* dst, int n);
+CV_EXPORTS void exp64f(const double* src, double* dst, int n);
+CV_EXPORTS void log32f(const float* src, float* dst, int n);
+CV_EXPORTS void log64f(const double* src, double* dst, int n);
+
+CV_EXPORTS void fastAtan32f(const float* y, const float* x, float* dst, int n, bool angleInDegrees);
+CV_EXPORTS void fastAtan64f(const double* y, const double* x, double* dst, int n, bool angleInDegrees);
+CV_EXPORTS void magnitude32f(const float* x, const float* y, float* dst, int n);
+CV_EXPORTS void magnitude64f(const double* x, const double* y, double* dst, int n);
+CV_EXPORTS void sqrt32f(const float* src, float* dst, int len);
+CV_EXPORTS void sqrt64f(const double* src, double* dst, int len);
+CV_EXPORTS void invSqrt32f(const float* src, float* dst, int len);
+CV_EXPORTS void invSqrt64f(const double* src, double* dst, int len);
+
+CV_EXPORTS void split8u(const uchar* src, uchar** dst, int len, int cn );
+CV_EXPORTS void split16u(const ushort* src, ushort** dst, int len, int cn );
+CV_EXPORTS void split32s(const int* src, int** dst, int len, int cn );
+CV_EXPORTS void split64s(const int64* src, int64** dst, int len, int cn );
+
+CV_EXPORTS void merge8u(const uchar** src, uchar* dst, int len, int cn );
+CV_EXPORTS void merge16u(const ushort** src, ushort* dst, int len, int cn );
+CV_EXPORTS void merge32s(const int** src, int* dst, int len, int cn );
+CV_EXPORTS void merge64s(const int64** src, int64* dst, int len, int cn );
+
+CV_EXPORTS void add8u( const uchar* src1, size_t step1, const uchar* src2, size_t step2, uchar* dst, size_t step, int width, int height, void* );
+CV_EXPORTS void add8s( const schar* src1, size_t step1, const schar* src2, size_t step2, schar* dst, size_t step, int width, int height, void* );
+CV_EXPORTS void add16u( const ushort* src1, size_t step1, const ushort* src2, size_t step2, ushort* dst, size_t step, int width, int height, void* );
+CV_EXPORTS void add16s( const short* src1, size_t step1, const short* src2, size_t step2, short* dst, size_t step, int width, int height, void* );
+CV_EXPORTS void add32s( const int* src1, size_t step1, const int* src2, size_t step2, int* dst, size_t step, int width, int height, void* );
+CV_EXPORTS void add32f( const float* src1, size_t step1, const float* src2, size_t step2, float* dst, size_t step, int width, int height, void* );
+CV_EXPORTS void add64f( const double* src1, size_t step1, const double* src2, size_t step2, double* dst, size_t step, int width, int height, void* );
+
+CV_EXPORTS void sub8u( const uchar* src1, size_t step1, const uchar* src2, size_t step2, uchar* dst, size_t step, int width, int height, void* );
+CV_EXPORTS void sub8s( const schar* src1, size_t step1, const schar* src2, size_t step2, schar* dst, size_t step, int width, int height, void* );
+CV_EXPORTS void sub16u( const ushort* src1, size_t step1, const ushort* src2, size_t step2, ushort* dst, size_t step, int width, int height, void* );
+CV_EXPORTS void sub16s( const short* src1, size_t step1, const short* src2, size_t step2, short* dst, size_t step, int width, int height, void* );
+CV_EXPORTS void sub32s( const int* src1, size_t step1, const int* src2, size_t step2, int* dst, size_t step, int width, int height, void* );
+CV_EXPORTS void sub32f( const float* src1, size_t step1, const float* src2, size_t step2, float* dst, size_t step, int width, int height, void* );
+CV_EXPORTS void sub64f( const double* src1, size_t step1, const double* src2, size_t step2, double* dst, size_t step, int width, int height, void* );
+
+CV_EXPORTS void max8u( const uchar* src1, size_t step1, const uchar* src2, size_t step2, uchar* dst, size_t step, int width, int height, void* );
+CV_EXPORTS void max8s( const schar* src1, size_t step1, const schar* src2, size_t step2, schar* dst, size_t step, int width, int height, void* );
+CV_EXPORTS void max16u( const ushort* src1, size_t step1, const ushort* src2, size_t step2, ushort* dst, size_t step, int width, int height, void* );
+CV_EXPORTS void max16s( const short* src1, size_t step1, const short* src2, size_t step2, short* dst, size_t step, int width, int height, void* );
+CV_EXPORTS void max32s( const int* src1, size_t step1, const int* src2, size_t step2, int* dst, size_t step, int width, int height, void* );
+CV_EXPORTS void max32f( const float* src1, size_t step1, const float* src2, size_t step2, float* dst, size_t step, int width, int height, void* );
+CV_EXPORTS void max64f( const double* src1, size_t step1, const double* src2, size_t step2, double* dst, size_t step, int width, int height, void* );
+
+CV_EXPORTS void min8u( const uchar* src1, size_t step1, const uchar* src2, size_t step2, uchar* dst, size_t step, int width, int height, void* );
+CV_EXPORTS void min8s( const schar* src1, size_t step1, const schar* src2, size_t step2, schar* dst, size_t step, int width, int height, void* );
+CV_EXPORTS void min16u( const ushort* src1, size_t step1, const ushort* src2, size_t step2, ushort* dst, size_t step, int width, int height, void* );
+CV_EXPORTS void min16s( const short* src1, size_t step1, const short* src2, size_t step2, short* dst, size_t step, int width, int height, void* );
+CV_EXPORTS void min32s( const int* src1, size_t step1, const int* src2, size_t step2, int* dst, size_t step, int width, int height, void* );
+CV_EXPORTS void min32f( const float* src1, size_t step1, const float* src2, size_t step2, float* dst, size_t step, int width, int height, void* );
+CV_EXPORTS void min64f( const double* src1, size_t step1, const double* src2, size_t step2, double* dst, size_t step, int width, int height, void* );
+
+CV_EXPORTS void absdiff8u( const uchar* src1, size_t step1, const uchar* src2, size_t step2, uchar* dst, size_t step, int width, int height, void* );
+CV_EXPORTS void absdiff8s( const schar* src1, size_t step1, const schar* src2, size_t step2, schar* dst, size_t step, int width, int height, void* );
+CV_EXPORTS void absdiff16u( const ushort* src1, size_t step1, const ushort* src2, size_t step2, ushort* dst, size_t step, int width, int height, void* );
+CV_EXPORTS void absdiff16s( const short* src1, size_t step1, const short* src2, size_t step2, short* dst, size_t step, int width, int height, void* );
+CV_EXPORTS void absdiff32s( const int* src1, size_t step1, const int* src2, size_t step2, int* dst, size_t step, int width, int height, void* );
+CV_EXPORTS void absdiff32f( const float* src1, size_t step1, const float* src2, size_t step2, float* dst, size_t step, int width, int height, void* );
+CV_EXPORTS void absdiff64f( const double* src1, size_t step1, const double* src2, size_t step2, double* dst, size_t step, int width, int height, void* );
+
+CV_EXPORTS void and8u( const uchar* src1, size_t step1, const uchar* src2, size_t step2, uchar* dst, size_t step, int width, int height, void* );
+CV_EXPORTS void or8u( const uchar* src1, size_t step1, const uchar* src2, size_t step2, uchar* dst, size_t step, int width, int height, void* );
+CV_EXPORTS void xor8u( const uchar* src1, size_t step1, const uchar* src2, size_t step2, uchar* dst, size_t step, int width, int height, void* );
+CV_EXPORTS void not8u( const uchar* src1, size_t step1, const uchar* src2, size_t step2, uchar* dst, size_t step, int width, int height, void* );
+
+CV_EXPORTS void cmp8u(const uchar* src1, size_t step1, const uchar* src2, size_t step2, uchar* dst, size_t step, int width, int height, void* _cmpop);
+CV_EXPORTS void cmp8s(const schar* src1, size_t step1, const schar* src2, size_t step2, uchar* dst, size_t step, int width, int height, void* _cmpop);
+CV_EXPORTS void cmp16u(const ushort* src1, size_t step1, const ushort* src2, size_t step2, uchar* dst, size_t step, int width, int height, void* _cmpop);
+CV_EXPORTS void cmp16s(const short* src1, size_t step1, const short* src2, size_t step2, uchar* dst, size_t step, int width, int height, void* _cmpop);
+CV_EXPORTS void cmp32s(const int* src1, size_t step1, const int* src2, size_t step2, uchar* dst, size_t step, int width, int height, void* _cmpop);
+CV_EXPORTS void cmp32f(const float* src1, size_t step1, const float* src2, size_t step2, uchar* dst, size_t step, int width, int height, void* _cmpop);
+CV_EXPORTS void cmp64f(const double* src1, size_t step1, const double* src2, size_t step2, uchar* dst, size_t step, int width, int height, void* _cmpop);
+
+CV_EXPORTS void mul8u( const uchar* src1, size_t step1, const uchar* src2, size_t step2, uchar* dst, size_t step, int width, int height, void* scale);
+CV_EXPORTS void mul8s( const schar* src1, size_t step1, const schar* src2, size_t step2, schar* dst, size_t step, int width, int height, void* scale);
+CV_EXPORTS void mul16u( const ushort* src1, size_t step1, const ushort* src2, size_t step2, ushort* dst, size_t step, int width, int height, void* scale);
+CV_EXPORTS void mul16s( const short* src1, size_t step1, const short* src2, size_t step2, short* dst, size_t step, int width, int height, void* scale);
+CV_EXPORTS void mul32s( const int* src1, size_t step1, const int* src2, size_t step2, int* dst, size_t step, int width, int height, void* scale);
+CV_EXPORTS void mul32f( const float* src1, size_t step1, const float* src2, size_t step2, float* dst, size_t step, int width, int height, void* scale);
+CV_EXPORTS void mul64f( const double* src1, size_t step1, const double* src2, size_t step2, double* dst, size_t step, int width, int height, void* scale);
+
+CV_EXPORTS void div8u( const uchar* src1, size_t step1, const uchar* src2, size_t step2, uchar* dst, size_t step, int width, int height, void* scale);
+CV_EXPORTS void div8s( const schar* src1, size_t step1, const schar* src2, size_t step2, schar* dst, size_t step, int width, int height, void* scale);
+CV_EXPORTS void div16u( const ushort* src1, size_t step1, const ushort* src2, size_t step2, ushort* dst, size_t step, int width, int height, void* scale);
+CV_EXPORTS void div16s( const short* src1, size_t step1, const short* src2, size_t step2, short* dst, size_t step, int width, int height, void* scale);
+CV_EXPORTS void div32s( const int* src1, size_t step1, const int* src2, size_t step2, int* dst, size_t step, int width, int height, void* scale);
+CV_EXPORTS void div32f( const float* src1, size_t step1, const float* src2, size_t step2, float* dst, size_t step, int width, int height, void* scale);
+CV_EXPORTS void div64f( const double* src1, size_t step1, const double* src2, size_t step2, double* dst, size_t step, int width, int height, void* scale);
+
+CV_EXPORTS void recip8u( const uchar *, size_t, const uchar * src2, size_t step2, uchar* dst, size_t step, int width, int height, void* scale);
+CV_EXPORTS void recip8s( const schar *, size_t, const schar * src2, size_t step2, schar* dst, size_t step, int width, int height, void* scale);
+CV_EXPORTS void recip16u( const ushort *, size_t, const ushort * src2, size_t step2, ushort* dst, size_t step, int width, int height, void* scale);
+CV_EXPORTS void recip16s( const short *, size_t, const short * src2, size_t step2, short* dst, size_t step, int width, int height, void* scale);
+CV_EXPORTS void recip32s( const int *, size_t, const int * src2, size_t step2, int* dst, size_t step, int width, int height, void* scale);
+CV_EXPORTS void recip32f( const float *, size_t, const float * src2, size_t step2, float* dst, size_t step, int width, int height, void* scale);
+CV_EXPORTS void recip64f( const double *, size_t, const double * src2, size_t step2, double* dst, size_t step, int width, int height, void* scale);
+
+CV_EXPORTS void addWeighted8u( const uchar* src1, size_t step1, const uchar* src2, size_t step2, uchar* dst, size_t step, int width, int height, void* _scalars );
+CV_EXPORTS void addWeighted8s( const schar* src1, size_t step1, const schar* src2, size_t step2, schar* dst, size_t step, int width, int height, void* scalars );
+CV_EXPORTS void addWeighted16u( const ushort* src1, size_t step1, const ushort* src2, size_t step2, ushort* dst, size_t step, int width, int height, void* scalars );
+CV_EXPORTS void addWeighted16s( const short* src1, size_t step1, const short* src2, size_t step2, short* dst, size_t step, int width, int height, void* scalars );
+CV_EXPORTS void addWeighted32s( const int* src1, size_t step1, const int* src2, size_t step2, int* dst, size_t step, int width, int height, void* scalars );
+CV_EXPORTS void addWeighted32f( const float* src1, size_t step1, const float* src2, size_t step2, float* dst, size_t step, int width, int height, void* scalars );
+CV_EXPORTS void addWeighted64f( const double* src1, size_t step1, const double* src2, size_t step2, double* dst, size_t step, int width, int height, void* scalars );
+
+struct CV_EXPORTS DFT1D
+{
+ static Ptr create(int len, int count, int depth, int flags, bool * useBuffer = 0);
+ virtual void apply(const uchar *src, uchar *dst) = 0;
+ virtual ~DFT1D() {}
+};
+
+struct CV_EXPORTS DFT2D
+{
+ static Ptr create(int width, int height, int depth,
+ int src_channels, int dst_channels,
+ int flags, int nonzero_rows = 0);
+ virtual void apply(const uchar *src_data, size_t src_step, uchar *dst_data, size_t dst_step) = 0;
+ virtual ~DFT2D() {}
+};
+
+struct CV_EXPORTS DCT2D
+{
+ static Ptr create(int width, int height, int depth, int flags);
+ virtual void apply(const uchar *src_data, size_t src_step, uchar *dst_data, size_t dst_step) = 0;
+ virtual ~DCT2D() {}
+};
+
+//! @} core_hal
+
+//=============================================================================
+// for binary compatibility with 3.0
+
+//! @cond IGNORED
+
+CV_EXPORTS int LU(float* A, size_t astep, int m, float* b, size_t bstep, int n);
+CV_EXPORTS int LU(double* A, size_t astep, int m, double* b, size_t bstep, int n);
+CV_EXPORTS bool Cholesky(float* A, size_t astep, int m, float* b, size_t bstep, int n);
+CV_EXPORTS bool Cholesky(double* A, size_t astep, int m, double* b, size_t bstep, int n);
+
+CV_EXPORTS void exp(const float* src, float* dst, int n);
+CV_EXPORTS void exp(const double* src, double* dst, int n);
+CV_EXPORTS void log(const float* src, float* dst, int n);
+CV_EXPORTS void log(const double* src, double* dst, int n);
+
+CV_EXPORTS void fastAtan2(const float* y, const float* x, float* dst, int n, bool angleInDegrees);
+CV_EXPORTS void magnitude(const float* x, const float* y, float* dst, int n);
+CV_EXPORTS void magnitude(const double* x, const double* y, double* dst, int n);
+CV_EXPORTS void sqrt(const float* src, float* dst, int len);
+CV_EXPORTS void sqrt(const double* src, double* dst, int len);
+CV_EXPORTS void invSqrt(const float* src, float* dst, int len);
+CV_EXPORTS void invSqrt(const double* src, double* dst, int len);
+
+//! @endcond
+
+}} //cv::hal
+
+#endif //OPENCV_HAL_HPP
diff --git a/include/opencv2/core/hal/interface.h b/include/opencv2/core/hal/interface.h
new file mode 100644
index 0000000..8f64025
--- /dev/null
+++ b/include/opencv2/core/hal/interface.h
@@ -0,0 +1,182 @@
+#ifndef OPENCV_CORE_HAL_INTERFACE_H
+#define OPENCV_CORE_HAL_INTERFACE_H
+
+//! @addtogroup core_hal_interface
+//! @{
+
+//! @name Return codes
+//! @{
+#define CV_HAL_ERROR_OK 0
+#define CV_HAL_ERROR_NOT_IMPLEMENTED 1
+#define CV_HAL_ERROR_UNKNOWN -1
+//! @}
+
+#ifdef __cplusplus
+#include
+#else
+#include
+#include
+#endif
+
+//! @name Data types
+//! primitive types
+//! - schar - signed 1 byte integer
+//! - uchar - unsigned 1 byte integer
+//! - short - signed 2 byte integer
+//! - ushort - unsigned 2 byte integer
+//! - int - signed 4 byte integer
+//! - uint - unsigned 4 byte integer
+//! - int64 - signed 8 byte integer
+//! - uint64 - unsigned 8 byte integer
+//! @{
+#if !defined _MSC_VER && !defined __BORLANDC__
+# if defined __cplusplus && __cplusplus >= 201103L && !defined __APPLE__
+# include
+# ifdef __NEWLIB__
+ typedef unsigned int uint;
+# else
+ typedef std::uint32_t uint;
+# endif
+# else
+# include
+ typedef uint32_t uint;
+# endif
+#else
+ typedef unsigned uint;
+#endif
+
+typedef signed char schar;
+
+#ifndef __IPL_H__
+ typedef unsigned char uchar;
+ typedef unsigned short ushort;
+#endif
+
+#if defined _MSC_VER || defined __BORLANDC__
+ typedef __int64 int64;
+ typedef unsigned __int64 uint64;
+# define CV_BIG_INT(n) n##I64
+# define CV_BIG_UINT(n) n##UI64
+#else
+ typedef int64_t int64;
+ typedef uint64_t uint64;
+# define CV_BIG_INT(n) n##LL
+# define CV_BIG_UINT(n) n##ULL
+#endif
+
+#define CV_CN_MAX 512
+#define CV_CN_SHIFT 3
+#define CV_DEPTH_MAX (1 << CV_CN_SHIFT)
+
+#define CV_8U 0
+#define CV_8S 1
+#define CV_16U 2
+#define CV_16S 3
+#define CV_32S 4
+#define CV_32F 5
+#define CV_64F 6
+#define CV_USRTYPE1 7
+
+#define CV_MAT_DEPTH_MASK (CV_DEPTH_MAX - 1)
+#define CV_MAT_DEPTH(flags) ((flags) & CV_MAT_DEPTH_MASK)
+
+#define CV_MAKETYPE(depth,cn) (CV_MAT_DEPTH(depth) + (((cn)-1) << CV_CN_SHIFT))
+#define CV_MAKE_TYPE CV_MAKETYPE
+
+#define CV_8UC1 CV_MAKETYPE(CV_8U,1)
+#define CV_8UC2 CV_MAKETYPE(CV_8U,2)
+#define CV_8UC3 CV_MAKETYPE(CV_8U,3)
+#define CV_8UC4 CV_MAKETYPE(CV_8U,4)
+#define CV_8UC(n) CV_MAKETYPE(CV_8U,(n))
+
+#define CV_8SC1 CV_MAKETYPE(CV_8S,1)
+#define CV_8SC2 CV_MAKETYPE(CV_8S,2)
+#define CV_8SC3 CV_MAKETYPE(CV_8S,3)
+#define CV_8SC4 CV_MAKETYPE(CV_8S,4)
+#define CV_8SC(n) CV_MAKETYPE(CV_8S,(n))
+
+#define CV_16UC1 CV_MAKETYPE(CV_16U,1)
+#define CV_16UC2 CV_MAKETYPE(CV_16U,2)
+#define CV_16UC3 CV_MAKETYPE(CV_16U,3)
+#define CV_16UC4 CV_MAKETYPE(CV_16U,4)
+#define CV_16UC(n) CV_MAKETYPE(CV_16U,(n))
+
+#define CV_16SC1 CV_MAKETYPE(CV_16S,1)
+#define CV_16SC2 CV_MAKETYPE(CV_16S,2)
+#define CV_16SC3 CV_MAKETYPE(CV_16S,3)
+#define CV_16SC4 CV_MAKETYPE(CV_16S,4)
+#define CV_16SC(n) CV_MAKETYPE(CV_16S,(n))
+
+#define CV_32SC1 CV_MAKETYPE(CV_32S,1)
+#define CV_32SC2 CV_MAKETYPE(CV_32S,2)
+#define CV_32SC3 CV_MAKETYPE(CV_32S,3)
+#define CV_32SC4 CV_MAKETYPE(CV_32S,4)
+#define CV_32SC(n) CV_MAKETYPE(CV_32S,(n))
+
+#define CV_32FC1 CV_MAKETYPE(CV_32F,1)
+#define CV_32FC2 CV_MAKETYPE(CV_32F,2)
+#define CV_32FC3 CV_MAKETYPE(CV_32F,3)
+#define CV_32FC4 CV_MAKETYPE(CV_32F,4)
+#define CV_32FC(n) CV_MAKETYPE(CV_32F,(n))
+
+#define CV_64FC1 CV_MAKETYPE(CV_64F,1)
+#define CV_64FC2 CV_MAKETYPE(CV_64F,2)
+#define CV_64FC3 CV_MAKETYPE(CV_64F,3)
+#define CV_64FC4 CV_MAKETYPE(CV_64F,4)
+#define CV_64FC(n) CV_MAKETYPE(CV_64F,(n))
+//! @}
+
+//! @name Comparison operation
+//! @sa cv::CmpTypes
+//! @{
+#define CV_HAL_CMP_EQ 0
+#define CV_HAL_CMP_GT 1
+#define CV_HAL_CMP_GE 2
+#define CV_HAL_CMP_LT 3
+#define CV_HAL_CMP_LE 4
+#define CV_HAL_CMP_NE 5
+//! @}
+
+//! @name Border processing modes
+//! @sa cv::BorderTypes
+//! @{
+#define CV_HAL_BORDER_CONSTANT 0
+#define CV_HAL_BORDER_REPLICATE 1
+#define CV_HAL_BORDER_REFLECT 2
+#define CV_HAL_BORDER_WRAP 3
+#define CV_HAL_BORDER_REFLECT_101 4
+#define CV_HAL_BORDER_TRANSPARENT 5
+#define CV_HAL_BORDER_ISOLATED 16
+//! @}
+
+//! @name DFT flags
+//! @{
+#define CV_HAL_DFT_INVERSE 1
+#define CV_HAL_DFT_SCALE 2
+#define CV_HAL_DFT_ROWS 4
+#define CV_HAL_DFT_COMPLEX_OUTPUT 16
+#define CV_HAL_DFT_REAL_OUTPUT 32
+#define CV_HAL_DFT_TWO_STAGE 64
+#define CV_HAL_DFT_STAGE_COLS 128
+#define CV_HAL_DFT_IS_CONTINUOUS 512
+#define CV_HAL_DFT_IS_INPLACE 1024
+//! @}
+
+//! @name SVD flags
+//! @{
+#define CV_HAL_SVD_NO_UV 1
+#define CV_HAL_SVD_SHORT_UV 2
+#define CV_HAL_SVD_MODIFY_A 4
+#define CV_HAL_SVD_FULL_UV 8
+//! @}
+
+//! @name Gemm flags
+//! @{
+#define CV_HAL_GEMM_1_T 1
+#define CV_HAL_GEMM_2_T 2
+#define CV_HAL_GEMM_3_T 4
+//! @}
+
+//! @}
+
+#endif
diff --git a/include/opencv2/core/hal/intrin.hpp b/include/opencv2/core/hal/intrin.hpp
new file mode 100644
index 0000000..ef74176
--- /dev/null
+++ b/include/opencv2/core/hal/intrin.hpp
@@ -0,0 +1,420 @@
+/*M///////////////////////////////////////////////////////////////////////////////////////
+//
+// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
+//
+// By downloading, copying, installing or using the software you agree to this license.
+// If you do not agree to this license, do not download, install,
+// copy or use the software.
+//
+//
+// License Agreement
+// For Open Source Computer Vision Library
+//
+// Copyright (C) 2000-2008, Intel Corporation, all rights reserved.
+// Copyright (C) 2009, Willow Garage Inc., all rights reserved.
+// Copyright (C) 2013, OpenCV Foundation, all rights reserved.
+// Copyright (C) 2015, Itseez Inc., all rights reserved.
+// Third party copyrights are property of their respective owners.
+//
+// Redistribution and use in source and binary forms, with or without modification,
+// are permitted provided that the following conditions are met:
+//
+// * Redistribution's of source code must retain the above copyright notice,
+// this list of conditions and the following disclaimer.
+//
+// * Redistribution's in binary form must reproduce the above copyright notice,
+// this list of conditions and the following disclaimer in the documentation
+// and/or other materials provided with the distribution.
+//
+// * The name of the copyright holders may not be used to endorse or promote products
+// derived from this software without specific prior written permission.
+//
+// This software is provided by the copyright holders and contributors "as is" and
+// any express or implied warranties, including, but not limited to, the implied
+// warranties of merchantability and fitness for a particular purpose are disclaimed.
+// In no event shall the Intel Corporation or contributors be liable for any direct,
+// indirect, incidental, special, exemplary, or consequential damages
+// (including, but not limited to, procurement of substitute goods or services;
+// loss of use, data, or profits; or business interruption) however caused
+// and on any theory of liability, whether in contract, strict liability,
+// or tort (including negligence or otherwise) arising in any way out of
+// the use of this software, even if advised of the possibility of such damage.
+//
+//M*/
+
+#ifndef OPENCV_HAL_INTRIN_HPP
+#define OPENCV_HAL_INTRIN_HPP
+
+#include
+#include
+#include
+#include "opencv2/core/cvdef.h"
+
+#define OPENCV_HAL_ADD(a, b) ((a) + (b))
+#define OPENCV_HAL_AND(a, b) ((a) & (b))
+#define OPENCV_HAL_NOP(a) (a)
+#define OPENCV_HAL_1ST(a, b) (a)
+
+// unlike HAL API, which is in cv::hal,
+// we put intrinsics into cv namespace to make its
+// access from within opencv code more accessible
+namespace cv {
+
+namespace hal {
+
+enum StoreMode
+{
+ STORE_UNALIGNED = 0,
+ STORE_ALIGNED = 1,
+ STORE_ALIGNED_NOCACHE = 2
+};
+
+}
+
+template struct V_TypeTraits
+{
+};
+
+#define CV_INTRIN_DEF_TYPE_TRAITS(type, int_type_, uint_type_, abs_type_, w_type_, q_type_, sum_type_, nlanes128_) \
+ template<> struct V_TypeTraits \
+ { \
+ typedef type value_type; \
+ typedef int_type_ int_type; \
+ typedef abs_type_ abs_type; \
+ typedef uint_type_ uint_type; \
+ typedef w_type_ w_type; \
+ typedef q_type_ q_type; \
+ typedef sum_type_ sum_type; \
+ enum { nlanes128 = nlanes128_ }; \
+ \
+ static inline int_type reinterpret_int(type x) \
+ { \
+ union { type l; int_type i; } v; \
+ v.l = x; \
+ return v.i; \
+ } \
+ \
+ static inline type reinterpret_from_int(int_type x) \
+ { \
+ union { type l; int_type i; } v; \
+ v.i = x; \
+ return v.l; \
+ } \
+ }
+
+CV_INTRIN_DEF_TYPE_TRAITS(uchar, schar, uchar, uchar, ushort, unsigned, unsigned, 16);
+CV_INTRIN_DEF_TYPE_TRAITS(schar, schar, uchar, uchar, short, int, int, 16);
+CV_INTRIN_DEF_TYPE_TRAITS(ushort, short, ushort, ushort, unsigned, uint64, unsigned, 8);
+CV_INTRIN_DEF_TYPE_TRAITS(short, short, ushort, ushort, int, int64, int, 8);
+CV_INTRIN_DEF_TYPE_TRAITS(unsigned, int, unsigned, unsigned, uint64, void, unsigned, 4);
+CV_INTRIN_DEF_TYPE_TRAITS(int, int, unsigned, unsigned, int64, void, int, 4);
+CV_INTRIN_DEF_TYPE_TRAITS(float, int, unsigned, float, double, void, float, 4);
+CV_INTRIN_DEF_TYPE_TRAITS(uint64, int64, uint64, uint64, void, void, uint64, 2);
+CV_INTRIN_DEF_TYPE_TRAITS(int64, int64, uint64, uint64, void, void, int64, 2);
+CV_INTRIN_DEF_TYPE_TRAITS(double, int64, uint64, double, void, void, double, 2);
+
+#ifndef CV_DOXYGEN
+
+#ifdef CV_CPU_DISPATCH_MODE
+ #define CV_CPU_OPTIMIZATION_HAL_NAMESPACE __CV_CAT(hal_, CV_CPU_DISPATCH_MODE)
+ #define CV_CPU_OPTIMIZATION_HAL_NAMESPACE_BEGIN namespace __CV_CAT(hal_, CV_CPU_DISPATCH_MODE) {
+ #define CV_CPU_OPTIMIZATION_HAL_NAMESPACE_END }
+#else
+ #define CV_CPU_OPTIMIZATION_HAL_NAMESPACE hal_baseline
+ #define CV_CPU_OPTIMIZATION_HAL_NAMESPACE_BEGIN namespace hal_baseline {
+ #define CV_CPU_OPTIMIZATION_HAL_NAMESPACE_END }
+#endif
+
+CV_CPU_OPTIMIZATION_HAL_NAMESPACE_BEGIN
+CV_CPU_OPTIMIZATION_HAL_NAMESPACE_END
+using namespace CV_CPU_OPTIMIZATION_HAL_NAMESPACE;
+#endif
+}
+
+#ifdef CV_DOXYGEN
+# undef CV_AVX2
+# undef CV_SSE2
+# undef CV_NEON
+# undef CV_VSX
+# undef CV_FP16
+#endif
+
+#if CV_SSE2 || CV_NEON || CV_VSX
+#define CV__SIMD_FORWARD 128
+#include "opencv2/core/hal/intrin_forward.hpp"
+#endif
+
+#if CV_SSE2
+
+#include "opencv2/core/hal/intrin_sse_em.hpp"
+#include "opencv2/core/hal/intrin_sse.hpp"
+
+#elif CV_NEON
+
+#include "opencv2/core/hal/intrin_neon.hpp"
+
+#elif CV_VSX
+
+#include "opencv2/core/hal/intrin_vsx.hpp"
+
+#else
+
+#define CV_SIMD128_CPP 1
+#include "opencv2/core/hal/intrin_cpp.hpp"
+
+#endif
+
+// AVX2 can be used together with SSE2, so
+// we define those two sets of intrinsics at once.
+// Most of the intrinsics do not conflict (the proper overloaded variant is
+// resolved by the argument types, e.g. v_float32x4 ~ SSE2, v_float32x8 ~ AVX2),
+// but some of AVX2 intrinsics get v256_ prefix instead of v_, e.g. v256_load() vs v_load().
+// Correspondingly, the wide intrinsics (which are mapped to the "widest"
+// available instruction set) will get vx_ prefix
+// (and will be mapped to v256_ counterparts) (e.g. vx_load() => v256_load())
+#if CV_AVX2
+
+#define CV__SIMD_FORWARD 256
+#include "opencv2/core/hal/intrin_forward.hpp"
+#include "opencv2/core/hal/intrin_avx.hpp"
+
+#endif
+
+//! @cond IGNORED
+
+namespace cv {
+
+#ifndef CV_DOXYGEN
+CV_CPU_OPTIMIZATION_HAL_NAMESPACE_BEGIN
+#endif
+
+#ifndef CV_SIMD128
+#define CV_SIMD128 0
+#endif
+
+#ifndef CV_SIMD128_64F
+#define CV_SIMD128_64F 0
+#endif
+
+#ifndef CV_SIMD256
+#define CV_SIMD256 0
+#endif
+
+#ifndef CV_SIMD256_64F
+#define CV_SIMD256_64F 0
+#endif
+
+#ifndef CV_SIMD512
+#define CV_SIMD512 0
+#endif
+
+#ifndef CV_SIMD512_64F
+#define CV_SIMD512_64F 0
+#endif
+
+#ifndef CV_SIMD128_FP16
+#define CV_SIMD128_FP16 0
+#endif
+
+#ifndef CV_SIMD256_FP16
+#define CV_SIMD256_FP16 0
+#endif
+
+#ifndef CV_SIMD512_FP16
+#define CV_SIMD512_FP16 0
+#endif
+
+//==================================================================================================
+
+#define CV_INTRIN_DEFINE_WIDE_INTRIN(typ, vtyp, short_typ, prefix, loadsfx) \
+ inline vtyp vx_setall_##short_typ(typ v) { return prefix##_setall_##short_typ(v); } \
+ inline vtyp vx_setzero_##short_typ() { return prefix##_setzero_##short_typ(); } \
+ inline vtyp vx_##loadsfx(const typ* ptr) { return prefix##_##loadsfx(ptr); } \
+ inline vtyp vx_##loadsfx##_aligned(const typ* ptr) { return prefix##_##loadsfx##_aligned(ptr); } \
+ inline vtyp vx_##loadsfx##_low(const typ* ptr) { return prefix##_##loadsfx##_low(ptr); } \
+ inline vtyp vx_##loadsfx##_halves(const typ* ptr0, const typ* ptr1) { return prefix##_##loadsfx##_halves(ptr0, ptr1); } \
+ inline void vx_store(typ* ptr, const vtyp& v) { return v_store(ptr, v); } \
+ inline void vx_store_aligned(typ* ptr, const vtyp& v) { return v_store_aligned(ptr, v); }
+
+#define CV_INTRIN_DEFINE_WIDE_LOAD_EXPAND(typ, wtyp, prefix) \
+ inline wtyp vx_load_expand(const typ* ptr) { return prefix##_load_expand(ptr); }
+
+#define CV_INTRIN_DEFINE_WIDE_LOAD_EXPAND_Q(typ, qtyp, prefix) \
+ inline qtyp vx_load_expand_q(const typ* ptr) { return prefix##_load_expand_q(ptr); }
+
+#define CV_INTRIN_DEFINE_WIDE_INTRIN_WITH_EXPAND(typ, vtyp, short_typ, wtyp, qtyp, prefix, loadsfx) \
+ CV_INTRIN_DEFINE_WIDE_INTRIN(typ, vtyp, short_typ, prefix, loadsfx) \
+ CV_INTRIN_DEFINE_WIDE_LOAD_EXPAND(typ, wtyp, prefix) \
+ CV_INTRIN_DEFINE_WIDE_LOAD_EXPAND_Q(typ, qtyp, prefix)
+
+#define CV_INTRIN_DEFINE_WIDE_INTRIN_ALL_TYPES(prefix) \
+ CV_INTRIN_DEFINE_WIDE_INTRIN_WITH_EXPAND(uchar, v_uint8, u8, v_uint16, v_uint32, prefix, load) \
+ CV_INTRIN_DEFINE_WIDE_INTRIN_WITH_EXPAND(schar, v_int8, s8, v_int16, v_int32, prefix, load) \
+ CV_INTRIN_DEFINE_WIDE_INTRIN(ushort, v_uint16, u16, prefix, load) \
+ CV_INTRIN_DEFINE_WIDE_LOAD_EXPAND(ushort, v_uint32, prefix) \
+ CV_INTRIN_DEFINE_WIDE_INTRIN(short, v_int16, s16, prefix, load) \
+ CV_INTRIN_DEFINE_WIDE_LOAD_EXPAND(short, v_int32, prefix) \
+ CV_INTRIN_DEFINE_WIDE_INTRIN(int, v_int32, s32, prefix, load) \
+ CV_INTRIN_DEFINE_WIDE_LOAD_EXPAND(int, v_int64, prefix) \
+ CV_INTRIN_DEFINE_WIDE_INTRIN(unsigned, v_uint32, u32, prefix, load) \
+ CV_INTRIN_DEFINE_WIDE_LOAD_EXPAND(unsigned, v_uint64, prefix) \
+ CV_INTRIN_DEFINE_WIDE_INTRIN(float, v_float32, f32, prefix, load) \
+ CV_INTRIN_DEFINE_WIDE_INTRIN(int64, v_int64, s64, prefix, load) \
+ CV_INTRIN_DEFINE_WIDE_INTRIN(uint64, v_uint64, u64, prefix, load) \
+ CV_INTRIN_DEFINE_WIDE_LOAD_EXPAND(float16_t, v_float32, prefix)
+
+template struct V_RegTraits
+{
+};
+
+#define CV_DEF_REG_TRAITS(prefix, _reg, lane_type, suffix, _u_reg, _w_reg, _q_reg, _int_reg, _round_reg) \
+ template<> struct V_RegTraits<_reg> \
+ { \
+ typedef _reg reg; \
+ typedef _u_reg u_reg; \
+ typedef _w_reg w_reg; \
+ typedef _q_reg q_reg; \
+ typedef _int_reg int_reg; \
+ typedef _round_reg round_reg; \
+ }
+
+#if CV_SIMD128 || CV_SIMD128_CPP
+ CV_DEF_REG_TRAITS(v, v_uint8x16, uchar, u8, v_uint8x16, v_uint16x8, v_uint32x4, v_int8x16, void);
+ CV_DEF_REG_TRAITS(v, v_int8x16, schar, s8, v_uint8x16, v_int16x8, v_int32x4, v_int8x16, void);
+ CV_DEF_REG_TRAITS(v, v_uint16x8, ushort, u16, v_uint16x8, v_uint32x4, v_uint64x2, v_int16x8, void);
+ CV_DEF_REG_TRAITS(v, v_int16x8, short, s16, v_uint16x8, v_int32x4, v_int64x2, v_int16x8, void);
+ CV_DEF_REG_TRAITS(v, v_uint32x4, unsigned, u32, v_uint32x4, v_uint64x2, void, v_int32x4, void);
+ CV_DEF_REG_TRAITS(v, v_int32x4, int, s32, v_uint32x4, v_int64x2, void, v_int32x4, void);
+#if CV_SIMD128_64F
+ CV_DEF_REG_TRAITS(v, v_float32x4, float, f32, v_float32x4, v_float64x2, void, v_int32x4, v_int32x4);
+#else
+ CV_DEF_REG_TRAITS(v, v_float32x4, float, f32, v_float32x4, void, void, v_int32x4, v_int32x4);
+#endif
+ CV_DEF_REG_TRAITS(v, v_uint64x2, uint64, u64, v_uint64x2, void, void, v_int64x2, void);
+ CV_DEF_REG_TRAITS(v, v_int64x2, int64, s64, v_uint64x2, void, void, v_int64x2, void);
+#if CV_SIMD128_64F
+ CV_DEF_REG_TRAITS(v, v_float64x2, double, f64, v_float64x2, void, void, v_int64x2, v_int32x4);
+#endif
+#endif
+
+#if CV_SIMD256
+ CV_DEF_REG_TRAITS(v256, v_uint8x32, uchar, u8, v_uint8x32, v_uint16x16, v_uint32x8, v_int8x32, void);
+ CV_DEF_REG_TRAITS(v256, v_int8x32, schar, s8, v_uint8x32, v_int16x16, v_int32x8, v_int8x32, void);
+ CV_DEF_REG_TRAITS(v256, v_uint16x16, ushort, u16, v_uint16x16, v_uint32x8, v_uint64x4, v_int16x16, void);
+ CV_DEF_REG_TRAITS(v256, v_int16x16, short, s16, v_uint16x16, v_int32x8, v_int64x4, v_int16x16, void);
+ CV_DEF_REG_TRAITS(v256, v_uint32x8, unsigned, u32, v_uint32x8, v_uint64x4, void, v_int32x8, void);
+ CV_DEF_REG_TRAITS(v256, v_int32x8, int, s32, v_uint32x8, v_int64x4, void, v_int32x8, void);
+ CV_DEF_REG_TRAITS(v256, v_float32x8, float, f32, v_float32x8, v_float64x4, void, v_int32x8, v_int32x8);
+ CV_DEF_REG_TRAITS(v256, v_uint64x4, uint64, u64, v_uint64x4, void, void, v_int64x4, void);
+ CV_DEF_REG_TRAITS(v256, v_int64x4, int64, s64, v_uint64x4, void, void, v_int64x4, void);
+ CV_DEF_REG_TRAITS(v256, v_float64x4, double, f64, v_float64x4, void, void, v_int64x4, v_int32x8);
+#endif
+
+#if CV_SIMD512 && (!defined(CV__SIMD_FORCE_WIDTH) || CV__SIMD_FORCE_WIDTH == 512)
+#define CV__SIMD_NAMESPACE simd512
+namespace CV__SIMD_NAMESPACE {
+ #define CV_SIMD 1
+ #define CV_SIMD_64F CV_SIMD512_64F
+ #define CV_SIMD_WIDTH 64
+ // TODO typedef v_uint8 / v_int32 / etc types here
+} // namespace
+using namespace CV__SIMD_NAMESPACE;
+#elif CV_SIMD256 && (!defined(CV__SIMD_FORCE_WIDTH) || CV__SIMD_FORCE_WIDTH == 256)
+#define CV__SIMD_NAMESPACE simd256
+namespace CV__SIMD_NAMESPACE {
+ #define CV_SIMD 1
+ #define CV_SIMD_64F CV_SIMD256_64F
+ #define CV_SIMD_FP16 CV_SIMD256_FP16
+ #define CV_SIMD_WIDTH 32
+ typedef v_uint8x32 v_uint8;
+ typedef v_int8x32 v_int8;
+ typedef v_uint16x16 v_uint16;
+ typedef v_int16x16 v_int16;
+ typedef v_uint32x8 v_uint32;
+ typedef v_int32x8 v_int32;
+ typedef v_uint64x4 v_uint64;
+ typedef v_int64x4 v_int64;
+ typedef v_float32x8 v_float32;
+ #if CV_SIMD256_64F
+ typedef v_float64x4 v_float64;
+ #endif
+ CV_INTRIN_DEFINE_WIDE_INTRIN_ALL_TYPES(v256)
+ CV_INTRIN_DEFINE_WIDE_INTRIN(double, v_float64, f64, v256, load)
+ inline void vx_cleanup() { v256_cleanup(); }
+} // namespace
+using namespace CV__SIMD_NAMESPACE;
+#elif (CV_SIMD128 || CV_SIMD128_CPP) && (!defined(CV__SIMD_FORCE_WIDTH) || CV__SIMD_FORCE_WIDTH == 128)
+#define CV__SIMD_NAMESPACE simd128
+namespace CV__SIMD_NAMESPACE {
+ #define CV_SIMD CV_SIMD128
+ #define CV_SIMD_64F CV_SIMD128_64F
+ #define CV_SIMD_WIDTH 16
+ typedef v_uint8x16 v_uint8;
+ typedef v_int8x16 v_int8;
+ typedef v_uint16x8 v_uint16;
+ typedef v_int16x8 v_int16;
+ typedef v_uint32x4 v_uint32;
+ typedef v_int32x4 v_int32;
+ typedef v_uint64x2 v_uint64;
+ typedef v_int64x2 v_int64;
+ typedef v_float32x4 v_float32;
+ #if CV_SIMD128_64F
+ typedef v_float64x2 v_float64;
+ #endif
+ CV_INTRIN_DEFINE_WIDE_INTRIN_ALL_TYPES(v)
+ #if CV_SIMD128_64F
+ CV_INTRIN_DEFINE_WIDE_INTRIN(double, v_float64, f64, v, load)
+ #endif
+ inline void vx_cleanup() { v_cleanup(); }
+} // namespace
+using namespace CV__SIMD_NAMESPACE;
+#endif
+
+inline unsigned int trailingZeros32(unsigned int value) {
+#if defined(_MSC_VER)
+#if (_MSC_VER < 1700) || defined(_M_ARM)
+ unsigned long index = 0;
+ _BitScanForward(&index, value);
+ return (unsigned int)index;
+#elif defined(__clang__)
+ // clang-cl doesn't export _tzcnt_u32 for non BMI systems
+ return value ? __builtin_ctz(value) : 32;
+#else
+ return _tzcnt_u32(value);
+#endif
+#elif defined(__GNUC__) || defined(__GNUG__)
+ return __builtin_ctz(value);
+#elif defined(__ICC) || defined(__INTEL_COMPILER)
+ return _bit_scan_forward(value);
+#elif defined(__clang__)
+ return llvm.cttz.i32(value, true);
+#else
+ static const int MultiplyDeBruijnBitPosition[32] = {
+ 0, 1, 28, 2, 29, 14, 24, 3, 30, 22, 20, 15, 25, 17, 4, 8,
+ 31, 27, 13, 23, 21, 19, 16, 7, 26, 12, 18, 6, 11, 5, 10, 9 };
+ return MultiplyDeBruijnBitPosition[((uint32_t)((value & -value) * 0x077CB531U)) >> 27];
+#endif
+}
+
+#ifndef CV_DOXYGEN
+CV_CPU_OPTIMIZATION_HAL_NAMESPACE_END
+#endif
+
+#ifndef CV_SIMD_64F
+#define CV_SIMD_64F 0
+#endif
+
+#ifndef CV_SIMD_FP16
+#define CV_SIMD_FP16 0 //!< Defined to 1 on native support of operations with float16x8_t / float16x16_t (SIMD256) types
+#endif
+
+
+#ifndef CV_SIMD
+#define CV_SIMD 0
+#endif
+
+} // cv::
+
+//! @endcond
+
+#endif
diff --git a/include/opencv2/core/hal/intrin_avx.hpp b/include/opencv2/core/hal/intrin_avx.hpp
new file mode 100644
index 0000000..c3797d6
--- /dev/null
+++ b/include/opencv2/core/hal/intrin_avx.hpp
@@ -0,0 +1,2628 @@
+// This file is part of OpenCV project.
+// It is subject to the license terms in the LICENSE file found in the top-level directory
+// of this distribution and at http://opencv.org/license.html
+
+#ifndef OPENCV_HAL_INTRIN_AVX_HPP
+#define OPENCV_HAL_INTRIN_AVX_HPP
+
+#define CV_SIMD256 1
+#define CV_SIMD256_64F 1
+#define CV_SIMD256_FP16 0 // no native operations with FP16 type. Only load/store from float32x8 are available (if CV_FP16 == 1)
+
+namespace cv
+{
+
+//! @cond IGNORED
+
+CV_CPU_OPTIMIZATION_HAL_NAMESPACE_BEGIN
+
+///////// Utils ////////////
+
+inline __m256i _v256_combine(const __m128i& lo, const __m128i& hi)
+{ return _mm256_inserti128_si256(_mm256_castsi128_si256(lo), hi, 1); }
+
+inline __m256 _v256_combine(const __m128& lo, const __m128& hi)
+{ return _mm256_insertf128_ps(_mm256_castps128_ps256(lo), hi, 1); }
+
+inline __m256d _v256_combine(const __m128d& lo, const __m128d& hi)
+{ return _mm256_insertf128_pd(_mm256_castpd128_pd256(lo), hi, 1); }
+
+inline int _v_cvtsi256_si32(const __m256i& a)
+{ return _mm_cvtsi128_si32(_mm256_castsi256_si128(a)); }
+
+inline __m256i _v256_shuffle_odd_64(const __m256i& v)
+{ return _mm256_permute4x64_epi64(v, _MM_SHUFFLE(3, 1, 2, 0)); }
+
+inline __m256d _v256_shuffle_odd_64(const __m256d& v)
+{ return _mm256_permute4x64_pd(v, _MM_SHUFFLE(3, 1, 2, 0)); }
+
+template
+inline __m256i _v256_permute2x128(const __m256i& a, const __m256i& b)
+{ return _mm256_permute2x128_si256(a, b, imm); }
+
+template
+inline __m256 _v256_permute2x128(const __m256& a, const __m256& b)
+{ return _mm256_permute2f128_ps(a, b, imm); }
+
+template
+inline __m256d _v256_permute2x128(const __m256d& a, const __m256d& b)
+{ return _mm256_permute2f128_pd(a, b, imm); }
+
+template
+inline _Tpvec v256_permute2x128(const _Tpvec& a, const _Tpvec& b)
+{ return _Tpvec(_v256_permute2x128(a.val, b.val)); }
+
+template
+inline __m256i _v256_permute4x64(const __m256i& a)
+{ return _mm256_permute4x64_epi64(a, imm); }
+
+template
+inline __m256d _v256_permute4x64(const __m256d& a)
+{ return _mm256_permute4x64_pd(a, imm); }
+
+template