├── 3rdparty
└── include
│ ├── glm
│ ├── ALL_BUILD.vcxproj
│ ├── ALL_BUILD.vcxproj.filters
│ ├── CMakeCache.txt
│ ├── CMakeFiles
│ │ ├── 3.1.2
│ │ │ ├── CMakeCCompiler.cmake
│ │ │ ├── CMakeCXXCompiler.cmake
│ │ │ ├── CMakeDetermineCompilerABI_C.bin
│ │ │ ├── CMakeDetermineCompilerABI_CXX.bin
│ │ │ ├── CMakeRCCompiler.cmake
│ │ │ ├── CMakeSystem.cmake
│ │ │ ├── CompilerIdC
│ │ │ │ ├── CMakeCCompilerId.c
│ │ │ │ ├── CompilerIdC.exe
│ │ │ │ ├── CompilerIdC.vcxproj
│ │ │ │ └── Debug
│ │ │ │ │ ├── CL.read.1.tlog
│ │ │ │ │ ├── CL.write.1.tlog
│ │ │ │ │ ├── CMakeCCompilerId.obj
│ │ │ │ │ ├── CompilerIdC.lastbuildstate
│ │ │ │ │ ├── cl.command.1.tlog
│ │ │ │ │ ├── link-cvtres.read.1.tlog
│ │ │ │ │ ├── link-cvtres.write.1.tlog
│ │ │ │ │ ├── link-rc.read.1.tlog
│ │ │ │ │ ├── link-rc.write.1.tlog
│ │ │ │ │ ├── link.command.1.tlog
│ │ │ │ │ ├── link.read.1.tlog
│ │ │ │ │ └── link.write.1.tlog
│ │ │ └── CompilerIdCXX
│ │ │ │ ├── CMakeCXXCompilerId.cpp
│ │ │ │ ├── CompilerIdCXX.exe
│ │ │ │ ├── CompilerIdCXX.vcxproj
│ │ │ │ └── Debug
│ │ │ │ ├── CL.read.1.tlog
│ │ │ │ ├── CL.write.1.tlog
│ │ │ │ ├── CMakeCXXCompilerId.obj
│ │ │ │ ├── CompilerIdCXX.lastbuildstate
│ │ │ │ ├── cl.command.1.tlog
│ │ │ │ ├── link-cvtres.read.1.tlog
│ │ │ │ ├── link-cvtres.write.1.tlog
│ │ │ │ ├── link-rc.read.1.tlog
│ │ │ │ ├── link-rc.write.1.tlog
│ │ │ │ ├── link.command.1.tlog
│ │ │ │ ├── link.read.1.tlog
│ │ │ │ └── link.write.1.tlog
│ │ ├── 7edc17862f73a68e82552dd5a94708e2
│ │ │ └── generate.stamp.rule
│ │ ├── CMakeOutput.log
│ │ ├── TargetDirectories.txt
│ │ ├── cmake.check_cache
│ │ ├── generate.stamp
│ │ ├── generate.stamp.depend
│ │ └── generate.stamp.list
│ ├── CMakeLists.txt
│ ├── Project.sln
│ ├── ZERO_CHECK.vcxproj
│ ├── ZERO_CHECK.vcxproj.filters
│ ├── cmake_install.cmake
│ ├── common.hpp
│ ├── detail
│ │ ├── _features.hpp
│ │ ├── _fixes.hpp
│ │ ├── _noise.hpp
│ │ ├── _swizzle.hpp
│ │ ├── _swizzle_func.hpp
│ │ ├── _vectorize.hpp
│ │ ├── dummy.cpp
│ │ ├── func_common.hpp
│ │ ├── func_common.inl
│ │ ├── func_exponential.hpp
│ │ ├── func_exponential.inl
│ │ ├── func_geometric.hpp
│ │ ├── func_geometric.inl
│ │ ├── func_integer.hpp
│ │ ├── func_integer.inl
│ │ ├── func_matrix.hpp
│ │ ├── func_matrix.inl
│ │ ├── func_noise.hpp
│ │ ├── func_noise.inl
│ │ ├── func_packing.hpp
│ │ ├── func_packing.inl
│ │ ├── func_trigonometric.hpp
│ │ ├── func_trigonometric.inl
│ │ ├── func_vector_relational.hpp
│ │ ├── func_vector_relational.inl
│ │ ├── glm.cpp
│ │ ├── intrinsic_common.hpp
│ │ ├── intrinsic_common.inl
│ │ ├── intrinsic_exponential.hpp
│ │ ├── intrinsic_exponential.inl
│ │ ├── intrinsic_geometric.hpp
│ │ ├── intrinsic_geometric.inl
│ │ ├── intrinsic_integer.hpp
│ │ ├── intrinsic_integer.inl
│ │ ├── intrinsic_matrix.hpp
│ │ ├── intrinsic_matrix.inl
│ │ ├── intrinsic_trigonometric.hpp
│ │ ├── intrinsic_trigonometric.inl
│ │ ├── intrinsic_vector_relational.hpp
│ │ ├── intrinsic_vector_relational.inl
│ │ ├── precision.hpp
│ │ ├── setup.hpp
│ │ ├── type_float.hpp
│ │ ├── type_gentype.hpp
│ │ ├── type_gentype.inl
│ │ ├── type_half.hpp
│ │ ├── type_half.inl
│ │ ├── type_int.hpp
│ │ ├── type_mat.hpp
│ │ ├── type_mat.inl
│ │ ├── type_mat2x2.hpp
│ │ ├── type_mat2x2.inl
│ │ ├── type_mat2x3.hpp
│ │ ├── type_mat2x3.inl
│ │ ├── type_mat2x4.hpp
│ │ ├── type_mat2x4.inl
│ │ ├── type_mat3x2.hpp
│ │ ├── type_mat3x2.inl
│ │ ├── type_mat3x3.hpp
│ │ ├── type_mat3x3.inl
│ │ ├── type_mat3x4.hpp
│ │ ├── type_mat3x4.inl
│ │ ├── type_mat4x2.hpp
│ │ ├── type_mat4x2.inl
│ │ ├── type_mat4x3.hpp
│ │ ├── type_mat4x3.inl
│ │ ├── type_mat4x4.hpp
│ │ ├── type_mat4x4.inl
│ │ ├── type_vec.hpp
│ │ ├── type_vec.inl
│ │ ├── type_vec1.hpp
│ │ ├── type_vec1.inl
│ │ ├── type_vec2.hpp
│ │ ├── type_vec2.inl
│ │ ├── type_vec3.hpp
│ │ ├── type_vec3.inl
│ │ ├── type_vec4.hpp
│ │ ├── type_vec4.inl
│ │ ├── type_vec4_avx.inl
│ │ ├── type_vec4_avx2.inl
│ │ └── type_vec4_sse2.inl
│ ├── exponential.hpp
│ ├── ext.hpp
│ ├── fwd.hpp
│ ├── geometric.hpp
│ ├── glm.hpp
│ ├── gtc
│ │ ├── bitfield.hpp
│ │ ├── bitfield.inl
│ │ ├── constants.hpp
│ │ ├── constants.inl
│ │ ├── epsilon.hpp
│ │ ├── epsilon.inl
│ │ ├── integer.hpp
│ │ ├── integer.inl
│ │ ├── matrix_access.hpp
│ │ ├── matrix_access.inl
│ │ ├── matrix_integer.hpp
│ │ ├── matrix_inverse.hpp
│ │ ├── matrix_inverse.inl
│ │ ├── matrix_transform.hpp
│ │ ├── matrix_transform.inl
│ │ ├── noise.hpp
│ │ ├── noise.inl
│ │ ├── packing.hpp
│ │ ├── packing.inl
│ │ ├── quaternion.hpp
│ │ ├── quaternion.inl
│ │ ├── random.hpp
│ │ ├── random.inl
│ │ ├── reciprocal.hpp
│ │ ├── reciprocal.inl
│ │ ├── round.hpp
│ │ ├── round.inl
│ │ ├── type_precision.hpp
│ │ ├── type_precision.inl
│ │ ├── type_ptr.hpp
│ │ ├── type_ptr.inl
│ │ ├── ulp.hpp
│ │ ├── ulp.inl
│ │ ├── vec1.hpp
│ │ └── vec1.inl
│ ├── gtx
│ │ ├── associated_min_max.hpp
│ │ ├── associated_min_max.inl
│ │ ├── bit.hpp
│ │ ├── bit.inl
│ │ ├── closest_point.hpp
│ │ ├── closest_point.inl
│ │ ├── color_space.hpp
│ │ ├── color_space.inl
│ │ ├── color_space_YCoCg.hpp
│ │ ├── color_space_YCoCg.inl
│ │ ├── common.hpp
│ │ ├── common.inl
│ │ ├── compatibility.hpp
│ │ ├── compatibility.inl
│ │ ├── component_wise.hpp
│ │ ├── component_wise.inl
│ │ ├── dual_quaternion.hpp
│ │ ├── dual_quaternion.inl
│ │ ├── euler_angles.hpp
│ │ ├── euler_angles.inl
│ │ ├── extend.hpp
│ │ ├── extend.inl
│ │ ├── extented_min_max.hpp
│ │ ├── extented_min_max.inl
│ │ ├── fast_exponential.hpp
│ │ ├── fast_exponential.inl
│ │ ├── fast_square_root.hpp
│ │ ├── fast_square_root.inl
│ │ ├── fast_trigonometry.hpp
│ │ ├── fast_trigonometry.inl
│ │ ├── gradient_paint.hpp
│ │ ├── gradient_paint.inl
│ │ ├── handed_coordinate_space.hpp
│ │ ├── handed_coordinate_space.inl
│ │ ├── integer.hpp
│ │ ├── integer.inl
│ │ ├── intersect.hpp
│ │ ├── intersect.inl
│ │ ├── io.hpp
│ │ ├── io.inl
│ │ ├── log_base.hpp
│ │ ├── log_base.inl
│ │ ├── matrix_cross_product.hpp
│ │ ├── matrix_cross_product.inl
│ │ ├── matrix_decompose.hpp
│ │ ├── matrix_decompose.inl
│ │ ├── matrix_interpolation.hpp
│ │ ├── matrix_interpolation.inl
│ │ ├── matrix_major_storage.hpp
│ │ ├── matrix_major_storage.inl
│ │ ├── matrix_operation.hpp
│ │ ├── matrix_operation.inl
│ │ ├── matrix_query.hpp
│ │ ├── matrix_query.inl
│ │ ├── matrix_transform_2d.hpp
│ │ ├── matrix_transform_2d.inl
│ │ ├── mixed_product.hpp
│ │ ├── mixed_product.inl
│ │ ├── multiple.hpp
│ │ ├── multiple.inl
│ │ ├── norm.hpp
│ │ ├── norm.inl
│ │ ├── normal.hpp
│ │ ├── normal.inl
│ │ ├── normalize_dot.hpp
│ │ ├── normalize_dot.inl
│ │ ├── number_precision.hpp
│ │ ├── number_precision.inl
│ │ ├── optimum_pow.hpp
│ │ ├── optimum_pow.inl
│ │ ├── orthonormalize.hpp
│ │ ├── orthonormalize.inl
│ │ ├── perpendicular.hpp
│ │ ├── perpendicular.inl
│ │ ├── polar_coordinates.hpp
│ │ ├── polar_coordinates.inl
│ │ ├── projection.hpp
│ │ ├── projection.inl
│ │ ├── quaternion.hpp
│ │ ├── quaternion.inl
│ │ ├── range.hpp
│ │ ├── raw_data.hpp
│ │ ├── raw_data.inl
│ │ ├── rotate_normalized_axis.hpp
│ │ ├── rotate_normalized_axis.inl
│ │ ├── rotate_vector.hpp
│ │ ├── rotate_vector.inl
│ │ ├── scalar_multiplication.hpp
│ │ ├── scalar_relational.hpp
│ │ ├── scalar_relational.inl
│ │ ├── simd_mat4.hpp
│ │ ├── simd_mat4.inl
│ │ ├── simd_quat.hpp
│ │ ├── simd_quat.inl
│ │ ├── simd_vec4.hpp
│ │ ├── simd_vec4.inl
│ │ ├── spline.hpp
│ │ ├── spline.inl
│ │ ├── std_based_type.hpp
│ │ ├── std_based_type.inl
│ │ ├── string_cast.hpp
│ │ ├── string_cast.inl
│ │ ├── transform.hpp
│ │ ├── transform.inl
│ │ ├── transform2.hpp
│ │ ├── transform2.inl
│ │ ├── type_aligned.hpp
│ │ ├── type_aligned.inl
│ │ ├── vector_angle.hpp
│ │ ├── vector_angle.inl
│ │ ├── vector_query.hpp
│ │ ├── vector_query.inl
│ │ ├── wrap.hpp
│ │ └── wrap.inl
│ ├── integer.hpp
│ ├── mat2x2.hpp
│ ├── mat2x3.hpp
│ ├── mat2x4.hpp
│ ├── mat3x2.hpp
│ ├── mat3x3.hpp
│ ├── mat3x4.hpp
│ ├── mat4x2.hpp
│ ├── mat4x3.hpp
│ ├── mat4x4.hpp
│ ├── matrix.hpp
│ ├── packing.hpp
│ ├── trigonometric.hpp
│ ├── vec2.hpp
│ ├── vec3.hpp
│ ├── vec4.hpp
│ └── vector_relational.hpp
│ ├── stb.h
│ ├── stb_c_lexer.h
│ ├── stb_divide.h
│ ├── stb_dxt.h
│ ├── stb_easy_font.h
│ ├── stb_herringbone_wang_tile.h
│ ├── stb_image.h
│ ├── stb_image_resize.h
│ ├── stb_image_write.h
│ ├── stb_leakcheck.h
│ ├── stb_perlin.h
│ ├── stb_rect_pack.h
│ ├── stb_textedit.h
│ ├── stb_tilemap_editor.h
│ ├── stb_truetype.h
│ ├── stb_vorbis.c
│ ├── stb_voxel_render.h
│ └── tiny_obj_loader.h
├── LICENSE
├── README.md
├── release
└── Data
│ ├── Scenes
│ ├── scene.mtl
│ └── scene.obj
│ ├── Shaders
│ ├── GI
│ │ ├── buffers.fsh
│ │ ├── buffers.gsh
│ │ ├── buffers.vsh
│ │ ├── copy.csh
│ │ ├── radiosity.csh
│ │ └── timelerp.csh
│ ├── Utils
│ │ ├── basic.fsh
│ │ ├── basic.vsh
│ │ ├── dbg.fsh
│ │ └── dbg.vsh
│ ├── basic.fsh
│ ├── basic.vsh
│ ├── depth.fsh
│ ├── depth.vsh
│ ├── postFX.fsh
│ ├── postFX.vsh
│ ├── sky.fsh
│ └── sky.vsh
│ └── Textures
│ └── albedo.jpg
└── src
├── Engine
├── camera.cpp
├── camera.h
├── fast2dquad.cpp
├── fast2dquad.h
├── light.cpp
├── light.h
├── object.cpp
├── object.h
├── scenemanager.cpp
├── scenemanager.h
├── texture.cpp
└── texture.h
├── GI
├── radiosity.cpp
├── radiosity.h
├── uvmapper.cpp
└── uvmapper.h
├── PBGI.pro
├── Utils
├── abstractshader.cpp
├── abstractshader.h
├── clock.cpp
├── clock.h
├── computeshader.cpp
├── computeshader.h
├── fbo.cpp
├── fbo.h
├── fragmentshader.cpp
├── fragmentshader.h
├── geometryshader.cpp
├── geometryshader.h
├── loadfile.cpp
├── loadfile.h
├── shaderprogram.cpp
├── shaderprogram.h
├── utils.h
├── vertexshader.cpp
└── vertexshader.h
├── demo.cpp
├── demo.h
├── deployment.pri
└── main.cpp
/3rdparty/include/glm/ALL_BUILD.vcxproj.filters:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/3rdparty/include/glm/CMakeFiles/3.1.2/CMakeCCompiler.cmake:
--------------------------------------------------------------------------------
1 | set(CMAKE_C_COMPILER "C:/Program Files (x86)/Microsoft Visual Studio 11.0/VC/bin/cl.exe")
2 | set(CMAKE_C_COMPILER_ARG1 "")
3 | set(CMAKE_C_COMPILER_ID "MSVC")
4 | set(CMAKE_C_COMPILER_VERSION "17.0.50727.1")
5 | set(CMAKE_C_COMPILE_FEATURES "")
6 | set(CMAKE_C90_COMPILE_FEATURES "")
7 | set(CMAKE_C99_COMPILE_FEATURES "")
8 | set(CMAKE_C11_COMPILE_FEATURES "")
9 |
10 | set(CMAKE_C_PLATFORM_ID "Windows")
11 | set(CMAKE_C_SIMULATE_ID "")
12 | set(CMAKE_C_SIMULATE_VERSION "")
13 | set(MSVC_C_ARCHITECTURE_ID X86)
14 | set(CMAKE_AR "")
15 | set(CMAKE_RANLIB "")
16 | set(CMAKE_LINKER "C:/Program Files (x86)/Microsoft Visual Studio 11.0/VC/bin/link.exe")
17 | set(CMAKE_COMPILER_IS_GNUCC )
18 | set(CMAKE_C_COMPILER_LOADED 1)
19 | set(CMAKE_C_COMPILER_WORKS TRUE)
20 | set(CMAKE_C_ABI_COMPILED TRUE)
21 | set(CMAKE_COMPILER_IS_MINGW )
22 | set(CMAKE_COMPILER_IS_CYGWIN )
23 | if(CMAKE_COMPILER_IS_CYGWIN)
24 | set(CYGWIN 1)
25 | set(UNIX 1)
26 | endif()
27 |
28 | set(CMAKE_C_COMPILER_ENV_VAR "CC")
29 |
30 | if(CMAKE_COMPILER_IS_MINGW)
31 | set(MINGW 1)
32 | endif()
33 | set(CMAKE_C_COMPILER_ID_RUN 1)
34 | set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m)
35 | set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC)
36 | set(CMAKE_C_LINKER_PREFERENCE 10)
37 |
38 | # Save compiler ABI information.
39 | set(CMAKE_C_SIZEOF_DATA_PTR "4")
40 | set(CMAKE_C_COMPILER_ABI "")
41 | set(CMAKE_C_LIBRARY_ARCHITECTURE "")
42 |
43 | if(CMAKE_C_SIZEOF_DATA_PTR)
44 | set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}")
45 | endif()
46 |
47 | if(CMAKE_C_COMPILER_ABI)
48 | set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}")
49 | endif()
50 |
51 | if(CMAKE_C_LIBRARY_ARCHITECTURE)
52 | set(CMAKE_LIBRARY_ARCHITECTURE "")
53 | endif()
54 |
55 |
56 |
57 |
58 | set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "")
59 | set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "")
60 | set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "")
61 |
62 |
63 |
64 |
--------------------------------------------------------------------------------
/3rdparty/include/glm/CMakeFiles/3.1.2/CMakeCXXCompiler.cmake:
--------------------------------------------------------------------------------
1 | set(CMAKE_CXX_COMPILER "C:/Program Files (x86)/Microsoft Visual Studio 11.0/VC/bin/cl.exe")
2 | set(CMAKE_CXX_COMPILER_ARG1 "")
3 | set(CMAKE_CXX_COMPILER_ID "MSVC")
4 | set(CMAKE_CXX_COMPILER_VERSION "17.0.50727.1")
5 | set(CMAKE_CXX_COMPILE_FEATURES "")
6 | set(CMAKE_CXX98_COMPILE_FEATURES "")
7 | set(CMAKE_CXX11_COMPILE_FEATURES "")
8 | set(CMAKE_CXX14_COMPILE_FEATURES "")
9 |
10 | set(CMAKE_CXX_PLATFORM_ID "Windows")
11 | set(CMAKE_CXX_SIMULATE_ID "")
12 | set(CMAKE_CXX_SIMULATE_VERSION "")
13 | set(MSVC_CXX_ARCHITECTURE_ID X86)
14 | set(CMAKE_AR "")
15 | set(CMAKE_RANLIB "")
16 | set(CMAKE_LINKER "C:/Program Files (x86)/Microsoft Visual Studio 11.0/VC/bin/link.exe")
17 | set(CMAKE_COMPILER_IS_GNUCXX )
18 | set(CMAKE_CXX_COMPILER_LOADED 1)
19 | set(CMAKE_CXX_COMPILER_WORKS TRUE)
20 | set(CMAKE_CXX_ABI_COMPILED TRUE)
21 | set(CMAKE_COMPILER_IS_MINGW )
22 | set(CMAKE_COMPILER_IS_CYGWIN )
23 | if(CMAKE_COMPILER_IS_CYGWIN)
24 | set(CYGWIN 1)
25 | set(UNIX 1)
26 | endif()
27 |
28 | set(CMAKE_CXX_COMPILER_ENV_VAR "CXX")
29 |
30 | if(CMAKE_COMPILER_IS_MINGW)
31 | set(MINGW 1)
32 | endif()
33 | set(CMAKE_CXX_COMPILER_ID_RUN 1)
34 | set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC)
35 | set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;mm;CPP)
36 | set(CMAKE_CXX_LINKER_PREFERENCE 30)
37 | set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1)
38 |
39 | # Save compiler ABI information.
40 | set(CMAKE_CXX_SIZEOF_DATA_PTR "4")
41 | set(CMAKE_CXX_COMPILER_ABI "")
42 | set(CMAKE_CXX_LIBRARY_ARCHITECTURE "")
43 |
44 | if(CMAKE_CXX_SIZEOF_DATA_PTR)
45 | set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}")
46 | endif()
47 |
48 | if(CMAKE_CXX_COMPILER_ABI)
49 | set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}")
50 | endif()
51 |
52 | if(CMAKE_CXX_LIBRARY_ARCHITECTURE)
53 | set(CMAKE_LIBRARY_ARCHITECTURE "")
54 | endif()
55 |
56 |
57 |
58 |
59 | set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "")
60 | set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "")
61 | set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "")
62 |
63 |
64 |
65 |
--------------------------------------------------------------------------------
/3rdparty/include/glm/CMakeFiles/3.1.2/CMakeDetermineCompilerABI_C.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/XT95/PBGI/ebcfe6e95b7e23c25233441db64a22a5605522eb/3rdparty/include/glm/CMakeFiles/3.1.2/CMakeDetermineCompilerABI_C.bin
--------------------------------------------------------------------------------
/3rdparty/include/glm/CMakeFiles/3.1.2/CMakeDetermineCompilerABI_CXX.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/XT95/PBGI/ebcfe6e95b7e23c25233441db64a22a5605522eb/3rdparty/include/glm/CMakeFiles/3.1.2/CMakeDetermineCompilerABI_CXX.bin
--------------------------------------------------------------------------------
/3rdparty/include/glm/CMakeFiles/3.1.2/CMakeRCCompiler.cmake:
--------------------------------------------------------------------------------
1 | set(CMAKE_RC_COMPILER "rc")
2 | set(CMAKE_RC_COMPILER_ARG1 "")
3 | set(CMAKE_RC_COMPILER_LOADED 1)
4 | set(CMAKE_RC_SOURCE_FILE_EXTENSIONS rc;RC)
5 | set(CMAKE_RC_OUTPUT_EXTENSION .res)
6 | set(CMAKE_RC_COMPILER_ENV_VAR "RC")
7 |
--------------------------------------------------------------------------------
/3rdparty/include/glm/CMakeFiles/3.1.2/CMakeSystem.cmake:
--------------------------------------------------------------------------------
1 | set(CMAKE_HOST_SYSTEM "Windows-6.2")
2 | set(CMAKE_HOST_SYSTEM_NAME "Windows")
3 | set(CMAKE_HOST_SYSTEM_VERSION "6.2")
4 | set(CMAKE_HOST_SYSTEM_PROCESSOR "AMD64")
5 |
6 |
7 |
8 | set(CMAKE_SYSTEM "Windows-6.2")
9 | set(CMAKE_SYSTEM_NAME "Windows")
10 | set(CMAKE_SYSTEM_VERSION "6.2")
11 | set(CMAKE_SYSTEM_PROCESSOR "AMD64")
12 |
13 | set(CMAKE_CROSSCOMPILING "FALSE")
14 |
15 | set(CMAKE_SYSTEM_LOADED 1)
16 |
--------------------------------------------------------------------------------
/3rdparty/include/glm/CMakeFiles/3.1.2/CompilerIdC/CompilerIdC.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/XT95/PBGI/ebcfe6e95b7e23c25233441db64a22a5605522eb/3rdparty/include/glm/CMakeFiles/3.1.2/CompilerIdC/CompilerIdC.exe
--------------------------------------------------------------------------------
/3rdparty/include/glm/CMakeFiles/3.1.2/CompilerIdC/CompilerIdC.vcxproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | Win32
7 |
8 |
9 |
10 | {CAE07175-D007-4FC3-BFE8-47B392814159}
11 | CompilerIdC
12 | Win32Proj
13 |
14 |
15 |
16 |
17 |
18 |
19 | Application
20 | v110
21 | MultiByte
22 |
23 |
24 |
25 | <_ProjectFileVersion>10.0.30319.1
26 | .\
27 | $(Configuration)\
28 | false
29 |
30 |
31 |
32 | Disabled
33 | %(PreprocessorDefinitions)
34 | false
35 | EnableFastChecks
36 | MultiThreadedDebugDLL
37 |
38 |
39 | TurnOffAllWarnings
40 |
41 |
42 |
43 |
44 | false
45 | Console
46 |
47 |
48 | for %%i in (cl.exe) do %40echo CMAKE_C_COMPILER=%%~$PATH:i
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
--------------------------------------------------------------------------------
/3rdparty/include/glm/CMakeFiles/3.1.2/CompilerIdC/Debug/CL.read.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/XT95/PBGI/ebcfe6e95b7e23c25233441db64a22a5605522eb/3rdparty/include/glm/CMakeFiles/3.1.2/CompilerIdC/Debug/CL.read.1.tlog
--------------------------------------------------------------------------------
/3rdparty/include/glm/CMakeFiles/3.1.2/CompilerIdC/Debug/CL.write.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/XT95/PBGI/ebcfe6e95b7e23c25233441db64a22a5605522eb/3rdparty/include/glm/CMakeFiles/3.1.2/CompilerIdC/Debug/CL.write.1.tlog
--------------------------------------------------------------------------------
/3rdparty/include/glm/CMakeFiles/3.1.2/CompilerIdC/Debug/CMakeCCompilerId.obj:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/XT95/PBGI/ebcfe6e95b7e23c25233441db64a22a5605522eb/3rdparty/include/glm/CMakeFiles/3.1.2/CompilerIdC/Debug/CMakeCCompilerId.obj
--------------------------------------------------------------------------------
/3rdparty/include/glm/CMakeFiles/3.1.2/CompilerIdC/Debug/CompilerIdC.lastbuildstate:
--------------------------------------------------------------------------------
1 | #v4.0:v110:false
2 | Debug|Win32|C:\Coding\Librarys\include\glm\CMakeFiles\3.1.2\CompilerIdC\|
3 |
--------------------------------------------------------------------------------
/3rdparty/include/glm/CMakeFiles/3.1.2/CompilerIdC/Debug/cl.command.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/XT95/PBGI/ebcfe6e95b7e23c25233441db64a22a5605522eb/3rdparty/include/glm/CMakeFiles/3.1.2/CompilerIdC/Debug/cl.command.1.tlog
--------------------------------------------------------------------------------
/3rdparty/include/glm/CMakeFiles/3.1.2/CompilerIdC/Debug/link-cvtres.read.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/XT95/PBGI/ebcfe6e95b7e23c25233441db64a22a5605522eb/3rdparty/include/glm/CMakeFiles/3.1.2/CompilerIdC/Debug/link-cvtres.read.1.tlog
--------------------------------------------------------------------------------
/3rdparty/include/glm/CMakeFiles/3.1.2/CompilerIdC/Debug/link-cvtres.write.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/XT95/PBGI/ebcfe6e95b7e23c25233441db64a22a5605522eb/3rdparty/include/glm/CMakeFiles/3.1.2/CompilerIdC/Debug/link-cvtres.write.1.tlog
--------------------------------------------------------------------------------
/3rdparty/include/glm/CMakeFiles/3.1.2/CompilerIdC/Debug/link-rc.read.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/XT95/PBGI/ebcfe6e95b7e23c25233441db64a22a5605522eb/3rdparty/include/glm/CMakeFiles/3.1.2/CompilerIdC/Debug/link-rc.read.1.tlog
--------------------------------------------------------------------------------
/3rdparty/include/glm/CMakeFiles/3.1.2/CompilerIdC/Debug/link-rc.write.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/XT95/PBGI/ebcfe6e95b7e23c25233441db64a22a5605522eb/3rdparty/include/glm/CMakeFiles/3.1.2/CompilerIdC/Debug/link-rc.write.1.tlog
--------------------------------------------------------------------------------
/3rdparty/include/glm/CMakeFiles/3.1.2/CompilerIdC/Debug/link.command.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/XT95/PBGI/ebcfe6e95b7e23c25233441db64a22a5605522eb/3rdparty/include/glm/CMakeFiles/3.1.2/CompilerIdC/Debug/link.command.1.tlog
--------------------------------------------------------------------------------
/3rdparty/include/glm/CMakeFiles/3.1.2/CompilerIdC/Debug/link.read.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/XT95/PBGI/ebcfe6e95b7e23c25233441db64a22a5605522eb/3rdparty/include/glm/CMakeFiles/3.1.2/CompilerIdC/Debug/link.read.1.tlog
--------------------------------------------------------------------------------
/3rdparty/include/glm/CMakeFiles/3.1.2/CompilerIdC/Debug/link.write.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/XT95/PBGI/ebcfe6e95b7e23c25233441db64a22a5605522eb/3rdparty/include/glm/CMakeFiles/3.1.2/CompilerIdC/Debug/link.write.1.tlog
--------------------------------------------------------------------------------
/3rdparty/include/glm/CMakeFiles/3.1.2/CompilerIdCXX/CompilerIdCXX.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/XT95/PBGI/ebcfe6e95b7e23c25233441db64a22a5605522eb/3rdparty/include/glm/CMakeFiles/3.1.2/CompilerIdCXX/CompilerIdCXX.exe
--------------------------------------------------------------------------------
/3rdparty/include/glm/CMakeFiles/3.1.2/CompilerIdCXX/CompilerIdCXX.vcxproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | Win32
7 |
8 |
9 |
10 | {CAE07175-D007-4FC3-BFE8-47B392814159}
11 | CompilerIdCXX
12 | Win32Proj
13 |
14 |
15 |
16 |
17 |
18 |
19 | Application
20 | v110
21 | MultiByte
22 |
23 |
24 |
25 | <_ProjectFileVersion>10.0.30319.1
26 | .\
27 | $(Configuration)\
28 | false
29 |
30 |
31 |
32 | Disabled
33 | %(PreprocessorDefinitions)
34 | false
35 | EnableFastChecks
36 | MultiThreadedDebugDLL
37 |
38 |
39 | TurnOffAllWarnings
40 |
41 |
42 |
43 |
44 | false
45 | Console
46 |
47 |
48 | for %%i in (cl.exe) do %40echo CMAKE_CXX_COMPILER=%%~$PATH:i
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
--------------------------------------------------------------------------------
/3rdparty/include/glm/CMakeFiles/3.1.2/CompilerIdCXX/Debug/CL.read.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/XT95/PBGI/ebcfe6e95b7e23c25233441db64a22a5605522eb/3rdparty/include/glm/CMakeFiles/3.1.2/CompilerIdCXX/Debug/CL.read.1.tlog
--------------------------------------------------------------------------------
/3rdparty/include/glm/CMakeFiles/3.1.2/CompilerIdCXX/Debug/CL.write.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/XT95/PBGI/ebcfe6e95b7e23c25233441db64a22a5605522eb/3rdparty/include/glm/CMakeFiles/3.1.2/CompilerIdCXX/Debug/CL.write.1.tlog
--------------------------------------------------------------------------------
/3rdparty/include/glm/CMakeFiles/3.1.2/CompilerIdCXX/Debug/CMakeCXXCompilerId.obj:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/XT95/PBGI/ebcfe6e95b7e23c25233441db64a22a5605522eb/3rdparty/include/glm/CMakeFiles/3.1.2/CompilerIdCXX/Debug/CMakeCXXCompilerId.obj
--------------------------------------------------------------------------------
/3rdparty/include/glm/CMakeFiles/3.1.2/CompilerIdCXX/Debug/CompilerIdCXX.lastbuildstate:
--------------------------------------------------------------------------------
1 | #v4.0:v110:false
2 | Debug|Win32|C:\Coding\Librarys\include\glm\CMakeFiles\3.1.2\CompilerIdCXX\|
3 |
--------------------------------------------------------------------------------
/3rdparty/include/glm/CMakeFiles/3.1.2/CompilerIdCXX/Debug/cl.command.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/XT95/PBGI/ebcfe6e95b7e23c25233441db64a22a5605522eb/3rdparty/include/glm/CMakeFiles/3.1.2/CompilerIdCXX/Debug/cl.command.1.tlog
--------------------------------------------------------------------------------
/3rdparty/include/glm/CMakeFiles/3.1.2/CompilerIdCXX/Debug/link-cvtres.read.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/XT95/PBGI/ebcfe6e95b7e23c25233441db64a22a5605522eb/3rdparty/include/glm/CMakeFiles/3.1.2/CompilerIdCXX/Debug/link-cvtres.read.1.tlog
--------------------------------------------------------------------------------
/3rdparty/include/glm/CMakeFiles/3.1.2/CompilerIdCXX/Debug/link-cvtres.write.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/XT95/PBGI/ebcfe6e95b7e23c25233441db64a22a5605522eb/3rdparty/include/glm/CMakeFiles/3.1.2/CompilerIdCXX/Debug/link-cvtres.write.1.tlog
--------------------------------------------------------------------------------
/3rdparty/include/glm/CMakeFiles/3.1.2/CompilerIdCXX/Debug/link-rc.read.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/XT95/PBGI/ebcfe6e95b7e23c25233441db64a22a5605522eb/3rdparty/include/glm/CMakeFiles/3.1.2/CompilerIdCXX/Debug/link-rc.read.1.tlog
--------------------------------------------------------------------------------
/3rdparty/include/glm/CMakeFiles/3.1.2/CompilerIdCXX/Debug/link-rc.write.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/XT95/PBGI/ebcfe6e95b7e23c25233441db64a22a5605522eb/3rdparty/include/glm/CMakeFiles/3.1.2/CompilerIdCXX/Debug/link-rc.write.1.tlog
--------------------------------------------------------------------------------
/3rdparty/include/glm/CMakeFiles/3.1.2/CompilerIdCXX/Debug/link.command.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/XT95/PBGI/ebcfe6e95b7e23c25233441db64a22a5605522eb/3rdparty/include/glm/CMakeFiles/3.1.2/CompilerIdCXX/Debug/link.command.1.tlog
--------------------------------------------------------------------------------
/3rdparty/include/glm/CMakeFiles/3.1.2/CompilerIdCXX/Debug/link.read.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/XT95/PBGI/ebcfe6e95b7e23c25233441db64a22a5605522eb/3rdparty/include/glm/CMakeFiles/3.1.2/CompilerIdCXX/Debug/link.read.1.tlog
--------------------------------------------------------------------------------
/3rdparty/include/glm/CMakeFiles/3.1.2/CompilerIdCXX/Debug/link.write.1.tlog:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/XT95/PBGI/ebcfe6e95b7e23c25233441db64a22a5605522eb/3rdparty/include/glm/CMakeFiles/3.1.2/CompilerIdCXX/Debug/link.write.1.tlog
--------------------------------------------------------------------------------
/3rdparty/include/glm/CMakeFiles/7edc17862f73a68e82552dd5a94708e2/generate.stamp.rule:
--------------------------------------------------------------------------------
1 | # generated from CMake
2 |
--------------------------------------------------------------------------------
/3rdparty/include/glm/CMakeFiles/CMakeOutput.log:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/XT95/PBGI/ebcfe6e95b7e23c25233441db64a22a5605522eb/3rdparty/include/glm/CMakeFiles/CMakeOutput.log
--------------------------------------------------------------------------------
/3rdparty/include/glm/CMakeFiles/TargetDirectories.txt:
--------------------------------------------------------------------------------
1 | C:/Coding/Librarys/include/glm/CMakeFiles/ALL_BUILD.dir
2 | C:/Coding/Librarys/include/glm/CMakeFiles/ZERO_CHECK.dir
3 |
--------------------------------------------------------------------------------
/3rdparty/include/glm/CMakeFiles/cmake.check_cache:
--------------------------------------------------------------------------------
1 | # This file is generated by cmake for dependency checking of the CMakeCache.txt file
2 |
--------------------------------------------------------------------------------
/3rdparty/include/glm/CMakeFiles/generate.stamp:
--------------------------------------------------------------------------------
1 | # CMake generation timestamp file for this directory.
2 |
--------------------------------------------------------------------------------
/3rdparty/include/glm/CMakeFiles/generate.stamp.list:
--------------------------------------------------------------------------------
1 | C:/Coding/Librarys/include/glm/CMakeFiles/generate.stamp
2 |
--------------------------------------------------------------------------------
/3rdparty/include/glm/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | set(NAME glm_dummy)
2 |
3 | file(GLOB ROOT_SOURCE *.cpp)
4 | file(GLOB ROOT_INLINE *.inl)
5 | file(GLOB ROOT_HEADER *.hpp)
6 | file(GLOB ROOT_TEXT ../*.txt)
7 | file(GLOB ROOT_NAT ../util/glm.natvis)
8 |
9 | file(GLOB_RECURSE CORE_SOURCE ./detail/*.cpp)
10 | file(GLOB_RECURSE CORE_INLINE ./detail/*.inl)
11 | file(GLOB_RECURSE CORE_HEADER ./detail/*.hpp)
12 |
13 | file(GLOB_RECURSE GTC_SOURCE ./gtc/*.cpp)
14 | file(GLOB_RECURSE GTC_INLINE ./gtc/*.inl)
15 | file(GLOB_RECURSE GTC_HEADER ./gtc/*.hpp)
16 |
17 | file(GLOB_RECURSE GTX_SOURCE ./gtx/*.cpp)
18 | file(GLOB_RECURSE GTX_INLINE ./gtx/*.inl)
19 | file(GLOB_RECURSE GTX_HEADER ./gtx/*.hpp)
20 |
21 | source_group("Text Files" FILES ${ROOT_TEXT})
22 | source_group("Core Files" FILES ${CORE_SOURCE})
23 | source_group("Core Files" FILES ${CORE_INLINE})
24 | source_group("Core Files" FILES ${CORE_HEADER})
25 | source_group("GTC Files" FILES ${GTC_SOURCE})
26 | source_group("GTC Files" FILES ${GTC_INLINE})
27 | source_group("GTC Files" FILES ${GTC_HEADER})
28 | source_group("GTX Files" FILES ${GTX_SOURCE})
29 | source_group("GTX Files" FILES ${GTX_INLINE})
30 | source_group("GTX Files" FILES ${GTX_HEADER})
31 |
32 | include_directories(${CMAKE_CURRENT_SOURCE_DIR}/..)
33 |
34 | if(GLM_TEST_ENABLE)
35 | add_executable(${NAME} ${ROOT_TEXT} ${ROOT_NAT}
36 | ${ROOT_SOURCE} ${ROOT_INLINE} ${ROOT_HEADER}
37 | ${CORE_SOURCE} ${CORE_INLINE} ${CORE_HEADER}
38 | ${GTC_SOURCE} ${GTC_INLINE} ${GTC_HEADER}
39 | ${GTX_SOURCE} ${GTX_INLINE} ${GTX_HEADER})
40 | endif(GLM_TEST_ENABLE)
41 |
42 | #add_library(glm STATIC glm.cpp)
43 | #add_library(glm_shared SHARED glm.cpp)
44 |
--------------------------------------------------------------------------------
/3rdparty/include/glm/Project.sln:
--------------------------------------------------------------------------------
1 | Microsoft Visual Studio Solution File, Format Version 12.00
2 | # Visual Studio 2012
3 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ALL_BUILD", "ALL_BUILD.vcxproj", "{E1BDEC71-5D75-43D1-8EA9-30826B56CE8B}"
4 | ProjectSection(ProjectDependencies) = postProject
5 | {08FC5884-313D-4AD4-A7C1-75A75F1C6FB5} = {08FC5884-313D-4AD4-A7C1-75A75F1C6FB5}
6 | EndProjectSection
7 | EndProject
8 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ZERO_CHECK", "ZERO_CHECK.vcxproj", "{08FC5884-313D-4AD4-A7C1-75A75F1C6FB5}"
9 | ProjectSection(ProjectDependencies) = postProject
10 | EndProjectSection
11 | EndProject
12 | Global
13 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
14 | Debug|Win32 = Debug|Win32
15 | Release|Win32 = Release|Win32
16 | MinSizeRel|Win32 = MinSizeRel|Win32
17 | RelWithDebInfo|Win32 = RelWithDebInfo|Win32
18 | EndGlobalSection
19 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
20 | {E1BDEC71-5D75-43D1-8EA9-30826B56CE8B}.Debug|Win32.ActiveCfg = Debug|Win32
21 | {E1BDEC71-5D75-43D1-8EA9-30826B56CE8B}.Release|Win32.ActiveCfg = Release|Win32
22 | {E1BDEC71-5D75-43D1-8EA9-30826B56CE8B}.MinSizeRel|Win32.ActiveCfg = MinSizeRel|Win32
23 | {E1BDEC71-5D75-43D1-8EA9-30826B56CE8B}.RelWithDebInfo|Win32.ActiveCfg = RelWithDebInfo|Win32
24 | {08FC5884-313D-4AD4-A7C1-75A75F1C6FB5}.Debug|Win32.ActiveCfg = Debug|Win32
25 | {08FC5884-313D-4AD4-A7C1-75A75F1C6FB5}.Debug|Win32.Build.0 = Debug|Win32
26 | {08FC5884-313D-4AD4-A7C1-75A75F1C6FB5}.Release|Win32.ActiveCfg = Release|Win32
27 | {08FC5884-313D-4AD4-A7C1-75A75F1C6FB5}.Release|Win32.Build.0 = Release|Win32
28 | {08FC5884-313D-4AD4-A7C1-75A75F1C6FB5}.MinSizeRel|Win32.ActiveCfg = MinSizeRel|Win32
29 | {08FC5884-313D-4AD4-A7C1-75A75F1C6FB5}.MinSizeRel|Win32.Build.0 = MinSizeRel|Win32
30 | {08FC5884-313D-4AD4-A7C1-75A75F1C6FB5}.RelWithDebInfo|Win32.ActiveCfg = RelWithDebInfo|Win32
31 | {08FC5884-313D-4AD4-A7C1-75A75F1C6FB5}.RelWithDebInfo|Win32.Build.0 = RelWithDebInfo|Win32
32 | EndGlobalSection
33 | GlobalSection(ExtensibilityGlobals) = postSolution
34 | EndGlobalSection
35 | GlobalSection(ExtensibilityAddIns) = postSolution
36 | EndGlobalSection
37 | EndGlobal
38 |
--------------------------------------------------------------------------------
/3rdparty/include/glm/ZERO_CHECK.vcxproj.filters:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CMake Rules
6 |
7 |
8 |
9 |
10 | {F820F685-E778-46F5-A355-89726763B1C0}
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/3rdparty/include/glm/cmake_install.cmake:
--------------------------------------------------------------------------------
1 | # Install script for directory: C:/Coding/Librarys/include/glm
2 |
3 | # Set the install prefix
4 | if(NOT DEFINED CMAKE_INSTALL_PREFIX)
5 | set(CMAKE_INSTALL_PREFIX "C:/Program Files (x86)/Project")
6 | endif()
7 | string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
8 |
9 | # Set the install configuration name.
10 | if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
11 | if(BUILD_TYPE)
12 | string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
13 | CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
14 | else()
15 | set(CMAKE_INSTALL_CONFIG_NAME "Release")
16 | endif()
17 | message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
18 | endif()
19 |
20 | # Set the component getting installed.
21 | if(NOT CMAKE_INSTALL_COMPONENT)
22 | if(COMPONENT)
23 | message(STATUS "Install component: \"${COMPONENT}\"")
24 | set(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
25 | else()
26 | set(CMAKE_INSTALL_COMPONENT)
27 | endif()
28 | endif()
29 |
30 | if(CMAKE_INSTALL_COMPONENT)
31 | set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt")
32 | else()
33 | set(CMAKE_INSTALL_MANIFEST "install_manifest.txt")
34 | endif()
35 |
36 | file(WRITE "C:/Coding/Librarys/include/glm/${CMAKE_INSTALL_MANIFEST}" "")
37 | foreach(file ${CMAKE_INSTALL_MANIFEST_FILES})
38 | file(APPEND "C:/Coding/Librarys/include/glm/${CMAKE_INSTALL_MANIFEST}" "${file}\n")
39 | endforeach()
40 |
--------------------------------------------------------------------------------
/3rdparty/include/glm/common.hpp:
--------------------------------------------------------------------------------
1 | ///////////////////////////////////////////////////////////////////////////////////
2 | /// OpenGL Mathematics (glm.g-truc.net)
3 | ///
4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy
6 | /// of this software and associated documentation files (the "Software"), to deal
7 | /// in the Software without restriction, including without limitation the rights
8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | /// copies of the Software, and to permit persons to whom the Software is
10 | /// furnished to do so, subject to the following conditions:
11 | ///
12 | /// The above copyright notice and this permission notice shall be included in
13 | /// all copies or substantial portions of the Software.
14 | ///
15 | /// Restrictions:
16 | /// By making use of the Software for military purposes, you choose to make
17 | /// a Bunny unhappy.
18 | ///
19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25 | /// THE SOFTWARE.
26 | ///
27 | /// @ref core
28 | /// @file glm/common.hpp
29 | /// @date 2013-12-24 / 2013-12-24
30 | /// @author Christophe Riccio
31 | ///////////////////////////////////////////////////////////////////////////////////
32 |
33 | #pragma once
34 |
35 | #include "detail/func_common.hpp"
36 |
--------------------------------------------------------------------------------
/3rdparty/include/glm/detail/_fixes.hpp:
--------------------------------------------------------------------------------
1 | ///////////////////////////////////////////////////////////////////////////////////
2 | /// OpenGL Mathematics (glm.g-truc.net)
3 | ///
4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy
6 | /// of this software and associated documentation files (the "Software"), to deal
7 | /// in the Software without restriction, including without limitation the rights
8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | /// copies of the Software, and to permit persons to whom the Software is
10 | /// furnished to do so, subject to the following conditions:
11 | ///
12 | /// The above copyright notice and this permission notice shall be included in
13 | /// all copies or substantial portions of the Software.
14 | ///
15 | /// Restrictions:
16 | /// By making use of the Software for military purposes, you choose to make
17 | /// a Bunny unhappy.
18 | ///
19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25 | /// THE SOFTWARE.
26 | ///
27 | /// @ref core
28 | /// @file glm/detail/_fixes.hpp
29 | /// @date 2011-02-21 / 2011-11-22
30 | /// @author Christophe Riccio
31 | ///////////////////////////////////////////////////////////////////////////////////
32 |
33 | #include
34 |
35 | //! Workaround for compatibility with other libraries
36 | #ifdef max
37 | #undef max
38 | #endif
39 |
40 | //! Workaround for compatibility with other libraries
41 | #ifdef min
42 | #undef min
43 | #endif
44 |
45 | //! Workaround for Android
46 | #ifdef isnan
47 | #undef isnan
48 | #endif
49 |
50 | //! Workaround for Android
51 | #ifdef isinf
52 | #undef isinf
53 | #endif
54 |
55 | //! Workaround for Chrone Native Client
56 | #ifdef log2
57 | #undef log2
58 | #endif
59 |
60 |
--------------------------------------------------------------------------------
/3rdparty/include/glm/detail/intrinsic_common.hpp:
--------------------------------------------------------------------------------
1 | ///////////////////////////////////////////////////////////////////////////////////
2 | /// OpenGL Mathematics (glm.g-truc.net)
3 | ///
4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy
6 | /// of this software and associated documentation files (the "Software"), to deal
7 | /// in the Software without restriction, including without limitation the rights
8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | /// copies of the Software, and to permit persons to whom the Software is
10 | /// furnished to do so, subject to the following conditions:
11 | ///
12 | /// The above copyright notice and this permission notice shall be included in
13 | /// all copies or substantial portions of the Software.
14 | ///
15 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21 | /// THE SOFTWARE.
22 | ///
23 | /// @ref core
24 | /// @file glm/detail/intrinsic_common.hpp
25 | /// @date 2009-05-11 / 2011-06-15
26 | /// @author Christophe Riccio
27 | ///////////////////////////////////////////////////////////////////////////////////
28 |
29 | #pragma once
30 |
31 | #include "setup.hpp"
32 |
33 | #if(!(GLM_ARCH & GLM_ARCH_SSE2))
34 | # error "SSE2 instructions not supported or enabled"
35 | #else
36 |
37 | namespace glm{
38 | namespace detail
39 | {
40 | __m128 sse_abs_ps(__m128 x);
41 |
42 | __m128 sse_sgn_ps(__m128 x);
43 |
44 | //floor
45 | __m128 sse_flr_ps(__m128 v);
46 |
47 | //trunc
48 | __m128 sse_trc_ps(__m128 v);
49 |
50 | //round
51 | __m128 sse_nd_ps(__m128 v);
52 |
53 | //roundEven
54 | __m128 sse_rde_ps(__m128 v);
55 |
56 | __m128 sse_rnd_ps(__m128 x);
57 |
58 | __m128 sse_ceil_ps(__m128 v);
59 |
60 | __m128 sse_frc_ps(__m128 x);
61 |
62 | __m128 sse_mod_ps(__m128 x, __m128 y);
63 |
64 | __m128 sse_modf_ps(__m128 x, __m128i & i);
65 |
66 | //GLM_FUNC_QUALIFIER __m128 sse_min_ps(__m128 x, __m128 y)
67 |
68 | //GLM_FUNC_QUALIFIER __m128 sse_max_ps(__m128 x, __m128 y)
69 |
70 | __m128 sse_clp_ps(__m128 v, __m128 minVal, __m128 maxVal);
71 |
72 | __m128 sse_mix_ps(__m128 v1, __m128 v2, __m128 a);
73 |
74 | __m128 sse_stp_ps(__m128 edge, __m128 x);
75 |
76 | __m128 sse_ssp_ps(__m128 edge0, __m128 edge1, __m128 x);
77 |
78 | __m128 sse_nan_ps(__m128 x);
79 |
80 | __m128 sse_inf_ps(__m128 x);
81 |
82 | }//namespace detail
83 | }//namespace glm
84 |
85 | #include "intrinsic_common.inl"
86 |
87 | #endif//GLM_ARCH
88 |
--------------------------------------------------------------------------------
/3rdparty/include/glm/detail/intrinsic_exponential.inl:
--------------------------------------------------------------------------------
1 | ///////////////////////////////////////////////////////////////////////////////////
2 | /// OpenGL Mathematics (glm.g-truc.net)
3 | ///
4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy
6 | /// of this software and associated documentation files (the "Software"), to deal
7 | /// in the Software without restriction, including without limitation the rights
8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | /// copies of the Software, and to permit persons to whom the Software is
10 | /// furnished to do so, subject to the following conditions:
11 | ///
12 | /// The above copyright notice and this permission notice shall be included in
13 | /// all copies or substantial portions of the Software.
14 | ///
15 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21 | /// THE SOFTWARE.
22 | ///
23 | /// @ref core
24 | /// @file glm/detail/intrinsic_exponential.inl
25 | /// @date 2011-06-15 / 2011-06-15
26 | /// @author Christophe Riccio
27 | ///////////////////////////////////////////////////////////////////////////////////
28 |
--------------------------------------------------------------------------------
/3rdparty/include/glm/detail/intrinsic_geometric.hpp:
--------------------------------------------------------------------------------
1 | ///////////////////////////////////////////////////////////////////////////////////
2 | /// OpenGL Mathematics (glm.g-truc.net)
3 | ///
4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy
6 | /// of this software and associated documentation files (the "Software"), to deal
7 | /// in the Software without restriction, including without limitation the rights
8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | /// copies of the Software, and to permit persons to whom the Software is
10 | /// furnished to do so, subject to the following conditions:
11 | ///
12 | /// The above copyright notice and this permission notice shall be included in
13 | /// all copies or substantial portions of the Software.
14 | ///
15 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21 | /// THE SOFTWARE.
22 | ///
23 | /// @ref core
24 | /// @file glm/detail/intrinsic_geometric.hpp
25 | /// @date 2009-05-08 / 2011-06-15
26 | /// @author Christophe Riccio
27 | ///////////////////////////////////////////////////////////////////////////////////
28 |
29 | #pragma once
30 |
31 | #include "setup.hpp"
32 |
33 | #if(!(GLM_ARCH & GLM_ARCH_SSE2))
34 | # error "SSE2 instructions not supported or enabled"
35 | #else
36 |
37 | #include "intrinsic_common.hpp"
38 |
39 | namespace glm{
40 | namespace detail
41 | {
42 | //length
43 | __m128 sse_len_ps(__m128 x);
44 |
45 | //distance
46 | __m128 sse_dst_ps(__m128 p0, __m128 p1);
47 |
48 | //dot
49 | __m128 sse_dot_ps(__m128 v1, __m128 v2);
50 |
51 | // SSE1
52 | __m128 sse_dot_ss(__m128 v1, __m128 v2);
53 |
54 | //cross
55 | __m128 sse_xpd_ps(__m128 v1, __m128 v2);
56 |
57 | //normalize
58 | __m128 sse_nrm_ps(__m128 v);
59 |
60 | //faceforward
61 | __m128 sse_ffd_ps(__m128 N, __m128 I, __m128 Nref);
62 |
63 | //reflect
64 | __m128 sse_rfe_ps(__m128 I, __m128 N);
65 |
66 | //refract
67 | __m128 sse_rfa_ps(__m128 I, __m128 N, __m128 eta);
68 |
69 | }//namespace detail
70 | }//namespace glm
71 |
72 | #include "intrinsic_geometric.inl"
73 |
74 | #endif//GLM_ARCH
75 |
--------------------------------------------------------------------------------
/3rdparty/include/glm/detail/intrinsic_integer.hpp:
--------------------------------------------------------------------------------
1 | ///////////////////////////////////////////////////////////////////////////////////
2 | /// OpenGL Mathematics (glm.g-truc.net)
3 | ///
4 | /// Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net)
5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy
6 | /// of this software and associated documentation files (the "Software"), to deal
7 | /// in the Software without restriction, including without limitation the rights
8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | /// copies of the Software, and to permit persons to whom the Software is
10 | /// furnished to do so, subject to the following conditions:
11 | ///
12 | /// The above copyright notice and this permission notice shall be included in
13 | /// all copies or substantial portions of the Software.
14 | ///
15 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21 | /// THE SOFTWARE.
22 | ///
23 | /// @ref core
24 | /// @file glm/detail/intrinsic_integer.hpp
25 | /// @date 2009-05-11 / 2011-06-15
26 | /// @author Christophe Riccio
27 | ///////////////////////////////////////////////////////////////////////////////////
28 |
29 | #pragma once
30 |
31 | #include "glm/glm.hpp"
32 |
33 | #if(!(GLM_ARCH & GLM_ARCH_SSE2))
34 | # error "SSE2 instructions not supported or enabled"
35 | #else
36 |
37 | namespace glm{
38 | namespace detail
39 | {
40 | __m128i _mm_bit_interleave_si128(__m128i x);
41 | __m128i _mm_bit_interleave_si128(__m128i x, __m128i y);
42 |
43 | }//namespace detail
44 | }//namespace glm
45 |
46 | #include "intrinsic_integer.inl"
47 |
48 | #endif//GLM_ARCH
49 |
--------------------------------------------------------------------------------
/3rdparty/include/glm/detail/intrinsic_matrix.hpp:
--------------------------------------------------------------------------------
1 | ///////////////////////////////////////////////////////////////////////////////////
2 | /// OpenGL Mathematics (glm.g-truc.net)
3 | ///
4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy
6 | /// of this software and associated documentation files (the "Software"), to deal
7 | /// in the Software without restriction, including without limitation the rights
8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | /// copies of the Software, and to permit persons to whom the Software is
10 | /// furnished to do so, subject to the following conditions:
11 | ///
12 | /// The above copyright notice and this permission notice shall be included in
13 | /// all copies or substantial portions of the Software.
14 | ///
15 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21 | /// THE SOFTWARE.
22 | ///
23 | /// @ref core
24 | /// @file glm/detail/intrinsic_common.hpp
25 | /// @date 2009-06-05 / 2011-06-15
26 | /// @author Christophe Riccio
27 | ///////////////////////////////////////////////////////////////////////////////////
28 |
29 | #pragma once
30 |
31 | #include "setup.hpp"
32 |
33 | #if(!(GLM_ARCH & GLM_ARCH_SSE2))
34 | # error "SSE2 instructions not supported or enabled"
35 | #else
36 |
37 | #include "intrinsic_geometric.hpp"
38 |
39 | namespace glm{
40 | namespace detail
41 | {
42 | void sse_add_ps(__m128 in1[4], __m128 in2[4], __m128 out[4]);
43 |
44 | void sse_sub_ps(__m128 in1[4], __m128 in2[4], __m128 out[4]);
45 |
46 | __m128 sse_mul_ps(__m128 m[4], __m128 v);
47 |
48 | __m128 sse_mul_ps(__m128 v, __m128 m[4]);
49 |
50 | void sse_mul_ps(__m128 const in1[4], __m128 const in2[4], __m128 out[4]);
51 |
52 | void sse_transpose_ps(__m128 const in[4], __m128 out[4]);
53 |
54 | void sse_inverse_ps(__m128 const in[4], __m128 out[4]);
55 |
56 | void sse_rotate_ps(__m128 const in[4], float Angle, float const v[3], __m128 out[4]);
57 |
58 | __m128 sse_det_ps(__m128 const m[4]);
59 |
60 | __m128 sse_slow_det_ps(__m128 const m[4]);
61 |
62 | }//namespace detail
63 | }//namespace glm
64 |
65 | #include "intrinsic_matrix.inl"
66 |
67 | #endif//GLM_ARCH
68 |
--------------------------------------------------------------------------------
/3rdparty/include/glm/detail/intrinsic_trigonometric.hpp:
--------------------------------------------------------------------------------
1 | ///////////////////////////////////////////////////////////////////////////////////
2 | /// OpenGL Mathematics (glm.g-truc.net)
3 | ///
4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy
6 | /// of this software and associated documentation files (the "Software"), to deal
7 | /// in the Software without restriction, including without limitation the rights
8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | /// copies of the Software, and to permit persons to whom the Software is
10 | /// furnished to do so, subject to the following conditions:
11 | ///
12 | /// The above copyright notice and this permission notice shall be included in
13 | /// all copies or substantial portions of the Software.
14 | ///
15 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21 | /// THE SOFTWARE.
22 | ///
23 | /// @ref core
24 | /// @file glm/detail/intrinsic_trigonometric.hpp
25 | /// @date 2009-06-09 / 2011-06-15
26 | /// @author Christophe Riccio
27 | ///////////////////////////////////////////////////////////////////////////////////
28 |
29 | #pragma once
30 |
31 | #include "setup.hpp"
32 |
33 | #if(!(GLM_ARCH & GLM_ARCH_SSE2))
34 | # error "SSE2 instructions not supported or enabled"
35 | #else
36 |
37 | namespace glm{
38 | namespace detail
39 | {
40 |
41 | }//namespace detail
42 | }//namespace glm
43 |
44 | #include "intrinsic_trigonometric.inl"
45 |
46 | #endif//GLM_ARCH
47 |
--------------------------------------------------------------------------------
/3rdparty/include/glm/detail/intrinsic_trigonometric.inl:
--------------------------------------------------------------------------------
1 | ///////////////////////////////////////////////////////////////////////////////////
2 | /// OpenGL Mathematics (glm.g-truc.net)
3 | ///
4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy
6 | /// of this software and associated documentation files (the "Software"), to deal
7 | /// in the Software without restriction, including without limitation the rights
8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | /// copies of the Software, and to permit persons to whom the Software is
10 | /// furnished to do so, subject to the following conditions:
11 | ///
12 | /// The above copyright notice and this permission notice shall be included in
13 | /// all copies or substantial portions of the Software.
14 | ///
15 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21 | /// THE SOFTWARE.
22 | ///
23 | /// @ref core
24 | /// @file glm/detail/intrinsic_trigonometric.inl
25 | /// @date 2011-06-15 / 2011-06-15
26 | /// @author Christophe Riccio
27 | ///////////////////////////////////////////////////////////////////////////////////
28 |
--------------------------------------------------------------------------------
/3rdparty/include/glm/detail/intrinsic_vector_relational.hpp:
--------------------------------------------------------------------------------
1 | ///////////////////////////////////////////////////////////////////////////////////
2 | /// OpenGL Mathematics (glm.g-truc.net)
3 | ///
4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy
6 | /// of this software and associated documentation files (the "Software"), to deal
7 | /// in the Software without restriction, including without limitation the rights
8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | /// copies of the Software, and to permit persons to whom the Software is
10 | /// furnished to do so, subject to the following conditions:
11 | ///
12 | /// The above copyright notice and this permission notice shall be included in
13 | /// all copies or substantial portions of the Software.
14 | ///
15 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21 | /// THE SOFTWARE.
22 | ///
23 | /// @ref core
24 | /// @file glm/detail/intrinsic_vector_relational.hpp
25 | /// @date 2009-06-09 / 2011-06-15
26 | /// @author Christophe Riccio
27 | ///////////////////////////////////////////////////////////////////////////////////
28 |
29 | #pragma once
30 |
31 | #include "setup.hpp"
32 |
33 | #if(!(GLM_ARCH & GLM_ARCH_SSE2))
34 | # error "SSE2 instructions not supported or enabled"
35 | #else
36 |
37 | namespace glm{
38 | namespace detail
39 | {
40 |
41 | }//namespace detail
42 | }//namespace glm
43 |
44 | #include "intrinsic_vector_relational.inl"
45 |
46 | #endif//GLM_ARCH
47 |
--------------------------------------------------------------------------------
/3rdparty/include/glm/detail/precision.hpp:
--------------------------------------------------------------------------------
1 | ///////////////////////////////////////////////////////////////////////////////////
2 | /// OpenGL Mathematics (glm.g-truc.net)
3 | ///
4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy
6 | /// of this software and associated documentation files (the "Software"), to deal
7 | /// in the Software without restriction, including without limitation the rights
8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | /// copies of the Software, and to permit persons to whom the Software is
10 | /// furnished to do so, subject to the following conditions:
11 | ///
12 | /// The above copyright notice and this permission notice shall be included in
13 | /// all copies or substantial portions of the Software.
14 | ///
15 | /// Restrictions:
16 | /// By making use of the Software for military purposes, you choose to make
17 | /// a Bunny unhappy.
18 | ///
19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25 | /// THE SOFTWARE.
26 | ///
27 | /// @ref core
28 | /// @file glm/detail/precision.hpp
29 | /// @date 2013-04-01 / 2013-04-01
30 | /// @author Christophe Riccio
31 | ///////////////////////////////////////////////////////////////////////////////////
32 |
33 | #pragma once
34 |
35 | namespace glm
36 | {
37 | enum precision
38 | {
39 | highp,
40 | mediump,
41 | lowp,
42 | defaultp = highp
43 | };
44 | }//namespace glm
45 |
--------------------------------------------------------------------------------
/3rdparty/include/glm/detail/type_half.hpp:
--------------------------------------------------------------------------------
1 | ///////////////////////////////////////////////////////////////////////////////////
2 | /// OpenGL Mathematics (glm.g-truc.net)
3 | ///
4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy
6 | /// of this software and associated documentation files (the "Software"), to deal
7 | /// in the Software without restriction, including without limitation the rights
8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | /// copies of the Software, and to permit persons to whom the Software is
10 | /// furnished to do so, subject to the following conditions:
11 | ///
12 | /// The above copyright notice and this permission notice shall be included in
13 | /// all copies or substantial portions of the Software.
14 | ///
15 | /// Restrictions:
16 | /// By making use of the Software for military purposes, you choose to make
17 | /// a Bunny unhappy.
18 | ///
19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25 | /// THE SOFTWARE.
26 | ///
27 | /// @ref core
28 | /// @file glm/detail/type_half.hpp
29 | /// @date 2008-08-17 / 2011-09-20
30 | /// @author Christophe Riccio
31 | ///////////////////////////////////////////////////////////////////////////////////
32 |
33 | #pragma once
34 |
35 | #include "setup.hpp"
36 |
37 | namespace glm{
38 | namespace detail
39 | {
40 | typedef short hdata;
41 |
42 | GLM_FUNC_DECL float toFloat32(hdata value);
43 | GLM_FUNC_DECL hdata toFloat16(float const & value);
44 |
45 | }//namespace detail
46 | }//namespace glm
47 |
48 | #include "type_half.inl"
49 |
--------------------------------------------------------------------------------
/3rdparty/include/glm/detail/type_mat.inl:
--------------------------------------------------------------------------------
1 | ///////////////////////////////////////////////////////////////////////////////////
2 | /// OpenGL Mathematics (glm.g-truc.net)
3 | ///
4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy
6 | /// of this software and associated documentation files (the "Software"), to deal
7 | /// in the Software without restriction, including without limitation the rights
8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | /// copies of the Software, and to permit persons to whom the Software is
10 | /// furnished to do so, subject to the following conditions:
11 | ///
12 | /// The above copyright notice and this permission notice shall be included in
13 | /// all copies or substantial portions of the Software.
14 | ///
15 | /// Restrictions:
16 | /// By making use of the Software for military purposes, you choose to make
17 | /// a Bunny unhappy.
18 | ///
19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25 | /// THE SOFTWARE.
26 | ///
27 | /// @ref core
28 | /// @file glm/detail/type_mat.inl
29 | /// @date 2011-06-15 / 2011-06-15
30 | /// @author Christophe Riccio
31 | ///////////////////////////////////////////////////////////////////////////////////
32 |
33 |
--------------------------------------------------------------------------------
/3rdparty/include/glm/detail/type_vec.inl:
--------------------------------------------------------------------------------
1 | ///////////////////////////////////////////////////////////////////////////////////
2 | /// OpenGL Mathematics (glm.g-truc.net)
3 | ///
4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy
6 | /// of this software and associated documentation files (the "Software"), to deal
7 | /// in the Software without restriction, including without limitation the rights
8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | /// copies of the Software, and to permit persons to whom the Software is
10 | /// furnished to do so, subject to the following conditions:
11 | ///
12 | /// The above copyright notice and this permission notice shall be included in
13 | /// all copies or substantial portions of the Software.
14 | ///
15 | /// Restrictions:
16 | /// By making use of the Software for military purposes, you choose to make
17 | /// a Bunny unhappy.
18 | ///
19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25 | /// THE SOFTWARE.
26 | ///
27 | /// @ref core
28 | /// @file glm/detail/type_vec.inl
29 | /// @date 2011-06-15 / 2011-06-15
30 | /// @author Christophe Riccio
31 | ///////////////////////////////////////////////////////////////////////////////////
32 |
--------------------------------------------------------------------------------
/3rdparty/include/glm/detail/type_vec4_avx.inl:
--------------------------------------------------------------------------------
1 | ///////////////////////////////////////////////////////////////////////////////////
2 | /// OpenGL Mathematics (glm.g-truc.net)
3 | ///
4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy
6 | /// of this software and associated documentation files (the "Software"), to deal
7 | /// in the Software without restriction, including without limitation the rights
8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | /// copies of the Software, and to permit persons to whom the Software is
10 | /// furnished to do so, subject to the following conditions:
11 | ///
12 | /// The above copyright notice and this permission notice shall be included in
13 | /// all copies or substantial portions of the Software.
14 | ///
15 | /// Restrictions:
16 | /// By making use of the Software for military purposes, you choose to make
17 | /// a Bunny unhappy.
18 | ///
19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25 | /// THE SOFTWARE.
26 | ///
27 | /// @ref core
28 | /// @file glm/detail/type_tvec4_avx.inl
29 | /// @date 2014-12-01 / 2014-12-01
30 | /// @author Christophe Riccio
31 | ///////////////////////////////////////////////////////////////////////////////////
32 |
33 | namespace glm{
34 | namespace detail
35 | {
36 |
37 | }//namespace detail
38 |
39 |
40 |
41 | }//namespace glm
42 |
--------------------------------------------------------------------------------
/3rdparty/include/glm/detail/type_vec4_avx2.inl:
--------------------------------------------------------------------------------
1 | ///////////////////////////////////////////////////////////////////////////////////
2 | /// OpenGL Mathematics (glm.g-truc.net)
3 | ///
4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy
6 | /// of this software and associated documentation files (the "Software"), to deal
7 | /// in the Software without restriction, including without limitation the rights
8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | /// copies of the Software, and to permit persons to whom the Software is
10 | /// furnished to do so, subject to the following conditions:
11 | ///
12 | /// The above copyright notice and this permission notice shall be included in
13 | /// all copies or substantial portions of the Software.
14 | ///
15 | /// Restrictions:
16 | /// By making use of the Software for military purposes, you choose to make
17 | /// a Bunny unhappy.
18 | ///
19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25 | /// THE SOFTWARE.
26 | ///
27 | /// @ref core
28 | /// @file glm/detail/type_tvec4_avx2.inl
29 | /// @date 2014-12-01 / 2014-12-01
30 | /// @author Christophe Riccio
31 | ///////////////////////////////////////////////////////////////////////////////////
32 |
33 | namespace glm{
34 | namespace detail
35 | {
36 |
37 | }//namespace detail
38 |
39 |
40 |
41 | }//namespace glm
42 |
--------------------------------------------------------------------------------
/3rdparty/include/glm/exponential.hpp:
--------------------------------------------------------------------------------
1 | ///////////////////////////////////////////////////////////////////////////////////
2 | /// OpenGL Mathematics (glm.g-truc.net)
3 | ///
4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy
6 | /// of this software and associated documentation files (the "Software"), to deal
7 | /// in the Software without restriction, including without limitation the rights
8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | /// copies of the Software, and to permit persons to whom the Software is
10 | /// furnished to do so, subject to the following conditions:
11 | ///
12 | /// The above copyright notice and this permission notice shall be included in
13 | /// all copies or substantial portions of the Software.
14 | ///
15 | /// Restrictions:
16 | /// By making use of the Software for military purposes, you choose to make
17 | /// a Bunny unhappy.
18 | ///
19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25 | /// THE SOFTWARE.
26 | ///
27 | /// @ref core
28 | /// @file glm/exponential.hpp
29 | /// @date 2013-12-24 / 2013-12-24
30 | /// @author Christophe Riccio
31 | ///////////////////////////////////////////////////////////////////////////////////
32 |
33 | #pragma once
34 |
35 | #include "detail/func_exponential.hpp"
36 |
--------------------------------------------------------------------------------
/3rdparty/include/glm/geometric.hpp:
--------------------------------------------------------------------------------
1 | ///////////////////////////////////////////////////////////////////////////////////
2 | /// OpenGL Mathematics (glm.g-truc.net)
3 | ///
4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy
6 | /// of this software and associated documentation files (the "Software"), to deal
7 | /// in the Software without restriction, including without limitation the rights
8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | /// copies of the Software, and to permit persons to whom the Software is
10 | /// furnished to do so, subject to the following conditions:
11 | ///
12 | /// The above copyright notice and this permission notice shall be included in
13 | /// all copies or substantial portions of the Software.
14 | ///
15 | /// Restrictions:
16 | /// By making use of the Software for military purposes, you choose to make
17 | /// a Bunny unhappy.
18 | ///
19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25 | /// THE SOFTWARE.
26 | ///
27 | /// @ref core
28 | /// @file glm/geometric.hpp
29 | /// @date 2013-12-24 / 2013-12-24
30 | /// @author Christophe Riccio
31 | ///////////////////////////////////////////////////////////////////////////////////
32 |
33 | #pragma once
34 |
35 | #include "detail/func_geometric.hpp"
36 |
--------------------------------------------------------------------------------
/3rdparty/include/glm/gtc/type_precision.inl:
--------------------------------------------------------------------------------
1 | ///////////////////////////////////////////////////////////////////////////////////
2 | /// OpenGL Mathematics (glm.g-truc.net)
3 | ///
4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy
6 | /// of this software and associated documentation files (the "Software"), to deal
7 | /// in the Software without restriction, including without limitation the rights
8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | /// copies of the Software, and to permit persons to whom the Software is
10 | /// furnished to do so, subject to the following conditions:
11 | ///
12 | /// The above copyright notice and this permission notice shall be included in
13 | /// all copies or substantial portions of the Software.
14 | ///
15 | /// Restrictions:
16 | /// By making use of the Software for military purposes, you choose to make
17 | /// a Bunny unhappy.
18 | ///
19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25 | /// THE SOFTWARE.
26 | ///
27 | /// @ref gtc_swizzle
28 | /// @file glm/gtc/swizzle.inl
29 | /// @date 2009-06-14 / 2011-06-15
30 | /// @author Christophe Riccio
31 | ///////////////////////////////////////////////////////////////////////////////////
32 |
33 | namespace glm
34 | {
35 |
36 | }
37 |
--------------------------------------------------------------------------------
/3rdparty/include/glm/gtc/vec1.inl:
--------------------------------------------------------------------------------
1 | ///////////////////////////////////////////////////////////////////////////////////
2 | /// OpenGL Mathematics (glm.g-truc.net)
3 | ///
4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy
6 | /// of this software and associated documentation files (the "Software"), to deal
7 | /// in the Software without restriction, including without limitation the rights
8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | /// copies of the Software, and to permit persons to whom the Software is
10 | /// furnished to do so, subject to the following conditions:
11 | ///
12 | /// The above copyright notice and this permission notice shall be included in
13 | /// all copies or substantial portions of the Software.
14 | ///
15 | /// Restrictions:
16 | /// By making use of the Software for military purposes, you choose to make
17 | /// a Bunny unhappy.
18 | ///
19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25 | /// THE SOFTWARE.
26 | ///
27 | /// @ref gtc_vec1
28 | /// @file glm/gtc/vec1.inl
29 | /// @date 2013-03-16 / 2013-03-16
30 | /// @author Christophe Riccio
31 | ///////////////////////////////////////////////////////////////////////////////////
32 |
--------------------------------------------------------------------------------
/3rdparty/include/glm/gtx/closest_point.hpp:
--------------------------------------------------------------------------------
1 | ///////////////////////////////////////////////////////////////////////////////////
2 | /// OpenGL Mathematics (glm.g-truc.net)
3 | ///
4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy
6 | /// of this software and associated documentation files (the "Software"), to deal
7 | /// in the Software without restriction, including without limitation the rights
8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | /// copies of the Software, and to permit persons to whom the Software is
10 | /// furnished to do so, subject to the following conditions:
11 | ///
12 | /// The above copyright notice and this permission notice shall be included in
13 | /// all copies or substantial portions of the Software.
14 | ///
15 | /// Restrictions:
16 | /// By making use of the Software for military purposes, you choose to make
17 | /// a Bunny unhappy.
18 | ///
19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25 | /// THE SOFTWARE.
26 | ///
27 | /// @ref gtx_closest_point
28 | /// @file glm/gtx/closest_point.hpp
29 | /// @date 2005-12-30 / 2011-06-07
30 | /// @author Christophe Riccio
31 | ///
32 | /// @see core (dependence)
33 | ///
34 | /// @defgroup gtx_closest_point GLM_GTX_closest_point
35 | /// @ingroup gtx
36 | ///
37 | /// @brief Find the point on a straight line which is the closet of a point.
38 | ///
39 | /// need to be included to use these functionalities.
40 | ///////////////////////////////////////////////////////////////////////////////////
41 |
42 | #pragma once
43 |
44 | // Dependency:
45 | #include "../glm.hpp"
46 |
47 | #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
48 | # pragma message("GLM: GLM_GTX_closest_point extension included")
49 | #endif
50 |
51 | namespace glm
52 | {
53 | /// @addtogroup gtx_closest_point
54 | /// @{
55 |
56 | /// Find the point on a straight line which is the closet of a point.
57 | /// @see gtx_closest_point
58 | template
59 | GLM_FUNC_DECL tvec3 closestPointOnLine(
60 | tvec3 const & point,
61 | tvec3 const & a,
62 | tvec3 const & b);
63 |
64 | /// 2d lines work as well
65 | template
66 | GLM_FUNC_DECL tvec2 closestPointOnLine(
67 | tvec2 const & point,
68 | tvec2 const & a,
69 | tvec2 const & b);
70 |
71 | /// @}
72 | }// namespace glm
73 |
74 | #include "closest_point.inl"
75 |
--------------------------------------------------------------------------------
/3rdparty/include/glm/gtx/closest_point.inl:
--------------------------------------------------------------------------------
1 | ///////////////////////////////////////////////////////////////////////////////////
2 | /// OpenGL Mathematics (glm.g-truc.net)
3 | ///
4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy
6 | /// of this software and associated documentation files (the "Software"), to deal
7 | /// in the Software without restriction, including without limitation the rights
8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | /// copies of the Software, and to permit persons to whom the Software is
10 | /// furnished to do so, subject to the following conditions:
11 | ///
12 | /// The above copyright notice and this permission notice shall be included in
13 | /// all copies or substantial portions of the Software.
14 | ///
15 | /// Restrictions:
16 | /// By making use of the Software for military purposes, you choose to make
17 | /// a Bunny unhappy.
18 | ///
19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25 | /// THE SOFTWARE.
26 | ///
27 | /// @ref gtx_closest_point
28 | /// @file glm/gtx/closest_point.inl
29 | /// @date 2005-12-30 / 2011-06-07
30 | /// @author Christophe Riccio
31 | ///////////////////////////////////////////////////////////////////////////////////////////////////
32 |
33 | namespace glm
34 | {
35 | template
36 | GLM_FUNC_QUALIFIER tvec3 closestPointOnLine
37 | (
38 | tvec3 const & point,
39 | tvec3 const & a,
40 | tvec3 const & b
41 | )
42 | {
43 | T LineLength = distance(a, b);
44 | tvec3 Vector = point - a;
45 | tvec3 LineDirection = (b - a) / LineLength;
46 |
47 | // Project Vector to LineDirection to get the distance of point from a
48 | T Distance = dot(Vector, LineDirection);
49 |
50 | if(Distance <= T(0)) return a;
51 | if(Distance >= LineLength) return b;
52 | return a + LineDirection * Distance;
53 | }
54 |
55 | template
56 | GLM_FUNC_QUALIFIER tvec2 closestPointOnLine
57 | (
58 | tvec2 const & point,
59 | tvec2 const & a,
60 | tvec2 const & b
61 | )
62 | {
63 | T LineLength = distance(a, b);
64 | tvec2 Vector = point - a;
65 | tvec2 LineDirection = (b - a) / LineLength;
66 |
67 | // Project Vector to LineDirection to get the distance of point from a
68 | T Distance = dot(Vector, LineDirection);
69 |
70 | if(Distance <= T(0)) return a;
71 | if(Distance >= LineLength) return b;
72 | return a + LineDirection * Distance;
73 | }
74 |
75 | }//namespace glm
76 |
--------------------------------------------------------------------------------
/3rdparty/include/glm/gtx/extend.hpp:
--------------------------------------------------------------------------------
1 | ///////////////////////////////////////////////////////////////////////////////////
2 | /// OpenGL Mathematics (glm.g-truc.net)
3 | ///
4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy
6 | /// of this software and associated documentation files (the "Software"), to deal
7 | /// in the Software without restriction, including without limitation the rights
8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | /// copies of the Software, and to permit persons to whom the Software is
10 | /// furnished to do so, subject to the following conditions:
11 | ///
12 | /// The above copyright notice and this permission notice shall be included in
13 | /// all copies or substantial portions of the Software.
14 | ///
15 | /// Restrictions:
16 | /// By making use of the Software for military purposes, you choose to make
17 | /// a Bunny unhappy.
18 | ///
19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25 | /// THE SOFTWARE.
26 | ///
27 | /// @ref gtx_extend
28 | /// @file glm/gtx/extend.hpp
29 | /// @date 2006-01-07 / 2011-06-07
30 | /// @author Christophe Riccio
31 | ///
32 | /// @see core (dependence)
33 | ///
34 | /// @defgroup gtx_extend GLM_GTX_extend
35 | /// @ingroup gtx
36 | ///
37 | /// @brief Extend a position from a source to a position at a defined length.
38 | ///
39 | /// need to be included to use these functionalities.
40 | ///////////////////////////////////////////////////////////////////////////////////
41 |
42 | #pragma once
43 |
44 | // Dependency:
45 | #include "../glm.hpp"
46 |
47 | #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
48 | # pragma message("GLM: GLM_GTX_extend extension included")
49 | #endif
50 |
51 | namespace glm
52 | {
53 | /// @addtogroup gtx_extend
54 | /// @{
55 |
56 | /// Extends of Length the Origin position using the (Source - Origin) direction.
57 | /// @see gtx_extend
58 | template
59 | GLM_FUNC_DECL genType extend(
60 | genType const & Origin,
61 | genType const & Source,
62 | typename genType::value_type const Length);
63 |
64 | /// @}
65 | }//namespace glm
66 |
67 | #include "extend.inl"
68 |
--------------------------------------------------------------------------------
/3rdparty/include/glm/gtx/extend.inl:
--------------------------------------------------------------------------------
1 | ///////////////////////////////////////////////////////////////////////////////////
2 | /// OpenGL Mathematics (glm.g-truc.net)
3 | ///
4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy
6 | /// of this software and associated documentation files (the "Software"), to deal
7 | /// in the Software without restriction, including without limitation the rights
8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | /// copies of the Software, and to permit persons to whom the Software is
10 | /// furnished to do so, subject to the following conditions:
11 | ///
12 | /// The above copyright notice and this permission notice shall be included in
13 | /// all copies or substantial portions of the Software.
14 | ///
15 | /// Restrictions:
16 | /// By making use of the Software for military purposes, you choose to make
17 | /// a Bunny unhappy.
18 | ///
19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25 | /// THE SOFTWARE.
26 | ///
27 | /// @ref gtx_extend
28 | /// @file glm/gtx/extend.inl
29 | /// @date 2006-01-07 / 2011-06-07
30 | /// @author Christophe Riccio
31 | ///////////////////////////////////////////////////////////////////////////////////////////////////
32 |
33 | namespace glm
34 | {
35 | template
36 | GLM_FUNC_QUALIFIER genType extend
37 | (
38 | genType const & Origin,
39 | genType const & Source,
40 | genType const & Distance
41 | )
42 | {
43 | return Origin + (Source - Origin) * Distance;
44 | }
45 |
46 | template
47 | GLM_FUNC_QUALIFIER tvec2 extend
48 | (
49 | tvec2 const & Origin,
50 | tvec2 const & Source,
51 | T const & Distance
52 | )
53 | {
54 | return Origin + (Source - Origin) * Distance;
55 | }
56 |
57 | template
58 | GLM_FUNC_QUALIFIER tvec3 extend
59 | (
60 | tvec3 const & Origin,
61 | tvec3 const & Source,
62 | T const & Distance
63 | )
64 | {
65 | return Origin + (Source - Origin) * Distance;
66 | }
67 |
68 | template
69 | GLM_FUNC_QUALIFIER tvec4 extend
70 | (
71 | tvec4 const & Origin,
72 | tvec4 const & Source,
73 | T const & Distance
74 | )
75 | {
76 | return Origin + (Source - Origin) * Distance;
77 | }
78 | }//namespace glm
79 |
--------------------------------------------------------------------------------
/3rdparty/include/glm/gtx/gradient_paint.inl:
--------------------------------------------------------------------------------
1 | ///////////////////////////////////////////////////////////////////////////////////
2 | /// OpenGL Mathematics (glm.g-truc.net)
3 | ///
4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy
6 | /// of this software and associated documentation files (the "Software"), to deal
7 | /// in the Software without restriction, including without limitation the rights
8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | /// copies of the Software, and to permit persons to whom the Software is
10 | /// furnished to do so, subject to the following conditions:
11 | ///
12 | /// The above copyright notice and this permission notice shall be included in
13 | /// all copies or substantial portions of the Software.
14 | ///
15 | /// Restrictions:
16 | /// By making use of the Software for military purposes, you choose to make
17 | /// a Bunny unhappy.
18 | ///
19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25 | /// THE SOFTWARE.
26 | ///
27 | /// @ref gtx_gradient_paint
28 | /// @file glm/gtx/gradient_paint.inl
29 | /// @date 2009-03-06 / 2013-04-09
30 | /// @author Christophe Riccio
31 | ///////////////////////////////////////////////////////////////////////////////////////////////////
32 |
33 | namespace glm
34 | {
35 | template
36 | GLM_FUNC_QUALIFIER T radialGradient
37 | (
38 | tvec2 const & Center,
39 | T const & Radius,
40 | tvec2 const & Focal,
41 | tvec2 const & Position
42 | )
43 | {
44 | tvec2 F = Focal - Center;
45 | tvec2 D = Position - Focal;
46 | T Radius2 = pow2(Radius);
47 | T Fx2 = pow2(F.x);
48 | T Fy2 = pow2(F.y);
49 |
50 | T Numerator = (D.x * F.x + D.y * F.y) + sqrt(Radius2 * (pow2(D.x) + pow2(D.y)) - pow2(D.x * F.y - D.y * F.x));
51 | T Denominator = Radius2 - (Fx2 + Fy2);
52 | return Numerator / Denominator;
53 | }
54 |
55 | template
56 | GLM_FUNC_QUALIFIER T linearGradient
57 | (
58 | tvec2 const & Point0,
59 | tvec2 const & Point1,
60 | tvec2 const & Position
61 | )
62 | {
63 | tvec2 Dist = Point1 - Point0;
64 | return (Dist.x * (Position.x - Point0.x) + Dist.y * (Position.y - Point0.y)) / glm::dot(Dist, Dist);
65 | }
66 | }//namespace glm
67 |
--------------------------------------------------------------------------------
/3rdparty/include/glm/gtx/handed_coordinate_space.inl:
--------------------------------------------------------------------------------
1 | ///////////////////////////////////////////////////////////////////////////////////
2 | /// OpenGL Mathematics (glm.g-truc.net)
3 | ///
4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy
6 | /// of this software and associated documentation files (the "Software"), to deal
7 | /// in the Software without restriction, including without limitation the rights
8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | /// copies of the Software, and to permit persons to whom the Software is
10 | /// furnished to do so, subject to the following conditions:
11 | ///
12 | /// The above copyright notice and this permission notice shall be included in
13 | /// all copies or substantial portions of the Software.
14 | ///
15 | /// Restrictions:
16 | /// By making use of the Software for military purposes, you choose to make
17 | /// a Bunny unhappy.
18 | ///
19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25 | /// THE SOFTWARE.
26 | ///
27 | /// @ref gtx_handed_coordinate_space
28 | /// @file glm/gtx/handed_coordinate_space.inl
29 | /// @date 2005-12-21 / 2009-02-19
30 | /// @author Christophe Riccio
31 | ///////////////////////////////////////////////////////////////////////////////////////////////////
32 |
33 | namespace glm
34 | {
35 | template
36 | GLM_FUNC_QUALIFIER bool rightHanded
37 | (
38 | tvec3 const & tangent,
39 | tvec3 const & binormal,
40 | tvec3 const & normal
41 | )
42 | {
43 | return dot(cross(normal, tangent), binormal) > T(0);
44 | }
45 |
46 | template
47 | GLM_FUNC_QUALIFIER bool leftHanded
48 | (
49 | tvec3 const & tangent,
50 | tvec3 const & binormal,
51 | tvec3 const & normal
52 | )
53 | {
54 | return dot(cross(normal, tangent), binormal) < T(0);
55 | }
56 | }//namespace glm
57 |
--------------------------------------------------------------------------------
/3rdparty/include/glm/gtx/log_base.hpp:
--------------------------------------------------------------------------------
1 | ///////////////////////////////////////////////////////////////////////////////////
2 | /// OpenGL Mathematics (glm.g-truc.net)
3 | ///
4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy
6 | /// of this software and associated documentation files (the "Software"), to deal
7 | /// in the Software without restriction, including without limitation the rights
8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | /// copies of the Software, and to permit persons to whom the Software is
10 | /// furnished to do so, subject to the following conditions:
11 | ///
12 | /// The above copyright notice and this permission notice shall be included in
13 | /// all copies or substantial portions of the Software.
14 | ///
15 | /// Restrictions:
16 | /// By making use of the Software for military purposes, you choose to make
17 | /// a Bunny unhappy.
18 | ///
19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25 | /// THE SOFTWARE.
26 | ///
27 | /// @ref gtx_log_base
28 | /// @file glm/gtx/log_base.hpp
29 | /// @date 2008-10-24 / 2011-06-07
30 | /// @author Christophe Riccio
31 | ///
32 | /// @see core (dependence)
33 | ///
34 | /// @defgroup gtx_log_base GLM_GTX_log_base
35 | /// @ingroup gtx
36 | ///
37 | /// @brief Logarithm for any base. base can be a vector or a scalar.
38 | ///
39 | /// need to be included to use these functionalities.
40 | ///////////////////////////////////////////////////////////////////////////////////
41 |
42 | #pragma once
43 |
44 | // Dependency:
45 | #include "../glm.hpp"
46 |
47 | #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
48 | # pragma message("GLM: GLM_GTX_log_base extension included")
49 | #endif
50 |
51 | namespace glm
52 | {
53 | /// @addtogroup gtx_log_base
54 | /// @{
55 |
56 | //! Logarithm for any base.
57 | //! From GLM_GTX_log_base.
58 | template
59 | GLM_FUNC_DECL genType log(
60 | genType x,
61 | genType base);
62 |
63 | //! Logarithm for any base.
64 | //! From GLM_GTX_log_base.
65 | template class vecType>
66 | GLM_FUNC_DECL vecType sign(
67 | vecType const & x,
68 | vecType const & base);
69 |
70 | /// @}
71 | }//namespace glm
72 |
73 | #include "log_base.inl"
74 |
--------------------------------------------------------------------------------
/3rdparty/include/glm/gtx/log_base.inl:
--------------------------------------------------------------------------------
1 | ///////////////////////////////////////////////////////////////////////////////////
2 | /// OpenGL Mathematics (glm.g-truc.net)
3 | ///
4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy
6 | /// of this software and associated documentation files (the "Software"), to deal
7 | /// in the Software without restriction, including without limitation the rights
8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | /// copies of the Software, and to permit persons to whom the Software is
10 | /// furnished to do so, subject to the following conditions:
11 | ///
12 | /// The above copyright notice and this permission notice shall be included in
13 | /// all copies or substantial portions of the Software.
14 | ///
15 | /// Restrictions:
16 | /// By making use of the Software for military purposes, you choose to make
17 | /// a Bunny unhappy.
18 | ///
19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25 | /// THE SOFTWARE.
26 | ///
27 | /// @ref gtx_log_base
28 | /// @file glm/gtx/log_base.inl
29 | /// @date 2008-10-24 / 2014-11-25
30 | /// @author Christophe Riccio
31 | ///////////////////////////////////////////////////////////////////////////////////
32 |
33 | namespace glm
34 | {
35 | template
36 | GLM_FUNC_QUALIFIER genType log(genType const & x, genType const & base)
37 | {
38 | assert(x != genType(0));
39 | return glm::log(x) / glm::log(base);
40 | }
41 |
42 | template class vecType>
43 | GLM_FUNC_QUALIFIER vecType log(vecType const & x, vecType const & base)
44 | {
45 | return glm::log(x) / glm::log(base);
46 | }
47 | }//namespace glm
48 |
--------------------------------------------------------------------------------
/3rdparty/include/glm/gtx/matrix_cross_product.hpp:
--------------------------------------------------------------------------------
1 | ///////////////////////////////////////////////////////////////////////////////////
2 | /// OpenGL Mathematics (glm.g-truc.net)
3 | ///
4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy
6 | /// of this software and associated documentation files (the "Software"), to deal
7 | /// in the Software without restriction, including without limitation the rights
8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | /// copies of the Software, and to permit persons to whom the Software is
10 | /// furnished to do so, subject to the following conditions:
11 | ///
12 | /// The above copyright notice and this permission notice shall be included in
13 | /// all copies or substantial portions of the Software.
14 | ///
15 | /// Restrictions:
16 | /// By making use of the Software for military purposes, you choose to make
17 | /// a Bunny unhappy.
18 | ///
19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25 | /// THE SOFTWARE.
26 | ///
27 | /// @ref gtx_matrix_cross_product
28 | /// @file glm/gtx/matrix_cross_product.hpp
29 | /// @date 2005-12-21 / 2011-06-07
30 | /// @author Christophe Riccio
31 | ///
32 | /// @see core (dependence)
33 | /// @see gtx_extented_min_max (dependence)
34 | ///
35 | /// @defgroup gtx_matrix_cross_product GLM_GTX_matrix_cross_product
36 | /// @ingroup gtx
37 | ///
38 | /// @brief Build cross product matrices
39 | ///
40 | /// need to be included to use these functionalities.
41 | ///////////////////////////////////////////////////////////////////////////////////
42 |
43 | #pragma once
44 |
45 | // Dependency:
46 | #include "../glm.hpp"
47 |
48 | #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
49 | # pragma message("GLM: GLM_GTX_matrix_cross_product extension included")
50 | #endif
51 |
52 | namespace glm
53 | {
54 | /// @addtogroup gtx_matrix_cross_product
55 | /// @{
56 |
57 | //! Build a cross product matrix.
58 | //! From GLM_GTX_matrix_cross_product extension.
59 | template
60 | GLM_FUNC_DECL tmat3x3 matrixCross3(
61 | tvec3 const & x);
62 |
63 | //! Build a cross product matrix.
64 | //! From GLM_GTX_matrix_cross_product extension.
65 | template
66 | GLM_FUNC_DECL tmat4x4 matrixCross4(
67 | tvec3 const & x);
68 |
69 | /// @}
70 | }//namespace glm
71 |
72 | #include "matrix_cross_product.inl"
73 |
--------------------------------------------------------------------------------
/3rdparty/include/glm/gtx/matrix_cross_product.inl:
--------------------------------------------------------------------------------
1 | ///////////////////////////////////////////////////////////////////////////////////
2 | /// OpenGL Mathematics (glm.g-truc.net)
3 | ///
4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy
6 | /// of this software and associated documentation files (the "Software"), to deal
7 | /// in the Software without restriction, including without limitation the rights
8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | /// copies of the Software, and to permit persons to whom the Software is
10 | /// furnished to do so, subject to the following conditions:
11 | ///
12 | /// The above copyright notice and this permission notice shall be included in
13 | /// all copies or substantial portions of the Software.
14 | ///
15 | /// Restrictions:
16 | /// By making use of the Software for military purposes, you choose to make
17 | /// a Bunny unhappy.
18 | ///
19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25 | /// THE SOFTWARE.
26 | ///
27 | /// @ref gtx_matrix_cross_product
28 | /// @file glm/gtx/matrix_cross_product.inl
29 | /// @date 2005-12-21 / 2005-12-21
30 | /// @author Christophe Riccio
31 | ///////////////////////////////////////////////////////////////////////////////////
32 |
33 | namespace glm
34 | {
35 | template
36 | GLM_FUNC_QUALIFIER tmat3x3 matrixCross3
37 | (
38 | tvec3 const & x
39 | )
40 | {
41 | tmat3x3 Result(T(0));
42 | Result[0][1] = x.z;
43 | Result[1][0] = -x.z;
44 | Result[0][2] = -x.y;
45 | Result[2][0] = x.y;
46 | Result[1][2] = x.x;
47 | Result[2][1] = -x.x;
48 | return Result;
49 | }
50 |
51 | template
52 | GLM_FUNC_QUALIFIER tmat4x4 matrixCross4
53 | (
54 | tvec3 const & x
55 | )
56 | {
57 | tmat4x4 Result(T(0));
58 | Result[0][1] = x.z;
59 | Result[1][0] = -x.z;
60 | Result[0][2] = -x.y;
61 | Result[2][0] = x.y;
62 | Result[1][2] = x.x;
63 | Result[2][1] = -x.x;
64 | return Result;
65 | }
66 |
67 | }//namespace glm
68 |
--------------------------------------------------------------------------------
/3rdparty/include/glm/gtx/matrix_decompose.hpp:
--------------------------------------------------------------------------------
1 | ///////////////////////////////////////////////////////////////////////////////////
2 | /// OpenGL Mathematics (glm.g-truc.net)
3 | ///
4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy
6 | /// of this software and associated documentation files (the "Software"), to deal
7 | /// in the Software without restriction, including without limitation the rights
8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | /// copies of the Software, and to permit persons to whom the Software is
10 | /// furnished to do so, subject to the following conditions:
11 | ///
12 | /// The above copyright notice and this permission notice shall be included in
13 | /// all copies or substantial portions of the Software.
14 | ///
15 | /// Restrictions:
16 | /// By making use of the Software for military purposes, you choose to make
17 | /// a Bunny unhappy.
18 | ///
19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25 | /// THE SOFTWARE.
26 | ///
27 | /// @ref gtx_matrix_decompose
28 | /// @file glm/gtx/matrix_decompose.hpp
29 | /// @date 2014-08-29 / 2014-08-29
30 | /// @author Christophe Riccio
31 | ///
32 | /// @see core (dependence)
33 | ///
34 | /// @defgroup gtx_matrix_decompose GLM_GTX_matrix_decompose
35 | /// @ingroup gtx
36 | ///
37 | /// @brief Decomposes a model matrix to translations, rotation and scale components
38 | ///
39 | /// need to be included to use these functionalities.
40 | ///////////////////////////////////////////////////////////////////////////////////
41 |
42 | #pragma once
43 |
44 | // Dependencies
45 | #include "../mat4x4.hpp"
46 | #include "../vec3.hpp"
47 | #include "../vec4.hpp"
48 | #include "../gtc/quaternion.hpp"
49 | #include "../gtc/matrix_transform.hpp"
50 |
51 | #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
52 | # pragma message("GLM: GLM_GTX_matrix_decompose extension included")
53 | #endif
54 |
55 | namespace glm
56 | {
57 | /// @addtogroup gtx_matrix_decompose
58 | /// @{
59 |
60 | /// Decomposes a model matrix to translations, rotation and scale components
61 | /// @see gtx_matrix_decompose
62 | template
63 | GLM_FUNC_DECL bool decompose(
64 | tmat4x4 const & modelMatrix,
65 | tvec3 & scale, tquat & orientation, tvec3 & translation, tvec3 & skew, tvec4 & perspective);
66 |
67 | /// @}
68 | }//namespace glm
69 |
70 | #include "matrix_decompose.inl"
71 |
--------------------------------------------------------------------------------
/3rdparty/include/glm/gtx/mixed_product.hpp:
--------------------------------------------------------------------------------
1 | ///////////////////////////////////////////////////////////////////////////////////
2 | /// OpenGL Mathematics (glm.g-truc.net)
3 | ///
4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy
6 | /// of this software and associated documentation files (the "Software"), to deal
7 | /// in the Software without restriction, including without limitation the rights
8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | /// copies of the Software, and to permit persons to whom the Software is
10 | /// furnished to do so, subject to the following conditions:
11 | ///
12 | /// The above copyright notice and this permission notice shall be included in
13 | /// all copies or substantial portions of the Software.
14 | ///
15 | /// Restrictions:
16 | /// By making use of the Software for military purposes, you choose to make
17 | /// a Bunny unhappy.
18 | ///
19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25 | /// THE SOFTWARE.
26 | ///
27 | /// @ref gtx_mixed_product
28 | /// @file glm/gtx/mixed_product.hpp
29 | /// @date 2007-04-03 / 2011-06-07
30 | /// @author Christophe Riccio
31 | ///
32 | /// @see core (dependence)
33 | ///
34 | /// @defgroup gtx_mixed_product GLM_GTX_mixed_producte
35 | /// @ingroup gtx
36 | ///
37 | /// @brief Mixed product of 3 vectors.
38 | ///
39 | /// need to be included to use these functionalities.
40 | ///////////////////////////////////////////////////////////////////////////////////
41 |
42 | #pragma once
43 |
44 | // Dependency:
45 | #include "../glm.hpp"
46 |
47 | #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
48 | # pragma message("GLM: GLM_GTX_mixed_product extension included")
49 | #endif
50 |
51 | namespace glm
52 | {
53 | /// @addtogroup gtx_mixed_product
54 | /// @{
55 |
56 | /// @brief Mixed product of 3 vectors (from GLM_GTX_mixed_product extension)
57 | template
58 | GLM_FUNC_DECL T mixedProduct(
59 | tvec3 const & v1,
60 | tvec3 const & v2,
61 | tvec3 const & v3);
62 |
63 | /// @}
64 | }// namespace glm
65 |
66 | #include "mixed_product.inl"
67 |
--------------------------------------------------------------------------------
/3rdparty/include/glm/gtx/mixed_product.inl:
--------------------------------------------------------------------------------
1 | ///////////////////////////////////////////////////////////////////////////////////
2 | /// OpenGL Mathematics (glm.g-truc.net)
3 | ///
4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy
6 | /// of this software and associated documentation files (the "Software"), to deal
7 | /// in the Software without restriction, including without limitation the rights
8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | /// copies of the Software, and to permit persons to whom the Software is
10 | /// furnished to do so, subject to the following conditions:
11 | ///
12 | /// The above copyright notice and this permission notice shall be included in
13 | /// all copies or substantial portions of the Software.
14 | ///
15 | /// Restrictions:
16 | /// By making use of the Software for military purposes, you choose to make
17 | /// a Bunny unhappy.
18 | ///
19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25 | /// THE SOFTWARE.
26 | ///
27 | /// @ref gtx_mixed_product
28 | /// @file glm/gtx/mixed_product.inl
29 | /// @date 2007-04-03 / 2008-09-17
30 | /// @author Christophe Riccio
31 | ///////////////////////////////////////////////////////////////////////////////////
32 |
33 | namespace glm
34 | {
35 | template
36 | GLM_FUNC_QUALIFIER T mixedProduct
37 | (
38 | tvec3 const & v1,
39 | tvec3 const & v2,
40 | tvec3 const & v3
41 | )
42 | {
43 | return dot(cross(v1, v2), v3);
44 | }
45 | }//namespace glm
46 |
--------------------------------------------------------------------------------
/3rdparty/include/glm/gtx/multiple.inl:
--------------------------------------------------------------------------------
1 | ///////////////////////////////////////////////////////////////////////////////////
2 | /// OpenGL Mathematics (glm.g-truc.net)
3 | ///
4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy
6 | /// of this software and associated documentation files (the "Software"), to deal
7 | /// in the Software without restriction, including without limitation the rights
8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | /// copies of the Software, and to permit persons to whom the Software is
10 | /// furnished to do so, subject to the following conditions:
11 | ///
12 | /// The above copyright notice and this permission notice shall be included in
13 | /// all copies or substantial portions of the Software.
14 | ///
15 | /// Restrictions:
16 | /// By making use of the Software for military purposes, you choose to make
17 | /// a Bunny unhappy.
18 | ///
19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25 | /// THE SOFTWARE.
26 | ///
27 | /// @ref gtx_multiple
28 | /// @file glm/gtx/multiple.inl
29 | /// @date 2009-10-26 / 2011-06-07
30 | /// @author Christophe Riccio
31 | ///////////////////////////////////////////////////////////////////////////////////
32 |
33 | namespace glm
34 | {
35 | //////////////////////
36 | // higherMultiple
37 |
38 | template
39 | GLM_FUNC_QUALIFIER genType higherMultiple(genType Source, genType Multiple)
40 | {
41 | return detail::compute_ceilMultiple::is_iec559, std::numeric_limits::is_signed>::call(Source, Multiple);
42 | }
43 |
44 | template class vecType>
45 | GLM_FUNC_QUALIFIER vecType higherMultiple(vecType const & Source, vecType const & Multiple)
46 | {
47 | return detail::functor2::call(higherMultiple, Source, Multiple);
48 | }
49 |
50 | //////////////////////
51 | // lowerMultiple
52 |
53 | template
54 | GLM_FUNC_QUALIFIER genType lowerMultiple(genType Source, genType Multiple)
55 | {
56 | return detail::compute_floorMultiple::is_iec559, std::numeric_limits::is_signed>::call(Source, Multiple);
57 | }
58 |
59 | template class vecType>
60 | GLM_FUNC_QUALIFIER vecType lowerMultiple(vecType const & Source, vecType const & Multiple)
61 | {
62 | return detail::functor2::call(lowerMultiple, Source, Multiple);
63 | }
64 | }//namespace glm
65 |
--------------------------------------------------------------------------------
/3rdparty/include/glm/gtx/normal.hpp:
--------------------------------------------------------------------------------
1 | ///////////////////////////////////////////////////////////////////////////////////
2 | /// OpenGL Mathematics (glm.g-truc.net)
3 | ///
4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy
6 | /// of this software and associated documentation files (the "Software"), to deal
7 | /// in the Software without restriction, including without limitation the rights
8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | /// copies of the Software, and to permit persons to whom the Software is
10 | /// furnished to do so, subject to the following conditions:
11 | ///
12 | /// The above copyright notice and this permission notice shall be included in
13 | /// all copies or substantial portions of the Software.
14 | ///
15 | /// Restrictions:
16 | /// By making use of the Software for military purposes, you choose to make
17 | /// a Bunny unhappy.
18 | ///
19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25 | /// THE SOFTWARE.
26 | ///
27 | /// @ref gtx_normal
28 | /// @file glm/gtx/normal.hpp
29 | /// @date 2005-12-21 / 2011-06-07
30 | /// @author Christophe Riccio
31 | ///
32 | /// @see core (dependence)
33 | /// @see gtx_extented_min_max (dependence)
34 | ///
35 | /// @defgroup gtx_normal GLM_GTX_normal
36 | /// @ingroup gtx
37 | ///
38 | /// @brief Compute the normal of a triangle.
39 | ///
40 | /// need to be included to use these functionalities.
41 | ///////////////////////////////////////////////////////////////////////////////////
42 |
43 | #pragma once
44 |
45 | // Dependency:
46 | #include "../glm.hpp"
47 |
48 | #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
49 | # pragma message("GLM: GLM_GTX_normal extension included")
50 | #endif
51 |
52 | namespace glm
53 | {
54 | /// @addtogroup gtx_normal
55 | /// @{
56 |
57 | //! Computes triangle normal from triangle points.
58 | //! From GLM_GTX_normal extension.
59 | template
60 | GLM_FUNC_DECL tvec3 triangleNormal(
61 | tvec3 const & p1,
62 | tvec3 const & p2,
63 | tvec3 const & p3);
64 |
65 | /// @}
66 | }//namespace glm
67 |
68 | #include "normal.inl"
69 |
--------------------------------------------------------------------------------
/3rdparty/include/glm/gtx/normal.inl:
--------------------------------------------------------------------------------
1 | ///////////////////////////////////////////////////////////////////////////////////
2 | /// OpenGL Mathematics (glm.g-truc.net)
3 | ///
4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy
6 | /// of this software and associated documentation files (the "Software"), to deal
7 | /// in the Software without restriction, including without limitation the rights
8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | /// copies of the Software, and to permit persons to whom the Software is
10 | /// furnished to do so, subject to the following conditions:
11 | ///
12 | /// The above copyright notice and this permission notice shall be included in
13 | /// all copies or substantial portions of the Software.
14 | ///
15 | /// Restrictions:
16 | /// By making use of the Software for military purposes, you choose to make
17 | /// a Bunny unhappy.
18 | ///
19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25 | /// THE SOFTWARE.
26 | ///
27 | /// @ref gtx_normal
28 | /// @file glm/gtx/normal.inl
29 | /// @date 2005-12-21 / 2011-06-07
30 | /// @author Christophe Riccio
31 | ///////////////////////////////////////////////////////////////////////////////////
32 |
33 | namespace glm
34 | {
35 | template
36 | GLM_FUNC_QUALIFIER tvec3 triangleNormal
37 | (
38 | tvec3 const & p1,
39 | tvec3 const & p2,
40 | tvec3 const & p3
41 | )
42 | {
43 | return normalize(cross(p1 - p2, p1 - p3));
44 | }
45 | }//namespace glm
46 |
--------------------------------------------------------------------------------
/3rdparty/include/glm/gtx/normalize_dot.inl:
--------------------------------------------------------------------------------
1 | ///////////////////////////////////////////////////////////////////////////////////
2 | /// OpenGL Mathematics (glm.g-truc.net)
3 | ///
4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy
6 | /// of this software and associated documentation files (the "Software"), to deal
7 | /// in the Software without restriction, including without limitation the rights
8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | /// copies of the Software, and to permit persons to whom the Software is
10 | /// furnished to do so, subject to the following conditions:
11 | ///
12 | /// The above copyright notice and this permission notice shall be included in
13 | /// all copies or substantial portions of the Software.
14 | ///
15 | /// Restrictions:
16 | /// By making use of the Software for military purposes, you choose to make
17 | /// a Bunny unhappy.
18 | ///
19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25 | /// THE SOFTWARE.
26 | ///
27 | /// @ref gtx_normalize_dot
28 | /// @file glm/gtx/normalize_dot.inl
29 | /// @date 2007-09-28 / 2008-10-07
30 | /// @author Christophe Riccio
31 | //////////////////////////////////////////////////////////////////////////////////
32 |
33 | namespace glm
34 | {
35 | template class vecType>
36 | GLM_FUNC_QUALIFIER T normalizeDot(vecType const & x, vecType const & y)
37 | {
38 | return glm::dot(x, y) * glm::inversesqrt(glm::dot(x, x) * glm::dot(y, y));
39 | }
40 |
41 | template class vecType>
42 | GLM_FUNC_QUALIFIER T fastNormalizeDot(vecType const & x, vecType const & y)
43 | {
44 | return glm::dot(x, y) * glm::fastInverseSqrt(glm::dot(x, x) * glm::dot(y, y));
45 | }
46 | }//namespace glm
47 |
--------------------------------------------------------------------------------
/3rdparty/include/glm/gtx/number_precision.inl:
--------------------------------------------------------------------------------
1 | ///////////////////////////////////////////////////////////////////////////////////
2 | /// OpenGL Mathematics (glm.g-truc.net)
3 | ///
4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy
6 | /// of this software and associated documentation files (the "Software"), to deal
7 | /// in the Software without restriction, including without limitation the rights
8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | /// copies of the Software, and to permit persons to whom the Software is
10 | /// furnished to do so, subject to the following conditions:
11 | ///
12 | /// The above copyright notice and this permission notice shall be included in
13 | /// all copies or substantial portions of the Software.
14 | ///
15 | /// Restrictions:
16 | /// By making use of the Software for military purposes, you choose to make
17 | /// a Bunny unhappy.
18 | ///
19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25 | /// THE SOFTWARE.
26 | ///
27 | /// @ref gtx_number_precision
28 | /// @file glm/gtx/number_precision.inl
29 | /// @date 2007-05-10 / 2011-06-07
30 | /// @author Christophe Riccio
31 | ///////////////////////////////////////////////////////////////////////////////////
32 |
33 | namespace glm
34 | {
35 |
36 | }
37 |
--------------------------------------------------------------------------------
/3rdparty/include/glm/gtx/optimum_pow.hpp:
--------------------------------------------------------------------------------
1 | ///////////////////////////////////////////////////////////////////////////////////
2 | /// OpenGL Mathematics (glm.g-truc.net)
3 | ///
4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy
6 | /// of this software and associated documentation files (the "Software"), to deal
7 | /// in the Software without restriction, including without limitation the rights
8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | /// copies of the Software, and to permit persons to whom the Software is
10 | /// furnished to do so, subject to the following conditions:
11 | ///
12 | /// The above copyright notice and this permission notice shall be included in
13 | /// all copies or substantial portions of the Software.
14 | ///
15 | /// Restrictions:
16 | /// By making use of the Software for military purposes, you choose to make
17 | /// a Bunny unhappy.
18 | ///
19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25 | /// THE SOFTWARE.
26 | ///
27 | /// @ref gtx_optimum_pow
28 | /// @file glm/gtx/optimum_pow.hpp
29 | /// @date 2005-12-21 / 2011-06-07
30 | /// @author Christophe Riccio
31 | ///
32 | /// @see core (dependence)
33 | ///
34 | /// @defgroup gtx_optimum_pow GLM_GTX_optimum_pow
35 | /// @ingroup gtx
36 | ///
37 | /// @brief Integer exponentiation of power functions.
38 | ///
39 | /// need to be included to use these functionalities.
40 | ///////////////////////////////////////////////////////////////////////////////////
41 |
42 | #pragma once
43 |
44 | // Dependency:
45 | #include "../glm.hpp"
46 |
47 | #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
48 | # pragma message("GLM: GLM_GTX_optimum_pow extension included")
49 | #endif
50 |
51 | namespace glm{
52 | namespace gtx
53 | {
54 | /// @addtogroup gtx_optimum_pow
55 | /// @{
56 |
57 | /// Returns x raised to the power of 2.
58 | ///
59 | /// @see gtx_optimum_pow
60 | template
61 | GLM_FUNC_DECL genType pow2(genType const & x);
62 |
63 | /// Returns x raised to the power of 3.
64 | ///
65 | /// @see gtx_optimum_pow
66 | template
67 | GLM_FUNC_DECL genType pow3(genType const & x);
68 |
69 | /// Returns x raised to the power of 4.
70 | ///
71 | /// @see gtx_optimum_pow
72 | template
73 | GLM_FUNC_DECL genType pow4(genType const & x);
74 |
75 | /// @}
76 | }//namespace gtx
77 | }//namespace glm
78 |
79 | #include "optimum_pow.inl"
80 |
--------------------------------------------------------------------------------
/3rdparty/include/glm/gtx/optimum_pow.inl:
--------------------------------------------------------------------------------
1 | ///////////////////////////////////////////////////////////////////////////////////
2 | /// OpenGL Mathematics (glm.g-truc.net)
3 | ///
4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy
6 | /// of this software and associated documentation files (the "Software"), to deal
7 | /// in the Software without restriction, including without limitation the rights
8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | /// copies of the Software, and to permit persons to whom the Software is
10 | /// furnished to do so, subject to the following conditions:
11 | ///
12 | /// The above copyright notice and this permission notice shall be included in
13 | /// all copies or substantial portions of the Software.
14 | ///
15 | /// Restrictions:
16 | /// By making use of the Software for military purposes, you choose to make
17 | /// a Bunny unhappy.
18 | ///
19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25 | /// THE SOFTWARE.
26 | ///
27 | /// @ref gtx_optimum_pow
28 | /// @file glm/gtx/optimum_pow.inl
29 | /// @date 2005-12-21 / 2011-06-07
30 | /// @author Christophe Riccio
31 | ///////////////////////////////////////////////////////////////////////////////////
32 |
33 | namespace glm
34 | {
35 | template
36 | GLM_FUNC_QUALIFIER genType pow2(genType const & x)
37 | {
38 | return x * x;
39 | }
40 |
41 | template
42 | GLM_FUNC_QUALIFIER genType pow3(genType const & x)
43 | {
44 | return x * x * x;
45 | }
46 |
47 | template
48 | GLM_FUNC_QUALIFIER genType pow4(genType const & x)
49 | {
50 | return (x * x) * (x * x);
51 | }
52 | }//namespace glm
53 |
--------------------------------------------------------------------------------
/3rdparty/include/glm/gtx/orthonormalize.hpp:
--------------------------------------------------------------------------------
1 | ///////////////////////////////////////////////////////////////////////////////////
2 | /// OpenGL Mathematics (glm.g-truc.net)
3 | ///
4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy
6 | /// of this software and associated documentation files (the "Software"), to deal
7 | /// in the Software without restriction, including without limitation the rights
8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | /// copies of the Software, and to permit persons to whom the Software is
10 | /// furnished to do so, subject to the following conditions:
11 | ///
12 | /// The above copyright notice and this permission notice shall be included in
13 | /// all copies or substantial portions of the Software.
14 | ///
15 | /// Restrictions:
16 | /// By making use of the Software for military purposes, you choose to make
17 | /// a Bunny unhappy.
18 | ///
19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25 | /// THE SOFTWARE.
26 | ///
27 | /// @ref gtx_orthonormalize
28 | /// @file glm/gtx/orthonormalize.hpp
29 | /// @date 2005-12-21 / 2011-06-07
30 | /// @author Christophe Riccio
31 | ///
32 | /// @see core (dependence)
33 | /// @see gtx_extented_min_max (dependence)
34 | ///
35 | /// @defgroup gtx_orthonormalize GLM_GTX_orthonormalize
36 | /// @ingroup gtx
37 | ///
38 | /// @brief Orthonormalize matrices.
39 | ///
40 | /// need to be included to use these functionalities.
41 | ///////////////////////////////////////////////////////////////////////////////////
42 |
43 | #pragma once
44 |
45 | // Dependency:
46 | #include "../vec3.hpp"
47 | #include "../mat3x3.hpp"
48 | #include "../geometric.hpp"
49 |
50 | #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
51 | # pragma message("GLM: GLM_GTX_orthonormalize extension included")
52 | #endif
53 |
54 | namespace glm
55 | {
56 | /// @addtogroup gtx_orthonormalize
57 | /// @{
58 |
59 | /// Returns the orthonormalized matrix of m.
60 | ///
61 | /// @see gtx_orthonormalize
62 | template
63 | GLM_FUNC_DECL tmat3x3 orthonormalize(tmat3x3 const & m);
64 |
65 | /// Orthonormalizes x according y.
66 | ///
67 | /// @see gtx_orthonormalize
68 | template
69 | GLM_FUNC_DECL tvec3 orthonormalize(tvec3 const & x, tvec3 const & y);
70 |
71 | /// @}
72 | }//namespace glm
73 |
74 | #include "orthonormalize.inl"
75 |
--------------------------------------------------------------------------------
/3rdparty/include/glm/gtx/orthonormalize.inl:
--------------------------------------------------------------------------------
1 | ///////////////////////////////////////////////////////////////////////////////////
2 | /// OpenGL Mathematics (glm.g-truc.net)
3 | ///
4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy
6 | /// of this software and associated documentation files (the "Software"), to deal
7 | /// in the Software without restriction, including without limitation the rights
8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | /// copies of the Software, and to permit persons to whom the Software is
10 | /// furnished to do so, subject to the following conditions:
11 | ///
12 | /// The above copyright notice and this permission notice shall be included in
13 | /// all copies or substantial portions of the Software.
14 | ///
15 | /// Restrictions:
16 | /// By making use of the Software for military purposes, you choose to make
17 | /// a Bunny unhappy.
18 | ///
19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25 | /// THE SOFTWARE.
26 | ///
27 | /// @ref gtx_orthonormalize
28 | /// @file glm/gtx/orthonormalize.inl
29 | /// @date 2005-12-21 / 2011-06-07
30 | /// @author Christophe Riccio
31 | ///////////////////////////////////////////////////////////////////////////////////
32 |
33 | namespace glm
34 | {
35 | template
36 | GLM_FUNC_QUALIFIER tmat3x3 orthonormalize(tmat3x3 const & m)
37 | {
38 | tmat3x3 r = m;
39 |
40 | r[0] = normalize(r[0]);
41 |
42 | T d0 = dot(r[0], r[1]);
43 | r[1] -= r[0] * d0;
44 | r[1] = normalize(r[1]);
45 |
46 | T d1 = dot(r[1], r[2]);
47 | d0 = dot(r[0], r[2]);
48 | r[2] -= r[0] * d0 + r[1] * d1;
49 | r[2] = normalize(r[2]);
50 |
51 | return r;
52 | }
53 |
54 | template
55 | GLM_FUNC_QUALIFIER tvec3 orthonormalize(tvec3 const & x, tvec3 const & y)
56 | {
57 | return normalize(x - y * dot(y, x));
58 | }
59 | }//namespace glm
60 |
--------------------------------------------------------------------------------
/3rdparty/include/glm/gtx/perpendicular.hpp:
--------------------------------------------------------------------------------
1 | ///////////////////////////////////////////////////////////////////////////////////
2 | /// OpenGL Mathematics (glm.g-truc.net)
3 | ///
4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy
6 | /// of this software and associated documentation files (the "Software"), to deal
7 | /// in the Software without restriction, including without limitation the rights
8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | /// copies of the Software, and to permit persons to whom the Software is
10 | /// furnished to do so, subject to the following conditions:
11 | ///
12 | /// The above copyright notice and this permission notice shall be included in
13 | /// all copies or substantial portions of the Software.
14 | ///
15 | /// Restrictions:
16 | /// By making use of the Software for military purposes, you choose to make
17 | /// a Bunny unhappy.
18 | ///
19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25 | /// THE SOFTWARE.
26 | ///
27 | /// @ref gtx_perpendicular
28 | /// @file glm/gtx/perpendicular.hpp
29 | /// @date 2005-12-21 / 2011-06-07
30 | /// @author Christophe Riccio
31 | ///
32 | /// @see core (dependence)
33 | /// @see gtx_projection (dependence)
34 | ///
35 | /// @defgroup gtx_perpendicular GLM_GTX_perpendicular
36 | /// @ingroup gtx
37 | ///
38 | /// @brief Perpendicular of a vector from other one
39 | ///
40 | /// need to be included to use these functionalities.
41 | ///////////////////////////////////////////////////////////////////////////////////
42 |
43 | #pragma once
44 |
45 | // Dependency:
46 | #include "../glm.hpp"
47 | #include "../gtx/projection.hpp"
48 |
49 | #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
50 | # pragma message("GLM: GLM_GTX_perpendicular extension included")
51 | #endif
52 |
53 | namespace glm
54 | {
55 | /// @addtogroup gtx_perpendicular
56 | /// @{
57 |
58 | //! Projects x a perpendicular axis of Normal.
59 | //! From GLM_GTX_perpendicular extension.
60 | template
61 | GLM_FUNC_DECL vecType perp(
62 | vecType const & x,
63 | vecType const & Normal);
64 |
65 | /// @}
66 | }//namespace glm
67 |
68 | #include "perpendicular.inl"
69 |
--------------------------------------------------------------------------------
/3rdparty/include/glm/gtx/perpendicular.inl:
--------------------------------------------------------------------------------
1 | ///////////////////////////////////////////////////////////////////////////////////
2 | /// OpenGL Mathematics (glm.g-truc.net)
3 | ///
4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy
6 | /// of this software and associated documentation files (the "Software"), to deal
7 | /// in the Software without restriction, including without limitation the rights
8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | /// copies of the Software, and to permit persons to whom the Software is
10 | /// furnished to do so, subject to the following conditions:
11 | ///
12 | /// The above copyright notice and this permission notice shall be included in
13 | /// all copies or substantial portions of the Software.
14 | ///
15 | /// Restrictions:
16 | /// By making use of the Software for military purposes, you choose to make
17 | /// a Bunny unhappy.
18 | ///
19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25 | /// THE SOFTWARE.
26 | ///
27 | /// @ref gtx_perpendicular
28 | /// @file glm/gtx/perpendicular.inl
29 | /// @date 2005-12-21 / 2011-06-07
30 | /// @author Christophe Riccio
31 | ///////////////////////////////////////////////////////////////////////////////////
32 |
33 | namespace glm
34 | {
35 | template
36 | GLM_FUNC_QUALIFIER vecType perp
37 | (
38 | vecType const & x,
39 | vecType const & Normal
40 | )
41 | {
42 | return x - proj(x, Normal);
43 | }
44 | }//namespace glm
45 |
--------------------------------------------------------------------------------
/3rdparty/include/glm/gtx/polar_coordinates.hpp:
--------------------------------------------------------------------------------
1 | ///////////////////////////////////////////////////////////////////////////////////
2 | /// OpenGL Mathematics (glm.g-truc.net)
3 | ///
4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy
6 | /// of this software and associated documentation files (the "Software"), to deal
7 | /// in the Software without restriction, including without limitation the rights
8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | /// copies of the Software, and to permit persons to whom the Software is
10 | /// furnished to do so, subject to the following conditions:
11 | ///
12 | /// The above copyright notice and this permission notice shall be included in
13 | /// all copies or substantial portions of the Software.
14 | ///
15 | /// Restrictions:
16 | /// By making use of the Software for military purposes, you choose to make
17 | /// a Bunny unhappy.
18 | ///
19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25 | /// THE SOFTWARE.
26 | ///
27 | /// @ref gtx_polar_coordinates
28 | /// @file glm/gtx/polar_coordinates.hpp
29 | /// @date 2007-03-06 / 2011-06-07
30 | /// @author Christophe Riccio
31 | ///
32 | /// @see core (dependence)
33 | ///
34 | /// @defgroup gtx_polar_coordinates GLM_GTX_polar_coordinates
35 | /// @ingroup gtx
36 | ///
37 | /// @brief Conversion from Euclidean space to polar space and revert.
38 | ///
39 | /// need to be included to use these functionalities.
40 | ///////////////////////////////////////////////////////////////////////////////////
41 |
42 | #pragma once
43 |
44 | // Dependency:
45 | #include "../glm.hpp"
46 |
47 | #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
48 | # pragma message("GLM: GLM_GTX_polar_coordinates extension included")
49 | #endif
50 |
51 | namespace glm
52 | {
53 | /// @addtogroup gtx_polar_coordinates
54 | /// @{
55 |
56 | /// Convert Euclidean to Polar coordinates, x is the xz distance, y, the latitude and z the longitude.
57 | ///
58 | /// @see gtx_polar_coordinates
59 | template
60 | GLM_FUNC_DECL tvec3 polar(
61 | tvec3 const & euclidean);
62 |
63 | /// Convert Polar to Euclidean coordinates.
64 | ///
65 | /// @see gtx_polar_coordinates
66 | template
67 | GLM_FUNC_DECL tvec3 euclidean(
68 | tvec2 const & polar);
69 |
70 | /// @}
71 | }//namespace glm
72 |
73 | #include "polar_coordinates.inl"
74 |
--------------------------------------------------------------------------------
/3rdparty/include/glm/gtx/polar_coordinates.inl:
--------------------------------------------------------------------------------
1 | ///////////////////////////////////////////////////////////////////////////////////
2 | /// OpenGL Mathematics (glm.g-truc.net)
3 | ///
4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy
6 | /// of this software and associated documentation files (the "Software"), to deal
7 | /// in the Software without restriction, including without limitation the rights
8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | /// copies of the Software, and to permit persons to whom the Software is
10 | /// furnished to do so, subject to the following conditions:
11 | ///
12 | /// The above copyright notice and this permission notice shall be included in
13 | /// all copies or substantial portions of the Software.
14 | ///
15 | /// Restrictions:
16 | /// By making use of the Software for military purposes, you choose to make
17 | /// a Bunny unhappy.
18 | ///
19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25 | /// THE SOFTWARE.
26 | ///
27 | /// @ref gtx_polar_coordinates
28 | /// @file glm/gtx/polar_coordinates.inl
29 | /// @date 2007-03-06 / 2011-06-07
30 | /// @author Christophe Riccio
31 | ///////////////////////////////////////////////////////////////////////////////////
32 |
33 | namespace glm
34 | {
35 | template
36 | GLM_FUNC_QUALIFIER tvec3 polar
37 | (
38 | tvec3 const & euclidean
39 | )
40 | {
41 | T const Length(length(euclidean));
42 | tvec3 const tmp(euclidean / Length);
43 | T const xz_dist(sqrt(tmp.x * tmp.x + tmp.z * tmp.z));
44 |
45 | return tvec3(
46 | atan(xz_dist, tmp.y), // latitude
47 | atan(tmp.x, tmp.z), // longitude
48 | xz_dist); // xz distance
49 | }
50 |
51 | template
52 | GLM_FUNC_QUALIFIER tvec3 euclidean
53 | (
54 | tvec2 const & polar
55 | )
56 | {
57 | T const latitude(polar.x);
58 | T const longitude(polar.y);
59 |
60 | return tvec3(
61 | cos(latitude) * sin(longitude),
62 | sin(latitude),
63 | cos(latitude) * cos(longitude));
64 | }
65 |
66 | }//namespace glm
67 |
--------------------------------------------------------------------------------
/3rdparty/include/glm/gtx/projection.hpp:
--------------------------------------------------------------------------------
1 | ///////////////////////////////////////////////////////////////////////////////////
2 | /// OpenGL Mathematics (glm.g-truc.net)
3 | ///
4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy
6 | /// of this software and associated documentation files (the "Software"), to deal
7 | /// in the Software without restriction, including without limitation the rights
8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | /// copies of the Software, and to permit persons to whom the Software is
10 | /// furnished to do so, subject to the following conditions:
11 | ///
12 | /// The above copyright notice and this permission notice shall be included in
13 | /// all copies or substantial portions of the Software.
14 | ///
15 | /// Restrictions:
16 | /// By making use of the Software for military purposes, you choose to make
17 | /// a Bunny unhappy.
18 | ///
19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25 | /// THE SOFTWARE.
26 | ///
27 | /// @ref gtx_projection
28 | /// @file glm/gtx/projection.hpp
29 | /// @date 2005-12-21 / 2011-06-07
30 | /// @author Christophe Riccio
31 | ///
32 | /// @see core (dependence)
33 | ///
34 | /// @defgroup gtx_projection GLM_GTX_projection
35 | /// @ingroup gtx
36 | ///
37 | /// @brief Projection of a vector to other one
38 | ///
39 | /// need to be included to use these functionalities.
40 | ///////////////////////////////////////////////////////////////////////////////////
41 |
42 | #pragma once
43 |
44 | // Dependency:
45 | #include "../geometric.hpp"
46 |
47 | #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
48 | # pragma message("GLM: GLM_GTX_projection extension included")
49 | #endif
50 |
51 | namespace glm
52 | {
53 | /// @addtogroup gtx_projection
54 | /// @{
55 |
56 | /// Projects x on Normal.
57 | ///
58 | /// @see gtx_projection
59 | template
60 | GLM_FUNC_DECL vecType proj(vecType const & x, vecType const & Normal);
61 |
62 | /// @}
63 | }//namespace glm
64 |
65 | #include "projection.inl"
66 |
--------------------------------------------------------------------------------
/3rdparty/include/glm/gtx/projection.inl:
--------------------------------------------------------------------------------
1 | ///////////////////////////////////////////////////////////////////////////////////
2 | /// OpenGL Mathematics (glm.g-truc.net)
3 | ///
4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy
6 | /// of this software and associated documentation files (the "Software"), to deal
7 | /// in the Software without restriction, including without limitation the rights
8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | /// copies of the Software, and to permit persons to whom the Software is
10 | /// furnished to do so, subject to the following conditions:
11 | ///
12 | /// The above copyright notice and this permission notice shall be included in
13 | /// all copies or substantial portions of the Software.
14 | ///
15 | /// Restrictions:
16 | /// By making use of the Software for military purposes, you choose to make
17 | /// a Bunny unhappy.
18 | ///
19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25 | /// THE SOFTWARE.
26 | ///
27 | /// @ref gtx_projection
28 | /// @file glm/gtx/projection.inl
29 | /// @date 2005-12-21 / 2011-06-07
30 | /// @author Christophe Riccio
31 | ///////////////////////////////////////////////////////////////////////////////////
32 |
33 | namespace glm
34 | {
35 | template
36 | GLM_FUNC_QUALIFIER vecType proj(vecType const & x, vecType const & Normal)
37 | {
38 | return glm::dot(x, Normal) / glm::dot(Normal, Normal) * Normal;
39 | }
40 | }//namespace glm
41 |
--------------------------------------------------------------------------------
/3rdparty/include/glm/gtx/raw_data.hpp:
--------------------------------------------------------------------------------
1 | ///////////////////////////////////////////////////////////////////////////////////
2 | /// OpenGL Mathematics (glm.g-truc.net)
3 | ///
4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy
6 | /// of this software and associated documentation files (the "Software"), to deal
7 | /// in the Software without restriction, including without limitation the rights
8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | /// copies of the Software, and to permit persons to whom the Software is
10 | /// furnished to do so, subject to the following conditions:
11 | ///
12 | /// The above copyright notice and this permission notice shall be included in
13 | /// all copies or substantial portions of the Software.
14 | ///
15 | /// Restrictions:
16 | /// By making use of the Software for military purposes, you choose to make
17 | /// a Bunny unhappy.
18 | ///
19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25 | /// THE SOFTWARE.
26 | ///
27 | /// @ref gtx_raw_data
28 | /// @file glm/gtx/raw_data.hpp
29 | /// @date 2008-11-19 / 2011-06-07
30 | /// @author Christophe Riccio
31 | ///
32 | /// @see core (dependence)
33 | ///
34 | /// @defgroup gtx_raw_data GLM_GTX_raw_data
35 | /// @ingroup gtx
36 | ///
37 | /// @brief Projection of a vector to other one
38 | ///
39 | /// need to be included to use these functionalities.
40 | ///////////////////////////////////////////////////////////////////////////////////
41 |
42 | #pragma once
43 |
44 | // Dependencies
45 | #include "../detail/setup.hpp"
46 | #include "../detail/type_int.hpp"
47 |
48 | #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
49 | # pragma message("GLM: GLM_GTX_raw_data extension included")
50 | #endif
51 |
52 | namespace glm
53 | {
54 | /// @addtogroup gtx_raw_data
55 | /// @{
56 |
57 | //! Type for byte numbers.
58 | //! From GLM_GTX_raw_data extension.
59 | typedef detail::uint8 byte;
60 |
61 | //! Type for word numbers.
62 | //! From GLM_GTX_raw_data extension.
63 | typedef detail::uint16 word;
64 |
65 | //! Type for dword numbers.
66 | //! From GLM_GTX_raw_data extension.
67 | typedef detail::uint32 dword;
68 |
69 | //! Type for qword numbers.
70 | //! From GLM_GTX_raw_data extension.
71 | typedef detail::uint64 qword;
72 |
73 | /// @}
74 | }// namespace glm
75 |
76 | #include "raw_data.inl"
77 |
--------------------------------------------------------------------------------
/3rdparty/include/glm/gtx/raw_data.inl:
--------------------------------------------------------------------------------
1 | ///////////////////////////////////////////////////////////////////////////////////
2 | /// OpenGL Mathematics (glm.g-truc.net)
3 | ///
4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy
6 | /// of this software and associated documentation files (the "Software"), to deal
7 | /// in the Software without restriction, including without limitation the rights
8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | /// copies of the Software, and to permit persons to whom the Software is
10 | /// furnished to do so, subject to the following conditions:
11 | ///
12 | /// The above copyright notice and this permission notice shall be included in
13 | /// all copies or substantial portions of the Software.
14 | ///
15 | /// Restrictions:
16 | /// By making use of the Software for military purposes, you choose to make
17 | /// a Bunny unhappy.
18 | ///
19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25 | /// THE SOFTWARE.
26 | ///
27 | /// @ref gtx_raw_data
28 | /// @file glm/gtx/raw_data.inl
29 | /// @date 2008-11-19 / 2011-06-07
30 | /// @author Christophe Riccio
31 | ///////////////////////////////////////////////////////////////////////////////////
32 |
--------------------------------------------------------------------------------
/3rdparty/include/glm/gtx/scalar_relational.hpp:
--------------------------------------------------------------------------------
1 | ///////////////////////////////////////////////////////////////////////////////////
2 | /// OpenGL Mathematics (glm.g-truc.net)
3 | ///
4 | /// Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net)
5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy
6 | /// of this software and associated documentation files (the "Software"), to deal
7 | /// in the Software without restriction, including without limitation the rights
8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | /// copies of the Software, and to permit persons to whom the Software is
10 | /// furnished to do so, subject to the following conditions:
11 | ///
12 | /// The above copyright notice and this permission notice shall be included in
13 | /// all copies or substantial portions of the Software.
14 | ///
15 | /// Restrictions:
16 | /// By making use of the Software for military purposes, you choose to make
17 | /// a Bunny unhappy.
18 | ///
19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25 | /// THE SOFTWARE.
26 | ///
27 | /// @ref gtx_scalar_relational
28 | /// @file glm/gtx/scalar_relational.hpp
29 | /// @date 2013-02-04 / 2013-02-04
30 | /// @author Christophe Riccio
31 | ///
32 | /// @see core (dependence)
33 | ///
34 | /// @defgroup gtx_scalar_relational GLM_GTX_scalar_relational
35 | /// @ingroup gtx
36 | ///
37 | /// @brief Extend a position from a source to a position at a defined length.
38 | ///
39 | /// need to be included to use these functionalities.
40 | ///////////////////////////////////////////////////////////////////////////////////
41 |
42 | #pragma once
43 |
44 | // Dependency:
45 | #include "../glm.hpp"
46 |
47 | #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
48 | # pragma message("GLM: GLM_GTX_extend extension included")
49 | #endif
50 |
51 | namespace glm
52 | {
53 | /// @addtogroup gtx_scalar_relational
54 | /// @{
55 |
56 |
57 |
58 | /// @}
59 | }//namespace glm
60 |
61 | #include "scalar_relational.inl"
62 |
--------------------------------------------------------------------------------
/3rdparty/include/glm/gtx/std_based_type.inl:
--------------------------------------------------------------------------------
1 | ///////////////////////////////////////////////////////////////////////////////////
2 | /// OpenGL Mathematics (glm.g-truc.net)
3 | ///
4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy
6 | /// of this software and associated documentation files (the "Software"), to deal
7 | /// in the Software without restriction, including without limitation the rights
8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | /// copies of the Software, and to permit persons to whom the Software is
10 | /// furnished to do so, subject to the following conditions:
11 | ///
12 | /// The above copyright notice and this permission notice shall be included in
13 | /// all copies or substantial portions of the Software.
14 | ///
15 | /// Restrictions:
16 | /// By making use of the Software for military purposes, you choose to make
17 | /// a Bunny unhappy.
18 | ///
19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25 | /// THE SOFTWARE.
26 | ///
27 | /// @ref gtx_std_based_type
28 | /// @file glm/gtx/std_based_type.inl
29 | /// @date 2008-06-08 / 2011-06-07
30 | /// @author Christophe Riccio
31 | ///////////////////////////////////////////////////////////////////////////////////
32 |
33 | namespace glm
34 | {
35 |
36 | }
37 |
--------------------------------------------------------------------------------
/3rdparty/include/glm/gtx/string_cast.hpp:
--------------------------------------------------------------------------------
1 | ///////////////////////////////////////////////////////////////////////////////////
2 | /// OpenGL Mathematics (glm.g-truc.net)
3 | ///
4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy
6 | /// of this software and associated documentation files (the "Software"), to deal
7 | /// in the Software without restriction, including without limitation the rights
8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | /// copies of the Software, and to permit persons to whom the Software is
10 | /// furnished to do so, subject to the following conditions:
11 | ///
12 | /// The above copyright notice and this permission notice shall be included in
13 | /// all copies or substantial portions of the Software.
14 | ///
15 | /// Restrictions:
16 | /// By making use of the Software for military purposes, you choose to make
17 | /// a Bunny unhappy.
18 | ///
19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25 | /// THE SOFTWARE.
26 | ///
27 | /// @ref gtx_string_cast
28 | /// @file glm/gtx/string_cast.hpp
29 | /// @date 2008-04-26 / 2014-05-10
30 | /// @author Christophe Riccio
31 | ///
32 | /// @see core (dependence)
33 | /// @see gtc_half_float (dependence)
34 | /// @see gtx_integer (dependence)
35 | /// @see gtx_quaternion (dependence)
36 | ///
37 | /// @defgroup gtx_string_cast GLM_GTX_string_cast
38 | /// @ingroup gtx
39 | ///
40 | /// @brief Setup strings for GLM type values
41 | ///
42 | /// need to be included to use these functionalities.
43 | /// This extension is not supported with CUDA
44 | ///////////////////////////////////////////////////////////////////////////////////
45 |
46 | #pragma once
47 |
48 | // Dependency:
49 | #include "../glm.hpp"
50 | #include "../gtc/type_precision.hpp"
51 | #include
52 |
53 | #if(GLM_COMPILER & GLM_COMPILER_CUDA)
54 | # error "GLM_GTX_string_cast is not supported on CUDA compiler"
55 | #endif
56 |
57 | #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
58 | # pragma message("GLM: GLM_GTX_string_cast extension included")
59 | #endif
60 |
61 | namespace glm
62 | {
63 | /// @addtogroup gtx_string_cast
64 | /// @{
65 |
66 | /// Create a string from a GLM vector or matrix typed variable.
67 | /// @see gtx_string_cast extension.
68 | template class matType, typename T, precision P>
69 | GLM_FUNC_DECL std::string to_string(matType const & x);
70 |
71 | /// @}
72 | }//namespace glm
73 |
74 | #include "string_cast.inl"
75 |
--------------------------------------------------------------------------------
/3rdparty/include/glm/gtx/transform.inl:
--------------------------------------------------------------------------------
1 | ///////////////////////////////////////////////////////////////////////////////////
2 | /// OpenGL Mathematics (glm.g-truc.net)
3 | ///
4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy
6 | /// of this software and associated documentation files (the "Software"), to deal
7 | /// in the Software without restriction, including without limitation the rights
8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | /// copies of the Software, and to permit persons to whom the Software is
10 | /// furnished to do so, subject to the following conditions:
11 | ///
12 | /// The above copyright notice and this permission notice shall be included in
13 | /// all copies or substantial portions of the Software.
14 | ///
15 | /// Restrictions:
16 | /// By making use of the Software for military purposes, you choose to make
17 | /// a Bunny unhappy.
18 | ///
19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25 | /// THE SOFTWARE.
26 | ///
27 | /// @ref gtx_transform
28 | /// @file glm/gtx/transform.inl
29 | /// @date 2005-12-21 / 2011-06-07
30 | /// @author Christophe Riccio
31 | ///////////////////////////////////////////////////////////////////////////////////
32 |
33 | namespace glm
34 | {
35 | template
36 | GLM_FUNC_QUALIFIER tmat4x4 translate(
37 | tvec3 const & v)
38 | {
39 | return translate(
40 | tmat4x4(1.0f), v);
41 | }
42 |
43 | template
44 | GLM_FUNC_QUALIFIER tmat4x4 rotate(
45 | T angle,
46 | tvec3 const & v)
47 | {
48 | return rotate(
49 | tmat4x4(1), angle, v);
50 | }
51 |
52 | template
53 | GLM_FUNC_QUALIFIER tmat4x4 scale(
54 | tvec3 const & v)
55 | {
56 | return scale(
57 | tmat4x4(1.0f), v);
58 | }
59 |
60 | }//namespace glm
61 |
--------------------------------------------------------------------------------
/3rdparty/include/glm/gtx/type_aligned.inl:
--------------------------------------------------------------------------------
1 | ///////////////////////////////////////////////////////////////////////////////////
2 | /// OpenGL Mathematics (glm.g-truc.net)
3 | ///
4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy
6 | /// of this software and associated documentation files (the "Software"), to deal
7 | /// in the Software without restriction, including without limitation the rights
8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | /// copies of the Software, and to permit persons to whom the Software is
10 | /// furnished to do so, subject to the following conditions:
11 | ///
12 | /// The above copyright notice and this permission notice shall be included in
13 | /// all copies or substantial portions of the Software.
14 | ///
15 | /// Restrictions:
16 | /// By making use of the Software for military purposes, you choose to make
17 | /// a Bunny unhappy.
18 | ///
19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25 | /// THE SOFTWARE.
26 | ///
27 | /// @ref gtc_type_aligned
28 | /// @file glm/gtc/type_aligned.inl
29 | /// @date 2014-11-23 / 2014-11-23
30 | /// @author Christophe Riccio
31 | ///////////////////////////////////////////////////////////////////////////////////
32 |
33 | namespace glm
34 | {
35 |
36 | }
37 |
--------------------------------------------------------------------------------
/3rdparty/include/glm/gtx/wrap.hpp:
--------------------------------------------------------------------------------
1 | ///////////////////////////////////////////////////////////////////////////////////
2 | /// OpenGL Mathematics (glm.g-truc.net)
3 | ///
4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy
6 | /// of this software and associated documentation files (the "Software"), to deal
7 | /// in the Software without restriction, including without limitation the rights
8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | /// copies of the Software, and to permit persons to whom the Software is
10 | /// furnished to do so, subject to the following conditions:
11 | ///
12 | /// The above copyright notice and this permission notice shall be included in
13 | /// all copies or substantial portions of the Software.
14 | ///
15 | /// Restrictions:
16 | /// By making use of the Software for military purposes, you choose to make
17 | /// a Bunny unhappy.
18 | ///
19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25 | /// THE SOFTWARE.
26 | ///
27 | /// @ref gtx_wrap
28 | /// @file glm/gtx/wrap.hpp
29 | /// @date 2009-11-25 / 2011-06-07
30 | /// @author Christophe Riccio
31 | ///
32 | /// @see core (dependence)
33 | ///
34 | /// @defgroup gtx_wrap GLM_GTX_wrap
35 | /// @ingroup gtx
36 | ///
37 | /// @brief Wrapping mode of texture coordinates.
38 | ///
39 | /// need to be included to use these functionalities.
40 | ///////////////////////////////////////////////////////////////////////////////////
41 |
42 | #pragma once
43 |
44 | // Dependency:
45 | #include "../glm.hpp"
46 |
47 | #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
48 | # pragma message("GLM: GLM_GTX_wrap extension included")
49 | #endif
50 |
51 | namespace glm
52 | {
53 | /// @addtogroup gtx_wrap
54 | /// @{
55 |
56 | /// Simulate GL_CLAMP OpenGL wrap mode
57 | /// @see gtx_wrap extension.
58 | template
59 | GLM_FUNC_DECL genType clamp(genType const & Texcoord);
60 |
61 | /// Simulate GL_REPEAT OpenGL wrap mode
62 | /// @see gtx_wrap extension.
63 | template
64 | GLM_FUNC_DECL genType repeat(genType const & Texcoord);
65 |
66 | /// Simulate GL_MIRROR_REPEAT OpenGL wrap mode
67 | /// @see gtx_wrap extension.
68 | template
69 | GLM_FUNC_DECL genType mirrorRepeat(genType const & Texcoord);
70 |
71 | /// @}
72 | }// namespace glm
73 |
74 | #include "wrap.inl"
75 |
--------------------------------------------------------------------------------
/3rdparty/include/glm/integer.hpp:
--------------------------------------------------------------------------------
1 | ///////////////////////////////////////////////////////////////////////////////////
2 | /// OpenGL Mathematics (glm.g-truc.net)
3 | ///
4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy
6 | /// of this software and associated documentation files (the "Software"), to deal
7 | /// in the Software without restriction, including without limitation the rights
8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | /// copies of the Software, and to permit persons to whom the Software is
10 | /// furnished to do so, subject to the following conditions:
11 | ///
12 | /// The above copyright notice and this permission notice shall be included in
13 | /// all copies or substantial portions of the Software.
14 | ///
15 | /// Restrictions:
16 | /// By making use of the Software for military purposes, you choose to make
17 | /// a Bunny unhappy.
18 | ///
19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25 | /// THE SOFTWARE.
26 | ///
27 | /// @ref core
28 | /// @file glm/integer.hpp
29 | /// @date 2013-12-24 / 2013-12-24
30 | /// @author Christophe Riccio
31 | ///////////////////////////////////////////////////////////////////////////////////
32 |
33 | #pragma once
34 |
35 | #include "detail/func_integer.hpp"
36 |
--------------------------------------------------------------------------------
/3rdparty/include/glm/matrix.hpp:
--------------------------------------------------------------------------------
1 | ///////////////////////////////////////////////////////////////////////////////////
2 | /// OpenGL Mathematics (glm.g-truc.net)
3 | ///
4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy
6 | /// of this software and associated documentation files (the "Software"), to deal
7 | /// in the Software without restriction, including without limitation the rights
8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | /// copies of the Software, and to permit persons to whom the Software is
10 | /// furnished to do so, subject to the following conditions:
11 | ///
12 | /// The above copyright notice and this permission notice shall be included in
13 | /// all copies or substantial portions of the Software.
14 | ///
15 | /// Restrictions:
16 | /// By making use of the Software for military purposes, you choose to make
17 | /// a Bunny unhappy.
18 | ///
19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25 | /// THE SOFTWARE.
26 | ///
27 | /// @ref core
28 | /// @file glm/matrix.hpp
29 | /// @date 2013-12-24 / 2013-12-24
30 | /// @author Christophe Riccio
31 | ///////////////////////////////////////////////////////////////////////////////////
32 |
33 | #pragma once
34 |
35 | #include "detail/func_matrix.hpp"
36 |
--------------------------------------------------------------------------------
/3rdparty/include/glm/packing.hpp:
--------------------------------------------------------------------------------
1 | ///////////////////////////////////////////////////////////////////////////////////
2 | /// OpenGL Mathematics (glm.g-truc.net)
3 | ///
4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy
6 | /// of this software and associated documentation files (the "Software"), to deal
7 | /// in the Software without restriction, including without limitation the rights
8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | /// copies of the Software, and to permit persons to whom the Software is
10 | /// furnished to do so, subject to the following conditions:
11 | ///
12 | /// The above copyright notice and this permission notice shall be included in
13 | /// all copies or substantial portions of the Software.
14 | ///
15 | /// Restrictions:
16 | /// By making use of the Software for military purposes, you choose to make
17 | /// a Bunny unhappy.
18 | ///
19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25 | /// THE SOFTWARE.
26 | ///
27 | /// @ref core
28 | /// @file glm/packing.hpp
29 | /// @date 2013-12-24 / 2013-12-24
30 | /// @author Christophe Riccio
31 | ///////////////////////////////////////////////////////////////////////////////////
32 |
33 | #pragma once
34 |
35 | #include "detail/func_packing.hpp"
36 |
--------------------------------------------------------------------------------
/3rdparty/include/glm/trigonometric.hpp:
--------------------------------------------------------------------------------
1 | ///////////////////////////////////////////////////////////////////////////////////
2 | /// OpenGL Mathematics (glm.g-truc.net)
3 | ///
4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy
6 | /// of this software and associated documentation files (the "Software"), to deal
7 | /// in the Software without restriction, including without limitation the rights
8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | /// copies of the Software, and to permit persons to whom the Software is
10 | /// furnished to do so, subject to the following conditions:
11 | ///
12 | /// The above copyright notice and this permission notice shall be included in
13 | /// all copies or substantial portions of the Software.
14 | ///
15 | /// Restrictions:
16 | /// By making use of the Software for military purposes, you choose to make
17 | /// a Bunny unhappy.
18 | ///
19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25 | /// THE SOFTWARE.
26 | ///
27 | /// @ref core
28 | /// @file glm/trigonometric.hpp
29 | /// @date 2013-12-24 / 2013-12-24
30 | /// @author Christophe Riccio
31 | ///////////////////////////////////////////////////////////////////////////////////
32 |
33 | #pragma once
34 |
35 | #include "detail/func_trigonometric.hpp"
36 |
--------------------------------------------------------------------------------
/3rdparty/include/glm/vec2.hpp:
--------------------------------------------------------------------------------
1 | ///////////////////////////////////////////////////////////////////////////////////
2 | /// OpenGL Mathematics (glm.g-truc.net)
3 | ///
4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy
6 | /// of this software and associated documentation files (the "Software"), to deal
7 | /// in the Software without restriction, including without limitation the rights
8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | /// copies of the Software, and to permit persons to whom the Software is
10 | /// furnished to do so, subject to the following conditions:
11 | ///
12 | /// The above copyright notice and this permission notice shall be included in
13 | /// all copies or substantial portions of the Software.
14 | ///
15 | /// Restrictions:
16 | /// By making use of the Software for military purposes, you choose to make
17 | /// a Bunny unhappy.
18 | ///
19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25 | /// THE SOFTWARE.
26 | ///
27 | /// @ref core
28 | /// @file glm/vec2.hpp
29 | /// @date 2013-12-24 / 2013-12-24
30 | /// @author Christophe Riccio
31 | ///////////////////////////////////////////////////////////////////////////////////
32 |
33 | #pragma once
34 |
35 | #include "detail/type_vec2.hpp"
36 |
--------------------------------------------------------------------------------
/3rdparty/include/glm/vec3.hpp:
--------------------------------------------------------------------------------
1 | ///////////////////////////////////////////////////////////////////////////////////
2 | /// OpenGL Mathematics (glm.g-truc.net)
3 | ///
4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy
6 | /// of this software and associated documentation files (the "Software"), to deal
7 | /// in the Software without restriction, including without limitation the rights
8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | /// copies of the Software, and to permit persons to whom the Software is
10 | /// furnished to do so, subject to the following conditions:
11 | ///
12 | /// The above copyright notice and this permission notice shall be included in
13 | /// all copies or substantial portions of the Software.
14 | ///
15 | /// Restrictions:
16 | /// By making use of the Software for military purposes, you choose to make
17 | /// a Bunny unhappy.
18 | ///
19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25 | /// THE SOFTWARE.
26 | ///
27 | /// @ref core
28 | /// @file glm/vec3.hpp
29 | /// @date 2013-12-24 / 2013-12-24
30 | /// @author Christophe Riccio
31 | ///////////////////////////////////////////////////////////////////////////////////
32 |
33 | #pragma once
34 |
35 | #include "detail/type_vec3.hpp"
36 |
--------------------------------------------------------------------------------
/3rdparty/include/glm/vec4.hpp:
--------------------------------------------------------------------------------
1 | ///////////////////////////////////////////////////////////////////////////////////
2 | /// OpenGL Mathematics (glm.g-truc.net)
3 | ///
4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy
6 | /// of this software and associated documentation files (the "Software"), to deal
7 | /// in the Software without restriction, including without limitation the rights
8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | /// copies of the Software, and to permit persons to whom the Software is
10 | /// furnished to do so, subject to the following conditions:
11 | ///
12 | /// The above copyright notice and this permission notice shall be included in
13 | /// all copies or substantial portions of the Software.
14 | ///
15 | /// Restrictions:
16 | /// By making use of the Software for military purposes, you choose to make
17 | /// a Bunny unhappy.
18 | ///
19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25 | /// THE SOFTWARE.
26 | ///
27 | /// @ref core
28 | /// @file glm/vec4.hpp
29 | /// @date 2013-12-24 / 2013-12-24
30 | /// @author Christophe Riccio
31 | ///////////////////////////////////////////////////////////////////////////////////
32 |
33 | #pragma once
34 |
35 | #include "detail/type_vec4.hpp"
36 |
--------------------------------------------------------------------------------
/3rdparty/include/glm/vector_relational.hpp:
--------------------------------------------------------------------------------
1 | ///////////////////////////////////////////////////////////////////////////////////
2 | /// OpenGL Mathematics (glm.g-truc.net)
3 | ///
4 | /// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy
6 | /// of this software and associated documentation files (the "Software"), to deal
7 | /// in the Software without restriction, including without limitation the rights
8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | /// copies of the Software, and to permit persons to whom the Software is
10 | /// furnished to do so, subject to the following conditions:
11 | ///
12 | /// The above copyright notice and this permission notice shall be included in
13 | /// all copies or substantial portions of the Software.
14 | ///
15 | /// Restrictions:
16 | /// By making use of the Software for military purposes, you choose to make
17 | /// a Bunny unhappy.
18 | ///
19 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25 | /// THE SOFTWARE.
26 | ///
27 | /// @ref core
28 | /// @file glm/vector_relational.hpp
29 | /// @date 2013-12-24 / 2013-12-24
30 | /// @author Christophe Riccio
31 | ///////////////////////////////////////////////////////////////////////////////////
32 |
33 | #pragma once
34 |
35 | #include "detail/func_vector_relational.hpp"
36 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2016 Anatole Duprat
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Point Based Global Illumination
2 | Project made with [Muhammad Daoud](https://www.linkedin.com/in/muhammad-daoud-761a91117) at the University of Luminy.
3 |
4 |
5 |
6 | * [Youtube demo](https://www.youtube.com/watch?v=tEFx9h9ZG-c)
7 | * [Article](http://www.aduprat.com/portfolio/?page=articles/PBGI)
8 |
9 | Features:
10 | * UV Unwrapper
11 | * Point based global illumination
12 | * PCF Shadow mapping
13 | * HDR, tone mapping & gamma correct pipeline
14 | * Cheap procedural sky
15 |
16 | ## Setup:
17 |
18 | Dependencies:
19 | * qt 5.4
20 | * glfw
21 | * glew
22 |
23 | Require:
24 | * OpenGL 4.3
25 |
26 | Compile:
27 | * Open /src/PBGI.pro with Qt Creator, setup the binary output to /release and compil it.
--------------------------------------------------------------------------------
/release/Data/Scenes/scene.mtl:
--------------------------------------------------------------------------------
1 | # Blender MTL File: 'GI.blend'
2 | # Material Count: 1
3 |
4 | newmtl Material
5 | Ns 96.078431
6 | Ka 1.000000 1.000000 1.000000
7 | Kd 0.640000 0.640000 0.640000
8 | Ks 0.500000 0.500000 0.500000
9 | Ke 0.000000 0.000000 0.000000
10 | Ni 1.000000
11 | d 1.000000
12 | illum 2
13 | map_Kd albedo.jpg
14 |
--------------------------------------------------------------------------------
/release/Data/Shaders/GI/buffers.fsh:
--------------------------------------------------------------------------------
1 | #version 330
2 |
3 | smooth in vec3 p, n;
4 | smooth in vec2 uv;
5 |
6 | layout (location = 0) out vec4 outPos;
7 | layout (location = 1) out vec4 outNorm;
8 | layout (location = 2) out vec4 outDirectIllum;
9 |
10 | uniform sampler2D albedo;
11 | uniform sampler2D lightDepth;
12 | uniform mat4 lightVPMatrix,modelMatrix;
13 | uniform vec3 lightPos;
14 | uniform vec3 ambientColor;
15 | uniform vec3 diffuseColor;
16 |
17 | float hash( float n )//->0:1
18 | {
19 | return fract(sin(n)*3538.5453);
20 | }
21 |
22 | void main()
23 | {
24 |
25 |
26 | vec3 col = texture(albedo, uv).rgb * diffuseColor;
27 | float diff = max(dot(n,normalize(lightPos-p)), 0.);
28 | float shad = 1.;
29 | vec4 lightCoord = lightVPMatrix*vec4(p,1.);
30 | for (int i=0;i<16;i++)
31 | if( texture(lightDepth, lightCoord.xy*.5+.5+(vec2(hash(float(i*30+1.)),hash(float(i*50.+3.)))*2.-1.)*0.001).r < lightCoord.z*.5+.5-0.02 )
32 | shad -= 1./16.;
33 |
34 |
35 |
36 | outPos = vec4(p, 1.);
37 | outNorm = vec4(n, 1.);
38 | outDirectIllum = vec4(col, diff*shad);
39 | }
40 |
--------------------------------------------------------------------------------
/release/Data/Shaders/GI/buffers.gsh:
--------------------------------------------------------------------------------
1 | #version 330
2 |
3 | uniform ivec2 texSize;
4 |
5 | layout(triangles) in;
6 | layout(triangle_strip, max_vertices=3) out;
7 |
8 | in vec3 pos[];
9 | in vec3 norm[];
10 | in vec2 uvTex[];
11 |
12 | smooth out vec3 p, n;
13 | smooth out vec2 uv;
14 | void main()
15 | {
16 | vec2 minP = gl_in[0].gl_Position.xy, maxP = gl_in[0].gl_Position.xy;
17 |
18 | for(int i = 1; i < gl_in.length(); i++)
19 | {
20 | minP = min(minP, gl_in[i].gl_Position.xy);
21 | maxP = max(maxP, gl_in[i].gl_Position.xy);
22 | }
23 |
24 | for(int i = 0; i < gl_in.length(); i++)
25 | {
26 | vec2 position = gl_in[i].gl_Position.xy;
27 | ivec2 texelPos = ivec2(position*(texSize));
28 |
29 | vec2 halfTexelSize = 1./vec2(texSize*2);
30 |
31 | if(position.x == minP.x)
32 | {
33 | position.x = (float(texelPos.x))/(texSize.x);
34 | }
35 | else
36 | {
37 | position.x = (float(texelPos.x)+1.)/(texSize.x);
38 | }
39 |
40 | if(position.y == minP.y)
41 | {
42 | position.y = (float(texelPos.y))/(texSize.y);
43 | }
44 | else
45 | {
46 | position.y = (float(texelPos.y)+1.)/(texSize.y);
47 | }
48 |
49 | gl_Position = vec4(-1.+2.*position, 0., 1.);
50 | p = pos[i];
51 | n = norm[i];
52 | uv = uvTex[i];
53 | EmitVertex();
54 | }
55 | EndPrimitive();
56 | }
57 |
--------------------------------------------------------------------------------
/release/Data/Shaders/GI/buffers.vsh:
--------------------------------------------------------------------------------
1 | #version 330
2 | //Input
3 | layout (location = 0) in vec3 position;
4 | layout (location = 1) in vec3 normal;
5 | layout (location = 2) in vec2 texcoord0;
6 | layout (location = 3) in vec2 texcoord1;
7 |
8 | smooth out vec3 pos, norm;
9 | smooth out vec2 uvTex;
10 |
11 | uniform mat4 modelMatrix;
12 |
13 | void main()
14 | {
15 | pos = (modelMatrix*vec4(position,1.)).xyz;
16 | norm = (transpose(inverse(modelMatrix))*vec4(normal,1.)).xyz;
17 | uvTex = texcoord0;
18 | gl_Position = vec4(texcoord1,0.,1.);
19 | }
20 |
--------------------------------------------------------------------------------
/release/Data/Shaders/GI/copy.csh:
--------------------------------------------------------------------------------
1 | #version 430
2 |
3 | uniform sampler2D inp;
4 | uniform layout(rgba32f) image2D destTex;
5 |
6 |
7 | layout (local_size_x = 16, local_size_y = 16) in;
8 |
9 |
10 | void main()
11 | {
12 | ivec2 texSize = textureSize(inp, 0);
13 | ivec2 storePos = ivec2(gl_GlobalInvocationID.xy);
14 |
15 | vec2 p = vec2(storePos*2+1)/vec2(texSize*2.);
16 | vec4 col = texture(inp, p);
17 | imageStore(destTex, storePos, col);
18 | }
19 |
--------------------------------------------------------------------------------
/release/Data/Shaders/GI/radiosity.csh:
--------------------------------------------------------------------------------
1 | #version 430
2 |
3 | uniform sampler2D position, direction, albedo;
4 | uniform int lastPass;
5 | uniform layout(rgba32f) image2D destTex;
6 | uniform ivec2 offset;
7 | const float PI = 3.14159265359;
8 |
9 | layout (local_size_x = 16, local_size_y = 16) in;
10 |
11 | struct Surfel
12 | {
13 | vec4 pos;
14 | vec4 dir;
15 | vec4 col;
16 | };
17 |
18 | Surfel getSurfel(vec2 p)
19 | {
20 | Surfel s;
21 | s.pos = texture(position, p);
22 | s.dir = texture(direction, p);
23 | s.col = texture(albedo, p);
24 |
25 | return s;
26 | }
27 |
28 | float occ( float cosE, float cosR, float a, float d) // Element to element occlusion
29 | {
30 | return max(cosE+.0,0.) * cosR * a / ( a + PI*d*d );
31 | }
32 |
33 | float radiance( float cosE, float cosR, float a, float d) // Element to element radiance transfer
34 | {
35 | return a*( max(cosE,0.) * max(cosR,0.) ) / ( PI*d*d + a );
36 | }
37 |
38 | void main()
39 | {
40 | ivec2 texSize = textureSize(position, 0);
41 | ivec2 storePos = ivec2(gl_GlobalInvocationID.xy);
42 |
43 | vec2 p = vec2(storePos*2+1)/vec2(texSize*2.);
44 |
45 | Surfel rec = getSurfel(p);
46 |
47 | if(rec.pos.a==0.)
48 | {
49 | //imageStore(destTex, storePos, vec4(0.));
50 | return;
51 | }
52 |
53 | //float ao = 0.;
54 | vec3 gi = imageLoad(destTex, storePos).xyz;
55 |
56 | if(offset == ivec2(0))
57 | gi = vec3(0.);
58 | //float ao = 0.;
59 | for(int x = 0; x < 32; x++)
60 | for(int y = 0; y < 32; y++)
61 | {
62 | int tx = x+offset.x, ty = y+offset.y;
63 | //Little hack to get the center of the texel
64 | vec2 p = vec2(float(tx*2+1)/float(texSize.x*2.), float(ty*2+1)/float(texSize.y*2.));
65 | Surfel em = getSurfel( p ); //Get emitter info
66 | if( em.pos.a == 0. )
67 | continue;
68 |
69 | vec3 v = em.pos.xyz - rec.pos.xyz; // vector from the emitter to the receiver
70 | float d = length(v) + 1e-16; //avoid 0 to the distance squared area
71 | v /= d;
72 |
73 | float cosE = dot( -v, em.dir.xyz );
74 | float cosR = dot( v, rec.dir.xyz );
75 |
76 | gi += radiance(cosE, cosR, 3.,d) * em.col.rgb*em.col.a/4.;
77 | // ao += occ(cosE,cosR, 0.03,d);
78 | }
79 | if(lastPass==1)
80 | gi *= rec.col.rgb;
81 | vec4 col = vec4( gi , 1.);
82 | imageStore(destTex, storePos, col);
83 | }
84 |
--------------------------------------------------------------------------------
/release/Data/Shaders/GI/timelerp.csh:
--------------------------------------------------------------------------------
1 | #version 430
2 |
3 | uniform sampler2D last,current;
4 | uniform float t;
5 | uniform layout(rgba32f) image2D destTex;
6 |
7 |
8 | layout (local_size_x = 16, local_size_y = 16) in;
9 |
10 |
11 | void main()
12 | {
13 | ivec2 texSize = textureSize(last, 0);
14 | ivec2 storePos = ivec2(gl_GlobalInvocationID.xy);
15 |
16 | vec2 p = vec2(storePos*2+1)/vec2(texSize*2.);
17 | vec4 a = texture(last, p);
18 | vec4 b = texture(current, p);
19 |
20 |
21 | imageStore(destTex, storePos, mix(a,b,vec4(smoothstep(0.,1.,t))));
22 | //imageStore(destTex, storePos, mix(a,b,vec4(min(t,1.))));
23 | }
24 |
--------------------------------------------------------------------------------
/release/Data/Shaders/Utils/basic.fsh:
--------------------------------------------------------------------------------
1 | #version 330
2 |
3 | uniform sampler2D tex;
4 | in vec2 uv;
5 |
6 | out vec4 FragColor;
7 |
8 | void main()
9 | {
10 | FragColor = texture(tex,uv);
11 | }
12 |
--------------------------------------------------------------------------------
/release/Data/Shaders/Utils/basic.vsh:
--------------------------------------------------------------------------------
1 | #version 330
2 |
3 | layout (location = 0) in vec3 Position;
4 |
5 |
6 | out vec2 uv;
7 |
8 | void main()
9 | {
10 | uv = Position.xy*.5+.5;
11 | gl_Position = vec4(Position*.25*vec3(1.,16./9.,1.)-vec3(.5), 1.0);
12 | }
13 |
--------------------------------------------------------------------------------
/release/Data/Shaders/Utils/dbg.fsh:
--------------------------------------------------------------------------------
1 | #version 330
2 |
3 | uniform sampler2D inp;
4 | in vec2 uv;
5 |
6 | out vec4 FragColor;
7 |
8 | void main()
9 | {
10 | FragColor = texture(inp,uv);
11 | }
12 |
--------------------------------------------------------------------------------
/release/Data/Shaders/Utils/dbg.vsh:
--------------------------------------------------------------------------------
1 | #version 330
2 |
3 | layout (location = 0) in vec3 Position;
4 |
5 | uniform vec2 scale;
6 | uniform vec2 pos;
7 | out vec2 uv;
8 |
9 | void main()
10 | {
11 | uv = Position.xy*.5+.5;
12 | gl_Position = vec4((uv*scale+pos)*2.-1., 0., 1.0);
13 | }
14 |
--------------------------------------------------------------------------------
/release/Data/Shaders/basic.fsh:
--------------------------------------------------------------------------------
1 | #version 330
2 |
3 | uniform sampler2D lightDepth;
4 | uniform sampler2D albedo;
5 | uniform sampler2D radiosity;
6 |
7 | in vec3 pos;
8 | in vec3 n;
9 | in vec2 uv;
10 | in vec2 uvLightmap;
11 | in vec4 lightCoord;
12 |
13 | out vec4 fragColor;
14 |
15 | uniform vec3 ambientColor;
16 | uniform vec3 diffuseColor;
17 | uniform vec3 lightPos;
18 |
19 | float hash( float n )//->0:1
20 | {
21 | return fract(sin(n)*3538.5453);
22 | }
23 |
24 |
25 | void main()
26 | {
27 |
28 | vec3 col = texture2D(albedo, uv).rgb * diffuseColor;
29 |
30 | vec3 diff = vec3(1.) * max(dot(n,normalize(lightPos-pos)), 0.);
31 | float shad = 1.;
32 | for (int i=0;i<16;i++)
33 | if( texture(lightDepth, lightCoord.xy*.5+.5+(vec2(hash(float(i*30+1.)),hash(float(i*50.+3.)))*2.-1.)*0.001 ).r < lightCoord.z*.5+.5-0.002 )
34 | shad -= 1./16.;
35 |
36 |
37 | vec3 indirect = texture(radiosity, uvLightmap).rgb;
38 |
39 | col = col*(diff*shad+indirect*.5);
40 |
41 |
42 | fragColor = vec4(col, 1.);
43 | }
44 |
--------------------------------------------------------------------------------
/release/Data/Shaders/basic.vsh:
--------------------------------------------------------------------------------
1 | #version 330
2 | //Input
3 | layout (location = 0) in vec3 position;
4 | layout (location = 1) in vec3 normal;
5 | layout (location = 2) in vec2 texcoord0;
6 | layout (location = 3) in vec2 texcoord1;
7 |
8 | uniform sampler2D tex;
9 | uniform mat4 modelMatrix;
10 | uniform mat4 VPMatrix;
11 | uniform mat4 lightVPMatrix;
12 |
13 | smooth out vec3 pos;
14 | smooth out vec3 n;
15 | smooth out vec2 uv;
16 | smooth out vec2 uvLightmap;
17 | smooth out vec4 lightCoord;
18 |
19 | void main()
20 | {
21 | pos = (modelMatrix*vec4(position,1.)).xyz;
22 | n = (transpose(inverse(modelMatrix))*vec4(normal,1.)).xyz;
23 | uv = texcoord0;
24 |
25 | ivec2 texSize = textureSize(tex, 0);
26 |
27 | ivec2 texelPos = ivec2(texcoord1*(texSize));
28 |
29 | //Improve sampling ..
30 | int id = gl_VertexID % 4;
31 | uvLightmap = vec2(texelPos+.5);
32 | vec2 offset = vec2(.5,-.5);
33 | if(id == 0)
34 | uvLightmap += offset.xx;
35 | else if(id == 1)
36 | uvLightmap += offset.yx;
37 | else if(id == 2)
38 | uvLightmap += offset.yy;
39 | else if(id == 3)
40 | uvLightmap += offset.xy;
41 |
42 | uvLightmap /= vec2(texSize);
43 | gl_Position = VPMatrix * vec4(pos,1.);
44 |
45 | lightCoord = lightVPMatrix * modelMatrix * vec4(position,1.);
46 | }
47 |
--------------------------------------------------------------------------------
/release/Data/Shaders/depth.fsh:
--------------------------------------------------------------------------------
1 | #version 330
2 |
3 | layout(location = 0) out float fragmentdepth;
4 |
5 | void main()
6 | {
7 | fragmentdepth = gl_FragCoord.z;
8 | }
--------------------------------------------------------------------------------
/release/Data/Shaders/depth.vsh:
--------------------------------------------------------------------------------
1 | #version 330
2 | //Input
3 | layout (location = 0) in vec3 position;
4 |
5 | uniform mat4 viewProjectionMatrix;
6 | uniform mat4 modelMatrix;
7 |
8 | void main()
9 | {
10 | gl_Position = viewProjectionMatrix * modelMatrix * vec4(position,1.);
11 | }
12 |
--------------------------------------------------------------------------------
/release/Data/Shaders/postFX.vsh:
--------------------------------------------------------------------------------
1 | #version 330
2 | //Input
3 | layout (location = 0) in vec3 position;
4 | out vec2 uv;
5 |
6 | void main()
7 | {
8 | uv = position.xy*vec2(.5) + vec2(.5);
9 | gl_Position = vec4(position,1.);
10 | }
11 |
--------------------------------------------------------------------------------
/release/Data/Shaders/sky.fsh:
--------------------------------------------------------------------------------
1 | #version 330
2 |
3 | uniform mat4 mat;
4 | uniform vec2 resolution;
5 | uniform vec3 lightPos;
6 | in vec2 v;
7 |
8 | out vec4 FragColor;
9 |
10 | vec3 skyColor( in vec3 rd )
11 | {
12 | vec3 sundir = normalize( lightPos );
13 |
14 | float yd = min(rd.y, 0.);
15 | rd.y = max(rd.y, 0.);
16 |
17 | vec3 col = vec3(0.);
18 |
19 | col += vec3(.4, .4 - exp( -rd.y*20. )*.3, .0) * exp(-rd.y*9.); // Red / Green
20 | col += vec3(.3, .5, .6) * (1. - exp(-rd.y*8.) ) * exp(-rd.y*.9) ; // Blue
21 |
22 | col = mix(col*1.2, vec3(.3), 1.-exp(yd*100.)); // Fog
23 |
24 | col += vec3(1.0, .8, .55) * pow( max(dot(rd,sundir),0.), 15. ) * .3; // Sun
25 | col += vec3(1.0, .5, .3) * pow(max(dot(rd, sundir),0.), 300.0) *3.;
26 |
27 | return col;
28 | }
29 | void main()
30 | {
31 | vec3 dir = vec3( normalize( mat*vec4(v.xy*vec2(resolution.x/resolution.y,1),-1.5,0.0) ) );
32 |
33 | FragColor = vec4(skyColor(dir)*.5,1.);
34 | }
35 |
--------------------------------------------------------------------------------
/release/Data/Shaders/sky.vsh:
--------------------------------------------------------------------------------
1 | #version 330
2 |
3 | layout (location = 0) in vec3 Position;
4 |
5 |
6 | out vec2 v;
7 |
8 | void main()
9 | {
10 | v = Position.xy;
11 | gl_Position = vec4(Position, 1.0);
12 | }
13 |
--------------------------------------------------------------------------------
/release/Data/Textures/albedo.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/XT95/PBGI/ebcfe6e95b7e23c25233441db64a22a5605522eb/release/Data/Textures/albedo.jpg
--------------------------------------------------------------------------------
/src/Engine/camera.h:
--------------------------------------------------------------------------------
1 | #ifndef CAMERA_H
2 | #define CAMERA_H
3 |
4 | #include
5 | #include
6 | #include
7 |
8 | #ifndef M_PI
9 | #define M_PI 3.14159265358979323846264338328
10 | #endif
11 |
12 | #ifndef M_PI_2
13 | #define M_PI_2 1.57079632679489661923132169164
14 | #endif
15 |
16 | class Camera
17 | {
18 | public:
19 | Camera();
20 | Camera(const int &, const int &, const glm::vec3 &_position = glm::vec3(0.f, 1.5f, 5.f),
21 | const float &_horizontalAngle = M_PI, const float &_verticalAngle = 0.,
22 | const float &_speed = .25f, const float &_mouseSpeed = .005f,
23 | const float &_fov = 70.f);
24 |
25 | void verticalMovement(const int &);
26 | void horizontalMovement(const int &);
27 |
28 | void moveForward();
29 |
30 | void moveBackward();
31 |
32 | void moveLeft();
33 |
34 | void moveRight();
35 |
36 | void computeProjection(const int &, const int &);
37 |
38 | void setFov(const float &);
39 | void setViewMatrix(const glm::mat4 &);
40 | void setProjectionMatrix(const glm::mat4 &);
41 |
42 | glm::mat4 getProjectionMatrix() const;
43 | glm::mat4 getViewMatrix() const;
44 | glm::mat4 getViewProjectionMatrix() const;
45 | glm::vec3 getRight();
46 | glm::vec3 getUp();
47 | float getFov() const;
48 | private:
49 | glm::mat4 viewMatrix, projectionMatrix;
50 | glm::mat4 viewProjectionMatrix;
51 | int windowWidth, windowHeight;
52 | glm::vec3 position, direction, right, up;
53 | float horizontalAngle, verticalAngle, radius, speed, mouseSpeed, fov;
54 | static const float minFov = 40.f;
55 | static const float maxFov = 120.f;
56 | };
57 |
58 | #endif // CAMERA_H
59 |
--------------------------------------------------------------------------------
/src/Engine/fast2dquad.cpp:
--------------------------------------------------------------------------------
1 | #include "fast2dquad.h"
2 |
3 |
4 | Fast2DQuad Fast2DQuad::m_instance=Fast2DQuad();
5 |
6 | Fast2DQuad::Fast2DQuad()
7 | {
8 |
9 | }
10 |
11 | Fast2DQuad::~Fast2DQuad()
12 | {
13 | m_shader.destroy();
14 | }
15 |
16 | Fast2DQuad& Fast2DQuad::instance()
17 | {
18 | return m_instance;
19 | }
20 |
21 | void Fast2DQuad::init()
22 | {
23 | float vertex[4][3];
24 | vertex[0][0] =-1.0f; vertex[1][0] = 1.0f; vertex[2][0] =-1.0f; vertex[3][0] = 1.0f;
25 | vertex[0][1] =-1.0f; vertex[1][1] =-1.0f; vertex[2][1] = 1.0f; vertex[3][1] = 1.0f;
26 | for(int i=0; i<4; i++)
27 | vertex[i][2] = 0.f;
28 |
29 | //make the vertex buffer object
30 | glGenBuffers(1, &m_vbo);
31 | glBindBuffer(GL_ARRAY_BUFFER, m_vbo);
32 | glBufferData(GL_ARRAY_BUFFER, 4*3*sizeof(float), vertex, GL_STATIC_DRAW);
33 | glBindBuffer(GL_ARRAY_BUFFER, 0);
34 |
35 | //make the vertex array object
36 | glGenVertexArrays(1, &m_vao);
37 | glBindVertexArray(m_vao);
38 | glBindBuffer(GL_ARRAY_BUFFER, m_vbo);
39 | glEnableVertexAttribArray(0);
40 | glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, 0);
41 | glBindVertexArray(0);
42 |
43 | VertexShader vShader;
44 | FragmentShader fShader;
45 |
46 | m_shader.loadVertexFragment("Data/Shaders/Utils/basic.vsh", "Data/Shaders/Utils/basic.fsh");
47 |
48 | m_shader.bind();
49 | m_shader.sendUniform("tex", 0);
50 | ShaderProgram::unbind();
51 | }
52 | void Fast2DQuad::render()
53 | {
54 | glBindVertexArray(m_vao);
55 | glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
56 | glBindVertexArray(0);
57 | }
58 | void Fast2DQuad::free()
59 | {
60 | glDeleteBuffers(1,&m_vbo);
61 | glDeleteVertexArrays(1,&m_vao);
62 |
63 | }
64 |
65 |
66 | void Fast2DQuad::enableBasicShading()
67 | {
68 | m_shader.bind();
69 | }
70 |
71 |
72 | void Fast2DQuad::disableBasicShading()
73 | {
74 | ShaderProgram::unbind();
75 | }
76 |
--------------------------------------------------------------------------------
/src/Engine/fast2dquad.h:
--------------------------------------------------------------------------------
1 | #ifndef FAST2DQUAD_H
2 | #define FAST2DQUAD_H
3 |
4 | #include
5 | #include "Utils/shaderprogram.h"
6 |
7 | class Fast2DQuad
8 | {
9 | public:
10 | static Fast2DQuad& instance();
11 | void init();
12 | void render();
13 | void free();
14 |
15 |
16 | void enableBasicShading();
17 | void disableBasicShading();
18 | private:
19 | Fast2DQuad();
20 | ~Fast2DQuad();
21 |
22 | ShaderProgram m_shader;
23 | GLuint m_vbo,m_vao;
24 | static Fast2DQuad m_instance;
25 | };
26 |
27 | #endif // FAST2DQUAD_H
28 |
--------------------------------------------------------------------------------
/src/Engine/light.cpp:
--------------------------------------------------------------------------------
1 | #include "light.h"
2 |
3 | Light::Light() :
4 | m_depth(0,true)
5 | {
6 | m_depth.setSize(4096,4096);
7 | m_cam.setProjectionMatrix(glm::ortho(-10.f,10.f,-10.f,10.f,-5.f,20.f)); //View matrix defined in demo.cpp
8 | m_cam.setViewMatrix( glm::mat4(1.f) );
9 |
10 | m_shader.loadVertexFragment("Data/Shaders/depth.vsh","Data/Shaders/depth.fsh");
11 | }
12 |
13 | Light::~Light()
14 | {
15 |
16 | }
17 |
18 |
19 | void Light::setResolution(const int width, const int height)
20 | {
21 | m_depth.setSize(width,height);
22 | }
23 |
24 | void Light::setProjectionMatrix( const glm::mat4 &mat )
25 | {
26 | m_cam.setProjectionMatrix( mat );
27 | }
28 |
29 | void Light::setViewMatrix( const glm::mat4 &mat )
30 | {
31 | m_cam.setViewMatrix( mat );
32 | glm::mat4 inv = glm::inverse(m_cam.getViewMatrix());
33 | m_pos.x = inv[3][0];
34 | m_pos.y = inv[3][1];
35 | m_pos.z = inv[3][2];
36 | }
37 |
38 | glm::mat4 Light::getProjectionMatrix() const
39 | {
40 | return m_cam.getProjectionMatrix();
41 | }
42 | glm::mat4 Light::getViewMatrix() const
43 | {
44 | return m_cam.getViewMatrix();
45 | }
46 | glm::mat4 Light::getViewProjectionMatrix() const
47 | {
48 | return m_cam.getViewProjectionMatrix();
49 | }
50 | FBO* Light::getDepthBuffer()
51 | {
52 | return &m_depth;
53 | }
54 |
55 | void Light::bindDepthShader()
56 | {
57 | m_shader.bind();
58 | m_shader.sendUniform("viewProjectionMatrix", m_cam.getViewProjectionMatrix());
59 |
60 | }
61 | void Light::bindDepthBuffer(const int &channel)
62 | {
63 | m_depth.bindDepth(channel);
64 | }
65 |
66 | void Light::enableDepthBuffer()
67 | {
68 | m_depth.enable();
69 | }
70 | void Light::disableDepthBuffer()
71 | {
72 | m_depth.disable();
73 | }
74 |
--------------------------------------------------------------------------------
/src/Engine/light.h:
--------------------------------------------------------------------------------
1 | #ifndef LIGHT_H
2 | #define LIGHT_H
3 |
4 | #include "Engine/camera.h"
5 | #include "Utils/fbo.h"
6 | #include "Utils/shaderprogram.h"
7 |
8 | class Light
9 | {
10 | public:
11 | Light();
12 | ~Light();
13 |
14 |
15 | void setResolution( const int width, const int height);
16 | void setProjectionMatrix( const glm::mat4 &mat );
17 | void setViewMatrix( const glm::mat4 &mat );
18 |
19 | glm::mat4 getProjectionMatrix() const;
20 | glm::mat4 getViewMatrix() const;
21 | glm::mat4 getViewProjectionMatrix() const;
22 | glm::vec3 getPosition() const { return m_pos; }
23 |
24 | FBO* getDepthBuffer();
25 |
26 | ShaderProgram* getShader() { return &m_shader; }
27 | void enableDepthBuffer();
28 | void disableDepthBuffer();
29 |
30 | void bindDepthBuffer(const int &channel);
31 | void bindDepthShader();
32 |
33 | private:
34 | Camera m_cam;
35 | glm::vec3 m_pos;
36 | FBO m_depth;
37 |
38 | ShaderProgram m_shader;
39 | };
40 |
41 | #endif // LIGHT_H
42 |
--------------------------------------------------------------------------------
/src/Engine/object.h:
--------------------------------------------------------------------------------
1 | #ifndef OBJECT_H
2 | #define OBJECT_H
3 |
4 | #include
5 | #include
6 | #include
7 | #include
8 |
9 | #include "Utils/shaderprogram.h"
10 | #include "Engine/texture.h"
11 |
12 | class Object
13 | {
14 | public:
15 | Object();
16 | ~Object();
17 |
18 | void load(const std::string &filename , const std::string &path);
19 | void updateGPUBuffers();
20 |
21 | void setTransform( const glm::mat4 &m ) { m_mat = m; }
22 | glm::mat4& getTransform() { return m_mat; }
23 |
24 | void setTexture( const std::string &filename );
25 | void setTexture( Texture * tex);
26 | Texture* getTexture() { return m_tex; }
27 |
28 | unsigned getNbVertex() { return m_nbVertex; }
29 | unsigned getNbFaces() { return m_nbFaces; }
30 | glm::vec3* getVertex() { return m_vertex; }
31 | glm::vec3* getNormals() { return m_normals; }
32 | glm::vec3* getNormalsFaces() { return m_normalsFaces; }
33 | glm::vec2* getTexCoords() { return m_uv; }
34 | glm::vec2* getTexCoordsLightmap() { return m_uvlightmap; }
35 | float* getAreaFaces() { return m_areaFaces; }
36 |
37 | void draw();
38 |
39 | void drawMaterials(const ShaderProgram &);
40 | private:
41 | glm::mat4 m_mat;
42 | std::vector m_materials;
43 | std::vector materialIndices;
44 | glm::vec3 *m_vertex;
45 | glm::vec3 *m_normals;
46 | glm::vec3 *m_normalsFaces;
47 | glm::vec2 *m_uv;
48 | glm::vec2 *m_uvlightmap;
49 | float *m_areaFaces;
50 | Texture *m_tex;
51 | GLuint m_vertexArray;
52 | GLuint m_vertexBuffer;
53 | GLuint m_indexBuffer;
54 |
55 | unsigned m_nbVertex;
56 | unsigned m_nbIndices;
57 | unsigned m_nbFaces;
58 | };
59 |
60 | #endif // OBJECT_H
61 |
--------------------------------------------------------------------------------
/src/Engine/scenemanager.h:
--------------------------------------------------------------------------------
1 | #ifndef SCENEMANAGER_H
2 | #define SCENEMANAGER_H
3 |
4 |
5 | #include "Engine/camera.h"
6 | #include "Engine/object.h"
7 | #include "Engine/camera.h"
8 | #include "Engine/light.h"
9 |
10 | #include "Utils/fbo.h"
11 | #include "Utils/shaderprogram.h"
12 |
13 | class SceneManager
14 | {
15 | public:
16 | SceneManager(const int &width, const int &height);
17 | ~SceneManager();
18 |
19 | void loadShader();
20 | void setResolution( const int width, const int height);
21 | Object *addObject(const std::string &path , const std::string &filename);
22 |
23 | Light* getLight() { return &m_light; }
24 | Camera* getCamera() { return &m_cam; }
25 | FBO* getFBO() { return &m_fbo; }
26 |
27 | void draw();
28 | private:
29 | Camera m_cam;
30 | Camera m_camLight;
31 | std::vector